Пример #1
0
    public static NetworkResponse Parse(MemoryStream dataStream)
    {
        var response = new ResponseQuitRoom();

        response.status = DataReader.ReadShort(dataStream);
        return(response);
    }
Пример #2
0
        private void PlayerQuitRoom(IHanabiPlayer player, RequestQuitRoom request)
        {
            RoomInfo       roomInfo = new RoomInfo();
            QuitRoomResult result   = QuitRoomResult.Fail;

            if (player.RoomStatus != PlayerRoomStatus.Idle)
            {
                RoomIndexType roomIndex = new RoomIndexType(request.RoomIndex);
                if (Rooms.ContainsKey(roomIndex))
                {
                    Room room = Rooms[roomIndex];
                    room.Players.Remove(player);
                    roomInfo = room.Info;
                    player.OnQuitRoom();

                    if (room.Players.Count == 0)
                    {
                        room.Clear();
                    }
                    result = QuitRoomResult.Success;
                }
            }

            ResponseQuitRoom response = new ResponseQuitRoom();

            response.Result = result;
            response.Room   = roomInfo;

            SendCommand(player, ActionType.QuitRoom, response);
        }
Пример #3
0
        private bool VerifyQuitRoom(Command c, QuitRoomResult result, int userCount)
        {
            if (c.action != ActionType.QuitRoom.ToString())
            {
                return(false);
            }

            ResponseQuitRoom response = JsonConvert.DeserializeObject <ResponseQuitRoom>(c.payload);

            if (response.result != result)
            {
                return(false);
            }

            return((response.result == QuitRoomResult.Fail)
                ? true : (response.room.players.Count == userCount));
        }
 public static NetworkResponse Parse(MemoryStream dataStream)
 {
     var response = new ResponseQuitRoom();
     response.status = DataReader.ReadShort(dataStream);
     return response;
 }