示例#1
0
文件: Tutorial.cs 项目: fayvit/PQP
    // Update is called once per frame
    void Update()
    {
        contadorDeTempo += Time.deltaTime;
        if (iniciou)
        {
            desliza(painel[qual]);

            if ((contadorDeTempo > 25 || tempoDestaAcao > 5) && tempoLimitado)
            {
                entrando = false;
                //qual++;
            }
            switch (ensinando)
            {
            case estouEnsinando.movimentoCorrerEPulo:
                if (Mathf.Abs(Input.GetAxis("Horizontal")) > 0 ||
                    Mathf.Abs(Input.GetAxis("Vertical")) > 0 ||
                    Input.GetButtonDown("Correr"))
                {
                    entendeu = true;
                }

                if (Vector3.Distance(CoreanTransform.position, pontoParaEnsinarACamera.position) < 3)
                {
                    qual      = 1;
                    ensinando = estouEnsinando.camera;
                    renovandoMensagem();
                }
                break;

            case estouEnsinando.camera:
                if (Input.GetAxis("Mouse Y") != 0 || Input.GetAxis("Mouse X") != 0 || Input.GetButtonDown("centraCamera"))
                {
                    entendeu = true;
                }
                break;

            case estouEnsinando.usarCriature:
                if (Input.GetButtonDown("paraCriature"))
                {
                    painel[qual].anchoredPosition = new Vector2(painel[qual].anchoredPosition.x, -300);
                    qual++;
                    ensinando = estouEnsinando.atacar;
                }
                break;

            case estouEnsinando.atacar:
                if (Input.GetButtonDown("acao"))
                {
                    entendeu = true;
                }

                if (Input.GetButtonDown("paraCriature"))
                {
                    entrando = false;
                }
                break;

            case estouEnsinando.usarMaca:
                if (!ensinouMaca)
                {
                    tCaesar.position = CoreanTransform.position + CoreanTransform.right;
                    tCaesar.rotation = CoreanTransform.rotation;
                    painel[4].gameObject.SetActive(true);
                    GameObject G = GameObject.Find("CriatureAtivo");
                    cam         = G.GetComponent <cameraPrincipal>();
                    mB          = G.GetComponent <movimentoBasico>();
                    cam.enabled = false;
                    mB.enabled  = false;
                    vidaEmLuta[] vS = GameObject.Find("encontreEle").GetComponents <vidaEmLuta>();
                    foreach (vidaEmLuta v in vS)
                    {
                        v.entrando = false;
                    }
                    ensinouMaca = true;
                }
                //Vector3 posAlvo = focoNoCaesar();

                if (Vector3.Distance(focoNoCaesar(), transform.position) < 0.3f)
                {
                    transform.rotation = Quaternion.LookRotation(tCaesar.position - transform.position);
                    ensinando          = estouEnsinando.mudaItem;
                    mens          = gameObject.AddComponent <mensagemBasica>();
                    mens.posY     = 0.67f;
                    mens.skin     = elementosDoJogo.el.skin;
                    mens.destaque = elementosDoJogo.el.destaque;
                    mens.mensagem = mensDeTuto[0];
                    H.criaturesAtivos[0].cAtributos[0].Corrente--;
                    tempoLimitado = false;
                }
                break;

            case estouEnsinando.mudaItem:
                trocaMensagem();
                break;

            case estouEnsinando.usarGatilhoDoItem:
                if (Input.GetButtonDown("menu e auxiliar"))
                {
                    jaFocou = true;
                }
                desliza2(painel[7], !jaFocou);

                if (!IA2)
                {
                    IA2 = GameObject.Find("inimigo").GetComponent <IA_paraTutu>();
                }
                if (mB.enabled && mB.podeAndar)
                {
                    IA2.enabled = true;
                }

                /*
                 * if(!mB.enabled&&!mB.podeAndar&&!IA2.enabled)
                 * {
                 *      //print("por aqui");
                 *      useAEnergiaDeGarras();
                 *      IA2.enabled = false;
                 * }
                 */


                break;

            case estouEnsinando.outroGolpe:
                desliza2(painel[8], true);
                if (Input.GetButtonDown("trocaGolpe"))
                {
                    mB.criatureVerificaTrocaGolpe();
                }

                if (H.criaturesAtivos[0].golpeEscolhido == 1)
                {
                    jaFocou = true;
                    if (Input.GetButtonDown("acao"))
                    {
                        mB.aplicaGolpe(H.criaturesAtivos[0]);
                        ensinando = estouEnsinando.usaEnergiaDeGarras;
                        jaFocou   = false;
                    }
                }
                else if (Input.GetButtonDown("acao"))
                {
                    if (mL)
                    {
                        mL.fechador();
                    }
                    mL            = gameObject.AddComponent <mensagemEmLuta>();
                    mL.posY       = 0.01f;
                    mL.mensagem   = mensDeTuto[3];
                    mensagemAtual = 3;
                }



                desliza2(painel[9], jaFocou, -1);


                break;

            case estouEnsinando.usaEnergiaDeGarras:
                desliza2(painel[8], false);
                desliza2(painel[9], false, -1);

                if (mB)
                {
                    if (mB.enabled && mB.podeAndar)
                    {
                        ensinando             = estouEnsinando.capturar;
                        heroi.contraTreinador = false;
                        mB.enabled            = false;
                        cam.enabled           = false;
                        GameObject  Inimigo = GameObject.Find("inimigo");
                        IA_paraTutu IA      = Inimigo.GetComponent <IA_paraTutu>();
                        IA.enabled = false;
                        IA.paraMovimento();
                        Inimigo.GetComponent <umCriature>().X.cAtributos[0].Corrente = 1;
                    }
                }
                else
                {
                    ensinando = estouEnsinando.estadoNulo;
                }
                break;

            case estouEnsinando.capturar:
                if (Vector3.Distance(focoNoCaesar(), transform.position) < 0.3f)
                {
                    transform.rotation = Quaternion.LookRotation(tCaesar.position - transform.position);
                    vidaEmLuta[] vS = GameObject.Find("encontreEle").GetComponents <vidaEmLuta>();
                    foreach (vidaEmLuta v in vS)
                    {
                        v.entrando = false;
                    }

                    mens.entrando = true;
                    mens.mensagem = mensDeTuto[2];
                    mensagemAtual = 2;
                }

                trocaMensagem();
                break;

            case estouEnsinando.usarCartaLuva:

                if (!Input.GetButtonDown("gatilho"))
                {
                    mB.criatureScroll();
                }
                else if (H.itemAoUso == 4 && !Input.GetButton("Correr"))
                {
                    GameObject.Find("CriatureAtivo").GetComponent <movimentoBasico>().criatureScroll();
                    ensinando = estouEnsinando.queroEnsinarTrocarDeCriature;
                    removeEsbranquicado();
                }
                else if (!Input.GetButton("Correr"))
                {
                    if (mL)
                    {
                        mL.fechador();
                    }
                    mL          = gameObject.AddComponent <mensagemEmLuta>();
                    mL.mensagem = mensDeTuto[1];
                }

                if (H.itemAoUso == 4)
                {
                    vejaQualMens((int)estouEnsinando.usarCartaLuva);
                }
                break;

            case estouEnsinando.queroEnsinarTrocarDeCriature:
                if (!heroi.emLuta)
                {
                    mB         = H.GetComponent <movimentoBasico>();
                    mB.enabled = false;
                    variaveisChave.shift["HUDItens"] = true;
                    ensinando     = estouEnsinando.trocarCriature;
                    mens.entrando = true;
                    mens.mensagem = mensDeTuto[6];
                    mensagemAtual = 6;
                }
                break;

            case estouEnsinando.trocarCriature:
                if (encontros.botoesPrincipais())
                {
                    mens.entrando = false;
                    ensinando     = estouEnsinando.botaoTrocarCriature;
                    qual          = 10;
                    entrando      = true;
                    variaveisChave.shift["HUDCriatures"] = false;
                    jaFocou = false;
                }
                break;

            case estouEnsinando.botaoTrocarCriature:
                mB.criatureScroll();

                if (!jaFocou)
                {
                    if (GameObject.FindGameObjectWithTag("MainCamera").GetComponent <HUDCriatures>())
                    {
                        vejaQualMens((int)estouEnsinando.botaoTrocarCriature);
                        jaFocou = true;
                    }
                }

                if (Input.GetButton("Correr") && Input.GetButtonDown("gatilho"))
                {
                    ensinando = estouEnsinando.estadoNulo;
                    entrando  = false;
                    variaveisChave.shift["HUDItens"]            = false;
                    variaveisChave.shift["alternaParaCriature"] = false;
                    variaveisChave.shift["trocaGolpes"]         = false;

                    ePlus.maisDoCaesar();
                }
                break;
            }


            if (entendeu)
            {
                tempoDestaAcao += Time.deltaTime;
            }
        }
    }
示例#2
0
    void Update()
    {
        Vector3 posAlvo = Vector3.zero;

        switch (fase)
        {
        case faseDaEntrada.jogoDeCameraInicial:
            posAlvo            = CaesarTransform.position + 2.5f * Vector3.up - 2 * transform.right - 6 * transform.forward;
            transform.position = Vector3.Lerp(transform.position, posAlvo, Time.deltaTime);
            if (Vector3.Distance(posAlvo, transform.position) < 0.5f)
            {
                fase          = faseDaEntrada.focoNoCaesar;
                mens.entrando = true;
            }
            break;

        case faseDaEntrada.focoNoCaesar:
            transform.rotation = Quaternion.Lerp(
                transform.rotation,
                Quaternion.LookRotation(CaesarTransform.position - transform.position + Vector3.up),
                Time.deltaTime);

            olhaPraMimPo(CaesarTransform, animatorDoCaesar);
            olhaPraMimPo(LutzTransform, animatorDoLutz);
            trocaMensagem();

            if (mensagemAtual == 2)
            {
                fase          = faseDaEntrada.focoNoCorean;
                mens.entrando = false;
                animatorDoCorean.SetFloat("velocidade", 0.5f);
                animatorDoCorean.speed   = 0.5f;
                CoreanTransform.position = posicoesDeCamera[2].position;                /*new melhoraPos().novaPos(
                                                                                         * transform.position+Vector3.forward*9,1);*/
                posAlvo = new Vector3(transform.position.x - CoreanTransform.position.x, 0, transform.position.z - CoreanTransform.position.z);
                CoreanTransform.rotation = Quaternion.LookRotation(posAlvo);
                transform.position      -= 1.5f * Vector3.up;
                animatorDoLutz.SetBool("girando", false);
                posAlvo = new Vector3(
                    CoreanTransform.position.x - LutzTransform.position.x,
                    0,
                    CoreanTransform.position.z - LutzTransform.position.z);
                LutzTransform.rotation = Quaternion.LookRotation(posAlvo);
                animatorDoCaesar.SetBool("girando", false);
                posAlvo = new Vector3(
                    CoreanTransform.position.x - CaesarTransform.position.x,
                    0,
                    CoreanTransform.position.z - CaesarTransform.position.z);
                CaesarTransform.rotation = Quaternion.LookRotation(posAlvo);
            }
            break;

        case faseDaEntrada.focoNoCorean:
            transform.LookAt(CoreanTransform);
            if (Vector3.Distance(transform.position, CoreanTransform.position) < 5f)
            {
                animatorDoCorean.SetFloat("velocidade", 0);
                mens.entrando = true;
                fase          = faseDaEntrada.fala1Corean;
            }
            break;

        case faseDaEntrada.fala1Corean:
            trocaMensagem();
            if (mensagemAtual == 4)
            {
                fase = faseDaEntrada.fala2Caesar;
                //mens.entrando = false;
                transform.position = CaesarTransform.position + CaesarTransform.forward * 2 + 2f * Vector3.up;
                transform.LookAt(CaesarTransform.position + 2 * Vector3.up);
            }
            break;

        case faseDaEntrada.fala2Caesar:
            trocaMensagem();
            switch (mensagemAtual)
            {
            case 6:
            case 7:
                posAlvo            = LutzTransform.position + LutzTransform.forward * 2 + 1.5f * Vector3.up;
                transform.position = Vector3.Lerp(transform.position, posAlvo, Time.deltaTime);
                break;

            case 8:
                posAlvo = HooliganTransform.position
                          + HooliganTransform.forward * 2
                          + 1.2f * Vector3.up
                          - HooliganTransform.right * 2;
                transform.position = Vector3.Lerp(transform.position, posAlvo, Time.deltaTime);
                transform.LookAt(HooliganTransform.position + 1.2f * Vector3.up);
                break;

            case 9:
            case 10:
            case 11:
            case 12:
            case 13:
            case 14:
                CoreanTransform.position = posicoesDeCamera[3].position;
                posAlvo            = posicoesDeCamera[1].position;
                transform.position = Vector3.Lerp(transform.position, posAlvo, 2 * Time.deltaTime);
                transform.rotation = Quaternion.Lerp(transform.rotation, posicoesDeCamera[1].rotation, Time.deltaTime);

                break;
            }
            break;

        case faseDaEntrada.assumindoOControle:
            andeAteOsPontos();
            break;

        case faseDaEntrada.iniciaConversa2:
            andeAteOsPontos();

            if (Vector3.Distance(CaesarTransform.position, posicoesNavMesh[2].position) < 3
                &&
                Vector3.Distance(LutzTransform.position, posicoesNavMesh[2].position) < 3
                &&
                Vector3.Distance(HooliganTransform.position, posicoesNavMesh[2].position) < 3)
            {
                CaesarNavMesh.Stop();
                HooliganNavMesh.Stop();
                LutzNavMesh.Stop();

                Vector3 olharSegundo = new Vector3(CaesarTransform.position.x - CoreanTransform.position.x,
                                                   0,
                                                   CaesarTransform.position.z - CoreanTransform.position.z);
                CoreanTransform.rotation = Quaternion.LookRotation(olharSegundo);
                CaesarTransform.rotation = Quaternion.LookRotation(-olharSegundo);
                mensagemAtual            = 16;
                mens.mensagem            = essaConversa[mensagemAtual];
                fase = faseDaEntrada.conversa2;
            }
            break;

        case faseDaEntrada.conversa2:
            animatorDoCaesar.SetFloat("velocidade", 0);
            animatorDoHooligan.SetFloat("velocidade", 0);
            animatorDoLutz.SetFloat("velocidade", 0);

            mens.entrando = true;
            trocaMensagem();
            if (mensagemAtual == 18)
            {
                fase = faseDaEntrada.vaoEmboraExcedentes;
                LutzNavMesh.destination     = posicoesNavMesh[3].position;
                HooliganNavMesh.destination = posicoesNavMesh[3].position;
                mudaParent(posicoesDeCamera[6]);
                HooliganTransform.gameObject.AddComponent <destruaQUandoProximo>().local = posicoesNavMesh[3].position;
                LutzTransform.gameObject.AddComponent <destruaQUandoProximo>().local     = posicoesNavMesh[3].position;
            }
            break;

        case faseDaEntrada.vaoEmboraExcedentes:
            if (HooliganTransform)
            {
                animatorDoHooligan.SetFloat("velocidade", HooliganNavMesh.velocity.magnitude);
            }
            if (LutzTransform)
            {
                animatorDoLutz.SetFloat("velocidade", LutzNavMesh.velocity.magnitude);
            }

            if (mensagemAtual + 1 == 21)
            {
                mudaParent(posicoesDeCamera[5]);
            }
            trocaMensagem();
            break;

        case faseDaEntrada.enviaCriature:
            if (!aE)
            {
                animatorDoCorean.SetBool("chama", false);
                //mB.enabled = true;
                transform.parent = null;
                //cam.enabled = true;
                if (!tuto)
                {
                    tuto = GetComponent <Tutorial>();
                }
                tuto.ensinaUsarCriature();
                tuto.ePlus = this;
                fase       = faseDaEntrada.esperaAlternar;
            }
            break;

        case faseDaEntrada.esperaAlternar:
            if (Input.GetButtonDown("paraCriature"))
            {
                fase = faseDaEntrada.comOCriature;
                alternancia a = GameObject.Find("CriatureAtivo").GetComponent <alternancia>();
                a.aoCriature();
                if (LutzTransform)
                {
                    Destroy(LutzTransform.gameObject);
                }

                if (HooliganTransform)
                {
                    Destroy(HooliganTransform.gameObject);
                }
            }
            break;

        case faseDaEntrada.comOCriature:
            if (Input.GetButtonDown("paraCriature"))
            {
                faseAteOEncontro();
            }

            break;

        case faseDaEntrada.ateOEncontro:
            if (mensagemAtual == 21)
            {
                //mens.entrando = true;
                trocaMensagem();
            }
            else
            {
                mens.entrando = false;
            }

            animatorDoCaesar.SetFloat("velocidade", CaesarNavMesh.velocity.magnitude);
            break;

        case faseDaEntrada.habilitaAlternador:

            if (!Input.GetButtonDown("gatilho"))
            {
                mB.criatureScroll();
            }
            else if (H.itemAoUso == 3 && !Input.GetButton("Correr"))
            {
                GameObject.Find("CriatureAtivo").GetComponent <movimentoBasico>().criatureScroll();
                vidaEmLuta[] vS = GameObject.Find("encontreEle").GetComponents <vidaEmLuta>();
                foreach (vidaEmLuta v in vS)
                {
                    v.entrando = true;
                }
                tuto.removeEsbranquicado();
                tuto.UsarGatilhoDoItem();
                fase = faseDaEntrada.useiMaca;
                heroi.contraTreinador = true;
            }
            else if (!Input.GetButton("Correr"))
            {
                if (mL)
                {
                    mL.fechador();
                }
                mL          = gameObject.AddComponent <mensagemEmLuta>();
                mL.mensagem = bancoDeTextos.falacoes[heroi.lingua]["tuto"][1];
            }

            if (H.itemAoUso == 3)
            {
                tuto.vejaQualMens();
            }

            break;

        case faseDaEntrada.ultimoSigaCaesar:
            contadorDeTempo += Time.deltaTime;

            if (contadorDeTempo > 3)
            {
                if (!mens)
                {
                    mens = gameObject.AddComponent <mensagemBasica>();
                }
                mens.entrando = true;
                mensagemAtual = 22;
                mens.mensagem = essaConversa[22];
                fase          = faseDaEntrada.mensDoUltimoSigaCaesar;
                //CaesarTransform.position = new melhoraPos().novaPos( CoreanTransform.position+Vector3.right,1);
            }
            break;

        case faseDaEntrada.mensDoUltimoSigaCaesar:
            trocaMensagem();
            animatorDoCaesar.SetFloat("velocidade", CaesarNavMesh.velocity.magnitude);
            break;

        case faseDaEntrada.caesarAndandoFinal:
            animatorDoCaesar.SetFloat("velocidade", CaesarNavMesh.velocity.magnitude);
            break;

        case faseDaEntrada.giraProGlark:
            Vector3 V = GlarkTransform.position - CoreanTransform.position;
            V = new Vector3(V.x, 0, V.z);
            Quaternion Q = Quaternion.LookRotation(V);
            CoreanTransform.rotation = Quaternion.Lerp(CoreanTransform.rotation, Q, Time.deltaTime);
            V = GlarkTransform.position - CaesarTransform.position;
            V = new Vector3(V.x, 0, V.z);
            Q = Quaternion.LookRotation(V);
            CaesarTransform.rotation = Quaternion.Lerp(CaesarTransform.rotation, Q, Time.deltaTime);
            break;

        case faseDaEntrada.encontroComGlark:
            trocaMensagem();
            break;

        case faseDaEntrada.cameraParaGlar:
            trocaMensagem();
            transform.position = Vector3.Lerp(transform.position, posicoesDeCamera[9].position, 5 * Time.deltaTime);
            transform.rotation = Quaternion.Lerp(transform.rotation, posicoesDeCamera[9].rotation, 5 * Time.deltaTime);
            break;

        case faseDaEntrada.voltaCameraProCorean:
            trocaMensagem();
            transform.position = Vector3.Lerp(transform.position, posicoesDeCamera[7].position, 5 * Time.deltaTime);
            transform.rotation = Quaternion.Lerp(transform.rotation, posicoesDeCamera[7].rotation, 5 * Time.deltaTime);
            break;

        case faseDaEntrada.rajadaDeAgua:
            contadorDeTempo += Time.deltaTime;
            if (contadorDeTempo > 0.75f)
            {
                transform.position = Vector3.Lerp(transform.position, posicoesDeCamera[7].position, 5 * Time.deltaTime);
                transform.rotation = Quaternion.Lerp(transform.rotation, posicoesDeCamera[7].rotation, 5 * Time.deltaTime);
            }

            if (contadorDeTempo > 1.5f)
            {
                fase = faseDaEntrada.empurrandoParaQueda;
                transform.position = posicoesDeCamera[7].position;
                transform.rotation = posicoesDeCamera[7].rotation;
                animatorDoCaesar.Play("damage_25");
                animatorDoCorean.Play("damage_25");
                colDaPonte.enabled    = false;
                CaesarNavMesh.enabled = false;
                contadorDeTempo       = 0;
            }
            break;

        case faseDaEntrada.empurrandoParaQueda:
            contadorDeTempo += Time.deltaTime;
            if (contadorDeTempo < 1f)
            {
                CoreanTransform.position += 15 * Vector3.forward * Time.deltaTime;
                CaesarTransform.position += 15 * Vector3.forward * Time.deltaTime;
            }
            else
            {
                fase = faseDaEntrada.estadoNulo;
                p    = gameObject.AddComponent <pretoMorte>();
                StartCoroutine(pretoMorteVoltaFInal());
            }

            break;

        case faseDaEntrada.QuedaFinal:
            contadorDeTempo += Time.deltaTime;
            if (contadorDeTempo < 2)
            {
                CaesarTransform.position += Vector3.down * 15 * Time.deltaTime;
                CoreanTransform.position += Vector3.down * 15 * Time.deltaTime;
                pedrasFInais.position    += Vector3.down * 15 * Time.deltaTime;
            }
            else
            {
                p = gameObject.AddComponent <pretoMorte>();
                Invoke("novaCena", 2.75f);
            }
            break;
        }
    }