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; } }
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(); } }
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(); } } }
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; } }
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; } }
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); }