Files
Gruppe-01-fin/Projekte/mdga/model/src/main/java/pp.mdga/server/DetermineStartPlayer.java
2024-11-24 15:27:10 +01:00

46 lines
1.5 KiB
Java

package pp.mdga.server;
import pp.mdga.game.Player;
import pp.mdga.message.client.RequestDice;
import pp.mdga.message.server.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
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, int from) {
final Random random = new Random();
final int dice = random.nextInt(6) + 1;
broadcastUpdate(new Dice(dice, new ArrayList<>()));
}
@Override
public void update() {
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);
}
}
}
}