From 96b0fa70ef0ebbeabad329325f50209ca8913195 Mon Sep 17 00:00:00 2001 From: Seraina Date: Sat, 9 Apr 2022 08:45:57 +0200 Subject: [PATCH] Added getVoteFromClient method to superclass Passenger so when NPC vote, nothing happens when this method is called --- .../klassenstruktur/GhostPlayer.java | 19 +++++++++++++++++++ .../klassenstruktur/HumanPlayer.java | 18 ++++++++++++++++++ .../gamelogic/klassenstruktur/Passenger.java | 3 +++ 3 files changed, 40 insertions(+) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/klassenstruktur/GhostPlayer.java b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/klassenstruktur/GhostPlayer.java index 450961d..c89bce0 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/klassenstruktur/GhostPlayer.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/klassenstruktur/GhostPlayer.java @@ -38,5 +38,24 @@ public class GhostPlayer extends Ghost { String formattedMsg = ServerGameInfoHandler.format(msg, game); clientHandler.sendMsgToClient(formattedMsg); } + + /** + * Gets the voting information vote and hasVoted from clientHandler and this values to those values. + * Sets clientHandler fields to default: vote = Integer.MAX_VALUE , hasVoted = false + */ + @Override + public void getVoteFromClientHandler() { + vote = clientHandler.getVote(); + hasVoted = clientHandler.getHasVoted(); + clientHandler.setVote(Integer.MAX_VALUE); + clientHandler.setHasVoted(false); + /* + * if vote wasn't valid, make sure, the passenger field hasVoted == false, probably redundant but better be safe than sorry + */ + if(vote == Integer.MAX_VALUE) { + hasVoted = false; + } + } + } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/klassenstruktur/HumanPlayer.java b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/klassenstruktur/HumanPlayer.java index 54bce95..07469ac 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/klassenstruktur/HumanPlayer.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/klassenstruktur/HumanPlayer.java @@ -35,4 +35,22 @@ public class HumanPlayer extends Human { String formattedMsg = ServerGameInfoHandler.format(msg, game); clientHandler.sendMsgToClient(formattedMsg); } + + /** + * Gets the voting information vote and hasVoted from clientHandler and this values to those values. + * Sets clientHandler fields to default: vote = Integer.MAX_VALUE , hasVoted = false + */ + @Override + public void getVoteFromClientHandler() { + vote = clientHandler.getVote(); + hasVoted = clientHandler.getHasVoted(); + clientHandler.setVote(Integer.MAX_VALUE); + clientHandler.setHasVoted(false); + /* + * if vote wasn't valid, make sure, the passenger field hasVoted == false, probably redundant but better be safe than sorry + */ + if(vote == Integer.MAX_VALUE) { + hasVoted = false; + } + } } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/klassenstruktur/Passenger.java b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/klassenstruktur/Passenger.java index ef40ce9..12167e9 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/klassenstruktur/Passenger.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/klassenstruktur/Passenger.java @@ -109,4 +109,7 @@ public class Passenger { return clientHandler; } + public void getVoteFromClientHandler() { + } + }