Updated 'LobbyState' class.

Updated the 'LobbyState' class by updating all received methods in it.
This commit is contained in:
Daniel Grigencha
2024-12-02 21:22:49 +01:00
parent 951c92d890
commit 72321eab9a

View File

@@ -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());