Handled pause logic + fixed a bug found while testing the changes.
This commit is contained in:
parent
84c48d4adc
commit
ae15daed75
@ -8460,9 +8460,11 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 0483b263e22fc433caab31141efbe319, type: 3}
|
m_Script: {fileID: 11500000, guid: 0483b263e22fc433caab31141efbe319, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
isDebugTest: 0
|
isDebugAITest: 0
|
||||||
|
isDebugPlayerTest: 0
|
||||||
diceRollHandler: {fileID: 1013177415}
|
diceRollHandler: {fileID: 1013177415}
|
||||||
diceValue: 0
|
diceValue: 0
|
||||||
|
botDiceRollDelay: 0.25
|
||||||
maxDiceSixRollCounter: 2
|
maxDiceSixRollCounter: 2
|
||||||
totalStepsForCharacter: 57
|
totalStepsForCharacter: 57
|
||||||
diceText: {fileID: 953941044}
|
diceText: {fileID: 953941044}
|
||||||
@ -11557,7 +11559,7 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
diceView: {fileID: 1619592888}
|
diceView: {fileID: 1619592888}
|
||||||
diceTestValue: 1
|
diceTestValue: 0
|
||||||
--- !u!4 &1039618837 stripped
|
--- !u!4 &1039618837 stripped
|
||||||
Transform:
|
Transform:
|
||||||
m_CorrespondingSourceObject: {fileID: 5672526856521419272, guid: 4dc45edb05c8f4268aebcd5e9cbac783, type: 3}
|
m_CorrespondingSourceObject: {fileID: 5672526856521419272, guid: 4dc45edb05c8f4268aebcd5e9cbac783, type: 3}
|
||||||
@ -15159,6 +15161,7 @@ MonoBehaviour:
|
|||||||
- {fileID: 1107252688}
|
- {fileID: 1107252688}
|
||||||
- {fileID: 1406544794}
|
- {fileID: 1406544794}
|
||||||
- {fileID: 884011400}
|
- {fileID: 884011400}
|
||||||
|
enableLogs: 0
|
||||||
--- !u!4 &1335794571
|
--- !u!4 &1335794571
|
||||||
Transform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -27893,7 +27896,7 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_Sprite: {fileID: 457192420, guid: c657b4c04be754166a725c1b25fbea7d, type: 3}
|
m_Sprite: {fileID: 652690593, guid: 1467c87c1b60f4707b78abdf2804ec02, type: 3}
|
||||||
m_Type: 0
|
m_Type: 0
|
||||||
m_PreserveAspect: 1
|
m_PreserveAspect: 1
|
||||||
m_FillCenter: 1
|
m_FillCenter: 1
|
||||||
|
|||||||
@ -24,7 +24,11 @@ public class BotModeData
|
|||||||
|
|
||||||
public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
||||||
{
|
{
|
||||||
private GameplayManager gameplayManager;
|
public GameplayManager GameplayManager
|
||||||
|
{
|
||||||
|
get; private set;
|
||||||
|
}
|
||||||
|
|
||||||
private PVPModeData pvpModeData;
|
private PVPModeData pvpModeData;
|
||||||
private BotModeData botModeData;
|
private BotModeData botModeData;
|
||||||
|
|
||||||
@ -46,7 +50,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>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InitPVPModeData(List<PlayerType> types, List<string> names)
|
public void InitPVPModeData(List<PlayerType> types, List<string> names)
|
||||||
@ -57,7 +61,7 @@ public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
};
|
};
|
||||||
|
|
||||||
CurrentGameModeType = GameModeType.PVP;
|
CurrentGameModeType = GameModeType.PVP;
|
||||||
gameplayManager.InitPlayerTypesForPVP(types, names);
|
GameplayManager.InitPlayerTypesForPVP(types, names);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InitBotModeData(PlayerData playerData, int botCount)
|
public void InitBotModeData(PlayerData playerData, int botCount)
|
||||||
@ -69,7 +73,7 @@ public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
};
|
};
|
||||||
|
|
||||||
CurrentGameModeType = GameModeType.Bot;
|
CurrentGameModeType = GameModeType.Bot;
|
||||||
gameplayManager.InitPlayerTypesForBotMatch(playerData, botCount);
|
GameplayManager.InitPlayerTypesForBotMatch(playerData, botCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnGameRestarted()
|
public void OnGameRestarted()
|
||||||
|
|||||||
@ -61,7 +61,11 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
get; private set;
|
get; private set;
|
||||||
}
|
}
|
||||||
private UIManager uIManager;
|
private UIManager uIManager;
|
||||||
private GameManager gameManager;
|
public GameManager GameManager
|
||||||
|
{
|
||||||
|
get; private set;
|
||||||
|
}
|
||||||
|
|
||||||
private GameModeHandler gameModeHandler;
|
private GameModeHandler gameModeHandler;
|
||||||
|
|
||||||
private int diceRolledValue;
|
private int diceRolledValue;
|
||||||
@ -70,7 +74,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
private int diceSixRollCounter = 0;
|
private int diceSixRollCounter = 0;
|
||||||
|
|
||||||
private List<PlayerPawn> availPlayers = new List<PlayerPawn>();
|
private List<PlayerPawn> availPlayers = new List<PlayerPawn>();
|
||||||
private bool canSwitchPlayer = false;
|
private bool canSwitchPlayer = true;
|
||||||
|
|
||||||
public bool CanRollDiceForUser
|
public bool CanRollDiceForUser
|
||||||
{
|
{
|
||||||
@ -85,6 +89,8 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
public List<PlayerData> PlayerDatas => playerDatas;
|
public List<PlayerData> PlayerDatas => playerDatas;
|
||||||
public List<PlayerType> PlayerTypesCollection => allPlayerTypes;
|
public List<PlayerType> PlayerTypesCollection => allPlayerTypes;
|
||||||
|
|
||||||
|
public Action OnGameResumed = null;
|
||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
{
|
{
|
||||||
InterfaceManager.Instance?.RegisterInterface<GameplayManager>(this);
|
InterfaceManager.Instance?.RegisterInterface<GameplayManager>(this);
|
||||||
@ -95,7 +101,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
{
|
{
|
||||||
TilesManager = InterfaceManager.Instance.GetInterfaceInstance<TilesManager>();
|
TilesManager = InterfaceManager.Instance.GetInterfaceInstance<TilesManager>();
|
||||||
uIManager = InterfaceManager.Instance.GetInterfaceInstance<UIManager>();
|
uIManager = InterfaceManager.Instance.GetInterfaceInstance<UIManager>();
|
||||||
gameManager = InterfaceManager.Instance.GetInterfaceInstance<GameManager>();
|
GameManager = InterfaceManager.Instance.GetInterfaceInstance<GameManager>();
|
||||||
gameModeHandler = InterfaceManager.Instance.GetInterfaceInstance<GameModeHandler>();
|
gameModeHandler = InterfaceManager.Instance.GetInterfaceInstance<GameModeHandler>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -347,23 +353,18 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
UpdateActivePlayersAndSetDisplay(true);
|
UpdateActivePlayersAndSetDisplay(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (availPlayers.Count() < 1 && CanRollDiceAgain) // got a 6 roll value
|
if (CanRollDiceAgain) // got a 6 roll value
|
||||||
{
|
{
|
||||||
pawn = playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Values.FirstOrDefault(pawn => pawn.GetPlayerState() == PlayerState.InHome);
|
pawn = playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Values.FirstOrDefault(pawn => pawn.GetPlayerState() == PlayerState.InHome);
|
||||||
|
|
||||||
|
if (pawn != null)
|
||||||
|
{
|
||||||
Debug.Log($"SelectedPawn: {pawn.name}");
|
Debug.Log($"SelectedPawn: {pawn.name}");
|
||||||
OnPawnSelected(pawn);
|
OnPawnSelected(pawn);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO :: Double check
|
|
||||||
foreach (var key in botPawnsDictForCurrentPlayer.Keys)
|
|
||||||
{
|
|
||||||
Debug.Log($"b :: botPawnsDictForCurrentPlayer[key]: {key}, {botPawnsDictForCurrentPlayer[key]}");
|
|
||||||
// botPawnsDictForCurrentPlayer[key] = BotMove.NoMoves;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Debug.Log($"Before Iterating");
|
Debug.Log($"Before Iterating");
|
||||||
foreach (var playerPawn in availPlayers)
|
foreach (var playerPawn in availPlayers)
|
||||||
{
|
{
|
||||||
@ -518,7 +519,13 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
availPlayers = new List<PlayerPawn>();
|
availPlayers = new List<PlayerPawn>();
|
||||||
|
|
||||||
if (!CanRollDiceAgain)
|
if (!CanRollDiceAgain)
|
||||||
|
{
|
||||||
UpdateActivePlayersAndSetDisplay(true);
|
UpdateActivePlayersAndSetDisplay(true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
InitActivePlayers();
|
||||||
|
}
|
||||||
|
|
||||||
if (rolledVal == Ludo_3D_Constants.Max_Dice_Rolls)
|
if (rolledVal == Ludo_3D_Constants.Max_Dice_Rolls)
|
||||||
{
|
{
|
||||||
@ -571,6 +578,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
{
|
{
|
||||||
indexesToRemove.Add(i);
|
indexesToRemove.Add(i);
|
||||||
availPlayers[i].SetPlayerSelectionState(false);
|
availPlayers[i].SetPlayerSelectionState(false);
|
||||||
|
availPlayers[i].ShowPlayerCountCanvas(false);
|
||||||
customAvailPlayers--;
|
customAvailPlayers--;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -593,13 +601,17 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateActivePlayersAndSetDisplay(bool state)
|
private void UpdateActivePlayersAndSetDisplay(bool state)
|
||||||
|
{
|
||||||
|
InitActivePlayers();
|
||||||
|
SetDisplayCountForAllAvailPlayers(state);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InitActivePlayers()
|
||||||
{
|
{
|
||||||
availPlayers = playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Values.Select(pawn => pawn)
|
availPlayers = playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Values.Select(pawn => pawn)
|
||||||
.Where(pawn => pawn.GetPlayerState() == PlayerState.InSafeZone ||
|
.Where(pawn => pawn.GetPlayerState() == PlayerState.InSafeZone ||
|
||||||
pawn.GetPlayerState() == PlayerState.Moving ||
|
pawn.GetPlayerState() == PlayerState.Moving ||
|
||||||
pawn.GetPlayerState() == PlayerState.InFinishingPath).ToList();
|
pawn.GetPlayerState() == PlayerState.InFinishingPath).ToList();
|
||||||
|
|
||||||
SetDisplayCountForAllAvailPlayers(state);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool AreAllPawnsInFinishingPath()
|
private bool AreAllPawnsInFinishingPath()
|
||||||
@ -653,7 +665,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
PlayerGameData playerGameData = playerGameDatasDict[currentPlayerTypeTurn];
|
PlayerGameData playerGameData = playerGameDatasDict[currentPlayerTypeTurn];
|
||||||
Debug.Log($"playerPawn.GetPlayerState(): {selectedPawn.GetPlayerState()}");
|
Debug.Log($"playerPawn.GetPlayerState(): {selectedPawn.GetPlayerState()}");
|
||||||
|
|
||||||
|
|
||||||
if (selectedPawn.GetPlayerState() == PlayerState.InHome)
|
if (selectedPawn.GetPlayerState() == PlayerState.InHome)
|
||||||
{
|
{
|
||||||
Tile targetTile = TilesManager.RetrieveTileBasedOnIndex(playerGameData.startIndex);
|
Tile targetTile = TilesManager.RetrieveTileBasedOnIndex(playerGameData.startIndex);
|
||||||
@ -721,6 +732,13 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
foreach (var pawn in playerPawnsTest)
|
foreach (var pawn in playerPawnsTest)
|
||||||
pawn.MoveToCustomTilePosition(currentSittingSafeTile.CenterPlacementPosition);
|
pawn.MoveToCustomTilePosition(currentSittingSafeTile.CenterPlacementPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (currentSittingSafeTile.ContainsPlayerType(currentPlayerTypeTurn))
|
||||||
|
{
|
||||||
|
var playerPawns = currentSittingSafeTile.GetPlayerPawns(currentPlayerTypeTurn);
|
||||||
|
foreach (var pawn in playerPawns)
|
||||||
|
ShowUpdatedPlayerCountOnTile(pawn);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -867,14 +885,14 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
{
|
{
|
||||||
// MoveThroughTiles(playerPawn, index, targetIndex);
|
// MoveThroughTiles(playerPawn, index, targetIndex);
|
||||||
Debug.Log($"TargetIdx: {targetIndex - index}");
|
Debug.Log($"TargetIdx: {targetIndex - index}");
|
||||||
MoveThroughFinishingPath(playerPawn, 0, targetIndex - index);
|
CheckForGamePause(() => MoveThroughFinishingPath(playerPawn, 0, targetIndex - index));
|
||||||
}
|
}
|
||||||
else if (nextTileIndex <= targetIndex)
|
else if (nextTileIndex <= targetIndex)
|
||||||
{
|
{
|
||||||
if (nextTileIndex == 0)
|
if (nextTileIndex == 0)
|
||||||
targetIndex = (targetIndex - playerPawn.CurrentTileIndex) - 1;
|
targetIndex = (targetIndex - playerPawn.CurrentTileIndex) - 1;
|
||||||
|
|
||||||
MoveThroughTiles(playerPawn, nextTileIndex, targetIndex);
|
CheckForGamePause(() => MoveThroughTiles(playerPawn, nextTileIndex, targetIndex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -938,6 +956,20 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
index);
|
index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void CheckForGamePause(Action onComplete)
|
||||||
|
{
|
||||||
|
Debug.Log($"CheckForGamePause: {GameManager.CurrentGameState == GameState.IsPaused}");
|
||||||
|
if (gameModeHandler.CurrentGameModeType == GameModeType.Bot && !botTypesInGame.Contains(currentPlayerTypeTurn)
|
||||||
|
&& GameManager.CurrentGameState == GameState.IsPaused)
|
||||||
|
{
|
||||||
|
OnGameResumed = onComplete;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
onComplete?.Invoke();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void MoveThroughFinishingPath(PlayerPawn playerPawn, int index, int targetIndex)
|
private void MoveThroughFinishingPath(PlayerPawn playerPawn, int index, int targetIndex)
|
||||||
{
|
{
|
||||||
UpdatePlayerState(playerPawn, PlayerState.InFinishingPath);
|
UpdatePlayerState(playerPawn, PlayerState.InFinishingPath);
|
||||||
@ -955,14 +987,14 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
Debug.Log($"tileIndex: {tileIndex}, targetIndex: {targetIndex}");
|
Debug.Log($"tileIndex: {tileIndex}, targetIndex: {targetIndex}");
|
||||||
if (tileIndex <= targetIndex)
|
if (tileIndex <= targetIndex)
|
||||||
{
|
{
|
||||||
// MoveThroughTiles(playerPawn, index, targetIndex);
|
CheckForGamePause(() => MoveThroughFinishingPath(playerPawn, tileIndex, targetIndex));
|
||||||
MoveThroughFinishingPath(playerPawn, tileIndex, targetIndex);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (playerPawn.CurrentTileIndex == TilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - 1)
|
if (playerPawn.CurrentTileIndex == TilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - 1)
|
||||||
{
|
{
|
||||||
|
OnGameResumed = null;
|
||||||
Tile tile = TilesManager.RetrieveFinishingTileBasedOnIndex(playerPawn.PlayerType, playerPawn.CurrentTileIndex);
|
Tile tile = TilesManager.RetrieveFinishingTileBasedOnIndex(playerPawn.PlayerType, playerPawn.CurrentTileIndex);
|
||||||
tile.InitPlayerPawn(playerPawn, playerPawn.PlayerType);
|
tile.InitPlayerPawn(playerPawn, playerPawn.PlayerType);
|
||||||
// ShowUpdatedPlayerCountOnTile(playerPawn);
|
// ShowUpdatedPlayerCountOnTile(playerPawn);
|
||||||
@ -995,7 +1027,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
playerDatas.FirstOrDefault(data => data.playerType == lastUnfinishingPlayerType).ranking = TotalPlayersInGame - allPlayerTypes.Count;
|
playerDatas.FirstOrDefault(data => data.playerType == lastUnfinishingPlayerType).ranking = TotalPlayersInGame - allPlayerTypes.Count;
|
||||||
|
|
||||||
// Show Game Over panel
|
// Show Game Over panel
|
||||||
gameManager.OnGameStateChanged(GameState.GameOver);
|
GameManager.OnGameStateChanged(GameState.GameOver);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1077,6 +1109,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
{
|
{
|
||||||
ResetGameRestartData();
|
ResetGameRestartData();
|
||||||
|
|
||||||
|
OnGameResumed = null;
|
||||||
playerDatas = null;
|
playerDatas = null;
|
||||||
allPlayerTypes = null;
|
allPlayerTypes = null;
|
||||||
|
|
||||||
@ -1091,5 +1124,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
public void ResetGameRestartData()
|
public void ResetGameRestartData()
|
||||||
{
|
{
|
||||||
currentPlayerTurnIndex = 0;
|
currentPlayerTurnIndex = 0;
|
||||||
|
diceSixRollCounter = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -149,9 +149,9 @@ public class PlayerPawn : MonoBehaviour
|
|||||||
|
|
||||||
private void OnMouseDown()
|
private void OnMouseDown()
|
||||||
{
|
{
|
||||||
if (IsBotPlayer || !CanSelectPlayer) return;
|
|
||||||
|
|
||||||
SetGameplayManager();
|
SetGameplayManager();
|
||||||
|
if (gameplayManager.GameManager.CurrentGameState == GameState.IsPaused || IsBotPlayer || !CanSelectPlayer) return;
|
||||||
|
|
||||||
gameplayManager.OnPawnSelected(this);
|
gameplayManager.OnPawnSelected(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,7 @@ public enum GameState
|
|||||||
{
|
{
|
||||||
InMenu,
|
InMenu,
|
||||||
InGame,
|
InGame,
|
||||||
|
IsPaused,
|
||||||
GameOver,
|
GameOver,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -14,7 +15,7 @@ public class GameManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
private MusicManager musicManager;
|
private MusicManager musicManager;
|
||||||
private GameplayManager gameplayManager;
|
private GameplayManager gameplayManager;
|
||||||
|
|
||||||
public GameState GameState
|
public GameState CurrentGameState
|
||||||
{
|
{
|
||||||
get; private set;
|
get; private set;
|
||||||
}
|
}
|
||||||
@ -36,10 +37,16 @@ public class GameManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
OnGameStateChanged(GameState.InMenu);
|
OnGameStateChanged(GameState.InMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetGameState(GameState gameState)
|
||||||
|
{
|
||||||
|
Debug.Log($"### GameState: {gameState}");
|
||||||
|
PrevGameState = CurrentGameState;
|
||||||
|
CurrentGameState = gameState;
|
||||||
|
}
|
||||||
|
|
||||||
public void OnGameStateChanged(GameState gameState)
|
public void OnGameStateChanged(GameState gameState)
|
||||||
{
|
{
|
||||||
PrevGameState = GameState;
|
SetGameState(gameState);
|
||||||
GameState = gameState;
|
|
||||||
Debug.Log($"OnGameStateChanged: {gameState}");
|
Debug.Log($"OnGameStateChanged: {gameState}");
|
||||||
switch (gameState)
|
switch (gameState)
|
||||||
{
|
{
|
||||||
@ -49,8 +56,12 @@ public class GameManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
uiManager.OnInMenuScreen();
|
uiManager.OnInMenuScreen();
|
||||||
break;
|
break;
|
||||||
case GameState.InGame:
|
case GameState.InGame:
|
||||||
|
Debug.Log($"Logging in-game state");
|
||||||
musicManager.PlayMusicClip(MusicType.GameMusic);
|
musicManager.PlayMusicClip(MusicType.GameMusic);
|
||||||
uiManager.OnInGameScreen();
|
uiManager.OnInGameScreen();
|
||||||
|
break;
|
||||||
|
case GameState.IsPaused:
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case GameState.GameOver:
|
case GameState.GameOver:
|
||||||
musicManager.PlayMusicClip(MusicType.GameOverMusic);
|
musicManager.PlayMusicClip(MusicType.GameOverMusic);
|
||||||
|
|||||||
@ -2,10 +2,16 @@ using UnityEngine;
|
|||||||
|
|
||||||
public class UIManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
public class UIManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
||||||
{
|
{
|
||||||
private GameplayManager gameplayManager;
|
|
||||||
private ScreenManager screenManager;
|
private ScreenManager screenManager;
|
||||||
private PopupManager popupManager;
|
private PopupManager popupManager;
|
||||||
|
|
||||||
|
private GameplayManager gameplayManager;
|
||||||
|
|
||||||
|
public GameManager GameManager
|
||||||
|
{
|
||||||
|
get; private set;
|
||||||
|
}
|
||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
{
|
{
|
||||||
InterfaceManager.Instance.RegisterInterface<UIManager>(this);
|
InterfaceManager.Instance.RegisterInterface<UIManager>(this);
|
||||||
@ -13,8 +19,9 @@ public class UIManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
|
|
||||||
public void InitializeData()
|
public void InitializeData()
|
||||||
{
|
{
|
||||||
gameplayManager = InterfaceManager.Instance.GetInterfaceInstance<GameplayManager>();
|
GameManager = InterfaceManager.Instance.GetInterfaceInstance<GameManager>();
|
||||||
popupManager = InterfaceManager.Instance.GetInterfaceInstance<PopupManager>();
|
popupManager = InterfaceManager.Instance.GetInterfaceInstance<PopupManager>();
|
||||||
|
gameplayManager = InterfaceManager.Instance.GetInterfaceInstance<GameplayManager>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnDiceViewInteracted()
|
public void OnDiceViewInteracted()
|
||||||
|
|||||||
@ -8,7 +8,7 @@ public class PauseMenuPopup : PopupBase
|
|||||||
[SerializeField] private Button playBtn;
|
[SerializeField] private Button playBtn;
|
||||||
[SerializeField] private Button restartBtn;
|
[SerializeField] private Button restartBtn;
|
||||||
|
|
||||||
private GameManager gameManager;
|
private UIManager uiManager;
|
||||||
private SoundManager soundManager;
|
private SoundManager soundManager;
|
||||||
private GameModeHandler gameModeHandler;
|
private GameModeHandler gameModeHandler;
|
||||||
|
|
||||||
@ -28,6 +28,9 @@ public class PauseMenuPopup : PopupBase
|
|||||||
|
|
||||||
private void OnClick_PlayButton()
|
private void OnClick_PlayButton()
|
||||||
{
|
{
|
||||||
|
SetUIManager();
|
||||||
|
uiManager.GameManager.SetGameState(GameState.InGame);
|
||||||
|
|
||||||
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
|
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
|
||||||
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
|
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
|
||||||
|
|
||||||
@ -35,6 +38,9 @@ public class PauseMenuPopup : PopupBase
|
|||||||
|
|
||||||
ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>();
|
ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>();
|
||||||
screenManager.ShowScreen(ScreenType.InGameHUDScreen);
|
screenManager.ShowScreen(ScreenType.InGameHUDScreen);
|
||||||
|
|
||||||
|
SetGameModeHandler();
|
||||||
|
gameModeHandler.GameplayManager.OnGameResumed?.Invoke();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnClick_HomeButton()
|
private void OnClick_HomeButton()
|
||||||
@ -44,8 +50,13 @@ public class PauseMenuPopup : PopupBase
|
|||||||
|
|
||||||
popupManager.HidePopup(popupType);
|
popupManager.HidePopup(popupType);
|
||||||
|
|
||||||
gameManager = InterfaceManager.Instance?.GetInterfaceInstance<GameManager>();
|
SetUIManager();
|
||||||
gameManager.OnGameStateChanged(GameState.InMenu);
|
uiManager.GameManager.OnGameStateChanged(GameState.InMenu);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetUIManager()
|
||||||
|
{
|
||||||
|
uiManager = uiManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<UIManager>() : uiManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnClick_RestartButton()
|
private void OnClick_RestartButton()
|
||||||
|
|||||||
@ -17,31 +17,40 @@ public class GameHUDS : ScreenBase
|
|||||||
|
|
||||||
private void OnEnable()
|
private void OnEnable()
|
||||||
{
|
{
|
||||||
pauseBtn.onClick.AddListener(OnClick_pauseBtn);
|
pauseBtn.onClick.AddListener(OnClick_PauseButton);
|
||||||
diceBtn.onClick.AddListener(OnClick_DiceBtn);
|
diceBtn.onClick.AddListener(OnClick_DiceButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDisable()
|
private void OnDisable()
|
||||||
{
|
{
|
||||||
pauseBtn.onClick.RemoveListener(OnClick_pauseBtn);
|
pauseBtn.onClick.RemoveListener(OnClick_PauseButton);
|
||||||
diceBtn.onClick.RemoveListener(OnClick_DiceBtn);
|
diceBtn.onClick.RemoveListener(OnClick_DiceButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnClick_pauseBtn()
|
private void OnClick_PauseButton()
|
||||||
{
|
{
|
||||||
PopupManager popupManager = InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>();
|
|
||||||
popupManager.ShowPopup(PopupType.PauseMenuPopup);
|
|
||||||
|
|
||||||
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();
|
screenManager.HideScreen(screenType);
|
||||||
|
|
||||||
|
PopupManager popupManager = InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>();
|
||||||
|
popupManager.ShowPopup(PopupType.PauseMenuPopup);
|
||||||
|
|
||||||
|
SetUIManager();
|
||||||
|
uiManager.GameManager.SetGameState(GameState.IsPaused);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnClick_DiceBtn()
|
private void OnClick_DiceButton()
|
||||||
|
{
|
||||||
|
SetUIManager();
|
||||||
|
|
||||||
|
uiManager.OnDiceViewInteracted();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetUIManager()
|
||||||
{
|
{
|
||||||
uiManager = uiManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<UIManager>() : uiManager;
|
uiManager = uiManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<UIManager>() : uiManager;
|
||||||
uiManager.OnDiceViewInteracted();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdatePlayerTurnText(PlayerType playerType)
|
public void UpdatePlayerTurnText(PlayerType playerType)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user