diff --git a/pom.xml b/pom.xml
index a3e030d6..ce632987 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,6 +28,24 @@
mockito-all
1.9.5
+
+ junit
+ junit
+ 4.12
+ test
+
+
+ org.testng
+ testng
+ 6.11
+ test
+
+
+ junit
+ junit
+ 4.12
+ test
+
diff --git a/src/main/java/seng302/Model/Race.java b/src/main/java/seng302/Model/Race.java
index 14679424..7afe86b2 100644
--- a/src/main/java/seng302/Model/Race.java
+++ b/src/main/java/seng302/Model/Race.java
@@ -31,7 +31,7 @@ public abstract class Race implements Runnable {
protected int scaleFactor;
private int SLEEP_TIME = 100; //time in milliseconds to pause in a paced loop
- protected int PRERACE_TIME = 5000; //time in milliseconds to pause during pre-race
+ protected int PRERACE_TIME = 15000; //time in milliseconds to pause during pre-race
private boolean timerEnabled = true; //boolean to determine if timer is ran
/**
@@ -85,7 +85,7 @@ public abstract class Race implements Runnable {
setControllerListeners();
initialiseBoats();
if (timerEnabled) countdownTimer();
- simulateRace();
+ //simulateRace();
}
/**
@@ -100,37 +100,35 @@ public abstract class Race implements Runnable {
* Countdown timer until race starts. Use PRERACE_TIME to set countdown duration.
*/
protected void countdownTimer() {
- long currentTime = System.currentTimeMillis();
- long startTime = currentTime + PRERACE_TIME;
- long minutes;
- long currentTimeInSeconds;
- long remainingSeconds;
- long hours;
- long timeLeft;
- long timeLoopEnded;
+ new AnimationTimer() {
+ long currentTime = System.currentTimeMillis();
+ long startTime = currentTime + (PRERACE_TIME/scaleFactor);
+ long minutes;
+ long currentTimeInSeconds;
+ long remainingSeconds;
+ long hours;
+ long timeLeft;
- while (currentTime <= startTime) {
- timeLeft = startTime - currentTime;
- if (timeLeft == 0 && controller != null) {
- updateTime("Race is starting...");
- } else {
- currentTimeInSeconds = timeLeft / 1000;
- minutes = currentTimeInSeconds / 60;
- remainingSeconds = currentTimeInSeconds % 60;
- hours = minutes / 60;
- minutes = minutes % 60;
- if (controller != null) {
- updateTime(String.format("Race clock: -%02d:%02d:%02d", hours, minutes, remainingSeconds));
- }
- }
- try {
- timeLoopEnded = System.currentTimeMillis();
- Thread.sleep(SLEEP_TIME - (timeLoopEnded - currentTime));
- } catch (InterruptedException e) {
- e.printStackTrace();
+ @Override
+ public void handle(long arg0) {
+ timeLeft = startTime - currentTime;
+ if (timeLeft <= 0 && controller != null) {
+ updateTime("Race is starting...");
+ stop();
+ simulateRace();
+ } else {
+ currentTimeInSeconds = (timeLeft*scaleFactor) / 1000;
+ minutes = currentTimeInSeconds / 60;
+ remainingSeconds = currentTimeInSeconds % 60;
+ hours = minutes / 60;
+ minutes = minutes % 60;
+ if (controller != null) {
+ updateTime(String.format("Race clock: -%02d:%02d:%02d", hours, minutes, remainingSeconds));
+ }
+ }
+ currentTime = System.currentTimeMillis();
}
- currentTime = System.currentTimeMillis();
- }
+ }.start();
}
/**