diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/CeremonyState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/CeremonyState.java index 12ff870a..a34d765c 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/CeremonyState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/CeremonyState.java @@ -3,6 +3,7 @@ import pp.mdga.client.ceremonyState.CeremonyStates; import pp.mdga.client.ceremonyState.PodiumState; import pp.mdga.client.ceremonyState.StatisticsState; +import pp.mdga.notification.CeremonyNotification; public class CeremonyState extends ClientState { @@ -15,9 +16,19 @@ public CeremonyState(ClientState parent, ClientGameLogic logic) { super(parent, logic); } + + private CeremonyNotification prepareNotification(){ + CeremonyNotification notification = new CeremonyNotification(); + + //TODO: creation of the notification + + return notification; + } + @Override public void enter() { currentState = podiumState; + logic.addNotification(prepareNotification()); } @Override diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/GameState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/GameState.java index fa8827ed..41e3f0f0 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/GameState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/GameState.java @@ -1,7 +1,10 @@ package pp.mdga.client; import pp.mdga.client.gameState.*; +import pp.mdga.message.server.DieMessage; import pp.mdga.message.server.PauseGameMessage; +import pp.mdga.message.server.RankingResponseMessage; +import pp.mdga.message.server.RankingRollAgainMessage; import pp.mdga.notification.InterruptNotification; public class GameState extends ClientState { @@ -40,12 +43,32 @@ public void selectAnimationEnd(){ state.selectAnimationEnd(); } + @Override + public void selectDice(){ + state.selectDice(); + } + @Override public void received(PauseGameMessage msg){ logic.enterInterrupt(); logic.addNotification(new InterruptNotification(logic.getGame().getPlayers().get(msg.getPlayerId()).getColor())); } + @Override + public void received(DieMessage msg){ + state.received(msg); + } + + @Override + public void received(RankingRollAgainMessage msg){ + state.received(msg); + } + + @Override + public void received(RankingResponseMessage msg){ + state.received(msg); + } + public GameStates getState(){ return state; } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/DetermineStartPlayerState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/DetermineStartPlayerState.java index 8b6480c6..cf3c48c2 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/DetermineStartPlayerState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/DetermineStartPlayerState.java @@ -6,6 +6,9 @@ import pp.mdga.client.gameState.determineStartPlayerState.DetermineStartPlayerStates; import pp.mdga.client.gameState.determineStartPlayerState.RollRankingDiceState; import pp.mdga.client.gameState.determineStartPlayerState.WaitRankingState; +import pp.mdga.message.server.DieMessage; +import pp.mdga.message.server.RankingResponseMessage; +import pp.mdga.message.server.RankingRollAgainMessage; public class DetermineStartPlayerState extends GameStates { @@ -36,6 +39,26 @@ public void setState(DetermineStartPlayerStates state) { this.state = state; } + @Override + public void selectDice() { + state.selectDice(); + } + + @Override + public void received(DieMessage msg){ + state.received(msg); + } + + @Override + public void received(RankingRollAgainMessage msg){ + state.received(msg); + } + + @Override + public void received(RankingResponseMessage msg){ + state.received(msg); + } + public RollRankingDiceState getRollRankingDice() { return rollRankingDiceState; } @@ -47,4 +70,8 @@ public WaitRankingState getWaitRanking() { public DetermineStartPlayerStates getState(){ return state; } + + public GameState getParent() { + return parent; + } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/RollRankingDiceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/RollRankingDiceState.java index 43796e7a..3c1ec5b9 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/RollRankingDiceState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/RollRankingDiceState.java @@ -5,6 +5,7 @@ import pp.mdga.client.gameState.DetermineStartPlayerState; import pp.mdga.message.client.RequestDieMessage; import pp.mdga.message.server.DieMessage; +import pp.mdga.notification.DiceNowNotification; public class RollRankingDiceState extends DetermineStartPlayerStates { @@ -17,7 +18,7 @@ public RollRankingDiceState(ClientState parent, ClientGameLogic logic) { @Override public void enter() { - + logic.addNotification(new DiceNowNotification()); } @Override diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/WaitRankingState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/WaitRankingState.java index 6f470ba3..6e2a96b3 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/WaitRankingState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/WaitRankingState.java @@ -5,6 +5,7 @@ import pp.mdga.client.gameState.DetermineStartPlayerState; import pp.mdga.message.server.RankingResponseMessage; import pp.mdga.message.server.RankingRollAgainMessage; +import pp.mdga.notification.ActivePlayerNotification; public class WaitRankingState extends DetermineStartPlayerStates { @@ -32,6 +33,8 @@ public void received(RankingRollAgainMessage msg){ @Override public void received(RankingResponseMessage msg){ - //TODO: implement + logic.addNotification(new ActivePlayerNotification(logic.getGame().getPlayers().get(msg.getStartingPlayerId()).getColor())); + logic.getGame().setActiveColor(logic.getGame().getPlayers().get(msg.getStartingPlayerId()).getColor()); + parent.getParent().setState(parent.getParent().getWaiting()); } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/RankingResponseMessage.java b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/RankingResponseMessage.java index 397ddcb1..3c8e263d 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/RankingResponseMessage.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/RankingResponseMessage.java @@ -7,11 +7,32 @@ */ @Serializable public class RankingResponseMessage extends ServerMessage { + + private final int startingPlayerId; + + /** + * Constructs a new RankingResponse instance. + */ + public RankingResponseMessage(int startingPlayerId) { + super(); + this.startingPlayerId = startingPlayerId; + } + /** * Constructs a new RankingResponse instance. */ public RankingResponseMessage() { super(); + this.startingPlayerId = 0; + } + + /** + * The id of the starting Player. + * + * @return the id of the starting player as an int + */ + public int getStartingPlayerId() { + return startingPlayerId; } /**