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