using UnityEngine; public class Enemy : Entity { public int turnSpeed; public float minimumAttackRange; private PlayerEntity closestPlayer; //no weapons yet for enemies so... public float damage; void Start() { turnSpeed = Random.Range(0, 100); } [ContextMenu("ForceTurn")] public void StartTurn() { closestPlayer = FindClosestPlayer(); if (Vector3.Distance(transform.position, closestPlayer.transform.position) > minimumAttackRange) { EnemyMovement.instance.PathfindToTarget(closestPlayer.currentTile.neighbors[Random.Range(0, closestPlayer.currentTile.neighbors.Count)], this); } else { Attack(closestPlayer); TurnHandler.instance.UpdateTurns(); } } protected override void FinishedMovement() { base.FinishedMovement(); TurnHandler.instance.UpdateTurns(); } private PlayerEntity FindClosestPlayer() { PlayerEntity currentClosestPlayer = null; foreach (PlayerEntity player in TurnHandler.instance.playerEntities) { if (!currentClosestPlayer || Vector3.Distance(player.transform.position, transform.position) < Vector3.Distance(currentClosestPlayer.transform.position, transform.position)) { currentClosestPlayer = player; } } return currentClosestPlayer; } protected override void OnKillEffects() { TurnHandler.instance.enemyEntities.Remove(this); Destroy(gameObject); } public void Attack(PlayerEntity target) { target.TakeDamage(damage); } }