diff --git a/racevisionGame/src/main/java/mock/model/NewPolars.java b/racevisionGame/src/main/java/mock/model/NewPolars.java index 3a40e0e2..89dcbdda 100644 --- a/racevisionGame/src/main/java/mock/model/NewPolars.java +++ b/racevisionGame/src/main/java/mock/model/NewPolars.java @@ -32,7 +32,7 @@ public class NewPolars { public static void addPolars(double trueWindSpeed, Bearing trueWindAngle, double boatSpeed){ double tws = trueWindSpeed; double bs = boatSpeed; - double twa = trueWindAngle.degrees(); + double twa = trueWindAngle.degrees() + 180; if (!polars.containsKey(tws)){ polars.put(tws, new TreeMap<>()); } diff --git a/racevisionGame/src/main/java/mock/model/commandFactory/CollisionCommand.java b/racevisionGame/src/main/java/mock/model/commandFactory/CollisionCommand.java index b2fed2ac..bb86433d 100644 --- a/racevisionGame/src/main/java/mock/model/commandFactory/CollisionCommand.java +++ b/racevisionGame/src/main/java/mock/model/commandFactory/CollisionCommand.java @@ -22,6 +22,7 @@ public class CollisionCommand extends ObserverCommand { */ public CollisionCommand(MockRace race, MockBoat boat) { super(race, boat); + race.addObserver(this); } @Override diff --git a/racevisionGame/src/main/java/mock/model/commandFactory/CommandFactory.java b/racevisionGame/src/main/java/mock/model/commandFactory/CommandFactory.java index 6c2224ec..7cbe2f00 100644 --- a/racevisionGame/src/main/java/mock/model/commandFactory/CommandFactory.java +++ b/racevisionGame/src/main/java/mock/model/commandFactory/CommandFactory.java @@ -29,12 +29,14 @@ public class CommandFactory { } switch(action.getBoatAction()) { - case AUTO_PILOT: return new VMGCommand(race, boat); + case VMG: return new VMGCommand(race, boat); case TACK_GYBE: return new TackGybeCommand(race, boat); case UPWIND: return new WindCommand(race, boat, true); case DOWNWIND: return new WindCommand(race, boat, false); case SAILS_OUT: return new SailsCommand(race, boat, true); case SAILS_IN: return new SailsCommand(race, boat, false); + case ZOOM_IN: return null; + case ZOOM_OUT: return null; default: throw new CommandConstructionException("Could not create command for BoatAction: " + action + ". Unknown BoatAction."); } diff --git a/racevisionGame/src/main/java/network/Messages/Enums/BoatActionEnum.java b/racevisionGame/src/main/java/network/Messages/Enums/BoatActionEnum.java index 372349f7..d5db0122 100644 --- a/racevisionGame/src/main/java/network/Messages/Enums/BoatActionEnum.java +++ b/racevisionGame/src/main/java/network/Messages/Enums/BoatActionEnum.java @@ -12,12 +12,15 @@ public enum BoatActionEnum { /** * Autopilot = auto VMG. */ - AUTO_PILOT(1), + VMG(1), SAILS_IN(2), SAILS_OUT(3), TACK_GYBE(4), UPWIND(5), - DOWNWIND(6); + DOWNWIND(6), + ZOOM_IN(7), + ZOOM_OUT(8), + TOGGLE_SAILS(9); private byte value; diff --git a/racevisionGame/src/main/java/visualiser/Controllers/HostGameController.java b/racevisionGame/src/main/java/visualiser/Controllers/HostGameController.java index 2e267031..abd681f5 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/HostGameController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/HostGameController.java @@ -80,6 +80,9 @@ public class HostGameController extends Controller { */ public void alertMatchBrowser(){ try{ + if (matchBrowserInterface == null){ + return;//private game + } matchBrowserInterface.startSendingHostData(App.game.getHostedGameData(), udpSocket); }catch (IOException e){ System.err.println("failed to send out hosted game info"); diff --git a/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java b/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java index 3366b790..01151d2b 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java @@ -321,7 +321,7 @@ public class InGameLobbyController extends Controller { * @param interval Countdown interval to check */ private void countdownText(long interval){ - + countdownTenPane.setVisible(false); //Do nothing if 5 seconds or less to go if (interval <=5000){ countdownTenPane.setVisible(false); diff --git a/racevisionGame/src/main/java/visualiser/enums/TutorialState.java b/racevisionGame/src/main/java/visualiser/enums/TutorialState.java index 9764f130..146746d5 100644 --- a/racevisionGame/src/main/java/visualiser/enums/TutorialState.java +++ b/racevisionGame/src/main/java/visualiser/enums/TutorialState.java @@ -25,7 +25,7 @@ public enum TutorialState { /** * State for vmg in tutorial */ - VMG(BoatActionEnum.AUTO_PILOT), + VMG(BoatActionEnum.VMG), /** * State for sails-in in tutorial diff --git a/racevisionGame/src/main/java/visualiser/gameController/Keys/SailsToggleKey.java b/racevisionGame/src/main/java/visualiser/gameController/Keys/SailsToggleKey.java index a04b7d77..7907ea4b 100644 --- a/racevisionGame/src/main/java/visualiser/gameController/Keys/SailsToggleKey.java +++ b/racevisionGame/src/main/java/visualiser/gameController/Keys/SailsToggleKey.java @@ -12,7 +12,7 @@ public class SailsToggleKey extends ControlKey { * Constructor for Control */ public SailsToggleKey() { - super("Toggle Sails", BoatActionEnum.NOT_A_STATUS); + super("Toggle Sails", BoatActionEnum.TOGGLE_SAILS); } /** diff --git a/racevisionGame/src/main/java/visualiser/gameController/Keys/VMGKey.java b/racevisionGame/src/main/java/visualiser/gameController/Keys/VMGKey.java index 2c7237f0..fa418ffd 100644 --- a/racevisionGame/src/main/java/visualiser/gameController/Keys/VMGKey.java +++ b/racevisionGame/src/main/java/visualiser/gameController/Keys/VMGKey.java @@ -11,7 +11,7 @@ public class VMGKey extends ControlKey{ * Constructor for Control */ public VMGKey() { - super("VMG", BoatActionEnum.AUTO_PILOT); + super("VMG", BoatActionEnum.VMG); } @Override diff --git a/racevisionGame/src/main/java/visualiser/gameController/Keys/ZoomInKey.java b/racevisionGame/src/main/java/visualiser/gameController/Keys/ZoomInKey.java index e9a8ad7b..8370451d 100644 --- a/racevisionGame/src/main/java/visualiser/gameController/Keys/ZoomInKey.java +++ b/racevisionGame/src/main/java/visualiser/gameController/Keys/ZoomInKey.java @@ -1,12 +1,14 @@ package visualiser.gameController.Keys; +import network.Messages.Enums.BoatActionEnum; + /** * key to zoom into the game */ public class ZoomInKey extends ControlKey { public ZoomInKey() { - super("Zoom In"); + super("Zoom In", BoatActionEnum.ZOOM_IN); } @Override diff --git a/racevisionGame/src/main/java/visualiser/gameController/Keys/ZoomOutKey.java b/racevisionGame/src/main/java/visualiser/gameController/Keys/ZoomOutKey.java index cbba97fc..cb628a3b 100644 --- a/racevisionGame/src/main/java/visualiser/gameController/Keys/ZoomOutKey.java +++ b/racevisionGame/src/main/java/visualiser/gameController/Keys/ZoomOutKey.java @@ -1,5 +1,7 @@ package visualiser.gameController.Keys; +import network.Messages.Enums.BoatActionEnum; + /** * Key to zoom out of the game. */ @@ -9,7 +11,7 @@ public class ZoomOutKey extends ControlKey{ * Constructor for Control */ public ZoomOutKey() { - super("Zoom Out"); + super("Zoom Out", BoatActionEnum.ZOOM_OUT); } @Override diff --git a/racevisionGame/src/test/java/network/MessageDecoders/BoatActionDecoderTest.java b/racevisionGame/src/test/java/network/MessageDecoders/BoatActionDecoderTest.java index 80dacbe6..db179ec0 100644 --- a/racevisionGame/src/test/java/network/MessageDecoders/BoatActionDecoderTest.java +++ b/racevisionGame/src/test/java/network/MessageDecoders/BoatActionDecoderTest.java @@ -4,8 +4,6 @@ import network.Exceptions.InvalidMessageException; import network.MessageEncoders.RaceVisionByteEncoder; import network.Messages.BoatAction; import network.Messages.Enums.BoatActionEnum; -import network.Messages.Enums.RequestToJoinEnum; -import network.Messages.RequestToJoin; import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -65,7 +63,7 @@ public class BoatActionDecoderTest { */ @Test public void autoPilotTest() throws Exception { - boatActionTypeTest(BoatActionEnum.AUTO_PILOT); + boatActionTypeTest(BoatActionEnum.VMG); } /**