using UnityEngine; using TMPro; using RR.Game2D.Core.Managers; namespace RR.Common.UI { public class TopPanelTextController : MonoBehaviour { [SerializeField] private int livesCount; [SerializeField] private int coinsCount; [SerializeField] private string levelNumber; [SerializeField] private TextMeshProUGUI livesText; [SerializeField] private TextMeshProUGUI coinsText; [SerializeField] private TextMeshProUGUI levelText; private void OnEnable() { if (GameManager.Instance != null) { GameManager.Instance.CoinsChanged += OnCoinsChanged; GameManager.Instance.LivesChanged += OnLivesChanged; } } private void OnDisable() { if (GameManager.Instance != null) { GameManager.Instance.CoinsChanged -= OnCoinsChanged; GameManager.Instance.LivesChanged -= OnLivesChanged; } } void Start() { livesCount = GameManager.Instance.Lives; coinsCount = GameManager.Instance.Coins; levelNumber = $"{GameManager.Instance.World}-{GameManager.Instance.Stage}"; livesText.text = livesCount.ToString(); coinsText.text = FormatCoins(coinsCount); levelText.text = levelNumber; } private void OnCoinsChanged(int newCoins) { if (coinsCount != newCoins) { coinsCount = newCoins; coinsText.text = FormatCoins(coinsCount); } } private void OnLivesChanged(int newLives) { livesText.text = newLives.ToString(); } private static string FormatCoins(int totalCoins) { return (totalCoins % 100).ToString(); } } }