コード例 #1
0
        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);
        }
コード例 #2
0
 public void OnGameRoomNew(GameRoomPoco poco)
 {
     var item = new GameRoomItem(poco);
     GameRoomManager.Add(item);
 }
コード例 #3
0
 public void OnGameRoomDestroy(GameRoomPoco poco)
 {
     GameRoomItem item;
     if (!GameRoomManager.TryGetItemById(poco._id, out item))
         return;
     GameRoomManager.Remove(item);
     ActiveGames.Remove(item);
 }
コード例 #4
0
 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);
         }
     });
 }
コード例 #5
0
 public void OnUpdate(GameRoomPoco poco)
 {
     // lobby should have handled it
 }
コード例 #6
0
 public void OnDestroy(GameRoomPoco poco)
 {
     if (_window != null)
         _window.Close();
 }