private void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.tag == Enums.Tags.Enemy.ToString() || collision.gameObject.tag == Enums.Tags.EnemyWeapon.ToString() || collision.gameObject.tag == Enums.Tags.Trap.ToString()) { if (this.CurrentState != Enums.HeroState.Hurt && collision.gameObject.GetComponent <IDamageDealer>() != null) { this.Health -= collision.gameObject.GetComponent <IDamageDealer>().GetDamage(); Vector2 position = this.transform.position; this.rgbdy.AddForce((position - collision.contacts[0].point).normalized * 5f, ForceMode2D.Impulse); sfx.PlaySong(0); } anim.SetTrigger(this.hitHash); } else if (collision.gameObject.tag == Enums.Tags.Pickup.ToString()) { if (collision.gameObject.GetComponent <Pickups.Money>() != null) { Pickups.Money gold = collision.gameObject.GetComponent <Pickups.Money>(); HeroData.Instance.money += gold.Value; ObjectPooling.PickupPool.Instance.ReturnGold(gold.gameObject); } } }
private void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.tag == Enums.Tags.Enemy.ToString() || collision.gameObject.tag == Enums.Tags.EnemyWeapon.ToString() || collision.gameObject.tag == Enums.Tags.Trap.ToString()) { Vector2 position = this.transform.position; Vector2 forceDirection = (position - collision.contacts[0].point).normalized; DamageHero(collision.gameObject, forceDirection); } else if (collision.gameObject.tag == Enums.Tags.Pickup.ToString()) { if (collision.gameObject.GetComponent <Pickups.Money>() != null) { Pickups.Money gold = collision.gameObject.GetComponent <Pickups.Money>(); HeroData.Instance.money += gold.Value; ObjectPooling.PickupPool.Instance.ReturnGold(gold.gameObject); } } }
protected override bool ShouldDestroyBullet(Collider2D collider) { if (collider.gameObject.GetComponent <Bullet>() != null) { return(false); } if (collider.gameObject.tag == Enums.Tags.Pickup.ToString()) { if (collider.gameObject.GetComponent <Pickups.Money>() != null) { this.sfx.PlaySong(0); Pickups.Money gold = collider.gameObject.GetComponent <Pickups.Money>(); Hero.HeroData.Instance.money += gold.Value; ObjectPooling.PickupPool.Instance.ReturnGold(gold.gameObject); return(false); } } return(true); }