コード例 #1
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (!interactable)
        {
            return;
        }

        if (collision.CompareTag("Twirl"))
        {
            Hitbox hitbox = collision.GetComponent <Hitbox>();
            if (hitbox != null)
            {
                OnTwirlEvent(hitbox);
            }
        }
        else
        if (collision.CompareTag("Hitbox"))
        {
            Hitbox hitbox = collision.GetComponent <Hitbox>();
            if (hitbox != null && hitbox.id != id)
            {
                OnHitboxEvent(hitbox);
            }
        }
        else
        if (collision.CompareTag("NightmatrixBorder"))
        {
            NightmatrixBorder border = collision.GetComponent <NightmatrixBorder>();
            if (border)
            {
                controller.SetNightmarePhase(border.mainMatrix.GetComponent <Nightmatrix>());
            }
        }
    }
コード例 #2
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (currentNightmatrix == null && collision.CompareTag("Nightmatrix"))
        {
            Nightmatrix nightmatrix = collision.GetComponent <Nightmatrix>();
            if (nightmatrix)
            {
                SwitchIn(nightmatrix);
            }
        }

        if (collision.CompareTag("Hitbox"))
        {
            Hitbox hitbox = collision.GetComponent <Hitbox>();
            if (hitbox != null && hitbox.id != id)
            {
                OnHitboxEvent(hitbox, hitbox.damage);
            }
        }
        else
        if (collision.CompareTag("Explosion"))
        {
            Hitbox hitbox = collision.GetComponent <Hitbox>();
            if (hitbox != null && hitbox.id != id)
            {
                OnHitboxEvent(hitbox, 100);
            }
        }
        else
        if (collision.CompareTag("NightmatrixBorder"))
        {
            NightmatrixBorder border = collision.GetComponent <NightmatrixBorder>();
            if (border)
            {
                controller.SetDreamPhase(border.mainMatrix.GetComponent <Nightmatrix>());
            }
        }
    }
コード例 #3
0
    private void TriggerEnterAndStayEvents(Collider2D collision)
    {
        //somente o filho "Ghost" consegue entrar em contato com "Enemy"s
        if (collision.transform.CompareTag("Enemy"))
        {
            Vector3 contactPoint = collision.transform.position;

            IShooterTouch enemy = collision.transform.GetComponent <IShooterTouch>();
            if (enemy != null)
            {
                enemy.OnTouchEvent(this);
            }
        }
        else if (collision.transform.CompareTag("Hitbox") || collision.transform.CompareTag("Explosion"))
        {
            Hitbox hitbox = collision.GetComponent <Hitbox>();
            if (hitbox && hitbox.id != ID.Player && PlayerState != State.Dashing)
            {
                SetDamage(hitbox.damage);

                Bullet bullet = collision.GetComponent <Bullet>();
                if (bullet)
                {
                    bullet.Vanish();
                }
            }
        }
        else if (!locked && collision.CompareTag("NightmatrixBorder"))
        {
            NightmatrixBorder border = collision.GetComponent <NightmatrixBorder>();
            if (border)
            {
                controller.SetDreamPhase(border.mainMatrix.GetComponent <Nightmatrix>());
            }
        }
    }