private void CheckForWinner() { var alivePlayersLeft = GameSystem.Players .Where(p => p.PlayerState == PlayerState.Normal); if (alivePlayersLeft.Count() > 1) { return; } var player = alivePlayersLeft.FirstOrDefault(); if (player != null) { var playerScore = ContextHelper.PlayerScores?.FirstOrDefault(x => x.PlayerIndex == player.PlayerIndex); if (playerScore == null) { return; } playerScore.Score++; if (playerScore.Score >= Settings.ScoreLimit) { _weHaveAWinner = true; } } GameSystem.EndRound(); }
private void CheckForWinner() { if (_weHaveAWinner) { return; } var maxScoreHolder = ContextHelper.PlayerScores.Max(); if (maxScoreHolder.Score < Settings.ScoreLimit) { return; } _weHaveAWinner = true; var winningPlayer = GameSystem.Players.First(p => p.PlayerIndex == maxScoreHolder.PlayerIndex); winningPlayer.getComponent <CameraTracker>().setEnabled(true); var otherPlayers = GameSystem.Players.Where(p => p.PlayerIndex != maxScoreHolder.PlayerIndex); foreach (var otherPlayer in otherPlayers) { otherPlayer.getComponent <CameraTracker>().setEnabled(false); } GameSystem.EndRound(); }