| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- 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 List<Creature>();
- 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;
- }
- }
|