| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.EventSystems;
- namespace RPG_Fight_Test.Assets.Scripts.Creatures {
- public class Skeleton : Creature {
- private List<Creature> combatants;
- private void Start() {
- Dex = Random.Range(0, 20);
- movementRate = 20;
- CreatureHealth = Random.Range(10, 20);
- CurrentHealth = CreatureHealth;
- MaxHealth = CreatureHealth;
- IsCreatureAlive = true;
- }
- private void DecideFirstAction() {
- List<Creature> closeEnemies = EnemiesInSquareNextToCreature(this, combatants);
- if (closeEnemies.Count > 0) {
- SetFirstAction(new AttackAction(closeEnemies[0]));
- } else {
- // Move towards closest enemy
- Creature closestEnemy = FindClosestEnemy(this, combatants);
- MoveAction action = new MoveAction();
- action.SetStartPosition(CurrentPos);
- action.SetTargetCreature(closestEnemy);
- action.SetCreatureToMove(this);
- SetFirstAction(action);
- }
- }
- // Just a copy of first action for now, should have its own logic
- private void DecideSecondAction() {
- List<Creature> closeEnemies = EnemiesInSquareNextToCreature(this, combatants);
- if (closeEnemies.Count > 0) {
- SetSecondAction(new AttackAction(closeEnemies[0]));
- } else {
- // Move towards closest enemy
- Creature closestEnemy = FindClosestEnemy(this, combatants);
- MoveAction action = new MoveAction();
- action.SetStartPosition(CurrentPos);
- action.SetTargetCreature(closestEnemy);
- action.SetCreatureToMove(this);
- SetSecondAction(action);
- }
- }
- public void DecideActions(List<Creature> combatants) {
- this.combatants = combatants;
- List<Creature> closeEnemies = EnemiesInSquareNextToCreature(this, combatants);
- DecideFirstAction();
- DecideSecondAction();
- Debug.Log("Number of close enemies " + closeEnemies.Count);
- }
- public void ShowInfo() {
- }
- }
- }
|