任务
This commit is contained in:
parent
8c2d9c26bb
commit
b5541f30b6
@ -63,11 +63,7 @@ function DailyTaskCell:refresh(task)
|
|||||||
self.adBtnRoot:setVisible(false)
|
self.adBtnRoot:setVisible(false)
|
||||||
self.completeNode:setVisible(false)
|
self.completeNode:setVisible(false)
|
||||||
else
|
else
|
||||||
if task.lock == nil then
|
|
||||||
self.lockBg:setVisible(false)
|
self.lockBg:setVisible(false)
|
||||||
else
|
|
||||||
self.lockBg:setVisible(true)
|
|
||||||
end
|
|
||||||
self.lockNode:setVisible(false)
|
self.lockNode:setVisible(false)
|
||||||
self.progressBg:setVisible(true)
|
self.progressBg:setVisible(true)
|
||||||
local count = task.progress
|
local count = task.progress
|
||||||
|
|||||||
@ -108,6 +108,7 @@ function BountyData:setBought(season, level)
|
|||||||
end
|
end
|
||||||
self.bought = true
|
self.bought = true
|
||||||
self.level = level or self.level
|
self.level = level or self.level
|
||||||
|
DataManager.DailyTaskData:unlockBountyTask()
|
||||||
self:markDirty()
|
self:markDirty()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -12,6 +12,7 @@ function DailyTaskData:ctor()
|
|||||||
self.isInReset = false
|
self.isInReset = false
|
||||||
self.taskTypeMap = {}
|
self.taskTypeMap = {}
|
||||||
self.dailyTasks = {}
|
self.dailyTasks = {}
|
||||||
|
self.isUnlockBountyDailyTask = false
|
||||||
end
|
end
|
||||||
|
|
||||||
function DailyTaskData:init(data)
|
function DailyTaskData:init(data)
|
||||||
@ -26,6 +27,7 @@ function DailyTaskData:init(data)
|
|||||||
table.remove(v)
|
table.remove(v)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
self.isUnlockBountyDailyTask = DataManager.BountyData:getBought()
|
||||||
local redPoint = 0
|
local redPoint = 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
|
||||||
@ -49,7 +51,7 @@ function DailyTaskData:init(data)
|
|||||||
dailyTaskObj.redPoint = false
|
dailyTaskObj.redPoint = false
|
||||||
end
|
end
|
||||||
if v.bounty then
|
if v.bounty then
|
||||||
if DataManager.BountyData:getBought() then
|
if self.isUnlockBountyDailyTask then
|
||||||
dailyTaskObj.lock = false
|
dailyTaskObj.lock = false
|
||||||
else
|
else
|
||||||
dailyTaskObj.lock = true
|
dailyTaskObj.lock = true
|
||||||
@ -63,7 +65,7 @@ function DailyTaskData:init(data)
|
|||||||
end
|
end
|
||||||
table.insert(list, dailyTaskObj)
|
table.insert(list, dailyTaskObj)
|
||||||
if #list == 1 then
|
if #list == 1 then
|
||||||
self:registerTask(taskInfo.type)
|
self:registerTaskWithType(taskInfo.type)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
self.dailyTasks[k] = dailyTaskObj
|
self.dailyTasks[k] = dailyTaskObj
|
||||||
@ -96,39 +98,26 @@ function DailyTaskData:refreshDailyTask(task)
|
|||||||
if originTaskInfo == nil then
|
if originTaskInfo == nil then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
local dailyTaskInfo = self:getDailyTaskCfg()[id]
|
||||||
|
if dailyTaskInfo == nil then
|
||||||
|
return
|
||||||
|
end
|
||||||
dailyTaskObj.id = task.id
|
dailyTaskObj.id = task.id
|
||||||
dailyTaskObj.taskId = task.task_id
|
dailyTaskObj.taskId = task.task_id
|
||||||
dailyTaskObj.progress = task.progress
|
dailyTaskObj.progress = task.progress
|
||||||
dailyTaskObj.needProgress = taskInfo.number
|
dailyTaskObj.needProgress = taskInfo.number
|
||||||
dailyTaskObj.refresh = task.refresh
|
dailyTaskObj.refresh = task.refresh
|
||||||
dailyTaskObj.claimed = task.claimed
|
dailyTaskObj.claimed = task.claimed
|
||||||
|
dailyTaskObj.type = dailyTaskInfo.type
|
||||||
|
dailyTaskObj.reset = dailyTaskInfo.reset
|
||||||
local redPoint = false
|
local redPoint = false
|
||||||
if not dailyTaskObj.claimed and dailyTaskObj.progress >= dailyTaskObj.needProgress then
|
if not dailyTaskObj.claimed and dailyTaskObj.progress >= dailyTaskObj.needProgress then
|
||||||
redPoint = true
|
redPoint = true
|
||||||
end
|
end
|
||||||
local originTaskType = originTaskInfo.type
|
local originTaskType = originTaskInfo.type
|
||||||
if originTaskType ~= taskInfo.type then -- 任务类型变了
|
if originTaskType ~= taskInfo.type then -- 任务类型变了
|
||||||
local originTaskList = self.taskTypeMap[originTaskType]
|
self:unregisterTask(id, originTaskType)
|
||||||
if originTaskList then
|
self:registerTask(dailyTaskObj, taskInfo.type)
|
||||||
for k, v in ipairs(originTaskList) do
|
|
||||||
if v.id == id then
|
|
||||||
table.remove(originTaskList, k)
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if #originTaskList == 0 then
|
|
||||||
self:unregisterTask(originTaskType)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
local newTaskList = self.taskTypeMap[taskInfo.type]
|
|
||||||
if newTaskList == nil then
|
|
||||||
newTaskList = {}
|
|
||||||
self.taskTypeMap[taskInfo.type] = newTaskList
|
|
||||||
end
|
|
||||||
table.insert(newTaskList, dailyTaskObj)
|
|
||||||
if #newTaskList == 1 then
|
|
||||||
self:registerTask(taskInfo.type)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
self:markDailyTaskDirty()
|
self:markDailyTaskDirty()
|
||||||
|
|
||||||
@ -294,7 +283,7 @@ function DailyTaskData:addTaskProgress(task, taskType, count)
|
|||||||
self:markDailyTaskDirty()
|
self:markDailyTaskDirty()
|
||||||
end
|
end
|
||||||
|
|
||||||
function DailyTaskData:registerTask(taskType)
|
function DailyTaskData:registerTaskWithType(taskType)
|
||||||
ModuleManager.TaskManager:registerTask(DATA_NAME, taskType, function(count)
|
ModuleManager.TaskManager:registerTask(DATA_NAME, taskType, function(count)
|
||||||
local list = self:getTaskListByType(taskType)
|
local list = self:getTaskListByType(taskType)
|
||||||
if #list > 0 then
|
if #list > 0 then
|
||||||
@ -305,10 +294,37 @@ function DailyTaskData:registerTask(taskType)
|
|||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
function DailyTaskData:unregisterTask(taskType)
|
function DailyTaskData:unregisterTask(id, taskType)
|
||||||
|
local taskList = self.taskTypeMap[taskType]
|
||||||
|
if taskList then
|
||||||
|
for k, v in ipairs(taskList) do
|
||||||
|
if v.id == id then
|
||||||
|
table.remove(taskList, k)
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if #taskList == 0 then
|
||||||
|
self:unregisterTaskWithType(taskType)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function DailyTaskData:unregisterTaskWithType(taskType)
|
||||||
ModuleManager.TaskManager:unRegisterTask(DATA_NAME, taskType)
|
ModuleManager.TaskManager:unRegisterTask(DATA_NAME, taskType)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function DailyTaskData:registerTask(dailyTaskObj, taskType)
|
||||||
|
local taskList = self.taskTypeMap[taskType]
|
||||||
|
if taskList == nil then
|
||||||
|
taskList = {}
|
||||||
|
self.taskTypeMap[taskType] = taskList
|
||||||
|
end
|
||||||
|
table.insert(taskList, dailyTaskObj)
|
||||||
|
if #taskList == 1 then
|
||||||
|
self:registerTaskWithType(taskType)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function DailyTaskData:getIfCanReset()
|
function DailyTaskData:getIfCanReset()
|
||||||
return self.initDay < Time:getBeginningOfServerToday()
|
return self.initDay < Time:getBeginningOfServerToday()
|
||||||
end
|
end
|
||||||
@ -325,4 +341,23 @@ function DailyTaskData:getIsShowRedPoint()
|
|||||||
return self.redPoint > 0
|
return self.redPoint > 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function DailyTaskData:unlockBountyTask()
|
||||||
|
if self.isUnlockBountyDailyTask then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
self.isUnlockBountyDailyTask = true
|
||||||
|
local dirty = false
|
||||||
|
local taskCfg = self:getTaskCfg()
|
||||||
|
for k, v in pairs(self.dailyTasks) do
|
||||||
|
if v.lock then -- 有锁的要解锁
|
||||||
|
v.lock = false
|
||||||
|
dirty = true
|
||||||
|
self:registerTask(v, taskCfg[v.taskId].type)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if dirty then
|
||||||
|
self:markDailyTaskDirty()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
return DailyTaskData
|
return DailyTaskData
|
||||||
Loading…
x
Reference in New Issue
Block a user