Ejemplo n.º 1
0
        // Update is called once per frame
        void Update()
        {
            switch (estado)
            {
            case EstadoDaVisao.iniciou:

                if (Vector3.Distance(g.Manager.transform.position, npc.position) > 5)
                {
                    g.Manager.Mov.AplicadorDeMovimentos(dirDeMove);
                }
                else
                {
                    g.Manager.Mov.AplicadorDeMovimentos(Vector3.zero);
                }

                if (AplicadorDeCamera.cam.FocarPonto(velocidadeTempoDeCamera, movs[0].distanciaDaCamera, movs[0].alturaDaCamera, true, posInicialDeMoveCamera, true))
                {
                    estado = EstadoDaVisao.segundoPasso;
                    AplicadorDeCamera.cam.InicializaCameraExibicionista(movs[1].AlvoDoMovimento, movs[1].alturaDaCamera, true);
                    contadorDetempo        = 0;
                    posInicialDeMoveCamera = AplicadorDeCamera.cam.transform.position;
                }
                break;

            case EstadoDaVisao.segundoPasso:
                contadorDetempo += Time.deltaTime;
                if (contadorDetempo > 1.5f)
                {
                    if (Vector3.Distance(g.Manager.transform.position, npc.position) > 5)
                    {
                        g.Manager.Mov.AplicadorDeMovimentos(dirDeMove);
                    }
                    else
                    {
                        g.Manager.Mov.AplicadorDeMovimentos(Vector3.zero);
                    }

                    if (AplicadorDeCamera.cam.FocarPonto(velocidadeTempoDeCamera, movs[1].distanciaDaCamera, movs[1].alturaDaCamera, true, posInicialDeMoveCamera, true)
                        &&
                        Vector3.Distance(g.Manager.transform.position, npc.position) < 5
                        )
                    {
                        g.Manager.Mov.AplicadorDeMovimentos(Vector3.zero);
                        g.Manager.Estado = EstadoDePersonagem.parado;
                        estado           = EstadoDaVisao.conversaComtreinador;
                        npcLuta.Start(npc);
                        npcLuta.IniciaConversa();
                    }
                }
                break;

            case EstadoDaVisao.conversaComtreinador:
                if (npcLuta.Update())
                {
                    estado = EstadoDaVisao.emEspera;
                    g.Manager.AoHeroi();
                }
                break;
            }
        }
Ejemplo n.º 2
0
 private void OnTriggerEnter(Collider other)
 {
     if (keys.VerificaAutoShift(chave))
     {
         Destroy(gameObject);
     }
     else
     {
         if (estado == EstadoDaVisao.emEspera)
         {
             if (other.tag == "Player")
             {
                 g.ContarPassos = false;
                 dirDeMove      = (npc.position - other.transform.position).normalized;
                 GameController.EntrarNoFluxoDeTexto();
                 g.Manager.Estado = EstadoDePersonagem.movimentoDeFora;
                 Collider esseCol = GetComponent <Collider>();
                 AplicadorDeCamera.cam.InicializaCameraExibicionista(movs[0].AlvoDoMovimento, movs[0].alturaDaCamera, true);
                 posInicialDeMoveCamera = AplicadorDeCamera.cam.transform.position;
                 esseCol.enabled        = false;
                 esseCol.isTrigger      = false;
                 estado = EstadoDaVisao.iniciou;
                 keys.MudaShift(chave, true);
             }
             else if (other.tag == "Criature" && !GameController.g.estaEmLuta)
             {
                 EvitaAvancarNoTrigger.Evita();
             }
         }
     }
 }