private void UpdateUI() { int heartsToRender = hp.MaxHP; int currentHp = hp.CurrentHP; bool isRegen = !hp.IsInCombatMode(); for (int i = 0; i < hearts.Count; i++) { HeartUI heartUI = hearts[i]; if (i < heartsToRender) { heartUI.Show(); if (i < currentHp) { heartUI.PlayFull(); } else if (isRegen) { heartUI.PlayRegen(); } else { heartUI.PlayEmpty(); } } else { heartUI.Hide(); } } renderedCurrentHP = currentHp; renderedMaxHP = heartsToRender; }
private void UpdateUIAfterDamage() { int currentHp = hp.CurrentHP; int maxHp = hp.MaxHP; int hpLost = renderedCurrentHP - currentHp; for (int i = 0; i < hpLost; i++) { int heartIndex = renderedCurrentHP - i - 1; HeartUI heartUI = hearts[heartIndex]; heartUI.PlayLost(); } int emptyHearts = renderedMaxHP - renderedCurrentHP; for (int i = 0; i < emptyHearts; i++) { int heartIndex = renderedMaxHP - i - 1; HeartUI heartUI = hearts[heartIndex]; heartUI.PlayEmpty(); } renderedCurrentHP = currentHp; renderedMaxHP = maxHp; }