diff options
| author | Matheus <matheus.guedes.mg.m@gmail.com> | 2025-08-28 00:38:48 -0300 |
|---|---|---|
| committer | Matheus <matheus.guedes.mg.m@gmail.com> | 2025-08-28 00:38:48 -0300 |
| commit | 2fb787a744d4f7a37d81233d2913a5ef39122f73 (patch) | |
| tree | f9595d6757203146aa8201a86275c2c842bae03b /scripts/actors/AI/BaseAI.cs | |
| parent | 6c7e2ac133986efa57b43df52a5498c6f7efcf75 (diff) | |
Comentarios
Diffstat (limited to 'scripts/actors/AI/BaseAI.cs')
| -rw-r--r-- | scripts/actors/AI/BaseAI.cs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/scripts/actors/AI/BaseAI.cs b/scripts/actors/AI/BaseAI.cs index f9b5387..23cdcf6 100644 --- a/scripts/actors/AI/BaseAI.cs +++ b/scripts/actors/AI/BaseAI.cs @@ -1,17 +1,36 @@ using Godot; +/// <summary> +/// base para as IAs do jogo. +/// </summary> public abstract partial class BaseAI : Node { + /// <summary> + /// Corpo controlado pela IA. + /// O corpo é a marionete da alma. + /// </summary> protected Actor body; public override void _Ready() { base._Ready(); + // Por padrão, a IA é filha do nó de seu corpo. body = GetParent<Actor>(); } + /// <summary> + /// Computa um único turno para o ator controlado. + /// </summary> public abstract void Perform(); + /// <summary> + /// Utiliza o pathfinder do mapa para obter um caminho + /// da posição atual do ator para um destino qualquer. + /// </summary> + /// <param name="destination">Destino</param> + /// <returns>Vetor com vetores, passo a passo para chegar no destino.</returns> public Godot.Collections.Array<Vector2> GetPathTo(Vector2I destination) { + // Arrays do Godot são muito mais confortáveis de manipular, então + // eu converto o Array do C# em um array do Godot antes de retornar o caminho. Godot.Collections.Array<Vector2> list = []; Vector2[] path = body.Map_Data.Pathfinder.GetPointPath(body.GridPosition, destination); list.AddRange(path); |
