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 1a40bf37..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 @@ -1,15 +1,25 @@ package pp.mdga.server.automaton.game.turn; +import pp.mdga.message.client.AnimationEndMessage; +import pp.mdga.message.server.DiceNowMessage; import pp.mdga.server.ServerGameLogic; import pp.mdga.server.automaton.game.AnimationState; import pp.mdga.server.automaton.game.TurnState; +import java.util.HashSet; +import java.util.Set; + public class PlayPowerCardState extends TurnAutomatonState { /** * Create FirstRollState constants. */ private static final System.Logger LOGGER = System.getLogger(PlayPowerCardState.class.getName()); + /** + * Create PlayPowerCardState attributes. + */ + private Set messageReceived = new HashSet(); + /** * Constructs a server state of the specified game logic. * @@ -29,4 +39,20 @@ public void enter() { public void exit() { LOGGER.log(System.Logger.Level.DEBUG, "Exited PlayPowerCardState state."); } + + /** + * This method will be called whenever the server received an AnimationEndMessage message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a AnimationEndMessage object. + * @param from as the client id of the player as an Integer. + */ + @Override + public void received(AnimationEndMessage msg, int from) { + this.messageReceived.add(from); + if (this.messageReceived.size() == this.logic.getGame().getPlayers().size()) { + this.logic.getServerSender().send(this.logic.getGame().getActivePlayerId(), new DiceNowMessage()); + this.turnAutomaton.setCurrentState(this.turnAutomaton.getRollDiceState()); + } + } }