added more logic for the server state diagram

This commit is contained in:
Daniel Grigencha
2024-11-17 20:17:19 +01:00
committed by Felix
parent 96489f2454
commit 3949a00932
21 changed files with 374 additions and 16 deletions

View File

@@ -1,7 +1,42 @@
package pp.mdga.server;
import pp.mdga.game.Player;
import pp.mdga.message.client.RequestDice;
import pp.mdga.message.server.DiceNow;
import pp.mdga.message.server.RankingRollAgain;
public class DetermineStartPlayer extends ServerState {
public DetermineStartPlayer(ServerState parent, ServerGameLogic logic) {
super(parent, logic);
logic.getGame().addObserver(this);
}
@Override
public void receivedRequestDice(RequestDice msg) {
// todo: implement
}
// todo: msg?, sent to everyone?
@Override
public void sentRankingResponse() {
// todo: implemtent
}
@Override
public void update() {
if (logic.getGame().allRanked()) {
if (logic.getGame().getStartPlayer() == null) {
// todo: send it to everyone? or player with the same dice value? save the players with the same value?
logic.send(new Player(1), new RankingRollAgain());
} else {
// todo: set start player
Player startPlayer = new Player(1);
logic.getGame().setStartPlayer(startPlayer);
logic.send(startPlayer, new DiceNow());
parent.gotoState(new Animation(parent, logic));
logic.getGame().removeObserver(this);
}
}
}
}