Space-Smash-Out/Assets/Scripts/UI/BoostCapacityUI.cs

59 lines
1.3 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// HUD element which displays a ships remaining boost capacity.
/// </summary>
public class BoostCapacityUI : MonoBehaviour
{
[SerializeField] private Image fillImage;
[SerializeField] private Sprite fillSpriteGood;
[SerializeField] private Sprite fillSpriteWarn;
[SerializeField] private TextMeshProUGUI hint;
private float minBoostRatio = 0.5f;
/// <summary>
/// Ratio of capacity to max capacity under which the
/// boost capacity is considered critically low.
/// </summary>
/// <param name="minBoostRatio"></param>
public void SetMinBoostRatio(float minBoostRatio)
{
this.minBoostRatio = minBoostRatio;
}
public void SetPlayerName(Player p)
{
hint.SetText($"{p.playerName}\n{p.character.ShipName}");
}
public void SetIsOut(Player p)
{
hint.SetText($"{p.playerName}\nOUT!");
UpdateFill(0);
}
public void SetIsIn(Player p)
{
SetPlayerName(p);
//UpdateFill(1);
}
/// <summary>
/// Updates the color and fill of the capacity meter.
/// </summary>
/// <param name="fill">Fill percentage</param>
public void UpdateFill(float fill)
{
fillImage.fillAmount = fill;
if (fill <= minBoostRatio)
{
fillImage.sprite = fillSpriteWarn;
}
else
{
fillImage.sprite = fillSpriteGood;
}
}
}