Compare commits

...

2 Commits

View File

@ -745,6 +745,8 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
return;
}
currentPlayerTurnIndex = allPlayerTypes.FindIndex(type => type == currentPlayerTypeTurn);
if (currentPlayerTypeTurn == allPlayerTypes[allPlayerTypes.Count - 1])
{
currentPlayerTurnIndex = 0;
@ -988,41 +990,36 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
else
{
DisplayPlayerCountOnTile(playerPawn, true);
Debug.Log($"CurrentTileIndex: {playerPawn.CurrentTileIndex} == lastIndex: {tilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - 1}");
if (playerPawn.CurrentTileIndex == tilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - 1)
{
UpdatePlayerState(playerPawn, PlayerState.HasFinished);
playerGameDatasDict[currentPlayerTypeTurn].totalPawnsFinished++;
Debug.Log($"totalPawnsFinished: {playerGameDatasDict[currentPlayerTypeTurn].totalPawnsFinished}, playerPawnsDict.Count: {playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Count}");
if (playerGameDatasDict[currentPlayerTypeTurn].totalPawnsFinished == playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Count)
{
CanRollDiceAgain = false;
if (allPlayerTypes.Contains(currentPlayerTypeTurn))
var playerTypeToRemove = currentPlayerTypeTurn;
SwitchPlayer();
if (allPlayerTypes.Contains(playerTypeToRemove))
{
allPlayerTypes.Remove(currentPlayerTypeTurn);
Debug.Log($"currentPlayerTypeTurn: {currentPlayerTypeTurn}");
Debug.Log($"playerDatas.FirstOrDefault(data => data.playerType == currentPlayerTypeTurn): {playerDatas.FirstOrDefault(data => data.playerType == currentPlayerTypeTurn)}");
playerDatas.FirstOrDefault(data => data.playerType == currentPlayerTypeTurn).ranking = TotalPlayersInGame - allPlayerTypes.Count;
allPlayerTypes.Remove(playerTypeToRemove);
playerDatas.FirstOrDefault(data => data.playerType == playerTypeToRemove).ranking = TotalPlayersInGame - allPlayerTypes.Count;
}
if (allPlayerTypes.Count == 1)
{
// Game is over
var lastFinishingPlayerType = allPlayerTypes[0];
var lastUnfinishingPlayerType = allPlayerTypes[0];
allPlayerTypes.RemoveAt(0);
playerDatas.FirstOrDefault(data => data.playerType == lastFinishingPlayerType).ranking = TotalPlayersInGame - allPlayerTypes.Count;
playerDatas.FirstOrDefault(data => data.playerType == lastUnfinishingPlayerType).ranking = TotalPlayersInGame - allPlayerTypes.Count;
// Show Game Over panel
gameManager.OnGameStateChanged(GameState.GameOver);
return;
}
SwitchPlayer();
Debug.Log($"PlayerTypes: {allPlayerTypes.Count}");
}
else
{