public ScenarioStdData activeScenario = new ScenarioStdData(); //currently selected scenario (for 2-5) private void Awake() { //Initialise Components routeManager = GetComponent <RouteManager>(); checkpointManager = GetComponent <CheckpointManager>(); intersectionManager = GetComponent <IntersectionManager>(); player = GameObject.FindGameObjectWithTag("Player"); playerController = player.GetComponent <PlayerController>(); gameManager = FindObjectOfType <GameManager>().GetComponent <GameManager>(); hotspotManager = FindObjectOfType <GameManager>().GetComponent <HotspotManager>(); uIManager = FindObjectOfType <GameManager>().GetComponent <UIManager>(); // Import data session from GlobalControl //selectedScenario = GlobalControl.instance.activeSequence; // selectedRoute = GlobalControl.instance.activeRoute; //sessionData = GlobalControl.instance.sessionData; // isGroupSession, groupID, studentIDs, isSender //TODO: Move to gameManager importPath = Path.Combine(Directory.GetCurrentDirectory(), "Assets/Media/Text/"); ImportAllTextFiles(); //Import text files containing //IMPORT SCENARIOS DATA FROM TEXT FILES scenario1S0Data = ImportScenario1Data(scenario1S0TextFile, hotspotManager.hotspotTextS0, 2); //Scenario 1 scenario1S6Data = ImportScenario1Data(scenario1S6TextFile, hotspotManager.hotspotTextS6, 2); //Scenario 6 scenario2Data = ImportScenarioStdData(scenario2TextFile, 2); //Scenario 2 scenario3Data = ImportScenarioStdData(scenario3TextFile, 2); //Scenario 3 scenario4Data = ImportScenarioStdData(scenario4TextFile, 2); //Scenario 4 scenario5Data = ImportScenarioStdData(scenario5TextFile, 2); // Scenario 5 }
private void Scenario3() { gameManager.attemptsAllowed = false; activeScenario = scenario3Data; //Sets as active scenario gameManager.sessionData.selectedRouteCoord = scenario3Data.routes.ElementAt(gameManager.sessionData.selectedRoute).Split(',').ToList(); //Sets the route selected in menu as the session's route gameManager.sessionData.routeStart = routeManager.getRouteStart(gameManager.sessionData.selectedRouteCoord); //sets at what position the player should start gameManager.sessionData.selectedRouteDir = intersectionManager.ConvertRouteToDirection(gameManager.sessionData.selectedRouteCoord); Debug.Log("SCENARIO 3 - selectedRouteDir" + string.Join(",", gameManager.sessionData.selectedRouteDir)); SetAttemptsValidationLimits(); //if (!gameManager.sessionData.sessionPaused) //{ // gameManager.validationCount = -1; //} gameManager.attemptCount = 0; //1. display lines and follow them routeManager.validationEnabled = false; //gameManager.attemptsAllowed = true ; List <string> lineToDraw = new List <string>(gameManager.sessionData.selectedRouteCoord); //Temportarily displays route (DEUB) lineToDraw.RemoveAt(0); //Remove the start coordiante routeManager.SpawnLine(lineToDraw, 0); if (gameManager.recordRoute) //if player has { //routeManager.lineDrawn.SetActive(false); } //2. start recording: go to start without lines and try to validate the route }
//SCENARIO 4 - RETRACE AND VALIDATE A ROUTE PREVIOUSLY TAKEN private void Scenario4() { activeScenario = scenario4Data; //Sets as active scenario gameManager.sessionData.selectedRouteCoord = scenario4Data.routes.ElementAt(gameManager.sessionData.selectedRoute).Split(',').ToList(); //Sets the route selected in menu as the session's route gameManager.sessionData.routeStart = routeManager.getRouteStart(gameManager.sessionData.selectedRouteCoord); //sets at what position the player should start gameManager.sessionData.selectedRouteDir = intersectionManager.ConvertRouteToDirection(gameManager.sessionData.selectedRouteCoord); Debug.Log(string.Join(",", gameManager.sessionData.selectedRouteDir)); SetAttemptsValidationLimits(); //gameManager.attemptCount = 0; if (!gameManager.sessionData.sessionPaused) { routeManager.validationEnabled = true; gameManager.attemptsAllowed = true; } else if (gameManager.sessionData.sessionPaused) //if player has already done the validation by image { //gameManager.validationCount++; routeManager.validationEnabled = false; gameManager.attemptsAllowed = false; //attemptsLimited = false; List <string> lineToDraw = new List <string>(gameManager.sessionData.selectedRouteCoord); //Temportarily displays route (DEUB) lineToDraw.RemoveAt(0); //Remove the start coordiante routeManager.SpawnLine(lineToDraw, 0); } }
//PULLS DATA FROM LIST<STRING> AND STORES IT IN STRUCTURE (SCENARIOS 2 TO 5) private ScenarioStdData ImportScenarioStdData(List <string> textFile, int routesStartAtLine) { ScenarioStdData scenarioData = new ScenarioStdData(); scenarioData.routes = new List <string>(); //scenarioData.start = textFile.ElementAt(0); //Start coordinate string //scenarioData.startCoord = routeManager.SplitCoordinates(scenarioData.start); //Start coordinates (coord, dir) scenarioData.maxAttempts = int.Parse(textFile.ElementAt(0)); scenarioData.maxValidations = int.Parse(textFile.ElementAt(1)); scenarioData.routesCount = textFile.Count - routesStartAtLine; //# of routes in scenario for (int i = routesStartAtLine; i < textFile.Count; i++) // List of all routes { scenarioData.routes.Add(textFile.ElementAt(i)); } //Debug.Log(textFile + "scenario - routes: " + string.Join("+", scenarioData.routes)); return(scenarioData); }
//SCENARIO 2 - WORK IN PAIR: SENDER/RECEIVER private void Scenario2() { activeScenario = scenario2Data; gameManager.sessionData.selectedRouteCoord = scenario2Data.routes.ElementAt(gameManager.sessionData.selectedRoute).Split(',').ToList(); //gameManager.sessionData.selectedRouteCoord = routeManager.selectedRouteCoord; gameManager.sessionData.routeStart = routeManager.getRouteStart(gameManager.sessionData.selectedRouteCoord); //sets at what position the player should start if (gameManager.sessionData.isSender) // if this is the sender, draw the line { routeManager.validationEnabled = true; List <string> lineToDraw = new List <string>(gameManager.sessionData.selectedRouteCoord); //Temportarily displays route (DEUB) lineToDraw.RemoveAt(0); //Remove the start coordiante routeManager.SpawnLine(lineToDraw, 0); uIManager.senderReceiverUI = "(E)"; //for UI display } else //validation is possible { routeManager.validationEnabled = true; uIManager.senderReceiverUI = "(R)"; //for UI display } SetAttemptsValidationLimits(); }