--region LOCAL local function SetBigWiller(totalScore) local s = -999 local winer = 0 for _, player in pairs(totalScore) do if player.score > s then s = player.score winer = _ end end totalScore[winer].winer = true end local function list_players_Renderer(index, obj, players, self) local tex_name = obj:GetChild("tex_name") local loader_icon = obj:GetChild("loader_icon") local tex_id = obj:GetChild("tex_id") local tex_score = obj:GetChild("tex_score") local player = players[index + 1] tex_name.text = player.nick tex_id.text = player.accId tex_score.text = string.format("%s%s", player.score >= 0 and "+" or "", player.score) obj:GetController('cCouler').selectedIndex = player.score >= 0 and 0 or 1 ImageLoad.Load(player.portrait, loader_icon) if player.winer then obj:GetController("cWiner").selectedIndex = 1 else obj:GetController("cWiner").selectedIndex = 0 end end local function ChatItemRenderer(index, obj, self) --local data = self.ChatRoomData.records[index + 1] local record = self.group.records[#self.group.records - index] local group = DataManager.groups:get(record.groupId) --local totalScore = json.decode(data.totalScore) --local hpData = json.decode(record.hpData) SetBigWiller(record.players) local list_players = obj:GetChild("list_players") local tex_time = obj:GetChild("tex_time") local tex_name = obj:GetChild("tex_name") local tex_roomIdRound = obj:GetChild("tex_roomIdRound") tex_time.text = os.date("游戏结算:%m月%d号 %X", record.create_time) --data.create_time tex_name.text = record.game_info.name local roundTex = record.round .. "/" .. record.maxRound tex_roomIdRound.text = record.room_id .. "\n" .. roundTex list_players.itemRenderer = function(i, o) list_players_Renderer(i, o, record.players, self) end list_players.numItems = #record.players end --[[ local function GetIsOpenChatRoom(groupId, self) local fgCtr = ControllerManager.GetController(NewGroupController) fgCtr:GetIsOpenChatRoom(groupId, function(res) print("收到是否打开聊天室协议") pt(res) end) end ]] --endregion local FamilyChatRoom = {} --[[ function FamilyChatRoom.New() --转移进family界面 --setmetatable(FamilyChatRoom, { __index = BaseWindow }) --local inst = setmetatable({}, { __index = FamilyChatRoom}) inst:Init(com) return inst end ]] function FamilyChatRoom:Init(com, root) --转移进family界面 --self._full = true --self._full_offset = false --self._animation = false --BaseWindow.init(self, "ui://Family/com_chatRoom") self.rendererData = {} self.root = root self._view = com self.list_chat = self._view:GetChild("list_chat") self.btn_quit = self._view:GetChild("btn_quit") self.list_chat:SetVirtual() self.list_chat.itemRenderer = function(index, obj) ChatItemRenderer(index, obj, self) end self.btn_quit.onClick:Set(function() self:Close() end) return self end function FamilyChatRoom:Close() local cChatRoom = self.root._view:GetController("cIsChatRoom") cChatRoom.selectedIndex = 0 self.group.messageCount = 0 self.root:ReflashChatRoomRedPoint() end function FamilyChatRoom:Refalsh() --self.list_chat.numItems = #self.ChatRoomData.records or 0 self.list_chat.numItems = #self.group.records or 0 self.list_chat:ScrollToView(#self.group.records - 1 or 0) end -- 新战绩推到时刷新一条 function FamilyChatRoom:OnNewChatRefalsh(arg) if self.group == nil then return end self.list_chat.numItems = #self.group.records or 0 self.list_chat:ScrollToView(#self.group.records - 1 or 0) --[[ local groupId = arg.gid local maxRound = arg.datas.maxRound local round = arg.datas.round local playerlist = arg.datas.datas local time = arg.datas.time local roomId = arg.datas.roomid local pid = arg.datas.pid local group = DataManager.groups.groupMap[groupId] local play = group:getPlay(pid) local gameName = play.game_name local obj = self.list_chat:AddItemFromPool() local list_players = obj:GetChild("list_players") local tex_time = obj:GetChild("tex_time") local tex_name = obj:GetChild("tex_name") local tex_roomIdRound = obj:GetChild("tex_roomIdRound") tex_time.text = os.date("游戏结算:%m月%d号 %X", time) --data.create_time tex_name.text = gameName local roundTex = round .. "/" .. maxRound tex_roomIdRound.text = roomId .. "\n" .. roundTex SetBigWiller(playerlist) for _, player in pairs(playerlist) do local pObj = list_players:AddItemFromPool() local tex_name = pObj:GetChild("tex_name") local loader_icon = pObj:GetChild("loader_icon") local tex_id = pObj:GetChild("tex_id") local tex_score = pObj:GetChild("tex_score") tex_name.text = player.nick tex_id.text = player.accId tex_score.text = player.score ImageLoad.Load(player.portrait, loader_icon) if player.winer then pObj:GetController("cWiner").selectedIndex = 1 else pObj:GetController("cWiner").selectedIndex = 0 end end ]] end function FamilyChatRoom:Show() local mgr_ctr = ControllerManager.GetController(GroupMgrController) local groupId = self.root._group.id self.group = DataManager.groups:get(groupId) local getData = self.group.records == nil mgr_ctr:FG_ENTER_CHATROOM(self.root._group.id, getData, function(res) if res.returnCode == 0 then ViewUtil.ShowModalWait(self._root_view, "正在加载聊天室......") end end) local cChatRoom = self.root._view:GetController("cIsChatRoom") cChatRoom.selectedIndex = 1 end return FamilyChatRoom