local UISubjectMonthRogueHeroLvReward = UIViewClass() local LevelFormatStr = "%s/%s" function UISubjectMonthRogueHeroLvReward:OnOpened(context) self:RegistSystemEvent(EventID.UI_SubjectMonth_Rogue_UpdateHeroInfo,self.RefreshPanel) self:RegistSystemEvent(EventID.UI_OperationActivity_CloseView, self.OnCloseActivitySelf) self.activityId = MDL.SubjectMonth.GetActivityId() self.heroId = context.heroId UIUtils.SetLabelText(self.UICommonPopUp.txt_Title, Const_IDS.IDS_GodBeastActivity_ChildTitle_3) self:RefreshPanel() end function UISubjectMonthRogueHeroLvReward:RefreshPanel() local list = CTL.Rogue.GetSortHeroLevelRewardData(self.heroId) if self.scroll_LvReward.Count > 0 then self.scroll_LvReward:ClearCells() end for i, v in ipairs(list) do self.scroll_LvReward:AddData(v, 0) end end function UISubjectMonthRogueHeroLvReward:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.scroll_LvReward then local showLevel = MDL.Rogue.GetHeroLevel(self.heroId) local color = UTL.Color.White if showLevel >= data.cfg.Level then showLevel = data.cfg.Level color = UTL.Color.Green end local levelStr = string.format(LevelFormatStr, UTL.Color.FormatTextByColor(color, showLevel), data.cfg.Level) UIUtils.SetLabel(cellTable.txt_Lv, levelStr) local rewardList = data.cfg.Reward_Table for i = 1, #rewardList do local itemCell = cellTable.Content[i] if not itemCell then itemCell = self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.Content, cellTable.Content[1].gameObject) end UIUtils.SetActive(itemCell.gameObject, true) UTL.Item.SetItemCell(itemCell, rewardList[i].Item, rewardList[i].ItemNum) end for i = #rewardList + 1, #cellTable.Content do UIUtils.SetActive(cellTable.Content[i].gameObject, false) end cellTable.state:SetState(data.taskStatus) end end function UISubjectMonthRogueHeroLvReward:OnCellClicked(scrollRect, index, cellTable, target, data) if target == cellTable.btn_Receive then MDL.Rogue.SubjectMonthHeroLevelRewardReq(self.heroId, data.cfg.Level) else for i, v in ipairs(cellTable.Content) do if target == v.event_Click then UTL.ItemTips.ShowCommonTipsById(data.cfg.Reward_Table[i].Item) end end end end function UISubjectMonthRogueHeroLvReward:OnButtonClicked(comp) if comp == self.UICommonPopUp.btn_Close then self:CloseView() end end function UISubjectMonthRogueHeroLvReward:OnCloseActivitySelf(viewClassPath, activityId) if viewClassPath == self.__viewClassPath then if self.activityId and activityId == self.activityId then self:CloseView() end end end return UISubjectMonthRogueHeroLvReward