Files
2026-07-21 08:58:18 +05:30

162 lines
4.0 KiB
C#

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 = "";
}
}