made the determinstartplayer machine fully functional

This commit is contained in:
Fleischer Hanno
2024-11-30 20:50:57 +01:00
parent 422e94ec48
commit 81d037d232
6 changed files with 88 additions and 2 deletions

View File

@@ -3,6 +3,7 @@
import pp.mdga.client.ceremonyState.CeremonyStates; import pp.mdga.client.ceremonyState.CeremonyStates;
import pp.mdga.client.ceremonyState.PodiumState; import pp.mdga.client.ceremonyState.PodiumState;
import pp.mdga.client.ceremonyState.StatisticsState; import pp.mdga.client.ceremonyState.StatisticsState;
import pp.mdga.notification.CeremonyNotification;
public class CeremonyState extends ClientState { public class CeremonyState extends ClientState {
@@ -15,9 +16,19 @@ public CeremonyState(ClientState parent, ClientGameLogic logic) {
super(parent, logic); super(parent, logic);
} }
private CeremonyNotification prepareNotification(){
CeremonyNotification notification = new CeremonyNotification();
//TODO: creation of the notification
return notification;
}
@Override @Override
public void enter() { public void enter() {
currentState = podiumState; currentState = podiumState;
logic.addNotification(prepareNotification());
} }
@Override @Override

View File

@@ -1,7 +1,10 @@
package pp.mdga.client; package pp.mdga.client;
import pp.mdga.client.gameState.*; import pp.mdga.client.gameState.*;
import pp.mdga.message.server.DieMessage;
import pp.mdga.message.server.PauseGameMessage; import pp.mdga.message.server.PauseGameMessage;
import pp.mdga.message.server.RankingResponseMessage;
import pp.mdga.message.server.RankingRollAgainMessage;
import pp.mdga.notification.InterruptNotification; import pp.mdga.notification.InterruptNotification;
public class GameState extends ClientState { public class GameState extends ClientState {
@@ -40,12 +43,32 @@ public void selectAnimationEnd(){
state.selectAnimationEnd(); state.selectAnimationEnd();
} }
@Override
public void selectDice(){
state.selectDice();
}
@Override @Override
public void received(PauseGameMessage msg){ public void received(PauseGameMessage msg){
logic.enterInterrupt(); logic.enterInterrupt();
logic.addNotification(new InterruptNotification(logic.getGame().getPlayers().get(msg.getPlayerId()).getColor())); 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(){ public GameStates getState(){
return state; return state;
} }

View File

@@ -6,6 +6,9 @@
import pp.mdga.client.gameState.determineStartPlayerState.DetermineStartPlayerStates; import pp.mdga.client.gameState.determineStartPlayerState.DetermineStartPlayerStates;
import pp.mdga.client.gameState.determineStartPlayerState.RollRankingDiceState; import pp.mdga.client.gameState.determineStartPlayerState.RollRankingDiceState;
import pp.mdga.client.gameState.determineStartPlayerState.WaitRankingState; 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 { public class DetermineStartPlayerState extends GameStates {
@@ -36,6 +39,26 @@ public void setState(DetermineStartPlayerStates state) {
this.state = 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() { public RollRankingDiceState getRollRankingDice() {
return rollRankingDiceState; return rollRankingDiceState;
} }
@@ -47,4 +70,8 @@ public WaitRankingState getWaitRanking() {
public DetermineStartPlayerStates getState(){ public DetermineStartPlayerStates getState(){
return state; return state;
} }
public GameState getParent() {
return parent;
}
} }

View File

@@ -5,6 +5,7 @@
import pp.mdga.client.gameState.DetermineStartPlayerState; import pp.mdga.client.gameState.DetermineStartPlayerState;
import pp.mdga.message.client.RequestDieMessage; import pp.mdga.message.client.RequestDieMessage;
import pp.mdga.message.server.DieMessage; import pp.mdga.message.server.DieMessage;
import pp.mdga.notification.DiceNowNotification;
public class RollRankingDiceState extends DetermineStartPlayerStates { public class RollRankingDiceState extends DetermineStartPlayerStates {
@@ -17,7 +18,7 @@ public RollRankingDiceState(ClientState parent, ClientGameLogic logic) {
@Override @Override
public void enter() { public void enter() {
logic.addNotification(new DiceNowNotification());
} }
@Override @Override

View File

@@ -5,6 +5,7 @@
import pp.mdga.client.gameState.DetermineStartPlayerState; import pp.mdga.client.gameState.DetermineStartPlayerState;
import pp.mdga.message.server.RankingResponseMessage; import pp.mdga.message.server.RankingResponseMessage;
import pp.mdga.message.server.RankingRollAgainMessage; import pp.mdga.message.server.RankingRollAgainMessage;
import pp.mdga.notification.ActivePlayerNotification;
public class WaitRankingState extends DetermineStartPlayerStates { public class WaitRankingState extends DetermineStartPlayerStates {
@@ -32,6 +33,8 @@ public void received(RankingRollAgainMessage msg){
@Override @Override
public void received(RankingResponseMessage msg){ 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());
} }
} }

View File

@@ -7,11 +7,32 @@
*/ */
@Serializable @Serializable
public class RankingResponseMessage extends ServerMessage { 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. * Constructs a new RankingResponse instance.
*/ */
public RankingResponseMessage() { public RankingResponseMessage() {
super(); 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;
} }
/** /**