using TMPro; using UnityEngine; using UnityEngine.UI; /// /// HUD element which displays a ships remaining boost capacity. /// 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; /// /// Ratio of capacity to max capacity under which the /// boost capacity is considered critically low. /// /// 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); } /// /// Updates the color and fill of the capacity meter. /// /// Fill percentage public void UpdateFill(float fill) { fillImage.fillAmount = fill; if (fill <= minBoostRatio) { fillImage.sprite = fillSpriteWarn; } else { fillImage.sprite = fillSpriteGood; } } }