diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/AnimationState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/AnimationState.java index 5e067e89..772ac081 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/AnimationState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/AnimationState.java @@ -5,6 +5,9 @@ import pp.mdga.server.ServerGameLogic; import pp.mdga.server.automaton.GameState; +import java.util.HashMap; +import java.util.Map; + /** * This class represents the animation state of the game state. * @@ -18,7 +21,7 @@ public class AnimationState extends GameAutomatonState { /** * Create AnimationState attributes. */ - private int messageReceived = 0; + private final Map messageReceived = new HashMap<>(); /** * Constructs a server state of the specified game logic. @@ -38,7 +41,7 @@ public void enter() { @Override public void exit() { LOGGER.log(System.Logger.Level.DEBUG, "Exited AnimationState state."); - this.messageReceived = 0; + this.messageReceived.clear(); } /** @@ -50,12 +53,11 @@ public void exit() { */ @Override public void received(AnimationEndMessage msg, int from) { - if (this.messageReceived == this.logic.getGame().getPlayers().size()) { + this.messageReceived.put(from, true) + if (this.messageReceived.size() == this.logic.getGame().getPlayers().size()) { this.logic.getServerSender().send(this.logic.getGame().getActivePlayerId(), new DiceNowMessage()); this.gameAutomaton.setCurrentState(this.gameAutomaton.getTurnState()); this.gameAutomaton.getTurnState().setCurrentState(this.gameAutomaton.getTurnState().getPowerCardState()); - } else { - this.messageReceived++; } } }