From 7eb59cdcfc6d6ad44a0565bf02ae8f02908f2e2d Mon Sep 17 00:00:00 2001 From: Connor Taylor-Brown Date: Wed, 20 Sep 2017 14:18:39 +1200 Subject: [PATCH] Allowed fractional health deductions per frame - Fixed boundary penalty system #story[1291] --- racevisionGame/src/main/java/mock/model/MockRace.java | 4 ++-- racevisionGame/src/main/java/mock/model/RaceServer.java | 2 +- racevisionGame/src/main/java/shared/model/Boat.java | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/racevisionGame/src/main/java/mock/model/MockRace.java b/racevisionGame/src/main/java/mock/model/MockRace.java index 12e2d476..f8ca3720 100644 --- a/racevisionGame/src/main/java/mock/model/MockRace.java +++ b/racevisionGame/src/main/java/mock/model/MockRace.java @@ -378,8 +378,8 @@ public class MockRace extends RaceState { } // Remove one unit of health for every frame spent outside boundary - if(!finish && checkBearingInsideCourse(boat.getBearing(), boat.getPosition())) { - boat.updateHealth(-1); + if(!finish && !GPSCoordinate.isInsideBoundary(boat.getPosition(), getBoundary())) { + boat.updateHealth(-0.1); } this.updateEstimatedTime(boat); diff --git a/racevisionGame/src/main/java/mock/model/RaceServer.java b/racevisionGame/src/main/java/mock/model/RaceServer.java index c52fbb08..894831fd 100644 --- a/racevisionGame/src/main/java/mock/model/RaceServer.java +++ b/racevisionGame/src/main/java/mock/model/RaceServer.java @@ -273,7 +273,7 @@ public class RaceServer { private BoatState parseIndividualBoatState(MockBoat boat) { return new BoatState( boat.getSourceID(), - boat.getHealth() + (int)boat.getHealth() ); } diff --git a/racevisionGame/src/main/java/shared/model/Boat.java b/racevisionGame/src/main/java/shared/model/Boat.java index 0686d127..99871678 100644 --- a/racevisionGame/src/main/java/shared/model/Boat.java +++ b/racevisionGame/src/main/java/shared/model/Boat.java @@ -106,7 +106,7 @@ public class Boat extends Collider { /** * Amount of health boat currently has, between 0 and 100 */ - private int health; + private double health; /** * Constructs a boat object with a given sourceID, name, country/team abbreviation, and polars table. @@ -441,11 +441,11 @@ public class Boat extends Collider { isColliding = colliding; } - public int getHealth() { + public double getHealth() { return health; } - public void setHealth(int health) { + public void setHealth(double health) { this.health = health; } @@ -453,7 +453,7 @@ public class Boat extends Collider { * Add a given amount of HP to boat health * @param delta amount of HP to add */ - public void updateHealth(int delta) { + public void updateHealth(double delta) { health += delta; if(health < 0) health = 0; else if(health > 100) health = 100;