package pp.mdga.server; import pp.mdga.message.client.*; import pp.mdga.message.server.PauseGame; import pp.mdga.message.server.PossibleCard; import pp.mdga.message.server.RankingResponce; public class GameState extends ServerState { private final GameStateMachine gameStateMachine = new GameStateMachine(this, logic); public GameState(ServerState parent, ServerGameLogic logic) { super(parent, logic); logic.getGame().addObserver(this); } @Override public void entry() { gameStateMachine.entry(); } @Override public void exit() { parent.gotoState(new Ceremony(parent, logic)); } @Override public void receivedAnimationEnd(AnimationEnd msg, int from) { gameStateMachine.receivedAnimationEnd(msg, from); } @Override public void receivedNoPowerCard(NoPowerCard msg, int from) { gameStateMachine.receivedNoPowerCard(msg, from); } @Override public void receivedSelectCard(SelectCard msg, int from) { gameStateMachine.receivedSelectCard(msg, from); } @Override public void receivedRequestDice(RequestDice msg, int from) { gameStateMachine.receivedRequestDice(msg, from); } @Override public void receivedSelectedPieces(SelectedPieces msg, int from) { gameStateMachine.receivedSelectedPieces(msg, from); } @Override public void sentPossibleCard(PossibleCard msg, int from) { gameStateMachine.sentPossibleCard(msg, from); } @Override public void sentRankingResponse(RankingResponce msg, int from) { gameStateMachine.sentRankingResponse(msg, from); } @Override public void update() { if (Boolean.TRUE.equals(logic.getGame().playerHasDisconnected())) { broadcastUpdate(new PauseGame()); parent.gotoState(new Interrupt(parent, logic, this)); logic.getGame().removeObserver(this); } } }