local UISubjectMonthChallengeScoreReward = UIViewClass() function UISubjectMonthChallengeScoreReward:OnOpened(context) self:RegistSystemEvent(EventID.UI_SubjectMonth_SelectBoss, self.SelectBoss) self:RegistSystemEvent(EventID.UI_SubjectMonth_UpdateBossChallengeInfo, self.RefreshScoreReward) self:SelectBoss(context.bossId) end function UISubjectMonthChallengeScoreReward:SelectBoss(bossId) self.bossId = bossId local state, leftTime = CTL.MonthBossChallenge.GetStateByBossId(bossId) UIUtils.SetActive(self.obj_lock, state == CTL.Activities.ActivityState.NotOpen) self:RefreshScoreReward() end function UISubjectMonthChallengeScoreReward:RefreshScoreReward() if self.loop_Rank.Count > 0 then self.loop_Rank:ClearCells() end local list = CTL.MonthBossChallenge.GetScoreRewardDataByBossId(self.bossId) self.loop_Rank:ReloadAll(list) end function UISubjectMonthChallengeScoreReward:OnCellInit(scrollRect, index, cellTable, data) local score = MDL.MonthBossChallenge.GetScoreByBossId(self.bossId) local cfg = data.cfg local text = UTL.Color.FormatTextByColor(score >= cfg.RankMin and UTL.Color.Green or UTL.Color.White, math.min(score, data.cfg.RankMin)) UIUtils.SetLabel(cellTable.txt_score, string.format("%s/%s", text, cfg.RankMin)) for i, v in ipairs(cfg.Reward_Table) do local itemCell = cellTable.group_Items[i] if not itemCell then itemCell = self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.group_Items, cellTable.group_Items[1].gameObject) end UIUtils.SetActive(itemCell.gameObject, true) UTL.Item.SetItemCell(itemCell, v.RewardItem, v.RewardNum) end for i = #cfg.Reward_Table + 1, #cellTable.group_Items do UIUtils.SetActive(cellTable.group_Items[i].gameObject, false) end local status = data.status local taskStateEnum = MDL.OACommon.ActivityTaskState if status == taskStateEnum.UnDone then cellTable.state_Btn:SetState(0) elseif status == taskStateEnum.Done then cellTable.state_Btn:SetState(1) elseif status == taskStateEnum.Commit then cellTable.state_Btn:SetState(2) end end function UISubjectMonthChallengeScoreReward:OnCellClicked(scrollRect, index, cellTable, target, data) if target == cellTable.btn_Receive then MDL.MonthBossChallenge.GetSubjectMonthBossChallengeRewardReq(self.bossId, data.cfg.ID) else for i, v in ipairs(cellTable.group_Items) do if v.event_Click == target then local cfg = data.cfg UTL.ItemTips.ShowCommonTipsById(cfg.Reward_Table[i].RewardItem) break end end end end return UISubjectMonthChallengeScoreReward