// 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; } }
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); }