using UnityEngine; using TMPro; using System; public class RoundTimer : MonoBehaviour { [Header("UI Reference")] public TextMeshProUGUI timerText; [Header("Settings")] public float startTimeSeconds = 45f; public bool autoStart = true; public event Action OnTimerEnded; private float timeRemaining; private bool running; void OnEnable() { // hook to ScoreManager if (ClawScoreManager.Instance != null) ClawScoreManager.Instance.OnTimeAdded += AddTime; } void OnDisable() { if (ClawScoreManager.Instance != null) ClawScoreManager.Instance.OnTimeAdded -= AddTime; } void Start() { if (autoStart) StartTimer(); } void Update() { if (!running) return; timeRemaining -= Time.deltaTime; if (timeRemaining <= 0f) { timeRemaining = 0f; running = false; OnTimerEnded?.Invoke(); } UpdateUI(); } public void StartTimer() { timeRemaining = startTimeSeconds; running = true; UpdateUI(); } public void StopTimer() { running = false; } public void AddTime(float seconds) { Debug.Log("Time added: "+seconds); timeRemaining += seconds; } private void UpdateUI() { if (!timerText) return; int minutes = Mathf.FloorToInt(timeRemaining / 60f); int seconds = Mathf.FloorToInt(timeRemaining % 60f); timerText.text = $"{minutes:00}:{seconds:00}"; } }