From 88f72d76126774c8192314d50378a21cfb9f7212 Mon Sep 17 00:00:00 2001 From: Seraina Date: Sat, 16 Apr 2022 21:34:36 +0200 Subject: [PATCH] Added a way to end a game, when its lobby is closed. --- src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/Game.java | 7 ++++++- .../ch/unibas/dmi/dbis/cs108/multiplayer/server/Lobby.java | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) 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 092d5e2..9d0fa58 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 @@ -24,6 +24,7 @@ public class Game implements Runnable { protected boolean isDay = false; //false means it is night, it is night by default protected VoteHandler voteHandler = new VoteHandler(); private Lobby lobby; + private boolean isOngoing = true; private String name; private static int nameCounter = 0; /** @@ -57,6 +58,10 @@ public class Game implements Runnable { isDay = day; } + public void setOngoing(boolean ongoing) { + isOngoing = ongoing; + } + /** * Starts a new game, creates a passenger array and saves it in gameState, sets the OG * currently at gameState.train[3] fills the passengerTrain moving from left to rigth in the @@ -102,7 +107,7 @@ public class Game implements Runnable { LOGGER.info(gameState.toString()); i = 0; - while (true) { + while (isOngoing == true) { if (!isDay) { LOGGER.info("NIGHT"); gameOverCheck = voteHandler.ghostVote(gameState.getPassengerTrain(), this); diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/Lobby.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/Lobby.java index 5f5bb5b..c14b6c4 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/Lobby.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/Lobby.java @@ -228,6 +228,7 @@ public class Lobby { */ public void closeLobby() { lobbies.remove(this); + game.setOngoing(false); // ends game //ClientHandler.broadcastAnnouncementToAll("Lobby nr. " + this.getLobbyID() + " has been closed."); /*