local UISubjectMonthHonorOrderTask = UIViewClass() function UISubjectMonthHonorOrderTask:OnOpened(context) self:Init() end function UISubjectMonthHonorOrderTask:Init(context) self:RegistSystemEvent(EventID.UI_SubjectMonth_UpdateHonorOrderInfo, self.RefreshPanel) MDL.MonthHonorOrder.GetSubjectMonthBattlePassTaskReq() UTL.Toggle.InitToggleGroupByIDS(self.toggle_UpGroup, "text_toggle", {Const_IDS.IDS_VersionsActivity_BattlePass_Hint5, Const_IDS.IDS_VersionsActivity_BattlePass_Hint6}) self.isInit = false end function UISubjectMonthHonorOrderTask:RefreshPanel() if not self.isInit then local defaultIndex = 0 for _, v in pairs(MDL.MonthHonorOrder.TaskType) do if CTL.MonthHonorOrder.CanReceiveAnyTaskRewardByType(v) then defaultIndex = v - 1 break end end self.toggle_UpGroup:SelectIndex(defaultIndex) self.isInit = true else self:RefreshTaskList() end self:RefreshRedPoint() end function UISubjectMonthHonorOrderTask:OnValueChanged(comp, value) if comp == self.toggle_UpGroup then self.taskType = value + 1 self:RefreshTaskList() self.loop_HegemonyTask:MoveIndex(0) end end function UISubjectMonthHonorOrderTask:RefreshRedPoint() self.toggle_UpGroup:SetRedPoint(0, CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.SubjectMonthHonorOrderGameTask)) self.toggle_UpGroup:SetRedPoint(1, CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.SubjectMonthHonorOrderMonthTask)) end function UISubjectMonthHonorOrderTask:RefreshTaskList() local info = MDL.MonthHonorOrder.GetTaskInfo(self.taskType) if IsProtoDataNotNil(info) then self.loop_HegemonyTask:ReloadAll(info) end end function UISubjectMonthHonorOrderTask:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.loop_HegemonyTask then local cfg = self:GetTaskCfg(data.taskId, data.orderId) UTL.Item.SetItemCell(cellTable.Item, cfg.Reward) UIUtils.SetLabel(cellTable.txt_Num, cfg.Num) local triggerData = DataSheetManager.TriggerID:GetDataByID(cfg.TriggerID).Unlock_Table[1] cellTable.cell_State:SetState(data.taskStatus) UIUtils.SetLabelText(cellTable.txt_TaskName, Const_IDS[cfg.TaskName]) -- 挑战标题 local target = MDL.Unlock.GetTargetNumberByTriggerID(cfg.TriggerID) local curValue = data.taskStatus == 0 and UTL.Color.FormatRedColor(data.taskProgress) or UTL.Color.FormatGreenColor(target) UIUtils.SetLabel(cellTable.txt_TaskProgress, MDL.Unlock.GetDesByTriggerID(triggerData)..string.format("(%s/%s)", curValue, target)) end end function UISubjectMonthHonorOrderTask:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.loop_HegemonyTask then if target == cellTable.btn_GoTo then local cfg = self:GetTaskCfg(data.taskId, data.orderId) local triggerData = DataSheetManager.TriggerID:GetDataByID(cfg.TriggerID).Unlock_Table[1] local gotoViewID = DataSheetManager.TriggerType:GetDataByID(triggerData.UnlockCondition).ItemSourceID local unlockId = DataSheetManager.ItemSource:GetDataByID(gotoViewID).UnlockID if unlockId > 0 and not MDL.Unlock.IsUnlock(unlockId) then CTL.Tips.AddTipsMsg(Const_IDS["IDS_7DayActivity_Hint_6"]) return end CTL.ItemSources.ExecuteSourceFunctionById(gotoViewID) elseif target == cellTable.btn_Collect then MDL.MonthHonorOrder.GetSubjectMonthBattlePassTaskRewardReq(data.taskId, self.taskType) elseif target == cellTable.Item.event_Click then local cfg = self:GetTaskCfg(data.taskId, data.orderId) UTL.ItemTips.ShowCommonTipsById(cfg.Reward) end end end function UISubjectMonthHonorOrderTask:GetTaskCfg(taskId, orderId) local battlePassId = CTL.MonthHonorOrder.GetBattlePassId() if self.taskType == MDL.MonthHonorOrder.TaskType.GameTask then return DataSheetManager.VersionsBattlePassTask1:GetDataByBattlePassID_TaskID_TaskOrderID(battlePassId, taskId, orderId) elseif self.taskType == MDL.MonthHonorOrder.TaskType.MonthTask then return DataSheetManager.VersionsBattlePassTask2:GetDataByBattlePassID_TaskID_TaskOrderID(battlePassId, taskId, orderId) end end function UISubjectMonthHonorOrderTask:OnButtonClicked(comp) if comp == self.btn_Tab1 then self:SelectTaskType(MDL.MonthHonorOrder.TaskType.GameTask) elseif comp == self.btn_Tab2 then self:SelectTaskType(MDL.MonthHonorOrder.TaskType.MonthTask) end end return UISubjectMonthHonorOrderTask