Example #1
0
        public void Lose(int _amount, ISource _source)
        {
            int prev = current;

            current -= _amount;
            current  = Mathf.Clamp(current, min, max);

            if (current != prev)
            {
                OnResourceLost?.Invoke(prev - current, _source);
                OnChanged?.Invoke(prev, current);
                OnFillValueChanged?.Invoke();
            }

            if (current == min)
            {
                OnEmpty?.Invoke();
            }
        }
 protected virtual void TriggerOnResourceLost(int _amount, ISource _source) => OnResourceLost?.Invoke(_amount, _source);