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 35e9be1..f412902 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 @@ -71,7 +71,7 @@ public class Game implements Runnable { int i = 0; HashSet lobbyClients = lobby.getLobbyClients(); String gameOverCheck = ""; - int[] order = gameState.getTrain().orderOfTrain; + int[] order = gameState.getTrain().getOrderOfTrain(); Passenger[] passengerTrain = gameState.getPassengerTrain(); diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/GameState.java b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/GameState.java index efae6dc..c43796c 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/GameState.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/GameState.java @@ -52,16 +52,17 @@ public class GameState { clientVoteData = new ClientVoteData(); Passenger[] passengerTrain = new Passenger[nrOfPlayers]; //Creates an array with Passengers with correlation positions (Train) for (int i = 0; i < nrOfPlayers; i++) { - if (i == 3) { //TODO: randomize via Train.ghostposition + if (i == train.getPositionOfGhost()) { //TODO: randomize via Train.ghostposition + LOGGER.info("OG position: " + train.getOrderOfTrain()[i]); Ghost g = new Ghost(); - g.setPosition(train.orderOfTrain[i]); + g.setPosition(train.getOrderOfTrain()[i]); g.setGhost(); g.setIsOG(true); - passengerTrain[train.orderOfTrain[i]] = g; + passengerTrain[train.getOrderOfTrain()[i]] = g; } else { Human h = new Human(); - h.setPosition(train.orderOfTrain[i]); - passengerTrain[train.orderOfTrain[i]] = h; + h.setPosition(train.getOrderOfTrain()[i]); + passengerTrain[train.getOrderOfTrain()[i]] = h; } } @@ -88,6 +89,10 @@ public class GameState { return nrOfGhosts; } + public ClientVoteData getClientVoteData() { + return clientVoteData; + } + /** * * diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/Train.java b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/Train.java index da64220..b7125be 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/Train.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/Train.java @@ -8,8 +8,8 @@ public class Train { public static final Logger LOGGER = LogManager.getLogger(Train.class); public static final BudaLogConfig l = new BudaLogConfig(LOGGER); - int[] orderOfTrain; //gives the random order in which the passengers enter the train - int positionOfGhost; // useful for randomization of og ghost position + private int[] orderOfTrain; //gives the random order in which the passengers enter the train + private int positionOfGhost; // useful for randomization of og ghost position /** * Constructs a Train with orderOfTrain of the size nrOfPlayers, filled with a Random order of the @@ -46,7 +46,15 @@ public class Train { } LOGGER.debug("The userTrain order is: " + Arrays.toString(userTrain)); this.orderOfTrain = userTrain; - this.positionOfGhost = nrOfPlayers / 2; + this.positionOfGhost = (int) ((Math.random() * ((nrOfPlayers)) + 0)); + } + + public int[] getOrderOfTrain() { + return orderOfTrain; + } + + public int getPositionOfGhost() { + return positionOfGhost; } /** diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/VoteHandler.java b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/VoteHandler.java index 4a2dcfa..be7ab99 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/VoteHandler.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/VoteHandler.java @@ -21,21 +21,6 @@ public class VoteHandler { public static final Logger LOGGER = LogManager.getLogger(VoteHandler.class); public static final BudaLogConfig l = new BudaLogConfig(LOGGER); - private static ClientVoteData clientVoteData = new ClientVoteData(); - - public static ClientVoteData getClientVoteData() { - return clientVoteData; - } - - - - public static void setClientVoteData(ClientVoteData clientVoteData) { - clientVoteData = clientVoteData; - } - - - - /** * Handles the ghost vote during nighttime: passengers who are ghosts are being asked on who to * ghostify, others are waiting. Results are being collected and the player with most votes is @@ -72,7 +57,7 @@ public class VoteHandler { LOGGER.warn("Thread " + Thread.currentThread() + " was interrupted"); } - int currentMax = voteEvaluation(passengers, votesForPlayers, clientVoteData, game); + int currentMax = voteEvaluation(passengers, votesForPlayers, game.getGameState().getClientVoteData(), game); LOGGER.debug("Most votes: " + currentMax + " vote"); @@ -157,7 +142,7 @@ public class VoteHandler { LOGGER.warn("Thread " + Thread.currentThread() + " was interrupted"); } - int currentMax = voteEvaluation(passengers, votesForPlayers, clientVoteData, game); + int currentMax = voteEvaluation(passengers, votesForPlayers, game.getGameState().getClientVoteData(), game); // deal with voting results int voteIndex = 0; diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/ClientHandler.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/ClientHandler.java index ad90546..9a69e26 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/ClientHandler.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/ClientHandler.java @@ -298,9 +298,9 @@ public class ClientHandler implements Runnable { } LOGGER.debug("Vote is:" + vote); if(vote != Integer.MAX_VALUE) { //gets MAX_VALUE when the vote wasn't valid - VoteHandler.getClientVoteData().setVote(position,vote); + getLobby().getGame().getGameState().getClientVoteData().setVote(position,vote); LOGGER.debug("Player vote: " + vote); - VoteHandler.getClientVoteData().setHasVoted(position,true); //TODO: move clientVoteData to gamestate + getLobby().getGame().getGameState().getClientVoteData().setHasVoted(position,true); //TODO: move clientVoteData to gamestate } }