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) {
|
||||
|
||||
//If the boat is currently racing, count it.
|
||||
if (boat.getStatus() == BoatStatusEnum.RACING) {
|
||||
if (boat.getStatus() == BoatStatusEnum.RACING && boat.getHealth()>=1) {
|
||||
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.
|
||||
if (race.getNumberOfActiveBoats() != 0) {
|
||||
|
||||
//System.out.println(race.getNumberOfActiveBoats());
|
||||
//Get the time period of this frame.
|
||||
long framePeriod = currentTime - previousFrameTime;
|
||||
|
||||
|
||||
@@ -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<Subject3D> viewSubjects;
|
||||
private ResizableRaceCanvas raceCanvas;
|
||||
private boolean mapToggle = true;
|
||||
private int heartbeatDelay = 1000;
|
||||
private long heartbeatTime = 0;
|
||||
private GPSConverter gpsConverter;
|
||||
private ArrayList<HealthEffect> 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){
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user