From b0cf690c0e569ae09b1b728e502c6298f6543b35 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Tue, 19 Jan 2016 21:18:09 +0100 Subject: [PATCH] Fix leaving game + send position --- YJMPD-UWP/Model/ApiHandler.cs | 17 ++++++++++++++++- YJMPD-UWP/Model/GameHandler.cs | 28 +++++++++------------------- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/YJMPD-UWP/Model/ApiHandler.cs b/YJMPD-UWP/Model/ApiHandler.cs index b242619..d3d0492 100644 --- a/YJMPD-UWP/Model/ApiHandler.cs +++ b/YJMPD-UWP/Model/ApiHandler.cs @@ -97,11 +97,26 @@ namespace YJMPD_UWP.Model } //API stuff - public async Task SearchGame() + public async Task JoinGame() { JObject obj = JObject.FromObject(new { command = Command.Name.ToString(), + name = Settings.Username, + lon = App.Geo.Position.Coordinate.Point.Position.Longitude, + lat = App.Geo.Position.Coordinate.Point.Position.Latitude + }); + Debug.WriteLine(obj.ToString(Formatting.None)); + await App.Network.Write(obj.ToString(Formatting.None)); + + return true; + } + + public async Task LeaveGame() + { + JObject obj = JObject.FromObject(new + { + command = Command.PlayerRemoved.ToString(), name = Settings.Username }); Debug.WriteLine(obj.ToString(Formatting.None)); diff --git a/YJMPD-UWP/Model/GameHandler.cs b/YJMPD-UWP/Model/GameHandler.cs index 7701afb..b252ad3 100644 --- a/YJMPD-UWP/Model/GameHandler.cs +++ b/YJMPD-UWP/Model/GameHandler.cs @@ -56,15 +56,15 @@ namespace YJMPD_UWP.Model public void RemovePlayer(string username) { - Players.ForEach(p => { - if(p.Username == username) + for(int i=Players.Count-1; i>=0; i--) + { + if (Players[i].Username == username) { - Players.Remove(p); - UpdateGamePlayers(p); + UpdateGamePlayers(Players[i]); + Players.RemoveAt(i); return; } - }); - + } } public void Reset() @@ -86,15 +86,6 @@ namespace YJMPD_UWP.Model } } - - //Searching - - public async Task Search() - { - UpdateGameStatus(GameStatus.SEARCHING); - return await App.Api.SearchGame(); - } - //Starting and Stopping public async Task Start() @@ -110,14 +101,13 @@ namespace YJMPD_UWP.Model private async Task StartGame() { UpdateGameStatus(GameStatus.SEARCHING); - - Search(); - - return true; + return await App.Api.JoinGame(); } private async Task StopGame() { + App.Api.LeaveGame(); + Reset(); UpdateGameStatus(GameStatus.STOPPED);