using UnityEngine; using UnityEngine.UI; using TMPro; public class GameHUDScreen : ScreenBase { [Header("Buttons")] [SerializeField] private Button diceBtn; [SerializeField] private Button pauseBtn; [Header("Text")] [SerializeField] private TMP_Text diceCountText; [SerializeField] private TMP_Text playerTurnText; private SoundManager soundManager; private UIManager uiManager; private void OnEnable() { pauseBtn.onClick.AddListener(OnClick_PauseButton); diceBtn.onClick.AddListener(OnClick_DiceButton); } private void OnDisable() { pauseBtn.onClick.RemoveListener(OnClick_PauseButton); diceBtn.onClick.RemoveListener(OnClick_DiceButton); } private void OnClick_PauseButton() { soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance() : soundManager; soundManager?.PlayGameSoundClip(SoundType.ButtonClick); screenManager.HideScreen(screenType); PopupManager popupManager = InterfaceManager.Instance?.GetInterfaceInstance(); popupManager.ShowPopup(PopupType.PauseMenuPopup); SetUIManager(); uiManager.GameManager.SetGameState(GameState.IsPaused); } private void OnClick_DiceButton() { SetUIManager(); uiManager.OnDiceViewInteracted(); } private void SetUIManager() { uiManager = uiManager == null ? InterfaceManager.Instance?.GetInterfaceInstance() : uiManager; } public void UpdatePlayerTurnText(PlayerType playerType, int remSec) { Debug.Log($"UpdateTurnText: Player Turn :: {(PlayerColorType)((int)playerType)} ({remSec})"); playerTurnText.text = $"Turn : {(PlayerColorType)((int)playerType)} ({remSec})"; } public void UpdateBotTurnText(PlayerType playerType) { Debug.Log($"UpdateTurnText: Bot Turn :: {(PlayerColorType)((int)playerType)}"); playerTurnText.text = $"Turn : {(PlayerColorType)((int)playerType)}"; } }