merge dev into test #33

Merged
j23f0712 merged 36 commits from development into dev/test 2024-12-02 17:37:00 +01:00
49 changed files with 1215 additions and 388 deletions
Showing only changes of commit 92d2e74748 - Show all commits

View File

@@ -7,6 +7,7 @@
import pp.mdga.message.server.*; import pp.mdga.message.server.*;
import pp.mdga.server.ServerGameLogic; import pp.mdga.server.ServerGameLogic;
import java.util.ArrayList;
import java.util.Map; import java.util.Map;
/** /**
@@ -115,6 +116,28 @@ 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) {
ArrayList<Color> colors = new ArrayList<>();
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(colors.contains(entry.getValue().getColor())) {
colors.remove(entry.getValue().getColor());
}
}
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)); this.logic.getServerSender().broadcast(new UpdateReadyMessage(from, true));
for (Map.Entry<Integer, Player> entry : this.logic.getGame().getPlayers().entrySet()) { for (Map.Entry<Integer, Player> entry : this.logic.getGame().getPlayers().entrySet()) {