From e23f20753d79552c73b4a7eec0828c32bf038b92 Mon Sep 17 00:00:00 2001 From: Joseph Date: Thu, 10 Aug 2017 09:42:59 +1200 Subject: [PATCH] Merged master. Added commands for sails in and out. Added logic to stop boat from moving when sails are out. Testing if the boat stops with sails out is blocked until command factory is merged. #story[1098] --- .../src/main/java/mock/model/MockRace.java | 2 +- .../model/commandFactory/CommandFactory.java | 2 ++ .../model/commandFactory/SailsInCommand.java | 19 +++++++++++++++++ .../model/commandFactory/SailsOutCommand.java | 21 +++++++++++++++++++ 4 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 racevisionGame/src/main/java/mock/model/commandFactory/SailsInCommand.java create mode 100644 racevisionGame/src/main/java/mock/model/commandFactory/SailsOutCommand.java diff --git a/racevisionGame/src/main/java/mock/model/MockRace.java b/racevisionGame/src/main/java/mock/model/MockRace.java index d0b40ae3..c9222c20 100644 --- a/racevisionGame/src/main/java/mock/model/MockRace.java +++ b/racevisionGame/src/main/java/mock/model/MockRace.java @@ -321,7 +321,7 @@ public class MockRace extends Race { if (!finish && totalElapsedMilliseconds >= updatePeriodMilliseconds) { - if (boat.getCurrentSpeed() == 0) { + if (boat.getCurrentSpeed() == 0 && !boat.isSailsOut()) { newOptimalVMG(boat); boat.setBearing(boat.calculateBearingToNextMarker()); } diff --git a/racevisionGame/src/main/java/mock/model/commandFactory/CommandFactory.java b/racevisionGame/src/main/java/mock/model/commandFactory/CommandFactory.java index 6e87f11b..003c590e 100644 --- a/racevisionGame/src/main/java/mock/model/commandFactory/CommandFactory.java +++ b/racevisionGame/src/main/java/mock/model/commandFactory/CommandFactory.java @@ -19,6 +19,8 @@ public class CommandFactory { switch(action) { case AUTO_PILOT: return new VMGCommand(race, boat); case TACK_GYBE: return new TackGybeCommand(race, boat); + case SAILS_IN: return new TackGybeCommand(race, boat); + case SAILS_OUT: return new TackGybeCommand(race, boat); default: return null; // TODO - please please have discussion over what to default to } } diff --git a/racevisionGame/src/main/java/mock/model/commandFactory/SailsInCommand.java b/racevisionGame/src/main/java/mock/model/commandFactory/SailsInCommand.java new file mode 100644 index 00000000..551682c3 --- /dev/null +++ b/racevisionGame/src/main/java/mock/model/commandFactory/SailsInCommand.java @@ -0,0 +1,19 @@ +package mock.model.commandFactory; + +import mock.model.MockBoat; +import mock.model.MockRace; + +public class SailsInCommand implements Command { + private MockRace race; + private MockBoat boat; + + public SailsInCommand(MockRace race, MockBoat boat) { + this.race = race; + this.boat = boat; + } + + @Override + public void execute() { + this.boat.setSailsOut(false); + } +} diff --git a/racevisionGame/src/main/java/mock/model/commandFactory/SailsOutCommand.java b/racevisionGame/src/main/java/mock/model/commandFactory/SailsOutCommand.java new file mode 100644 index 00000000..32486b9d --- /dev/null +++ b/racevisionGame/src/main/java/mock/model/commandFactory/SailsOutCommand.java @@ -0,0 +1,21 @@ +package mock.model.commandFactory; + +import mock.model.MockBoat; +import mock.model.MockRace; + +public class SailsOutCommand implements Command { + private MockRace race; + private MockBoat boat; + + public SailsOutCommand(MockRace race, MockBoat boat) { + this.race = race; + this.boat = boat; + } + + @Override + public void execute() { + System.out.println("hi"); + this.boat.setCurrentSpeed(0); + this.boat.setSailsOut(true); + } +}