added more logic for the server state diagram

This commit is contained in:
Daniel Grigencha
2024-11-22 09:37:49 +01:00
parent 04501de11c
commit 89232901a7
21 changed files with 570 additions and 251 deletions

View File

@@ -1,5 +1,11 @@
package pp.mdga.server;
import pp.mdga.client.Spectator;
import pp.mdga.game.Player;
import pp.mdga.message.server.ActivePlayer;
import pp.mdga.message.server.Ceremony;
import pp.mdga.message.server.EndOfTurn;
public class Turn extends ServerState {
private final TurnStateMachine turnStateMachine = new TurnStateMachine(this, logic);
@@ -8,4 +14,23 @@ public Turn(ServerState parent, ServerGameLogic logic) {
}
// todo: when TurnStateMachine is in the end state, and then?
@Override
public void exit() {
Player player = logic.getGame().getStartPlayer();
// if (player.isFinished()) {
// logic.send(player, new Spectator());
// } else {
// logic.send(player, new EndOfTurn());
// }
if (logic.getGame().getPlayers().size() == 1) {
broadcastUpdate(new Ceremony());
this.getParent().getParent().exit();
} else {
// todo: next player
broadcastUpdate(new ActivePlayer());
parent.gotoState(new Animation(parent, logic));
}
}
}