| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- 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<Action> actions = new List<Action>();
- 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<CanvasGroup>();
- rectTransform = GetComponent<RectTransform>();
- }
- 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<Creature> EnemiesInSquareNextToCreature(Creature creature, List<Creature> combatants) {
- List<Creature> 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;
- }
- }
|