From dad4fa57c69a9b7860cf9381b73ad235dbcb85a0 Mon Sep 17 00:00:00 2001 From: Connor Taylor-Brown Date: Mon, 7 Aug 2017 14:51:32 +1200 Subject: [PATCH] Fixed WindCommand not updating downwind command when moving upwind. #story[1096] --- .../java/mock/model/commandFactory/WindCommand.java | 10 ++++++---- .../mock/model/commandFactory/WindCommandTest.java | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/racevisionGame/src/main/java/mock/model/commandFactory/WindCommand.java b/racevisionGame/src/main/java/mock/model/commandFactory/WindCommand.java index d20c0744..5ba5d5bf 100644 --- a/racevisionGame/src/main/java/mock/model/commandFactory/WindCommand.java +++ b/racevisionGame/src/main/java/mock/model/commandFactory/WindCommand.java @@ -12,12 +12,10 @@ public class WindCommand implements Command { private MockBoat boat; private int direction; - private double offset = 3.0; - public WindCommand(MockRace race, MockBoat boat, boolean upwind) { this.race = race; this.boat = boat; - this.direction = upwind? 1 : -1; + this.direction = upwind? -1 : 1; } @Override @@ -25,7 +23,11 @@ public class WindCommand implements Command { double wind = race.getWindDirection().degrees(); double heading = boat.getBearing().degrees(); - if(wind - heading < 0) offset *= -1 * direction; + double offset = 3.0; + + offset *= direction; + if(wind - heading < 0) offset *= -1; + boat.setBearing(Bearing.fromDegrees(heading + offset)); } } diff --git a/racevisionGame/src/test/java/mock/model/commandFactory/WindCommandTest.java b/racevisionGame/src/test/java/mock/model/commandFactory/WindCommandTest.java index 4316d78d..e5d147d9 100644 --- a/racevisionGame/src/test/java/mock/model/commandFactory/WindCommandTest.java +++ b/racevisionGame/src/test/java/mock/model/commandFactory/WindCommandTest.java @@ -47,12 +47,12 @@ public class WindCommandTest { @Test public void upwindCommandDecreasesAngle() { upwind.execute(); - assertEquals(initial - boat.getBearing().degrees(), offset, 1e-5); + assertEquals(initial - boat.getBearing().degrees(), -offset, 1e-5); } @Test public void downwindCommandIncreasesAngle() { downwind.execute(); - assertEquals(boat.getBearing().degrees() - initial, offset, 1e-5); + assertEquals(initial - boat.getBearing().degrees(), offset, 1e-5); } } \ No newline at end of file