Files
Cielonos/Assets/Scripts/MainGame/UI/PlayerUI/PlayerInfo/PlayerInfoUIArea.cs

55 lines
2.0 KiB
C#
Raw Normal View History

2025-12-08 05:27:53 -05:00
using System;
using Cielonos.MainGame;
2026-02-13 09:22:11 -05:00
using SLSUtilities.UI;
2025-12-08 05:27:53 -05:00
using TMPro;
using UnityEngine;
2026-02-13 09:22:11 -05:00
namespace Cielonos.MainGame.UI
2025-12-08 05:27:53 -05:00
{
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);
}
2026-01-03 18:19:39 -05:00
public void UpdateHealth(bool isInstant = false, Color blinkColor = default)
2025-12-08 05:27:53 -05:00
{
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);
2026-02-13 09:22:11 -05:00
//healthBar.UpdateFillColor(fillColor, isInstant);
2026-01-03 18:19:39 -05:00
if(blinkColor == default) blinkColor = Color.white;
if(!isInstant) healthBar.Blink(blinkColor);
2025-12-08 05:27:53 -05:00
int currentHealthInt = Mathf.CeilToInt(currentHealth);
int maximumHealthInt = Mathf.CeilToInt(maximumHealth);
if (ratio <= 0.2f)
{
healthText.text = $"<color=#{colorHex}>{currentHealthInt}</color> <size=18>/ {maximumHealthInt}</size>";
}
else
{
healthText.text = $"{currentHealthInt} <size=18>/ {maximumHealthInt}</size>";
}
}
2026-01-03 18:19:39 -05:00
public void UpdateEnergy(bool isInstant = false, Color blinkColor = default)
2025-12-08 05:27:53 -05:00
{
float currentEnergy = MainGameManager.Player.attributeSm["Energy"];
float maximumEnergy = MainGameManager.Player.attributeSm["MaximumEnergy"];
energyBar.UpdateFillImage(currentEnergy, maximumEnergy);
2026-01-03 18:19:39 -05:00
if(blinkColor == default) blinkColor = Color.white;
if(!isInstant) energyBar.Blink(blinkColor);
2025-12-08 05:27:53 -05:00
}
}
}