From a6eea885246cf1abaa531523cff6f46a7d705061 Mon Sep 17 00:00:00 2001 From: Joseph Gardner Date: Thu, 14 Sep 2017 11:58:40 +1200 Subject: [PATCH 1/8] Fixed collisions #fix #story[1196] --- .../main/java/mock/model/commandFactory/CollisionCommand.java | 1 + 1 file changed, 1 insertion(+) 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 From e3266c3b47805109f1d068e5797643211cc1f264 Mon Sep 17 00:00:00 2001 From: David Wu Date: Thu, 14 Sep 2017 12:27:07 +1200 Subject: [PATCH 2/8] Pane removed. --- .../main/java/visualiser/Controllers/InGameLobbyController.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java b/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java index 3366b790..31e6ee96 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java @@ -322,6 +322,7 @@ public class InGameLobbyController extends Controller { */ private void countdownText(long interval){ + countdownTenPane.setVisible(false); //Do nothing if 5 seconds or less to go if (interval <=5000){ countdownTenPane.setVisible(false); @@ -355,6 +356,7 @@ public class InGameLobbyController extends Controller { //10 seconds left. Display 5 seconds for countdown if (interval <=10000){ + countdownTenText.setText("5"); return; } From 8e6a72055853a8631ebe8e1f33ee28aff3db3136 Mon Sep 17 00:00:00 2001 From: fjc40 Date: Thu, 14 Sep 2017 12:39:41 +1200 Subject: [PATCH 3/8] Appears to fix wind arrow direction. --- .../src/main/java/mock/model/commandFactory/WindCommand.java | 2 +- .../src/main/java/visualiser/Controllers/ArrowController.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/racevisionGame/src/main/java/mock/model/commandFactory/WindCommand.java b/racevisionGame/src/main/java/mock/model/commandFactory/WindCommand.java index 85eec091..a0424f06 100644 --- a/racevisionGame/src/main/java/mock/model/commandFactory/WindCommand.java +++ b/racevisionGame/src/main/java/mock/model/commandFactory/WindCommand.java @@ -21,7 +21,7 @@ public class WindCommand extends ObserverCommand { public WindCommand(MockRace race, MockBoat boat, boolean upwind) { super(race, boat); race.addAngularCommand(this); - this.direction = upwind? -1 : 1; + this.direction = upwind? 1 : -1; } @Override diff --git a/racevisionGame/src/main/java/visualiser/Controllers/ArrowController.java b/racevisionGame/src/main/java/visualiser/Controllers/ArrowController.java index 739b2f6e..1e93923f 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/ArrowController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/ArrowController.java @@ -93,7 +93,7 @@ public class ArrowController { */ private void updateWindBearing(Bearing bearing) { //Rotate the wind arrow. - arrowStackPane.setRotate(bearing.degrees()); + arrowStackPane.setRotate(bearing.degrees() + 180); } -} \ No newline at end of file +} From afd923c9fbbcbd6e7cb1119555657508a1aed19a Mon Sep 17 00:00:00 2001 From: fjc40 Date: Thu, 14 Sep 2017 13:22:35 +1200 Subject: [PATCH 4/8] Revert "Appears to fix wind arrow direction." This reverts commit 8e6a72055853a8631ebe8e1f33ee28aff3db3136. --- .../src/main/java/mock/model/commandFactory/WindCommand.java | 2 +- .../src/main/java/visualiser/Controllers/ArrowController.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/racevisionGame/src/main/java/mock/model/commandFactory/WindCommand.java b/racevisionGame/src/main/java/mock/model/commandFactory/WindCommand.java index a0424f06..85eec091 100644 --- a/racevisionGame/src/main/java/mock/model/commandFactory/WindCommand.java +++ b/racevisionGame/src/main/java/mock/model/commandFactory/WindCommand.java @@ -21,7 +21,7 @@ public class WindCommand extends ObserverCommand { public WindCommand(MockRace race, MockBoat boat, boolean upwind) { super(race, boat); race.addAngularCommand(this); - this.direction = upwind? 1 : -1; + this.direction = upwind? -1 : 1; } @Override diff --git a/racevisionGame/src/main/java/visualiser/Controllers/ArrowController.java b/racevisionGame/src/main/java/visualiser/Controllers/ArrowController.java index 1e93923f..739b2f6e 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/ArrowController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/ArrowController.java @@ -93,7 +93,7 @@ public class ArrowController { */ private void updateWindBearing(Bearing bearing) { //Rotate the wind arrow. - arrowStackPane.setRotate(bearing.degrees() + 180); + arrowStackPane.setRotate(bearing.degrees()); } -} +} \ No newline at end of file From b59d36f4e5c633fd968a7f7b7c9dc1474bbd68bc Mon Sep 17 00:00:00 2001 From: fjc40 Date: Thu, 14 Sep 2017 13:32:23 +1200 Subject: [PATCH 5/8] Actually fixed the wind arrow direction. --- racevisionGame/src/main/java/mock/model/NewPolars.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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<>()); } From 550180f286e163ebdfe48a877dadc0737f402e26 Mon Sep 17 00:00:00 2001 From: David Wu Date: Thu, 14 Sep 2017 14:28:42 +1200 Subject: [PATCH 6/8] Removed countdown pane. --- .../main/java/visualiser/Controllers/InGameLobbyController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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); From 43ee92fb9514237cd66451e43ec3d2eb27cbd8fc Mon Sep 17 00:00:00 2001 From: David Wu Date: Thu, 14 Sep 2017 16:23:56 +1200 Subject: [PATCH 7/8] Created enums and bound them to zoom in, zoom out and sails toggle for key bindings so that something expected shows up for key binding descriptions when changing key bindings. #story[1197] --- .../java/mock/model/commandFactory/CommandFactory.java | 4 +++- .../main/java/network/Messages/Enums/BoatActionEnum.java | 7 +++++-- .../src/main/java/visualiser/enums/TutorialState.java | 2 +- .../visualiser/gameController/Keys/SailsToggleKey.java | 2 +- .../main/java/visualiser/gameController/Keys/VMGKey.java | 2 +- .../java/visualiser/gameController/Keys/ZoomInKey.java | 4 +++- .../java/visualiser/gameController/Keys/ZoomOutKey.java | 4 +++- .../network/MessageDecoders/BoatActionDecoderTest.java | 4 +--- 8 files changed, 18 insertions(+), 11 deletions(-) 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/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); } /** From 004aebceb5852d0eac1faf9e06dd22817307835a Mon Sep 17 00:00:00 2001 From: hba56 Date: Thu, 14 Sep 2017 16:27:36 +1200 Subject: [PATCH 8/8] fix null pointer when playing tutorial --- .../main/java/visualiser/Controllers/HostGameController.java | 3 +++ 1 file changed, 3 insertions(+) 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");