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.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

View File

@@ -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;
}

View File

@@ -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;
}
}

View File

@@ -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

View File

@@ -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());
}
}

View File

@@ -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;
}
/**