// Update is called once per frame public override void Update() { switch (estado) { case EstadoDaqui.tempoCorrente: if (PodeContarTempo()) { tempoAcumulado += Time.deltaTime; } if (tempoAcumulado >= Dados.TempoSignificativo && OAfetado.CaracCriature.meusAtributos.PV.Corrente > 0) { Debug.Log(CDoAfetado); if (CDoAfetado != null) { Animator A = CDoAfetado.GetComponent <Animator>(); Dano.EmEstadoDeDano(A, CDoAfetado); Dano.InsereEstouEmDano(CDoAfetado, A, new GolpeBase(new ContainerDeCaracteristicasDeGolpe() { })); Dano.AplicaVisaoDeDano(CDoAfetado, (int)Dados.Quantificador); if (CDoAfetado.name == "CriatureAtivo") { GameController.g.HudM.Painel.AtivarNovaMens( string.Format(BancoDeTextos.RetornaListaDeTextoDoIdioma(ChaveDeTexto.status)[1], OAfetado.NomeEmLinguas, (int)Dados.Quantificador), 20, 2 ); } else { GameController.g.HudM.Painel.AtivarNovaMens( string.Format(BancoDeTextos.RetornaListaDeTextoDoIdioma(ChaveDeTexto.status)[2], (int)Dados.Quantificador), 20, 2 ); } } else { GameController.g.HudM.Painel.AtivarNovaMens( string.Format(BancoDeTextos.RetornaListaDeTextoDoIdioma(ChaveDeTexto.status)[1], OAfetado.NomeEmLinguas, (int)Dados.Quantificador), 20, 2 ); } Dano.AplicaCalculoDoDano(OAfetado.CaracCriature.meusAtributos, (int)Dados.Quantificador); GameController.g.HudM.AtualizaDadosDaHudVida(false); if (GameController.g.InimigoAtivo != null) { GameController.g.HudM.AtualizaDadosDaHudVida(true); } VerificaVida(); tempoAcumulado = 0; } else if (OAfetado.CaracCriature.meusAtributos.PV.Corrente <= 0) { RetiraComponenteStatus(); if (CDoAfetado != null) { MudaParaEstadoMorto(); } } break; case EstadoDaqui.derrotadoAtivo: tempoAcumulado += Time.deltaTime; if (tempoAcumulado > 2 || GameController.g.CommandR.DisparaAcao()) { apresentaDerrota = new ApresentaDerrota(GameController.g.Manager, CDoAfetado); estado = EstadoDaqui.morreuEnvenenadoAtivo; } break; case EstadoDaqui.morreuEnvenenadoAtivo: ApresentaDerrota.RetornoDaDerrota R = apresentaDerrota.Update(); if (R != ApresentaDerrota.RetornoDaDerrota.atualizando) { if (R == ApresentaDerrota.RetornoDaDerrota.voltarParaPasseio) { GameController.g.Manager.AoHeroi(); RetiraComponenteStatus(); estado = EstadoDaqui.emEspera; } else if (R == ApresentaDerrota.RetornoDaDerrota.deVoltaAoArmagedom) { } } break; } }
void MudaParaEstadoMorto() { CDoAfetado.GetComponent <Animator>().SetBool("cair", true); CDoAfetado.Estado = CreatureManager.CreatureState.morto; }