|
|
|
|
@ -25,7 +25,6 @@ import javafx.scene.paint.Material;
|
|
|
|
|
import javafx.scene.paint.PhongMaterial;
|
|
|
|
|
import javafx.scene.shape.MeshView;
|
|
|
|
|
import javafx.scene.shape.Shape3D;
|
|
|
|
|
import javafx.scene.transform.Rotate;
|
|
|
|
|
import javafx.scene.transform.Translate;
|
|
|
|
|
import javafx.util.Callback;
|
|
|
|
|
import network.Messages.Enums.RaceStatusEnum;
|
|
|
|
|
@ -72,7 +71,7 @@ public class RaceViewController extends Controller {
|
|
|
|
|
private int heartbeatDelay = 1000;
|
|
|
|
|
private long heartbeatTime = 0;
|
|
|
|
|
private GPSConverter gpsConverter;
|
|
|
|
|
private ArrayList<FireParticle> fireParticleList = new ArrayList<>();
|
|
|
|
|
private ArrayList<HealthEffect> healthEffectList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@ -350,10 +349,10 @@ public class RaceViewController extends Controller {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Create first fire
|
|
|
|
|
FireParticle fire = new FireParticle(boat.getSourceID(), System.currentTimeMillis());
|
|
|
|
|
HealthEffect fire = new HealthEffect(boat.getSourceID(), System.currentTimeMillis());
|
|
|
|
|
viewSubjects.add(fire);
|
|
|
|
|
//fire.setVisible(false);
|
|
|
|
|
fireParticleList.add(fire);
|
|
|
|
|
healthEffectList.add(fire);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//fire.rotateView((double) 90, fire.getPosition().getX(), fire.getPosition().getY(), fire.getPosition().getZ(), Rotate.X_AXIS);
|
|
|
|
|
@ -698,11 +697,15 @@ public class RaceViewController extends Controller {
|
|
|
|
|
stop(); // stop the timer
|
|
|
|
|
} else {
|
|
|
|
|
for(VisualiserBoat boat : raceState.getBoats()){
|
|
|
|
|
for (FireParticle fp : fireParticleList){
|
|
|
|
|
for (HealthEffect fp : healthEffectList){
|
|
|
|
|
if(fp.getSourceID()==boat.getSourceID()){
|
|
|
|
|
if(boat.getHealth()<=10){
|
|
|
|
|
fp.flash(System.currentTimeMillis(), 300, boat.getSourceID()==raceState.getPlayerBoatID());
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
if(boat.getHealth()<=20) {
|
|
|
|
|
//fp.setVisible(true);
|
|
|
|
|
fp.flash(System.currentTimeMillis(), 200);
|
|
|
|
|
fp.flash(System.currentTimeMillis(), 500, boat.getSourceID()==raceState.getPlayerBoatID());
|
|
|
|
|
} else {
|
|
|
|
|
fp.setVisible(false);
|
|
|
|
|
}
|
|
|
|
|
@ -710,24 +713,25 @@ public class RaceViewController extends Controller {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
if(raceState.getBoat(raceState.getPlayerBoatID()).getHealth()<=20){
|
|
|
|
|
heartbeatDelay = 500;
|
|
|
|
|
} else if (raceState.getBoat(raceState.getPlayerBoatID()).getHealth()<=40){
|
|
|
|
|
heartbeatDelay = 1000;
|
|
|
|
|
}
|
|
|
|
|
if(raceState.getBoat(raceState.getPlayerBoatID()).getHealth()<=40){
|
|
|
|
|
|
|
|
|
|
//imageView.translateXProperty().setValue(raceState.getBoat(raceState.getPlayerBoatID()).getPosition().getLongitude());
|
|
|
|
|
if(System.currentTimeMillis() > heartbeatTime+heartbeatDelay) {
|
|
|
|
|
AudioClip sound = new AudioClip(this.getClass().getResource("/visualiser/sounds/heartbeat.mp3").toExternalForm());
|
|
|
|
|
sound.play();
|
|
|
|
|
heartbeatTime = System.currentTimeMillis() + heartbeatDelay;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (BoatNotFoundException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
// try {
|
|
|
|
|
// if(raceState.getBoat(raceState.getPlayerBoatID()).getHealth()<=10){
|
|
|
|
|
// heartbeatDelay = 300;
|
|
|
|
|
// } else if (raceState.getBoat(raceState.getPlayerBoatID()).getHealth()<=20){
|
|
|
|
|
// heartbeatDelay = 500;
|
|
|
|
|
// }
|
|
|
|
|
// if(raceState.getBoat(raceState.getPlayerBoatID()).getHealth()<=20){
|
|
|
|
|
//
|
|
|
|
|
// //imageView.translateXProperty().setValue(raceState.getBoat(raceState.getPlayerBoatID()).getPosition().getLongitude());
|
|
|
|
|
// if(System.currentTimeMillis() > heartbeatTime+heartbeatDelay) {
|
|
|
|
|
// AudioClip sound = new AudioClip(this.getClass().getResource("/visualiser/sounds/warning.mp3").toExternalForm());
|
|
|
|
|
// sound.setVolume(0.3);
|
|
|
|
|
// sound.play();
|
|
|
|
|
// heartbeatTime = System.currentTimeMillis() + heartbeatDelay;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// } catch (BoatNotFoundException e) {
|
|
|
|
|
// e.printStackTrace();
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}.start();
|
|
|
|
|
|