Esempio n. 1
0
        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);
         }
     }
 }
Esempio n. 3
0
        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);
        }