From f2c1cbc17cf4e2a65741e6c22a29307ce07b0972 Mon Sep 17 00:00:00 2001 From: Jonas Date: Thu, 17 Mar 2022 14:27:54 +0100 Subject: [PATCH] added all needed subclasses, worked on Ghost classes. --- .../dmi/dbis/cs108/Klassenstruktur/Ghost.java | 5 ++++ .../dbis/cs108/Klassenstruktur/GhostNPC.java | 10 +++++++- .../cs108/Klassenstruktur/GhostPlayer.java | 25 +++++++++++++++++++ .../dmi/dbis/cs108/Klassenstruktur/Human.java | 4 +++ .../dbis/cs108/Klassenstruktur/HumanNPC.java | 5 ++++ .../cs108/Klassenstruktur/HumanPlayer.java | 4 +++ .../dbis/cs108/Klassenstruktur/Passenger.java | 5 ++-- 7 files changed, 55 insertions(+), 3 deletions(-) create mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/GhostPlayer.java create mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/Human.java create mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/HumanNPC.java create mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/HumanPlayer.java diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/Ghost.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/Ghost.java index 5a26664..9e5fc16 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/Ghost.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/Ghost.java @@ -1,4 +1,9 @@ package ch.unibas.dmi.dbis.cs108.Klassenstruktur; public class Ghost extends Passenger { + protected boolean isOG; //true if the Ghost is the original ghost. + + public boolean getIsOG() { + return isOG; + } } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/GhostNPC.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/GhostNPC.java index 51986ed..6f5ee69 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/GhostNPC.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/GhostNPC.java @@ -2,8 +2,16 @@ package ch.unibas.dmi.dbis.cs108.Klassenstruktur; public class GhostNPC extends Ghost{ - public GhostNPC(int position, String name) { + /** + * Creates a new GhostNPC. Should be used at game start or if a HumanNPC is turned into a ghost. + * @param position position on the train + * @param name player name. if null, then a default name is used. + * @param isOG true if the ghost is the original ghost. + */ + public GhostNPC(int position, String name, boolean isOG) { + this.isOG = isOG; this.position = position; + this.sock = null; isGhost = true; isPlayerCharacter = false; kickedOff = false; diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/GhostPlayer.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/GhostPlayer.java new file mode 100644 index 0000000..a2a7216 --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/GhostPlayer.java @@ -0,0 +1,25 @@ +package ch.unibas.dmi.dbis.cs108.Klassenstruktur; + +import java.net.Socket; + +public class GhostPlayer extends Ghost{ + + /** + * Creates a new GhostPlayer. Should be used at game start or if a HumanPlayer is turned into a ghost. + * @param position position on the train + * @param name name. if null, then a default name is used. + * @param sock the socket for the player. + * @param isOG true if the ghost is the original ghost. + */ + public GhostPlayer(int position, String name, Socket sock, boolean isOG) { + this.position = position; + this.sock = sock; + this.isOG = isOG; + isGhost = true; + isPlayerCharacter = true; + kickedOff = false; + if (name == null) { + this.name = "Human Nr. " + position; + } else this.name = name; + } +} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/Human.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/Human.java new file mode 100644 index 0000000..eeda085 --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/Human.java @@ -0,0 +1,4 @@ +package ch.unibas.dmi.dbis.cs108.Klassenstruktur; + +public class Human extends Passenger { +} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/HumanNPC.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/HumanNPC.java new file mode 100644 index 0000000..87c47cd --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/HumanNPC.java @@ -0,0 +1,5 @@ +package ch.unibas.dmi.dbis.cs108.Klassenstruktur; + +public class HumanNPC extends Human { + +} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/HumanPlayer.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/HumanPlayer.java new file mode 100644 index 0000000..f968ac9 --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/HumanPlayer.java @@ -0,0 +1,4 @@ +package ch.unibas.dmi.dbis.cs108.Klassenstruktur; + +public class HumanPlayer extends Human{ +} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/Passenger.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/Passenger.java index 7d59019..f0171ba 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/Passenger.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Klassenstruktur/Passenger.java @@ -1,13 +1,14 @@ package ch.unibas.dmi.dbis.cs108.Klassenstruktur; +import java.net.Socket; + public class Passenger { protected int position; //the player's Cabin number (1 to 6) protected String name; //the player's Name protected Boolean isGhost; //boolean regarding if the player is a ghost. Could probably be removed since ghost is a subclass but I'm keeping it in. protected Boolean isPlayerCharacter; //same here protected Boolean kickedOff; //true if the player has been voted off. - - //todo: there needs to be some variable which keeps track of which client socket / clientThread / NPC thread this passenger is connected to? + protected Socket sock; //the socket for the client associated with this Passenger, for NPCs, this can be null. /**