merge dev into test #33
@@ -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()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user