This commit is contained in:
chenxi 2023-05-11 11:22:11 +08:00
parent 124feb0b09
commit dc81cffe85
5 changed files with 94 additions and 15 deletions

View File

@ -52,11 +52,14 @@ BIReport.ITEM_GET_TYPE = {
RECOVERY_TIME = "RecoveryTime",
ADS_BUY_VIT = "AdsBuyVit",
GEM_BUY_VIT = "GemBuyVit",
TASK_DAILY_REFRESH = "TaskDailyRefresh",
TASK_DAILY_REWARD = "TaskDailyReward",
}
BIReport.ADS_CLICK_TYPE = {
BATTLE_SKILL_REFRESH = "BattleSkillRefresh",
AD_ENERGY = "AdEnergy",
TASK_DAILY_REFRESH = "TaskDailyRefresh",
}
BIReport.FIGHT_OPT_TYPE = {

View File

@ -4,6 +4,41 @@ function TaskManager:showTaskMainUI()
UIManager:showUI("app/ui/task/task_main_ui")
end
function TaskManager:refreshDailyTask(dailyTaskId)
SDKManager:showFullScreenAds(BIReport.ADS_CLICK_TYPE.TASK_DAILY_REFRESH, function()
local parmas = {
id = dailyTaskId,
}
self:sendMessage(ProtoMsgType.FromMsgEnum.TaskDailyRefreshReq, parmas, {}, self.onDailyTaskRefresh, BIReport.ITEM_GET_TYPE.TASK_DAILY_REFRESH)
end)
end
function TaskManager:onDailyTaskRefresh(result)
if result.err_code == GConst.ERROR_STR.SUCCESS then
if result.task then
DataManager.TaskData:refreshDailyTask(result.task)
end
end
end
function TaskManager:claimDailyTask(dailyTaskId)
local parmas = {
id = dailyTaskId,
}
self:sendMessage(ProtoMsgType.FromMsgEnum.TaskDailyRewardReq, parmas, {}, self.onDailyTaskClaim, BIReport.ITEM_GET_TYPE.TASK_DAILY_REWARD)
end
function TaskManager:onDailyTaskClaim(result)
if result.err_code == GConst.ERROR_STR.SUCCESS then
if result.task then
DataManager.TaskData:refreshDailyTask(result.task)
end
if result.rewards then
GFunc.showRewardBox(result.reward)
end
end
end
function TaskManager:registerTask(moduleName, taskType, callback)
if not self.registerTaskInfo then
self.registerTaskInfo = {}

View File

@ -9,11 +9,17 @@ function DailyTaskCell:init()
self.progressTx = uiMap["task_cell.progress_bg.progress_tx"]
self.getBtn = uiMap["task_cell.get_btn"]
self.getBtn:addClickListener(function()
if self.taskId then
ModuleManager.TaskManager:claimDailyTask(self.taskId)
end
end)
self.getBtnTx = uiMap["task_cell.get_btn.text"]
self.getBtnTx:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_CLAIM))
self.refreshBtn = uiMap["task_cell.refresh_btn"]
self.refreshBtn:addClickListener(function()
if self.taskId then
ModuleManager.TaskManager:refreshDailyTask(self.taskId)
end
end)
self.refreshBtnTx = uiMap["task_cell.refresh_btn.text"]
self.refreshBtnTx:setText("临时文本:刷新")
@ -33,6 +39,7 @@ function DailyTaskCell:init()
end
function DailyTaskCell:refresh(task)
self.taskId = task.id
local icon = DataManager.TaskData:getDailyTaskIcon(task.id)
self.icon:setSprite(GConst.ATLAS_PATH.ICON_TASK, icon)
local taskDesc = DataManager.TaskData:getDailyTaskDesc(task.id)

View File

@ -39,8 +39,8 @@ function TaskMainUI:ctor(params)
self.challengeTaskList = {}
local taskAdId = DataManager.TaskData:getDailyTaskAdId()
local taskFinalId = DataManager.TaskData:getDailyTaskFinalId()
local dailyTasks = DataManager.TaskData:getDailyTaskList()
for k, v in ipairs(dailyTasks) do
local dailyTasks = DataManager.TaskData:getDailyTasks()
for k, v in pairs(dailyTasks) do
if k ~= taskAdId and k ~= taskFinalId then
if v.type == TASK_TYPE_DAILY then
table.insert(self.dailyTaskList, v)
@ -111,7 +111,6 @@ function TaskMainUI:initDaily()
self.dailyNode = self.uiMap["task_main_ui.bg.daily"]
self:initDailyTaskAdCell()
self:initDailyTaskFinalCell()
self:initDailyTasks()
end
function TaskMainUI:initDailyTaskAdCell()
@ -150,7 +149,6 @@ end
function TaskMainUI:initChallenge()
self.challengeNode = self.uiMap["task_main_ui.bg.challenge"]
self:initChallengeTasks()
end
function TaskMainUI:initChallengeTasks()
@ -175,7 +173,7 @@ end
function TaskMainUI:bindData()
self:bind(DataManager.TaskData, "dailyTaskDirty", function()
self:refreshDaily()
self:onRefresh()
end)
end
@ -206,6 +204,7 @@ end
function TaskMainUI:refreshDaily()
self:refreshDailyTaskAdCell()
self:refreshDailyTaskFinalCell()
self:refreshDailyTasks()
end
function TaskMainUI:refreshDailyTaskAdCell()
@ -232,8 +231,22 @@ function TaskMainUI:refreshDailyTaskFinalCell()
self.dailyTaskFinalCellProgress:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER).value = count/needCount
end
function TaskMainUI:refreshChallenge()
function TaskMainUI:refreshDailyTasks()
Logger.logHighlight("refreshDailyTasks")
if self.dailyTaskScrollRect == nil then
self:initDailyTasks()
else
self.dailyTaskScrollRect:updateAllCell()
end
end
function TaskMainUI:refreshChallenge()
Logger.logHighlight("refreshChallenge")
if self.challengeTaskScrollRect == nil then
self:initChallengeTasks()
else
self.challengeTaskScrollRect:updateAllCell()
end
end
function TaskMainUI:showHelp()

View File

@ -11,7 +11,7 @@ function TaskData:init(data)
local tasks = data and data.tasks
local cfg = self:getDailyTaskCfg()
local taskCfg = self:getTaskCfg()
self.dailyTaskList = {}
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]
@ -28,11 +28,32 @@ function TaskData:init(data)
if v.bounty then
dailyTaskObj.lock = true
end
table.insert(self.dailyTaskList, dailyTaskObj)
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
@ -54,7 +75,7 @@ function TaskData:markDailyTaskDirty()
end
function TaskData:getDailyTaskProgress(id)
local task = self.dailyTaskList[id]
local task = self.dailyTasks[id]
if task == nil then
return 0, 1
end
@ -62,7 +83,7 @@ function TaskData:getDailyTaskProgress(id)
end
function TaskData:getDailyTaskDesc(id)
local task = self.dailyTaskList[id]
local task = self.dailyTasks[id]
if task == nil then
return GConst.EMPTY_STRING
end
@ -71,7 +92,7 @@ function TaskData:getDailyTaskDesc(id)
end
function TaskData:getDailyTaskIsLock(id)
local task = self.dailyTaskList[id]
local task = self.dailyTasks[id]
if task == nil then
return nil
end
@ -87,7 +108,7 @@ function TaskData:getDailyTaskCanRefresh(id)
end
function TaskData:getDailyTaskIcon(id)
local task = self.dailyTaskList[id]
local task = self.dailyTasks[id]
if task == nil then
return GConst.EMPTY_STRING
end
@ -96,7 +117,7 @@ function TaskData:getDailyTaskIcon(id)
end
function TaskData:getDailyTaskReward(id)
local task = self.dailyTaskList[id]
local task = self.dailyTasks[id]
if task == nil then
return GConst.EMPTY_STRING
end
@ -104,8 +125,8 @@ function TaskData:getDailyTaskReward(id)
return cfg[task.taskId].reward
end
function TaskData:getDailyTaskList()
return self.dailyTaskList
function TaskData:getDailyTasks()
return self.dailyTasks
end
function TaskData:getTaskI18NCfg()