Example #1
0
    public static void AoCriature(CreatureManager C, CreatureManager inimigo = null)
    {
        Debug.Log("aqui");
        if (inimigo != null)
        {
            AplicadorDeCamera aCam = AplicadorDeCamera.cam;
            aCam.InicializaCameraDeLuta(C, inimigo.transform);
            C.Estado       = CreatureManager.CreatureState.emLuta;
            inimigo.Estado = CreatureManager.CreatureState.selvagem;
        }
        else
        {
            AplicadorDeCamera.cam.FocarBasica(C.transform, C.MeuCriatureBase.alturaCamera, C.MeuCriatureBase.distanciaCamera);
            C.Estado = CreatureManager.CreatureState.aPasseio;
        }

        C.GetComponent <UnityEngine.AI.NavMeshAgent>().enabled = false;
    }
    public bool Update()
    {
        bool retorno = false;

        switch (estado)
        {
        case EncounterState.truqueDeCamera:
            TruqueDeCamera();
            break;

        case EncounterState.apresentaAdversario:
            contadorDeTempo += Time.deltaTime;
            if (apresentaAdv.Apresenta(contadorDeTempo, cam))
            {
                depoisDeTerminarAApresentacao();
            }
            break;

        case EncounterState.comecaLuta:
            GameController.g.HudM.InicializaHudDeLuta(inimigo.MeuCriatureBase);
            ((IA_Agressiva)inimigo.IA).PodeAtualizar = true;
            manager.CriatureAtivo.Estado             = CreatureManager.CreatureState.emLuta;
            cam.InicializaCameraDeLuta(manager.CriatureAtivo, inimigo.transform);
            estado = EncounterState.verifiqueVida;
            break;

        case EncounterState.verifiqueVida:
            GameController.g.HudM.AtualizeHud(manager, inimigo.MeuCriatureBase);
            VerifiqueVida();
            break;

        case EncounterState.vitoriaNaLuta:
            if (!apresentaFim.EstouApresentando())
            {
                RecebePontosDaVitoria();
            }
            break;

        case EncounterState.VoltarParaPasseio:

            if (inimigo)
            {
                MonoBehaviour.Destroy(inimigo.gameObject);
            }

            cam.FocarBasica(manager.transform, 10, 10);
            estado  = EncounterState.emEspera;
            retorno = true;
            break;

        case EncounterState.morreuEmLuta:
            ApresentaDerrota.RetornoDaDerrota R = apresentaDerrota.Update();
            if (R != ApresentaDerrota.RetornoDaDerrota.atualizando)
            {
                if (R == ApresentaDerrota.RetornoDaDerrota.voltarParaPasseio)
                {
                    estado = EncounterState.verifiqueVida;
                }
                else
                if (R == ApresentaDerrota.RetornoDaDerrota.deVoltaAoArmagedom)
                {
                    estado = EncounterState.emEspera;
                }
            }
            break;

        case EncounterState.passouDeNivel:
            if (passou.Update())
            {
                estado = EncounterState.VoltarParaPasseio;
            }
            break;
        }
        return(retorno);
    }