Compare commits

..

2 Commits

View File

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