//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); }
//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(); }
public GameFinishedWindow(GameFinishedDataRequest inputData, string thisPlayerID) { InitializeComponent(); this.inputData = inputData; this.canWindowBeClosed = false; this.thisPlayerID = thisPlayerID; DisplayTotalGameTime(inputData.GameTimerTimeSpan); PopulateListVieWithPlayers(inputData); }
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); } }
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); }
public static void OnGameEnded(GameFinishedDataRequest args) { GameEnded?.Invoke(null, new GameEndedEventArgs { GameEndedData = args }); }