Exemplo n.º 1
0
    private void OnTriggerStay2D(Collider2D collider)
    {
        NWeaponPlasma plasma = collider.transform.GetComponentInParent <NWeaponPlasma>();

        if (plasma != null)
        {
            plasmaPull = plasma;
        }
    }
Exemplo n.º 2
0
    private void OnTriggerStay2D(Collider2D collider)
    {
        NWeaponPlasma plasma = collider.transform.GetComponentInParent <NWeaponPlasma>();

        if (plasma != null)
        {
            if (element != EElement.plasma || transform.localScale.x < plasma.transform.localScale.x)
            {
                Vector2 dist        = collider.transform.position - transform.position;
                Vector2 oldVelocity = rb.velocity;
                rb.velocity += (dist / dist.sqrMagnitude) * (plasma.transform.localScale.x);
                float angleBetween = Vector2.Angle(oldVelocity, rb.velocity);
                transform.Rotate(0f, 0f, -angleBetween);
            }
        }
    }
Exemplo n.º 3
0
    void OnCollisionEnter2D(Collision2D collision)
    {
        NPlayerController np = collision.collider.gameObject.GetComponent <NPlayerController>();
        NWeapon           w  = collision.collider.gameObject.GetComponent <NWeapon>();

        if (np != null && gracePeriod <= 0)
        {
            np.HitByPlasma(transform.position);
            IEnumerator explosion = Explosion(1f, 0.25f);
            StartCoroutine(explosion);
        }
        else if (collision.collider.gameObject.layer.Equals(LayerMask.NameToLayer("Platforms")) && !collided)
        {
            IEnumerator explosion = Explosion(1f, 0.25f);
            StartCoroutine(explosion);
        }
        else if (w != null)
        {
            NWeaponPlasma wp = collision.collider.gameObject.GetComponent <NWeaponPlasma>();
            if (wp != null)
            {
                if (transform.localScale.x > wp.transform.localScale.x)
                {
                    wp.HitByPlasma(transform.position);
                    IEnumerator explosion = Explosion(2f, 0.5f);
                    StartCoroutine(explosion);
                }
            }
            else
            {
                w.HitByPlasma(transform.position);
                IEnumerator explosion = Explosion(0.25f, 0.1f);
                StartCoroutine(explosion);
            }
        }
    }