local UIFightThroneRewardPreviewPopUp = UIViewClass() local TAB_TYPE_COLLECT = 1 local TAB_TYPE_PERSON = 2 local TAB_TYPE_GUILD = 3 local TAB_TYPE_NAME = { Const_IDS.IDS_FightThronePreviewTab1, Const_IDS.IDS_FightThronePreviewTab2, Const_IDS.IDS_FightThronePreviewTab3, } function UIFightThroneRewardPreviewPopUp:OnOpened(context) self.itemSourceObj = self.item.gameObject self.isCross = CTL.WarZone.IsWarZoneOpen() --决定是否读取跨服配置 UIUtils.SetLabelText(self.UICommonPopUpTab.txt_Title, Const_IDS.IDS_Gift_RewardPreview) for i = TAB_TYPE_COLLECT, TAB_TYPE_GUILD do self.UICommonPopUpTab.loop_Tab:AddData(i, 0); end self.tabType = nil self.UICommonPopUpTab.loop_Tab:SelectIndex(0) end function UIFightThroneRewardPreviewPopUp:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.UICommonPopUpTab.loop_Tab then UIUtils.SetActive(cellTable.img_RedDot, false) UIUtils.SetActive(cellTable.img_Arrow, false) UIUtils.SetActive(cellTable.img_ArrowS, false) UIUtils.SetActive(cellTable.group_SignState, false) UIUtils.SetActive(cellTable.group_SignStateS, false) UIUtils.SetLabelText(cellTable.txt_Name_Nomal, TAB_TYPE_NAME[data]) UIUtils.SetLabelText(cellTable.txt_Name_Selected, TAB_TYPE_NAME[data]) elseif scrollRect == self.loop_RewardPreview then local success local lastData --名次需要找上一个data local rewardArray local isGuild = self.tabType == TAB_TYPE_GUILD if isGuild then success, lastData = DataSheetManager.FightThroneGuildRank:TryGetDataByID(index) rewardArray = self:GetRewardArray(true, data) else success, lastData = DataSheetManager.FightThronePersonRank:TryGetDataByID(index) rewardArray = self:GetRewardArray(false, data) end if lastData == nil then if data.Rank > 1 then cellTable.txt_Rank.text = "1-" .. data.Rank else cellTable.txt_Rank.text = 1 end else if lastData.Rank + 1 == data.Rank then cellTable.txt_Rank.text = data.Rank else if data.Rank == 0 then cellTable.txt_Rank.text = string.FormatByIdsId(Const_IDS.IDS_DemonGod_UI_39, lastData.Rank + 1) else cellTable.txt_Rank.text = string.format("%d-%d", lastData.Rank + 1, data.Rank) end end end for i, v in ipairs(rewardArray) do local item = cellTable.Content[i] if item == nil then item = self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.Content, self.itemSourceObj) end UIUtils.SetActive(item.gameObject, true) UTL.Item.SetItemCell(item.item, CTL.GuildAuction.LvBuItemToSuperGoldenHeroItem(v.ItemID), v.ItemNum) if isGuild then UIUtils.SetActive(item.img_Icon, true) else UIUtils.SetActive(item.img_Icon, false) end end for i = #rewardArray + 1, #cellTable.Content do local item = cellTable.Content[i] UIUtils.SetActive(item.gameObject, false) end else for i, v in ipairs(self.group_loop) do if scrollRect == v then UTL.Item.SetItemCell(cellTable.item, data.ItemID, data.ItemNum) break end end end end function UIFightThroneRewardPreviewPopUp:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.loop_RewardPreview then for i, v in ipairs(cellTable.Content) do if v.item.event_Click == target then local reward = self:GetRewardArray(self.tabType == TAB_TYPE_GUILD, data) UTL.ItemTips.ShowCommonTipsById(CTL.GuildAuction.LvBuItemToSuperGoldenHeroItem(reward[i].ItemID)) break end end else for i, v in ipairs(self.group_loop) do if scrollRect == v then UTL.ItemTips.ShowCommonTipsById(data.ItemID) break end end end end function UIFightThroneRewardPreviewPopUp:OnCellSelect(scrollRect, index, cellTable, data) if scrollRect == self.UICommonPopUpTab.loop_Tab then self:OnTabChange(data) end end function UIFightThroneRewardPreviewPopUp:OnButtonClicked(comp) if comp == self.UICommonPopUpTab.btn_Close then self:CloseView() else for i, v in ipairs(self.group_item) do if comp == v.event_Click then UTL.ItemTips.ShowCommonTipsById(self.sourceItemIdList[i]) break end end end end function UIFightThroneRewardPreviewPopUp:OnBackButtonPressed() self:OnButtonClicked(self.UICommonPopUpTab.btn_Close) end function UIFightThroneRewardPreviewPopUp:OnTabChange(type) if type == self.tabType then return end self.tabType = type if type == TAB_TYPE_COLLECT then UIUtils.SetActive(self.panel_Box, true) UIUtils.SetActive(self.panel_Rank, false) self:InitCollectRewardData() else UIUtils.SetActive(self.panel_Box, false) UIUtils.SetActive(self.panel_Rank, true) self.loop_RewardPreview:ClearCells() if type == TAB_TYPE_GUILD then UIUtils.SetLabelText(self.lab_Title1, Const_IDS.IDS_FightThronePreviewGuild1) UIUtils.SetLabelText(self.lab_Title2, Const_IDS.IDS_FightThronePreviewGuild2) for _, v in DataSheetManager.FightThroneGuildRank:GetEnumerator() do if self:HasReward(true, v) then self.loop_RewardPreview:AddData(v, 0) end end else UIUtils.SetLabelText(self.lab_Title1, Const_IDS.IDS_FightThronePreviewPersonal1) UIUtils.SetLabelText(self.lab_Title2, Const_IDS.IDS_FightThronePreviewPersonal2) for _, v in DataSheetManager.FightThronePersonRank:GetEnumerator() do if self:HasReward(false, v) then self.loop_RewardPreview:AddData(v, 0) end end end end end function UIFightThroneRewardPreviewPopUp:InitCollectRewardData() if self.sourceItemIdList == nil then self.sourceItemIdList = {} for i, v in DataSheetManager.RewardPreview:GetEnumerator() do local item = self.group_item[i] if item then self.sourceItemIdList[i] = v.ItemID UTL.Item.SetItemCell(item, v.ItemID) local loopScroll = self.group_loop[i] local cfg = DataSheetManager.RewardClientShow:GetDataByClientShowID(v.RewardClientShow) local itemTable = DataSheetUtil.GetRewardClientShowItemTable(cfg) for _, itemData in ipairs(itemTable) do loopScroll:AddData(itemData, 0) end else break end end self.txt_Remind.text = MDL.FightThrone.GetJadeCombineDesc() else for _, loopScroll in ipairs(self.group_loop) do loopScroll:MoveIndex(0) end end end function UIFightThroneRewardPreviewPopUp:HasReward(isGuild, data) if isGuild then if self.isCross then return data.CrossSeverRewardPoolID > 0 else return data.RewardPoolID > 0 end else if self.isCross then return data.CrossSeverPersonalReward > 0 else return data.PersonalReward > 0 end end end function UIFightThroneRewardPreviewPopUp:GetRewardArray(isGuild, data) if isGuild then return MDL.FightThrone.GetAuctionPoolRewardArray(data) else if self.isCross then return DataSheetManager.FightThronePersonReward:GetDataByID(data.CrossSeverPersonalReward).Item_Table else return DataSheetManager.FightThronePersonReward:GetDataByID(data.PersonalReward).Item_Table end end end return UIFightThroneRewardPreviewPopUp