using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class Creature : MonoBehaviour { [SerializeField] Sprite creatureImage; [SerializeField] bool humanControlled; private int init; private int dex = 0; private List actions = new List(); Weapon weapon; int health; private CanvasGroup canvasGroup; private RectTransform rectTransform; private Vector3Int currentPos; private Action firstAction; private Action secondAction; public int Dex { get => dex; set => dex = value; } public int Init { get => init; set => init = value; } private void Start() { canvasGroup = GetComponent(); rectTransform = GetComponent(); } public int getInit() { return Init; } public void rollInit() { Init = Random.Range(0, 100 - dex); } public Sprite getSprite() { return creatureImage; } public bool isHumanControlled() { return humanControlled; } public void setFirstAction(Action action) { firstAction = action; } public void setSecondAction(Action action) { secondAction = action; } internal List enemiesInSquareNextToCreature(Creature creature, List combatants) { List enemiesClose = new List(); foreach (Creature c in combatants) { Vector3 distance = c.getCurrentPosition() - creature.getCurrentPosition(); if (c.name != creature.name && distance.x <= 1 && distance.x >= -1 && distance.y <= 1 && distance.y >= -1) { enemiesClose.Add(c); } } return enemiesClose; } internal void setPositionInGrid(Vector3Int vector3Int) { currentPos = vector3Int; } public Vector3Int getCurrentPosition() { return currentPos; } }