From d739908228d945c5e1f31f4cbe34b5b1d8dfaa9f Mon Sep 17 00:00:00 2001 From: chenxi Date: Fri, 19 May 2023 21:23:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=BA=A2=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/ui/task/task_main_ui.lua | 10 ++++ lua/app/userdata/task/daily_task_data.lua | 69 ++++++++++++++++++----- 2 files changed, 64 insertions(+), 15 deletions(-) diff --git a/lua/app/ui/task/task_main_ui.lua b/lua/app/ui/task/task_main_ui.lua index b8593ab5..09bff2d7 100644 --- a/lua/app/ui/task/task_main_ui.lua +++ b/lua/app/ui/task/task_main_ui.lua @@ -243,6 +243,11 @@ function TaskMainUI:switchPage(page) self.dailyNode:setAnchoredPositionX(0) self.challengeNode:setAnchoredPositionX(GConst.NOT_VISIBLE_POS) self:refreshDaily() + if DataManager.DailyTaskData:getIsShowChallengeTaskRedPoint() then + self.menuTwoOff:addRedPoint(118, -22) + else + self.menuTwoOff:removeRedPoint() + end else self.menuOneOn:setVisible(false) self.menuOneOff:setVisible(true) @@ -251,6 +256,11 @@ function TaskMainUI:switchPage(page) self.dailyNode:setAnchoredPositionX(GConst.NOT_VISIBLE_POS) self.challengeNode:setAnchoredPositionX(0) self:refreshChallenge() + if DataManager.DailyTaskData:getIsShowDailyTaskRedPoint() then + self.menuOneOff:addRedPoint(118, -22) + else + self.menuOneOff:removeRedPoint() + end end end diff --git a/lua/app/userdata/task/daily_task_data.lua b/lua/app/userdata/task/daily_task_data.lua index dea2de24..e66ffa3e 100644 --- a/lua/app/userdata/task/daily_task_data.lua +++ b/lua/app/userdata/task/daily_task_data.lua @@ -8,7 +8,8 @@ function DailyTaskData:ctor() self.data.dailyTaskDirty = false self.data.resetFlag = false self.data.redPointFlag = false - self.redPoint = 0 + self.dailyTaskRedPoint = 0 + self.challengeTaskRedPoint = 0 self.isInReset = false self.taskTypeMap = {} self.dailyTasks = {} @@ -28,7 +29,8 @@ function DailyTaskData:init(data) end end self.isUnlockBountyDailyTask = DataManager.BountyData:getBought() - local redPoint = 0 + local dailyRedPoint = 0 + local challengeRedPoint = 0 ModuleManager.TaskManager:unRegisterAllModuleTask(DATA_NAME) for k, v in pairs(cfg) do local task = tasks and tasks[k] or GConst.EMPTY_TABLE @@ -46,7 +48,11 @@ function DailyTaskData:init(data) } if not dailyTaskObj.claimed and dailyTaskObj.progress >= dailyTaskObj.needProgress then dailyTaskObj.redPoint = true - redPoint = redPoint + 1 + if dailyTaskObj.type == 1 then + dailyRedPoint = dailyRedPoint + 1 + else + challengeRedPoint = challengeRedPoint + 1 + end else dailyTaskObj.redPoint = false end @@ -74,14 +80,27 @@ function DailyTaskData:init(data) self.initDay = Time:getBeginningOfServerToday() self.isInReset = false self.data.resetFlag = not self.data.resetFlag - if self.redPoint ~= redPoint then - if self.redPoint > 0 and redPoint > 0 then - self.redPoint = redPoint + + local redPointDirty = false + if self.dailyTaskRedPoint ~= dailyRedPoint then + if self.dailyTaskRedPoint > 0 and dailyRedPoint > 0 then + self.dailyTaskRedPoint = dailyRedPoint else - self.redPoint = redPoint - self.data.redPointFlag = not self.data.redPointFlag + self.dailyTaskRedPoint = dailyRedPoint + redPointDirty = true end end + if self.challengeTaskRedPoint ~= challengeRedPoint then + if self.challengeTaskRedPoint > 0 and challengeRedPoint > 0 then + self.challengeTaskRedPoint = challengeRedPoint + else + self.challengeTaskRedPoint = challengeRedPoint + redPointDirty = true + end + end + if redPointDirty then + self.data.redPointFlag = not self.data.redPointFlag + end end function DailyTaskData:refreshDailyTask(task) @@ -124,13 +143,21 @@ function DailyTaskData:refreshDailyTask(task) if dailyTaskObj.redPoint ~= redPoint then dailyTaskObj.redPoint = redPoint if redPoint then - self.redPoint = self.redPoint + 1 - if self.redPoint == 1 then + if dailyTaskObj.type == 1 then + self.dailyTaskRedPoint = self.dailyTaskRedPoint + 1 + else + self.challengeTaskRedPoint = self.challengeTaskRedPoint + 1 + end + if self.dailyTaskRedPoint + self.challengeTaskRedPoint == 1 then self.data.redPointFlag = not self.data.redPointFlag end else - self.redPoint = self.redPoint - 1 - if self.redPoint == 0 then + if dailyTaskObj.type == 1 then + self.dailyTaskRedPoint = self.dailyTaskRedPoint - 1 + else + self.challengeTaskRedPoint = self.challengeTaskRedPoint - 1 + end + if self.dailyTaskRedPoint + self.challengeTaskRedPoint == 0 then self.data.redPointFlag = not self.data.redPointFlag end end @@ -293,8 +320,12 @@ function DailyTaskData:addTaskProgress(task, taskType, count) end BIReport:postDailyTaskFinish(BIReport.TASK_TYPE.DAILY, task.id, task.taskId, task.refresh) task.redPoint = true - self.redPoint = self.redPoint + 1 - if self.redPoint == 1 then + if task.type == 1 then + self.dailyTaskRedPoint = self.dailyTaskRedPoint + 1 + else + self.challengeTaskRedPoint = self.challengeTaskRedPoint + 1 + end + if self.dailyTaskRedPoint + self.challengeTaskRedPoint == 1 then self.data.redPointFlag = not self.data.redPointFlag end end @@ -356,7 +387,15 @@ function DailyTaskData:getIsInReset() end function DailyTaskData:getIsShowRedPoint() - return self.redPoint > 0 + return self.dailyTaskRedPoint > 0 or self.challengeTaskRedPoint > 0 +end + +function DailyTaskData:getIsShowDailyTaskRedPoint() + return self.dailyTaskRedPoint > 0 +end + +function DailyTaskData:getIsShowChallengeTaskRedPoint() + return self.challengeTaskRedPoint > 0 end function DailyTaskData:unlockBountyTask()