The game is now playable wia the game gui, there are still some quirks to work out, especially timing wise and with the POSOF network message
This commit is contained in:
parent
f4ccb6894a
commit
27c31967e5
@ -1,2 +1,3 @@
|
|||||||
B
|
B
|
||||||
serai
|
serai
|
||||||
|
serai
|
||||||
|
|||||||
@ -17,8 +17,8 @@ public class ClientGameInfoHandler {
|
|||||||
public static final String ghostVoteRequest = "Vote on who to ghostify!";
|
public static final String ghostVoteRequest = "Vote on who to ghostify!";
|
||||||
public static final String humanVoteRequest = "Vote for a ghost to kick off!";
|
public static final String humanVoteRequest = "Vote for a ghost to kick off!";
|
||||||
public static final String noiseNotification = "Someone passed by you ";
|
public static final String noiseNotification = "Someone passed by you ";
|
||||||
public static final String gameOverHumansWin = "Game over: humans win!";
|
public static final String gameOverHumansWin = "Game over, humans win!";
|
||||||
public static final String gameOverGhostsWin = "Game over: ghosts win!";
|
public static final String gameOverGhostsWin = "Game over, ghosts win!";
|
||||||
|
|
||||||
//relevant for gui
|
//relevant for gui
|
||||||
public static final String itsNightTime = "Please wait, ghosts are active";
|
public static final String itsNightTime = "Please wait, ghosts are active";
|
||||||
|
|||||||
@ -95,7 +95,7 @@ public class Game implements Runnable {
|
|||||||
passenger.send(GuiParameters.updateGameState, getGame());
|
passenger.send(GuiParameters.updateGameState, getGame());
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
Thread.sleep(4000); //TODO: Is this a good intervall?
|
Thread.sleep(2000); //TODO: Is this a good intervall?
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -148,19 +148,22 @@ public class Game implements Runnable {
|
|||||||
}
|
}
|
||||||
LOGGER.info(gameState.toString());
|
LOGGER.info(gameState.toString());
|
||||||
gameStateModelUpdater(); //TODO: does that work?
|
gameStateModelUpdater(); //TODO: does that work?
|
||||||
|
for(Passenger passenger : gameState.getPassengerTrain()) {
|
||||||
|
passenger.send(Protocol.positionOfClient + "$" + passenger.getPosition(), this);
|
||||||
|
}
|
||||||
|
lobby.getAdmin().sendMsgToClientsInLobby(Protocol.printToGUI + "$" + GuiParameters.night + "$");
|
||||||
i = 0;
|
i = 0;
|
||||||
while (isOngoing) {//game cycle TODO: maybe check that more often inside game loop?!
|
while (isOngoing) {//game cycle TODO: maybe check that more often inside game loop?!
|
||||||
if (!isDay) {
|
if (!isDay) {
|
||||||
LOGGER.info("NIGHT");
|
LOGGER.info("NIGHT");
|
||||||
gameOverCheck = voteHandler.ghostVote(gameState.getPassengerTrain(), this);
|
gameOverCheck = voteHandler.ghostVote(gameState.getPassengerTrain(), this);
|
||||||
setDay(true);
|
setDay(true);
|
||||||
lobby.getAdmin().sendMsgToClientsInLobby(Protocol.printToGUI + "$" + ClientGameInfoHandler.itsDayTime + "$");
|
lobby.getAdmin().sendMsgToClientsInLobby(Protocol.printToGUI + "$" + GuiParameters.day + "$");
|
||||||
} else {
|
} else {
|
||||||
LOGGER.info("DAY");
|
LOGGER.info("DAY");
|
||||||
gameOverCheck = voteHandler.humanVote(gameState.getPassengerTrain(), this);
|
gameOverCheck = voteHandler.humanVote(gameState.getPassengerTrain(), this);
|
||||||
setDay(false);
|
setDay(false);
|
||||||
lobby.getAdmin().sendMsgToClientsInLobby(Protocol.printToGUI + "$" + ClientGameInfoHandler.itsNightTime + "$");
|
lobby.getAdmin().sendMsgToClientsInLobby(Protocol.printToGUI + "$" + GuiParameters.night + "$");
|
||||||
}
|
}
|
||||||
if (gameOverCheck.equals(ClientGameInfoHandler.gameOverGhostsWin) || gameOverCheck.equals(
|
if (gameOverCheck.equals(ClientGameInfoHandler.gameOverGhostsWin) || gameOverCheck.equals(
|
||||||
ClientGameInfoHandler.gameOverHumansWin)) {
|
ClientGameInfoHandler.gameOverHumansWin)) {
|
||||||
@ -169,6 +172,9 @@ public class Game implements Runnable {
|
|||||||
}
|
}
|
||||||
lobby.getAdmin().sendMsgToClientsInLobby(Protocol.printToGUI + "$" + GuiParameters.viewChangeToLobby + "$");
|
lobby.getAdmin().sendMsgToClientsInLobby(Protocol.printToGUI + "$" + GuiParameters.viewChangeToLobby + "$");
|
||||||
lobby.getAdmin().broadcastAnnouncementToLobby(gameOverCheck);
|
lobby.getAdmin().broadcastAnnouncementToLobby(gameOverCheck);
|
||||||
|
isOngoing = false;
|
||||||
|
Timer.ghostAfterVoteTimer();
|
||||||
|
isOngoing = true;
|
||||||
lobby.removeGameFromRunningGames(this);
|
lobby.removeGameFromRunningGames(this);
|
||||||
lobby.addGameToFinishedGames(this);
|
lobby.addGameToFinishedGames(this);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -174,6 +174,7 @@ public class GameState {
|
|||||||
for (int i = 0; i < array.length; i++) {
|
for (int i = 0; i < array.length; i++) {
|
||||||
stringBuilder.append("$").append(print[i]);
|
stringBuilder.append("$").append(print[i]);
|
||||||
}
|
}
|
||||||
|
stringBuilder.append("$");
|
||||||
return stringBuilder.toString();
|
return stringBuilder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -194,6 +195,7 @@ public class GameState {
|
|||||||
for (int i = 0; i < array.length; i++) {
|
for (int i = 0; i < array.length; i++) {
|
||||||
stringBuilder.append("$").append(print[i]);
|
stringBuilder.append("$").append(print[i]);
|
||||||
}
|
}
|
||||||
|
stringBuilder.append("$");
|
||||||
return stringBuilder.toString();
|
return stringBuilder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -30,12 +30,10 @@ public class ServerGameInfoHandler {
|
|||||||
public static String format(String msg, Passenger passenger, Game game) {
|
public static String format(String msg, Passenger passenger, Game game) {
|
||||||
switch (msg) {
|
switch (msg) {
|
||||||
case ClientGameInfoHandler.ghostVoteRequest:
|
case ClientGameInfoHandler.ghostVoteRequest:
|
||||||
msg = Protocol.serverRequestsGhostVote + "$" + passenger.getPosition() + "$"
|
msg = Protocol.serverRequestsGhostVote + "$" + passenger.getPosition() + "$";
|
||||||
+ game.gameState.toString();
|
|
||||||
break;
|
break;
|
||||||
case ClientGameInfoHandler.humanVoteRequest:
|
case ClientGameInfoHandler.humanVoteRequest:
|
||||||
msg = Protocol.serverRequestsHumanVote + "$" + passenger.getPosition() + "$"
|
msg = Protocol.serverRequestsHumanVote + "$" + passenger.getPosition() + "$";
|
||||||
+ game.gameState.humanToString();
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
msg = Protocol.printToClientConsole + "$" + msg;
|
msg = Protocol.printToClientConsole + "$" + msg;
|
||||||
@ -56,11 +54,11 @@ public class ServerGameInfoHandler {
|
|||||||
switch (msg) {
|
switch (msg) {
|
||||||
case ClientGameInfoHandler.ghostVoteRequest:
|
case ClientGameInfoHandler.ghostVoteRequest:
|
||||||
case ClientGameInfoHandler.itsNightTime:
|
case ClientGameInfoHandler.itsNightTime:
|
||||||
msg = Protocol.printToClientConsole + "$Ghosts are voting: " + game.gameState.toString();
|
msg = Protocol.printToClientConsole + "$Ghosts are voting";
|
||||||
break;
|
break;
|
||||||
case ClientGameInfoHandler.humanVoteRequest:
|
case ClientGameInfoHandler.humanVoteRequest:
|
||||||
case ClientGameInfoHandler.itsDayTime:
|
case ClientGameInfoHandler.itsDayTime:
|
||||||
msg = Protocol.printToClientConsole + "$Humans are voting:" + game.gameState.toString();
|
msg = Protocol.printToClientConsole + "$Humans are voting";
|
||||||
break;
|
break;
|
||||||
case GuiParameters.updateGameState:
|
case GuiParameters.updateGameState:
|
||||||
msg = Protocol.printToGUI + "$" + GuiParameters.updateGameState + game.getGameState().toString();
|
msg = Protocol.printToGUI + "$" + GuiParameters.updateGameState + game.getGameState().toString();
|
||||||
@ -114,9 +112,10 @@ public class ServerGameInfoHandler {
|
|||||||
case ClientGameInfoHandler.noiseNotification + 5 + " time(s)":
|
case ClientGameInfoHandler.noiseNotification + 5 + " time(s)":
|
||||||
String outMsg = npc.getName() + ": " + noiseRandomizer();
|
String outMsg = npc.getName() + ": " + noiseRandomizer();
|
||||||
//TODO: add likelyhood
|
//TODO: add likelyhood
|
||||||
|
Timer.ghostAfterVoteTimer();
|
||||||
game.getLobby().getAdmin().broadcastNpcChatMessageToLobby(outMsg);
|
game.getLobby().getAdmin().broadcastNpcChatMessageToLobby(outMsg);
|
||||||
game.getLobby().getAdmin().sendMsgToClientsInLobby(Protocol.printToGUI + GuiParameters.noiseHeardAtPosition
|
game.getLobby().getAdmin().sendMsgToClientsInLobby(Protocol.printToGUI + "$" + GuiParameters.noiseHeardAtPosition
|
||||||
+ "$" + npc.getPosition() + "$");
|
+ "$" + npc.getPosition());
|
||||||
break;
|
break;
|
||||||
case ClientGameInfoHandler.ghostVoteRequest:
|
case ClientGameInfoHandler.ghostVoteRequest:
|
||||||
npc.vote(game);
|
npc.vote(game);
|
||||||
@ -138,9 +137,10 @@ public class ServerGameInfoHandler {
|
|||||||
case ClientGameInfoHandler.noiseNotification + 4 + " time(s)":
|
case ClientGameInfoHandler.noiseNotification + 4 + " time(s)":
|
||||||
case ClientGameInfoHandler.noiseNotification + 5 + " time(s)":
|
case ClientGameInfoHandler.noiseNotification + 5 + " time(s)":
|
||||||
String outMsg = npc.getName() + ": " + noiseRandomizer();
|
String outMsg = npc.getName() + ": " + noiseRandomizer();
|
||||||
|
Timer.ghostAfterVoteTimer();
|
||||||
game.getLobby().getAdmin().broadcastNpcChatMessageToLobby(outMsg);
|
game.getLobby().getAdmin().broadcastNpcChatMessageToLobby(outMsg);
|
||||||
game.getLobby().getAdmin().sendMsgToClientsInLobby(Protocol.printToGUI + GuiParameters.noiseHeardAtPosition
|
game.getLobby().getAdmin().sendMsgToClientsInLobby(Protocol.printToGUI + "$" + GuiParameters.noiseHeardAtPosition
|
||||||
+ "$" + npc.getPosition() + "$");
|
+ "$" + npc.getPosition());
|
||||||
break;
|
break;
|
||||||
case ClientGameInfoHandler.humanVoteRequest:
|
case ClientGameInfoHandler.humanVoteRequest:
|
||||||
npc.vote(game);
|
npc.vote(game);
|
||||||
|
|||||||
@ -22,7 +22,7 @@ public class Timer {
|
|||||||
* The length of time in seconds after the ghost vote during which the ghosts visually walk to /
|
* The length of time in seconds after the ghost vote during which the ghosts visually walk to /
|
||||||
* from their victim and the timespan within which humans will hear a noise. After this, the day starts.
|
* from their victim and the timespan within which humans will hear a noise. After this, the day starts.
|
||||||
*/
|
*/
|
||||||
public static final int ghostAfterVoteTime = 7;
|
public static final int ghostAfterVoteTime = 4;
|
||||||
/**
|
/**
|
||||||
* The maximum length of the human vote in the day, in seconds
|
* The maximum length of the human vote in the day, in seconds
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -2,6 +2,8 @@ package ch.unibas.dmi.dbis.cs108.gamelogic;
|
|||||||
|
|
||||||
import ch.unibas.dmi.dbis.cs108.BudaLogConfig;
|
import ch.unibas.dmi.dbis.cs108.BudaLogConfig;
|
||||||
import ch.unibas.dmi.dbis.cs108.gamelogic.klassenstruktur.Passenger;
|
import ch.unibas.dmi.dbis.cs108.gamelogic.klassenstruktur.Passenger;
|
||||||
|
import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.GuiParameters;
|
||||||
|
import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.Protocol;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
@ -66,7 +68,7 @@ public class VoteHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
LOGGER.info("Most votes for: " + newGhostPosition);
|
LOGGER.info("Most votes for: " + newGhostPosition);
|
||||||
|
Timer.ghostAfterVoteTimer();
|
||||||
for(Passenger passenger : passengers) {
|
for(Passenger passenger : passengers) {
|
||||||
if(passenger.getIsGhost() || passenger.getIsSpectator()) {
|
if(passenger.getIsGhost() || passenger.getIsSpectator()) {
|
||||||
passenger.send(passengers[newGhostPosition].getName() + ClientGameInfoHandler.gotGhostyfied, game);
|
passenger.send(passengers[newGhostPosition].getName() + ClientGameInfoHandler.gotGhostyfied, game);
|
||||||
@ -85,7 +87,7 @@ public class VoteHandler {
|
|||||||
walk by is being updated. Finally, each passenger receives information about how often he heard something during
|
walk by is being updated. Finally, each passenger receives information about how often he heard something during
|
||||||
this night. The player who's just been ghostified is ignored since he didn't participate in this night's
|
this night. The player who's just been ghostified is ignored since he didn't participate in this night's
|
||||||
ghostification. */
|
ghostification. */
|
||||||
|
Timer.ghostAfterVoteTimer();
|
||||||
int[] noiseAmount = new int[6];
|
int[] noiseAmount = new int[6];
|
||||||
for (int i = 0; i < passengers.length; i++) {
|
for (int i = 0; i < passengers.length; i++) {
|
||||||
if (passengers[i].getIsGhost() && i != newGhostPosition) {
|
if (passengers[i].getIsGhost() && i != newGhostPosition) {
|
||||||
@ -152,6 +154,7 @@ public class VoteHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Timer.humanVoteTimer(game);
|
Timer.humanVoteTimer(game);
|
||||||
|
game.getLobby().getAdmin().sendMsgToClientsInLobby(Protocol.printToGUI + "$" + GuiParameters.VoteIsOver + "$");
|
||||||
|
|
||||||
int currentMax = humanVoteEvaluation(passengers, votesForPlayers, game.getGameState().getClientVoteData(), game);
|
int currentMax = humanVoteEvaluation(passengers, votesForPlayers, game.getGameState().getClientVoteData(), game);
|
||||||
|
|
||||||
@ -170,6 +173,7 @@ public class VoteHandler {
|
|||||||
ClientGameInfoHandler.humansVotedFor + voteIndex + ClientGameInfoHandler.isAHuman, game);
|
ClientGameInfoHandler.humansVotedFor + voteIndex + ClientGameInfoHandler.isAHuman, game);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Timer.ghostAfterVoteTimer();
|
||||||
if (passengers[voteIndex].getIsGhost()) { // if player is a ghost
|
if (passengers[voteIndex].getIsGhost()) { // if player is a ghost
|
||||||
if (passengers[voteIndex].getIsOG()) { // if ghost is OG --> end game, humans win
|
if (passengers[voteIndex].getIsOG()) { // if ghost is OG --> end game, humans win
|
||||||
System.out.println(ClientGameInfoHandler.gameOverHumansWin);
|
System.out.println(ClientGameInfoHandler.gameOverHumansWin);
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.ClientPinger;
|
|||||||
import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.GuiParameters;
|
import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.GuiParameters;
|
||||||
import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.Protocol;
|
import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.Protocol;
|
||||||
|
|
||||||
|
import com.google.inject.Guice;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.Socket;
|
import java.net.Socket;
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
@ -329,13 +330,17 @@ public class Client {
|
|||||||
*/
|
*/
|
||||||
public void sendToGUI(String parameter, String data) {
|
public void sendToGUI(String parameter, String data) {
|
||||||
try {
|
try {
|
||||||
|
if(!parameter.equals(GuiParameters.updateGameState)) {
|
||||||
LOGGER.debug("GUI: PARAMETER:" + parameter + ", DATA: " + data);
|
LOGGER.debug("GUI: PARAMETER:" + parameter + ", DATA: " + data);
|
||||||
|
}
|
||||||
switch (parameter) {
|
switch (parameter) {
|
||||||
case ClientGameInfoHandler.itsNightTime: //ClientGameInfoHandler
|
case GuiParameters.night: //ClientGameInfoHandler
|
||||||
gameStateModel.setDayClone(false);
|
gameStateModel.setDayClone(false);
|
||||||
|
chatApp.getGameController().setNoiseButtonInvisible();
|
||||||
break;
|
break;
|
||||||
case ClientGameInfoHandler.itsDayTime: //ClientGameInfoHandler
|
case GuiParameters.day: //ClientGameInfoHandler
|
||||||
gameStateModel.setDayClone(true);
|
gameStateModel.setDayClone(true);
|
||||||
|
chatApp.getGameController().setNoiseButtonVisible();
|
||||||
break;
|
break;
|
||||||
case GuiParameters.updateGameState:
|
case GuiParameters.updateGameState:
|
||||||
gameStateModel.setGSFromString(data);
|
gameStateModel.setGSFromString(data);
|
||||||
@ -353,6 +358,9 @@ public class Client {
|
|||||||
//updateListOfLobbies(data); (commented out due to compiling error)
|
//updateListOfLobbies(data); (commented out due to compiling error)
|
||||||
//TODO
|
//TODO
|
||||||
break;
|
break;
|
||||||
|
case GuiParameters.VoteIsOver:
|
||||||
|
chatApp.getGameController().clearAllNoiseDisplay();
|
||||||
|
break;
|
||||||
case GuiParameters.listOfPLayers:
|
case GuiParameters.listOfPLayers:
|
||||||
updateListOfClients(data);
|
updateListOfClients(data);
|
||||||
//TODO
|
//TODO
|
||||||
@ -407,7 +415,7 @@ public class Client {
|
|||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
try {
|
try {
|
||||||
chatApp.getGameController().addMessageToNotificationText(data);
|
chatApp.getGameController().addMessageToNotificationText(data);
|
||||||
Thread.sleep(3000);
|
Thread.sleep(5000);
|
||||||
chatApp.getGameController().clearNotificationText();
|
chatApp.getGameController().clearNotificationText();
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
LOGGER.warn(e.getMessage());
|
LOGGER.warn(e.getMessage());
|
||||||
@ -417,19 +425,26 @@ public class Client {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void determineNoiseDisplay(int position) {
|
public void determineNoiseDisplay(int position) {
|
||||||
|
LOGGER.debug(position);
|
||||||
switch (position) {
|
switch (position) {
|
||||||
case 0:
|
case 0:
|
||||||
chatApp.getGameController().noiseDisplay0();
|
chatApp.getGameController().noiseDisplay0();
|
||||||
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
chatApp.getGameController().noiseDisplay1();
|
chatApp.getGameController().noiseDisplay1();
|
||||||
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
chatApp.getGameController().noiseDisplay2();
|
chatApp.getGameController().noiseDisplay2();
|
||||||
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
chatApp.getGameController().noiseDisplay3();
|
chatApp.getGameController().noiseDisplay3();
|
||||||
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
chatApp.getGameController().noiseDisplay4();
|
chatApp.getGameController().noiseDisplay4();
|
||||||
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
chatApp.getGameController().noiseDisplay5();
|
chatApp.getGameController().noiseDisplay5();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -40,6 +40,9 @@ public class JClientProtocolParser {
|
|||||||
break;
|
break;
|
||||||
case Protocol.printToClientConsole:
|
case Protocol.printToClientConsole:
|
||||||
System.out.println(msg.substring(6));
|
System.out.println(msg.substring(6));
|
||||||
|
if (!msg.substring(6).equals("Your vote was invalid")) {
|
||||||
|
c.notificationTextDisplay(msg.substring(6));
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case Protocol.printToClientChat:
|
case Protocol.printToClientChat:
|
||||||
//todo: handle chat separately from console.
|
//todo: handle chat separately from console.
|
||||||
@ -74,8 +77,12 @@ public class JClientProtocolParser {
|
|||||||
c.sendToGUI(parameter,data);
|
c.sendToGUI(parameter,data);
|
||||||
break;
|
break;
|
||||||
case Protocol.positionOfClient:
|
case Protocol.positionOfClient:
|
||||||
|
try {
|
||||||
int position = Integer.parseInt(msg.substring(6));
|
int position = Integer.parseInt(msg.substring(6));
|
||||||
GameController.getClient().getClient().setPosition(position);
|
GameController.getClient().getClient().setPosition(position);
|
||||||
|
} catch (Exception e) {
|
||||||
|
LOGGER.warn(msg.substring(6));
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
System.out.println("Received unknown command");
|
System.out.println("Received unknown command");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -117,6 +117,7 @@ public class GameStateModel {
|
|||||||
j = right.indexOf(':');
|
j = right.indexOf(':');
|
||||||
roles[i] = right.substring(0, j);
|
roles[i] = right.substring(0, j);
|
||||||
kickedOff[i] = Boolean.parseBoolean(right.substring(j + 1));
|
kickedOff[i] = Boolean.parseBoolean(right.substring(j + 1));
|
||||||
|
LOGGER.info(kickedOff[i]);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
setPassengerTrainClone(names, roles);
|
setPassengerTrainClone(names, roles);
|
||||||
|
|||||||
@ -181,6 +181,14 @@ public class GameController implements Initializable{
|
|||||||
+ client.getClient().getPosition()); //TODO: Test!!
|
+ client.getClient().getPosition()); //TODO: Test!!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setNoiseButtonInvisible() {
|
||||||
|
noiseButton.setVisible(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNoiseButtonVisible() {
|
||||||
|
noiseButton.setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Takes a given message and displays it in the notificationText Flow in the game Scene
|
* Takes a given message and displays it in the notificationText Flow in the game Scene
|
||||||
* @param msg the message to be displayed
|
* @param msg the message to be displayed
|
||||||
@ -197,7 +205,6 @@ public class GameController implements Initializable{
|
|||||||
notificationText.getChildren().add(notification);
|
notificationText.getChildren().add(notification);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOGGER.debug(e.getMessage());
|
LOGGER.debug(e.getMessage());
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -214,7 +221,7 @@ public class GameController implements Initializable{
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
notificationText.getChildren().clear();
|
notificationText.getChildren().remove(0);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOGGER.debug("Not yet initialized");
|
LOGGER.debug("Not yet initialized");
|
||||||
}
|
}
|
||||||
@ -230,18 +237,73 @@ public class GameController implements Initializable{
|
|||||||
LOGGER.debug("roomlables update");
|
LOGGER.debug("roomlables update");
|
||||||
String[] names = gameStateModel.getPassengerTrainClone()[0];
|
String[] names = gameStateModel.getPassengerTrainClone()[0];
|
||||||
String[] roles = gameStateModel.getPassengerTrainClone()[1];
|
String[] roles = gameStateModel.getPassengerTrainClone()[1];
|
||||||
|
boolean[] kickedOff = gameStateModel.getKickedOff();
|
||||||
Text name0 = new Text(names[0]);
|
Text name0 = new Text(names[0]);
|
||||||
|
name0.setStyle("-fx-font: 25 arial;");
|
||||||
|
name0.setFill(Color.WHITE);
|
||||||
Text name1 = new Text(names[1]);
|
Text name1 = new Text(names[1]);
|
||||||
|
name1.setStyle("-fx-font: 25 arial;");
|
||||||
|
name1.setFill(Color.WHITE);
|
||||||
Text name2 = new Text(names[2]);
|
Text name2 = new Text(names[2]);
|
||||||
|
name2.setStyle("-fx-font: 25 arial;");
|
||||||
|
name2.setFill(Color.WHITE);
|
||||||
Text name3 = new Text(names[3]);
|
Text name3 = new Text(names[3]);
|
||||||
|
name3.setStyle("-fx-font: 25 arial;");
|
||||||
|
name3.setFill(Color.WHITE);
|
||||||
Text name4 = new Text(names[4]);
|
Text name4 = new Text(names[4]);
|
||||||
|
name4.setStyle("-fx-font: 25 arial;");
|
||||||
|
name4.setFill(Color.WHITE);
|
||||||
Text name5 = new Text(names[5]);
|
Text name5 = new Text(names[5]);
|
||||||
Text role0 = new Text(roles[0]);
|
name5.setStyle("-fx-font: 25 arial;");
|
||||||
Text role1 = new Text(roles[1]);
|
name5.setFill(Color.WHITE);
|
||||||
Text role2 = new Text(roles[2]);
|
Text role0;
|
||||||
Text role3 = new Text(roles[3]);
|
if(kickedOff[0]) {
|
||||||
Text role4 = new Text(roles[4]);
|
role0 = new Text("\nkicked off");
|
||||||
Text role5 = new Text(roles[5]);
|
} else {
|
||||||
|
role0 = new Text("\n" + roles[0]);
|
||||||
|
}
|
||||||
|
role0.setStyle("-fx-font: 25 arial;");
|
||||||
|
role0.setFill(Color.WHITE);
|
||||||
|
Text role1;
|
||||||
|
if(kickedOff[1]) {
|
||||||
|
role1 = new Text("\nkicked off");
|
||||||
|
} else {
|
||||||
|
role1 = new Text("\n" + roles[0]);
|
||||||
|
}
|
||||||
|
role1.setStyle("-fx-font: 25 arial;");
|
||||||
|
role1.setFill(Color.WHITE);
|
||||||
|
Text role2;
|
||||||
|
if(kickedOff[2]) {
|
||||||
|
role2 = new Text("\nkicked off");
|
||||||
|
} else {
|
||||||
|
role2 = new Text("\n" + roles[0]);
|
||||||
|
}
|
||||||
|
role2.setStyle("-fx-font: 25 arial;");
|
||||||
|
role2.setFill(Color.WHITE);
|
||||||
|
Text role3;
|
||||||
|
if(kickedOff[3]) {
|
||||||
|
role3 = new Text("\nkicked off");
|
||||||
|
} else {
|
||||||
|
role3 = new Text("\n" + roles[0]);
|
||||||
|
}
|
||||||
|
role3.setStyle("-fx-font: 25 arial;");
|
||||||
|
role3.setFill(Color.WHITE);
|
||||||
|
Text role4;
|
||||||
|
if(kickedOff[4]) {
|
||||||
|
role4 = new Text("\nkicked off");
|
||||||
|
} else {
|
||||||
|
role4 = new Text("\n" + roles[0]);
|
||||||
|
}
|
||||||
|
role4.setStyle("-fx-font: 25 arial;");
|
||||||
|
role4.setFill(Color.WHITE);
|
||||||
|
Text role5;
|
||||||
|
if(kickedOff[5]) {
|
||||||
|
role5 = new Text("\nkicked off");
|
||||||
|
} else {
|
||||||
|
role5 = new Text("\n" + roles[0]);
|
||||||
|
}
|
||||||
|
role5.setStyle("-fx-font: 25 arial;");
|
||||||
|
role5.setFill(Color.WHITE);
|
||||||
|
|
||||||
Platform.runLater(new Runnable(){
|
Platform.runLater(new Runnable(){
|
||||||
@Override
|
@Override
|
||||||
@ -382,6 +444,27 @@ public class GameController implements Initializable{
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clears all bells from the view
|
||||||
|
*/
|
||||||
|
public void clearAllNoiseDisplay() {
|
||||||
|
Platform.runLater(new Runnable(){
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
noiseImage0.setImage(null);
|
||||||
|
noiseImage1.setImage(null);
|
||||||
|
noiseImage2.setImage(null);
|
||||||
|
noiseImage3.setImage(null);
|
||||||
|
noiseImage4.setImage(null);
|
||||||
|
noiseImage5.setImage(null);
|
||||||
|
} catch (Exception e) {
|
||||||
|
LOGGER.debug(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public void setGameStateModel(
|
public void setGameStateModel(
|
||||||
GameStateModel gameStateModel) {
|
GameStateModel gameStateModel) {
|
||||||
GameController.gameStateModel = gameStateModel;
|
GameController.gameStateModel = gameStateModel;
|
||||||
|
|||||||
@ -40,11 +40,24 @@ public class GuiParameters {
|
|||||||
*/
|
*/
|
||||||
public static final String viewChangeToGame = "VCGAME";
|
public static final String viewChangeToGame = "VCGAME";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tells, Gui, who the members of a specified Lobby are.
|
* Tells, Gui, who the members of a specified Lobby are.
|
||||||
* Form: {@code LMEMBS$<lobbyID>$<member names>$..}
|
* Form: {@code LMEMBS$<lobbyID>$<member names>$..}
|
||||||
*/
|
*/
|
||||||
public static String changeToLobby = "LMEMBS";
|
public static final String changeToLobby = "LMEMBS";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Informs the GUI, that a vote is over
|
||||||
|
*/
|
||||||
|
public static final String VoteIsOver = "VOTEOVER";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Informes Gui, that its the night
|
||||||
|
*/
|
||||||
|
public static final String night = "NIGHT";
|
||||||
|
/**
|
||||||
|
* Informes Gui, that its the day
|
||||||
|
*/
|
||||||
|
public static final String day = "DAY";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,14 +13,14 @@
|
|||||||
<children>
|
<children>
|
||||||
<Group fx:id="roomButtonGroupDay" layoutX="230.5" layoutY="220.0">
|
<Group fx:id="roomButtonGroupDay" layoutX="230.5" layoutY="220.0">
|
||||||
<children>
|
<children>
|
||||||
<HBox fx:id="notificationHBox" layoutX="50.0" layoutY="-74.0" rotate="12.4">
|
<HBox fx:id="notificationHBox" layoutX="20.0" layoutY="-55.0" rotate="12.4">
|
||||||
<children>
|
<children>
|
||||||
<ImageView fx:id="noiseImage0" fitHeight="150.0" fitWidth="125.0" pickOnBounds="true" preserveRatio="true" />
|
<ImageView fx:id="noiseImage0" fitHeight="150.0" fitWidth="125.0" pickOnBounds="true" preserveRatio="true" rotate="-12.4" />
|
||||||
<ImageView fx:id="noiseImage1" fitHeight="150.0" fitWidth="125.0" pickOnBounds="true" preserveRatio="true" />
|
<ImageView fx:id="noiseImage1" fitHeight="150.0" fitWidth="125.0" pickOnBounds="true" preserveRatio="true" rotate="-12.4" />
|
||||||
<ImageView fx:id="noiseImage2" fitHeight="150.0" fitWidth="125.0" pickOnBounds="true" preserveRatio="true" />
|
<ImageView fx:id="noiseImage2" fitHeight="150.0" fitWidth="125.0" pickOnBounds="true" preserveRatio="true" rotate="-12.4" />
|
||||||
<ImageView fx:id="noiseImage3" fitHeight="150.0" fitWidth="125.0" pickOnBounds="true" preserveRatio="true" />
|
<ImageView fx:id="noiseImage3" fitHeight="150.0" fitWidth="125.0" pickOnBounds="true" preserveRatio="true" rotate="-12.4" />
|
||||||
<ImageView fx:id="noiseImage4" fitHeight="150.0" fitWidth="125.0" pickOnBounds="true" preserveRatio="true" />
|
<ImageView fx:id="noiseImage4" fitHeight="150.0" fitWidth="125.0" pickOnBounds="true" preserveRatio="true" rotate="-12.4" />
|
||||||
<ImageView fx:id="noiseImage5" fitHeight="150.0" fitWidth="125.0" pickOnBounds="true" preserveRatio="true" />
|
<ImageView fx:id="noiseImage5" fitHeight="150.0" fitWidth="125.0" pickOnBounds="true" preserveRatio="true" rotate="-12.4" />
|
||||||
</children>
|
</children>
|
||||||
</HBox>
|
</HBox>
|
||||||
<Button id="room1" fx:id="buttonRoom0" accessibleRole="RADIO_BUTTON" alignment="TOP_CENTER" contentDisplay="GRAPHIC_ONLY" layoutX="21.5" minWidth="-Infinity" mnemonicParsing="false" onAction="#sendVote0" prefHeight="110.0" prefWidth="90.0" text="room0">
|
<Button id="room1" fx:id="buttonRoom0" accessibleRole="RADIO_BUTTON" alignment="TOP_CENTER" contentDisplay="GRAPHIC_ONLY" layoutX="21.5" minWidth="-Infinity" mnemonicParsing="false" onAction="#sendVote0" prefHeight="110.0" prefWidth="90.0" text="room0">
|
||||||
@ -95,14 +95,14 @@
|
|||||||
</ImageView>
|
</ImageView>
|
||||||
</graphic>
|
</graphic>
|
||||||
</Button>
|
</Button>
|
||||||
<HBox fx:id="roomLables" alignment="CENTER" layoutY="80.0" prefHeight="62.0" prefWidth="747.0" rotate="12.4">
|
<HBox fx:id="roomLables" alignment="CENTER" layoutY="82.0" prefHeight="62.0" prefWidth="747.0" rotate="12.2">
|
||||||
<children>
|
<children>
|
||||||
<TextFlow fx:id="lableRoom0" prefHeight="200.0" prefWidth="200.0" />
|
<TextFlow fx:id="lableRoom0" prefHeight="200.0" prefWidth="200.0" textAlignment="CENTER" />
|
||||||
<TextFlow fx:id="lableRoom1" prefHeight="200.0" prefWidth="200.0" />
|
<TextFlow fx:id="lableRoom1" prefHeight="200.0" prefWidth="200.0" textAlignment="CENTER" />
|
||||||
<TextFlow fx:id="lableRoom2" prefHeight="200.0" prefWidth="200.0" />
|
<TextFlow fx:id="lableRoom2" prefHeight="200.0" prefWidth="200.0" textAlignment="CENTER" />
|
||||||
<TextFlow fx:id="lableRoom3" prefHeight="200.0" prefWidth="200.0" />
|
<TextFlow fx:id="lableRoom3" prefHeight="200.0" prefWidth="200.0" textAlignment="CENTER" />
|
||||||
<TextFlow fx:id="lableRoom4" prefHeight="200.0" prefWidth="200.0" />
|
<TextFlow fx:id="lableRoom4" prefHeight="200.0" prefWidth="200.0" textAlignment="CENTER" />
|
||||||
<TextFlow fx:id="lableRoom5" prefHeight="200.0" prefWidth="200.0" />
|
<TextFlow fx:id="lableRoom5" prefHeight="200.0" prefWidth="200.0" textAlignment="CENTER" />
|
||||||
</children>
|
</children>
|
||||||
</HBox>
|
</HBox>
|
||||||
</children>
|
</children>
|
||||||
|
|||||||
Reference in New Issue
Block a user