Пример #1
0
 private void GainHp(int value)
 {
     PlaySpecialSfx(PickupItemAudioClip);
     _currentHealth = healthBar.GetCurrentValue() + value >= healthBar.GetCurrentMaxValue()
         ? healthBar.GetCurrentMaxValue()
         : healthBar.GetCurrentValue() + value;
     healthBar.SetValue(_currentHealth);
     SetBarTextValue(ref playerHpUiValue, _currentHealth.ToString(), healthBar.GetCurrentMaxValue().ToString());
 }
Пример #2
0
        private void GainExp(SliderScript bar, int expValue, ref int nextLevelExpReq, ref int currentBarLevel,
            ref TextMeshProUGUI textMeshProUGUI)
        {
            if (currentBarLevel >= MaxLevel)
                return;

            PlaySpecialSfx(PickupItemAudioClip);

            var barCurrentValue = bar.GetCurrentValue() + expValue;
            if (barCurrentValue >= bar.GetCurrentMaxValue())
            {
                barCurrentValue -= nextLevelExpReq;
                bar.SetValue(barCurrentValue);
                nextLevelExpReq += NextLevelExpReqOffset;
                bar.SetMaxValue(nextLevelExpReq);
                ++currentBarLevel;
                switch (bar.tag)
                {
                    case PlayerExpUiTag:
                        playerLevel.text = currentBarLevel.ToString();
                        _currentMaxHealth += MaxHealth;
                        healthBar.SetMaxValue(_currentMaxHealth);
                        SetBarTextValue(ref playerHpUiValue, _currentHealth.ToString(), _currentMaxHealth.ToString());
                        break;
                    case WepExpUiTag:
                        _weaponDamage += WeaponBaseDamage;
                        break;
                }

                if (currentBarLevel >= MaxLevel)
                {
                    bar.SetValue(bar.GetCurrentMaxValue());
                    SetBarTextValue(ref textMeshProUGUI, MaxExpText, MaxExpText);
                    return;
                }
            }
            else
                bar.SetValue(barCurrentValue);

            SetBarTextValue(ref textMeshProUGUI, barCurrentValue.ToString(), bar.GetCurrentMaxValue().ToString());
        }