Compare commits

..

No commits in common. "f93ba98ef32385f1f1d67c07a90011535d8bd5e1" and "f9618cce71ddf2f70b3bb62c710ed7bac4123e09" have entirely different histories.

9 changed files with 20 additions and 119 deletions

View File

@ -75,8 +75,7 @@ public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader
public void OnGameRestarted() public void OnGameRestarted()
{ {
GameManager.OnGameStateChanged(GameState.InGame); GameManager.OnGameStateChanged(GameState.InGame);
GameManager.ResetGameDatas(); gameplayManager.ResetGameRestartData();
switch (CurrentGameModeType) switch (CurrentGameModeType)
{ {
case GameModeType.PVP: case GameModeType.PVP:

View File

@ -36,10 +36,8 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
[SerializeField] private PlayerGameData[] playerGameDatas; [SerializeField] private PlayerGameData[] playerGameDatas;
[SerializeField] private PlayerBaseHandler playerBaseHandler; [SerializeField] private PlayerBaseHandler playerBaseHandler;
public PlayerType CurrentPlayerTypeTurn => currentPlayerTypeTurn;
public PlayerBaseHandler PlayerBaseHandler => playerBaseHandler;
private PlayerType currentPlayerTypeTurn; private PlayerType currentPlayerTypeTurn;
public PlayerType CurrentPlayerTypeTurn => currentPlayerTypeTurn;
private int currentPlayerTurnIndex = 0; private int currentPlayerTurnIndex = 0;
private List<PlayerType> allPlayerTypes = new List<PlayerType>(); private List<PlayerType> allPlayerTypes = new List<PlayerType>();
@ -887,8 +885,14 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
for (int i = counter; i > 0; i--) for (int i = counter; i > 0; i--)
{ {
var pawn = nextTile.GetPlayerPawn(); var pawn = nextTile.GetPlayerPawn();
Debug.Log($"pawn: {pawn}");
Debug.Log($"playerBase: {playerBaseHandler}");
var playerBasePos = playerBaseHandler.GetPlayerBase(pawn.PlayerType).GetBasePlacementDataPosition(pawn.PlayerId - 1);
Debug.Log($"playerBasePos: {playerBasePos}");
playerGameDatasDict[pawn.PlayerType].totalPawnsInHome++; playerGameDatasDict[pawn.PlayerType].totalPawnsInHome++;
playerBaseHandler.SendPlayerToHome(pawn); pawn.MoveBackToHome(playerBasePos);
} }
if (CheckForMaxDiceRollAttempt()) if (CheckForMaxDiceRollAttempt())
@ -1008,10 +1012,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
{ {
if (playerPawn.CurrentTileIndex == tilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - 1) if (playerPawn.CurrentTileIndex == tilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - 1)
{ {
Tile tile = tilesManager.RetrieveFinishingTileBasedOnIndex(playerPawn.PlayerType, playerPawn.CurrentTileIndex); playerPawn.ShowPlayerCountCanvas(false);
tile.InitPlayerPawn(playerPawn, playerPawn.PlayerType);
ShowUpdatedPlayerCountOnTile(playerPawn);
UpdatePlayerState(playerPawn, PlayerState.HasFinished); UpdatePlayerState(playerPawn, PlayerState.HasFinished);
playerGameDatasDict[currentPlayerTypeTurn].totalPawnsFinished++; playerGameDatasDict[currentPlayerTypeTurn].totalPawnsFinished++;
@ -1099,21 +1100,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
playerPawn.PlayerCountCanvas.SetPlayerCount(count); playerPawn.PlayerCountCanvas.SetPlayerCount(count);
} }
public void ResetTileDatasForPlayers()
{
foreach (PlayerData data in playerDatas)
{
var pawns = playerGameDatasDict[data.playerType].playerPawnsDict.Values;
foreach (var pawn in pawns)
{
if (pawn.GetPlayerState() == PlayerState.InHome || pawn.GetPlayerState() == PlayerState.HasFinished) continue;
tilesManager.ResetTileData(pawn.PlayerType, pawn.CurrentTileIndex, pawn.GetPlayerState());
}
}
}
public void ResetData() public void ResetData()
{ {
ResetGameRestartData(); ResetGameRestartData();

View File

@ -42,12 +42,4 @@ public class PlayerBase : MonoBehaviour
Debug.Log($"Index: {idx}, basePlacementDatas[idx]: {basePlacementDatas[idx]}"); Debug.Log($"Index: {idx}, basePlacementDatas[idx]: {basePlacementDatas[idx]}");
return basePlacementDatas[idx].placementTransform; return basePlacementDatas[idx].placementTransform;
} }
public void ResetPlayerDatas()
{
for (int idx = 0; idx < playerPawns.Length; idx++)
{
playerPawns[idx].ResetData();
}
}
} }

View File

@ -40,18 +40,4 @@ public class PlayerBaseHandler : MonoBehaviour
{ {
return playerBasesDict[playerType]; return playerBasesDict[playerType];
} }
public void ResetPlayerBaseData()
{
foreach (var playerBasePair in playerBasesDict)
{
playerBasePair.Value.ResetPlayerDatas();
}
}
public void SendPlayerToHome(PlayerPawn pawn)
{
var playerBasePos = GetPlayerBase(pawn.PlayerType).GetBasePlacementDataPosition(pawn.PlayerId - 1);
pawn.MoveBackToHome(playerBasePos);
}
} }

View File

@ -65,6 +65,10 @@ public class PlayerPawn : MonoBehaviour
public void SetPlayerSelectionState(bool state) public void SetPlayerSelectionState(bool state)
{ {
CanSelectPlayer = state; CanSelectPlayer = state;
if (CanSelectPlayer)
{
// TODO :: Play animation for selecting any of the players
}
} }
public void MoveToTile(Vector3 startingPoint, Action onComplete, int tileIndex) public void MoveToTile(Vector3 startingPoint, Action onComplete, int tileIndex)
@ -87,7 +91,6 @@ public class PlayerPawn : MonoBehaviour
Vector3 lookDirection = Vector3.zero; Vector3 lookDirection = Vector3.zero;
Debug.Log($"nextIndex :: playerState: {playerState}");
if (playerState == PlayerState.InFinishingPath) if (playerState == PlayerState.InFinishingPath)
{ {
int nextIndex = CurrentTileIndex + 1; int nextIndex = CurrentTileIndex + 1;
@ -102,22 +105,18 @@ public class PlayerPawn : MonoBehaviour
{ {
if (gameplayManager.IsGoingInsideFinishingPath(this, out int possibleSteps)) if (gameplayManager.IsGoingInsideFinishingPath(this, out int possibleSteps))
{ {
lookDirection = tilesManager.RetrieveFinishingTileBasedOnIndex(PlayerType, 0).transform.position - transform.position; lookDirection =tilesManager.RetrieveFinishingTileBasedOnIndex(PlayerType, 0).transform.position - transform.position;
} }
else else
{ {
int nextIndex = gameplayManager.GetNextGeneralTileIndex(this); int nextIndex = gameplayManager.GetNextGeneralTileIndex(this);
Debug.Log($"nextIndex :: {nextIndex}, currentIndex: {CurrentTileIndex}");
lookDirection = tilesManager.RetrieveTileBasedOnIndex(nextIndex).transform.position - transform.position; lookDirection = tilesManager.RetrieveTileBasedOnIndex(nextIndex).transform.position - transform.position;
} }
} }
lookDirection = lookDirection.normalized;
lookDirection.y = 0; lookDirection.y = 0;
if (lookDirection != Vector3.zero) if (lookDirection != Vector3.zero)
{ {
// transform.LookAt(transform.position + lookDirection);
transform.DOLookAt(transform.position + lookDirection, 0.2f); transform.DOLookAt(transform.position + lookDirection, 0.2f);
} }
@ -172,14 +171,4 @@ public class PlayerPawn : MonoBehaviour
{ {
playerCountCanvas.gameObject.SetActive(show); playerCountCanvas.gameObject.SetActive(show);
} }
public void ResetData()
{
SetPlayerState(PlayerState.InHome);
StepsTaken = 0;
PlayerId = 0;
if (playerCountCanvas.gameObject.activeInHierarchy)
ShowPlayerCountCanvas(false);
}
} }

View File

@ -18,8 +18,6 @@ public class GameManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
get; private set; get; private set;
} }
private GameState PrevGameState;
public void Initialize() public void Initialize()
{ {
InterfaceManager.Instance.RegisterInterface<GameManager>(this); InterfaceManager.Instance.RegisterInterface<GameManager>(this);
@ -36,13 +34,13 @@ public class GameManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
public void OnGameStateChanged(GameState gameState) public void OnGameStateChanged(GameState gameState)
{ {
PrevGameState = GameState;
GameState = gameState; GameState = gameState;
Debug.Log($"OnGameStateChanged: {gameState}"); Debug.Log($"OnGameStateChanged: {gameState}");
switch (gameState) switch (gameState)
{ {
case GameState.InMenu: case GameState.InMenu:
CheckPrevGameState(); gameplayManager.ResetData();
tilesManager.ResetData();
uiManager.OnInMenuScreen(); uiManager.OnInMenuScreen();
break; break;
case GameState.InGame: case GameState.InGame:
@ -53,20 +51,4 @@ public class GameManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
break; break;
} }
} }
private void CheckPrevGameState()
{
if (PrevGameState == GameState.InGame) // returning to menu from in-game
{
ResetGameDatas();
}
}
public void ResetGameDatas()
{
gameplayManager.ResetTileDatasForPlayers();
gameplayManager.ResetData();
tilesManager.ResetData();
gameplayManager.PlayerBaseHandler.ResetPlayerBaseData();
}
} }

View File

@ -86,12 +86,4 @@ public class SafeTile : Tile
{ {
return playerTypesDict[playerType].commonPlacementTransform; return playerTypesDict[playerType].commonPlacementTransform;
} }
public override void ResetTileData()
{
if (playerTypesDict != null && playerTypesDict.Count > 0)
{
playerTypesDict.Clear();
}
}
} }

View File

@ -53,10 +53,4 @@ public class Tile : MonoBehaviour
Debug.Log($"Resetting new PlayerPawn {movingPawn.name} {name}"); Debug.Log($"Resetting new PlayerPawn {movingPawn.name} {name}");
Debug.Log($"Resetting new PlayerPawn {PlayerPawns.Count} {name}"); Debug.Log($"Resetting new PlayerPawn {PlayerPawns.Count} {name}");
} }
public virtual void ResetTileData()
{
if (HasPawnsAvailable)
PlayerPawns.Clear();
}
} }

View File

@ -66,23 +66,4 @@ public class TilesManager : MonoBehaviour, IBootLoader, IDataLoader, IBase
{ {
finishingTileDataPairs.Clear(); finishingTileDataPairs.Clear();
} }
public void ResetTileData(PlayerType playerType, int currentTileIndex, PlayerState playerState)
{
if (playerState == PlayerState.InFinishingPath)
{
Tile tile = RetrieveFinishingTileBasedOnIndex(playerType, currentTileIndex);
tile.ResetTileData();
}
else if (playerState == PlayerState.Moving)
{
Tile tile = RetrieveTileBasedOnIndex(currentTileIndex);
tile.ResetTileData();
}
else if (playerState == PlayerState.InSafeZone)
{
SafeTile tile = (SafeTile)RetrieveTileBasedOnIndex(currentTileIndex);
tile.ResetTileData();
}
}
} }