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 3d3c6f0..284a506 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 @@ -122,6 +122,10 @@ public class Game implements Runnable { LOGGER.info(gameState.toGhostString()); for (ClientHandler client : lobbyClients) {//begins filling the train with clients + + //send train horn sound to client: + client.sendMsgToClient(Protocol.playSound + "$" + "TH"); + int index = order[i]; if (passengerTrain[index].getIsGhost()) { //if there is a ghost GhostPlayer ghostPlayer = new GhostPlayer(passengerTrain[index].getPosition(), diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/JClientProtocolParser.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/JClientProtocolParser.java index ca96835..ff071f7 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/JClientProtocolParser.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/JClientProtocolParser.java @@ -105,9 +105,13 @@ public class JClientProtocolParser { case "HV": Sound.voteforhuman(); break; + case "TH": + Sound.trainhorn(); + break; default: LOGGER.warn("Invalid sound request"); } + break; default: System.out.println("Received unknown command: " + msg); } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Sound.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Sound.java index 15da20a..831a710 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Sound.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Sound.java @@ -17,6 +17,9 @@ public class Sound { static URL bellURL = Sound.class.getResource("sounds/bell.wav"); static AudioClip bell = new AudioClip(bellURL.toString()); + static URL trainhornURL = Sound.class.getResource("sounds/trainhorn.wav"); + static AudioClip trainhorn = new AudioClip(trainhornURL.toString()); + static URL daynoisesURL = Sound.class.getResource("sounds/daynoises.wav"); static AudioClip daynoises = new AudioClip(daynoisesURL.toString()); @@ -103,6 +106,8 @@ public class Sound { bell.play(defaultvolume - 0.5); } + public static void trainhorn() {trainhorn.play(defaultvolume); } + public static void startDaynoises() { daynoises.setCycleCount(AudioClip.INDEFINITE); daynoises.play(defaultvolume - 0.5); diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/helpers/Protocol.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/helpers/Protocol.java index 673cada..e7e4d21 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/helpers/Protocol.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/helpers/Protocol.java @@ -215,7 +215,7 @@ public class Protocol { /** * Used to tell the client to play a sound, namely the sounds for when humans have voted for a human (PLSND$HV), * when humans have voted for a ghost (PLSND$GV), when humans have won (i.e. have voted for the OG - PLSND$HW) - * or when ghosts have won (PLSND$GW) + * or when ghosts have won (PLSND$GW), or the train horn at the start of the game (PLSND$TH). Not used for ghost sounds. */ public static final String playSound = "PLSND"; diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/sounds/trainhorn.wav b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/sounds/trainhorn.wav new file mode 100644 index 0000000..fdbd992 Binary files /dev/null and b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/sounds/trainhorn.wav differ