From 29e378ff070ae525a666ffa6a286caab898abbc7 Mon Sep 17 00:00:00 2001 From: Matheus Date: Thu, 28 Aug 2025 18:23:02 -0300 Subject: Correção no sistema MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/Game.cs | 6 +++--- scripts/actors/actions/MeleeAction.cs | 2 +- scripts/actors/actions/MovementAction.cs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'scripts') diff --git a/scripts/Game.cs b/scripts/Game.cs index b47c154..ab4bd8e 100644 --- a/scripts/Game.cs +++ b/scripts/Game.cs @@ -50,8 +50,8 @@ public partial class Game : Node { // Pegamos uma ação do usuário Action action = inputHandler.GetAction(player); - // Se realmente houve uma ação, computamos um turno. - if (action != null) { + // Se realmente houve uma ação ou se o jogador não puder agir, computamos um turno. + if (action != null || player.Energy < 0) { Vector2I previousPlayerPos = player.GridPosition; // Início do turno, o jogador recebe um pouco de energia. @@ -60,7 +60,7 @@ public partial class Game : Node { } // Primeiro executamos a ação do jogador - action.Perform(); + action?.Perform(); // Se o jogador ainda tem energia, ele poderá fazer // mais um turno sem interrupções. diff --git a/scripts/actors/actions/MeleeAction.cs b/scripts/actors/actions/MeleeAction.cs index 56a2dc3..fe00422 100644 --- a/scripts/actors/actions/MeleeAction.cs +++ b/scripts/actors/actions/MeleeAction.cs @@ -14,6 +14,7 @@ public partial class MeleeAction : DirectionalAction /// public override void Perform() { + actor.Energy -= cost; // Eu te disse que este método seria útil. Actor target = GetTargetActor(); @@ -32,7 +33,6 @@ public partial class MeleeAction : DirectionalAction attackDesc += $" mas {target.ActorName} tem músculos de aço."; } - actor.Energy -= cost; GD.Print(attackDesc); } } diff --git a/scripts/actors/actions/MovementAction.cs b/scripts/actors/actions/MovementAction.cs index 6cec875..7d0c93b 100644 --- a/scripts/actors/actions/MovementAction.cs +++ b/scripts/actors/actions/MovementAction.cs @@ -11,6 +11,7 @@ public partial class MovementAction : DirectionalAction public override void Perform() { + actor.Energy -= cost; // Não anda se o destino for um tile sólido. if (!Map_Data.IsTileWalkable(Destination)) return; @@ -18,7 +19,6 @@ public partial class MovementAction : DirectionalAction // Na maioria dos casos, essa condição nunca é verdadeira. if (GetTargetActor() != null) return; - actor.Energy -= cost; actor.Walk(Offset); } } -- cgit v1.2.3