From 8922cb8f1ca6f01aea864def913d98405e22b434 Mon Sep 17 00:00:00 2001 From: Fleischer Hanno Date: Mon, 9 Dec 2024 02:41:44 +0100 Subject: [PATCH] added removeshield notification --- .../java/pp/mdga/client/gamestate/TurnState.java | 8 ++++++++ .../notification/RemoveShieldNotification.java | 15 +++++++++++++++ .../pp/mdga/server/automaton/game/TurnState.java | 5 +++++ .../automaton/game/turn/PlayPowerCardState.java | 1 - 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 Projekte/mdga/model/src/main/java/pp/mdga/notification/RemoveShieldNotification.java diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/TurnState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/TurnState.java index eec65ac0..2b1e83e7 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/TurnState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/TurnState.java @@ -11,11 +11,13 @@ import pp.mdga.client.gamestate.turnstate.TurnStates; import pp.mdga.game.BonusCard; import pp.mdga.game.Piece; +import pp.mdga.game.ShieldState; import pp.mdga.game.card.HiddenCard; import pp.mdga.game.card.ShieldCard; import pp.mdga.game.card.SwapCard; import pp.mdga.game.card.TurboCard; import pp.mdga.message.server.*; +import pp.mdga.notification.RemoveShieldNotification; import pp.mdga.notification.AcquireCardNotification; import pp.mdga.notification.DrawCardNotification; @@ -38,6 +40,12 @@ public TurnState(ClientState parent, ClientGameLogic logic) { @Override public void enter() { this.setState(this.powerCardState); + for (Piece piece : logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPieces()) { + if (piece.isShielded() || piece.isSuppressed()){ + piece.setShield(ShieldState.NONE); + logic.addNotification(new RemoveShieldNotification(piece.getUuid())); + } + } } @Override diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/notification/RemoveShieldNotification.java b/Projekte/mdga/model/src/main/java/pp/mdga/notification/RemoveShieldNotification.java new file mode 100644 index 00000000..8c808f5c --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/notification/RemoveShieldNotification.java @@ -0,0 +1,15 @@ +package pp.mdga.notification; + +import java.util.UUID; + +public class RemoveShieldNotification extends Notification { + private final UUID pieceUuid; + + public RemoveShieldNotification(UUID pieceUuid) { + this.pieceUuid = pieceUuid; + } + + public UUID getPieceUuid() { + return pieceUuid; + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/TurnState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/TurnState.java index c135410e..464b0e70 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/TurnState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/TurnState.java @@ -1,6 +1,8 @@ package pp.mdga.server.automaton.game; +import pp.mdga.game.Piece; import pp.mdga.game.Player; +import pp.mdga.game.ShieldState; import pp.mdga.message.client.*; import pp.mdga.server.ServerGameLogic; import pp.mdga.server.automaton.GameState; @@ -52,6 +54,9 @@ public TurnState(GameState gameAutomaton, ServerGameLogic logic) { public void enter() { LOGGER.log(Level.INFO, "Entered TurnState state."); this.player = this.logic.getGame().getPlayerById(this.logic.getGame().getActivePlayerId()); + for (Piece piece : this.player.getPieces()) { + piece.setShield(ShieldState.NONE); + } this.setCurrentState(this.powerCardState); } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/PlayPowerCardState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/PlayPowerCardState.java index b4df46c6..fe877ffc 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/PlayPowerCardState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/PlayPowerCardState.java @@ -32,7 +32,6 @@ public PlayPowerCardState(TurnState turnAutomaton, ServerGameLogic logic) { @Override public void enter() { - LOGGER.log(System.Logger.Level.DEBUG, "Entered PlayPowerCardState state."); }