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