This commit is contained in:
chenxi 2023-05-11 22:22:03 +08:00
parent ff1b5d7ce8
commit c44ce67f07
5 changed files with 104 additions and 24 deletions

View File

@ -52,6 +52,7 @@ BIReport.TASK_OPT_TYPE = {
}
BIReport.ITEM_GET_TYPE = {
NONE = "None",
NEW_PLAYER_INITIAL = "NewPlayerInitial", -- 新玩家创号自带
UPGRADE_HERO = "UpgradeHero",
CHAPTER_FIGHT_START = "ChapterFightStart",

View File

@ -48,6 +48,21 @@ function TaskManager:onDailyTaskClaim(result)
end
end
function TaskManager:resetDailyTask()
if DataManager.DailyTaskData:getIsInReset() then
return
end
DataManager.DailyTaskData:setInReset(true)
self:sendMessage(ProtoMsgType.FromMsgEnum.TaskDailyInfoReq, {}, {}, self.onResetDailyTask, BIReport.ITEM_GET_TYPE.NONE)
end
function TaskManager:onResetDailyTask(result)
DataManager.DailyTaskData:setInReset(false)
if result.err_code == GConst.ERROR_STR.SUCCESS then
DataManager.DailyTaskData:init(result.info)
end
end
function TaskManager:registerTask(moduleName, taskType, callback)
if not self.registerTaskInfo then
self.registerTaskInfo = {}

View File

@ -23,10 +23,9 @@ local ProtoMsgType = {
[1070843294] = "LoginRsp",
[1471116409] = "BindReq",
[1471118242] = "BindRsp",
[1473507638] = "TaskTutorRewardReq",
[1473509471] = "TaskTutorRewardRsp",
[1584689751] = "ActPaidResultReq",
[1584691584] = "ActPaidResultRsp",
[1662315069] = "TriggerLevelUpGiftNtf",
[1666427920] = "MailDeleteReq",
[1666429753] = "MailDeleteRsp",
[1901321540] = "PipedReq",
@ -36,8 +35,6 @@ local ProtoMsgType = {
[2118853729] = "HeroUpgradeRsp",
[2285872137] = "ChapterBoxRewardReq",
[2285873970] = "ChapterBoxRewardRsp",
[2429586383] = "MailCycleReq",
[2429588216] = "MailCycleRsp",
[2581180989] = "MailListReq",
[2581182822] = "MailListRsp",
[2620369240] = "SevenDayRewardReq",
@ -62,9 +59,13 @@ local ProtoMsgType = {
[3341173994] = "BountyBoughtNtf",
[3363939655] = "TaskDailyAdReq",
[3363941488] = "TaskDailyAdRsp",
[3421550443] = "GlobalGiftReq",
[3421552276] = "GlobalGiftRsp",
[3421843875] = "TaskDailyRewardReq",
[3421845708] = "TaskDailyRewardRsp",
[3440328467] = "PigLevelUpNtf",
[3555824176] = "TaskDailyInfoReq",
[3555826009] = "TaskDailyInfoRsp",
[3607879254] = "AuthReq",
[3607881087] = "AuthRsp",
[3624439233] = "NewMailNtf",
@ -105,10 +106,9 @@ local ProtoMsgType = {
LoginRsp = 1070843294,
BindReq = 1471116409,
BindRsp = 1471118242,
TaskTutorRewardReq = 1473507638,
TaskTutorRewardRsp = 1473509471,
ActPaidResultReq = 1584689751,
ActPaidResultRsp = 1584691584,
TriggerLevelUpGiftNtf = 1662315069,
MailDeleteReq = 1666427920,
MailDeleteRsp = 1666429753,
PipedReq = 1901321540,
@ -118,8 +118,6 @@ local ProtoMsgType = {
HeroUpgradeRsp = 2118853729,
ChapterBoxRewardReq = 2285872137,
ChapterBoxRewardRsp = 2285873970,
MailCycleReq = 2429586383,
MailCycleRsp = 2429588216,
MailListReq = 2581180989,
MailListRsp = 2581182822,
SevenDayRewardReq = 2620369240,
@ -144,9 +142,13 @@ local ProtoMsgType = {
BountyBoughtNtf = 3341173994,
TaskDailyAdReq = 3363939655,
TaskDailyAdRsp = 3363941488,
GlobalGiftReq = 3421550443,
GlobalGiftRsp = 3421552276,
TaskDailyRewardReq = 3421843875,
TaskDailyRewardRsp = 3421845708,
PigLevelUpNtf = 3440328467,
TaskDailyInfoReq = 3555824176,
TaskDailyInfoRsp = 3555826009,
AuthReq = 3607879254,
AuthRsp = 3607881087,
NewMailNtf = 3624439233,
@ -187,10 +189,9 @@ local ProtoMsgType = {
LoginRsp = "LoginRsp",
BindReq = "BindReq",
BindRsp = "BindRsp",
TaskTutorRewardReq = "TaskTutorRewardReq",
TaskTutorRewardRsp = "TaskTutorRewardRsp",
ActPaidResultReq = "ActPaidResultReq",
ActPaidResultRsp = "ActPaidResultRsp",
TriggerLevelUpGiftNtf = "TriggerLevelUpGiftNtf",
MailDeleteReq = "MailDeleteReq",
MailDeleteRsp = "MailDeleteRsp",
PipedReq = "PipedReq",
@ -200,8 +201,6 @@ local ProtoMsgType = {
HeroUpgradeRsp = "HeroUpgradeRsp",
ChapterBoxRewardReq = "ChapterBoxRewardReq",
ChapterBoxRewardRsp = "ChapterBoxRewardRsp",
MailCycleReq = "MailCycleReq",
MailCycleRsp = "MailCycleRsp",
MailListReq = "MailListReq",
MailListRsp = "MailListRsp",
SevenDayRewardReq = "SevenDayRewardReq",
@ -226,9 +225,13 @@ local ProtoMsgType = {
BountyBoughtNtf = "BountyBoughtNtf",
TaskDailyAdReq = "TaskDailyAdReq",
TaskDailyAdRsp = "TaskDailyAdRsp",
GlobalGiftReq = "GlobalGiftReq",
GlobalGiftRsp = "GlobalGiftRsp",
TaskDailyRewardReq = "TaskDailyRewardReq",
TaskDailyRewardRsp = "TaskDailyRewardRsp",
PigLevelUpNtf = "PigLevelUpNtf",
TaskDailyInfoReq = "TaskDailyInfoReq",
TaskDailyInfoRsp = "TaskDailyInfoRsp",
AuthReq = "AuthReq",
AuthRsp = "AuthRsp",
NewMailNtf = "NewMailNtf",

View File

@ -37,6 +37,27 @@ function TaskMainUI:ctor(params)
self.page = params and params.page or PAGE_DAILY
self.dailyTaskList = {}
self.challengeTaskList = {}
self:initTaskList()
if DataManager.DailyTaskData:getIfCanReset() then
ModuleManager.TaskManager:resetDailyTask()
end
end
function TaskMainUI:isFullScreen()
return false
end
function TaskMainUI:getPrefabPath()
return "assets/prefabs/ui/task/task_main_ui.prefab"
end
function TaskMainUI:initTaskList()
for i = 1, #self.dailyTaskList do
table.remove(self.dailyTaskList)
end
for i = 1, #self.challengeTaskList do
table.remove(self.challengeTaskList)
end
local taskAdId = DataManager.DailyTaskData:getDailyTaskAdId()
local taskFinalId = DataManager.DailyTaskData:getDailyTaskFinalId()
local dailyTasks = DataManager.DailyTaskData:getDailyTasks()
@ -53,14 +74,6 @@ function TaskMainUI:ctor(params)
sortTask(self.challengeTaskList)
end
function TaskMainUI:isFullScreen()
return false
end
function TaskMainUI:getPrefabPath()
return "assets/prefabs/ui/task/task_main_ui.prefab"
end
function TaskMainUI:onLoadRootComplete()
self.uiMap = self.root:genAllChildren()
self.uiMap["task_main_ui.bg.close_btn"]:addClickListener(function()
@ -173,7 +186,25 @@ end
function TaskMainUI:bindData()
self:bind(DataManager.DailyTaskData, "dailyTaskDirty", function()
self:onRefresh()
if self.delayRefreshSid then
self:unscheduleGlobal(self.delayRefreshSid)
end
self.delayRefreshSid = self:performWithDelayGlobal(function()
self.delayRefreshSid = nil
sortTask(self.dailyTaskList)
sortTask(self.challengeTaskList)
self:onRefresh()
end, 0.1)
end)
self:bind(DataManager.DailyTaskData, "resetFlag", function()
if self.delayRefreshSid then
self:unscheduleGlobal(self.delayRefreshSid)
end
self.delayRefreshSid = self:performWithDelayGlobal(function()
self.delayRefreshSid = nil
self:initTaskList()
self:onRefresh()
end, 0.1)
end)
end
@ -236,16 +267,25 @@ function TaskMainUI:refreshDailyTasks()
if self.dailyTaskScrollRect == nil then
self:initDailyTasks()
else
self.dailyTaskScrollRect:updateAllCell()
if self.dailyTaskScrollRect:getTotalCount() == #self.dailyTaskList then
self.dailyTaskScrollRect:updateAllCell()
else
self.dailyTaskScrollRect:clearCells()
self.dailyTaskScrollRect:refillCells(#self.dailyTaskList)
end
end
end
function TaskMainUI:refreshChallenge()
Logger.logHighlight("refreshChallenge")
if self.challengeTaskScrollRect == nil then
self:initChallengeTasks()
else
self.challengeTaskScrollRect:updateAllCell()
if self.challengeTaskScrollRect:getTotalCount() == #self.challengeTaskList then
self.challengeTaskScrollRect:updateAllCell()
else
self.challengeTaskScrollRect:clearCells()
self.challengeTaskScrollRect:refillCells(#self.challengeTaskList)
end
end
end
@ -262,6 +302,9 @@ function TaskMainUI:updateTime()
if self.resetTime == time then
return
end
if self.resetTime and time > self.resetTime and DataManager.DailyTaskData:getIfCanReset() then -- 跨天了
ModuleManager.TaskManager:resetDailyTask()
end
self.resetTime = time
self.timeTx:setText(GFunc.getTimeStrWithHMS2(self.resetTime))
end

View File

@ -6,6 +6,8 @@ local DATA_NAME = "DailyTaskData"
function DailyTaskData:ctor()
self.data.dailyTaskDirty = false
self.data.resetFlag = false
self.isInReset = false
self.taskTypeMap = {}
self.dailyTasks = {}
end
@ -22,6 +24,7 @@ function DailyTaskData:init(data)
table.remove(v)
end
end
ModuleManager.TaskManager:unRegisterAllModuleTask(DATA_NAME)
for k, v in pairs(cfg) do
local task = tasks and tasks[k] or GConst.EMPTY_TABLE
local taskInfo = taskCfg[task.task_id]
@ -57,6 +60,9 @@ function DailyTaskData:init(data)
self.dailyTasks[k] = dailyTaskObj
end
end
self.initDay = Time:getBeginningOfServerToday()
self.isInReset = false
self.data.resetFlag = not self.data.resetFlag
end
function DailyTaskData:refreshDailyTask(task)
@ -245,4 +251,16 @@ function DailyTaskData:unregisterTask(taskType)
ModuleManager.TaskManager:unRegisterTask(DATA_NAME, taskType)
end
function DailyTaskData:getIfCanReset()
return self.initDay ~= Time:getBeginningOfServerToday()
end
function DailyTaskData:setInReset(isInReset)
self.isInReset = isInReset
end
function DailyTaskData:getIsInReset()
return self.isInReset
end
return DailyTaskData