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

        case EstadoDeUsoDeItem.aplicandoItem:
            TempoDecorrido += Time.deltaTime;
            if (TempoDecorrido > TEMPO_DE_ANIMA_CURA_1)
            {
                Recuperacao();

                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);
    }
Beispiel #2
0
        private bool AtualizaUsoDaCarta()
        {
            switch (Estado)
            {
            case ItemUseState.animandoBraco:
                if (!AnimaB.AnimaTroca(true))
                {
                    captura  = ContinhaDeCaptura();
                    Estado   = ItemUseState.aplicandoItem;
                    animaCap = new CaptureManager(Dono, captura);
                }
                break;

            case ItemUseState.aplicandoItem:
                if (!animaCap.Update())
                {
                    if (captura)
                    {
                        //MessageAgregator<MsgChangeToHero>.Publish(new MsgChangeToHero()
                        //{
                        //    myHero = Dono
                        //});
                        //Debug.LogError("Retorna para o fluxo de heroi");
                        //GameController.g.RetornarParaFluxoDoHeroi();
                        //Estado = ItemUseState.nulo;
                        Estado = ItemUseState.finalizaUsaItem;
                    }
                    else
                    {
                        MessageAgregator <MsgRequestEndArmsAnimations> .Publish(new MsgRequestEndArmsAnimations()
                        {
                            oAnimado = Dono
                        });

                        (FindByOwner.GetManagerEnemy(Dono) as PetManagerEnemy).ReturnRememberedState();
                        Estado = ItemUseState.finalizaUsaItem;
                    }
                }
                break;

            case ItemUseState.finalizaUsaItem:
                return(false);

            //break;
            case ItemUseState.nulo:
                Debug.Log("alcançou estado nulo para " + ID.ToString());
                break;
            }
            return(true);
        }
Beispiel #3
0
        protected bool AtualizaUsoDesseItem(GeneralParticles particula)
        {
            switch (Estado)
            {
            case ItemUseState.animandoBraco:
                if (!AnimaB.AnimaTroca(true))
                {
                    Estado = ItemUseState.aplicandoItem;

                    MessageAgregator <MsgRequestEndArmsAnimations> .Publish(new MsgRequestEndArmsAnimations()
                    {
                        oAnimado = Dono
                    });

                    //Manager.Mov.Animador.ResetaTroca();

                    Debug.LogError("Tudo aqui pode ser substituido por um evento enviado ao manager");
                    InstanceSupport.InstancieEDestrua(particula, AnimaB.PosCriature, 1);
                    //AuxiliarDeInstancia.InstancieEDestrua(particula, CriatureAlvoDoItem.transform.position, 1);
                    AcaoDoItemConsumivel(0);


                    //GameController.g.HudM.AtualizeImagemDeAtivos();
                    //GameController.g.HudM.AtualizaDadosDaHudVida(false);
                }
                break;

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

            case ItemUseState.finalizaUsaItem:
                return(false);

            //break;
            case ItemUseState.nulo:
                Debug.Log("alcançou estado nulo para " + ID.ToString());
                break;
            }
            return(true);
        }
Beispiel #4
0
    protected virtual bool AtualizaUsoDoPergaminho()
    {
        switch (Estado)
        {
        case EstadoDeUsoDeItem.selecaoDeItem:
            GameController.g.HudM.Menu_Basico.MudarOpcao();
            if (GameController.g.CommandR.DisparaCancel())
            {
                ActionManager.ModificarAcao(GameController.g.transform, null);
                GameController.g.HudM.Painel.EsconderMensagem();
                GameController.g.HudM.Menu_Basico.FinalizarHud();
                Estado = EstadoDeUsoDeItem.finalizaUsaItem;
            }
            else
            if (GameController.g.CommandR.DisparaAcao())
            {
                OpcaoEscolhida(GameController.g.HudM.Menu_Basico.OpcaoEscolhida);
            }
            break;

        case EstadoDeUsoDeItem.animandoBraco:
            if (!AnimaB.AnimaTroca(true))
            {
                Estado = EstadoDeUsoDeItem.aplicandoItem;
                Manager.Mov.Animador.ResetaTroca();
                AuxiliarDeInstancia.InstancieEDestrua(Particula,
                                                      GameController.g.Manager.CriatureAtivo.transform.position, 1);

                AplicaEfeito(GameController.g.Manager.Dados.CriaturesAtivos[opcaoEscolhida]);
            }
            break;

        case EstadoDeUsoDeItem.aplicandoItem:
            TempoDecorrido += Time.deltaTime;
            if (TempoDecorrido > TEMPO_DE_ANIMA_PARTICULAS)
            {
                AplicaEfeito(GameController.g.Manager.Dados.CriaturesAtivos[opcaoEscolhida]);
            }
            break;

        case EstadoDeUsoDeItem.finalizaUsaItem:
            return(false);
        }
        return(true);
    }
    private bool AtualizaUsoDaCarta()
    {
        switch (Estado)
        {
        case EstadoDeUsoDeItem.animandoBraco:
            if (!AnimaB.AnimaTroca(true))
            {
                captura  = ContinhaDeCaptura();
                Estado   = EstadoDeUsoDeItem.aplicandoItem;
                animaCap = new AnimandoCaptura(captura);
            }
            break;

        case EstadoDeUsoDeItem.aplicandoItem:
            if (!animaCap.Update())
            {
                if (captura)
                {
                    GameController.g.RetornarParaFluxoDoHeroi();
                    Estado = EstadoDeUsoDeItem.nulo;
                }
                else
                {
                    Manager.Mov.Animador.ResetaTroca();
                    Estado = EstadoDeUsoDeItem.finalizaUsaItem;
                }
            }
            break;

        case EstadoDeUsoDeItem.finalizaUsaItem:
            return(false);

        //break;
        case EstadoDeUsoDeItem.nulo:
            Debug.Log("alcançou estado nulo para " + ID.ToString());
            break;
        }
        return(true);
    }
Beispiel #6
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);
        }