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(); 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; } public bool HasFirstAction() { return firstAction != null; } }