Exemplo n.º 1
0
    public void StartLifeCycle()
    {
        //o padrão é tudo pausado
        stop = stopNpc = true;

        //define que está no ciclo de vida
        isInLifeCycle = true;

        //verifica qual a etapa do ciclo de vida
        switch (cicloDeVida)
        {
        //se não estiver em nenhuma etapa
        case CicloDeVida.nenhum:
            //inicia a adesão que seria a primeira etapa do ciclo de vida
            //aqui o jogador deverá conectar o receptor do vírus no da célula
            cicloDeVida = CicloDeVida.adesao;

            //toca a risadinha do virus
            AudioManager.instance.VirusSound();
            //inicia a musica que ficará até o fim do ciclo de vida
            AudioManager.instance.PlayMusic(AudioManager.instance.music_LifeCycle);

            //mostra uma informação simples sobre os receptores
            interfaceScript.simpleInfo.ShowSimpleTip("A adesão só é possível se o receptor do vírion for compatível com o da célula");
            interfaceScript.ShowJoysticks(true, 0);                    //ativa o joystick de movimento
            interfaceScript.ShowJoysticks(true, 1);                    //ativa o joystick de rotação

            //se for virus que possui DNA, mostra a informação sobre o ciclo lisogênico
            //se for vírus RNA, mostra a informação sobre o ciclo lítico
            if (player.IsVirusDNA())
            {
                interfaceScript.elementInfoPanel.ShowLifeCycleInfo(false);
            }
            else
            {
                interfaceScript.elementInfoPanel.ShowLifeCycleInfo(true);
            }
            break;

        case CicloDeVida.adesao:
            //inicia a etapa penetração na qual o jogador deverá tocar na tela rápidamente para fazer com que o vírus entre na célula
            cicloDeVida = CicloDeVida.penetracao1;

            interfaceScript.ShowJoysticks(false, -1);                    //desativa todos joysticks, só vai usar o toque na tela
            interfaceScript.tutorialPanel.ShowTutorial(3);               //clique na tela rapidamente
            //inicia o contador de toques
            touchCounter.StartCounting();
            break;

        case CicloDeVida.penetracao1:
            //inicia a etapa penetração 2 em que o jogador deverá deslizar seu dedo horizontalmente para liberar o capsídio viral
            cicloDeVida = CicloDeVida.penetracao2;

            //na etapa de adesão, o player(que possui todos os vírus), se torna filho do receptor da célula
            //se torna filho para assim seguir os movimentos do receptor da célula
            //agora que acabou a parte de penetração, o player volta a não ter pai, ou seja, é livre para se movimentar do jeito que quiser
            player.SetPlayerParent(null);
            interfaceScript.tutorialPanel.ShowTutorial(4);                    //deslize seu dedo horizontalmente para liberar o capsídio
            //começa a contar os deslizamentos
            shakeCounter.StartCounting();
            //para a contagem dos toques
            touchCounter.StopCounting();
            break;

        case CicloDeVida.penetracao2:
            //para a contagem dos deslizamentos
            shakeCounter.StopCounting();

            //se for virus DNA(ciclo lisogênico)
            if (player.IsVirusDNA())
            {
                if (player.currentVirusID == 7)                        // se for o hiv
                {
                    //inicia a integracao 1 exclusiva para o HIV
                    //o objetivo é converter seu RNA em DNA, miniGame da cobrinha
                    cicloDeVida = CicloDeVida.integracao1_HIV;

                    //desativa o joystick de movimento
                    interfaceScript.ShowJoysticks(false, 0);
                    //ativa o joystick de rotação
                    interfaceScript.ShowJoysticks(true, 1);
                    //integração 3.1 - snake tutorial
                    interfaceScript.tutorialPanel.ShowTutorial(9);
                    //inicia o mini game
                    miniGameController.integracaoHIV.StartMiniGame();
                    //dá zoom out
                    cameraController.Zoom(false);
                }
                else                        //se for qualquer outro vírus de dna(papiloma ou varicela zóster)
                {
                    //inicia a integracao1 normal
                    //o objetivo é mover o vírus até o núcleo da célula
                    cicloDeVida = CicloDeVida.integracao1;

                    //busca o núcleo da célula para que a seta que indica a direção direcione para o núcleo
                    FindTargetCellNucleus();
                    //dá zoom in
                    cameraController.Zoom(true);
                    //ativa o joystick de movimento
                    interfaceScript.ShowJoysticks(true, 0);
                    //desativa o joystick de rotação
                    interfaceScript.ShowJoysticks(false, 1);
                    //integracao1- levar o dna viral até o núcleo da célula
                    interfaceScript.tutorialPanel.ShowTutorial(7);
                    //desabilita o virus atual e habilita só o rna viral
                    player.ShowOnlyTheNucleicAcid(true, true);
                    break;
                }
            }
            else                    //se for vírus RNA(lítico)
            {
                //inicia a biossintese1 em que o jogador deverá levar o rna mensageiro até os ribossomos para criar proteínas virais
                cicloDeVida = CicloDeVida.biossintese1;

                //busca o núcleo da célula para que a seta que indica a direção direcione para o núcleo
                FindTargetCellNucleus();
                //dá zoom in
                cameraController.Zoom(true);
                //ativa o joystick de movimento
                interfaceScript.ShowJoysticks(true, 0);
                //desativa o joystick de rotação
                interfaceScript.ShowJoysticks(false, 1);
                //biossintese 3.1 - mover até o núcleo da célula
                interfaceScript.tutorialPanel.ShowTutorial(5);
                //desabilita o virus HIV e habilita só o dna viral
                player.ShowOnlyTheNucleicAcid(true, false);
            }
            break;

        case CicloDeVida.integracao1_HIV:
            //inicia a etapa integracao2 onde é necessário levar o dna viral até o núcleo da célula
            cicloDeVida = CicloDeVida.integracao2_HIV;

            //busca o núcleo da célula para que a seta que indica a direção direcione para o núcleo
            FindTargetCellNucleus();
            //dá zoom in
            cameraController.Zoom(true);
            //ativa o joystick de movimento
            interfaceScript.ShowJoysticks(true, 0);
            //desativa o joystick de rotação
            interfaceScript.ShowJoysticks(false, 1);
            //integraçãoHIV 3.2 - mover até o núcleo da célula
            interfaceScript.tutorialPanel.ShowTutorial(10);
            //desabilita o virus HIV e habilita só o dna viral
            player.ShowOnlyTheNucleicAcid(true, true);
            break;

        case CicloDeVida.integracao2_HIV:
            //inicia a ultima etapa do HIV, o jogador deverá integrar o dna viral no dna da célula
            cicloDeVida = CicloDeVida.integracao3_HIV;

            //dá zoom out
            cameraController.Zoom(false);
            //desativa todos joysticks, só vai usar o toque na tela
            interfaceScript.ShowJoysticks(false, -1);
            //integraçãoHIV 3.3 - toque na tela para mover o dna viral
            interfaceScript.tutorialPanel.ShowTutorial(11);
            //inicia o mini game
            miniGameController.integracao.StartMiniGame(player.currentVirusID);
            break;

        case CicloDeVida.integracao1:
            //inicia a etapa integracao2 em que o jogador deve integrar o dna viral no dna da célula
            cicloDeVida = CicloDeVida.integracao2;

            //da zoom out
            cameraController.Zoom(false);
            //desativa todos joysticks, só vai usar o toque na tela
            interfaceScript.ShowJoysticks(false, -1);
            //integração 3.2 - toque na tela para mover o dna viral
            interfaceScript.tutorialPanel.ShowTutorial(8);
            //inicia o mini game
            miniGameController.integracao.StartMiniGame(player.currentVirusID);
            break;

        case CicloDeVida.integracao2:
        case CicloDeVida.integracao3_HIV:
            //finaliza o ciclo lisogênico
            //já é finalizado no método ElementInfoOk
            break;

        case CicloDeVida.biossintese1:
            //inicia a etapa biossintese2 onde o jogador deverá levar o rna mensageiro até os ribossomos para criar as proteínas virais
            cicloDeVida = CicloDeVida.biossintese2;

            //da zoom out
            cameraController.Zoom(false);
            //desativa todos joysticks, só vai usar o toque na tela
            interfaceScript.ShowJoysticks(false, -1);
            //integraçãoHIV 3.2 - toque na tela para mover o rna viral que rotaciona
            interfaceScript.tutorialPanel.ShowTutorial(6);
            //inicia o mini game
            miniGameController.biossintese.StartMiniGame(player.currentVirusID);
            break;

        case CicloDeVida.biossintese2:
            //inicia a etapa de maturação onde o jogador deverá memorizar as estruturas virais
            cicloDeVida = CicloDeVida.maturacao;

            //maturação 4 - memorize e acerte as partes virais
            interfaceScript.tutorialPanel.ShowTutorial(12);
            //inicia o mini game
            miniGameController.maturacao.StartMiniGame(player.currentVirusID);
            break;

        case CicloDeVida.maturacao:
            //inicia o processo de liberação: o jogador deverá tocar rapidamente para atingir o limite da célula e assim liberar os novos vírus
            cicloDeVida = CicloDeVida.liberacao;

            //desativa os acidos nucleicos do miniGame maturação
            player.ShowOnlyTheNucleicAcid(false, false);
            //começa a contar os toques na tela
            touchCounter.StartCounting();
            //liberação 5 - toque o mais rápido que puder para romper a célula
            interfaceScript.tutorialPanel.ShowTutorial(13);
            //inicia o mini game passando qual seria o ponto inicial(meio da célula) e o final(limite da célula)
            miniGameController.liberation.StartMiniGame(currentCell.miniGameStartPosToLiberate, currentCell.miniGameEndPosToLiberate);
            break;

        case CicloDeVida.liberacao:
            //é a ultima etapa, então reseta o ciclo para sair
            ResetCycle();

            //para o contador
            touchCounter.StopCounting();
            break;
        }
    }