Updated 'LobbyState' class.
Updated the 'LobbyState' class by updating all received methods in it.
This commit is contained in:
@@ -80,18 +80,13 @@ public void received(JoinedLobbyMessage msg, int from) {
|
||||
*/
|
||||
@Override
|
||||
public void received(SelectTSKMessage msg, int from) {
|
||||
for (Map.Entry<Integer, Player> entry : this.logic.getGame().getPlayers().entrySet()) {
|
||||
if (entry.getValue().getColor() == msg.getColor()) {
|
||||
return;
|
||||
}
|
||||
if (msg.getColor() != Color.NONE && !this.logic.getGame().isColorTaken(msg.getColor())) {
|
||||
this.logic.getServerSender().broadcast(new UpdateTSKMessage(from, Color.NONE, false));
|
||||
this.logic.getGame().getPlayerById(from).setColor(msg.getColor());
|
||||
this.logic.getServerSender().broadcast(new UpdateTSKMessage(from, msg.getColor(), true));
|
||||
} else {
|
||||
this.logic.getServerSender().send(from, new IncorrectRequestMessage(0));
|
||||
}
|
||||
|
||||
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.getServerSender().broadcast(new UpdateTSKMessage(from, msg.getColor(), true));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -116,34 +111,21 @@ 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);
|
||||
Color color = this.logic.getGame().getFirstUnusedColor();
|
||||
|
||||
for (Map.Entry<Integer, Player> entry : this.logic.getGame().getPlayers().entrySet()) {
|
||||
if (colors.contains(entry.getValue().getColor())) {
|
||||
colors.remove(entry.getValue().getColor());
|
||||
}
|
||||
if (color != null) {
|
||||
this.logic.getGame().getPlayerById(from).setColor(color);
|
||||
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.getServerSender().broadcast(new UpdateReadyMessage(from, true));
|
||||
for (Map.Entry<Integer, Player> entry : this.logic.getGame().getPlayers().entrySet()) {
|
||||
if (!entry.getValue().isReady()) {
|
||||
return;
|
||||
}
|
||||
if (this.logic.getGame().areAllReady()) {
|
||||
this.initializeGame();
|
||||
this.logic.getServerSender().broadcast(new ServerStartGameMessage());
|
||||
this.logic.setCurrentState(this.logic.getGameState());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -157,7 +139,6 @@ public void received(LobbyReadyMessage msg, int from) {
|
||||
@Override
|
||||
public void received(LobbyNotReadyMessage msg, int from) {
|
||||
this.logic.getGame().getPlayerById(from).setReady(false);
|
||||
this.logic.getGame().setAllReady(false);
|
||||
this.logic.getServerSender().broadcast(new UpdateReadyMessage(from, false));
|
||||
}
|
||||
|
||||
@@ -187,7 +168,7 @@ public void received(LeaveGameMessage msg, int from) {
|
||||
*/
|
||||
@Override
|
||||
public void received(StartGameMessage msg, int from) {
|
||||
if (msg.isForceStartGame() || this.logic.getGame().allReady()) {
|
||||
if (msg.isForceStartGame() || this.logic.getGame().areAllReady()) {
|
||||
this.initializeGame();
|
||||
this.logic.getServerSender().broadcast(new ServerStartGameMessage());
|
||||
this.logic.setCurrentState(this.logic.getGameState());
|
||||
|
||||
Reference in New Issue
Block a user