merge dev into test #33
@@ -7,6 +7,7 @@
|
||||
import pp.mdga.message.server.*;
|
||||
import pp.mdga.server.ServerGameLogic;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -115,6 +116,28 @@ public void received(DeselectTSKMessage msg, int from) {
|
||||
*/
|
||||
@Override
|
||||
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.getServerSender().broadcast(new UpdateReadyMessage(from, true));
|
||||
for (Map.Entry<Integer, Player> entry : this.logic.getGame().getPlayers().entrySet()) {
|
||||
|
||||
Reference in New Issue
Block a user