Пример #1
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);
        }
Пример #2
0
        public static void AplicaProjetil(GameObject G, PetAttackBase ativa, ProjetilFeatures carac)
        {
            PetAttackDb golpeP = PetAttackDb.RetornaGolpePersonagem(G, ativa.Nome);

            if (golpeP.TempoDeInstancia > 0)
            {
                carac.posInicial = EmissionPosition.Get(G, ativa.Nome);
            }

            GameObject KY = InstanceSupport.InstancieEDestrua(ativa.Nome, carac.posInicial, ativa.DirDeREpulsao, ativa.TempoDeDestroy);

            DamageColliderBase proj = DamageColliderFactory.Get(KY, carac.tipo);

            #region suprimido
            //switch (carac.tipo)
            //{
            //    case TipoDoProjetil.rigido:
            //        proj = KY.AddComponent<ColisorDeDanoRigido>();
            //    break;
            //    case TipoDoProjetil.basico:
            //        proj = KY.AddComponent<ColisorDeDano>();
            //    break;
            //    case TipoDoProjetil.statusExpansivel:
            //        proj = KY.AddComponent<ColisorDeStatusExpansivel>();
            //    break;
            //    case TipoDoProjetil.direcional:
            //        ColisorDeDanoDirecional projD = KY.AddComponent<ColisorDeDanoDirecional>();
            //        projD.alvo = (G.name == "CriatureAtivo")
            //            ? ((GameController.g.InimigoAtivo != null) ? GameController.g.InimigoAtivo.gameObject : null)
            //            : GameController.g.Manager.CriatureAtivo.gameObject;
            //        proj = projD;
            //    break;
            //}
            #endregion

            proj.velocidadeProjetil = ativa.VelocidadeDeGolpe;
            proj.noImpacto          = carac.noImpacto;
            proj.dono      = G;
            proj.esseGolpe = ativa;
        }