예제 #1
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);
            }
        }
    }