public bool EstouApresentando()
 {
     contadorDeTempo += Time.deltaTime;
     if (contadorDeTempo > TEMPO_PARA_MOSTRAR_VITORIA)
     {
         if (!apresentouFim)
         {
             ColocaCameraEmPOsicao();
             cam.InicializaCameraExibicionista(criatureDoJogador.transform, criatureDoJogador.Mov.Controle.height);
             GameController.g.HudM.DesligaContainerDoInimigo();
             apresentouFim = true;
         }
         else
         {
             if (!ligouMensagemDeFim)
             {
                 Atributos A = inimigoDerrotado.MeuCriatureBase.CaracCriature.meusAtributos;
                 PainelMensCriature.p.AtivarNovaMens(
                     string.Format(bancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.apresentaFim),
                                   criatureDoJogador.MeuCriatureBase.NomeID,
                                   (int)((float)A.PV.Maximo / 2),
                                   A.PV.Maximo), 20);
                 ligouMensagemDeFim = true;
             }
             else if (Input.GetMouseButtonDown(0) || contadorDeTempo > TEMPO_PARA_FECHAR_APRESENTA_FIM)
             {
                 PainelMensCriature.p.EsconderMensagem();
                 return(false);
             }
         }
     }
     return(true);
 }
    public bool Apresenta(float contadorDeTempo, AplicadorDeCamera cam)
    {
        if (contadorDeTempo > 0.5f)
        {
            if (!foiApresentado)
            {
                cam.transform.position = (inimigo.transform.position + 8 * inimigo.transform.forward + 5 * Vector3.up);
                cam.transform.LookAt(inimigo.transform);
                cam.InicializaCameraExibicionista(inimigo.transform, inimigo.GetComponent <CharacterController>().height);
                foiApresentado = true;
            }
            else
            {
                //cam.transform.RotateAround(inimigo.transform.position, Vector3.up, 15 * Time.deltaTime);
                if (!painelAberto)
                {
                    painelAberto = true;
                    // bugDoNivel1();

                    iniciaApresentaInimigo();
                }
                else if (Input.GetMouseButtonDown(0) || contadorDeTempo > 10)
                {
                    PainelMensCriature.p.EsconderMensagem();
                    return(true);
                }
            }
        }

        return(false);
    }
예제 #3
0
 public AnimaBraco(CharacterManager manager, Transform alvo)
 {
     mCamera = AplicadorDeCamera.cam;
     mCamera.InicializaCameraExibicionista(manager.transform, 2.5f);
     this.manager = manager;
     animador     = manager.Mov.Animador;
     manager.transform.rotation = Quaternion.LookRotation(
         Vector3.ProjectOnPlane(alvo.position - manager.transform.position, Vector3.up)
         );
     this.alvo   = alvo.gameObject;
     PosCriature = alvo.position;
 }
예제 #4
0
 public AnimaBraco(Transform oAnimado, Transform alvo, bool treinador = false)
 {
     this.treinador = treinador;
     this.oAnimado  = oAnimado;
     mCamera        = AplicadorDeCamera.cam;
     mCamera.InicializaCameraExibicionista(oAnimado, 2.5f);
     animador = (treinador)
         ?new AnimadorHumano(oAnimado.GetComponent <Animator>())
         : GameController.g.Manager.Mov.Animador;
     oAnimado.rotation = Quaternion.LookRotation(
         Vector3.ProjectOnPlane(alvo.position - oAnimado.position, Vector3.up)
         );
     this.alvo   = alvo.gameObject;
     PosCriature = alvo.position;
 }
예제 #5
0
    public bool AnimaTroca(
        bool eItem = false
        )
    {
        GameObject gerente = manager.gameObject;

        tempoDecorrido += Time.deltaTime;
        switch (estado)
        {
        case EstadoDoAnimaBraco.manipulandoCamera:
            if (mCamera.FocarPonto(VELOCIDADE_DE_MOVIMENTO_DE_CAMERA
                                   * Mathf.Max(Vector3.Distance(gerente.transform.position, alvo.transform.position),
                                               VELOCIDADE_MINIMA_PARA_MOVIMENTO_DE_CAMERA)))
            {
                estado = EstadoDoAnimaBraco.animaTroca;
            }
            break;

        case EstadoDoAnimaBraco.animaTroca:
            animador.AnimaTroca();
            estado         = EstadoDoAnimaBraco.AnimandoTroca;
            tempoDecorrido = 0;
            break;

        case EstadoDoAnimaBraco.AnimandoTroca:
            if (tempoDecorrido > TEMPO_DA_PRIMEIRA_ANIMACAO)
            {
                luz            = ParticulasDeSubstituicao.InsereParticulaDaLuva(gerente, true);
                raio           = ParticulasDeSubstituicao.InsereParticulaDoRaio(posCriature, gerente);
                estado         = EstadoDoAnimaBraco.InsereRaioDeLuva;
                tempoDecorrido = 0;
            }
            break;

        case EstadoDoAnimaBraco.InsereRaioDeLuva:
            if (tempoDecorrido > TEMPO_PARA_INSTANCIAR_PARTICULA_CHAO && alvo.transform.localScale.sqrMagnitude > 0.01f)
            {
                ParticulasDeSubstituicao.ParticulaSaiDaLuva(alvo.transform.position);
                if (!eItem)
                {
                    estado = EstadoDoAnimaBraco.DiminuiEscalaDoCriature;
                }
                else
                {
                    mCamera.InicializaCameraExibicionista(alvo.transform, alvo.GetComponent <CharacterController>().height);


                    estado = EstadoDoAnimaBraco.TerminaORaio;
                }
                tempoDecorrido = 0;
            }
            break;

        case EstadoDoAnimaBraco.DiminuiEscalaDoCriature:
            if (tempoDecorrido < TEMPO_DE_REDUCAO_DE_ESCALA)
            {
                alvo.transform.localScale = Vector3.Lerp(alvo.transform.localScale, Vector3.zero, 2 * Time.deltaTime);
            }
            else
            {
                estado         = EstadoDoAnimaBraco.TerminaORaio;
                tempoDecorrido = 0;
            }
            break;

        case EstadoDoAnimaBraco.TerminaORaio:
            if (tempoDecorrido < TEMPO_PARA_FINALISAR_RAIO)
            {
                if (!eItem)
                {
                    MonoBehaviour.Destroy(alvo);
                }

                ParticulasDeSubstituicao.ReduzVelocidadeDoRaio(raio);
            }
            else if (!eItem)
            {
                MudarParaAnimaBracoFinalizado();
                return(false);
            }

            if (eItem)
            {
                if (mCamera.FocarPonto(VELOCIDADE_DE_MOVIMENTO_DE_CAMERA *
                                       Mathf.Max(Vector3.Distance(gerente.transform.position, alvo.transform.position),
                                                 VELOCIDADE_MINIMA_PARA_MOVIMENTO_DE_CAMERA)))
                {
                    MudarParaAnimaBracoFinalizado();
                    return(false);
                }
            }
            break;

        case EstadoDoAnimaBraco.AnimaBracoFinalizado:
            return(false);
            //break;
        }
        return(true);
    }