Esempio n. 1
0
    protected override void OnHitWall(Collision2D collision, Vector2 point)
    {
        //base.OnHitWall();

        switch (state)
        {
        default:
            if (patroller.enabled)
            {
                patroller.SetFacingRight(point.x < 0);
            }
            break;

        case State.Rolling:
            if (collision.gameObject.layer == LayerMask.NameToLayer("Ground"))
            {
                IBreakable breakableBlock = collision.transform.GetComponent <IBreakable>();
                if (breakableBlock != null)
                {
                    breakableBlock.TakeDamage(999);
                }
                controller.Die();
            }
            break;
        }
    }
Esempio n. 2
0
 protected void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.CompareTag("NightmatrixBorder"))
     {
         Vanish();
     }
     else if (collision.gameObject.layer == LayerMask.NameToLayer("Ground"))
     {
         IBreakable breakable = collision.GetComponent <IBreakable>();
         if (breakable != null)
         {
             breakable.TakeDamage(m_hitbox.damage);
         }
         Vanish();
     }
 }
Esempio n. 3
0
 protected override void OnHitGround(Collision2D collision)
 {
     if (state == State.Rolling)
     {
         IBreakable breakableBlock = collision.gameObject.GetComponent <IBreakable>();
         if (breakableBlock != null)
         {
             breakableBlock.TakeDamage(999);
             controller.Die();
         }
         else if (!bouncerMovement.CountBounce())
         {
             controller.Die();
         }
     }
 }
Esempio n. 4
0
    protected override void OnWallEvent(Collision2D collision)
    {
        base.OnWallEvent(collision);

        switch (state)
        {
        case State.Idle:
            shooterMovement.NotifyGround();
            break;

        case State.Launched:
            IBreakable breakableBlock = collision.gameObject.GetComponent <IBreakable>();
            if (breakableBlock != null)
            {
                breakableBlock.TakeDamage(999);
            }
            controller.Die();
            break;
        }
    }
Esempio n. 5
0
    protected override void OnHitWall(Collision2D collision, Vector2 point)
    {
        switch (state)
        {
        case State.Idle:
            leaper.SetFacingSide(point.x < 0);
            break;

        case State.Rolling:
            IBreakable breakableBlock = collision.gameObject.GetComponent <IBreakable>();
            if (breakableBlock != null)
            {
                breakableBlock.TakeDamage(999);
                controller.Die();
            }
            else if (!bouncerMovement.CountBounce())
            {
                controller.Die();
            }
            break;
        }
    }
Esempio n. 6
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (state == State.Attacking || state == State.Diving)
        {
            int layer = collision.gameObject.layer;
            if (groundLayer == (groundLayer | 1 << layer))
            {
                hitbox.GetComponent <Collider2D>().enabled = false;
                if (gameObject.activeSelf)
                {
                    StartCoroutine(BounceOnHit());
                }
                m_animator.SetTrigger("Dizzy");

                if (collision.gameObject.layer == LayerMask.NameToLayer("Ground"))
                {
                    IBreakable breakableBlock = collision.transform.GetComponent <IBreakable>();
                    if (breakableBlock != null)
                    {
                        breakableBlock.TakeDamage(999);
                    }
                }

                stompSFX.Play();
                dizzySFX.PlayDelayed(.2f);
                flightFX.Stop();

                transform.rotation = Quaternion.Euler(Vector3.zero);
                m_renderer.flipY   = m_renderer.flipX = false;

                state = State.Dizzy;

                StartCoroutine(DeathTimer());
            }
        }
    }
 public void DealDamage(IBreakable obj)
 {
     obj.TakeDamage(Damage);
 }