merge the new developmentbranch into the test branch #39

Closed
j23f0712 wants to merge 431 commits from development2 into dev/test
164 changed files with 3323 additions and 1710 deletions
Showing only changes of commit f2c34aee2d - Show all commits

View File

@@ -6,6 +6,7 @@
import pp.mdga.message.server.DiceNowMessage;
import pp.mdga.message.server.DieMessage;
import pp.mdga.message.server.EndOfTurnMessage;
import pp.mdga.message.server.RankingResponseMessage;
import pp.mdga.server.ServerGameLogic;
import pp.mdga.server.automaton.GameState;
@@ -26,6 +27,7 @@ public class DetermineStartPlayerState extends GameAutomatonState {
* Create DetermineStartPlayerState attributes.
*/
private Map<Integer, Integer> diceResults = new HashMap<>();
private Map<Integer, Integer> rankedResults = new HashMap<>();
private List<Integer> playersHaveToRoll = new ArrayList<>();
/**
@@ -50,6 +52,7 @@ public void enter() {
public void exit() {
LOGGER.log(System.Logger.Level.DEBUG, "Exited DetermineStartPlayerState state.");
this.diceResults.clear();
this.rankedResults.clear();
this.playersHaveToRoll.clear();
}
@@ -71,19 +74,25 @@ public void received(RequestDieMessage msg, int from) {
if (maximumRoll <= entry.getValue()) {
maximumRoll = entry.getValue();
} else {
this.rankedResults.put(entry.getKey(), entry.getValue());
this.playersHaveToRoll.remove(entry.getKey());
this.logic.getServerSender().send(entry.getKey(), new EndOfTurnMessage());
}
}
for (Map.Entry<Integer, Integer> entry: this.rankedResults.entrySet()) {
System.out.println("[SERVER] Player: %s rolled a %d".formatted(this.logic.getGame().getPlayerById(entry.getKey()).getName(), entry.getKey()));
}
if (this.playersHaveToRoll.size() == 1) {
this.logic.getServerSender().broadcast(new RankingResponseMessage(this.rankedResults));
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 DiceNowMessage());
}
diceResults.clear();
this.diceResults.clear();
}
}
}