Compare commits

...

3 Commits

Author SHA1 Message Date
0d1db5152e Refactored UI scripts. 2026-02-02 17:45:34 +05:30
d11c7dfe39 Pause panel bindings. 2026-02-02 17:37:11 +05:30
ec87b47d61 Added menu flow in game over popup. 2026-02-02 17:30:03 +05:30
9 changed files with 75 additions and 57 deletions

View File

@ -25,7 +25,6 @@ public class BotModeData
public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader
{ {
private GameplayManager gameplayManager; private GameplayManager gameplayManager;
private GameManager gameManager;
private PVPModeData pvpModeData; private PVPModeData pvpModeData;
private BotModeData botModeData; private BotModeData botModeData;
@ -34,6 +33,11 @@ public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader
get; private set; get; private set;
} }
public GameManager GameManager
{
get; private set;
}
public void Initialize() public void Initialize()
{ {
InterfaceManager.Instance.RegisterInterface<GameModeHandler>(this); InterfaceManager.Instance.RegisterInterface<GameModeHandler>(this);
@ -41,7 +45,7 @@ public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader
public void InitializeData() public void InitializeData()
{ {
gameManager = InterfaceManager.Instance.GetInterfaceInstance<GameManager>(); GameManager = InterfaceManager.Instance.GetInterfaceInstance<GameManager>();
gameplayManager = InterfaceManager.Instance.GetInterfaceInstance<GameplayManager>(); gameplayManager = InterfaceManager.Instance.GetInterfaceInstance<GameplayManager>();
} }
@ -70,7 +74,7 @@ public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader
public void OnGameRestarted() public void OnGameRestarted()
{ {
gameManager.OnGameStateChanged(GameState.InGame); GameManager.OnGameStateChanged(GameState.InGame);
gameplayManager.ResetGameRestartData(); gameplayManager.ResetGameRestartData();
switch (CurrentGameModeType) switch (CurrentGameModeType)
{ {

View File

@ -1,5 +1,3 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine; using UnityEngine;
public class UIManager : MonoBehaviour, IBase, IBootLoader, IDataLoader public class UIManager : MonoBehaviour, IBase, IBootLoader, IDataLoader

View File

@ -50,7 +50,7 @@ public class GameOverPopup : PopupBase
{ {
HidePopup(); HidePopup();
gameModeHandler = gameModeHandler == null ? InterfaceManager.Instance.GetInterfaceInstance<GameModeHandler>() : gameModeHandler; SetGameModeHandler();
gameModeHandler.OnGameRestarted(); gameModeHandler.OnGameRestarted();
} }
@ -62,5 +62,13 @@ public class GameOverPopup : PopupBase
public void OnMainMenuClicked() public void OnMainMenuClicked()
{ {
HidePopup(); HidePopup();
SetGameModeHandler();
gameModeHandler.GameManager.OnGameStateChanged(GameState.InMenu);
}
private void SetGameModeHandler()
{
gameModeHandler = gameModeHandler == null ? InterfaceManager.Instance.GetInterfaceInstance<GameModeHandler>() : gameModeHandler;
} }
} }

View File

@ -21,7 +21,7 @@ public class InstructionsPopup : PopupBase
private void OnClick_closeBtn() private void OnClick_closeBtn()
{ {
ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>(); ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>();
screenManager.ShowScreen(ScreenType.MenuScreen); screenManager.ShowScreen(ScreenType.MainMenuScreen);
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager; soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick); soundManager?.PlayGameSoundClip(SoundType.ButtonClick);

View File

@ -11,27 +11,28 @@ public class OptionsPopup : PopupBase
private void OnEnable() private void OnEnable()
{ {
closeBtn.onClick.AddListener(OnClick_closeBtn); closeBtn.onClick.AddListener(OnClick_CloseButton);
mainVolSlider.onValueChanged.AddListener(OnMainVolChanged); mainVolSlider.onValueChanged.AddListener(OnMainVolChanged);
musicVolSlider.onValueChanged.AddListener(OnBGMVolChanged); musicVolSlider.onValueChanged.AddListener(OnBGMVolChanged);
sfxVolSlider.onValueChanged.AddListener(OnSFXVolChanged); sfxVolSlider.onValueChanged.AddListener(OnSFXVolChanged);
InitializeSliders(); InitializeSliders();
} }
private void OnDisable() private void OnDisable()
{ {
closeBtn.onClick.RemoveListener(OnClick_closeBtn); closeBtn.onClick.RemoveListener(OnClick_CloseButton);
mainVolSlider.onValueChanged.RemoveListener(OnMainVolChanged); mainVolSlider.onValueChanged.RemoveListener(OnMainVolChanged);
musicVolSlider.onValueChanged.RemoveListener(OnBGMVolChanged); musicVolSlider.onValueChanged.RemoveListener(OnBGMVolChanged);
sfxVolSlider.onValueChanged.RemoveListener(OnSFXVolChanged); sfxVolSlider.onValueChanged.RemoveListener(OnSFXVolChanged);
} }
private void OnClick_closeBtn() private void OnClick_CloseButton()
{ {
ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>(); popupManager.HidePopup(PopupType);
screenManager.ShowScreen(ScreenType.MenuScreen);
Hide(); ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>();
screenManager.ShowScreen(ScreenType.MainMenuScreen);
} }
public void OnMainVolChanged(float value) public void OnMainVolChanged(float value)
@ -70,7 +71,6 @@ public class OptionsPopup : PopupBase
mainVolSlider.value = mainVol; mainVolSlider.value = mainVol;
musicVolSlider.value = bgmVol; musicVolSlider.value = bgmVol;
sfxVolSlider.value = sfxVol; sfxVolSlider.value = sfxVol;
} }
} }

View File

@ -8,42 +8,46 @@ public class PauseMenuPopup : PopupBase
[SerializeField] private Button playBtn; [SerializeField] private Button playBtn;
[SerializeField] private Button exitBtn; [SerializeField] private Button exitBtn;
SoundManager soundManager; private SoundManager soundManager;
private GameManager gameManager;
private void OnEnable() private void OnEnable()
{ {
playBtn.onClick.AddListener(OnClick_playBtn); playBtn.onClick.AddListener(OnClick_PlayButton);
homeBtn.onClick.AddListener(OnClick_homeBtn); homeBtn.onClick.AddListener(OnClick_HomeButton);
exitBtn.onClick.AddListener(OnClick_exitBtn); exitBtn.onClick.AddListener(OnClick_ExitButton);
} }
private void OnDisable() private void OnDisable()
{ {
playBtn.onClick.RemoveListener(OnClick_playBtn); playBtn.onClick.RemoveListener(OnClick_PlayButton);
homeBtn.onClick.RemoveListener(OnClick_homeBtn); homeBtn.onClick.RemoveListener(OnClick_HomeButton);
exitBtn.onClick.RemoveListener(OnClick_exitBtn); exitBtn.onClick.RemoveListener(OnClick_ExitButton);
} }
private void OnClick_playBtn() private void OnClick_PlayButton()
{ {
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
popupManager.HidePopup(popupType);
ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>(); ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>();
screenManager.ShowScreen(ScreenType.InGameHUDScreen); screenManager.ShowScreen(ScreenType.InGameHUDScreen);
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
Hide();
} }
private void OnClick_homeBtn() private void OnClick_HomeButton()
{ {
// TODO: Implement Home Button Functionality
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager; soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick); soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
popupManager.HidePopup(popupType);
gameManager = InterfaceManager.Instance?.GetInterfaceInstance<GameManager>();
gameManager.OnGameStateChanged(GameState.InMenu);
} }
private void OnClick_exitBtn() private void OnClick_ExitButton()
{ {
Application.Quit(); Application.Quit();
} }

View File

@ -117,12 +117,13 @@ public class PvAIModePopup : PopupBase
private void OnClick_CloseButton() private void OnClick_CloseButton()
{ {
popupManager.HidePopup(popupType);
screenManager = screenManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>() : screenManager; screenManager = screenManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>() : screenManager;
screenManager.ShowScreen(ScreenType.MenuScreen); screenManager.ShowScreen(ScreenType.MainMenuScreen);
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager; soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick); soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
Hide();
} }
private void OnColorSelected(PlayerType type, Button button) private void OnColorSelected(PlayerType type, Button button)

View File

@ -247,12 +247,12 @@ public class PvPModePopup : PopupBase
private void OnClick_CloseButton() private void OnClick_CloseButton()
{ {
popupManager.HidePopup(popupType);
screenManager = screenManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>() : screenManager; screenManager = screenManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>() : screenManager;
screenManager.ShowScreen(ScreenType.MenuScreen); screenManager.ShowScreen(ScreenType.MainMenuScreen);
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager; soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick); soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
Hide();
} }
} }

View File

@ -17,23 +17,23 @@ public class MenuHUDScreen : ScreenBase
private void OnEnable() private void OnEnable()
{ {
pvpModeBtn.onClick.AddListener(OnClick_pvpModeBtn); pvpModeBtn.onClick.AddListener(OnClick_PVPModeButton);
pvaiModeBtn.onClick.AddListener(OnClick_pvaiModeBtn); pvaiModeBtn.onClick.AddListener(OnClick_PvAIModeButton);
optionsBtn.onClick.AddListener(OnClick_optionsBtn); optionsBtn.onClick.AddListener(OnClick_OptionsButton);
instructionsBtn.onClick.AddListener(OnClick_instructionsBtn); instructionsBtn.onClick.AddListener(OnClick_InstructionsButton);
exitBtn.onClick.AddListener(OnClick_exitBtn); exitBtn.onClick.AddListener(OnClick_ExitButton);
} }
private void OnDisable() private void OnDisable()
{ {
pvpModeBtn.onClick.RemoveListener(OnClick_pvpModeBtn); pvpModeBtn.onClick.RemoveListener(OnClick_PVPModeButton);
pvaiModeBtn.onClick.RemoveListener(OnClick_pvaiModeBtn); pvaiModeBtn.onClick.RemoveListener(OnClick_PvAIModeButton);
optionsBtn.onClick.RemoveListener(OnClick_optionsBtn); optionsBtn.onClick.RemoveListener(OnClick_OptionsButton);
instructionsBtn.onClick.RemoveListener(OnClick_instructionsBtn); instructionsBtn.onClick.RemoveListener(OnClick_InstructionsButton);
exitBtn.onClick.RemoveListener(OnClick_exitBtn); exitBtn.onClick.RemoveListener(OnClick_ExitButton);
} }
private void OnClick_pvpModeBtn() private void OnClick_PVPModeButton()
{ {
popupManager = popupManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>() : popupManager; popupManager = popupManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>() : popupManager;
popupManager.ShowPopup(PopupType.PvPModePopup); popupManager.ShowPopup(PopupType.PvPModePopup);
@ -41,12 +41,10 @@ public class MenuHUDScreen : ScreenBase
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager; soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick); soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
Hide(); HideScreen();
// screenManager = screenManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>() : screenManager;
// screenManager.HideScreen(ScreenType.MenuHUDScreen);
} }
private void OnClick_pvaiModeBtn() private void OnClick_PvAIModeButton()
{ {
popupManager = popupManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>() : popupManager; popupManager = popupManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>() : popupManager;
popupManager.ShowPopup(PopupType.PvAIModePopup); popupManager.ShowPopup(PopupType.PvAIModePopup);
@ -54,10 +52,10 @@ public class MenuHUDScreen : ScreenBase
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager; soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick); soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
Hide(); HideScreen();
} }
private void OnClick_optionsBtn() private void OnClick_OptionsButton()
{ {
popupManager = popupManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>() : popupManager; popupManager = popupManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>() : popupManager;
popupManager.ShowPopup(PopupType.OptionsPopup); popupManager.ShowPopup(PopupType.OptionsPopup);
@ -65,10 +63,10 @@ public class MenuHUDScreen : ScreenBase
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager; soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick); soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
Hide(); HideScreen();
} }
private void OnClick_instructionsBtn() private void OnClick_InstructionsButton()
{ {
popupManager = popupManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>() : popupManager; popupManager = popupManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>() : popupManager;
popupManager.ShowPopup(PopupType.InstructionsPopup); popupManager.ShowPopup(PopupType.InstructionsPopup);
@ -76,10 +74,15 @@ public class MenuHUDScreen : ScreenBase
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager; soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick); soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
Hide(); HideScreen();
} }
private void OnClick_exitBtn() private void HideScreen()
{
screenManager.HideScreen(ScreenType);
}
private void OnClick_ExitButton()
{ {
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager; soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick); soundManager?.PlayGameSoundClip(SoundType.ButtonClick);