At the moment, my code only starts shield regeneration after health regeneration is finished. How do I make it so shield regeneration can start while health is still regenerating?
public IEnumerator RegenHealth()
{
isRegen = true;
if (currentHealth < maxHealth && currentShields < maxShields)
{
yield return new WaitForSeconds(healthRegenDelay);
Debug.Log("Just started regenning Health ");
while (currentHealth < maxHealth)
{
Debug.Log("Health Regenned: " + (currentHealth + healthRegenRate * Time.deltaTime));
currentHealth += healthRegenRate * Time.deltaTime;
yield return new WaitForEndOfFrame();
}
yield return new WaitForSeconds(shieldRegenDelay);
Debug.Log("Just started regenning Shield ");
while (currentShields < maxShields)
{
Debug.Log("Shield Regenned: " + (currentShields + shieldRegenRate * Time.deltaTime));
currentShields += shieldRegenRate * Time.deltaTime;
yield return new WaitForEndOfFrame();
}
}
if (currentHealth == maxHealth && currentShields < maxShields)
{
yield return new WaitForSeconds(shieldRegenDelay);
Debug.Log("Just started regenning Shield ");
while (currentShields < maxShields)
{
Debug.Log("Shield Regenned: " + (currentShields + shieldRegenRate * Time.deltaTime));
currentShields += shieldRegenRate * Time.deltaTime;
yield return new WaitForEndOfFrame();
}
}
isRegen = false;
}