Merged master in. Added documentation. #story[1292]
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user