From 23d58dc80978abd3e05321ccbf16b9371dba44e0 Mon Sep 17 00:00:00 2001 From: David Wu Date: Wed, 30 Aug 2017 13:26:18 +1200 Subject: [PATCH 01/58] Created UI option in the start menu to play a practice game. #story[1189] --- .../java/visualiser/Controllers/TitleController.java | 11 +++++++++++ .../main/resources/visualiser/scenes/titleScreen.fxml | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java index 32e033c8..671797e0 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java @@ -5,6 +5,7 @@ import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; +import javafx.scene.control.Label; import javafx.scene.control.RadioButton; import javafx.scene.layout.AnchorPane; import javafx.stage.Modality; @@ -31,6 +32,8 @@ public class TitleController extends Controller { RadioButton dayModeRD; @FXML RadioButton nightModeRD; + @FXML + Label tutorialLabel; /** * Method called when the 'host a game' button is pressed. @@ -81,6 +84,7 @@ public class TitleController extends Controller { @Override public void initialize(URL location, ResourceBundle resources) { + tutorialLabel.setWrapText(true); } @@ -105,4 +109,11 @@ public class TitleController extends Controller { } } + /** + * start tutorial event called + */ + public void tutorialStartPressed(){ + System.out.println("Start the tutorial!"); + } + } diff --git a/racevisionGame/src/main/resources/visualiser/scenes/titleScreen.fxml b/racevisionGame/src/main/resources/visualiser/scenes/titleScreen.fxml index 007ef599..6865170f 100644 --- a/racevisionGame/src/main/resources/visualiser/scenes/titleScreen.fxml +++ b/racevisionGame/src/main/resources/visualiser/scenes/titleScreen.fxml @@ -1,10 +1,13 @@ + + + @@ -77,6 +80,11 @@ + From 86f1a608e45a2f468414dc51a6e24b757178c42d Mon Sep 17 00:00:00 2001 From: David Wu Date: Wed, 30 Aug 2017 14:51:56 +1200 Subject: [PATCH 02/58] Created xml for tutorial that contains start and finish line. TODO: Add gate/mark. #story[1189] --- .../src/main/java/mock/app/Event.java | 6 +- .../src/main/java/visualiser/app/App.java | 6 +- .../resources/mock/mockXML/boatTutorial.xml | 41 +++++++++ .../resources/mock/mockXML/raceTutorial.xml | 43 +++++++++ .../mock/mockXML/raceXML/raceTutorial.xml | 91 +++++++++++++++++++ 5 files changed, 182 insertions(+), 5 deletions(-) create mode 100644 racevisionGame/src/main/resources/mock/mockXML/boatTutorial.xml create mode 100644 racevisionGame/src/main/resources/mock/mockXML/raceTutorial.xml create mode 100644 racevisionGame/src/main/resources/visualiser/mock/mockXML/raceXML/raceTutorial.xml diff --git a/racevisionGame/src/main/java/mock/app/Event.java b/racevisionGame/src/main/java/mock/app/Event.java index c054e2fb..a9089350 100644 --- a/racevisionGame/src/main/java/mock/app/Event.java +++ b/racevisionGame/src/main/java/mock/app/Event.java @@ -79,8 +79,10 @@ public class Event { */ public Event(boolean singlePlayer) throws EventConstructionException { - String raceXMLFile = "mock/mockXML/raceTest.xml"; - String boatsXMLFile = "mock/mockXML/boatTest.xml"; + //String raceXMLFile = "mock/mockXML/raceTest.xml"; + String raceXMLFile = "mock/mockXML/raceTutorial.xml"; + //String boatsXMLFile = "mock/mockXML/boatTest.xml"; + String boatsXMLFile = "mock/mockXML/boatTutorial.xml"; String regattaXMLFile = "mock/mockXML/regattaTest.xml"; if (singlePlayer) { diff --git a/racevisionGame/src/main/java/visualiser/app/App.java b/racevisionGame/src/main/java/visualiser/app/App.java index eeae5a5d..6a7d47f2 100644 --- a/racevisionGame/src/main/java/visualiser/app/App.java +++ b/racevisionGame/src/main/java/visualiser/app/App.java @@ -96,15 +96,15 @@ public class App extends Application { ); updateMessage("Preparing ingredients . . ."); - Thread.sleep(1000); + Thread.sleep(100); for (int i = 0; i < burgerFilling.size(); i++) { - Thread.sleep(800); + Thread.sleep(100); updateProgress(i + 1, burgerFilling.size()); String nextFilling = burgerFilling.get(i); addedFilling.add(nextFilling); updateMessage("Adding the " + nextFilling + " . . ."); } - Thread.sleep(400); + Thread.sleep(100); updateMessage("Burger's done!"); return addedFilling; diff --git a/racevisionGame/src/main/resources/mock/mockXML/boatTutorial.xml b/racevisionGame/src/main/resources/mock/mockXML/boatTutorial.xml new file mode 100644 index 00000000..90fad37c --- /dev/null +++ b/racevisionGame/src/main/resources/mock/mockXML/boatTutorial.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/racevisionGame/src/main/resources/mock/mockXML/raceTutorial.xml b/racevisionGame/src/main/resources/mock/mockXML/raceTutorial.xml new file mode 100644 index 00000000..19d358cd --- /dev/null +++ b/racevisionGame/src/main/resources/mock/mockXML/raceTutorial.xml @@ -0,0 +1,43 @@ + + + 9999 + FLEET + RACE_CREATION_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/racevisionGame/src/main/resources/visualiser/mock/mockXML/raceXML/raceTutorial.xml b/racevisionGame/src/main/resources/visualiser/mock/mockXML/raceXML/raceTutorial.xml new file mode 100644 index 00000000..db7a6978 --- /dev/null +++ b/racevisionGame/src/main/resources/visualiser/mock/mockXML/raceXML/raceTutorial.xml @@ -0,0 +1,91 @@ + + + + + 99999999 + + Match + + 2011-08-06T13:25:00-0000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From c7af4f2eb7c1af492e7d264680465ed550dabec8 Mon Sep 17 00:00:00 2001 From: zwu18 Date: Thu, 31 Aug 2017 19:54:22 +1200 Subject: [PATCH 03/58] Made changes to tutorial xmls. Linked button in title menu to start up a race on mouse click. Will need to make it so it starts the tutorial on click. #story[1189] --- racevisionGame/src/main/java/mock/app/Event.java | 4 ++-- .../java/visualiser/Controllers/MainController.java | 8 ++++++++ .../visualiser/Controllers/TitleController.java | 13 +++++++++---- .../main/resources/mock/mockXML/boatTutorial.xml | 4 ++-- .../main/resources/mock/mockXML/regattaTutorial.xml | 10 ++++++++++ 5 files changed, 31 insertions(+), 8 deletions(-) create mode 100644 racevisionGame/src/main/resources/mock/mockXML/regattaTutorial.xml diff --git a/racevisionGame/src/main/java/mock/app/Event.java b/racevisionGame/src/main/java/mock/app/Event.java index a9089350..2e5db13f 100644 --- a/racevisionGame/src/main/java/mock/app/Event.java +++ b/racevisionGame/src/main/java/mock/app/Event.java @@ -83,7 +83,8 @@ public class Event { String raceXMLFile = "mock/mockXML/raceTutorial.xml"; //String boatsXMLFile = "mock/mockXML/boatTest.xml"; String boatsXMLFile = "mock/mockXML/boatTutorial.xml"; - String regattaXMLFile = "mock/mockXML/regattaTest.xml"; + //String regattaXMLFile = "mock/mockXML/regattaTest.xml"; + String regattaXMLFile = "mock/mockXML/regattaTutorial.xml"; if (singlePlayer) { raceXMLFile = "mock/mockXML/raceSinglePlayer.xml"; @@ -206,7 +207,6 @@ public class Event { raceXML = raceXML.replace("RACE_CREATION_TIME", dateFormat.format(creationTime)); raceXML = raceXML.replace("RACE_START_TIME", dateFormat.format(creationTime.plusSeconds(secondsToAdd))); - return raceXML; } diff --git a/racevisionGame/src/main/java/visualiser/Controllers/MainController.java b/racevisionGame/src/main/java/visualiser/Controllers/MainController.java index 57d18830..c43ddb59 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/MainController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/MainController.java @@ -86,6 +86,14 @@ public class MainController extends Controller { */ public void startCss(){titleController.setDayMode();} + /** + * host controller host a game + * @throws IOException throws exception + */ + public void beginGame() throws IOException { + hostController.hostGamePressed(); + } + /** * Main Controller for the applications will house the menu and the displayed pane. * diff --git a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java index 671797e0..2681097c 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java @@ -10,11 +10,15 @@ import javafx.scene.control.RadioButton; import javafx.scene.layout.AnchorPane; import javafx.stage.Modality; import javafx.stage.Stage; +import mock.app.Event; +import mock.exceptions.EventConstructionException; import visualiser.app.App; import java.io.IOException; import java.net.URL; import java.util.ResourceBundle; +import java.util.logging.Level; +import java.util.logging.Logger; /** * Controller for the opening title window. @@ -109,11 +113,12 @@ public class TitleController extends Controller { } } - /** - * start tutorial event called - */ - public void tutorialStartPressed(){ + + public void tutorialStartPressed() throws IOException { + titleWrapper.setVisible(false); System.out.println("Start the tutorial!"); + parent.beginGame(); + } } diff --git a/racevisionGame/src/main/resources/mock/mockXML/boatTutorial.xml b/racevisionGame/src/main/resources/mock/mockXML/boatTutorial.xml index 90fad37c..023c5090 100644 --- a/racevisionGame/src/main/resources/mock/mockXML/boatTutorial.xml +++ b/racevisionGame/src/main/resources/mock/mockXML/boatTutorial.xml @@ -22,7 +22,7 @@ - + diff --git a/racevisionGame/src/main/resources/mock/mockXML/regattaTutorial.xml b/racevisionGame/src/main/resources/mock/mockXML/regattaTutorial.xml new file mode 100644 index 00000000..d7f6b9e7 --- /dev/null +++ b/racevisionGame/src/main/resources/mock/mockXML/regattaTutorial.xml @@ -0,0 +1,10 @@ + + 0 + Race Tutorial + Tutorial + -36.82791529 + 174.81218919 + 0.00 + 12 + 14.1 + \ No newline at end of file From ea029baf227056e2d275c8fc2f945010ae1ee4bd Mon Sep 17 00:00:00 2001 From: David Wu Date: Fri, 1 Sep 2017 12:28:09 +1200 Subject: [PATCH 04/58] Tutorial option in title screen will now created a game with tutorial xmls. Host game will now created a game with the race xml instead of tutorial xml as well. Made changes to tutorial label in title. #story[1189] --- dedicatedServer/src/main/java/app/App.java | 2 +- .../src/main/java/mock/app/Event.java | 24 ++++++++++++------- .../Controllers/HostController.java | 8 ++++++- .../Controllers/MainController.java | 4 ++++ .../Controllers/TitleController.java | 2 ++ .../visualiser/scenes/titleScreen.fxml | 6 +---- 6 files changed, 30 insertions(+), 16 deletions(-) diff --git a/dedicatedServer/src/main/java/app/App.java b/dedicatedServer/src/main/java/app/App.java index 34ee2c5b..f0b133a4 100644 --- a/dedicatedServer/src/main/java/app/App.java +++ b/dedicatedServer/src/main/java/app/App.java @@ -21,7 +21,7 @@ public class App extends Application { public void start(Stage primaryStage) { try { //TODO should read a configuration file to configure server? - Event raceEvent = new Event(false); + Event raceEvent = new Event(0); } catch (Exception e) { diff --git a/racevisionGame/src/main/java/mock/app/Event.java b/racevisionGame/src/main/java/mock/app/Event.java index 2e5db13f..a334906d 100644 --- a/racevisionGame/src/main/java/mock/app/Event.java +++ b/racevisionGame/src/main/java/mock/app/Event.java @@ -74,23 +74,29 @@ public class Event { /** * Constructs an event, using various XML files. - * @param singlePlayer Whether or not to create a single player event. + * @param gameType Type of game to create. Determines which XML files to send * @throws EventConstructionException Thrown if we cannot create an Event for any reason. */ - public Event(boolean singlePlayer) throws EventConstructionException { + public Event(int gameType) throws EventConstructionException { - //String raceXMLFile = "mock/mockXML/raceTest.xml"; - String raceXMLFile = "mock/mockXML/raceTutorial.xml"; - //String boatsXMLFile = "mock/mockXML/boatTest.xml"; - String boatsXMLFile = "mock/mockXML/boatTutorial.xml"; - //String regattaXMLFile = "mock/mockXML/regattaTest.xml"; - String regattaXMLFile = "mock/mockXML/regattaTutorial.xml"; + String raceXMLFile = "mock/mockXML/raceTest.xml"; - if (singlePlayer) { + String boatsXMLFile = "mock/mockXML/boatTest.xml"; + + String regattaXMLFile = "mock/mockXML/regattaTest.xml"; + + + if (gameType == 1) { raceXMLFile = "mock/mockXML/raceSinglePlayer.xml"; boatsXMLFile = "mock/mockXML/boatsSinglePlayer.xml"; } + if (gameType == 2){ + raceXMLFile = "mock/mockXML/raceTutorial.xml"; + boatsXMLFile = "mock/mockXML/boatTutorial.xml"; + regattaXMLFile = "mock/mockXML/regattaTutorial.xml"; + } + //Read XML files. try { //this.raceXML = RaceXMLCreator.alterRaceToWind(raceXMLFile, 90); diff --git a/racevisionGame/src/main/java/visualiser/Controllers/HostController.java b/racevisionGame/src/main/java/visualiser/Controllers/HostController.java index 1609e700..a64cbbd2 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/HostController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/HostController.java @@ -37,6 +37,8 @@ public class HostController extends Controller { private Event game; + private int gameType = 0; + @Override public void initialize(URL location, ResourceBundle resources) { @@ -48,7 +50,7 @@ public class HostController extends Controller { */ public void hostGamePressed() throws IOException{ try { - this.game = new Event(false); + this.game = new Event(gameType); connectSocket("localhost", 4942); } catch (EventConstructionException e) { Logger.getGlobal().log(Level.SEVERE, "Could not create Event.", e); @@ -89,4 +91,8 @@ public class HostController extends Controller { parent.enterTitle(); } + public void setGameType(int gameType){ + this.gameType = gameType; + } + } diff --git a/racevisionGame/src/main/java/visualiser/Controllers/MainController.java b/racevisionGame/src/main/java/visualiser/Controllers/MainController.java index c43ddb59..296b1ff7 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/MainController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/MainController.java @@ -94,6 +94,10 @@ public class MainController extends Controller { hostController.hostGamePressed(); } + public void setGameType(int gameType){ + hostController.setGameType(gameType); + } + /** * Main Controller for the applications will house the menu and the displayed pane. * diff --git a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java index 2681097c..1871c70b 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java @@ -47,6 +47,7 @@ public class TitleController extends Controller { */ public void hostAGame() throws IOException { titleWrapper.setVisible(false); + parent.setGameType(0); parent.hostGame(); App.getStage().setResizable(true); } @@ -117,6 +118,7 @@ public class TitleController extends Controller { public void tutorialStartPressed() throws IOException { titleWrapper.setVisible(false); System.out.println("Start the tutorial!"); + parent.setGameType(2); parent.beginGame(); } diff --git a/racevisionGame/src/main/resources/visualiser/scenes/titleScreen.fxml b/racevisionGame/src/main/resources/visualiser/scenes/titleScreen.fxml index 6865170f..1b4043fe 100644 --- a/racevisionGame/src/main/resources/visualiser/scenes/titleScreen.fxml +++ b/racevisionGame/src/main/resources/visualiser/scenes/titleScreen.fxml @@ -80,11 +80,7 @@ - +