任务红点

This commit is contained in:
chenxi 2023-05-19 21:23:06 +08:00
parent 8ab3c40bef
commit d739908228
2 changed files with 64 additions and 15 deletions

View File

@ -243,6 +243,11 @@ function TaskMainUI:switchPage(page)
self.dailyNode:setAnchoredPositionX(0) self.dailyNode:setAnchoredPositionX(0)
self.challengeNode:setAnchoredPositionX(GConst.NOT_VISIBLE_POS) self.challengeNode:setAnchoredPositionX(GConst.NOT_VISIBLE_POS)
self:refreshDaily() self:refreshDaily()
if DataManager.DailyTaskData:getIsShowChallengeTaskRedPoint() then
self.menuTwoOff:addRedPoint(118, -22)
else
self.menuTwoOff:removeRedPoint()
end
else else
self.menuOneOn:setVisible(false) self.menuOneOn:setVisible(false)
self.menuOneOff:setVisible(true) self.menuOneOff:setVisible(true)
@ -251,6 +256,11 @@ function TaskMainUI:switchPage(page)
self.dailyNode:setAnchoredPositionX(GConst.NOT_VISIBLE_POS) self.dailyNode:setAnchoredPositionX(GConst.NOT_VISIBLE_POS)
self.challengeNode:setAnchoredPositionX(0) self.challengeNode:setAnchoredPositionX(0)
self:refreshChallenge() self:refreshChallenge()
if DataManager.DailyTaskData:getIsShowDailyTaskRedPoint() then
self.menuOneOff:addRedPoint(118, -22)
else
self.menuOneOff:removeRedPoint()
end
end end
end end

View File

@ -8,7 +8,8 @@ function DailyTaskData:ctor()
self.data.dailyTaskDirty = false self.data.dailyTaskDirty = false
self.data.resetFlag = false self.data.resetFlag = false
self.data.redPointFlag = false self.data.redPointFlag = false
self.redPoint = 0 self.dailyTaskRedPoint = 0
self.challengeTaskRedPoint = 0
self.isInReset = false self.isInReset = false
self.taskTypeMap = {} self.taskTypeMap = {}
self.dailyTasks = {} self.dailyTasks = {}
@ -28,7 +29,8 @@ function DailyTaskData:init(data)
end end
end end
self.isUnlockBountyDailyTask = DataManager.BountyData:getBought() self.isUnlockBountyDailyTask = DataManager.BountyData:getBought()
local redPoint = 0 local dailyRedPoint = 0
local challengeRedPoint = 0
ModuleManager.TaskManager:unRegisterAllModuleTask(DATA_NAME) ModuleManager.TaskManager:unRegisterAllModuleTask(DATA_NAME)
for k, v in pairs(cfg) do for k, v in pairs(cfg) do
local task = tasks and tasks[k] or GConst.EMPTY_TABLE 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 if not dailyTaskObj.claimed and dailyTaskObj.progress >= dailyTaskObj.needProgress then
dailyTaskObj.redPoint = true dailyTaskObj.redPoint = true
redPoint = redPoint + 1 if dailyTaskObj.type == 1 then
dailyRedPoint = dailyRedPoint + 1
else
challengeRedPoint = challengeRedPoint + 1
end
else else
dailyTaskObj.redPoint = false dailyTaskObj.redPoint = false
end end
@ -74,14 +80,27 @@ function DailyTaskData:init(data)
self.initDay = Time:getBeginningOfServerToday() self.initDay = Time:getBeginningOfServerToday()
self.isInReset = false self.isInReset = false
self.data.resetFlag = not self.data.resetFlag self.data.resetFlag = not self.data.resetFlag
if self.redPoint ~= redPoint then
if self.redPoint > 0 and redPoint > 0 then local redPointDirty = false
self.redPoint = redPoint if self.dailyTaskRedPoint ~= dailyRedPoint then
if self.dailyTaskRedPoint > 0 and dailyRedPoint > 0 then
self.dailyTaskRedPoint = dailyRedPoint
else else
self.redPoint = redPoint self.dailyTaskRedPoint = dailyRedPoint
self.data.redPointFlag = not self.data.redPointFlag redPointDirty = true
end end
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 end
function DailyTaskData:refreshDailyTask(task) function DailyTaskData:refreshDailyTask(task)
@ -124,13 +143,21 @@ function DailyTaskData:refreshDailyTask(task)
if dailyTaskObj.redPoint ~= redPoint then if dailyTaskObj.redPoint ~= redPoint then
dailyTaskObj.redPoint = redPoint dailyTaskObj.redPoint = redPoint
if redPoint then if redPoint then
self.redPoint = self.redPoint + 1 if dailyTaskObj.type == 1 then
if self.redPoint == 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 self.data.redPointFlag = not self.data.redPointFlag
end end
else else
self.redPoint = self.redPoint - 1 if dailyTaskObj.type == 1 then
if self.redPoint == 0 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 self.data.redPointFlag = not self.data.redPointFlag
end end
end end
@ -293,8 +320,12 @@ function DailyTaskData:addTaskProgress(task, taskType, count)
end end
BIReport:postDailyTaskFinish(BIReport.TASK_TYPE.DAILY, task.id, task.taskId, task.refresh) BIReport:postDailyTaskFinish(BIReport.TASK_TYPE.DAILY, task.id, task.taskId, task.refresh)
task.redPoint = true task.redPoint = true
self.redPoint = self.redPoint + 1 if task.type == 1 then
if self.redPoint == 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 self.data.redPointFlag = not self.data.redPointFlag
end end
end end
@ -356,7 +387,15 @@ function DailyTaskData:getIsInReset()
end end
function DailyTaskData:getIsShowRedPoint() 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 end
function DailyTaskData:unlockBountyTask() function DailyTaskData:unlockBountyTask()