Fix leaving game + send position

This commit is contained in:
2016-01-19 21:18:09 +01:00
parent 4fd08bd8ab
commit b0cf690c0e
2 changed files with 25 additions and 20 deletions
+16 -1
View File
@@ -97,11 +97,26 @@ namespace YJMPD_UWP.Model
}
//API stuff
public async Task<bool> SearchGame()
public async Task<bool> 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<bool> LeaveGame()
{
JObject obj = JObject.FromObject(new
{
command = Command.PlayerRemoved.ToString(),
name = Settings.Username
});
Debug.WriteLine(obj.ToString(Formatting.None));
+9 -19
View File
@@ -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<bool> Search()
{
UpdateGameStatus(GameStatus.SEARCHING);
return await App.Api.SearchGame();
}
//Starting and Stopping
public async Task<bool> Start()
@@ -110,14 +101,13 @@ namespace YJMPD_UWP.Model
private async Task<bool> StartGame()
{
UpdateGameStatus(GameStatus.SEARCHING);
Search();
return true;
return await App.Api.JoinGame();
}
private async Task<bool> StopGame()
{
App.Api.LeaveGame();
Reset();
UpdateGameStatus(GameStatus.STOPPED);