diff --git a/racevisionGame/src/main/java/mock/model/MockRace.java b/racevisionGame/src/main/java/mock/model/MockRace.java index 685b3233..3f652fda 100644 --- a/racevisionGame/src/main/java/mock/model/MockRace.java +++ b/racevisionGame/src/main/java/mock/model/MockRace.java @@ -640,7 +640,7 @@ public class MockRace extends RaceState { for (MockBoat boat : this.boats) { //If the boat is currently racing, count it. - if (boat.getStatus() == BoatStatusEnum.RACING) { + if (boat.getStatus() == BoatStatusEnum.RACING && boat.getHealth()>=1) { numberOfActiveBoats++; } diff --git a/racevisionGame/src/main/java/mock/model/RaceLogic.java b/racevisionGame/src/main/java/mock/model/RaceLogic.java index a317dcdf..8eed49f9 100644 --- a/racevisionGame/src/main/java/mock/model/RaceLogic.java +++ b/racevisionGame/src/main/java/mock/model/RaceLogic.java @@ -161,7 +161,7 @@ public class RaceLogic implements RunnableWithFramePeriod, Observer { //As long as there is at least one boat racing, we still simulate the race. if (race.getNumberOfActiveBoats() != 0) { - + //System.out.println(race.getNumberOfActiveBoats()); //Get the time period of this frame. long framePeriod = currentTime - previousFrameTime; diff --git a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java index c459279f..4b5f94ab 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java @@ -27,6 +27,7 @@ import javafx.scene.shape.MeshView; import javafx.scene.shape.Shape3D; import javafx.scene.transform.Translate; import javafx.util.Callback; +import network.Messages.Enums.BoatStatusEnum; import network.Messages.Enums.RaceStatusEnum; import shared.dataInput.RaceDataSource; import shared.exceptions.BoatNotFoundException; @@ -68,8 +69,6 @@ public class RaceViewController extends Controller { private ObservableList viewSubjects; private ResizableRaceCanvas raceCanvas; private boolean mapToggle = true; - private int heartbeatDelay = 1000; - private long heartbeatTime = 0; private GPSConverter gpsConverter; private ArrayList healthEffectList = new ArrayList<>(); @@ -134,7 +133,6 @@ public class RaceViewController extends Controller { isTutorial = true; tutorialText.setVisible(true); tutorialStates = new ArrayList<>(Arrays.asList(TutorialState.values())); - currentState = tutorialStates.get(0); tutorialStates.remove(0); searchMapForKey("Upwind"); @@ -701,8 +699,15 @@ public class RaceViewController extends Controller { if(fp.getSourceID()==boat.getSourceID()){ if(boat.getHealth()<=0){ - fp.displayDeath(); + fp.displayDeath(fp.getSourceID()==raceState.getPlayerBoatID()); fp.setSourceID(0); + try { + raceState.getBoat(boat.getSourceID()).setStatus(BoatStatusEnum.DNF); + + raceState.updateBoatPositions(raceState.getBoats()); + } catch (BoatNotFoundException e) { + System.out.println("Can't update boat"); + } } else if(boat.getHealth()<=10){ diff --git a/racevisionGame/src/main/java/visualiser/layout/HealthEffect.java b/racevisionGame/src/main/java/visualiser/layout/HealthEffect.java index a00b40d3..d3dfd172 100644 --- a/racevisionGame/src/main/java/visualiser/layout/HealthEffect.java +++ b/racevisionGame/src/main/java/visualiser/layout/HealthEffect.java @@ -71,14 +71,16 @@ public class HealthEffect extends Subject3D { this.sourceID = id; } - public void displayDeath(){ + public void displayDeath(boolean player){ Image image = new Image(HealthEffect.class.getClassLoader().getResourceAsStream("images/warning2.png")); PhongMaterial material = (PhongMaterial) this.getMesh().getMaterial(); material.setDiffuseColor(Color.web("#FFFFFF")); material.setSpecularColor(Color.web("#000000")); material.setDiffuseMap(image); this.getMesh().setMaterial(material); - deadSound.play(); + if(player) { + deadSound.play(); + } } diff --git a/racevisionGame/src/main/java/visualiser/model/VisualiserRaceState.java b/racevisionGame/src/main/java/visualiser/model/VisualiserRaceState.java index 4a0316ee..d6c9c1d0 100644 --- a/racevisionGame/src/main/java/visualiser/model/VisualiserRaceState.java +++ b/racevisionGame/src/main/java/visualiser/model/VisualiserRaceState.java @@ -248,7 +248,6 @@ public class VisualiserRaceState extends RaceState { if ((boat.getStatus() == BoatStatusEnum.DNF) || (boat.getStatus() == BoatStatusEnum.PRESTART) || (boat.getCurrentLeg().getLegNumber() < 0)) { - boat.setPlacing("-"); } else {