예제 #1
0
    /// <summary>
    /// Flujo del juego
    /// </summary>
    private void GameLoop()
    {
        switch (gameLoop)
        {
        case 0:            //Crea las preguntas y las muestra. La puntuación se pone a 0/0
            point.enabled = true;
            point.text    = "0 / 0";
            auController.ChangeAudio(2);
            CreateQuiz();
            break;

        case 1:            //Animación de transición IN
            //LabelControllerIn(true);
            auController.ChangeAudio(1);
            if (fase == 0)
            {
                StartCoroutine(LabelPanelCorountine(2, 8));
            }
            else if (fase == 1)
            {
                StartCoroutine(LabelPanelCorountine(5, 10));
            }
            else
            {
                StartCoroutine(LabelPanelCorountine(8, 10));
            }
            break;

        case 2:     //Texto de historia ANTES de la PREGUNTA MORAL
            if (points[0] >= 4)
            {
                Debug.Log("Has aprobado");     //Si ha aprobado, se va a la pregunta moral
                gameLoop++;
            }
            else
            {
                Debug.Log("Has suspendido");
                resM[fase] = -2;     //Si ha suspendido se salta la pregunta y se toma
                numQuiz    = 0;      //la respuesta MALA
                gameLoop   = 5;
            }
            Invoke(nameof(GameLoop), 5f);
            points[0] = 0;
            points[1] = 0;
            break;

        case 3:             //Se muestra la pregunta moral y transition OUT
            //LabelControllerIn(false);
            StartCoroutine(labelController(false));
            auController.ChangeAudio(2);
            CreateQuizM();
            break;

        case 4:            //Se ejecuta una vez ya se ha hecho el CheckQuizM
                           //Transition IN
                           //LabelControllerIn(true);
            auController.ChangeAudio(1);
            if (fase == 0)
            {
                StartCoroutine(LabelPanelCorountine(3, 5));
            }
            else if (fase == 1)
            {
                StartCoroutine(LabelPanelCorountine(6, 10));
            }
            else
            {
                StartCoroutine(LabelPanelCorountine(9, 10));
            }


            StartCoroutine(labelController(true));
            gameLoop++;
            Invoke(nameof(GameLoop), 1.5f);
            Debug.Log("gameLoop 4");
            break;

        case 5:              //Se comprueba la fase.
            if (fase++ == 2) //Si es la última...
            {
                gameLoop = 10;
                //labelTransAnim.SetTrigger("TransitionIn");    //Pasamos al gameLoop 10
                Invoke(nameof(GameLoop), 1.5f);
            }
            else                  //Si no es la última...
            {
                //LabelControllerIn(true);      //Activamos panel para la historia
                Debug.Log("Has ido al siguiente fase");
                gameLoop++;
                Invoke(nameof(GameLoop), 5f);
            }
            break;

        case 6:            //Se resetea el gameLoop, se desactiva el panel para la historia y Transition OUT
            switch (fase + 1)
            {
            case 1:
                auController.ChangeAudio(2);
                StartCoroutine(LabelPanelCorountine(4, 8));
                break;

            case 2:
                StartCoroutine(LabelPanelCorountine(7, 8));
                auController.ChangeAudio(2);
                break;
            }
            break;

        case 10:
            FinalCheck();
            break;
        }
    }