local UICountryResetRewardPreview = UIViewClass() local TabType = { Member = 0, Guild = 1, } function UICountryResetRewardPreview:OnOpened(context) self.itemDict = {} self.curTabType = TabType.Member self.curVictory = true UIUtils.SetLabelText(self.UICommonPopUp.txt_Title, Const_IDS["IDS_RewardPreview"]) self.UICommonPopUp.loop_Tab:AddData("IDS_Country_CheckMemberBtn", 0) self.UICommonPopUp.loop_Tab:AddData("IDS_CHAT_Name_2_Guild", 0) self.UICommonPopUp.loop_Tab:SelectIndex(0) end function UICountryResetRewardPreview:OnValueChanged(comp, value) if comp == self.toggle_TopGroup then self.curVictory = value == 0 self:ShowReward(self.curTabType, self.curVictory) end end function UICountryResetRewardPreview:OnButtonClicked(comp) if comp == self.UICommonPopUp.btn_Close then self:CloseView() end end function UICountryResetRewardPreview:ShowReward(tabType, victory) self.loop_RewardPreview:ClearCells() if tabType == TabType.Member then for _, data in DataSheetManager.CountrySeasonPlayerRankReward:GetEnumerator() do if victory and data.GroupID == 1 then self.loop_RewardPreview:AddData(data, 0) elseif not victory and data.GroupID == 2 then self.loop_RewardPreview:AddData(data, 0) end end UIUtils.SetLabelText(self.txt_Tip, Const_IDS.IDS_Country_PlayerRewardIntro) elseif tabType == TabType.Guild then for _, data in DataSheetManager.CountrySeasonGuildRankReward:GetEnumerator() do if victory and data.GroupID == 1 then self.loop_RewardPreview:AddData(data, 0) elseif not victory and data.GroupID == 2 then self.loop_RewardPreview:AddData(data, 0) end end UIUtils.SetLabelText(self.txt_Tip, Const_IDS.IDS_Country_GuildRewardIntro) end end function UICountryResetRewardPreview:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.loop_RewardPreview then local rewardPoolID = data.RewardPoolID local rewardCount = 0 local rewardPoolList = nil if self.curTabType == TabType.Member then UIUtils.SetActive(cellTable.img_GuildBg, false) if not string.isNilOrEmpty(data.ImagePath) then cellTable.img_CountryBg.enabled = true UIUtils.SetImageByAssetBundle(cellTable.img_CountryBg, data.ImagePath) else cellTable.img_CountryBg.enabled = false end UIUtils.SetActive(cellTable.img_CountryBg, true) cellTable.txt_CountryTitle.text = UIUtils.GetLocalizedTxt(Const_IDS[data.TitleText]) rewardPoolList = DataSheetManager.CountrySeasonPlayerRewardPool:GetDataByID(data.RewardPoolID) for i, v in ipairs(rewardPoolList.Item_Table) do local obj = cellTable.Content[i] if obj == nil then obj = self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.Content, self.cell_CRIcon.gameObject) UIUtils.SetActive(obj.gameObject, true) end UIUtils.SetActive(obj.gameObject, true) UTL.Item.SetItemCell(obj.item, v.ItemID, v.ItemNum) self.itemDict[obj.item.event_Click] = v.ItemID UIUtils.SetActive(obj.img_HeadBg, false) end rewardCount = #rewardPoolList.Item_Table else UIUtils.SetActive(cellTable.img_GuildBg, true) UIUtils.SetActive(cellTable.img_CountryBg, false) cellTable.txt_GuildTitle.text = UTL.Color.GetColorfulText(data.Color1, data.TitleText) UIUtils.SetImageByAssetBundle(cellTable.img_GuildBg, data.ImagePath) rewardPoolList = DataSheetManager.CountrySeasonGuildRewardPool:GetDataByID(data.RewardPoolID) print(rewardPoolList.QueueRward_Table) for i, v in ipairs(rewardPoolList.AssignRward_Table) do local obj = cellTable.Content[i] if obj == nil then obj = self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.Content, self.cell_CRIcon.gameObject) UIUtils.SetActive(obj.gameObject, true) end UIUtils.SetActive(obj.gameObject, true) local rewardData = DataSheetManager.CountryRewards:GetDataByID(v.AssignRwardID) UTL.Item.SetItemCell(obj.item, rewardData.ItemID, v.AssignRwardPortion) self.itemDict[obj.item.event_Click] = rewardData.ItemID if not string.isNilOrEmpty(rewardData.ItemImage) then UIUtils.SetImageByAssetBundle(obj.img_HeroHead, rewardData.ItemImage) UIUtils.SetActive(obj.img_HeadBg, true) else UIUtils.SetActive(obj.img_HeadBg, false) end end local assignCount = #rewardPoolList.AssignRward_Table for i, v in ipairs(rewardPoolList.QueueRward_Table) do local obj = cellTable.Content[assignCount + i] if obj == nil then obj = self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.Content, self.cell_CRIcon.gameObject) UIUtils.SetActive(obj.gameObject, true) end UIUtils.SetActive(obj.gameObject, true) local rewardData = DataSheetManager.CountryRewards:GetDataByID(v.QueueRwardID) UTL.Item.SetItemCell(obj.item, rewardData.ItemID, v.QueueRwardPortion) self.itemDict[obj.item.event_Click] = rewardData.ItemID if not string.isNilOrEmpty(rewardData.ItemImage) then UIUtils.SetImageByAssetBundle(obj.img_HeroHead, rewardData.ItemImage) UIUtils.SetActive(obj.img_HeadBg, true) else UIUtils.SetActive(obj.img_HeadBg, false) end end rewardCount = assignCount + #rewardPoolList.QueueRward_Table end for i = rewardCount + 1, #cellTable.Content do local obj = cellTable.Content[i] UIUtils.SetActive(obj.gameObject, false) end else UIUtils.SetLabelText(cellTable.txt_Name_Nomal, Const_IDS[data]) UIUtils.SetLabelText(cellTable.txt_Name_Selected, Const_IDS[data]) UIUtils.SetActive(cellTable.img_Arrow, false) UIUtils.SetActive(cellTable.img_ArrowS, false) end end function UICountryResetRewardPreview:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.loop_RewardPreview then if self.itemDict[target] then UTL.ItemTips.ShowCommonTipsById(self.itemDict[target]) end end end function UICountryResetRewardPreview:OnCellSelect(scrollRect, index, cellTable, data) if scrollRect == self.UICommonPopUp.loop_Tab then self.curTabType = index self:ShowReward(self.curTabType, self.curVictory) self.lab_State:SetState(index) end end return UICountryResetRewardPreview