Beispiel #1
0
    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);
    }
Beispiel #2
0
    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);
        }
    }