Files
Gruppe-01-fin/Projekte/mdga/model/src/main/java/pp.mdga/server/GameState.java
2024-11-26 11:11:51 +01:00

77 lines
2.0 KiB
Java

package pp.mdga.server;
import pp.mdga.game.Piece;
import pp.mdga.message.client.*;
import pp.mdga.message.server.PossibleCard;
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 receivedAnimationEnd(AnimationEnd msg) {
gameStateMachine.receivedAnimationEnd(msg);
}
// todo piece?
@Override
public void receivedConfirmPiece(Piece piece) {
gameStateMachine.receivedConfirmPiece(piece);
}
@Override
public void receivedNoPowerCard(NoPowerCard msg) {
gameStateMachine.receivedNoPowerCard(msg);
}
@Override
public void receivedSelectCard(SelectCard msg) {
gameStateMachine.receivedSelectCard(msg);
}
@Override
public void receivedRequestDice(RequestDice msg) {
gameStateMachine.receivedRequestDice(msg);
}
// todo msg?
@Override
public void receivedRollRankingDice() {
gameStateMachine.receivedRollRankingDice();
}
@Override
public void receivedSelectedPieces(SelectedPieces msg) {
gameStateMachine.receivedSelectedPieces(msg);
}
@Override
public void sentPossibleCard(PossibleCard msg) {
gameStateMachine.sentPossibleCard(msg);
}
// todo msg?, sent to everyone?
@Override
public void sentRankingResponse() {
gameStateMachine.sentRankingResponse();
}
@Override
public void update() {
if (logic.getGame().playerHasDisconnected()) {
parent.gotoState(new Interrupt(parent, logic));
// todo: change to interrupt, save the last state of gamestatemachine, change from interrupt to gamestate has to restore the last state
logic.getGame().removeObserver(this);
}
}
}