- a client state machine consits out of a 'ClientState' (every state of the machine) and a 'ClientStateMachine' (every state, which consists out of states), the machine starts with the ClientAutomaton - analog for server - started to implement logic for the server, transition from 'Lobby' to 'GameState'
76 lines
1.9 KiB
Java
76 lines
1.9 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 receivedPowerCardChoice(SelectCard msg) {
|
|
gameStateMachine.receivedPowerCardChoice(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 Ceremony(parent, logic));
|
|
logic.getGame().removeObserver(this);
|
|
}
|
|
}
|
|
}
|