public virtual void LevelUp()
 {
     if (_xp.PercentFull == 1)
     {
         _xp.Expend(_xp.Value);
         _xp.Capacity = (int)_xpPerLevelUp.Evaluate(++_currentLevel);
     }
 }
 public virtual void TakeDamage(int dmg)
 {
     _health.Expend(Mathf.Max(0, dmg));
     _onTakeDamage.Invoke();
 }