From 3aca60d8ee7c0ecd0d12488b067240a5e325ba11 Mon Sep 17 00:00:00 2001 From: Seraina Date: Sat, 30 Apr 2022 15:54:16 +0200 Subject: [PATCH] Added view change printToGui parameter for Start, Lobby and Game --- .../ch/unibas/dmi/dbis/cs108/gamelogic/Game.java | 5 +++-- .../dmi/dbis/cs108/multiplayer/client/Client.java | 11 +++++++++++ .../multiplayer/client/gui/GameStateModel.java | 2 +- .../cs108/multiplayer/helpers/GuiParameters.java | 15 +++++++++++++++ .../multiplayer/server/JServerProtocolParser.java | 5 +++++ 5 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/Game.java b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/Game.java index 8cf5356..670ec53 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/Game.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/Game.java @@ -152,18 +152,19 @@ public class Game implements Runnable { LOGGER.info("NIGHT"); gameOverCheck = voteHandler.ghostVote(gameState.getPassengerTrain(), this); setDay(true); - lobby.getAdmin().sendMsgToClientsInLobby(Protocol.printToGUI + "$" + ClientGameInfoHandler.itsDayTime); + lobby.getAdmin().sendMsgToClientsInLobby(Protocol.printToGUI + "$" + ClientGameInfoHandler.itsDayTime + "$"); } else { LOGGER.info("DAY"); gameOverCheck = voteHandler.humanVote(gameState.getPassengerTrain(), this); setDay(false); - lobby.getAdmin().sendMsgToClientsInLobby(Protocol.printToGUI + "$" + ClientGameInfoHandler.itsNightTime); + lobby.getAdmin().sendMsgToClientsInLobby(Protocol.printToGUI + "$" + ClientGameInfoHandler.itsNightTime + "$"); } if (gameOverCheck.equals(ClientGameInfoHandler.gameOverGhostsWin) || gameOverCheck.equals( ClientGameInfoHandler.gameOverHumansWin)) { if (gameOverCheck.equals(ClientGameInfoHandler.gameOverGhostsWin) && getOgGhost().getIsPlayer()) { OgGhostHighScore.addOgGhostWinner(getOgGhost().getName()); } + lobby.getAdmin().sendMsgToClientsInLobby(Protocol.printToGUI + "$" + GuiParameters.viewChangeToLobby + "$"); lobby.getAdmin().broadcastAnnouncementToLobby(gameOverCheck); lobby.removeGameFromRunningGames(this); lobby.addGameToFinishedGames(this); diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java index 4321565..f627fd7 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java @@ -338,8 +338,19 @@ public class Client { } break; case GuiParameters.listOfLobbies: + //TODO break; case GuiParameters.listOfPLayers: + //TODO + break; + case GuiParameters.viewChangeToGame: + //TODO + break; + case GuiParameters.viewChangeToStart: + //TODO + break; + case GuiParameters.viewChangeToLobby: + //TODO break; default: notificationTextDisplay(data); diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/GameStateModel.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/GameStateModel.java index dfa3d03..5a4a594 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/GameStateModel.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/GameStateModel.java @@ -23,7 +23,7 @@ public class GameStateModel { * can take the values h/g/s for human/ghost/spectator. Safes the role the client this GamesStateModel * lives on currently has */ - private String yourRole; + private String yourRole; //TODO: Maybe add a GUI field to show this in /** * A primitive clone of the passengerTrain in the GameState of the server. diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/helpers/GuiParameters.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/helpers/GuiParameters.java index 3d8ff18..2b5e0c2 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/helpers/GuiParameters.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/helpers/GuiParameters.java @@ -25,6 +25,21 @@ public class GuiParameters { */ public static final String noiseHeardAtPosition = "NOISE"; + /** + * Tells Gui, that the start view should be displayed + */ + public static final String viewChangeToStart = "VCSTART"; + + /** + * Tells Gui, that the lobby view should be displayed + */ + public static final String viewChangeToLobby = "VCLOBBY"; + + /** + * Tells Gui, that the game view should be displayed + */ + public static final String viewChangeToGame = "VCGAME"; + } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/JServerProtocolParser.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/JServerProtocolParser.java index 54081a6..a9f031e 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/JServerProtocolParser.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/JServerProtocolParser.java @@ -2,6 +2,7 @@ package ch.unibas.dmi.dbis.cs108.multiplayer.server; import ch.unibas.dmi.dbis.cs108.BudaLogConfig; +import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.GuiParameters; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.Protocol; @@ -81,6 +82,7 @@ public class JServerProtocolParser { try { int i = Integer.parseInt(msg.substring(6, 7)); h.joinLobby(i); + h.sendMsgToClient(Protocol.printToGUI + "$" + GuiParameters.viewChangeToLobby + "$"); } catch (Exception e) { h.sendMsgToClient(Protocol.printToClientConsole + "$Invalid input. Please use JOINL$1 to join Lobby 1, for example."); @@ -88,6 +90,7 @@ public class JServerProtocolParser { break; case Protocol.createNewLobby: h.createNewLobby(); + h.sendMsgToClient(Protocol.printToGUI + "$" + GuiParameters.viewChangeToLobby+ "$"); break; case Protocol.listLobbies: h.listLobbies(); @@ -97,6 +100,7 @@ public class JServerProtocolParser { break; case Protocol.leaveLobby: h.leaveLobby(); + h.sendMsgToClient(Protocol.printToGUI + "$" + GuiParameters.viewChangeToStart + "$"); break; case Protocol.votedFor: LOGGER.debug("Made it here"); @@ -105,6 +109,7 @@ public class JServerProtocolParser { break; case Protocol.startANewGame: h.startNewGame(); + h.sendMsgToClientsInLobby(Protocol.printToGUI + "$" + GuiParameters.viewChangeToGame + "$"); break; case Protocol.listGames: h.listGames();