Having 0 hp now removes the boat from being an active boat. #story[1292]
This commit is contained in:
@@ -640,7 +640,7 @@ public class MockRace extends RaceState {
|
|||||||
for (MockBoat boat : this.boats) {
|
for (MockBoat boat : this.boats) {
|
||||||
|
|
||||||
//If the boat is currently racing, count it.
|
//If the boat is currently racing, count it.
|
||||||
if (boat.getStatus() == BoatStatusEnum.RACING) {
|
if (boat.getStatus() == BoatStatusEnum.RACING && boat.getHealth()>=1) {
|
||||||
numberOfActiveBoats++;
|
numberOfActiveBoats++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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.
|
//As long as there is at least one boat racing, we still simulate the race.
|
||||||
if (race.getNumberOfActiveBoats() != 0) {
|
if (race.getNumberOfActiveBoats() != 0) {
|
||||||
|
//System.out.println(race.getNumberOfActiveBoats());
|
||||||
//Get the time period of this frame.
|
//Get the time period of this frame.
|
||||||
long framePeriod = currentTime - previousFrameTime;
|
long framePeriod = currentTime - previousFrameTime;
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import javafx.scene.shape.MeshView;
|
|||||||
import javafx.scene.shape.Shape3D;
|
import javafx.scene.shape.Shape3D;
|
||||||
import javafx.scene.transform.Translate;
|
import javafx.scene.transform.Translate;
|
||||||
import javafx.util.Callback;
|
import javafx.util.Callback;
|
||||||
|
import network.Messages.Enums.BoatStatusEnum;
|
||||||
import network.Messages.Enums.RaceStatusEnum;
|
import network.Messages.Enums.RaceStatusEnum;
|
||||||
import shared.dataInput.RaceDataSource;
|
import shared.dataInput.RaceDataSource;
|
||||||
import shared.exceptions.BoatNotFoundException;
|
import shared.exceptions.BoatNotFoundException;
|
||||||
@@ -68,8 +69,6 @@ public class RaceViewController extends Controller {
|
|||||||
private ObservableList<Subject3D> viewSubjects;
|
private ObservableList<Subject3D> viewSubjects;
|
||||||
private ResizableRaceCanvas raceCanvas;
|
private ResizableRaceCanvas raceCanvas;
|
||||||
private boolean mapToggle = true;
|
private boolean mapToggle = true;
|
||||||
private int heartbeatDelay = 1000;
|
|
||||||
private long heartbeatTime = 0;
|
|
||||||
private GPSConverter gpsConverter;
|
private GPSConverter gpsConverter;
|
||||||
private ArrayList<HealthEffect> healthEffectList = new ArrayList<>();
|
private ArrayList<HealthEffect> healthEffectList = new ArrayList<>();
|
||||||
|
|
||||||
@@ -134,7 +133,6 @@ public class RaceViewController extends Controller {
|
|||||||
isTutorial = true;
|
isTutorial = true;
|
||||||
tutorialText.setVisible(true);
|
tutorialText.setVisible(true);
|
||||||
tutorialStates = new ArrayList<>(Arrays.asList(TutorialState.values()));
|
tutorialStates = new ArrayList<>(Arrays.asList(TutorialState.values()));
|
||||||
|
|
||||||
currentState = tutorialStates.get(0);
|
currentState = tutorialStates.get(0);
|
||||||
tutorialStates.remove(0);
|
tutorialStates.remove(0);
|
||||||
searchMapForKey("Upwind");
|
searchMapForKey("Upwind");
|
||||||
@@ -701,8 +699,15 @@ public class RaceViewController extends Controller {
|
|||||||
|
|
||||||
if(fp.getSourceID()==boat.getSourceID()){
|
if(fp.getSourceID()==boat.getSourceID()){
|
||||||
if(boat.getHealth()<=0){
|
if(boat.getHealth()<=0){
|
||||||
fp.displayDeath();
|
fp.displayDeath(fp.getSourceID()==raceState.getPlayerBoatID());
|
||||||
fp.setSourceID(0);
|
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
|
else
|
||||||
if(boat.getHealth()<=10){
|
if(boat.getHealth()<=10){
|
||||||
|
|||||||
@@ -71,14 +71,16 @@ public class HealthEffect extends Subject3D {
|
|||||||
this.sourceID = id;
|
this.sourceID = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void displayDeath(){
|
public void displayDeath(boolean player){
|
||||||
Image image = new Image(HealthEffect.class.getClassLoader().getResourceAsStream("images/warning2.png"));
|
Image image = new Image(HealthEffect.class.getClassLoader().getResourceAsStream("images/warning2.png"));
|
||||||
PhongMaterial material = (PhongMaterial) this.getMesh().getMaterial();
|
PhongMaterial material = (PhongMaterial) this.getMesh().getMaterial();
|
||||||
material.setDiffuseColor(Color.web("#FFFFFF"));
|
material.setDiffuseColor(Color.web("#FFFFFF"));
|
||||||
material.setSpecularColor(Color.web("#000000"));
|
material.setSpecularColor(Color.web("#000000"));
|
||||||
material.setDiffuseMap(image);
|
material.setDiffuseMap(image);
|
||||||
this.getMesh().setMaterial(material);
|
this.getMesh().setMaterial(material);
|
||||||
deadSound.play();
|
if(player) {
|
||||||
|
deadSound.play();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -248,7 +248,6 @@ public class VisualiserRaceState extends RaceState {
|
|||||||
|
|
||||||
|
|
||||||
if ((boat.getStatus() == BoatStatusEnum.DNF) || (boat.getStatus() == BoatStatusEnum.PRESTART) || (boat.getCurrentLeg().getLegNumber() < 0)) {
|
if ((boat.getStatus() == BoatStatusEnum.DNF) || (boat.getStatus() == BoatStatusEnum.PRESTART) || (boat.getCurrentLeg().getLegNumber() < 0)) {
|
||||||
|
|
||||||
boat.setPlacing("-");
|
boat.setPlacing("-");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user