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); + } +}