153 lines
3.3 KiB
Lua
153 lines
3.3 KiB
Lua
local TaskData = class("TaskData", BaseData)
|
|
|
|
local DAILY_TASK_AD_ID = 1
|
|
local DAILY_TASK_FINAL_ID = 2
|
|
|
|
function TaskData:ctor()
|
|
self.data.dailyTaskDirty = false
|
|
end
|
|
|
|
function TaskData:init(data)
|
|
local tasks = data and data.tasks
|
|
local cfg = self:getDailyTaskCfg()
|
|
local taskCfg = self:getTaskCfg()
|
|
self.dailyTasks = {}
|
|
for k, v in pairs(cfg) do
|
|
local task = tasks and tasks[k] or GConst.EMPTY_TABLE
|
|
local taskInfo = taskCfg[task.task_id]
|
|
if taskInfo then
|
|
local dailyTaskObj = {
|
|
id = k,
|
|
taskId = task.task_id,
|
|
progress = task.progress,
|
|
needProgress = taskInfo.number,
|
|
refresh = task.refresh,
|
|
claimed = task.claimed,
|
|
type = v.type
|
|
}
|
|
if v.bounty then
|
|
dailyTaskObj.lock = true
|
|
end
|
|
self.dailyTasks[k] = dailyTaskObj
|
|
end
|
|
end
|
|
end
|
|
|
|
function TaskData:refreshDailyTask(task)
|
|
local taskInfo = self:getTaskCfg()[task.task_id]
|
|
if taskInfo == nil then
|
|
return
|
|
end
|
|
local id = task.id
|
|
local dailyTaskObj = self.dailyTasks[id]
|
|
if dailyTaskObj == nil then
|
|
dailyTaskObj = {}
|
|
self.dailyTasks[id] = dailyTaskObj
|
|
end
|
|
-- 刷新任务的时候type不会变
|
|
dailyTaskObj.id = task.id
|
|
dailyTaskObj.taskId = task.task_id
|
|
dailyTaskObj.progress = task.progress
|
|
dailyTaskObj.needProgress = taskInfo.number
|
|
dailyTaskObj.refresh = task.refresh
|
|
dailyTaskObj.claimed = task.claimed
|
|
self:markDailyTaskDirty()
|
|
end
|
|
|
|
function TaskData:getIsOpen()
|
|
return ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.TASK, true)
|
|
end
|
|
|
|
function TaskData:getDailyResetTime()
|
|
return 86400 - Time:getServerTime() % 86400
|
|
end
|
|
|
|
function TaskData:getDailyTaskAdId()
|
|
return DAILY_TASK_AD_ID
|
|
end
|
|
|
|
function TaskData:getDailyTaskFinalId()
|
|
return DAILY_TASK_FINAL_ID
|
|
end
|
|
|
|
function TaskData:markDailyTaskDirty()
|
|
self.data.dailyTaskDirty = not self.data.dailyTaskDirty
|
|
end
|
|
|
|
function TaskData:getDailyTaskProgress(id)
|
|
local task = self.dailyTasks[id]
|
|
if task == nil then
|
|
return 0, 1
|
|
end
|
|
return task.progress, task.needProgress
|
|
end
|
|
|
|
function TaskData:getDailyTaskDesc(id)
|
|
local task = self.dailyTasks[id]
|
|
if task == nil then
|
|
return GConst.EMPTY_STRING
|
|
end
|
|
local cfg = self:getTaskI18NCfg()
|
|
return cfg[task.taskId].desc
|
|
end
|
|
|
|
function TaskData:getDailyTaskIsLock(id)
|
|
local task = self.dailyTasks[id]
|
|
if task == nil then
|
|
return nil
|
|
end
|
|
return task.lock
|
|
end
|
|
|
|
function TaskData:getDailyTaskCanRefresh(id)
|
|
local cfg = self:getDailyTaskCfg()[id]
|
|
if cfg == nil then
|
|
return false
|
|
end
|
|
return cfg.ad_refresh
|
|
end
|
|
|
|
function TaskData:getDailyTaskIcon(id)
|
|
local task = self.dailyTasks[id]
|
|
if task == nil then
|
|
return GConst.EMPTY_STRING
|
|
end
|
|
local cfg = self:getTaskCfg()
|
|
return cfg[task.taskId].icon
|
|
end
|
|
|
|
function TaskData:getDailyTaskReward(id)
|
|
local task = self.dailyTasks[id]
|
|
if task == nil then
|
|
return GConst.EMPTY_STRING
|
|
end
|
|
local cfg = self:getTaskCfg()
|
|
return cfg[task.taskId].reward
|
|
end
|
|
|
|
function TaskData:getDailyTasks()
|
|
return self.dailyTasks
|
|
end
|
|
|
|
function TaskData:getTaskI18NCfg()
|
|
if self.taskI18NCfg == nil then
|
|
self.taskI18NCfg = I18N:getConfig("task")
|
|
end
|
|
return self.taskI18NCfg
|
|
end
|
|
|
|
function TaskData:getTaskCfg()
|
|
if self.taskCfg == nil then
|
|
self.taskCfg = ConfigManager:getConfig("task")
|
|
end
|
|
return self.taskCfg
|
|
end
|
|
|
|
function TaskData:getDailyTaskCfg()
|
|
if self.dailyTaskCfg == nil then
|
|
self.dailyTaskCfg = ConfigManager:getConfig("task_daily")
|
|
end
|
|
return self.dailyTaskCfg
|
|
end
|
|
|
|
return TaskData |