public override void EndGame(EndGameContext context) { var stateIndex = (int)this.state; this.totalGamesCount++; this.gamesCount[stateIndex]++; if (context.WinnerName == this.Name) { this.winsCount[stateIndex]++; } if (this.totalGamesCount % this.stateEvaluationGamesCount == 0) { this.successRate[stateIndex] = (double)this.winsCount[stateIndex] / this.gamesCount[stateIndex]; int bestState = 0; double bestSuccessRate = 0; for (int i = 0; i < this.successRate.Length; i++) { if (this.successRate[i] >= bestSuccessRate) { bestState = i; bestSuccessRate = this.successRate[i]; } } this.state = (PlayerStateType)bestState; } }
private void OnGameEnded(EndGameContext context) { GameEventsManager.StartGame.Unsubscribe(OnGameplayEntered); GameEventsManager.ExitGame.Unsubscribe(OnGameExited); GameEventsManager.PauseMenu.Unsubscribe(OnPauseMenu); OnGameplayExited(); }
private void OnGameEnd(EndGameContext endGameContext) { MonoBehaviourMaster.Instance.OnFixedUpdate -= ProcessHeldFire; _weaponState.Clear(); GameEventsManager.EndGame.Unsubscribe(OnGameEnd); GameEventsManager.PauseMenu.Unsubscribe(OnGamePaused); }
public void EndGame(EndGameContext context) { this.totalGamesCount++; this.state.GamesPlayed++; if (context.WinnerName == this.Name) { this.state.GamesWon++; } if (this.totalGamesCount % this.stateEvaluationGamesCount == 0) { var bestSuccessRate = this.playerStates.Max(x => x.GamesSuccessRate); var bestState = this.playerStates.First(x => x.GamesSuccessRate == bestSuccessRate); this.state = bestState; } this.state.EndGame(context); }
public IPlayer Start() { Console.WriteLine("Game started...."); var allRelayConnections = (from current in NetworkComms.GetExistingConnection() where current != null select current).ToArray(); foreach (var relayConnection in allRelayConnections) { relayConnection.SendObject("Message", "Game started..."); } List <string> playerNames = this.allPlayers.Select(x => x.Name).ToList(); foreach (InternalPlayer player in this.allPlayers) { StartGameContext StartGameContext = new StartGameContext(playerNames, this.initialMoney); player.StartGame(StartGameContext); player.Connection.SendObject("StartGameContext", StartGameContext); } while (this.allPlayers.Count(x => x.PlayerMoney.Money > 0) > 1) { var smallBlind = SmallBlinds[(this.HandsPlayed) / 10]; this.HandsPlayed++; IHandLogic hand = this.HandsPlayed % 2 == 1 ? new TwoPlayersHandLogic(new[] { this.firstPlayer, this.secondPlayer }, this.HandsPlayed, smallBlind) : new TwoPlayersHandLogic(new[] { this.secondPlayer, this.firstPlayer }, this.HandsPlayed, smallBlind); hand.Play(); } var winner = this.allPlayers.FirstOrDefault(x => x.PlayerMoney.Money > 0); foreach (var player in this.allPlayers) { EndGameContext EndGameContext = new EndGameContext(winner.Name); player.EndGame(EndGameContext); player.Connection.SendObject("EndGameContext", EndGameContext); } return(winner); }
private void SetInfo() { EndGameContext context = GameManager.Instance.EndGameContext; if (context == null) { Debug.LogError($"[{nameof(UIEndGameScreen)}]: No end game context was set!"); return; } _resultHeader.text = context?.WonGame ?? false ? "Victory!" : "Defeat!"; switch (context.EndResult) { case EndResult.AllQuestsCompleted: _resultDescription.text = "Mission accomplished!"; break; case EndResult.PlayerDefeated: _resultDescription.text = "You were eliminated!"; break; case EndResult.DateDefeated: _resultDescription.text = "Date was eliminated!"; break; case EndResult.DateTurnedAway: _resultDescription.text = "Date was unhappy!"; break; case EndResult.IdentityDiscovered: _resultDescription.text = "You've been discovered!"; break; default: _resultDescription.text = "Invalid description!"; break; } }
public virtual void EndGame(EndGameContext context) { this.Player.EndGame(context); }
private void OnDateDefeated() { Debug.Log($"[{nameof(GameManager)}]: Date defeated! Ending game..."); EndGameContext = new EndGameContext(false, EndResult.DateDefeated); EndGame(); }
private void OnPlayerAgentSpotted() { CustomLogger.Log(nameof(GameManager), "Player spotted by date in agent gear! Ending game..."); EndGameContext = new EndGameContext(false, EndResult.IdentityDiscovered); EndGame(); }
public virtual void EndGame(EndGameContext context) { }
private void OnGameEnded(EndGameContext endGameContext) { HideCurrentDialog(); }
private void OnGameEnd(EndGameContext endGameContext) { GameEventsManager.StartGame?.Unsubscribe(OnGameStart); GameEventsManager.EndGame?.Unsubscribe(OnGameEnd); }
private void OnGameEnd(EndGameContext context) { SetGameplayInputsEnabled(false); }
public override void EndGame(EndGameContext context) { this.state.EndGame(context); base.EndGame(context); }
// how you win the game private void OnAllQuestsCompleted() { CustomLogger.Log(nameof(GameManager), "All quests completed! Ending game..."); EndGameContext = new EndGameContext(true, EndResult.AllQuestsCompleted); EndGame(); }
public override void EndGame(EndGameContext context) { base.EndGame(context); }
// if the player is defeated, this should result in a loss private void OnPlayerDefeated(Unit unit) { CustomLogger.Log(nameof(GameManager), "Player defeated! Ending game..."); EndGameContext = new EndGameContext(false, EndResult.PlayerDefeated); EndGame(); }