Ludo-3D/Assets/Scripts/UI/Pages/Screens/GameHUDScreen.cs
Ashby Issac 6e420e0282 Added game icon in gameplay.
Addition: Added game icon for recognising each player's turn.

Fix: Added null checks for users timer system.
2026-02-23 16:35:26 +05:30

77 lines
2.3 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class GameHUDScreen : ScreenBase
{
[SerializeField] private Image playerTurnIcon;
[Header("Buttons")]
[SerializeField] private Button diceBtn;
[SerializeField] private Button pauseBtn;
[Header("Text")]
[SerializeField] private TMP_Text diceCountText;
[SerializeField] private TMP_Text playerTurnText;
[SerializeField] private Sprite[] turnSprites;
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;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
screenManager.HideScreen(screenType);
PopupManager popupManager = InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>();
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>() : 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)}";
}
public void UpdatePlayerTurnIcon(PlayerType playerType)
{
playerTurnIcon.sprite = turnSprites[(int)playerType];
}
}