Beispiel #1
0
    public void ProjetilCollision(RaycastHit2D hit, ArrowMoviment arrow)
    {
        Projetil _proj = hit.collider.GetComponent <Projetil>();

        if (!hitedProjetils.Contains(_proj))
        {
            hitedProjetils.Add(_proj);
            if (_proj.destrutivel)
            {
                FindObjectOfType <AudioManager>().Play("brustArrow");
                if (ArrowDamage)
                {
                    Instantiate(ArrowDamage, _proj.transform.position, Quaternion.identity);
                }
            }

            if (_proj.solido)
            {
                arrow.transform.SetParent(_proj.transform);
                communAction(arrow);
            }
            else
            {
                if (_proj.colideFlecha)
                {
                    communAction(arrow);
                    Destroy(gameObject, 0.5f);
                }
            }
        }
    }
    void communAction(ArrowMoviment arrow)
    {
        arrow.collisionOccurred = true;
        arrow.arrowHead.SetActive(false);

        arrow._rBody.velocity    = Vector3.zero;
        arrow._rBody.isKinematic = true;
        arrow._rBody.constraints = RigidbodyConstraints.FreezeAll;
    }
 public void ItemCollision(RaycastHit2D hit, ArrowMoviment arrow)
 {
     FindObjectOfType <AudioManager>().Play("piercingArrow");
     if (ArrowDamage)
     {
         Instantiate(ArrowDamage, hit.collider.transform.position, Quaternion.identity);
     }
     hit.collider.GetComponent <IItem>().Action();
     Destroy(hit.collider.gameObject, 0.5f);
 }
Beispiel #4
0
    public void EnemyCollision(RaycastHit2D hit, ArrowMoviment arrow)
    {
        EnemyPart ep = hit.collider.gameObject.GetComponent <EnemyPart>();

        if (!ep._enemy.dead)
        {
            FindObjectOfType <AudioManager>().Play("brustArrow");
            arrow.transform.SetParent(ep.transform);
            communAction(arrow);
            Destroy(arrow.gameObject, 8);
        }
    }
Beispiel #5
0
    public void EnemyCollision(RaycastHit2D hit, ArrowMoviment arrow)
    {
        EnemyPart ep = hit.collider.gameObject.GetComponent <EnemyPart>();

        if (!ep._enemy.dead)
        {
            FindObjectOfType <AudioManager>().Play("basicArrow");
            communAction(arrow);
            ep.hit(damage, GameController.arrowsType.basic);
            arrow.transform.SetParent(ep.transform);

            if (ArrowDamage)
            {
                Instantiate(ArrowDamage, hit.collider.transform.position, Quaternion.identity);
            }
            Destroy(arrow.gameObject, 8);
        }
    }
    public void ProjetilCollision(RaycastHit2D hit, ArrowMoviment arrow)
    {
        Projetil _proj = hit.collider.GetComponent <Projetil>();

        if (!hitedProjetils.Contains(_proj))
        {
            hitedProjetils.Add(_proj);
            if (_proj.destrutivel)
            {
                FindObjectOfType <AudioManager>().Play("piercingArrow");
                if (ArrowDamage)
                {
                    Instantiate(ArrowDamage, _proj.transform.position, Quaternion.identity);
                }
            }

            _proj.damage(damage);
        }
    }
    public void EnemyCollision(RaycastHit2D hit, ArrowMoviment arrow)
    {
        EnemyPart ep = hit.collider.gameObject.GetComponent <EnemyPart>();

        if (!ep._enemy.dead)
        {
            if (ArrowDamage)
            {
                Instantiate(ArrowDamage, hit.collider.transform.position, Quaternion.identity);
            }

            if (!partsHited.Contains(ep))
            {
                FindObjectOfType <AudioManager>().Play("piercingArrow");
                partsHited.Add(ep);
                ep.hit(damage, GameController.arrowsType.piercing);
            }
        }
    }
Beispiel #8
0
    public void ProtectionCollision(RaycastHit2D hit, ArrowMoviment arrow)
    {
        FindObjectOfType <AudioManager>().Play("protection");
        if (_trail.enabled)
        {
            _trail.enabled  = false;
            _trail2.enabled = true;
        }
        else
        {
            _trail.enabled  = true;
            _trail2.enabled = false;
        }

        if (arrow.transform.position.x > hit.collider.transform.position.x)
        {
            arrow.renderUnFlip();
        }

        arrow._rBody.velocity = (arrow._rBody.velocity * -1) + (new Vector3(0, 1, 0) * 10);
    }
Beispiel #9
0
    void communAction(ArrowMoviment arrow)
    {
        Instantiate(explosionParticle, transform.position, Quaternion.identity);
        RaycastHit2D[] callisions = Physics2D.CircleCastAll(transform.position, explosionRadio, new Vector2(1, 1), 0, arrow.targetLayerMask);

        for (int i = 0; i < callisions.Length; i++)
        {
            GameObject go = callisions[i].collider.gameObject;
            if (go.tag == "Enemy")
            {
                EnemyPart ep = callisions[i].collider.gameObject.GetComponent <EnemyPart>();

                if (!enemiesHited.Contains(ep._enemy))
                {
                    enemiesHited.Add(ep._enemy);
                    ep.hit(damage, GameController.arrowsType.brust);
                }
            }
            else if (go.tag == "Item")
            {
                go.GetComponent <IItem>().Action();
                Destroy(go, 0.5f);
            }
            else if (go.tag == "Projetil")
            {
                go.GetComponent <Projetil>().damage(damage);
            }
        }

        arrow.collisionOccurred = true;
        arrow.arrowHead.SetActive(false);

        arrow._rBody.velocity    = Vector3.zero;
        arrow._rBody.isKinematic = true;
        arrow._rBody.constraints = RigidbodyConstraints.FreezeAll;
    }
Beispiel #10
0
 public void ItemCollision(RaycastHit2D hit, ArrowMoviment arrow)
 {
     FindObjectOfType <AudioManager>().Play("brustArrow");
     communAction(arrow);
     Destroy(arrow.gameObject);
 }
Beispiel #11
0
 public void ProjetilCollision2(RaycastHit2D hit, ArrowMoviment arrow)
 {
     communAction(arrow);
     Destroy(arrow.gameObject, 8);
 }
 public void ProtectionCollision(RaycastHit2D hit, ArrowMoviment arrow)
 {
     FindObjectOfType <AudioManager>().Play("piercingArrow");
 }
 public void GroundCollision(RaycastHit2D hit, ArrowMoviment arrow)
 {
     FindObjectOfType <AudioManager>().Play("arrowOnGround");
     communAction(arrow);
     Destroy(arrow.gameObject, 5);
 }