local UIMonopolyTasks = UIViewClass() ----------------------------- 系统函数 ----------------------------- function UIMonopolyTasks:OnOpened(context) UIUtils.SetLabelText(self.UICommonPopUpTab.txt_Title, Const_IDS["IDS_Monopoly_Task_Title"]) self:RegistSystemEvent(EventID.UI_Monopoly_RefreshTasks, self.RefreshPanel) self.activityId = context.activityId -- 开启奖励提示 MDL.Reward.SetCloseRewardTipShow(false) MDL.Monopoly.MonopolyGetTaskRequest(context.activityId) self:StartRepeatFunc(self.RefreshActivityTime, 1, -1) end function UIMonopolyTasks:OnBackButtonPressed() self:OnButtonClicked(self.UICommonPopUpTab.btn_Close) end function UIMonopolyTasks:OnButtonClicked(comp) if comp == self.UICommonPopUpTab.btn_Close then self:CloseView() end end function UIMonopolyTasks:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.UICommonPopUpTab.loop_Tab then local firstTaskInfo = CTL.Monopoly.GetTaskInfoByTypeAndIndex(self.activityId, data, 1) UIUtils.SetLabel(cellTable.txt_Name_Nomal, firstTaskInfo.PushTabName) UIUtils.SetLabel(cellTable.txt_Name_Selected, firstTaskInfo.PushTabName) UIUtils.SetActive(cellTable.img_UnSelected, data ~= self.context.selectedTypeID) UIUtils.SetActive(cellTable.img_Selected, data == self.context.selectedTypeID) UIUtils.SetActive(cellTable.img_Arrow, false) UIUtils.SetActive(cellTable.img_ArrowS, false) elseif scrollRect == self.Loop_Tasks then local taskInfo = CTL.Monopoly.GetTaskInfoByTypeAndIndex(self.activityId, self.context.selectedTypeID, data) if taskInfo then CTL.Monopoly.CondData2TriggerParams(taskInfo.triggerData.Task_Table) local triggerId = CTL.Monopoly.GetTriggerParams().UnlockCondition UIUtils.SetLabel(cellTable.txt_TaskContent, MDL.Unlock.GetDesByTriggerID(CTL.Monopoly.GetTriggerParams(), taskInfo.taskState ~= CTL.Monopoly.TaskStateType.UnDone, MDL.Monopoly.GetTriggerNum(triggerId))) UTL.Item.SetItemCell(cellTable.Item1, taskInfo.TaskReward_Table[1].TaskRewardID, taskInfo.TaskReward_Table[1].TaskRewardNum) UIUtils.SetActive(cellTable.Item2.gameObject, taskInfo.TaskReward_Table[2] ~= nil) if taskInfo.TaskReward_Table[2] then UTL.Item.SetItemCell(cellTable.Item2, taskInfo.TaskReward_Table[2].TaskRewardID, taskInfo.TaskReward_Table[2].TaskRewardNum) end if taskInfo.taskState == CTL.Monopoly.TaskStateType.Claimed then cellTable.Loc_Collected:SetState(1) else cellTable.Loc_Collected:SetState(0) cellTable.Loc_Btn:SetState(taskInfo.taskState == CTL.Monopoly.TaskStateType.UnDone and 1 or 0) end end end end function UIMonopolyTasks:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.UICommonPopUpTab.loop_Tab then local firstTaskInfo = CTL.Monopoly.GetTaskInfoByTypeAndIndex(self.activityId, data, 1) if self.context.selectedTypeID ~= firstTaskInfo.TaskType then self.context.selectedTypeID = firstTaskInfo.TaskType self.UICommonPopUpTab.loop_Tab:RefreshCells(false) self:RefreshTasks(true) end elseif scrollRect == self.Loop_Tasks then local taskInfo = CTL.Monopoly.GetTaskInfoByTypeAndIndex(self.activityId, self.context.selectedTypeID, data) if target == cellTable.event_Collect then if taskInfo then if taskInfo.taskState == CTL.Monopoly.TaskStateType.Done then if not MDL.Monopoly.IsOpenMonopolyActivity(self.activityId) then CTL.Tips.AddTipsMsg(Const_IDS["IDS_RebelStrike_NotAtActivityTime"]) return end MDL.Monopoly.MonopolyTaskRewardRequest(taskInfo.ID, self.activityId) elseif taskInfo.taskState == CTL.Monopoly.TaskStateType.UnDone then local triggerType = DataSheetManager.TriggerType:GetDataByID(taskInfo.triggerData.Task_Table[1].Trigger) if triggerType then CTL.ItemSources.ExecuteSourceFunctionById(triggerType.ItemSourceID, nil, { activityId = self.activityId }) end end end elseif target == cellTable.Item1.event_Click then UTL.ItemTips.ShowCommonTipsById(taskInfo.TaskReward_Table[1].TaskRewardID) elseif target == cellTable.Item2.event_Click then UTL.ItemTips.ShowCommonTipsById(taskInfo.TaskReward_Table[2].TaskRewardID) end end end function UIMonopolyTasks:OnClosed() -- 关闭奖励提示 MDL.Reward.SetCloseRewardTipShow(true) end ------------------------------------------------------------------- function UIMonopolyTasks:RefreshPanel(activityId, isClear) if activityId ~= self.activityId then return end if isClear then self.UICommonPopUpTab.loop_Tab:ClearCells() end if self.UICommonPopUpTab.loop_Tab.Count == 0 then -- 初始化 if self.context.selectedTypeID == 0 then self.context.selectedTypeID = CTL.Monopoly.GetFirstDoneTaskType(activityId) self.context.selectedTypeID = self.context.selectedTypeID or 1 end for taskType, _ in pairs(CTL.Monopoly.GetTaskInfos(self.activityId)) do if CTL.Monopoly.GetTaskInfoByTypeAndIndex(self.activityId, taskType, 1) then self.UICommonPopUpTab.loop_Tab:AddData(taskType, 0) end end self.UICommonPopUpTab.loop_Tab:MoveIndex(self.context.selectedTypeID - 1) self:RefreshTasks(true) else self:RefreshTasks() end end function UIMonopolyTasks:RefreshTasks(isReset) if isReset then self.Loop_Tasks:ClearCells() for i = 1, CTL.Monopoly.GetTaskListCountByType(self.activityId, self.context.selectedTypeID) do self.Loop_Tasks:AddData(i, 0) end else self.Loop_Tasks:RefreshCells(false) end end function UIMonopolyTasks:RefreshActivityTime() if not MDL.Monopoly.IsOpenMonopolyActivity(self.activityId) then self:StopRepeatFunc(self.RefreshActivityTime) CTL.Monopoly.CloseAllFuncPanel() end end return UIMonopolyTasks