local UISubjectMonthChallengeRankReward = UIViewClass() function UISubjectMonthChallengeRankReward:OnOpened(context) self:RegistSystemEvent(EventID.UI_SubjectMonth_SelectBoss, self.RefreshList) self:RegistSystemEvent(EventID.UI_SubjectMonth_UpdateRankInfo, self.RefreshMyRank) self:RefreshList(context.bossId) end function UISubjectMonthChallengeRankReward:RefreshList(bossId) self.bossId = bossId local state, leftTime = CTL.MonthBossChallenge.GetStateByBossId(bossId) UIUtils.SetActive(self.obj_lock, state == CTL.Activities.ActivityState.NotOpen) MDL.SubjectMonth.GetSubjectMonthRankRecordReq(MDL.SubjectMonth.SubActivityType.BossChallenge, self.bossId) self.view_StageSelect:ClearCells() for i, v in DataSheetManager.VersionsBossChallengeRankReward:GetEnumerator() do if bossId == v.BossChallengeID then self.view_StageSelect:AddData(v, 0) end end self:RefreshMyRankCell() end function UISubjectMonthChallengeRankReward:RefreshMyRankCell() if self.view_StageSelect.Count > 0 then local myRankInfo = MDL.SubjectMonth.GetMyRankInfo(MDL.SubjectMonth.SubActivityType.BossChallenge, self.bossId) if myRankInfo and myRankInfo.index > 0 then for i, v in DataSheetManager.VersionsBossChallengeRankReward:GetEnumerator() do if myRankInfo.index >= v.RankMin and myRankInfo.index <= v.RankMax then local cellTable = self.view_StageSelect:GetCellTableByIndex(i - 1) UIUtils.SetActive(cellTable.img_Now, true) return end end end end end function UISubjectMonthChallengeRankReward:OnCellInit(scrollRect, index, cellTable, data) if data.RankMin == data.RankMax then if data.RankMin == 1 then cellTable.state_imgRank:SetState(0) elseif data.RankMin == 2 then cellTable.state_imgRank:SetState(1) end else cellTable.state_imgRank:SetState(2) if data.RankMin == data.RankMax then UIUtils.SetLabel(cellTable.txt_Rank, data.RankMin) else UIUtils.SetLabel(cellTable.txt_Rank, string.format("%s - %s", data.RankMin, data.RankMax)) end end local cfg = DataSheetManager.VersionsActivityReward:GetDataByAttrRepeatID(data.RewardRepeat) for i, v in ipairs(cfg.Item_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.ItemID, v.ItemNum) end for i = #cfg.Item_Table + 1, #cellTable.group_Items do UIUtils.SetActive(cellTable.group_Items[i].gameObject, false) end UIUtils.SetActive(cellTable.img_Now, false) end function UISubjectMonthChallengeRankReward:OnCellClicked(scrollRect, index, cellTable, target, data) for i, v in ipairs(cellTable.group_Items) do if v.event_Click == target then local cfg = DataSheetManager.VersionsActivityReward:GetDataByAttrRepeatID(data.RewardRepeat) UTL.ItemTips.ShowCommonTipsById(cfg.Item_Table[i].ItemID) break end end end function UISubjectMonthChallengeRankReward:OnButtonClicked(comp) if comp == self.UICommonPopUp.btn_Close then self:CloseView() end end return UISubjectMonthChallengeRankReward