using UnityEngine; public class UIManager : MonoBehaviour, IBase, IBootLoader, IDataLoader { private ScreenManager screenManager; private PopupManager popupManager; private GameplayManager gameplayManager; public GameManager GameManager { get; private set; } public void Initialize() { InterfaceManager.Instance.RegisterInterface(this); } public void InitializeData() { GameManager = InterfaceManager.Instance.GetInterfaceInstance(); popupManager = InterfaceManager.Instance.GetInterfaceInstance(); gameplayManager = InterfaceManager.Instance.GetInterfaceInstance(); } public void OnDiceViewInteracted() { gameplayManager.OnDiceInteracted(); } public void OnInMenuScreen() { screenManager = screenManager == null ? InterfaceManager.Instance.GetInterfaceInstance() : screenManager; screenManager.HideAllScreens(); screenManager.ShowScreen(ScreenType.MainMenuScreen); screenManager.ShowScreen(ScreenType.MenuScreen); } public void OnInGameScreen() { screenManager.HideAllScreens(); screenManager.ShowScreen(ScreenType.GameScreen); 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).UpdateBotTurnText(type); } public void UpdatePlayerTurnIcon(PlayerType type) { screenManager.GetScreen(ScreenType.InGameHUDScreen).UpdatePlayerTurnIcon(type); } public void OnGameOver() { screenManager.HideAllScreens(); screenManager.ShowScreen(ScreenType.GameOverScreen); popupManager.GetPopup(PopupType.GameOverPopup).InitData(gameplayManager.PlayerDatas); popupManager.ShowPopup(PopupType.GameOverPopup); } }