void UmaDerrota()
 {
     InterrompeFluxoDeLuta();
     inimigo.Estado   = CreatureManager.CreatureState.parado;
     apresentaDerrota = new ApresentaDerrota(manager, inimigo);
     estado           = EncounterState.morreuEmLuta;
     GameController.g.HudM.MenuDeI.FinalizarHud();
 }
Esempio n. 2
0
        // 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;
            }
        }