diff --git a/racevisionGame/src/main/java/shared/model/Constants.java b/racevisionGame/src/main/java/shared/model/Constants.java
index 7a5e2820..b7b5243b 100644
--- a/racevisionGame/src/main/java/shared/model/Constants.java
+++ b/racevisionGame/src/main/java/shared/model/Constants.java
@@ -39,7 +39,7 @@ public class Constants {
* The race pre-start time, in milliseconds. 3 minutes (30 seconds for development).
*/
// public static final long RacePreStartTime = 30 * 1000;
- public static final long RacePreStartTime = 1000;
+ public static final long RacePreStartTime = 5000;
/**
diff --git a/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java b/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java
index a6442664..8a6dd8d6 100644
--- a/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java
+++ b/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java
@@ -30,6 +30,7 @@ import visualiser.model.VisualiserRaceState;
import java.io.IOException;
import java.net.Socket;
import java.net.URL;
+import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -69,6 +70,12 @@ public class InGameLobbyController extends Controller {
@FXML
private Label countdownLabel;
+ @FXML
+ private AnchorPane countdownTenPane;
+
+ @FXML
+ private Label countdownTenText;
+
private Event game;
private View3D playerBoat;
@@ -197,7 +204,6 @@ public class InGameLobbyController extends Controller {
private void initialiseRaceClock(VisualiserRaceState visualiserRace) {
//Remaining time.
initialiseRaceClockDuration(visualiserRace);
-
}
@@ -225,6 +231,18 @@ public class InGameLobbyController extends Controller {
//Get the current race status.
RaceStatusEnum raceStatus = visualiserRaceEvent.getVisualiserRaceState().getRaceStatusEnum();
+ try {
+ long interval = ChronoUnit.MILLIS.between(visualiserRaceEvent.getVisualiserRaceState().getRaceClock().getCurrentTime(), visualiserRaceEvent.getVisualiserRaceState().getRaceClock().getStartingTime());
+ if(interval<=10000){
+ countdownLabel.setVisible(false);
+ countdownTenPane.setVisible(true);
+ countdownTenText.setVisible(true);
+ }
+ countdownText(interval);
+ } catch (Exception e){
+
+ }
+
//If the race has reached the preparatory phase, or has started...
if (raceStatus == RaceStatusEnum.PREPARATORY || raceStatus == RaceStatusEnum.STARTED) {
@@ -234,6 +252,8 @@ public class InGameLobbyController extends Controller {
//Hide this, and display the race controller.
gameLobbyWrapper.setVisible(false);
visualiserRaceEvent.getVisualiserRaceState().getBoats().removeListener(lobbyUpdateListener);
+ countdownTenPane.setVisible(false);
+ countdownLabel.setVisible(true);
parent.beginRace(visualiserRaceEvent, controllerClient, isHost);
}
@@ -294,4 +314,33 @@ public class InGameLobbyController extends Controller {
System.out.println("Empty race user pane pressed. Joining racers");
}
+ private void countdownText(long interval){
+
+ if (interval <=5000){
+ countdownTenText.setText("5");
+ return;
+ }
+ if (interval <=6000){
+ countdownTenText.setText("6");
+ return;
+ }
+ if (interval <=7000){
+ countdownTenText.setText("7");
+ return;
+ }
+ if (interval <=8000){
+ countdownTenText.setText("8");
+ return;
+ }
+ if (interval <=9000){
+ countdownTenText.setText("9");
+ return;
+ }
+ if (interval <=10000){
+ countdownTenText.setText("10");
+ return;
+ }
+
+ }
+
}
diff --git a/racevisionGame/src/main/resources/visualiser/scenes/gameLobby.fxml b/racevisionGame/src/main/resources/visualiser/scenes/gameLobby.fxml
index 6ef70c28..84ff0c34 100644
--- a/racevisionGame/src/main/resources/visualiser/scenes/gameLobby.fxml
+++ b/racevisionGame/src/main/resources/visualiser/scenes/gameLobby.fxml
@@ -94,5 +94,14 @@
+
+
+
+
+