protected void facaImpacto(GameObject emQ, bool colocaImpactos = false, bool destroiAqui = true, bool noTransform = false)
    {
        if (emQ.gameObject.tag == "eventoComGolpe")
        {
            eventoComGolpe eCG = emQ.GetComponent <eventoComGolpe>();
            acaoDeGolpe    aG2 = dono.GetComponent <acaoDeGolpe>();
            if (eCG && aG2)
            {
                eCG.disparaEvento(aG2.ativa.nomeID);
            }
        }

        GameObject impacto  = GameObject.Find("elementosDoJogo").GetComponent <elementosDoJogo>().retorna(noImpacto);
        GameObject impacto2 = null;

        if (!noTransform)
        {
            impacto2 = (GameObject)Instantiate(impacto, transform.position, Qparticles);
        }

        umCriature umC = emQ.transform.GetComponent <umCriature>();

        if (umC)
        {
            if (umC.criature().cAtributos[0].Corrente > 0)
            {
                if (dono.GetComponent <acaoDeGolpe>())
                {
                    acaoDeGolpe aG = dono.GetComponent <acaoDeGolpe>();
                    aG.tomaDanoUm(emQ.transform);

                    if (noTransform)
                    {
                        impacto2 = (GameObject)Instantiate(impacto, umC.transform.position, Qparticles);
                    }

                    if (colocaImpactos)
                    {
                        aG.impactos++;
                    }
                }
            }
        }

        if (impacto2)
        {
            Destroy(impacto2, 1.5f);
        }
        if (destroiAqui)
        {
            Destroy(gameObject);
        }
    }
示例#2
0
    void OnTriggerEnter(Collider emQ)
    {
        if (emQ.tag == "Criature" || emQ.tag == "Player")
        {
            bool dano   = true;
            bool deFogo = false;
            if (emQ.tag == "Criature")
            {
                string[] Tipos = emQ.transform.GetComponent <umCriature>().criature().meusTipos;
                for (int i = 0; i < Tipos.Length; i++)
                {
                    if (Tipos[i] == tipoImune.ToString())
                    {
                        dano   = false;
                        deFogo = true;
                    }
                }
            }
            else
            {
                dano = false;
            }

            if (!deFogo)
            {
                GameObject G = elementosDoJogo.el.retorna(noImpacto);
                G = (GameObject)Instantiate(G, emQ.transform.position, Quaternion.identity);

                Destroy(G, 0.75f);
            }

            if (dano)
            {
                acaoDeGolpe aG = gameObject.AddComponent <acaoDeGolpe>();
                aG.ativa = new golpe();
                aG.tomaDanoUm(emQ.transform);
            }

            if (!deFogo)
            {
                Destroy(gameObject);
            }
        }
    }