public static NetworkResponse Parse(MemoryStream dataStream) { var response = new ResponseQuitRoom(); response.status = DataReader.ReadShort(dataStream); return(response); }
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); }
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; }