mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 14:28:43 +00:00
Fixed game crash, and improved timer
- Fixed the null pointer exception that happened on slower computers - Made the timer start counting down when the host clicks ready Tags: #story[1109]
This commit is contained in:
@@ -89,7 +89,7 @@ public class GameState implements Runnable {
|
|||||||
markOrder = new MarkOrder(); //This could be instantiated at some point with a select map?
|
markOrder = new MarkOrder(); //This could be instantiated at some point with a select map?
|
||||||
markListeners = new ArrayList<>();
|
markListeners = new ArrayList<>();
|
||||||
|
|
||||||
startTime = System.currentTimeMillis() + 60000;
|
resetStartTime();
|
||||||
|
|
||||||
new Thread(this).start(); //Run the auto updates on the game state
|
new Thread(this).start(); //Run the auto updates on the game state
|
||||||
new Thread(this, "GameState").start(); //Run the auto updates on the game state
|
new Thread(this, "GameState").start(); //Run the auto updates on the game state
|
||||||
@@ -149,6 +149,10 @@ public class GameState implements Runnable {
|
|||||||
return startTime;
|
return startTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void resetStartTime(){
|
||||||
|
startTime = System.currentTimeMillis() + MainServerThread.TIME_TILL_START;
|
||||||
|
}
|
||||||
|
|
||||||
public static Double getWindDirection() {
|
public static Double getWindDirection() {
|
||||||
return windDirection;
|
return windDirection;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,9 +27,9 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate {
|
|||||||
private static final int PORT = 4942;
|
private static final int PORT = 4942;
|
||||||
private static final Integer CLIENT_UPDATES_PER_SECOND = 10;
|
private static final Integer CLIENT_UPDATES_PER_SECOND = 10;
|
||||||
private static final int LOG_LEVEL = 1;
|
private static final int LOG_LEVEL = 1;
|
||||||
private static final int PRESTART_TIME = 60 * -1000;
|
private static final int WARNING_TIME = 10 * -1000;
|
||||||
private static final int WARNING_TIME = 30 * -1000;
|
private static final int PREPATORY_TIME = 5 * -1000;
|
||||||
private static final int PREPATORY_TIME = 10 * -1000;
|
public static final int TIME_TILL_START = 10 * 1000;
|
||||||
|
|
||||||
private boolean terminated;
|
private boolean terminated;
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import javafx.fxml.FXMLLoader;
|
|||||||
import javafx.scene.Node;
|
import javafx.scene.Node;
|
||||||
import javafx.scene.input.KeyEvent;
|
import javafx.scene.input.KeyEvent;
|
||||||
import javafx.scene.layout.Pane;
|
import javafx.scene.layout.Pane;
|
||||||
|
import seng302.gameServer.GameState;
|
||||||
import seng302.gameServer.MainServerThread;
|
import seng302.gameServer.MainServerThread;
|
||||||
import seng302.gameServer.server.messages.BoatAction;
|
import seng302.gameServer.server.messages.BoatAction;
|
||||||
import seng302.model.ClientYacht;
|
import seng302.model.ClientYacht;
|
||||||
@@ -76,8 +77,16 @@ public class GameClient {
|
|||||||
LobbyController lobbyController = loadLobby();
|
LobbyController lobbyController = loadLobby();
|
||||||
lobbyController.setPlayerListSource(clientLobbyList);
|
lobbyController.setPlayerListSource(clientLobbyList);
|
||||||
lobbyController.disableReadyButton();
|
lobbyController.disableReadyButton();
|
||||||
|
|
||||||
|
if (regattaData != null){
|
||||||
lobbyController.setTitle(regattaData.getRegattaName());
|
lobbyController.setTitle(regattaData.getRegattaName());
|
||||||
lobbyController.setCourseName(regattaData.getCourseName());
|
lobbyController.setCourseName(regattaData.getCourseName());
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
lobbyController.setTitle(ipAddress);
|
||||||
|
lobbyController.setCourseName("");
|
||||||
|
}
|
||||||
|
|
||||||
lobbyController.addCloseListener((exitCause) -> this.loadStartScreen());
|
lobbyController.addCloseListener((exitCause) -> this.loadStartScreen());
|
||||||
this.lobbyController = lobbyController;
|
this.lobbyController = lobbyController;
|
||||||
}
|
}
|
||||||
@@ -98,10 +107,20 @@ public class GameClient {
|
|||||||
socketThread.addStreamObserver(this::parsePackets);
|
socketThread.addStreamObserver(this::parsePackets);
|
||||||
LobbyController lobbyController = loadLobby();
|
LobbyController lobbyController = loadLobby();
|
||||||
lobbyController.setPlayerListSource(clientLobbyList);
|
lobbyController.setPlayerListSource(clientLobbyList);
|
||||||
|
|
||||||
|
if (regattaData != null){
|
||||||
lobbyController.setTitle("Hosting: " + regattaData.getRegattaName());
|
lobbyController.setTitle("Hosting: " + regattaData.getRegattaName());
|
||||||
lobbyController.setCourseName(regattaData.getCourseName());
|
lobbyController.setCourseName(regattaData.getCourseName());
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
lobbyController.setTitle("Hosting: " + ipAddress);
|
||||||
|
lobbyController.setCourseName("");
|
||||||
|
}
|
||||||
|
|
||||||
lobbyController.addCloseListener(exitCause -> {
|
lobbyController.addCloseListener(exitCause -> {
|
||||||
if (exitCause == CloseStatus.READY) {
|
if (exitCause == CloseStatus.READY) {
|
||||||
|
GameState.resetStartTime();
|
||||||
|
lobbyController.disableReadyButton();
|
||||||
server.startGame();
|
server.startGame();
|
||||||
} else if (exitCause == CloseStatus.LEAVE) {
|
} else if (exitCause == CloseStatus.LEAVE) {
|
||||||
loadStartScreen();
|
loadStartScreen();
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ public class LobbyController {
|
|||||||
);
|
);
|
||||||
initialiseImageView();
|
initialiseImageView();
|
||||||
|
|
||||||
timeUntilStart.setText("");
|
timeUntilStart.setText("Waiting For Host...");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -170,7 +170,7 @@ public class LobbyController {
|
|||||||
|
|
||||||
public void updateRaceState(RaceState raceState){
|
public void updateRaceState(RaceState raceState){
|
||||||
this.raceState = raceState;
|
this.raceState = raceState;
|
||||||
timeUntilStart.setText(raceState.getRaceTimeStr());
|
timeUntilStart.setText("Starting in: " + raceState.getRaceTimeStr());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void disableReadyButton () {
|
public void disableReadyButton () {
|
||||||
|
|||||||
Reference in New Issue
Block a user