diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/choosepiecestate/NoPieceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/choosepiecestate/NoPieceState.java index 5c1d5006..cf3860c0 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/choosepiecestate/NoPieceState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/choosepiecestate/NoPieceState.java @@ -4,10 +4,12 @@ import pp.mdga.client.ClientState; import pp.mdga.client.gamestate.turnstate.ChoosePieceState; import pp.mdga.game.Piece; +import pp.mdga.message.server.DiceNowMessage; import pp.mdga.message.server.EndOfTurnMessage; import pp.mdga.message.server.SelectPieceMessage; import pp.mdga.message.server.StartPieceMessage; import pp.mdga.message.server.WaitPieceMessage; +import pp.mdga.notification.DiceNowNotification; import pp.mdga.notification.SelectableMoveNotification; import java.util.ArrayList; @@ -74,4 +76,9 @@ public void received(EndOfTurnMessage msg) { logic.getGame().setTurboFlag(false); parent.getParent().getParent().setState(parent.getParent().getParent().getWaiting()); } + + @Override + public void received(DiceNowMessage msg){ + parent.getParent().setState(parent.getParent().getRollDice()); + } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/choosepiece/NoTurnState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/choosepiece/NoTurnState.java index 94463566..c89cc224 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/choosepiece/NoTurnState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/choosepiece/NoTurnState.java @@ -1,7 +1,9 @@ package pp.mdga.server.automaton.game.turn.choosepiece; +import pp.mdga.Resources; import pp.mdga.game.Color; import pp.mdga.message.server.ActivePlayerMessage; +import pp.mdga.message.server.DiceNowMessage; import pp.mdga.message.server.EndOfTurnMessage; import pp.mdga.server.ServerGameLogic; import pp.mdga.server.automaton.game.turn.ChoosePieceState; @@ -22,6 +24,11 @@ public NoTurnState(ChoosePieceState choosePieceAutomaton, ServerGameLogic logic) super(choosePieceAutomaton, logic); } + /** + * This method is used to end the turn of the active player and determine a new active player + * + * @param color the color of the current active player + */ private void setActivePlayer(Color color) { if (!logic.getGame().getPlayerByColor(color.next(logic.getGame())).isFinished()) { logic.getGame().setActiveColor(logic.getGame().getActiveColor().next(logic.getGame())); @@ -38,8 +45,13 @@ private void setActivePlayer(Color color) { @Override public void enter() { LOGGER.log(System.Logger.Level.DEBUG, "Entered NoTurnState state."); - logic.getServerSender().send(logic.getGame().getActivePlayerId(), new EndOfTurnMessage()); - setActivePlayer(logic.getGame().getActiveColor()); + if (logic.getGame().getDiceEyes() == Resources.MAX_EYES){ + logic.getServerSender().send(logic.getGame().getActivePlayerId(), new DiceNowMessage()); + this.choosePieceAutomaton.getTurnAutomaton().setCurrentState(this.choosePieceAutomaton.getTurnAutomaton().getRollDiceState()); + } else { + logic.getServerSender().send(logic.getGame().getActivePlayerId(), new EndOfTurnMessage()); + setActivePlayer(logic.getGame().getActiveColor()); + } } /**