Beispiel #1
0
    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
    }
Beispiel #2
0
    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
    }
Beispiel #3
0
    //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);
        }
    }
Beispiel #4
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);
    }
Beispiel #5
0
    //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();
    }