public void OnGameRoomUpdate(GameRoomPoco poco) { GameRoomItem room; if (!GameRoomManager.TryGetItemById(poco._id, out room)) return; if (room.Position != poco.position) GameRoomManager.Move(room, poco.position); room.Update(poco); UpdateActiveGames(room); }
public void OnGameRoomNew(GameRoomPoco poco) { var item = new GameRoomItem(poco); GameRoomManager.Add(item); }
public void OnGameRoomDestroy(GameRoomPoco poco) { GameRoomItem item; if (!GameRoomManager.TryGetItemById(poco._id, out item)) return; GameRoomManager.Remove(item); ActiveGames.Remove(item); }
public void CreateRoomAt(int position, string description, Action<string> onCreated, bool takeover = false) { RestResponse<GameRoomPoco> response = null; _userData.PgSession.BeginAndCallback(delegate { var url = _userData.PgSession.GetWebAppFunction("/api", "/game_rooms"); var client = new RestClient(url); var request = new RestRequest(Method.POST) { RequestFormat = RestSharp.DataFormat.Json }; var poco = new GameRoomPoco { position = position, description = description, takeover_position = takeover, max_member_count = DefaultMaxGameRoomMemberCount, is_advertising = false, game_id = GameInfo.Id, betting_type = "1v1", betting = true }; var root = new GameRoomSinglePoco { game_room = poco }; request.AddBody(root); response = (RestResponse<GameRoomPoco>)client.Execute<GameRoomPoco>(request); }, delegate { if (response.IsOk() && response.Data != null) { var gameRoom = response.Data; if (onCreated != null) onCreated(gameRoom._id); } else { string reason = String.IsNullOrEmpty(response.ErrorMessage) ? response.Content : response.ErrorMessage; ProcessResponse(reason); if (IsBanned == true) { Window.Close(); HomeTab.Notifier.NotifyBannedUser(_userData.User, GameInfo.Id); } else MessageDialog.Show(_window, "Join Failed", reason); } }); }
public void OnUpdate(GameRoomPoco poco) { // lobby should have handled it }
public void OnDestroy(GameRoomPoco poco) { if (_window != null) _window.Close(); }