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