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.dailyTaskList = {} 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 table.insert(self.dailyTaskList, dailyTaskObj) end end 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.dailyTaskList[id] if task == nil then return 0, 1 end return task.progress, task.needProgress end function TaskData:getDailyTaskDesc(id) local task = self.dailyTaskList[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.dailyTaskList[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.dailyTaskList[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.dailyTaskList[id] if task == nil then return GConst.EMPTY_STRING end local cfg = self:getTaskCfg() return cfg[task.taskId].reward end function TaskData:getDailyTaskList() return self.dailyTaskList 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