This commit is contained in:
chenxi 2023-05-12 11:23:06 +08:00
parent 4306ab73ad
commit b5b1ad00e7
2 changed files with 55 additions and 0 deletions

View File

@ -146,6 +146,10 @@ function MainCityUI:_bind()
end
end
end)
self:bind(DataManager.DailyTaskData, "redPointFlag", function()
self:refreshTask()
end)
end
function MainCityUI:initBottomUI()
@ -459,6 +463,12 @@ function MainCityUI:refreshTask()
return
end
self.taskBtn:setVisible(true)
local showRedPoint = DataManager.DailyTaskData:getIsShowRedPoint()
if showRedPoint then
self.taskBtn:addRedPoint(42, 42, 0.8)
else
self.taskBtn:removeRedPoint()
end
end
function MainCityUI:switchComp(index)

View File

@ -7,6 +7,8 @@ local DATA_NAME = "DailyTaskData"
function DailyTaskData:ctor()
self.data.dailyTaskDirty = false
self.data.resetFlag = false
self.data.redPointFlag = false
self.redPoint = 0
self.isInReset = false
self.taskTypeMap = {}
self.dailyTasks = {}
@ -24,6 +26,7 @@ function DailyTaskData:init(data)
table.remove(v)
end
end
local redPoint = 0
ModuleManager.TaskManager:unRegisterAllModuleTask(DATA_NAME)
for k, v in pairs(cfg) do
local task = tasks and tasks[k] or GConst.EMPTY_TABLE
@ -39,6 +42,12 @@ function DailyTaskData:init(data)
type = v.type,
reset = v.reset
}
if not dailyTaskObj.claimed and dailyTaskObj.progress >= dailyTaskObj.needProgress then
dailyTaskObj.redPoint = true
redPoint = redPoint + 1
else
dailyTaskObj.redPoint = false
end
if v.bounty then
if DataManager.BountyData:getBought() then
dailyTaskObj.lock = false
@ -63,6 +72,14 @@ 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
else
self.redPoint = redPoint
self.data.redPointFlag = not self.data.redPointFlag
end
end
end
function DailyTaskData:refreshDailyTask(task)
@ -85,6 +102,10 @@ function DailyTaskData:refreshDailyTask(task)
dailyTaskObj.needProgress = taskInfo.number
dailyTaskObj.refresh = task.refresh
dailyTaskObj.claimed = task.claimed
local redPoint = false
if not dailyTaskObj.claimed and dailyTaskObj.progress >= dailyTaskObj.needProgress then
redPoint = true
end
local originTaskType = originTaskInfo.type
if originTaskType ~= taskInfo.type then -- 任务类型变了
local originTaskList = self.taskTypeMap[originTaskType]
@ -110,6 +131,21 @@ function DailyTaskData:refreshDailyTask(task)
end
end
self:markDailyTaskDirty()
if dailyTaskObj.redPoint ~= redPoint then
dailyTaskObj.redPoint = redPoint
if redPoint then
self.redPoint = self.redPoint + 1
if self.redPoint == 1 then
self.data.redPointFlag = not self.data.redPointFlag
end
else
self.redPoint = self.redPoint - 1
if self.redPoint == 0 then
self.data.redPointFlag = not self.data.redPointFlag
end
end
end
end
function DailyTaskData:getIsOpen()
@ -249,6 +285,11 @@ function DailyTaskData:addTaskProgress(task, taskType, count)
ModuleManager.TaskManager:addTaskProgress(GConst.TaskConst.TASK_TYPE.COMPLETED_DALY_TASK)
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
self.data.redPointFlag = not self.data.redPointFlag
end
end
self:markDailyTaskDirty()
end
@ -280,4 +321,8 @@ function DailyTaskData:getIsInReset()
return self.isInReset
end
function DailyTaskData:getIsShowRedPoint()
return self.redPoint > 0
end
return DailyTaskData