From e457fe23d45ca1e96e27cb2708fedf2b64289885 Mon Sep 17 00:00:00 2001 From: Fleischer Hanno Date: Mon, 9 Dec 2024 02:03:57 +0100 Subject: [PATCH] added a reset for the dice modifier in the server --- Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java | 4 ++-- .../mdga/server/automaton/game/turn/RollDiceState.java | 9 +++++++++ .../automaton/game/turn/powercard/TurboCardState.java | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) 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 c7859758..88292f25 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 @@ -92,9 +92,9 @@ public Game() { * This method initializes the draw pile with the predefined number of bonus cards. */ private void initializeDrawPile() { -// this.addBonusCards(new TurboCard(), AMOUNT_OF_TURBO_CARDS); + this.addBonusCards(new TurboCard(), AMOUNT_OF_TURBO_CARDS); // this.addBonusCards(new SwapCard(), AMOUNT_OF_SWAP_CARDS); - this.addBonusCards(new ShieldCard(), AMOUNT_OF_SHIELD_CARDS); +// this.addBonusCards(new ShieldCard(), AMOUNT_OF_SHIELD_CARDS); Collections.shuffle(this.drawPile); } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/RollDiceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/RollDiceState.java index 7f7ce11d..225c79a0 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/RollDiceState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/RollDiceState.java @@ -22,6 +22,7 @@ public class RollDiceState extends TurnAutomatonState { private final FirstRollState firstRollState; private final SecondRollState secondRollState; private final ThirdRollState thirdRollState; + private boolean resetModifier = true; /** * Constructs a server state of the specified game logic. @@ -39,12 +40,16 @@ public RollDiceState(TurnState turnAutomaton, ServerGameLogic logic) { @Override public void enter() { LOGGER.log(System.Logger.Level.DEBUG, "Entered RollDiceState state."); + if (resetModifier){ + logic.getGame().setDiceModifier(1); + } this.setCurrentState(this.firstRollState); } @Override public void exit() { LOGGER.log(System.Logger.Level.DEBUG, "Exited RollDiceState state."); + resetModifier = true; } /** @@ -73,6 +78,10 @@ public RollDiceAutomatonState getCurrentState() { return this.currentState; } + public void setResetModifier(boolean resetModifier) { + this.resetModifier = resetModifier; + } + /** * This method will be used to return firstRollState attribute of RollDiceState class. * diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/powercard/TurboCardState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/powercard/TurboCardState.java index 74d40d0d..38f04f5a 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/powercard/TurboCardState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/powercard/TurboCardState.java @@ -28,6 +28,7 @@ public void enter() { this.logic.getServerSender().send(this.logic.getGame().getActivePlayerId(), new PlayCardMessage(this.powerCardAutomaton.getSelectedCard(), new ArrayList<>(), this.logic.getGame().getDiceModifier())); this.logic.getGame().getPlayerByColor(this.logic.getGame().getActiveColor()).removeHandCard(this.powerCardAutomaton.getSelectedCard()); this.logic.getGame().getDiscardPile().add(this.powerCardAutomaton.getSelectedCard()); + this.powerCardAutomaton.getTurnAutomaton().getRollDiceState().setResetModifier(false); this.powerCardAutomaton.getTurnAutomaton().setCurrentState(this.powerCardAutomaton.getTurnAutomaton().getPlayPowerCardState()); }