From 48e7b6970cfa55066c65e0bcee7852dd8ca206b6 Mon Sep 17 00:00:00 2001 From: David Wu Date: Wed, 27 Sep 2017 11:59:54 +1300 Subject: [PATCH] Merged master in. Added documentation. #story[1292] --- .../Controllers/RaceViewController.java | 30 ++++++++++++------- .../java/visualiser/layout/HealthEffect.java | 5 +++- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java index d7c92665..536b3027 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java @@ -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); diff --git a/racevisionGame/src/main/java/visualiser/layout/HealthEffect.java b/racevisionGame/src/main/java/visualiser/layout/HealthEffect.java index d3dfd172..d41effa1 100644 --- a/racevisionGame/src/main/java/visualiser/layout/HealthEffect.java +++ b/racevisionGame/src/main/java/visualiser/layout/HealthEffect.java @@ -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();