Having 0 hp now removes the boat from being an active boat. #story[1292]

main
zwu18 8 years ago
parent f4001e0ae3
commit 1b8fa59f0e

@ -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,15 +71,17 @@ 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);
if(player) {
deadSound.play(); 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 {

Loading…
Cancel
Save