void EspecialNele(Transform ele) { GameObject G = ControladorDeJogo.c.RetornaElemento(Elementos.parDanoEspecial); MonoBehaviour.Destroy( MonoBehaviour.Instantiate(G, ele.position, G.transform.rotation), 0.5f); if (dados == null) { EstadoDePersonagem_Gerente gPersonagem = heroi.GetComponent <EstadoDePersonagem_Gerente>(); dados = gPersonagem.Dados; } //mov.PararMovimento(); ele.GetComponent <InimigoBase>().TomaDano(danoPorAtaque * dados.Poder, tipo, heroi.gameObject); }
void ProcureObjetosPerto() { GameObject[] osPerto = InimigoBase.InimigosPerto(raioDeDano, transform.position); EstadoDePersonagem_Gerente T = GameObject.FindWithTag("Player").GetComponent <EstadoDePersonagem_Gerente>(); DadosDoPersonagem dados = T.Dados; float distancia = Vector3.Distance(T.transform.position, transform.position); if (distancia < raioDeDano) { T.AplicarDano(ValorDeDano(distancia, dados.G_XP.Nivel)); AfastamentoDeExplosaoParaHeroi afH = T.gameObject.AddComponent <AfastamentoDeExplosaoParaHeroi>(); afH.dirAfastamento = Vector3.ProjectOnPlane(T.transform.position - transform.position, Vector3.up).normalized; } foreach (GameObject I in osPerto) { AfastadorDeInimigoEmDano.InsereAfastamento( Vector3.ProjectOnPlane((I.transform.position - transform.position), Vector3.up).normalized, distanciaDeAfastamento, tempoDeAfastamento, I); I.GetComponent <InimigoBase>() .TomaDano(ValorDeDano(Vector3.Distance(I.transform.position, transform.position), dados.G_XP.Nivel), TipoDeDano.explosao); } }