コード例 #1
0
    //TODO: Move to SequenceManager;
    public void CheckValidation()
    {
        Debug.Log("validation: " + sessionData.validationCountNew + " /" + sequenceManager.activeScenario.maxValidations);
        if (!routeManager.validationEnabled)//CANNOT validate
        {
            uiManager.OpenDialogBox("Pas de validation possible.");
        }
        //IF CAN VALIDATE (Validations are not limited or there are validations left)
        else if (!sequenceManager.validationsLimited || (sequenceManager.validationsLimited && sessionData.validationCountNew < sequenceManager.activeScenario.maxValidations))
        {
            validationCount++;  // Counts as one validation
            sessionData.validationCountNew++;
            Debug.Log("validation: " + sessionData.validationCountNew + " /" + sequenceManager.activeScenario.maxValidations);
            uiManager.validationCheck = true; // allow UI display

            //Scenario 1
            if (sessionData.selectedScenario == 1)
            {
                checkpointManager.CheckpointValidationNew();   //Checkpoints validation
            }
            //Scenario 2
            else if (sessionData.selectedScenario == 2)
            {
                if (sessionData.isSender)                                                               //Player is sender
                {
                    if (sessionData.validationCountNew < sequenceManager.activeScenario.maxValidations) // there are validations left
                    {
                        uiManager.OpenDialogBox("Attend les instructions.");
                        intersectionManager.GotoCoord(sessionData.routeStart.ElementAt(0), sessionData.routeStart.ElementAt(1));  //Place player at start of route
                        NewAttempt(false);
                        attemptCount = 1;
                    }
                    //else
                    //{
                    //    uiManager.OpenDialogBox("(10) Il ne reste plus de validation possible.");
                    //    EndSession();
                    //    uiManager.dialogBox.GetComponent<DialogBox>().returnToMenu = true;  //return to menu after closing the dialog box
                    //}
                    else
                    {
                        uiManager.OpenDialogBox("C'était la dernière validation. Attend les instructions.");
                        EndSession(false);
                        uiManager.dialogBox.GetComponent <DialogBox>().returnToMenu = true;  //return to menu after closing the dialog box
                    }
                }
                else // Player is receiver
                {
                    routeManager.ValidateRoute(intersectionManager.sessionRoute);
                    uiManager.routeValidationText.text = ("Valid = " + routeManager.validationInfo.isValid + " - errorat #: " + routeManager.validationInfo.errorAt + " - endReached= " + routeManager.validationInfo.endReached + " - length: " + routeManager.validationInfo.routeLength); //UI Display only

                    RouteValidationScenario2();
                }
            }
            //Scenario 3
            else if (sessionData.selectedScenario == 3)
            {
                routeManager.ValidateRoute(intersectionManager.sessionRoute);
                uiManager.routeValidationText.text = ("Valid = " + routeManager.validationInfo.isValid + " - errorat #: " + routeManager.validationInfo.errorAt + " - endReached= " + routeManager.validationInfo.endReached + " - length: " + routeManager.validationInfo.routeLength); //UI Display only
                //saveSessionData.SaveData();
                PauseSession();


                if (sessionData.validationCountNew >= sequenceManager.activeScenario.maxValidations)    //if last attempt
                {
                    Debug.Log("last attempt");
                    GlobalControl.instance.returnToMenu = true;
                    endTime      = Time.time;
                    sessionEnded = true;
                    sessionData.sessionPaused = false;
                }
                GlobalControl.instance.sessionData = sessionData;

                saveSessionData.stopSavingData();
                uiManager.dialogBox.GetComponent <DialogBox>().validateScene = true;  //return to menu after closing the dialog box
                uiManager.OpenDialogBox("VALIDATION PAR IMAGES");
            }
            //Scenario 4
            else if (sessionData.selectedScenario == 4)
            {
                routeManager.ValidateRoute(intersectionManager.sessionRoute);
                uiManager.routeValidationText.text = ("Valid = " + routeManager.validationInfo.isValid + " - errorat #: " + routeManager.validationInfo.errorAt + " - endReached= " + routeManager.validationInfo.endReached + " - length: " + routeManager.validationInfo.routeLength); //UI Display only
                //saveSessionData.SaveData();
                PauseSession();
                GlobalControl.instance.sessionData = sessionData;
                uiManager.OpenDialogBox("VALIDATION PAR IMAGES");
                saveSessionData.stopSavingData();
                uiManager.dialogBox.GetComponent <DialogBox>().validateScene = true; //return to menu after closing the dialog box
            }
            else if (sessionData.selectedScenario == 5)                              //Scenario 5 (no validation)
            {
                uiManager.routeValidationText.text = "No validation possible";
            }
        }
        else
        {
            uiManager.OpenDialogBox("Il ne reste plus de validation possible.");
        }
    }