Merged master in. Added documentation. #story[1292]

main
David Wu 8 years ago
parent 3adc5330b4
commit 48e7b6970c

@ -451,11 +451,10 @@ public class RaceViewController extends Controller {
viewSubjects.add(boatModel);
//Create first fire
HealthEffect fire = new HealthEffect(boat.getSourceID(), System.currentTimeMillis());
viewSubjects.add(fire);
//fire.setVisible(false);
healthEffectList.add(fire);
//Create health effect
HealthEffect healthEffect = new HealthEffect(boat.getSourceID(), System.currentTimeMillis());
viewSubjects.add(healthEffect);
healthEffectList.add(healthEffect);
//add sail
Sails3D sails3D = new Sails3D();
@ -539,10 +538,10 @@ public class RaceViewController extends Controller {
boatModel.getMesh().toFront();
//Fire follows boat
fire.setHeading(boat.getBearing().degrees());
fire.setX(gpsConverter.convertGPS(boat.getPosition()).getX());
fire.setZ(gpsConverter.convertGPS(boat.getPosition()).getY());
fire.setY(0);
healthEffect.setHeading(boat.getBearing().degrees());
healthEffect.setX(gpsConverter.convertGPS(boat.getPosition()).getX());
healthEffect.setZ(gpsConverter.convertGPS(boat.getPosition()).getY());
healthEffect.setY(0);
}
};
@ -891,7 +890,9 @@ public class RaceViewController extends Controller {
}.start();
}
/**
* Animation timer for health
*/
private void healthLoop(){
new AnimationTimer(){
@Override
@ -900,6 +901,7 @@ public class RaceViewController extends Controller {
stop(); // stop the timer
} else {
try {
//Check if boat is dead
if(raceState.getBoat(raceState.getPlayerBoatID()).getHealth()<=0){
if(!deathPane.isDisable()) {
deathPane.setVisible(true);
@ -914,6 +916,7 @@ public class RaceViewController extends Controller {
if(fp.getSourceID()==boat.getSourceID()){
if(boat.getHealth()<=0){
//Boat is dead. Don't check it anymore for hp
fp.displayDeath(fp.getSourceID()==raceState.getPlayerBoatID());
fp.setSourceID(0);
try {
@ -921,14 +924,16 @@ public class RaceViewController extends Controller {
raceState.updateBoatPositions(raceState.getBoats());
} catch (BoatNotFoundException e) {
System.out.println("Can't update boat");
e.printStackTrace();
}
}
else
//Speed up tick when <=10 hp
if(boat.getHealth()<=10){
fp.flash(System.currentTimeMillis(), 300, boat.getSourceID()==raceState.getPlayerBoatID());
}
else
//Visual indication of low hp
if(boat.getHealth()<=20) {
//fp.setVisible(true);
fp.flash(System.currentTimeMillis(), 500, boat.getSourceID()==raceState.getPlayerBoatID());
@ -1098,6 +1103,9 @@ public class RaceViewController extends Controller {
mapToggle = !mapToggle;
}
/**
* FXML method for death button
*/
public void deathOKPressed(){
deathPane.setDisable(true);
deathPane.setVisible(false);

@ -15,7 +15,6 @@ public class HealthEffect extends Subject3D {
private int sourceID;
private long currentTime;
private long flashInterval;
private AudioClip warningSound = new AudioClip(this.getClass().getResource("/visualiser/sounds/warning.mp3").toExternalForm());
private AudioClip deadSound = new AudioClip(this.getClass().getResource("/visualiser/sounds/dead1.wav").toExternalForm());
@ -71,6 +70,10 @@ public class HealthEffect extends Subject3D {
this.sourceID = id;
}
/**
* Display visual indication when boat dies
* @param player boolean if player is current user or not
*/
public void displayDeath(boolean player){
Image image = new Image(HealthEffect.class.getClassLoader().getResourceAsStream("images/warning2.png"));
PhongMaterial material = (PhongMaterial) this.getMesh().getMaterial();

Loading…
Cancel
Save