using UnityEngine; public class UIManager : MonoBehaviour, IBase, IBootLoader, IDataLoader { private GameplayManager gameplayManager; private ScreenManager screenManager; private PopupManager popupManager; public void Initialize() { InterfaceManager.Instance.RegisterInterface(this); } public void InitializeData() { gameplayManager = InterfaceManager.Instance.GetInterfaceInstance(); popupManager = 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) { screenManager.GetScreen(ScreenType.InGameHUDScreen).UpdatePlayerTurnText(type); } public void OnGameOver() { screenManager.HideAllScreens(); screenManager.ShowScreen(ScreenType.GameOverScreen); popupManager.GetPopup(PopupType.GameOverPopup).InitData(gameplayManager.PlayerDatas); popupManager.ShowPopup(PopupType.GameOverPopup); } }