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);
}
}
}