//method for collecting data or game finishing
        private static GameFinishedDataRequest CollectEndGameData()
        {
            GameFinishedDataRequest output = new GameFinishedDataRequest
            {
                WinnerPlayerNumber           = DataPlaceholders.GameStateHolder.EngineInstance.FinishedPlayers[1],
                GamersList                   = new List <PlayerPositionDetails>(),
                GameTimerTimeSpan            = GameStateHolder.GameTimerTimeSpan,
                GameTimerTimeSpanMiliseconds = GameStateHolder.GameTimerTimeSpanMiliseconds,
            };

            foreach (var item in DataPlaceholders.MakaoEngineHostDataPlaceholders.PlayersData)
            {
                try
                {
                    PlayerPositionDetails onePlayerData = new PlayerPositionDetails()
                    {
                        PlayerPosition    = GetPlayerPosition(item.PlayerNumber, DataPlaceholders.GameStateHolder.EngineInstance.FinishedPlayers),
                        PlayerID          = item.PlayerID,
                        PlayedAndWonGames = CheckIfThisPLayerWon(item.PlayerNumber, output.WinnerPlayerNumber, item.PlayedAndWonGames),
                        PlayedGames       = item.PlayedGames + 1,
                        PlayerNumber      = item.PlayerNumber,
                        PlayerName        = item.PlayerName,
                    };
                    output.GamersList.Add(onePlayerData);
                }
                catch (Exception ex)
                {
                    var logger = NLog.LogManager.GetCurrentClassLogger();
                    logger.Error($"Error while obtaining data for finished game window (in host): {ex.Message}.");
                }
            }

            return(output);
        }
Ejemplo n.º 2
0
        private void WindowClosingButton_Click(object sender, RoutedEventArgs e)
        {
            canWindowBeClosed = true;

            try
            {
                PlayerPositionDetails positionDetails = inputData.GamersList.Single(x => x.PlayerID == thisPlayerID);
                OnGameResultsWindowClosing(positionDetails.PlayedGames, positionDetails.PlayedAndWonGames);
            }
            catch (Exception ex)
            {
                var logger = NLog.LogManager.GetCurrentClassLogger();
                logger.Error($"Error while trying to get info about this player from input data: {ex.Message}.");

                OnGameResultsWindowClosing(-5, -5);
            }
            this.Close();
        }