public void ImpactoAtivo(GameObject G, IGolpeBase ativa, CaracteristicasDeImpactoComSalto caracteristica, float colocarColisor = 0) { tempoDecorrido += Time.deltaTime; if (!procurouAlvo) { alvoProcurado = CriaturesPerto.procureUmBomAlvo(G); procurouAlvo = true; // Debug.Log(alvoProcurado + " esse é o alvo"); AtualizadorDeImpactos.ajudaAtaque(alvoProcurado, G.transform); if (alvoProcurado != null) { ativa.DirDeREpulsao = (Vector3.ProjectOnPlane(alvoProcurado.position - G.transform.position, Vector3.up)).normalized; } AnimadorCriature.AnimaAtaque(G, ativa.Nome.ToString()); /* aproveitado da geração 1 de scripts*/ ao = G.AddComponent <impactoAoChao>(); ao.aoChao = caracteristica.toque.ToString(); /* ******************* */ } if (!adview && tempoDecorrido > colocarColisor) { ColisorDeGolpe.AdicionaOColisor(G, ativa, caracteristica.deImpacto, tempoDecorrido + ativa.TempoDeMoveMin); adview = true; } if (caracteristica.final == ImpactoAereoFinal.MaisAltoQueOAlvo) { MaisAltoQueOAlvo(G, ativa); } else { AvanceEPareAbaixo(G, ativa); } if (tempoDecorrido > ativa.TempoDeMoveMax) { nav.enabled = estavaParada; } }
public override void IniciaGolpe(GameObject G) { aImpacto = new AtualizadorDeImpactos(); aImpacto.ReiniciaAtualizadorDeImpactos(); AnimadorCriature.AnimaAtaque(G, Nome.ToString()); }