using System; using Cielonos.MainGame; using SLSUtilities.UI; using TMPro; using UnityEngine; namespace Cielonos.MainGame.UI { public class PlayerInfoUIArea : UIElementBase { public TMP_Text nameText; public TMP_Text healthText; public PlayerHealthBar healthBar; public PlayerEnergyBar energyBar; private void Start() { UpdateHealth(true); UpdateEnergy(true); } public void UpdateHealth(bool isInstant = false, Color blinkColor = default) { float currentHealth = MainGameManager.Player.attributeSm["Health"]; float maximumHealth = MainGameManager.Player.attributeSm["MaximumHealth"]; float ratio = currentHealth / maximumHealth; Color fillColor = healthBar.GetTargetColor(ratio); string colorHex = ColorUtility.ToHtmlStringRGB(fillColor); healthBar.UpdateFillImage(currentHealth, maximumHealth); //healthBar.UpdateFillColor(fillColor, isInstant); if(blinkColor == default) blinkColor = Color.white; if(!isInstant) healthBar.Blink(blinkColor); int currentHealthInt = Mathf.CeilToInt(currentHealth); int maximumHealthInt = Mathf.CeilToInt(maximumHealth); if (ratio <= 0.2f) { healthText.text = $"{currentHealthInt} / {maximumHealthInt}"; } else { healthText.text = $"{currentHealthInt} / {maximumHealthInt}"; } } public void UpdateEnergy(bool isInstant = false, Color blinkColor = default) { float currentEnergy = MainGameManager.Player.attributeSm["Energy"]; float maximumEnergy = MainGameManager.Player.attributeSm["MaximumEnergy"]; energyBar.UpdateFillImage(currentEnergy, maximumEnergy); if(blinkColor == default) blinkColor = Color.white; if(!isInstant) energyBar.Blink(blinkColor); } } }