diff --git a/Assets/Scripts/Gameplay/GameplayManager.cs b/Assets/Scripts/Gameplay/GameplayManager.cs index ade3826..3b23826 100644 --- a/Assets/Scripts/Gameplay/GameplayManager.cs +++ b/Assets/Scripts/Gameplay/GameplayManager.cs @@ -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; @@ -984,41 +986,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 {