From 84ed547372b14151b854b7acb61a69b3fc88dcde Mon Sep 17 00:00:00 2001 From: Seraina Date: Sat, 14 May 2022 15:23:49 +0200 Subject: [PATCH] Fixed some quirks with the YourRole checking, now the full Wagon should appear at the right time --- OgGhostWinners.txt | 1 + .../dbis/cs108/multiplayer/client/Client.java | 1 + .../client/JClientProtocolParser.java | 1 + .../client/gui/DayNightChangeListener.java | 20 +++++++++++++------ .../client/gui/GameStateModel.java | 6 ++++++ .../client/gui/game/GameController.java | 6 +++--- 6 files changed, 26 insertions(+), 9 deletions(-) diff --git a/OgGhostWinners.txt b/OgGhostWinners.txt index cf77d1f..53225b1 100644 --- a/OgGhostWinners.txt +++ b/OgGhostWinners.txt @@ -5,3 +5,4 @@ Jonas of Istanbul serai serai serai +serai 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 7bc4968..9bd8eb0 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 @@ -371,6 +371,7 @@ public class Client { //TODO break; case GuiParameters.VoteIsOver: + chatApp.getGameController().setNoiseButtonInvisible(); chatApp.getGameController().clearAllNoiseDisplay(); break; case GuiParameters.getMembersInLobby: diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/JClientProtocolParser.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/JClientProtocolParser.java index 050caa0..c9f3287 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/JClientProtocolParser.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/JClientProtocolParser.java @@ -50,6 +50,7 @@ public class JClientProtocolParser { break; case Protocol.serverConfirmQuit: c.disconnectFromServer(); + c.getGameStateModel().setGameOver(true); break; case Protocol.serverRequestsGhostVote: LOGGER.debug("Ghost received Vote request"); diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/DayNightChangeListener.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/DayNightChangeListener.java index 992be4e..1d6d298 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/DayNightChangeListener.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/DayNightChangeListener.java @@ -26,16 +26,24 @@ public class DayNightChangeListener implements Runnable { while(!gameStateModel.isGameOver()) { if(gameStateModel.getDayClone()) { //its Day LoungeSceneViewController.getTrainAnimationDayController().dontShowFullWagon(); - Sprites.setDaySprites(gameStateModel.getPassengerTrainClone()[1], GameController.getGameStateModel().getKickedOff()); - chatApp.getGameController().updateGameSprites(LoungeSceneViewController.getTrainAnimationDayController()); + Sprites.setDaySprites(gameStateModel.getPassengerTrainClone()[1], + GameController.getGameStateModel().getKickedOff()); + chatApp.getGameController() + .updateGameSprites(LoungeSceneViewController.getTrainAnimationDayController()); chatApp.getGameController().setNoiseButtonVisible(); chatApp.getGameController().setVoteButtonVisibilityDay(gameStateModel); } else { //its night - if (gameStateModel.getYourRole().equals("h")) { - LoungeSceneViewController.getTrainAnimationDayController().showFullWagon(); + try { + if (gameStateModel.getYourRoleFromPosition(position).equals("")) { + LoungeSceneViewController.getTrainAnimationDayController().showFullWagon(); + } + } catch (Exception e) { + e.getMessage(); } - Sprites.setNightSprites(gameStateModel.getPassengerTrainClone()[1], GameController.getGameStateModel().getKickedOff()); - chatApp.getGameController().updateGameSprites(LoungeSceneViewController.getTrainAnimationDayController()); + Sprites.setNightSprites(gameStateModel.getPassengerTrainClone()[1], + GameController.getGameStateModel().getKickedOff()); + chatApp.getGameController() + .updateGameSprites(LoungeSceneViewController.getTrainAnimationDayController()); chatApp.getGameController().setNoiseButtonInvisible(); chatApp.getGameController().setVoteButtonVisibilityNight(gameStateModel); } 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 81b037d..3996abf 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 @@ -30,6 +30,8 @@ public class GameStateModel { */ private String yourRole; //TODO: Maybe add a GUI field to show this in + private int yourPosition; + /** * A primitive clone of the passengerTrain in the GameState of the server. * in passengerTrainClone[0] the names of the passengers are stored, in passengerTrainClone[1] the roles @@ -98,6 +100,10 @@ public class GameStateModel { return yourRole; } + public String getYourRoleFromPosition(int position) { + return passengerTrainClone[1][position]; + } + public int getNrOfPlayers() { return nrOfPlayers; } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java index d2d635d..31d1c4b 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java @@ -165,7 +165,7 @@ public class GameController implements Initializable { @Override public void run() { LOGGER.debug(buttonRoom0); - if (g.getYourRole().equals("h")) { + if (g.getYourRoleFromPosition(client.getClient().getPosition()).equals("")) { //human try { buttonRoom0.setVisible(true); buttonRoom1.setVisible(true); @@ -177,7 +177,7 @@ public class GameController implements Initializable { e.printStackTrace(); } - } else { + } else { //ghost try { buttonRoom0.setVisible(false); buttonRoom1.setVisible(false); @@ -198,7 +198,7 @@ public class GameController implements Initializable { @Override public void run() { LOGGER.debug(buttonRoom0); - if (g.getYourRole().equals("g")) { + if (g.getYourRoleFromPosition(client.getClient().getPosition()).equals("g")) {//ghost try { buttonRoom0.setVisible(true); buttonRoom1.setVisible(true);