local UIFairSoloTournamentTask = UIViewClass() local TASK_TYPE_DAILY = 1 --日常任务 local TASK_TYPE_SEASON = 2 --赛季任务 --0 任务正在进行 1 任务已经完成 2 奖励已经领取 local function SortByState(taskInfo_1, taskInfo_2) local sortValue_1, sortValue_2 if taskInfo_1.state == 1 then sortValue_1 = 1 elseif taskInfo_1.state == 2 then sortValue_1 = 3 else sortValue_1 = 2 end if taskInfo_2.state == 1 then sortValue_2 = 1 elseif taskInfo_2.state == 2 then sortValue_2 = 3 else sortValue_2 = 2 end if sortValue_1 == sortValue_2 then return taskInfo_1.fairTournamentId < taskInfo_2.fairTournamentId end return sortValue_1 < sortValue_2 end function UIFairSoloTournamentTask:OnOpened(context) self:RegistSystemEvent(EventID.UI_FairSoloTournament_OnSeasonEnd, self.OnBackButtonPressed) -- 赛程结束关闭界面 self:RegistSystemEvent(EventID.UI_FairSoloTournament_UpdateTask, self.OnTaskUpdate) self.hasInit = false self.loop_FTTaskLeftTab:AddData(TASK_TYPE_DAILY, 0) self.loop_FTTaskLeftTab:AddData(TASK_TYPE_SEASON, 0) self.selectTabType = TASK_TYPE_DAILY self.infoList = {} MDL.FairSoloTournament.FairTournamentTaskInfoReq() end function UIFairSoloTournamentTask:OnTaskUpdate() self.loop_FTTaskLeftTab:UpdateIndex(0) self.loop_FTTaskLeftTab:UpdateIndex(1) if self.hasInit == false then self.loop_FTTaskLeftTab:SelectIndex(self.selectTabType - 1) self.hasInit = true else self:OnSelectTab(self.selectTabType) end end function UIFairSoloTournamentTask:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.loop_FTTaskLeftTab then UIUtils.SetActive(cellTable.img_RedDot, self:CheckTabRed(data)) if data == TASK_TYPE_DAILY then UIUtils.SetLabelText(cellTable.txt_Name_Nomal, Const_IDS.IDS_FairTournament_DayTask) UIUtils.SetLabelText(cellTable.txt_Name_Selected, Const_IDS.IDS_FairTournament_DayTask) else UIUtils.SetLabelText(cellTable.txt_Name_Nomal, Const_IDS.IDS_FairTournament_MatchTask) UIUtils.SetLabelText(cellTable.txt_Name_Selected, Const_IDS.IDS_FairTournament_MatchTask) end else local config = DataSheetManager.FairWatchWarReward:GetDataByID(data.fairTournamentId) local rewards = DataSheetManager.FairTournamentRewardRepeat:GetDataByAttrRepeatID(config.RankRewardID).Item_Table UTL.Item.SetItemCell(cellTable.item, rewards[1].ItemID, rewards[1].ItemNum) if rewards[2] then UIUtils.SetActive(cellTable.item02.gameObject, true) UTL.Item.SetItemCell(cellTable.item02, rewards[2].ItemID, rewards[2].ItemNum) else UIUtils.SetActive(cellTable.item02.gameObject, false) end local triggerData = DataSheetManager.TriggerID:GetDataByID(config.TriggerID) local value local state = data.state --0 任务正在进行 1 任务已经完成 2 奖励已经领取 if state == 0 then cellTable.state_Get:SetState(1) value = UTL.Color.FormatRedColor(data.taskProgress) .. "/" .. triggerData.Unlock_Table[1].UnlockConditionParamA elseif state == 1 then cellTable.btn_Get:SetRedPoint(true) cellTable.state_Get:SetState(0) value = UTL.Color.FormatGreenColor(data.taskProgress) .. "/" .. triggerData.Unlock_Table[1].UnlockConditionParamA else cellTable.state_Get:SetState(2) value = UTL.Color.FormatGreenColor(data.taskProgress) .. "/" .. triggerData.Unlock_Table[1].UnlockConditionParamA end cellTable.txt_Task.text = string.FormatByIdsId(Const_IDS[triggerData.Unlock_Table[1].UnlockConditionDes], value) end end function UIFairSoloTournamentTask:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.loop_FTTaskLeftTab then self:OnSelectTab(data) else if target == cellTable.btn_Get then MDL.FairSoloTournament.FairTournamentTaskRewardReq(data.fairTournamentId) elseif target == cellTable.btn_Go then self:CloseView() local config = DataSheetManager.FairWatchWarReward:GetDataByID(data.fairTournamentId) if config.IfGamble == 1 then CTL.Tips.AddTipsMsg(Const_IDS["IDS_FairTournament_GambleTips"]) end CTL.ItemSources.ExecuteSourceFunctionById(config.ItemSourceID) elseif target == cellTable.item.event_Click then local config = DataSheetManager.FairWatchWarReward:GetDataByID(data.fairTournamentId) local rewards = DataSheetManager.FairTournamentRewardRepeat:GetDataByAttrRepeatID(config.RankRewardID).Item_Table UTL.ItemTips.ShowCommonTipsById(rewards[1].ItemID) elseif target == cellTable.item02.event_Click then local config = DataSheetManager.FairWatchWarReward:GetDataByID(data.fairTournamentId) local rewards = DataSheetManager.FairTournamentRewardRepeat:GetDataByAttrRepeatID(config.RankRewardID).Item_Table UTL.ItemTips.ShowCommonTipsById(rewards[2].ItemID) end end end function UIFairSoloTournamentTask:OnSelectTab(tabType) self.selectTabType = tabType table.clearArray(self.infoList) local taskInfoArray = MDL.FairSoloTournament.GetTaskInfo() if taskInfoArray then for i, taskInfo in ipairs(taskInfoArray) do local config = DataSheetManager.FairWatchWarReward:GetDataByID(taskInfo.fairTournamentId) if config and config.TaskType == self.selectTabType then table.insert(self.infoList, taskInfo) end end table.sort(self.infoList, SortByState) self.loop_Task:ReloadAll(self.infoList) end end function UIFairSoloTournamentTask:CheckTabRed(type) local taskInfoArray = MDL.FairSoloTournament.GetTaskInfo() if taskInfoArray then for i, taskInfo in ipairs(taskInfoArray) do local config = DataSheetManager.FairWatchWarReward:GetDataByID(taskInfo.fairTournamentId) if config and config.TaskType == type then if taskInfo.state == 1 then return true end end end end return false end function UIFairSoloTournamentTask:OnBackButtonPressed() self:OnButtonClicked(self.btn_Close) end function UIFairSoloTournamentTask:OnButtonClicked(comp) if comp == self.btn_Close then self:CloseView() end end return UIFairSoloTournamentTask