added more logic for the server state diagram
This commit is contained in:
@@ -2,41 +2,43 @@
|
||||
|
||||
import pp.mdga.game.Player;
|
||||
import pp.mdga.message.client.RequestDice;
|
||||
import pp.mdga.message.server.DiceNow;
|
||||
import pp.mdga.message.server.RankingRollAgain;
|
||||
import pp.mdga.message.server.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class DetermineStartPlayer extends ServerState {
|
||||
private final List<Player> player = new ArrayList<>();
|
||||
|
||||
public DetermineStartPlayer(ServerState parent, ServerGameLogic logic) {
|
||||
super(parent, logic);
|
||||
logic.getGame().addObserver(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void receivedRequestDice(RequestDice msg) {
|
||||
// todo: implement
|
||||
}
|
||||
public void receivedRequestDice(RequestDice msg, int from) {
|
||||
logic.send();
|
||||
|
||||
// todo: msg?, sent to everyone?
|
||||
@Override
|
||||
public void sentRankingResponse() {
|
||||
// todo: implemtent
|
||||
broadcastUpdate(new Dice());
|
||||
}
|
||||
|
||||
@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());
|
||||
if (Boolean.TRUE.equals(logic.getGame().allRanked())) {
|
||||
broadcastUpdate(new RankingResponce());
|
||||
if (logic.getGame().getOrder().isEmpty()) {
|
||||
// todo: save the players with the same value?
|
||||
broadcastUpdate(new RankingRollAgain());
|
||||
broadcastUpdate(new EndOfTurn());
|
||||
} else {
|
||||
// todo: set start player
|
||||
Player startPlayer = new Player(1);
|
||||
logic.getGame().setStartPlayer(startPlayer);
|
||||
logic.send(startPlayer, new DiceNow());
|
||||
broadcastUpdate(new EndOfTurn());
|
||||
parent.gotoState(new Animation(parent, logic));
|
||||
logic.getGame().removeObserver(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user