merge the new developmentbranch into the test branch #39

Closed
j23f0712 wants to merge 431 commits from development2 into dev/test
Showing only changes of commit 72321eab9a - Show all commits

View File

@@ -80,18 +80,13 @@ public void received(JoinedLobbyMessage msg, int from) {
*/ */
@Override @Override
public void received(SelectTSKMessage msg, int from) { public void received(SelectTSKMessage msg, int from) {
for (Map.Entry<Integer, Player> entry : this.logic.getGame().getPlayers().entrySet()) { if (msg.getColor() != Color.NONE && !this.logic.getGame().isColorTaken(msg.getColor())) {
if (entry.getValue().getColor() == msg.getColor()) { this.logic.getServerSender().broadcast(new UpdateTSKMessage(from, Color.NONE, false));
return;
}
}
if (this.logic.getGame().getPlayerById(from).getColor() != Color.NONE) {
this.logic.getServerSender().broadcast(new UpdateTSKMessage(from, this.logic.getGame().getPlayerById(from).getColor(), false));
}
this.logic.getGame().getPlayerById(from).setColor(msg.getColor()); this.logic.getGame().getPlayerById(from).setColor(msg.getColor());
this.logic.getServerSender().broadcast(new UpdateTSKMessage(from, msg.getColor(), true)); this.logic.getServerSender().broadcast(new UpdateTSKMessage(from, msg.getColor(), true));
} else {
this.logic.getServerSender().send(from, new IncorrectRequestMessage(0));
}
} }
/** /**
@@ -116,34 +111,21 @@ public void received(DeselectTSKMessage msg, int from) {
*/ */
@Override @Override
public void received(LobbyReadyMessage msg, int from) { public void received(LobbyReadyMessage msg, int from) {
//assign a free color
if (this.logic.getGame().getPlayerById(from).getColor() == Color.NONE) { if (this.logic.getGame().getPlayerById(from).getColor() == Color.NONE) {
ArrayList<Color> colors = new ArrayList<>(); Color color = this.logic.getGame().getFirstUnusedColor();
colors.add(Color.ARMY);
colors.add(Color.AIRFORCE);
colors.add(Color.NAVY);
colors.add(Color.CYBER);
for (Map.Entry<Integer, Player> entry : this.logic.getGame().getPlayers().entrySet()) { if (color != null) {
if (colors.contains(entry.getValue().getColor())) { this.logic.getGame().getPlayerById(from).setColor(color);
colors.remove(entry.getValue().getColor()); this.logic.getServerSender().broadcast(new UpdateTSKMessage(from, color, true));
} else {
this.logic.getServerSender().send(from, new IncorrectRequestMessage(1));
} }
} }
if (colors.size() < 1) {
throw new RuntimeException("can not assign a color");
}
this.logic.getGame().getPlayerById(from).setColor(colors.get(0));
this.logic.getServerSender().broadcast(new UpdateTSKMessage(from, colors.get(0), true));
}
this.logic.getGame().getPlayerById(from).setReady(true); this.logic.getGame().getPlayerById(from).setReady(true);
this.logic.getServerSender().broadcast(new UpdateReadyMessage(from, true)); if (this.logic.getGame().areAllReady()) {
for (Map.Entry<Integer, Player> entry : this.logic.getGame().getPlayers().entrySet()) { this.initializeGame();
if (!entry.getValue().isReady()) { this.logic.getServerSender().broadcast(new ServerStartGameMessage());
return; this.logic.setCurrentState(this.logic.getGameState());
}
} }
} }
@@ -157,7 +139,6 @@ public void received(LobbyReadyMessage msg, int from) {
@Override @Override
public void received(LobbyNotReadyMessage msg, int from) { public void received(LobbyNotReadyMessage msg, int from) {
this.logic.getGame().getPlayerById(from).setReady(false); this.logic.getGame().getPlayerById(from).setReady(false);
this.logic.getGame().setAllReady(false);
this.logic.getServerSender().broadcast(new UpdateReadyMessage(from, false)); this.logic.getServerSender().broadcast(new UpdateReadyMessage(from, false));
} }
@@ -187,7 +168,7 @@ public void received(LeaveGameMessage msg, int from) {
*/ */
@Override @Override
public void received(StartGameMessage msg, int from) { public void received(StartGameMessage msg, int from) {
if (msg.isForceStartGame() || this.logic.getGame().allReady()) { if (msg.isForceStartGame() || this.logic.getGame().areAllReady()) {
this.initializeGame(); this.initializeGame();
this.logic.getServerSender().broadcast(new ServerStartGameMessage()); this.logic.getServerSender().broadcast(new ServerStartGameMessage());
this.logic.setCurrentState(this.logic.getGameState()); this.logic.setCurrentState(this.logic.getGameState());