local UISubjectMonthRewardMain = UIViewClass() local EventSystem = require('Event/EventSystem') local ActivityState = CTL.Activities.ActivityState local Type = { Rank = 1, RankReward = 2, ScoreReward = 3, } function UISubjectMonthRewardMain:OnOpened(context) self:RegistSystemEvent(EventID.UI_SubjectMonth_UpdateBossChallengeInfo, self.RefreshTab) self:RegistSystemEvent(EventID.UI_OperationActivity_CloseView, self.OnCloseActivitySelf) self.activityId = MDL.SubjectMonth.GetActivityId() self.type = context.type self.bossId = context.bossId if self.type == Type.Rank then UIUtils.SetLabelText(self.UICommonPopUpTab.txt_Title, Const_IDS["IDS_Escort_Rank"]) elseif self.type == Type.RankReward then UIUtils.SetLabelText(self.UICommonPopUpTab.txt_Title, Const_IDS["IDS_GVGFight_Reward_Tab1"]) elseif self.type == Type.ScoreReward then UIUtils.SetLabelText(self.UICommonPopUpTab.txt_Title, Const_IDS["IDS_GoldHeroActivity_SynergyBoss_Button3"]) end local modeId = CTL.SubjectMonth.GetSubActivityModeId(MDL.SubjectMonth.SubActivityType.BossChallenge) local bossList = DataSheetManager.VersionsBossChallengeData:GetDataByBossChallengeModeID(modeId).BossID local index for i, v in ipairs(bossList) do self.UICommonPopUpTab.loop_Tab:AddData(v, 0) if v == self.bossId then index = i end end self.UICommonPopUpTab.loop_Tab:SelectIndex(index - 1) end function UISubjectMonthRewardMain:RefreshTab() if self.UICommonPopUpTab.loop_Tab.Count > 0 then self.UICommonPopUpTab.loop_Tab:RefreshCells() end end function UISubjectMonthRewardMain:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.UICommonPopUpTab.loop_Tab then local bossData = DataSheetManager.VersionsBossChallengeBoss:GetDataByID(data) local name = string.split(UIUtils.GetLocalizedTxt(Const_IDS[bossData.BossChallengeName]),"-")[2] UIUtils.SetLabel(cellTable.txt_Name_Nomal, name) UIUtils.SetLabel(cellTable.txt_Name_Selected, name) UIUtils.SetActive(cellTable.img_Arrow, false) UIUtils.SetActive(cellTable.img_ArrowS, false) local state, leftTime = CTL.MonthBossChallenge.GetStateByBossId(data) UIUtils.SetActive(cellTable.group_End, state == ActivityState.End) UIUtils.SetActive(cellTable.img_lock, state == ActivityState.NotOpen) UIUtils.SetActive(cellTable.img_lockS, state == ActivityState.NotOpen) if self.type == Type.ScoreReward then cellTable.cell:SetRedPoint(CTL.MonthBossChallenge.CanReceiveScoreRewardByBossId(data)) end end end function UISubjectMonthRewardMain:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.UICommonPopUpTab.loop_Tab then if not self.view then if self.type == Type.Rank then self.view = self.subView:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UISubjectMonthChallengeRank), {bossId = data}) elseif self.type == Type.RankReward then self.view = self.subView:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UISubjectMonthChallengeRankReward), {bossId = data}) elseif self.type == Type.ScoreReward then self.view = self.subView:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UISubjectMonthChallengeScoreReward), {bossId = data}) end else EventSystem.Dispatch(EventID.UI_SubjectMonth_SelectBoss, data) end end end function UISubjectMonthRewardMain:OnButtonClicked(comp) if comp == self.UICommonPopUpTab.btn_Close then self:CloseView() end end function UISubjectMonthRewardMain:OnCloseActivitySelf(viewClassPath, activityId) if viewClassPath == self.__viewClassPath then if self.activityId and activityId == self.activityId then self:CloseView() end end end return UISubjectMonthRewardMain