Esempio n. 1
0
        protected bool AtualizaUsoDesseItem(DoJogo particula)
        {
            switch (Estado)
            {
            case EstadoDeUsoDeItem.animandoBraco:
                if (!AnimaB.AnimaTroca(true))
                {
                    Estado = EstadoDeUsoDeItem.aplicandoItem;
                    Manager.Mov.Animador.ResetaTroca();
                    AuxiliarDeInstancia.InstancieEDestrua(particula, CriatureAlvoDoItem.transform.position, 1);
                    AcaoDoItemConsumivel(CriatureAlvoDoItem.MeuCriatureBase);
                    GameController.g.HudM.AtualizeImagemDeAtivos();
                    GameController.g.HudM.AtualizaDadosDaHudVida(false);
                }
                break;

            case EstadoDeUsoDeItem.aplicandoItem:
                TempoDecorrido += Time.deltaTime;
                if (TempoDecorrido > TEMPO_DE_ANIMA_CURA_1)
                {
                    //GameController.g.HudM.AtualizaHudHeroi(CriatureAlvoDoItem.MeuCriatureBase);
                    Estado = EstadoDeUsoDeItem.finalizaUsaItem;
                    return(false);
                }
                break;

            case EstadoDeUsoDeItem.finalizaUsaItem:
                return(false);

            //break;
            case EstadoDeUsoDeItem.nulo:
                Debug.Log("alcançou estado nulo para " + ID.ToString());
                break;
            }
            return(true);
        }
Esempio n. 2
0
        public override bool AtualizaUsoComCriature()
        {
            switch (Estado)
            {
            case EstadoDeUsoDeItem.animandoBraco:
                if (!AnimaB.AnimaTroca(true))
                {
                    Estado = EstadoDeUsoDeItem.aplicandoItem;
                    //Manager.Mov.Animador.ResetaTroca();
                    particula = AuxiliarDeInstancia.InstancieEDestrua(
                        DoJogo.particulaDaFuga,
                        GameController.g.InimigoAtivo.transform.position, 100);
                }
                break;

            case EstadoDeUsoDeItem.aplicandoItem:
                TempoDecorrido += Time.deltaTime;
                switch (estadoDaqui)
                {
                case EstadoDaqui.particulasAtivas:
                    int arredondado = Mathf.RoundToInt(TempoDecorrido);


                    if (arredondado != disparado && arredondado < LOOPS)
                    {
                        //particulasSaiDaLuva(G.transform);
                        animator.CrossFade("dano1", 0);
                        animator.SetBool("dano1", true);
                        animator.SetBool("dano2", true);

                        disparado = arredondado;
                    }

                    if (arredondado >= LOOPS)
                    {
                        animator.SetBool("dano1", false);
                        animator.SetBool("dano2", false);
                        Object.Destroy(particula);

                        if (fugiu)
                        {
                            animator.GetComponent <UnityEngine.AI.NavMeshAgent>().enabled = false;


                            GameObject Gg = GameController.g.El.retorna("sucessoDaFuga");
                            Gg = Object.Instantiate(
                                Gg, GameController.g.InimigoAtivo.transform.position, Quaternion.identity);
                            Object.Destroy(Gg, 2);
                            controle    = animator.GetComponent <CharacterController>();
                            estadoDaqui = EstadoDaqui.rotacionando;
                            //MonoBehaviour.Destroy(particula);
                            TempoDecorrido = 0;
                        }
                        else
                        {
                            GameObject Gg = GameController.g.El.retorna("encontro");
                            Gg = Object.Instantiate(
                                Gg, GameController.g.InimigoAtivo.transform.position, Quaternion.identity);
                            Gg.GetComponent <ParticleSystem>().GetComponent <Renderer>().material
                                = GameController.g.El.materiais[0];
                            Object.Destroy(Gg, 2);
                            Estado = EstadoDeUsoDeItem.finalizaUsaItem;
                        }
                    }
                    break;

                case EstadoDaqui.rotacionando:
                    if (TempoDecorrido < TEMPO_DE_ANIMA_FUGA)
                    {
                        Transform transform = GameController.g.InimigoAtivo.transform;
                        transform.Rotate(1000 * Time.deltaTime, 0, 0);
                        controle.Move((Camera.main.transform.position - transform.position) * Time.deltaTime * 2);
                    }
                    else
                    {
                        GameController.g.RetornarParaFluxoDoHeroi();
                        Manager.Mov.Animador.ResetaTroca();
                        Estado = EstadoDeUsoDeItem.finalizaUsaItem;
                    }
                    break;
                }

                break;

            case EstadoDeUsoDeItem.finalizaUsaItem:
                return(false);
            }

            return(true);
        }