From 96e544001f7f60a72c796960b489c7d0d2e3e0c6 Mon Sep 17 00:00:00 2001 From: Ashby Issac Date: Fri, 6 Feb 2026 19:26:29 +0530 Subject: [PATCH] Added timer in UI. --- Assets/Scripts/Gameplay/GameplayManager.cs | 12 ++++++--- .../Scripts/Gameplay/Player/PlayerGameData.cs | 8 ++++++ Assets/Scripts/Input/TimerSystem.cs | 6 ++--- Assets/Scripts/UI/Managers/UIManager.cs | 7 ++++- Assets/Scripts/UI/Pages/Screens/GameHUDS.cs | 27 ++++++------------- 5 files changed, 34 insertions(+), 26 deletions(-) diff --git a/Assets/Scripts/Gameplay/GameplayManager.cs b/Assets/Scripts/Gameplay/GameplayManager.cs index c12b5c6..3351c42 100644 --- a/Assets/Scripts/Gameplay/GameplayManager.cs +++ b/Assets/Scripts/Gameplay/GameplayManager.cs @@ -250,11 +250,16 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader { bool isBotTurn = botTypesInGame.Contains(currentPlayerTypeTurn); SetCanRollDiceForUser(!isBotTurn); - if (isBotTurn) + if (isBotTurn) + { + uIManager.UpdatePlayerTurnText(currentPlayerTypeTurn); return; + } } else SetCanRollDiceForUser(true); + + uIManager.UpdatePlayerTurnText(currentPlayerTypeTurn, currentPlayerTurnMaxTime); if (currentPlayerTurnTimer == null) currentPlayerTurnTimer = new TimerSystem(); @@ -263,6 +268,9 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader { Debug.Log($"currentPlayerTurnTimer: HandleDiceViewForUser"); diceRollHandler.HandleDiceViewForUser(); + }, inProgress: (remTime) => + { + uIManager.UpdatePlayerTurnText(currentPlayerTypeTurn, currentPlayerTurnMaxTime - (int)remTime); }); } @@ -287,7 +295,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader public void InitCurrentGamePlayerInfo() { UpdateCurrentPlayerTurn(allPlayerTypes[currentPlayerTurnIndex]); - uIManager.UpdatePlayerTurnText(currentPlayerTypeTurn); Debug.Log($"currentPlayerTypeTurn: {currentPlayerTypeTurn}"); #if UNITY_EDITOR @@ -860,7 +867,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader soundManager.PlayGameSoundClip(SoundType.Turn); UpdateCurrentPlayerTurn(allPlayerTypes[currentPlayerTurnIndex]); - uIManager.UpdatePlayerTurnText(currentPlayerTypeTurn); diceSixRollCounter = 0; diceText.text = $"{0}"; diff --git a/Assets/Scripts/Gameplay/Player/PlayerGameData.cs b/Assets/Scripts/Gameplay/Player/PlayerGameData.cs index 94094ad..92a5954 100644 --- a/Assets/Scripts/Gameplay/Player/PlayerGameData.cs +++ b/Assets/Scripts/Gameplay/Player/PlayerGameData.cs @@ -9,6 +9,14 @@ public enum PlayerType Player4 = 3 } +public enum PlayerColorType +{ + Red = 0, + Blue = 1, + Grey = 2, + Green = 3 +} + [System.Serializable] public class PlayerGameData { diff --git a/Assets/Scripts/Input/TimerSystem.cs b/Assets/Scripts/Input/TimerSystem.cs index 04ff60f..6641422 100644 --- a/Assets/Scripts/Input/TimerSystem.cs +++ b/Assets/Scripts/Input/TimerSystem.cs @@ -6,7 +6,7 @@ public class TimerSystem private float maxTimeAvail; private Action onTimerComplete = null; - private Action onTimerInProgress = null; + private Action onTimerInProgress = null; public bool IsTimerComplete { get; @@ -24,7 +24,7 @@ public class TimerSystem IsTimerComplete = false; } - public void Init(float maxTimeAvail, Action onComplete = null, Action inProgress = null, Action onStart = null) + public void Init(float maxTimeAvail, Action onComplete = null, Action inProgress = null, Action onStart = null) { timeRem = 0; IsTimerComplete = false; @@ -40,7 +40,7 @@ public class TimerSystem if (timeRem < maxTimeAvail) { timeRem += deltaTime; - onTimerInProgress?.Invoke(); + onTimerInProgress?.Invoke(timeRem); } else { diff --git a/Assets/Scripts/UI/Managers/UIManager.cs b/Assets/Scripts/UI/Managers/UIManager.cs index 3081568..1a4d66a 100644 --- a/Assets/Scripts/UI/Managers/UIManager.cs +++ b/Assets/Scripts/UI/Managers/UIManager.cs @@ -44,9 +44,14 @@ public class UIManager : MonoBehaviour, IBase, IBootLoader, IDataLoader screenManager.ShowScreen(ScreenType.InGameHUDScreen); } + public void UpdatePlayerTurnText(PlayerType type, int remSec) + { + screenManager.GetScreen(ScreenType.InGameHUDScreen).UpdatePlayerTurnText(type, remSec); + } + public void UpdatePlayerTurnText(PlayerType type) { - screenManager.GetScreen(ScreenType.InGameHUDScreen).UpdatePlayerTurnText(type); + screenManager.GetScreen(ScreenType.InGameHUDScreen).UpdateBotTurnText(type); } public void OnGameOver() diff --git a/Assets/Scripts/UI/Pages/Screens/GameHUDS.cs b/Assets/Scripts/UI/Pages/Screens/GameHUDS.cs index 5332564..d61d8e2 100644 --- a/Assets/Scripts/UI/Pages/Screens/GameHUDS.cs +++ b/Assets/Scripts/UI/Pages/Screens/GameHUDS.cs @@ -53,26 +53,15 @@ public class GameHUDS : ScreenBase uiManager = uiManager == null ? InterfaceManager.Instance?.GetInterfaceInstance() : uiManager; } - public void UpdatePlayerTurnText(PlayerType playerType) + public void UpdatePlayerTurnText(PlayerType playerType, int remSec) { Debug.Log($"GameHUDS: UpdatePlayerTurnText: {playerType}"); - switch (playerType) - { - case PlayerType.Player1: - playerTurnText.text = "Turn : Red"; - break; - case PlayerType.Player2: - playerTurnText.text = "Turn : Blue"; - break; - case PlayerType.Player3: - playerTurnText.text = "Turn : Grey"; - break; - case PlayerType.Player4: - playerTurnText.text = "Turn : Green"; - break; - default: - playerTurnText.text = "Turn"; - break; - } + playerTurnText.text = $"Turn : {(PlayerColorType)((int)playerType)} ({remSec})"; + } + + public void UpdateBotTurnText(PlayerType playerType) + { + Debug.Log($"GameHUDS: UpdatePlayerTurnText: {playerType}"); + playerTurnText.text = $"Turn : {(PlayerColorType)((int)playerType)}"; } }