Working on VoteHandler

This commit is contained in:
Alexander Sazonov 2022-04-04 13:03:35 +02:00
parent bb29f77fa9
commit d0c4290894
2 changed files with 10 additions and 12 deletions

View File

@ -5,21 +5,22 @@ import ch.unibas.dmi.dbis.cs108.gamelogic.klassenstruktur.Passenger;
public class GhostifyHandler {
/**
* Changes passenger at position x to ghost. Monitors the times the ghostify method is being
* called. If it's being called for the first time, the ghostified player is being set as the
* original ghost.
* Changes passenger at position x to ghost and returns this ghost. Monitors the times the ghost method is being
* called. If it's being called for the first time, the ghostified player is being set as the original ghost.
*
* @param p Passenger to be ghostified
*/
private static int ghostifyCallCounter = 0;
private static int ghostifyCallCounter = -1;
public void ghostify(Passenger p) {
public GhostPlayer ghost(Passenger p) {
p.setGhost();
ghostifyCallCounter++;
if (ghostifyCallCounter == 0) {
GhostPlayer g = new GhostPlayer(p.getPosition(), p.getName(), p.getClientHandler(), true);
return g;
} else {
GhostPlayer g = new GhostPlayer(p.getPosition(), p.getName(), p.getClientHandler(), false);
}
ghostifyCallCounter++;
return g;
}
}
}

View File

@ -1,5 +1,6 @@
package ch.unibas.dmi.dbis.cs108.gamelogic;
import ch.unibas.dmi.dbis.cs108.gamelogic.klassenstruktur.Ghost;
import ch.unibas.dmi.dbis.cs108.gamelogic.klassenstruktur.GhostPlayer;
import ch.unibas.dmi.dbis.cs108.gamelogic.klassenstruktur.Passenger;
import ch.unibas.dmi.dbis.cs108.multiplayer.server.ClientHandler;
@ -64,7 +65,7 @@ public class VoteHandler {
for (int i = 0; i < votesForPlayers.length; i++) {
if (votesForPlayers[i] == currentMax) { // if player has most votes
GhostifyHandler gh = new GhostifyHandler();
gh.ghostify(passengers[i]);
Ghost g = gh.ghost(passengers[i]);
passengers[i].send(
"You are now a ghost!"); // TODO: ServerGameInfoHandler might deal with this one
}
@ -122,11 +123,7 @@ public class VoteHandler {
}
}
if (passengers[i].getIsGhost()) { // if player is a ghost
// Now the case "ghost is og" and the case "ghost is not og" need to be handled
/* TODO: I don't know how to get the information about a ghost being the OG because I'm accessing the players
via the Passenger class which can't use the getIsOG method from the Ghost class. I (Alex) will try to
solve this issue but if anyone can help please do!
*/
if (
}
}
}