private void RegenStamina() { if (Time.time >= currentTimeToStartStaminaRegen && currentStamina < maxStamina && !CoroutineManager.CheckIfCoroutineExists("RegenStaminaCoroutine")) { CoroutineManager.AddCoroutine(RegenStaminaCoroutine(), "RegenStaminaCoroutine"); } }
public void SpendStamina(float percentOfStaminaToSpent, bool imediate) { if (CoroutineManager.CheckIfCoroutineExists("RegenStaminaCoroutine")) { CoroutineManager.DeleteCoroutine("RegenStaminaCoroutine"); } if (imediate) { currentStamina -= maxStamina * percentOfStaminaToSpent / 100; } else if (Time.time >= timeTrackerForSpendingStamina) { timeTrackerForSpendingStamina = Time.time + Time.fixedDeltaTime; currentStamina -= maxStamina * percentOfStaminaToSpent / 100 * Time.fixedDeltaTime; } currentStamina = currentStamina <= 0 ? 0 : currentStamina; staminaBar.value = currentStamina; currentTimeToStartStaminaRegen = Time.time + timeToStartStaminaRegen; }