diff options
| author | Matheus <matheus.guedes.mg.m@gmail.com> | 2025-08-28 18:23:02 -0300 |
|---|---|---|
| committer | Matheus <matheus.guedes.mg.m@gmail.com> | 2025-08-28 18:23:02 -0300 |
| commit | 29e378ff070ae525a666ffa6a286caab898abbc7 (patch) | |
| tree | b89848e913e2593e0c8abab24c26268ad42acb80 | |
| parent | 2ed63124ef044a223fc9c7b660100c91af6f39b0 (diff) | |
Correção no sistema
| -rw-r--r-- | scripts/Game.cs | 6 | ||||
| -rw-r--r-- | scripts/actors/actions/MeleeAction.cs | 2 | ||||
| -rw-r--r-- | scripts/actors/actions/MovementAction.cs | 2 |
3 files changed, 5 insertions, 5 deletions
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 /// </summary> 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); } } |
