using Godot; /// /// Action representa uma ação no jogo efetuada por um ator. /// Ações são geradas pelo jogador e pela IA, elas regem os atores do jogo. /// public abstract partial class Action : RefCounted { /// /// O ator que realiza a ação. /// protected Actor actor; public Actor ThisActor { get => actor; } // O custo da ação. protected int cost; public Action(Actor actor) { this.actor = actor; // Custo base, subclasses podem sobreescrever isto se quiserem. cost = 10; } /// /// Método que executa a ação. Subclasses da ação devem implementar este método. /// /// Exemplo: /// /// Action action = new Action(actor); /// /* . . . */ /// action.Perform(); /// /// /// /// Se a ação foi executada ou não. public abstract bool Perform(); /// /// É conveniente ter acesso ao mapa dentro de uma ação. /// protected MapData Map_Data { get => actor.Map_Data; } }