Fix: Data when reaching finishing point.

This commit is contained in:
Ashby Issac 2026-02-02 19:49:16 +05:30
parent f93ba98ef3
commit 5afd8972fc
2 changed files with 8 additions and 9 deletions

View File

@ -319,7 +319,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
if (playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInHome == 0)
{
UpdateActivePlayersAndSetDisplay();
UpdateActivePlayersAndSetDisplay(true);
}
if (availPlayers.Count() < 1 && CanRollDiceAgain) // got a 6 roll value
@ -522,7 +522,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
else // if there are any other pawns that are in safe or moving state
{
// for player's logic
UpdateActivePlayersAndSetDisplay();
UpdateActivePlayersAndSetDisplay(true);
int customAvailPlayers = availPlayers.Count();
Debug.Log($"before CustomAvailablePlayers: {customAvailPlayers}");
@ -564,14 +564,14 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
Debug.Log($"CanRollDiceAgain: {CanRollDiceAgain}, canSwitchPlayer: {canSwitchPlayer}");
}
private void UpdateActivePlayersAndSetDisplay()
private void UpdateActivePlayersAndSetDisplay(bool state)
{
availPlayers = playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Values.Select(pawn => pawn)
.Where(pawn => pawn.GetPlayerState() == PlayerState.InSafeZone ||
pawn.GetPlayerState() == PlayerState.Moving ||
pawn.GetPlayerState() == PlayerState.InFinishingPath).ToList();
SetDisplayCountForAllAvailPlayers(true);
SetDisplayCountForAllAvailPlayers(state);
}
private bool AreAllPawnsInFinishingPath()
@ -756,9 +756,8 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
Debug.Log($"before SwitchPlayer availPlayers: {availPlayers.Count}, playerPawn: {playerPawn}");
UpdateActivePlayersAndSetDisplay();
UpdateActivePlayersAndSetDisplay(false);
Debug.Log($"after SwitchPlayer availPlayers: {availPlayers.Count}, playerPawn: {playerPawn}");
SetDisplayCountForAllAvailPlayers(false);
if (allPlayerTypes.Count == 1)
{
@ -784,7 +783,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
diceSixRollCounter = 0;
diceText.text = $"{0}";
UpdateActivePlayersAndSetDisplay();
UpdateActivePlayersAndSetDisplay(true);
}
Debug.Log($"CurrentPlayerTurn: {currentPlayerTypeTurn}");
@ -1107,7 +1106,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
foreach (var pawn in pawns)
{
if (pawn.GetPlayerState() == PlayerState.InHome || pawn.GetPlayerState() == PlayerState.HasFinished) continue;
if (pawn.GetPlayerState() == PlayerState.InHome) continue;
tilesManager.ResetTileData(pawn.PlayerType, pawn.CurrentTileIndex, pawn.GetPlayerState());
}

View File

@ -69,7 +69,7 @@ public class TilesManager : MonoBehaviour, IBootLoader, IDataLoader, IBase
public void ResetTileData(PlayerType playerType, int currentTileIndex, PlayerState playerState)
{
if (playerState == PlayerState.InFinishingPath)
if (playerState == PlayerState.InFinishingPath || playerState == PlayerState.HasFinished)
{
Tile tile = RetrieveFinishingTileBasedOnIndex(playerType, currentTileIndex);
tile.ResetTileData();