From ecb751824c4f1298269847b4689aed3040a47e2f Mon Sep 17 00:00:00 2001 From: Fleischer Hanno Date: Mon, 9 Dec 2024 03:20:54 +0100 Subject: [PATCH] created two flags to be able to determine if a turbo card has been played --- .../java/pp/mdga/client/gamestate/TurnState.java | 12 +++++++++++- .../client/gamestate/turnstate/RollDiceState.java | 7 +++++++ .../powercardstate/ChoosePowerCardState.java | 1 + .../mdga/model/src/main/java/pp/mdga/game/Game.java | 10 ++++++++++ 4 files changed, 29 insertions(+), 1 deletion(-) 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 a24141b6..97d0238f 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 @@ -31,6 +31,7 @@ public class TurnState extends GameStates { private final PlayPowerCardState playPowerCardState = new PlayPowerCardState(this, logic); private final PowerCardState powerCardState = new PowerCardState(this, logic); private final RollDiceState rollDiceState = new RollDiceState(this, logic); + private boolean canChangeTurbo = false; public TurnState(ClientState parent, ClientGameLogic logic) { super(parent, logic); @@ -39,13 +40,14 @@ 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())); } } + logic.getGame().setTurboFlag(false); + this.setState(this.powerCardState); } @Override @@ -189,4 +191,12 @@ public GameState getParent(){ public TurnStates getState(){ return state; } + + public boolean isCanChangeTurbo() { + return canChangeTurbo; + } + + public void setCanChangeTurbo(boolean canChangeTurbo) { + this.canChangeTurbo = canChangeTurbo; + } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/RollDiceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/RollDiceState.java index 2d2c1258..ba6265d9 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/RollDiceState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/RollDiceState.java @@ -24,6 +24,13 @@ public RollDiceState(ClientState parent, ClientGameLogic logic) { @Override public void enter() { logic.addNotification(new DiceNowNotification()); + if (logic.getGame().getTurboFlag()){ + if (parent.isCanChangeTurbo()){ + logic.getGame().setTurboFlag(false); + } else { + parent.setCanChangeTurbo(true); + } + } } @Override diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/powercardstate/ChoosePowerCardState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/powercardstate/ChoosePowerCardState.java index 17b57254..59ce519d 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/powercardstate/ChoosePowerCardState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/powercardstate/ChoosePowerCardState.java @@ -89,6 +89,7 @@ public void received(PlayCardMessage msg){ if(msg.getCard().getCard().equals(BonusCard.TURBO)){ logic.getGame().setDiceModifier(msg.getDiceModifier()); parent.getParent().getPlayPowerCard().setPlayCard(msg); + logic.getGame().setTurboFlag(true); parent.getParent().setState(parent.getParent().getPlayPowerCard()); } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java b/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java index 88292f25..276ee777 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java @@ -78,6 +78,8 @@ public class Game { */ private int diceEyes; + private boolean turboFlag = false; + /** * This constructor creates a new Game object. */ @@ -300,6 +302,14 @@ public boolean isHost() { return this.host != -1; } + public void setTurboFlag(boolean flag) { + this.turboFlag = flag; + } + + public boolean getTurboFlag() { + return this.turboFlag; + } + /** * This method returns the players. *