Пример #1
0
        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);
 }
Пример #4
0
        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 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);
        }
Пример #6
0
        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);
 }
Пример #9
0
 private void OnDateDefeated()
 {
     Debug.Log($"[{nameof(GameManager)}]: Date defeated! Ending game...");
     EndGameContext = new EndGameContext(false, EndResult.DateDefeated);
     EndGame();
 }
Пример #10
0
 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)
 {
     this.Player.EndGame(context);
 }
 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);
 }
Пример #15
0
 private void OnGameEnd(EndGameContext context)
 {
     SetGameplayInputsEnabled(false);
 }
Пример #16
0
 public virtual void EndGame(EndGameContext context)
 {
 }
 public override void EndGame(EndGameContext context)
 {
     this.state.EndGame(context);
     base.EndGame(context);
 }
Пример #18
0
 public override void EndGame(EndGameContext context)
 {
     this.state.EndGame(context);
     base.EndGame(context);
 }
Пример #19
0
 // 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);
 }
Пример #21
0
 // 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();
 }