From e1d389b02d323fc2bc8bd032f72856d68745db39 Mon Sep 17 00:00:00 2001
From: puxuan <413323644@qq.com>
Date: Mon, 15 Sep 2025 17:20:14 +0800
Subject: [PATCH] =?UTF-8?q?=E6=AF=8F=E6=97=A5=E6=8C=91=E6=88=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
lua/app/config/daily_challenge_level.lua | 77 -----
lua/app/config/hero.lua | 2 +-
.../localization_global_const.lua | 7 +
lua/app/config/skill.lua | 40 +--
lua/app/config/strings/cn/global.lua | 7 +
lua/app/global/global_const.lua | 10 +-
.../battle_controller_daily_challenge.lua | 3 +-
.../daily_challenge_manager.lua | 14 +
lua/app/proto/proto_msg_type.lua | 6 +
.../ui/daily_challenge/daily_challenge_ui.lua | 76 +++++
lua/app/userdata/arena/arena_data.lua | 6 +
.../daily_challenge/daily_challenge_data.lua | 318 ++++++++++--------
12 files changed, 311 insertions(+), 255 deletions(-)
diff --git a/lua/app/config/daily_challenge_level.lua b/lua/app/config/daily_challenge_level.lua
index ff95fd52..88b24ec9 100644
--- a/lua/app/config/daily_challenge_level.lua
+++ b/lua/app/config/daily_challenge_level.lua
@@ -1,11 +1,6 @@
local daily_challenge_level = {
[1]={
["max_chapter"]=11,
- ["round_map"]={
- 1,
- 2,
- 3
- },
["wave_reward"]={
{
["type"]=1,
@@ -95,13 +90,6 @@ local daily_challenge_level = {
},
[2]={
["max_chapter"]=19,
- ["round_map"]={
- 1,
- 2,
- 3,
- 4,
- 5
- },
["wave_reward"]={
{
["type"]=1,
@@ -191,15 +179,6 @@ local daily_challenge_level = {
},
[3]={
["max_chapter"]=27,
- ["round_map"]={
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7
- },
["wave_reward"]={
{
["type"]=1,
@@ -289,17 +268,6 @@ local daily_challenge_level = {
},
[4]={
["max_chapter"]=37,
- ["round_map"]={
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9
- },
["wave_reward"]={
{
["type"]=1,
@@ -389,19 +357,6 @@ local daily_challenge_level = {
},
[5]={
["max_chapter"]=47,
- ["round_map"]={
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11
- },
["wave_reward"]={
{
["type"]=1,
@@ -491,21 +446,6 @@ local daily_challenge_level = {
},
[6]={
["max_chapter"]=62,
- ["round_map"]={
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13
- },
["wave_reward"]={
{
["type"]=1,
@@ -595,23 +535,6 @@ local daily_challenge_level = {
},
[7]={
["max_chapter"]=77,
- ["round_map"]={
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15
- },
["wave_reward"]={
{
["type"]=1,
diff --git a/lua/app/config/hero.lua b/lua/app/config/hero.lua
index 23ce5f78..d009f986 100644
--- a/lua/app/config/hero.lua
+++ b/lua/app/config/hero.lua
@@ -4354,7 +4354,7 @@ local hero = {
1100,
1200
},
- ["model_id"]="p23001",
+ ["model_id"]="p25001",
["icon"]="25001",
["item_id"]=25001,
["level_id"]=10,
diff --git a/lua/app/config/localization/localization_global_const.lua b/lua/app/config/localization/localization_global_const.lua
index 91fc5b66..7c8f02b7 100644
--- a/lua/app/config/localization/localization_global_const.lua
+++ b/lua/app/config/localization/localization_global_const.lua
@@ -681,6 +681,13 @@ local LocalizationGlobalConst =
HERO_DESC_22 = "HERO_DESC_22",
HERO_DESC_23 = "HERO_DESC_23",
BAG_DESC_1 = "BAG_DESC_1",
+ DAILY_CHALLENGE_DESC_2 = "DAILY_CHALLENGE_DESC_2",
+ DAILY_CHALLENGE_DESC_3 = "DAILY_CHALLENGE_DESC_3",
+ DAILY_CHALLENGE_DESC_4 = "DAILY_CHALLENGE_DESC_4",
+ DAILY_CHALLENGE_DESC_5 = "DAILY_CHALLENGE_DESC_5",
+ DAILY_CHALLENGE_DESC_6 = "DAILY_CHALLENGE_DESC_6",
+ DAILY_CHALLENGE_DESC_7 = "DAILY_CHALLENGE_DESC_7",
+ DAILY_CHALLENGE_DESC_8 = "DAILY_CHALLENGE_DESC_8",
}
return LocalizationGlobalConst
\ No newline at end of file
diff --git a/lua/app/config/skill.lua b/lua/app/config/skill.lua
index 6a6ebe05..623e6f57 100644
--- a/lua/app/config/skill.lua
+++ b/lua/app/config/skill.lua
@@ -2361,15 +2361,11 @@ local skill = {
},
["shake_time"]=100,
["shake_type"]=1,
- ["sound_hit"]={
- 1000001
- },
["name_act"]="attack01",
["name_hit"]={
"suffer01"
},
- ["fx_self"]=300018,
- ["fx_self_mirror"]=400018
+ ["fx_self_mirror"]=100000
},
[2500111]={
["position"]=2,
@@ -2390,15 +2386,11 @@ local skill = {
},
["shake_time"]=100,
["shake_type"]=1,
- ["sound_hit"]={
- 1000002
- },
["name_act"]="attack02",
["name_hit"]={
"suffer02"
},
- ["fx_self"]=300019,
- ["fx_self_mirror"]=400019
+ ["fx_self_mirror"]=100000
},
[2500112]={
["position"]=2,
@@ -2419,15 +2411,11 @@ local skill = {
},
["shake_time"]=100,
["shake_type"]=1,
- ["sound_hit"]={
- 1000003
- },
["name_act"]="attack03",
["name_hit"]={
"suffer01"
},
- ["fx_self"]=300020,
- ["fx_self_mirror"]=400020
+ ["fx_self_mirror"]=100000
},
[2500113]={
["position"]=2,
@@ -2448,15 +2436,11 @@ local skill = {
},
["shake_time"]=100,
["shake_type"]=1,
- ["sound_hit"]={
- 1000004
- },
["name_act"]="attack04",
["name_hit"]={
"suffer02"
},
- ["fx_self"]=300021,
- ["fx_self_mirror"]=400021
+ ["fx_self_mirror"]=100000
},
[2500120]={
["energy"]=10,
@@ -2489,6 +2473,12 @@ local skill = {
["ratio"]=10000,
["round"]=0
},
+ {
+ ["type"]="hurt_yellow",
+ ["num"]=20000,
+ ["ratio"]=10000,
+ ["round"]=0
+ },
{
["type"]="hurt_yellow",
["num"]=20000,
@@ -2501,7 +2491,8 @@ local skill = {
1,
2,
3,
- 4
+ 4,
+ 5
},
["skill_position"]={
1,
@@ -2509,22 +2500,21 @@ local skill = {
},
["shake_time"]=200,
["shake_type"]=5,
- ["sound"]=12001200,
["sound_delay"]=0.0,
["name_act"]="skill01",
["name_hit"]={
"suffer01",
"suffer01",
- "suffer02",
+ "suffer03",
+ "suffer03",
"suffer03"
},
- ["fx_self"]=300022,
["bullet_time"]={
1167,
3000,
300
},
- ["fx_self_mirror"]=400022
+ ["fx_self_mirror"]=100000
},
[2500121]={
["position"]=2,
diff --git a/lua/app/config/strings/cn/global.lua b/lua/app/config/strings/cn/global.lua
index 14ee3613..756ea278 100644
--- a/lua/app/config/strings/cn/global.lua
+++ b/lua/app/config/strings/cn/global.lua
@@ -681,6 +681,13 @@ local localization_global =
["HERO_DESC_22"] = "去升星",
["HERO_DESC_23"] = "技能等级:{0}",
["BAG_DESC_1"] = "背包",
+ ["DAILY_CHALLENGE_DESC_2"] = "提升难度",
+ ["DAILY_CHALLENGE_DESC_3"] = "通关主线{0}-{1}({2})",
+ ["DAILY_CHALLENGE_DESC_4"] = "难度提升将提升未领取的任务奖励和通关奖励,是否确定?",
+ ["DAILY_CHALLENGE_DESC_5"] = "降低难度后,未领取的任务奖励和通关奖励将降低,是否确定?",
+ ["DAILY_CHALLENGE_DESC_6"] = "请先领取已达成的任务奖励",
+ ["DAILY_CHALLENGE_DESC_7"] = "降低难度",
+ ["DAILY_CHALLENGE_DESC_8"] = "已达成",
}
return localization_global
\ No newline at end of file
diff --git a/lua/app/global/global_const.lua b/lua/app/global/global_const.lua
index 78e30a0d..3122fc02 100644
--- a/lua/app/global/global_const.lua
+++ b/lua/app/global/global_const.lua
@@ -330,11 +330,11 @@ GConst.MESSAGE_BOX_SHOW_TODAY = {
GConst.QUALITY_TYPE =
{
[1] = "#D1D1D1",
- [2] = "#A3FF94",
- [3] = "#4DFFF5",
- [4] = "#FA79FF",
- [5] = "#F3A345",
- [6] = "#F34545",
+ [2] = "#5BFF5F",
+ [3] = "#4ADBFF",
+ [4] = "#DF70FF",
+ [5] = "#FF9B59",
+ [6] = "#FF5D5D",
}
GConst.QUALITY_COLOR = {
diff --git a/lua/app/module/battle/controller/battle_controller_daily_challenge.lua b/lua/app/module/battle/controller/battle_controller_daily_challenge.lua
index 66d27258..5a7c3f50 100644
--- a/lua/app/module/battle/controller/battle_controller_daily_challenge.lua
+++ b/lua/app/module/battle/controller/battle_controller_daily_challenge.lua
@@ -12,7 +12,8 @@ function BattleControllerDailyChallenge:getChapterConfig()
end
function BattleControllerDailyChallenge:getChapterId()
- return DataManager.DailyChallengeData:getChapterDailyId()
+ -- return DataManager.DailyChallengeData:getChapterDailyId()
+ return DataManager.DailyChallengeData:getDiffLv()
end
function BattleControllerDailyChallenge:getBuffs()
diff --git a/lua/app/module/daily_challenge/daily_challenge_manager.lua b/lua/app/module/daily_challenge/daily_challenge_manager.lua
index 5a5878b2..bfd081d2 100644
--- a/lua/app/module/daily_challenge/daily_challenge_manager.lua
+++ b/lua/app/module/daily_challenge/daily_challenge_manager.lua
@@ -234,4 +234,18 @@ function DailyChallengeManager:getCurTaskProgress(battleController)
return taskCurProgress
end
+-- 修改难度
+function DailyChallengeManager:onChapterDailyChallengeLevelReq(level)
+ local parmas = {
+ level = level,
+ }
+ self:sendMessage(ProtoMsgType.FromMsgEnum.ChapterDailyChallengeLevelReq, parmas, {}, self.onChapterDailyChallengeLevelRsp)
+end
+
+function DailyChallengeManager:onChapterDailyChallengeLevelRsp(result)
+ if result.err_code == GConst.ERROR_STR.SUCCESS then
+ DataManager.DailyChallengeData:setDiffLv(result.reqData.level)
+ end
+end
+
return DailyChallengeManager
\ No newline at end of file
diff --git a/lua/app/proto/proto_msg_type.lua b/lua/app/proto/proto_msg_type.lua
index 84e496ed..fb97c91f 100644
--- a/lua/app/proto/proto_msg_type.lua
+++ b/lua/app/proto/proto_msg_type.lua
@@ -113,6 +113,8 @@ local ProtoMsgType = {
[2017338205] = "BossRushSettlementRsp",
[2018011867] = "TournWaveRankReq",
[2018013700] = "TournWaveRankRsp",
+ [2055679641] = "ChapterDailyChallengeLevelReq",
+ [2055681474] = "ChapterDailyChallengeLevelRsp",
[2060508030] = "ChangeAvatarFrameReq",
[2060509863] = "ChangeAvatarFrameRsp",
[2095612947] = "ChangeNameReq",
@@ -412,6 +414,8 @@ local ProtoMsgType = {
BossRushSettlementRsp = 2017338205,
TournWaveRankReq = 2018011867,
TournWaveRankRsp = 2018013700,
+ ChapterDailyChallengeLevelReq = 2055679641,
+ ChapterDailyChallengeLevelRsp = 2055681474,
ChangeAvatarFrameReq = 2060508030,
ChangeAvatarFrameRsp = 2060509863,
ChangeNameReq = 2095612947,
@@ -711,6 +715,8 @@ local ProtoMsgType = {
BossRushSettlementRsp = "BossRushSettlementRsp",
TournWaveRankReq = "TournWaveRankReq",
TournWaveRankRsp = "TournWaveRankRsp",
+ ChapterDailyChallengeLevelReq = "ChapterDailyChallengeLevelReq",
+ ChapterDailyChallengeLevelRsp = "ChapterDailyChallengeLevelRsp",
ChangeAvatarFrameReq = "ChangeAvatarFrameReq",
ChangeAvatarFrameRsp = "ChangeAvatarFrameRsp",
ChangeNameReq = "ChangeNameReq",
diff --git a/lua/app/ui/daily_challenge/daily_challenge_ui.lua b/lua/app/ui/daily_challenge/daily_challenge_ui.lua
index b4732471..ab77d907 100644
--- a/lua/app/ui/daily_challenge/daily_challenge_ui.lua
+++ b/lua/app/ui/daily_challenge/daily_challenge_ui.lua
@@ -32,6 +32,8 @@ function DailyChallengeUI:onLoadRootComplete()
end)
uiMap["daily_challenge_ui.title.title_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.DAILY_CHALLENGE))
uiMap["daily_challenge_ui.record_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.CHAPTER_DESC_1, DataManager.DailyChallengeData:getMaxWave()))
+ uiMap["daily_challenge_ui.up_diff_btn.text"]:setText(I18N:getGlobalText(I18N.GlobalConst.DAILY_CHALLENGE_DESC_2))
+ uiMap["daily_challenge_ui.down_diff_btn.text"]:setText(I18N:getGlobalText(I18N.GlobalConst.DAILY_CHALLENGE_DESC_7))
self.tasks = GFunc.getTable()
table.insert(self.tasks, uiMap["daily_challenge_ui.task.icon_task1"])
@@ -57,9 +59,60 @@ function DailyChallengeUI:onLoadRootComplete()
self.countTxNum = uiMap["daily_challenge_ui.fight_btn.tx_count"]
-- 按钮文本
self.txFight = uiMap["daily_challenge_ui.fight_btn.tx_desc"]
+
+ self.upDiffBtn = uiMap["daily_challenge_ui.up_diff_btn"]
+ self.upDiffBtnDescTx = uiMap["daily_challenge_ui.up_diff_btn.desc_tx"]
+ self.downDiffBtn = uiMap["daily_challenge_ui.down_diff_btn"]
self.fightBtn:addClickListener(function ()
ModuleManager.DailyChallengeManager:startChallenge()
end)
+ self.upDiffBtn:addClickListener(function ()
+ if DataManager.DailyChallengeData:canGetReward() then
+ GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.DAILY_CHALLENGE_DESC_6))
+ return
+ end
+ local diffChapter = DataManager.DailyChallengeData:getDiffLv()
+ local maxChapter = DataManager.DailyChallengeData:getMaxDiffLv()
+ if diffChapter == maxChapter then
+ return
+ else
+ local cfg = DataManager.DailyChallengeData:getDifficultyCfg(diffChapter + 1)
+ local chapterId = DataManager.ChapterData:getMaxChapterId()
+ if cfg.max_chapter <= chapterId then
+ local params = {
+ content = I18N:getGlobalText(I18N.GlobalConst.DAILY_CHALLENGE_DESC_4),
+ boxType = GConst.MESSAGE_BOX_TYPE.MB_OK_CANCEL,
+ okText = I18N:getGlobalText(I18N.GlobalConst.BTN_TEXT_OK),
+ cancelText = I18N:getGlobalText(I18N.GlobalConst.BTN_TEXT_CANCEL),
+ okFunc = function()
+ ModuleManager.DailyChallengeManager:onChapterDailyChallengeLevelReq(diffChapter + 1)
+ end,
+ }
+ GFunc.showMessageBox(params)
+ end
+ end
+ end)
+ self.downDiffBtn:addClickListener(function ()
+ if DataManager.DailyChallengeData:canGetReward() then
+ GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.DAILY_CHALLENGE_DESC_6))
+ return
+ end
+ local diffChapter = DataManager.DailyChallengeData:getDiffLv()
+ if diffChapter == 1 then
+ return
+ else
+ local params = {
+ content = I18N:getGlobalText(I18N.GlobalConst.DAILY_CHALLENGE_DESC_5),
+ boxType = GConst.MESSAGE_BOX_TYPE.MB_OK_CANCEL,
+ okText = I18N:getGlobalText(I18N.GlobalConst.BTN_TEXT_OK),
+ cancelText = I18N:getGlobalText(I18N.GlobalConst.BTN_TEXT_CANCEL),
+ okFunc = function()
+ ModuleManager.DailyChallengeManager:onChapterDailyChallengeLevelReq(diffChapter - 1)
+ end,
+ }
+ GFunc.showMessageBox(params)
+ end
+ end)
self:bind(DataManager.DailyChallengeData, "isDirty", function()
self:onRefresh()
@@ -78,6 +131,7 @@ function DailyChallengeUI:onRefresh()
self:refreshBoss()
self:updateTime()
self:refreshFightBtn()
+ self:refreshDiffBtn()
if DataManager.DailyChallengeData:getIsPopTask() then
ModuleManager.DailyChallengeManager:showBattleTaskUI()
@@ -180,4 +234,26 @@ function DailyChallengeUI:refreshFightBtn()
end
end
+function DailyChallengeUI:refreshDiffBtn()
+ local diffChapter = DataManager.DailyChallengeData:getDiffLv()
+ local maxChapter = DataManager.DailyChallengeData:getMaxDiffLv()
+ if diffChapter == maxChapter then
+ self.upDiffBtn:setActive(false)
+ else
+ self.upDiffBtn:setActive(true)
+ local cfg = DataManager.DailyChallengeData:getDifficultyCfg(diffChapter + 1)
+ local chapterId = DataManager.ChapterData:getMaxChapterId()
+ local chapterPage = DataManager.ChapterData:getChapterPage(diffChapter + 1)
+ local chapterStage = DataManager.ChapterData:getChapterStage(diffChapter + 1)
+ local str
+ if cfg.max_chapter <= chapterId then
+ str = I18N:getGlobalText(I18N.GlobalConst.DAILY_CHALLENGE_DESC_3, chapterPage, chapterStage, "" .. I18N:getGlobalText(I18N.GlobalConst.DAILY_CHALLENGE_DESC_8) .. "")
+ else
+ str = I18N:getGlobalText(I18N.GlobalConst.DAILY_CHALLENGE_DESC_3, chapterPage, chapterStage, "" .. I18N:getGlobalText(I18N.GlobalConst.CHAPTER_WAVE_REAWRD_1) .. "")
+ end
+ self.upDiffBtnDescTx:setText(str)
+ end
+ self.downDiffBtn:setActive(diffChapter > 1)
+end
+
return DailyChallengeUI
\ No newline at end of file
diff --git a/lua/app/userdata/arena/arena_data.lua b/lua/app/userdata/arena/arena_data.lua
index aa45b11d..7b578edd 100644
--- a/lua/app/userdata/arena/arena_data.lua
+++ b/lua/app/userdata/arena/arena_data.lua
@@ -10,6 +10,7 @@ function ArenaData:clear()
self.lastArenaGiftId = nil
self.curArenaGiftId = nil
self.giftExpireAt = nil
+ self.inited = nil
end
function ArenaData:init(data)
@@ -39,6 +40,8 @@ function ArenaData:init(data)
DataManager.FormationData:initArena(data.attack_array_heroes, data.defend_array_heroes)
DataManager.PlayerData:initArena(data.today_ticket_buy_count, data.today_ticket_ad_count)
+ self.inited = true
+
-- 未找到相应赛季数据
if not self:hasServerData() then
GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_30))
@@ -461,6 +464,9 @@ end
-- 是否有入口红点
function ArenaData:hasEntranceRedDot()
+ if not self.inited then
+ return false
+ end
if not self:isOpen() then
return false
end
diff --git a/lua/app/userdata/daily_challenge/daily_challenge_data.lua b/lua/app/userdata/daily_challenge/daily_challenge_data.lua
index c9c9fae5..27b33d68 100644
--- a/lua/app/userdata/daily_challenge/daily_challenge_data.lua
+++ b/lua/app/userdata/daily_challenge/daily_challenge_data.lua
@@ -1,5 +1,6 @@
local DailyChallengeData = class("DailyChallengeData", BaseData)
local TASK_CFG = ConfigManager:getConfig("task_daily_challenge")
+local CHAPTER_DAILY_CHALLENGE_CFG = ConfigManager:getConfig("chapter_daily_challenge")
local PER_TASK = {[6] = true}
local FIXED_HERO_TASK = {}
local MATCH_TYPE_TASK = {[4] = true, [6] = true}
@@ -10,80 +11,81 @@ function DailyChallengeData:ctor()
end
function DailyChallengeData:init(data)
- if EDITOR_MODE then
- Logger.logHighlight("每日挑战 更新数据...")
- Logger.printTable(data)
- end
- data = data or GConst.EMPTY_TABLE
- self.maxWave = data.max_wave or 0
- self.fixedChapterId = data.today_fixed_chapter_id or 1
- self.chapterDailyId = data.rand_chapter_daily_id or 1
- self.tasks = data.tasks or GConst.EMPTY_TABLE
- self.buffIds = data.buff_id or GConst.EMPTY_TABLE
- self.totalFightCount = data.total_challenge_count or 0
- self.todayFightCount = data.today_challenge_count or 0
- self.initDay = Time:getBeginningOfServerToday()
- self.popTaskTime = LocalData:getChallengeTaskPopTime()
- self:setDirty()
+ if EDITOR_MODE then
+ Logger.logHighlight("每日挑战 更新数据...")
+ Logger.printTable(data)
+ end
+ data = data or GConst.EMPTY_TABLE
+ self.maxWave = data.max_wave or 0
+ self.fixedChapterId = data.today_fixed_chapter_id or 1
+ self.chapterDailyId = data.rand_chapter_daily_id or 1
+ self.tasks = data.tasks or GConst.EMPTY_TABLE
+ self.buffIds = data.buff_id or GConst.EMPTY_TABLE
+ self.totalFightCount = data.total_challenge_count or 0
+ self.todayFightCount = data.today_challenge_count or 0
+ self.initDay = Time:getBeginningOfServerToday()
+ self.popTaskTime = LocalData:getChallengeTaskPopTime()
+ self.diffLv = data.level or 1
+ self:setDirty()
end
function DailyChallengeData:onGetedTaskReward(idx)
- if self.tasks[idx] then
- self.tasks[idx].claimed = true
- self:setDirty()
- end
+ if self.tasks[idx] then
+ self.tasks[idx].claimed = true
+ self:setDirty()
+ end
end
function DailyChallengeData:clear()
end
function DailyChallengeData:isOpen()
- if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.DAILY_CHALLENGE, true) then
- return false
- end
- return true
+ if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.DAILY_CHALLENGE, true) then
+ return false
+ end
+ return true
end
function DailyChallengeData:setDirty()
- self.data.isDirty = not self.data.isDirty
+ self.data.isDirty = not self.data.isDirty
end
-- 是否满足挑战条件
function DailyChallengeData:isMeetChallenge()
- return self:isOpen() and self:isEnoughChallengeTime() and self:isEnoughHp()
+ return self:isOpen() and self:isEnoughChallengeTime() and self:isEnoughHp()
end
-- 次数是否足够
function DailyChallengeData:isEnoughChallengeTime()
- return self:getTodayRemainLimitCount() > 0
+ return self:getTodayRemainLimitCount() > 0
end
-- 获取挑战次数消耗
function DailyChallengeData:getChallengeTimeCost()
- return GFunc.getConstIntValue("daily_challenge_limit")
+ return GFunc.getConstIntValue("daily_challenge_limit")
end
-- 体力是否足够
function DailyChallengeData:isEnoughHp()
- local const = self:getChallengeHpCost()
- local constNum = nil
- if const then
- constNum = GFunc.getRewardNum(const)
- else
- constNum = 0
- end
- return constNum <= DataManager.BagData.ItemData:getVit()
+ local const = self:getChallengeHpCost()
+ local constNum = nil
+ if const then
+ constNum = GFunc.getRewardNum(const)
+ else
+ constNum = 0
+ end
+ return constNum <= DataManager.BagData.ItemData:getVit()
end
-- 获取挑战体力消耗
function DailyChallengeData:getChallengeHpCost()
- return GFunc.getConstReward("daily_challenge_cost")
-
+ return GFunc.getConstReward("daily_challenge_cost")
+
end
-- 获取今日挑战场景配置
function DailyChallengeData:getMapConfig()
- return ConfigManager:getConfig("chapter_daily_challenge")[self:getChapterDailyId()]
+ return ConfigManager:getConfig("chapter_daily_challenge")[self:getChapterDailyId()]
end
function DailyChallengeData:getTaskCfg()
@@ -95,173 +97,173 @@ end
-- 获取今日通关次数
function DailyChallengeData:getTodayPassNum()
- return self.todayFightCount
+ return self.todayFightCount
end
-- 获取今日最高记录(最大通过波次)
function DailyChallengeData:getMaxWave()
- return self.maxWave
+ return self.maxWave
end
-- 获取今日增益、负面buff
function DailyChallengeData:getTodayBuffIds()
- return self.buffIds
+ return self.buffIds
end
-- 获取buff描述
function DailyChallengeData:getBuffDesc(buffId)
- return I18N:getText("buff_daily_challenge", buffId, "desc")
+ return I18N:getText("buff_daily_challenge", buffId, "desc")
end
-- 获取最终boss配置信息
function DailyChallengeData:getFinalBossInfo()
- if not self:isOpen() then
- return
- end
- local mapCfg = self:getMapConfig()
- if not mapCfg then
- return
- end
- return ConfigManager:getConfig("monster")[mapCfg.monster[#mapCfg.monster]]
+ if not self:isOpen() then
+ return
+ end
+ local mapCfg = self:getMapConfig()
+ if not mapCfg then
+ return
+ end
+ return ConfigManager:getConfig("monster")[mapCfg.monster[#mapCfg.monster]]
end
-- 任务是否完成
function DailyChallengeData:isTaskFinish(index)
- if not self:isOpen() then
- return false
- end
- local cfg = self:getTaskCfgInfo(self.tasks[index].task_id)
- if not cfg then
- return false
- end
+ if not self:isOpen() then
+ return false
+ end
+ local cfg = self:getTaskCfgInfo(self.tasks[index].task_id)
+ if not cfg then
+ return false
+ end
- return cfg.param <= self.tasks[index].progress
+ return cfg.param <= self.tasks[index].progress
end
function DailyChallengeData:getTasks()
- return self.tasks
+ return self.tasks
end
function DailyChallengeData:getTaskById(taskId)
- for index, taskInfo in ipairs(self.tasks) do
- if taskInfo.task_id == taskId then
- return taskInfo
- end
- end
+ for index, taskInfo in ipairs(self.tasks) do
+ if taskInfo.task_id == taskId then
+ return taskInfo
+ end
+ end
- return
+ return
end
-- 任务奖励是否可领取
function DailyChallengeData:canClaimTask(index)
- if not self:isOpen() then
- return false
- end
- if not self.tasks[index] then
- return false
- end
- if self.tasks[index].claimed then
- return false
- end
+ if not self:isOpen() then
+ return false
+ end
+ if not self.tasks[index] then
+ return false
+ end
+ if self.tasks[index].claimed then
+ return false
+ end
- return self:isTaskFinish(index)
+ return self:isTaskFinish(index)
end
function DailyChallengeData:getTaskProgresss(index)
- if not self:isOpen() then
- return 0
- end
- if not self.tasks[index] then
- return 0
- end
- return self.tasks[index].progress
+ if not self:isOpen() then
+ return 0
+ end
+ if not self.tasks[index] then
+ return 0
+ end
+ return self.tasks[index].progress
end
function DailyChallengeData:getTaskCfgInfo(taskId)
- return TASK_CFG[taskId]
+ return TASK_CFG[taskId]
end
function DailyChallengeData:getTaskTotalNumber(taskId)
- if self:getTaskCfgInfo(taskId) then
- return self:getTaskCfgInfo(taskId).param
- else
- return 1 -- 容错,防止报错
- end
+ if self:getTaskCfgInfo(taskId) then
+ return self:getTaskCfgInfo(taskId).param
+ else
+ return 1 -- 容错,防止报错
+ end
end
function DailyChallengeData:getTaskRewards(taskId)
- if self:getTaskCfgInfo(taskId) then
- return self:getTaskCfgInfo(taskId).reward
- end
- return nil
+ if self:getTaskCfgInfo(taskId) then
+ return self:getTaskCfgInfo(taskId).reward
+ end
+ return nil
end
function DailyChallengeData:getTaskDesc(taskId, needProgress, customProgress)
- local desc = GConst.EMPTY_STRING
- if not I18N:getConfig("task_daily_challenge")[taskId] then
- return desc
- end
- local taskNum = self:getTaskTotalNumber(taskId)
- if PER_TASK[taskId] then
- taskNum = taskNum * 100 // GConst.BattleConst.DEFAULT_FACTOR
- end
- local taskInfo = self:getTaskById(taskId)
- if not taskInfo then
- return desc
- end
+ local desc = GConst.EMPTY_STRING
+ if not I18N:getConfig("task_daily_challenge")[taskId] then
+ return desc
+ end
+ local taskNum = self:getTaskTotalNumber(taskId)
+ if PER_TASK[taskId] then
+ taskNum = taskNum * 100 // GConst.BattleConst.DEFAULT_FACTOR
+ end
+ local taskInfo = self:getTaskById(taskId)
+ if not taskInfo then
+ return desc
+ end
- local conditionStr
- if FIXED_HERO_TASK[taskId] then -- 具体英雄
- conditionStr = ModuleManager.HeroManager:getHeroName(taskInfo.param, true)
- elseif MATCH_TYPE_TASK[taskId] then -- 颜色英雄
- conditionStr = ModuleManager.HeroManager:getMatchTypeName(taskInfo.param, true)
- end
+ local conditionStr
+ if FIXED_HERO_TASK[taskId] then -- 具体英雄
+ conditionStr = ModuleManager.HeroManager:getHeroName(taskInfo.param, true)
+ elseif MATCH_TYPE_TASK[taskId] then -- 颜色英雄
+ conditionStr = ModuleManager.HeroManager:getMatchTypeName(taskInfo.param, true)
+ end
- if conditionStr then
- desc = I18N:getText("task_daily_challenge", taskId, "desc", conditionStr, taskNum)
- else
- desc = I18N:getText("task_daily_challenge", taskId, "desc", taskNum)
- end
+ if conditionStr then
+ desc = I18N:getText("task_daily_challenge", taskId, "desc", conditionStr, taskNum)
+ else
+ desc = I18N:getText("task_daily_challenge", taskId, "desc", taskNum)
+ end
- if needProgress and NEED_PROGRESS_TASK[taskId] then
- local progress = customProgress or taskInfo.progress
- if PER_TASK[taskId] then
- progress = progress * 100 // GConst.BattleConst.DEFAULT_FACTOR .. "%"
- taskNum = taskNum .. "%"
- end
- local progressStr = string.format("(%s/%s)", progress, taskNum)
- desc = desc .. progressStr
- end
- return desc
+ if needProgress and NEED_PROGRESS_TASK[taskId] then
+ local progress = customProgress or taskInfo.progress
+ if PER_TASK[taskId] then
+ progress = progress * 100 // GConst.BattleConst.DEFAULT_FACTOR .. "%"
+ taskNum = taskNum .. "%"
+ end
+ local progressStr = string.format("(%s/%s)", progress, taskNum)
+ desc = desc .. progressStr
+ end
+ return desc
end
function DailyChallengeData:getTodayRemainLimitCount()
- local count = self:getChallengeTimeCost() - self.todayFightCount
- if count < 0 then
- count = 0
- end
- return count
+ local count = self:getChallengeTimeCost() - self.todayFightCount
+ if count < 0 then
+ count = 0
+ end
+ return count
end
-- 处理主动退出的情况
function DailyChallengeData:onFightCountReduce()
- self.todayFightCount = self.todayFightCount + 1
+ self.todayFightCount = self.todayFightCount + 1
end
function DailyChallengeData:getFixedChapterId()
- return self.fixedChapterId
+ return self.fixedChapterId
end
function DailyChallengeData:getChapterDailyId()
- return self.chapterDailyId
+ return self.chapterDailyId
end
function DailyChallengeData:setFixedChapterId(id)
- self.fixedChapterId = id
+ self.fixedChapterId = id
end
function DailyChallengeData:getTotalFightCount()
- return self.totalFightCount
+ return self.totalFightCount
end
function DailyChallengeData:getIfCanReset()
@@ -285,14 +287,14 @@ function DailyChallengeData:getIsInReset()
end
function DailyChallengeData:getIsPopTask()
- if not self:isOpen() then
- return false
- end
- return self.popTaskTime < Time:getBeginningOfServerToday()
+ if not self:isOpen() then
+ return false
+ end
+ return self.popTaskTime < Time:getBeginningOfServerToday()
end
function DailyChallengeData:markPopTask()
- if self.popTaskTime >= Time:getBeginningOfServerToday() then
+ if self.popTaskTime >= Time:getBeginningOfServerToday() then
return
end
self.popTaskTime = Time:getBeginningOfServerToday()
@@ -301,12 +303,36 @@ end
--@region 红点
function DailyChallengeData:showRedPoint()
- for i = 1, 3 do
- if DataManager.DailyChallengeData:canClaimTask(i) then
- return true
- end
- end
- return false
+ return self:canGetReward()
+end
+
+function DailyChallengeData:canGetReward()
+ for i = 1, 3 do
+ if DataManager.DailyChallengeData:canClaimTask(i) then
+ return true
+ end
+ end
+ return false
+end
+
+--@endregion
+
+--@region 难度
+function DailyChallengeData:setDiffLv(diffLv)
+ self.diffLv = diffLv
+ self:setDirty()
+end
+
+function DailyChallengeData:getDiffLv()
+ return self.diffLv
+end
+
+function DailyChallengeData:getMaxDiffLv()
+ return #CHAPTER_DAILY_CHALLENGE_CFG
+end
+
+function DailyChallengeData:getDifficultyCfg(id)
+ return CHAPTER_DAILY_CHALLENGE_CFG[id]
end
--@endregion
return DailyChallengeData
\ No newline at end of file