local UISubjectMonthRogueStarReward = UIViewClass() function UISubjectMonthRogueStarReward:OnOpened(context) self:RegistSystemEvent(EventID.UI_SubjectMonth_Rogue_UpdateLevelInfo,self.RefreshPanel) self:RegistSystemEvent(EventID.UI_OperationActivity_CloseView, self.OnCloseActivitySelf) self.activityId = MDL.SubjectMonth.GetActivityId() self.level = context.level self.canReceive = {} self.itemMap = {} UIUtils.SetLabelText(self.UICommonPopUp.txt_Title, Const_IDS["IDS_WantedTask_StarReward"]) local cfg = DataSheetManager.VersionsRoguelikeLevel:GetDataByID(self.level) self.levelId = cfg.LevelID for i, v in ipairs(cfg.Item_Table) do local cell = self.group_LockCondition[i] if not cell then cell = self:InstantiateCollection(self.group_LockCondition, self.group_LockCondition[1].gameObject) UIUtils.SetActive(cell.gameObject, true) end UTL.Item.SetItemCell(cell.item, v.ItemID, v.ItemNum) self.itemMap[i] = v.ItemID local levelEvaluationData = DataSheetManager.LevelEvaluationData:GetDataByLevelID_Order(self.levelId, i) UIUtils.SetLabel(cell.txt_Condition, string.format(UIUtils.GetLocalizedTxt(Const_IDS[levelEvaluationData.EvaluationNextIDS]), levelEvaluationData.Param1)) for _, v in ipairs(cfg.Convenience_Table) do if v.Num == i then local name, desc = MDL.HeroStar.GetTalentNameAndDesc(v.DevelopEffectID) UIUtils.SetLabel(cell.txt_DevelopEffect, desc) break end end end self:RefreshPanel() end function UISubjectMonthRogueStarReward:RefreshPanel() local starNum = MDL.Rogue.GetLevelStarNum(self.level) local cfg = DataSheetManager.VersionsRoguelikeLevel:GetDataByID(self.level) for i, v in ipairs(cfg.Item_Table) do local cell = self.group_LockCondition[i] UIUtils.SetActive(cell.img_Star, starNum >= i) self.canReceive[i] = false cell.effect_Receive:StopUIEffect() if starNum >= i then if MDL.Rogue.hasReceivedLevelStarReward(self.level, i) then cell.state_Item:SetState(2) else cell.state_Item:SetState(1) self.canReceive[i] = true cell.effect_Receive:PlayUIEffect() end else cell.state_Item:SetState(0) end end end function UISubjectMonthRogueStarReward:OnButtonClicked(comp) if comp == self.UICommonPopUp.btn_Close then self:CloseView() else for i, v in ipairs(self.group_LockCondition) do if comp == v.item.event_Click then if self.canReceive[i] then MDL.Rogue.SubjectMonthReceiveLevelStartRewardReq(self.level, i) else UTL.ItemTips.ShowCommonTipsById(self.itemMap[i]) end end end end end function UISubjectMonthRogueStarReward:OnCloseActivitySelf(viewClassPath, activityId) if viewClassPath == self.__viewClassPath then if self.activityId and activityId == self.activityId then self:CloseView() end end end return UISubjectMonthRogueStarReward