using Godot; /// /// Classe para itens consumíveis. /// Itens consumíveis são itens de uso limitado. /// public abstract partial class ConsumableItem : Entity { public ConsumableItem(Vector2I initialPosition, MapData map, EntityDefinition definition) : base(initialPosition, map, definition) { } /// /// Gera uma ação onde o ator consome o item. /// /// /// public Action GetAction(Player consumer) { return new ItemAction(consumer, this); } /// /// Ativa a função deste item. /// Este método é chamado pela ação gerada por ele mesmo. /// Este método permite definir condições para a sua ativação. /// /// Ação gerada pelo item. /// Se a ação foi realizada ou não. public abstract bool Activate(ItemAction action); public void ConsumedBy(Player consumer) { Inventory inventory = consumer.inventory; inventory.RemoveItem(this); QueueFree(); } }