Updated 'DetermineStartPlayerState' class.
Updated the 'DetermineStartPlayerState' class by fixing the logic inside the received(RequestDieMessage msg, int from)' method in it.
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
import pp.mdga.game.Player;
|
||||
import pp.mdga.message.client.RequestDieMessage;
|
||||
import pp.mdga.message.server.ActivePlayerMessage;
|
||||
import pp.mdga.message.server.DiceNowMessage;
|
||||
import pp.mdga.message.server.DieMessage;
|
||||
import pp.mdga.message.server.EndOfTurnMessage;
|
||||
import pp.mdga.server.ServerGameLogic;
|
||||
@@ -48,6 +49,8 @@ public void enter() {
|
||||
@Override
|
||||
public void exit() {
|
||||
LOGGER.log(System.Logger.Level.DEBUG, "Exited DetermineStartPlayerState state.");
|
||||
this.diceResults.clear();
|
||||
this.playersHaveToRoll.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -60,13 +63,12 @@ public void exit() {
|
||||
@Override
|
||||
public void received(RequestDieMessage msg, int from) {
|
||||
int roll = this.logic.getGame().getDie().shuffle();
|
||||
this.logic.getServerSender().send(from, new DieMessage(roll));
|
||||
this.diceResults.put(from, roll);
|
||||
int maximumRoll = 0;
|
||||
if (this.diceResults.size() == this.logic.getGame().getPlayers().size()) {
|
||||
int maximumRoll = 0;
|
||||
for (Map.Entry<Integer, Integer> entry: this.diceResults.entrySet()) {
|
||||
if (maximumRoll == 0) {
|
||||
maximumRoll = this.diceResults.get(entry.getKey());
|
||||
} else if (maximumRoll < entry.getValue()) {
|
||||
if (maximumRoll <= entry.getValue()) {
|
||||
maximumRoll = entry.getValue();
|
||||
} else {
|
||||
this.playersHaveToRoll.remove(entry.getKey());
|
||||
@@ -76,10 +78,12 @@ public void received(RequestDieMessage msg, int from) {
|
||||
|
||||
if (this.playersHaveToRoll.size() == 1) {
|
||||
this.logic.getServerSender().broadcast(new ActivePlayerMessage(this.logic.getGame().getPlayerById(this.playersHaveToRoll.get(0)).getColor()));
|
||||
this.gameAutomaton.setCurrentState(this.gameAutomaton.getAnimationState());
|
||||
} else {
|
||||
for (Integer id: this.playersHaveToRoll) {
|
||||
this.logic.getServerSender().send(id, new DieMessage(roll));
|
||||
this.logic.getServerSender().send(id, new DiceNowMessage());
|
||||
}
|
||||
diceResults.clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user