//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);
        }
Example #2
0
        //method for opening window with game results
        private void OpenEngGameResultsWindow(GameFinishedDataRequest inputData)
        {
            GameFinishedWindow EndingWindow = new GameFinishedWindow(inputData, thisPlayerID)
            {
                //Owner = this,
            };

            EndingWindow.GameResultsWindowClosing += EndingWindow_GameResultsWindowClosing;
            EndingWindow.ShowDialog();
            MemoryManagement.FlushMemory();
        }
Example #3
0
        public GameFinishedWindow(GameFinishedDataRequest inputData, string thisPlayerID)
        {
            InitializeComponent();

            this.inputData         = inputData;
            this.canWindowBeClosed = false;
            this.thisPlayerID      = thisPlayerID;

            DisplayTotalGameTime(inputData.GameTimerTimeSpan);
            PopulateListVieWithPlayers(inputData);
        }
Example #4
0
        private void PopulateListVieWithPlayers(GameFinishedDataRequest inputData)
        {
            int amountOfPlayers = inputData.GamersList.Count;

            GamersListView.Items.Clear();

            for (int i = 0; i < amountOfPlayers; i++)
            {
                var item = inputData.GamersList.Single(x => x.PlayerPosition == i + 1);
                GameFinishedListViewItem element = new GameFinishedListViewItem(Pages.PlayersListPage.GetAvatarFullName(item.PlayerNumber),
                                                                                item.PlayerName, item.PlayedGames, item.PlayedAndWonGames, inputData.WinnerPlayerNumber, item.PlayerNumber,
                                                                                item.PlayerID, item.PlayerPosition);

                GamersListView.Items.Add(element);
            }
        }
Example #5
0
        public List <ReturnData> SendGameFinishedDataToPlayers(GameFinishedDataRequest request)
        {
            List <object> requests = new List <object>();

            foreach (var item in request.GamersList)
            {
                requests.Add((object)request);
            }

            List <string> IDlist = new List <string>();

            foreach (var item in request.GamersList)
            {
                IDlist.Add(item.PlayerID);
            }

            return(SendDataToAllPlayers(DataSenderType.GameFinished, requests, IDlist));
        }
 //method for showing game finished window
 void IMakaoGameClientService.ShowGameResultsWindow(GameFinishedDataRequest request)
 {
     DataPlaceholder.OnGameEnded(request);
 }
Example #7
0
 public static void OnGameEnded(GameFinishedDataRequest args)
 {
     GameEnded?.Invoke(null, new GameEndedEventArgs {
         GameEndedData = args
     });
 }