Exemplo n.º 1
0
        /// <summary>
        /// Apply a delta health object to this controller
        /// </summary>
        /// <param name="dHealth"></param>
        public void ApplyDeltaHealth(DeltaHealth dHealth)
        {
            float delta = dHealth.GetDelta(this);

            health += delta;

            if (maxHealth >= 0f)
            {
                health = Mathf.Max(maxHealth, health);
            }

            if (health <= 0f)
            {
                OnDeath(this, dHealth);
            }

            if (delta != 0f)
            {
                OnDelta?.Invoke(this, dHealth);
            }
            if (delta > 0f)
            {
                OnHeal?.Invoke(this, dHealth);
            }
            else if (delta < 0f)
            {
                OnHurt?.Invoke(this, dHealth);
            }
        }