Creature.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.EventSystems;
  5. using UnityEngine.UI;
  6. public class Creature : MonoBehaviour
  7. {
  8. [SerializeField] Sprite creatureImage;
  9. [SerializeField] bool humanControlled;
  10. private int init;
  11. private int dex = 0;
  12. private List<Action> actions = new List<Action>();
  13. Weapon weapon;
  14. int health;
  15. private CanvasGroup canvasGroup;
  16. private RectTransform rectTransform;
  17. private Vector3Int currentPos;
  18. private Action firstAction;
  19. private Action secondAction;
  20. public int Dex { get => dex; set => dex = value; }
  21. public int Init { get => init; set => init = value; }
  22. private void Start()
  23. {
  24. canvasGroup = GetComponent<CanvasGroup>();
  25. rectTransform = GetComponent<RectTransform>();
  26. }
  27. public int getInit()
  28. {
  29. return Init;
  30. }
  31. public void rollInit()
  32. {
  33. Init = Random.Range(0, 100 - dex);
  34. }
  35. public Sprite getSprite()
  36. {
  37. return creatureImage;
  38. }
  39. public bool isHumanControlled()
  40. {
  41. return humanControlled;
  42. }
  43. public void setFirstAction(Action action)
  44. {
  45. firstAction = action;
  46. }
  47. public void setSecondAction(Action action)
  48. {
  49. secondAction = action;
  50. }
  51. internal List<Creature> enemiesInSquareNextToCreature(Creature creature, List<Creature> combatants)
  52. {
  53. List<Creature> enemiesClose = new List<Creature>();
  54. foreach (Creature c in combatants)
  55. {
  56. Vector3 distance = c.getCurrentPosition() - creature.getCurrentPosition();
  57. if (c.name != creature.name && distance.x <= 1 && distance.x >= -1 && distance.y <= 1 && distance.y >= -1)
  58. {
  59. enemiesClose.Add(c);
  60. }
  61. }
  62. return enemiesClose;
  63. }
  64. internal void setPositionInGrid(Vector3Int vector3Int)
  65. {
  66. currentPos = vector3Int;
  67. }
  68. public Vector3Int getCurrentPosition()
  69. {
  70. return currentPos;
  71. }
  72. }