void EndRegen() { if (curRegenEffect != null) { curRegenEffect.End(); curRegenEffect = null; } waitTimer = regenWait; regening = false; }
void Update() { if (state == State.Alive) { if (!regening) { if (health < maxHealth) { if (waitTimer <= 0f) { // start regening StartRegen(); } else { // incriment timer waitTimer -= Time.deltaTime; } } } else { health += regenSpeed * Time.deltaTime; if (smokeEffect != null) { if (healthPercentage > 0.5f) { smokeEffect.End(); } } if (fireEffect != null) { if (healthPercentage > 0.25f) { fireEffect.End(); } } if (health > maxHealth) { EndRegen(); health = maxHealth; } } } if (isPlayer) { return; } if (state == State.Dying) { dyingTimer -= Time.deltaTime; if (dyingTimer <= 0f) { Decay(); } } if (state == State.Decaying) { decayTimer -= Time.deltaTime; if (decayTimer <= 0f) { Destroy(gameObject); } } }