c1_lua/lua/app/userdata/task/task_data.lua
2023-05-11 10:09:29 +08:00

132 lines
2.8 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.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