local UIDragonArteryCountryRankPanel = UIViewClass() function UIDragonArteryCountryRankPanel:OnOpened(context) self:RegistSystemEvent(EventID.UI_DragonArtery_GetRankReward, self.OnGetRankReward) UIUtils.SetLabelText(self.UICommonPopUp.txt_Title, Const_IDS.IDS_DragonArtey_SoulRank) local minPoint = DataSheetManager.ConstData:GetDataByID("DragonArteryRewardPoint").IntValue self.lab_Tips.text = string.FormatByIdsId(Const_IDS.IDS_DragonArtey_MinPoints, minPoint) self.loop_DACountryRank:ReloadAll(context.rankInfo) end function UIDragonArteryCountryRankPanel:OnGetRankReward() self.context.hasGetReward = true self.loop_DACountryRank:ReloadAll(self.context.rankInfo) end function UIDragonArteryCountryRankPanel:OnCellInit(scrollRect, index, cellTable, data) cellTable.state_Rank:SetState(data.index - 1) UTL.String.SetCountryName(cellTable.txt_Country, data.countryId) cellTable.txt_MonarchName.text = data.countryKing cellTable.txt_DragonSoulNum.text = data.dragonSoul cellTable.txt_SingleScore.text = data.totalScore local isMySelf = self.context.myCountryId == data.countryId UIUtils.SetActive(cellTable.img_MyBg, isMySelf) --奖励 local reward = DataSheetManager.DragonArteryCountryRank:GetDataByCountryRank(data.index) --个人奖励 local personRewardArray = DataSheetManager.DragonArteryRankReward:GetDataByID(reward.RewardID).Item_Table self:SetCellRewards(personRewardArray, cellTable, isMySelf) --国家奖励 local countryRewardArray = DataSheetManager.DragonArteryRankReward:GetDataByID(reward.CountryRewardID).Item_Table for i, contentItem in ipairs(cellTable.group_CountryItem) do local data = countryRewardArray[i] if data then UIUtils.SetActive(contentItem.gameObject, true) contentItem.ItemID = data.ItemID UTL.Item.SetItemCell(contentItem.item, data.ItemID, data.ItemNum) else UIUtils.SetActive(contentItem.gameObject, false) end end end function UIDragonArteryCountryRankPanel:SetCellRewards(rewardData, cellTable, isMySelf) for i, reward in ipairs(rewardData) do local item = cellTable.Content[i] if not item then item = self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.Content, self.itemTemplate.gameObject) end UTL.Item.SetItemCell(item.item, reward.ItemID, reward.ItemNum) UIUtils.SetActive(item.gameObject, true) self:UpdateItemGetState(item, isMySelf) end for i = #rewardData + 1, #cellTable.Content do UIUtils.SetActive(cellTable.Content[i].gameObject, false) end end function UIDragonArteryCountryRankPanel:OnCellClicked(scrollRect, index, cellTable, target, data) local isGetReward = self.context.myCountryId == data.countryId and self.context.hasReward and self.context.hasGetReward == false --国家奖励 for i, v in ipairs(cellTable.group_CountryItem) do if target == v.item.event_Click then UTL.ItemTips.ShowCommonTipsById(v.ItemID) return end end --个人奖励 local reward = DataSheetManager.DragonArteryCountryRank:GetDataByCountryRank(data.index) local personRewardArray = DataSheetManager.DragonArteryRankReward:GetDataByID(reward.RewardID).Item_Table self:OnClickRewardItem(target, cellTable, personRewardArray, isGetReward) end function UIDragonArteryCountryRankPanel:OnClickRewardItem(target, cellTable, rewardData, isGetReward) for i = 1, #cellTable.Content do if cellTable.Content[i].item.event_Click == target then if isGetReward then MDL.DragonArtery.DragonArteryCountryRankRewardReq() else UTL.ItemTips.ShowCommonTipsById(rewardData[i].ItemID) end end end end function UIDragonArteryCountryRankPanel:UpdateItemGetState(itemCol, isMySelf) if isMySelf then if self.context.hasReward then if self.context.hasGetReward == false then UIUtils.SetActive(itemCol.img_Get, false) UIUtils.SetActive(itemCol.item.effect_Receive, true) itemCol.item.effect_Receive:PlayUIEffect() else UIUtils.SetActive(itemCol.img_Get, true) UIUtils.SetActive(itemCol.item.effect_Receive, false) itemCol.item.effect_Receive:StopUIEffect() end else UIUtils.SetActive(itemCol.img_Get, false) UIUtils.SetActive(itemCol.item.effect_Receive, false) itemCol.item.effect_Receive:StopUIEffect() end else UIUtils.SetActive(itemCol.img_Get, false) UIUtils.SetActive(itemCol.item.effect_Receive, false) itemCol.item.effect_Receive:StopUIEffect() end end function UIDragonArteryCountryRankPanel:OnBackButtonPressed() self:OnButtonClicked(self.UICommonPopUp.btn_Close) end function UIDragonArteryCountryRankPanel:OnButtonClicked(comp) if comp == self.UICommonPopUp.btn_Close then self:CloseView() end end function UIDragonArteryCountryRankPanel:OnClosed() --没有奖励的关闭界面,需要移除消息球 if self.context.hasReward == false or self.context.hasGetReward then MDL.DragonArtery.ClearInfoRemind() end end return UIDragonArteryCountryRankPanel