using TMPro; using UnityEngine; using UnityEngine.UI; public class UI_Manager : MonoBehaviour { public static UI_Manager Instance; [SerializeField] private TextMeshProUGUI playerCarryText; [SerializeField] private TextMeshProUGUI playerCashText; [SerializeField] private TextMeshProUGUI playerDepositText; [SerializeField] private TextMeshProUGUI teammate1CarryText; [SerializeField] private TextMeshProUGUI teammate2CarryText; [SerializeField] private TextMeshProUGUI enemy1CarryText; [SerializeField] private TextMeshProUGUI enemy1DepositText; [SerializeField] private TextMeshProUGUI enemy2CarryText; [SerializeField] private TextMeshProUGUI enemy2DepositText; [SerializeField] private TextMeshProUGUI actionTimerText; [SerializeField] private TextMeshProUGUI depositTimerText; [SerializeField] private TextMeshProUGUI objectiveText; [SerializeField] private Slider playerProgressSlider; [SerializeField] private Slider enemy1ProgressSlider; [SerializeField] private Slider enemy2ProgressSlider; [SerializeField] private CashPopupUI cashPopup; private void Awake() { Instance = this; HideDepositTimer(); } public void UpdatePlayerCarryCash(int amount) { playerCarryText.text = $"{amount:N0}"; } public void ShowCashPopup(int amount) { cashPopup?.Show(amount); } public void UpdatePlayerCash(int amount) { if (playerCashText != null) playerCashText.text = $"${amount:N0}"; } public void UpdateTeammate1Cash(int amount) { teammate1CarryText.text = $"${amount:N0}"; } public void UpdateTeammate2Cash(int amount) { teammate2CarryText.text = $"${amount:N0}"; } public void UpdatePlayerDepositCash(int amount) { playerDepositText.text = $"${amount:N0}/10,000"; playerProgressSlider.value = amount / 10000f; } public void UpdateEnemy1CarryCash(int amount) { enemy1CarryText.text = $"{amount:N0}"; } public void UpdateEnemy1DepositCash(int amount) { enemy1DepositText.text = $"${amount:N0}/10,000"; enemy1ProgressSlider.value = amount / 10000f; } public void UpdateEnemy2CarryCash(int amount) { enemy2CarryText.text = $"{amount:N0}"; } public void UpdateEnemy2DepositCash(int amount) { enemy2DepositText.text = $"${amount:N0}/10,000"; enemy2ProgressSlider.value = amount / 10000f; } public void UpdateDepositTimer(float timeLeft) { if (objectiveText != null) objectiveText.gameObject.SetActive(false); depositTimerText.text = "Depositing: " + Mathf.CeilToInt(timeLeft); } public void HideDepositTimer() { depositTimerText.text = ""; if (objectiveText != null) objectiveText.gameObject.SetActive(true); } public void UpdateActionTimer(string actionName, float timeLeft) { if (objectiveText != null) objectiveText.gameObject.SetActive(false); actionTimerText.text = actionName + ": " + Mathf.CeilToInt(timeLeft); } public void HideActionTimer() { actionTimerText.text = ""; if (objectiveText != null) objectiveText.gameObject.SetActive(true); } public void ShowInteractionPrompt(string message) { if (objectiveText != null) objectiveText.gameObject.SetActive(false); actionTimerText.text = message; } public void ShowOpenVaultObjective() { if (objectiveText != null) objectiveText.text = "-> Open a vault to collect cash."; } public void ShowDepositObjective() { if (objectiveText != null) objectiveText.text = "-> Deposit your cash at a deposit dtation."; } public void HideObjective() { if (objectiveText != null) objectiveText.text = ""; } }