local EXTEND_MODEL_NAME = ... local EXGameInfo = import(".EXGameInfo") local EXMainView = import(".EXMainView") local EXGameController = import(".EXGameController") local EXRoomConfig = import(".EXRoomConfig") local EXPlayBackView =import(".EXPlayBackView") local MJRoom = require("main.majiang.MJRoom") local ExtendConfig = {} local M = ExtendConfig function ExtendConfig.new() setmetatable(M, {__index = IExtendConfig}) local self = setmetatable({}, {__index = M}) self.class = "ExtendConfig" self.extend_id = 22 self._viewMap = {} self._viewMap[ViewManager.View_Main] = EXMainView self._viewMap[ViewManager.View_PlayBack] = EXPlayBackView return self end --卸载资源 function M:UnAllAssets() UIPackage.RemovePackage("extend/majiang/chaozhou/ui/Info_MJ_ChaoZhou") self:UnAssets() end --卸载资源 function M:UnAssets() UIPackage.RemovePackage("extend/majiang/chaozhou/ui/Extend_MJ_ChaoZhou") ResourcesManager.UnLoadGroup("ChaoZhou_MJ") end local _gameInfo = nil function M:GetGameInfo() if not _gameInfo then _gameInfo = EXGameInfo.new() end return _gameInfo end local _ctr_game = nil function M:GetGameController() if _ctr_game == nil then _ctr_game = EXGameController.new() end return _ctr_game end function M:NewRoom() return MJRoom.new() end function M:FillRoomConfig(room,_config) room.room_config = EXRoomConfig.new(_config) end function M:FillRoomData(s2croom) local room = DataManager.CurrenRoom local reload = s2croom["reload"] local _tableInfo = s2croom["tableInfo"] printlog("初始化房间数据====>>>") pt(_tableInfo) printlog(_tableInfo.laiziCard) printlog(_tableInfo.laiziCard2) printlog(_tableInfo.laiziCardBefore) printlog(_tableInfo.laiziCard2Before) room.laiziInfo={} if _tableInfo.laiziCardBefore>0 then table.insert(room.laiziInfo,_tableInfo.laiziCard) if _tableInfo.laiziCard2>0 then table.insert(room.laiziInfo,_tableInfo.laiziCard2) end room.beforelaiziCardId=_tableInfo.laiziCardBefore else room.laiziInfo=nil end local _config = _tableInfo["config"] pt(_config) room.room_config = EXRoomConfig.new(_config) local playerList = _tableInfo["playerData"] room.curren_round = _tableInfo["round"] self:FillPlayerData(playerList) if (reload) then local _reloadInfo = s2croom["reloadInfo"] local _hand_card = _reloadInfo["hand_card"] room.self_player.card_list = _hand_card table.sort(_hand_card, ViewUtil.HandCardSort) local active_seat = _reloadInfo["active_seat"] local bank_seat = _reloadInfo["banker_seat"] local playing = _reloadInfo["playing"] local _info_list = _reloadInfo["info_list"] local last_outcard_seat = _reloadInfo["last_outcard_seat"] room.left_count = _reloadInfo["left_card"] room.banker_seat = bank_seat room.curren_outcard_seat = _reloadInfo["curren_outcard_seat"] room.last_outcard_seat = last_outcard_seat room.playing = playing for i=1,#_info_list do local tem = _info_list[i] local playerid = tem["playerid"] local p = room:GetPlayerById(playerid) local outcard_list = tem["outcard_list"] p.outcard_list = outcard_list p.total_score = tem["score"] p.hand_left_count = tem["card_count"] p.piao_niao = tem["piao_niao"] or 0 local opcard = tem["opcard"] for k=1,#opcard do local op = opcard[k] local fz = {} fz.type = op["type"] fz.card = op["card"] p.fz_list[#p.fz_list+1] = fz end if not playing and room.curren_round > 0 then self.GetGameController():PlayerReady() end end end end function M:FillPlayBackData(pd_data) local room = DataManager.CurrenRoom local _tableInfo = pd_data["info"] local _config = _tableInfo["config"] room.room_id = _tableInfo.roomid room.room_config = EXRoomConfig.new(_config) room.owner_id = _config["ownerid"] local active_seat = _tableInfo["active_seat"] local bank_seat = _tableInfo["banker_seat"] room.left_count = _tableInfo["left_card"] room.banker_seat = bank_seat room.curren_turn_seat = active_seat room.curren_round = _tableInfo["round"] local _info_list = _tableInfo["playerData"] for i = 1,#_info_list do local _jp = _info_list[i] local p = room:NewPlayer() p.seat = _jp["seat"] local online = _jp["online"] p.line_state = online p.ready = _jp["ready"] == 1 and true or false local pid = _jp["aid"] p.piao_niao = _jp["piao_niao"] -- print(DataManager.SelfUser.account_id,pid) -- if (278 == pid) then -- room.self_player = p -- p.self_user = DataManager.SelfUser -- else if p.seat == 1 then room.self_player = p end local u = User.new() u.account_id = pid p.self_user = u u.nick_name = _jp["nick"] u.head_url = _jp["portrait"] u.sex = _jp["sex"] -- end p.self_user.host_ip = p.self_user.host_ip local _hand_card = _jp["hand_card"] p.card_list = _hand_card --room.self_player.card_list = _hand_card table.sort(_hand_card, ViewUtil.HandCardSort) p.total_score = _jp["score"] p.hand_left_count = #_hand_card if _jp.hp_info then room.room_config.isNonnegative = 1 p.cur_hp = _jp.hp_info.cur_hp end room:AddPlayer(p) end room.cmdList = pd_data["cmdList"] end return M