diff options
Diffstat (limited to 'scripts/Entities/Actors/AI/HostileEnemyAI.cs')
| -rw-r--r-- | scripts/Entities/Actors/AI/HostileEnemyAI.cs | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/scripts/Entities/Actors/AI/HostileEnemyAI.cs b/scripts/Entities/Actors/AI/HostileEnemyAI.cs index 2f925c1..62e3d47 100644 --- a/scripts/Entities/Actors/AI/HostileEnemyAI.cs +++ b/scripts/Entities/Actors/AI/HostileEnemyAI.cs @@ -12,29 +12,29 @@ public partial class HostileEnemyAI : BaseAI /// <summary> /// Caminho até a última posição conhecida do jogador. /// </summary> - private Godot.Collections.Array<Vector2> Path { get; set; } = []; + private Godot.Collections.Array<Vector2> path = []; public override void Perform() { // O alvo da IA sempre é o jogador. - Player target = Body.MapData.Player; + Player target = body.MapData.Player; // Vetor que parte do inimigo até o jogador. - Vector2I offset = target.GridPosition - Body.GridPosition; + Vector2I offset = target.GridPosition - body.GridPosition; // Distância entre o inimigo e o jogador. Leva em consideração somente // um dos eixos. - int distance = Grid.Distance(Body.GridPosition, target.GridPosition); + int distance = Grid.Distance(body.GridPosition, target.GridPosition); // A ação executada no turno pode ser de ataque ou de movimento. Action action; // Só faz sentido atacar o jogador se o inimigo estiver visível. - if (Body.MapData.GetTile(Body.GridPosition).IsInView) + if (body.MapData.GetTile(body.GridPosition).IsInView) { // Se o inimigo consegue ver que o jogador está morto, // IT'S OVER. if (!target.IsAlive) { - action = new WaitAction(Body); + action = new WaitAction(body); action.Perform(); return; } @@ -42,7 +42,7 @@ public partial class HostileEnemyAI : BaseAI // Se estiver do lado do jogador, ataque. if (distance <= 1) { - action = new MeleeAction(Body, offset); + action = new MeleeAction(body, offset); action.Perform(); // Executada a ação, acabamos nosso turno aqui. return; @@ -51,34 +51,34 @@ public partial class HostileEnemyAI : BaseAI // Se o inimigo estiver visível para o jogador, // consideramos que ele também consiga ver o jogador. // Logo, atualizamos o caminho para a posição atual do jogador. - Path = GetPathTo(target.GridPosition); + path = GetPathTo(target.GridPosition); // O primeiro passo é a posição atual do inimigo, podemos remover. - Path.RemoveAt(0); + path.RemoveAt(0); } // Se existir um caminho conhecido para o jogador. - if (Path.Count > 0) + if (path.Count > 0) { // Pegamos o próximo passo para o destino. - Vector2I destination = (Vector2I)Path[0]; + Vector2I destination = (Vector2I)path[0]; // Se tiver o caminho estiver bloqueado, paramos o nosso turno aqui. - if (Body.MapData.GetBlockingEntityAtPosition(destination) != null) + if (body.MapData.GetBlockingEntityAtPosition(destination) != null) { - action = new WaitAction(Body); + action = new WaitAction(body); action.Perform(); return; } // Caso o contrário, criamos uma nova ação de movimentação e a executamos. - action = new MovementAction(Body, destination - Body.GridPosition); + action = new MovementAction(body, destination - body.GridPosition); action.Perform(); // Podemos remover o passo do caminho. - Path.RemoveAt(0); + path.RemoveAt(0); return; } // Senão, espere. - action = new WaitAction(Body); + action = new WaitAction(body); action.Perform(); return; } |
