diff --git a/src/main/java/seng302/model/ClientYacht.java b/src/main/java/seng302/model/ClientYacht.java index a0ee906e..c59ed3a1 100644 --- a/src/main/java/seng302/model/ClientYacht.java +++ b/src/main/java/seng302/model/ClientYacht.java @@ -70,6 +70,7 @@ public class ClientYacht extends Observable { this.location = new GeoPoint(57.670341, 11.826856); this.heading = 120.0; //In degrees this.currentVelocity = 0d; + this.boatStatus = 1; } /** diff --git a/src/main/java/seng302/visualiser/GameClient.java b/src/main/java/seng302/visualiser/GameClient.java index 62189263..f70c0a13 100644 --- a/src/main/java/seng302/visualiser/GameClient.java +++ b/src/main/java/seng302/visualiser/GameClient.java @@ -155,6 +155,17 @@ public class GameClient { raceView.loadRace(allBoatsMap, courseData, raceState, player); } + private void loadFinishScreenView() { + FXMLLoader fxmlLoader = new FXMLLoader( + getClass().getResource("/views/FinishScreenView.fxml")); + try { + holderPane.getChildren().clear(); + holderPane.getChildren().add(fxmlLoader.load()); + } catch (IOException e) { + e.printStackTrace(); + } + } + private void parsePackets() { while (socketThread.getPacketQueue().peek() != null) { StreamPacket packet = socketThread.getPacketQueue().poll(); @@ -257,6 +268,17 @@ public class GameClient { private void processRaceStatusUpdate(RaceStatusData data) { if (allXMLReceived()) { raceState.updateState(data); + + boolean raceFinished = true; + for (ClientYacht yacht : allBoatsMap.values()) { + if (yacht.getBoatStatus() != 3) { + raceFinished = false; + } + } + if (raceFinished == true) { + loadFinishScreenView(); + } + for (long[] boatData : data.getBoatData()) { ClientYacht clientYacht = allBoatsMap.get((int) boatData[0]); clientYacht.setEstimateTimeTillNextMark(raceState.getRaceTime() - boatData[1]); diff --git a/src/main/java/seng302/visualiser/controllers/RaceViewController.java b/src/main/java/seng302/visualiser/controllers/RaceViewController.java index 1721b027..b8d529b7 100644 --- a/src/main/java/seng302/visualiser/controllers/RaceViewController.java +++ b/src/main/java/seng302/visualiser/controllers/RaceViewController.java @@ -79,7 +79,6 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel private GameView gameView; private RaceState raceState; - private Timeline timerTimeline; private Timer timer = new Timer(); private List> sparkLineData = new ArrayList<>(); private ImportantAnnotationsState importantAnnotations; @@ -396,7 +395,6 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel textToAdd.setStyle(""); vboxEntries.add(textToAdd); } -// System.out.println("finished a loop :))))))))))))"); } Platform.runLater(() -> positionVbox.getChildren().setAll(vboxEntries)