diff --git a/lua/app/common/bi_report.lua b/lua/app/common/bi_report.lua
index c71f98de..2c572a4e 100644
--- a/lua/app/common/bi_report.lua
+++ b/lua/app/common/bi_report.lua
@@ -169,6 +169,14 @@ BIReport.ITEM_GET_TYPE = {
RUNES_QUENCHING = "RuneQuenching",
RUNES_AUTO_QUENCHING = "RuneAutoQuenching",
RUNES_GIFT = "RuneGift",
+ TOURN_WAVE_BOUNTY_REWARD = "TournWaveBountyReward",
+ TOURN_WAVE_BOUNTY_LEVEL = "TournWaveBountyLevel",
+ TOURN_WAVE_RANK_REWARD = "TournWaveRankReward",
+ TOURN_WAVE_GIFT = "TournWaveGift",
+ TOURN_ARENA_BOUNTY_REWARD = "TournArenaBountyReward",
+ TOURN_ARENA_BOUNTY_LEVEL = "TournArenaBountyLevel",
+ TOURN_ARENA_RANK_REWARD = "TournArenaRankReward",
+ TOURN_ARENA_GIFT = "TournArenaGift",
FULL_MOON_TASK = "FullMoonTask",
FULL_MOON_TASK_PROG_REWARD = "FullMoonTaskProgReward",
FULL_MOON_SKIN_CHALLENGE_REWARD = "FullMoonSkinChallengeReward",
@@ -256,6 +264,8 @@ BIReport.GIFT_TYPE = {
FULL_MOON_NEW_HERO_GIFT = "FullMoonNewHeroGift",
FULL_MOON_SKIN_GIFT = "FullMoonSkinGift",
RUNES_GIFT = "RunesGift",
+ TOURN_WAVE_GIFT = "TournWaveGift",
+ TOURN_ARENA_GIFT = "TournArenaGift",
}
BIReport.COIN_TYPE = {
diff --git a/lua/app/common/data_manager.lua b/lua/app/common/data_manager.lua
index ff1269f5..b773b5a9 100644
--- a/lua/app/common/data_manager.lua
+++ b/lua/app/common/data_manager.lua
@@ -34,6 +34,8 @@ function DataManager:init()
self:initManager("ShopData", "app/userdata/shop/shop_data")
self:initManager("SummonData", "app/userdata/summon/summon_data")
self:initManager("FullMoonData", "app/userdata/activity/full_moon/full_moon_data")
+ self:initManager("TournWaveData", "app/userdata/activity/tourn_wave/tourn_wave_data")
+ self:initManager("TournArenaData", "app/userdata/activity/tourn_arena/tourn_arena_data")
self:initManager("AIHelperData", "app/userdata/game_setting/ai_helper_data")
self:initManager("HeroFundData", "app/userdata/activity/hero_fund/hero_fund_data")
self:initManager("ActBossRushData", "app/userdata/activity/act_boss_rush/act_boss_rush_data")
@@ -123,6 +125,8 @@ function DataManager:clear()
self.ShopData:clear()
self.SummonData:clear()
self.FullMoonData:clear()
+ self.TournWaveData:clear()
+ self.TournArenaData:clear()
-- 任务数据最后清理
self.TaskData:clear()
self.AIHelperData:clear()
@@ -535,6 +539,16 @@ DataManager.activityOpenFunc = {
ModuleManager.FullMoonManager:reqActData()
ModuleManager.FullMoonManager:initTimer()
end,
+ [5] = function(params)
+ DataManager.TournWaveData:setActStatus(params)
+ ModuleManager.TournWaveManager:reqActData()
+ ModuleManager.TournWaveManager:initTimer()
+ end,
+ [6] = function(params)
+ DataManager.TournArenaData:setActStatus(params)
+ ModuleManager.TournArenaManager:reqActData()
+ ModuleManager.TournArenaManager:initTimer()
+ end,
}
DataManager.waitOpenActivity = {
@@ -551,6 +565,14 @@ DataManager.waitOpenActivity = {
DataManager.FullMoonData:setActStatus(params)
ModuleManager.FullMoonManager:initTimer()
end,
+ [5] = function(params)
+ DataManager.TournWaveData:setActStatus(params)
+ ModuleManager.TournWaveManager:initTimer()
+ end,
+ [6] = function(params)
+ DataManager.TournArenaData:setActStatus(params)
+ ModuleManager.TournArenaManager:initTimer()
+ end,
}
return DataManager
\ No newline at end of file
diff --git a/lua/app/common/event_manager.lua b/lua/app/common/event_manager.lua
index 5c17961e..8317bab4 100644
--- a/lua/app/common/event_manager.lua
+++ b/lua/app/common/event_manager.lua
@@ -47,6 +47,7 @@ EventManager.CUSTOM_EVENT = {
ARENA_RECORD_SUCCESS = "ARENA_RECORD_SUCCESS",-- 战报获取成功
ARENA_RANK_SUCCESS = "ARENA_RANK_SUCCESS",-- 排行榜获取成功
ARENA_AD_BOX_SUCCESS = "ARENA_AD_BOX_SUCCESS",-- ad宝箱获取成功
+ ARENA_BATTLE_SETTLEMENT = "ARENA_BATTLE_SETTLEMENT",-- 竞技场战斗结算
-- 图鉴
COLLECTION_CLICK_GET_POINT = "COLLECTION_CLICK_GET_POINT",
-- 装备
@@ -63,6 +64,8 @@ EventManager.CUSTOM_EVENT = {
DUNGEON_ARMOR_TO_TARGET_ID = "DUNGEON_ARMOR_TO_TARGET_ID",
ACTIVITY_SUMMER_END = "ACTIVITY_SUMMER_END",
ACTIVITY_FULL_MOON_END = "ACTIVITY_FULL_MOON_END",
+ ACTIVITY_TOURN_WAVE_END = "ACTIVITY_TOURN_WAVE_END",
+ ACTIVITY_TOURN_ARENA_END = "ACTIVITY_TOURN_ARENA_END",
MAIN_UI_CHECK_SIDE_BAR = "MAIN_UI_CHECK_SIDE_BAR",
FORMATION_CHANGE = "FORMATION_CHANGE",
BATTLE_REBIRTH = "BATTLE_REBIRTH",
diff --git a/lua/app/common/module_manager.lua b/lua/app/common/module_manager.lua
index 505fa1f3..4900ebd3 100644
--- a/lua/app/common/module_manager.lua
+++ b/lua/app/common/module_manager.lua
@@ -79,6 +79,10 @@ local MODULE_PATHS = {
FourteenDayManager = "app/module/activity/fourteen_day/fourteen_day_manager",
-- 圆月活动
FullMoonManager = "app/module/activity/full_moon/full_moon_manager",
+ -- 波次锦标赛活动
+ TournWaveManager = "app/module/activity/tourn_wave/tourn_wave_manager",
+ -- 竞技场锦标赛活动
+ TournArenaManager = "app/module/activity/tourn_arena/tourn_arena_manager",
-- 符文副本
DungeonRuneManager = "app/module/dungeon_rune/dungeon_rune_manager",
-- 梦魇酒馆
@@ -139,6 +143,7 @@ function ModuleManager:init()
ModuleManager.DailyChallengeManager:init()
ModuleManager.PlayerManager:init()
ModuleManager.SkinManager:init()
+ ModuleManager.TournArenaManager:init()
end
-- 功能是否开启
diff --git a/lua/app/common/pay_manager.lua b/lua/app/common/pay_manager.lua
index 674e7119..fd5bbe16 100644
--- a/lua/app/common/pay_manager.lua
+++ b/lua/app/common/pay_manager.lua
@@ -32,6 +32,8 @@ PayManager.PURCHARSE_ACT_TYPE = {
FULL_MOON_NEW_HERO_GIFT = 19,
FULL_MOON_SKIN_GIFT = 20,
RUNES_GIFT = 21,
+ TOURN_WAVE_GIFT = 23,
+ TOURN_ARENA_GIFT = 24,
}
PayManager.PURCHARSE_TYPE_CONFIG = {
@@ -66,6 +68,8 @@ PayManager.BI_ITEM_GET_TYPE = {
[PayManager.PURCHARSE_ACT_TYPE.FULL_MOON_NEW_HERO_GIFT] = BIReport.ITEM_GET_TYPE.FULL_MOON_NEW_HERO_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.FULL_MOON_SKIN_GIFT] = BIReport.ITEM_GET_TYPE.FULL_MOON_SKIN_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.RUNES_GIFT] = BIReport.ITEM_GET_TYPE.RUNES_GIFT,
+ [PayManager.PURCHARSE_ACT_TYPE.TOURN_WAVE_GIFT] = BIReport.ITEM_GET_TYPE.TOURN_WAVE_GIFT,
+ [PayManager.PURCHARSE_ACT_TYPE.TOURN_ARENA_GIFT] = BIReport.ITEM_GET_TYPE.TOURN_ARENA_GIFT,
},
[PayManager.PURCHARSE_TYPE.ACT_GOLD_PIG] = BIReport.ITEM_GET_TYPE.GOLD_PIG,
[PayManager.PURCHARSE_TYPE.MALL_TREASURE] = BIReport.ITEM_GET_TYPE.MALL_TREASURE,
@@ -97,6 +101,8 @@ PayManager.BI_GIFT_TYPE = {
[PayManager.PURCHARSE_ACT_TYPE.FULL_MOON_NEW_HERO_GIFT] = BIReport.GIFT_TYPE.FULL_MOON_NEW_HERO_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.FULL_MOON_SKIN_GIFT] = BIReport.GIFT_TYPE.FULL_MOON_SKIN_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.RUNES_GIFT] = BIReport.GIFT_TYPE.RUNES_GIFT,
+ [PayManager.PURCHARSE_ACT_TYPE.TOURN_WAVE_GIFT] = BIReport.GIFT_TYPE.TOURN_WAVE_GIFT,
+ [PayManager.PURCHARSE_ACT_TYPE.TOURN_ARENA_GIFT] = BIReport.GIFT_TYPE.TOURN_ARENA_GIFT,
},
[PayManager.PURCHARSE_TYPE.ACT_GOLD_PIG] = BIReport.GIFT_TYPE.GOLD_PIG,
[PayManager.PURCHARSE_TYPE.MALL_TREASURE] = BIReport.GIFT_TYPE.MALL_TREASURE,
diff --git a/lua/app/config/act_gift.lua b/lua/app/config/act_gift.lua
index 7e130db1..3ee3f191 100644
--- a/lua/app/config/act_gift.lua
+++ b/lua/app/config/act_gift.lua
@@ -1785,7 +1785,7 @@ local act_gift = {
40,
60
},
- ["recharge_id"]=8,
+ ["recharge_id"]=10,
["reward"]={
{
["type"]=1,
@@ -1808,8 +1808,8 @@ local act_gift = {
["type_for_nothing"]="Vw==",
["id"]=1003,
["id_for_nothing"]="VwhcAA==",
- ["num"]=40,
- ["num_for_nothing"]="Ugg="
+ ["num"]=60,
+ ["num_for_nothing"]="UAg="
}
},
["time_type"]=1,
@@ -1823,7 +1823,7 @@ local act_gift = {
60,
80
},
- ["recharge_id"]=8,
+ ["recharge_id"]=10,
["reward"]={
{
["type"]=1,
@@ -1846,8 +1846,8 @@ local act_gift = {
["type_for_nothing"]="Vw==",
["id"]=1003,
["id_for_nothing"]="VwhcAA==",
- ["num"]=40,
- ["num_for_nothing"]="Ugg="
+ ["num"]=60,
+ ["num_for_nothing"]="UAg="
}
},
["time_type"]=1,
@@ -1861,7 +1861,7 @@ local act_gift = {
80,
100
},
- ["recharge_id"]=12,
+ ["recharge_id"]=13,
["reward"]={
{
["type"]=1,
@@ -1876,24 +1876,24 @@ local act_gift = {
["type_for_nothing"]="Vw==",
["id"]=1002,
["id_for_nothing"]="VwhcAQ==",
- ["num"]=40,
- ["num_for_nothing"]="Ugg="
+ ["num"]=80,
+ ["num_for_nothing"]="Xgg="
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=1003,
["id_for_nothing"]="VwhcAA==",
- ["num"]=60,
- ["num_for_nothing"]="UAg="
+ ["num"]=80,
+ ["num_for_nothing"]="Xgg="
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=1004,
["id_for_nothing"]="VwhcBw==",
- ["num"]=60,
- ["num_for_nothing"]="UAg="
+ ["num"]=80,
+ ["num_for_nothing"]="Xgg="
}
},
["time_type"]=1,
@@ -1907,7 +1907,7 @@ local act_gift = {
100,
120
},
- ["recharge_id"]=12,
+ ["recharge_id"]=13,
["reward"]={
{
["type"]=1,
@@ -1922,24 +1922,24 @@ local act_gift = {
["type_for_nothing"]="Vw==",
["id"]=1002,
["id_for_nothing"]="VwhcAQ==",
- ["num"]=40,
- ["num_for_nothing"]="Ugg="
+ ["num"]=80,
+ ["num_for_nothing"]="Xgg="
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=1003,
["id_for_nothing"]="VwhcAA==",
- ["num"]=60,
- ["num_for_nothing"]="UAg="
+ ["num"]=80,
+ ["num_for_nothing"]="Xgg="
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=1004,
["id_for_nothing"]="VwhcBw==",
- ["num"]=60,
- ["num_for_nothing"]="UAg="
+ ["num"]=80,
+ ["num_for_nothing"]="Xgg="
}
},
["time_type"]=1,
@@ -1953,7 +1953,7 @@ local act_gift = {
120,
140
},
- ["recharge_id"]=13,
+ ["recharge_id"]=15,
["reward"]={
{
["type"]=1,
@@ -1968,24 +1968,24 @@ local act_gift = {
["type_for_nothing"]="Vw==",
["id"]=1003,
["id_for_nothing"]="VwhcAA==",
- ["num"]=40,
- ["num_for_nothing"]="Ugg="
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=1004,
["id_for_nothing"]="VwhcBw==",
- ["num"]=60,
- ["num_for_nothing"]="UAg="
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=1005,
["id_for_nothing"]="VwhcBg==",
- ["num"]=60,
- ["num_for_nothing"]="UAg="
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
}
},
["time_type"]=1,
@@ -1999,7 +1999,7 @@ local act_gift = {
140,
160
},
- ["recharge_id"]=13,
+ ["recharge_id"]=15,
["reward"]={
{
["type"]=1,
@@ -2014,24 +2014,24 @@ local act_gift = {
["type_for_nothing"]="Vw==",
["id"]=1003,
["id_for_nothing"]="VwhcAA==",
- ["num"]=40,
- ["num_for_nothing"]="Ugg="
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=1004,
["id_for_nothing"]="VwhcBw==",
- ["num"]=60,
- ["num_for_nothing"]="UAg="
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=1005,
["id_for_nothing"]="VwhcBg==",
- ["num"]=60,
- ["num_for_nothing"]="UAg="
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
}
},
["time_type"]=1,
@@ -2045,7 +2045,7 @@ local act_gift = {
160,
180
},
- ["recharge_id"]=15,
+ ["recharge_id"]=17,
["reward"]={
{
["type"]=1,
@@ -2060,24 +2060,24 @@ local act_gift = {
["type_for_nothing"]="Vw==",
["id"]=1004,
["id_for_nothing"]="VwhcBw==",
- ["num"]=40,
- ["num_for_nothing"]="Ugg="
+ ["num"]=120,
+ ["num_for_nothing"]="Vwpc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=1005,
["id_for_nothing"]="VwhcBg==",
- ["num"]=100,
- ["num_for_nothing"]="Vwhc"
+ ["num"]=120,
+ ["num_for_nothing"]="Vwpc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=1006,
["id_for_nothing"]="VwhcBQ==",
- ["num"]=80,
- ["num_for_nothing"]="Xgg="
+ ["num"]=120,
+ ["num_for_nothing"]="Vwpc"
}
},
["time_type"]=1,
@@ -2091,7 +2091,7 @@ local act_gift = {
180,
200
},
- ["recharge_id"]=15,
+ ["recharge_id"]=17,
["reward"]={
{
["type"]=1,
@@ -2106,24 +2106,24 @@ local act_gift = {
["type_for_nothing"]="Vw==",
["id"]=1004,
["id_for_nothing"]="VwhcBw==",
- ["num"]=40,
- ["num_for_nothing"]="Ugg="
+ ["num"]=120,
+ ["num_for_nothing"]="Vwpc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=1005,
["id_for_nothing"]="VwhcBg==",
- ["num"]=100,
- ["num_for_nothing"]="Vwhc"
+ ["num"]=120,
+ ["num_for_nothing"]="Vwpc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=1006,
["id_for_nothing"]="VwhcBQ==",
- ["num"]=80,
- ["num_for_nothing"]="Xgg="
+ ["num"]=120,
+ ["num_for_nothing"]="Vwpc"
}
},
["time_type"]=1,
@@ -2213,7 +2213,7 @@ local act_gift = {
40,
60
},
- ["recharge_id"]=12,
+ ["recharge_id"]=13,
["reward"]={
{
["type"]=1,
@@ -2236,8 +2236,8 @@ local act_gift = {
["type_for_nothing"]="Vw==",
["id"]=40,
["id_for_nothing"]="Ugg=",
- ["num"]=40,
- ["num_for_nothing"]="Ugg="
+ ["num"]=60,
+ ["num_for_nothing"]="UAg="
}
},
["time_type"]=1,
@@ -2251,7 +2251,7 @@ local act_gift = {
60,
80
},
- ["recharge_id"]=12,
+ ["recharge_id"]=13,
["reward"]={
{
["type"]=1,
@@ -2274,8 +2274,8 @@ local act_gift = {
["type_for_nothing"]="Vw==",
["id"]=40,
["id_for_nothing"]="Ugg=",
- ["num"]=40,
- ["num_for_nothing"]="Ugg="
+ ["num"]=60,
+ ["num_for_nothing"]="UAg="
}
},
["time_type"]=1,
@@ -2289,7 +2289,7 @@ local act_gift = {
80,
100
},
- ["recharge_id"]=14,
+ ["recharge_id"]=15,
["reward"]={
{
["type"]=1,
@@ -2304,24 +2304,24 @@ local act_gift = {
["type_for_nothing"]="Vw==",
["id"]=39,
["id_for_nothing"]="VQE=",
- ["num"]=40,
- ["num_for_nothing"]="Ugg="
+ ["num"]=80,
+ ["num_for_nothing"]="Xgg="
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=40,
["id_for_nothing"]="Ugg=",
- ["num"]=60,
- ["num_for_nothing"]="UAg="
+ ["num"]=80,
+ ["num_for_nothing"]="Xgg="
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=41,
["id_for_nothing"]="Ugk=",
- ["num"]=60,
- ["num_for_nothing"]="UAg="
+ ["num"]=80,
+ ["num_for_nothing"]="Xgg="
}
},
["time_type"]=1,
@@ -2335,7 +2335,7 @@ local act_gift = {
100,
120
},
- ["recharge_id"]=14,
+ ["recharge_id"]=15,
["reward"]={
{
["type"]=1,
@@ -2350,24 +2350,24 @@ local act_gift = {
["type_for_nothing"]="Vw==",
["id"]=39,
["id_for_nothing"]="VQE=",
- ["num"]=40,
- ["num_for_nothing"]="Ugg="
+ ["num"]=80,
+ ["num_for_nothing"]="Xgg="
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=40,
["id_for_nothing"]="Ugg=",
- ["num"]=60,
- ["num_for_nothing"]="UAg="
+ ["num"]=80,
+ ["num_for_nothing"]="Xgg="
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=41,
["id_for_nothing"]="Ugk=",
- ["num"]=60,
- ["num_for_nothing"]="UAg="
+ ["num"]=80,
+ ["num_for_nothing"]="Xgg="
}
},
["time_type"]=1,
@@ -2381,7 +2381,7 @@ local act_gift = {
120,
140
},
- ["recharge_id"]=15,
+ ["recharge_id"]=16,
["reward"]={
{
["type"]=1,
@@ -2396,24 +2396,24 @@ local act_gift = {
["type_for_nothing"]="Vw==",
["id"]=40,
["id_for_nothing"]="Ugg=",
- ["num"]=40,
- ["num_for_nothing"]="Ugg="
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=41,
["id_for_nothing"]="Ugk=",
- ["num"]=60,
- ["num_for_nothing"]="UAg="
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=42,
["id_for_nothing"]="Ugo=",
- ["num"]=60,
- ["num_for_nothing"]="UAg="
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
}
},
["time_type"]=1,
@@ -2427,7 +2427,7 @@ local act_gift = {
140,
160
},
- ["recharge_id"]=15,
+ ["recharge_id"]=16,
["reward"]={
{
["type"]=1,
@@ -2442,24 +2442,24 @@ local act_gift = {
["type_for_nothing"]="Vw==",
["id"]=40,
["id_for_nothing"]="Ugg=",
- ["num"]=40,
- ["num_for_nothing"]="Ugg="
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=41,
["id_for_nothing"]="Ugk=",
- ["num"]=60,
- ["num_for_nothing"]="UAg="
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=42,
["id_for_nothing"]="Ugo=",
- ["num"]=60,
- ["num_for_nothing"]="UAg="
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
}
},
["time_type"]=1,
@@ -2473,7 +2473,7 @@ local act_gift = {
160,
180
},
- ["recharge_id"]=17,
+ ["recharge_id"]=18,
["reward"]={
{
["type"]=1,
@@ -2488,24 +2488,24 @@ local act_gift = {
["type_for_nothing"]="Vw==",
["id"]=41,
["id_for_nothing"]="Ugk=",
- ["num"]=40,
- ["num_for_nothing"]="Ugg="
+ ["num"]=120,
+ ["num_for_nothing"]="Vwpc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=42,
["id_for_nothing"]="Ugo=",
- ["num"]=100,
- ["num_for_nothing"]="Vwhc"
+ ["num"]=120,
+ ["num_for_nothing"]="Vwpc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=43,
["id_for_nothing"]="Ugs=",
- ["num"]=80,
- ["num_for_nothing"]="Xgg="
+ ["num"]=120,
+ ["num_for_nothing"]="Vwpc"
}
},
["time_type"]=1,
@@ -2519,7 +2519,7 @@ local act_gift = {
180,
200
},
- ["recharge_id"]=17,
+ ["recharge_id"]=18,
["reward"]={
{
["type"]=1,
@@ -2534,24 +2534,24 @@ local act_gift = {
["type_for_nothing"]="Vw==",
["id"]=41,
["id_for_nothing"]="Ugk=",
- ["num"]=40,
- ["num_for_nothing"]="Ugg="
+ ["num"]=120,
+ ["num_for_nothing"]="Vwpc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=42,
["id_for_nothing"]="Ugo=",
- ["num"]=100,
- ["num_for_nothing"]="Vwhc"
+ ["num"]=120,
+ ["num_for_nothing"]="Vwpc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=43,
["id_for_nothing"]="Ugs=",
- ["num"]=80,
- ["num_for_nothing"]="Xgg="
+ ["num"]=120,
+ ["num_for_nothing"]="Vwpc"
}
},
["time_type"]=1,
@@ -5722,11 +5722,378 @@ local act_gift = {
[220202]={
["type"]=22,
["recharge_id"]=12,
- ["limit"]=1,
["value"]=1800
+ },
+ [230102]={
+ ["type"]=23,
+ ["recharge_id"]=12,
+ ["time_type"]=2,
+ ["limit"]=1,
+ ["value"]=3000
+ },
+ [230202]={
+ ["type"]=23,
+ ["recharge_id"]=12,
+ ["time_type"]=2,
+ ["limit"]=1,
+ ["value"]=3000
+ },
+ [230302]={
+ ["type"]=23,
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=300,
+ ["num_for_nothing"]="VQhc"
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=30000,
+ ["num_for_nothing"]="VQhcA2U="
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=3000,
+ ["num_for_nothing"]="VQhcAw=="
+ }
+ }
+ },
+ [230402]={
+ ["type"]=23,
+ ["recharge_id"]=12,
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=300,
+ ["num_for_nothing"]="VQhc"
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=30000,
+ ["num_for_nothing"]="VQhcA2U="
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=3001,
+ ["num_for_nothing"]="VQhcAg=="
+ }
+ },
+ ["time_type"]=2,
+ ["limit"]=5,
+ ["value"]=3000
+ },
+ [230502]={
+ ["type"]=23,
+ ["recharge_id"]=12,
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=300,
+ ["num_for_nothing"]="VQhc"
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=30000,
+ ["num_for_nothing"]="VQhcA2U="
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=3002,
+ ["num_for_nothing"]="VQhcAQ=="
+ }
+ },
+ ["time_type"]=2,
+ ["limit"]=5,
+ ["value"]=3000
+ },
+ [230602]={
+ ["type"]=23,
+ ["recharge_id"]=12,
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=300,
+ ["num_for_nothing"]="VQhc"
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=30000,
+ ["num_for_nothing"]="VQhcA2U="
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=3003,
+ ["num_for_nothing"]="VQhcAA=="
+ }
+ },
+ ["time_type"]=2,
+ ["limit"]=5,
+ ["value"]=3000
+ },
+ [230702]={
+ ["type"]=23,
+ ["recharge_id"]=12,
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=300,
+ ["num_for_nothing"]="VQhc"
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=30000,
+ ["num_for_nothing"]="VQhcA2U="
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=3004,
+ ["num_for_nothing"]="VQhcBw=="
+ }
+ },
+ ["time_type"]=2,
+ ["limit"]=5,
+ ["value"]=3000
+ },
+ [230802]={
+ ["type"]=23,
+ ["recharge_id"]=12,
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=300,
+ ["num_for_nothing"]="VQhc"
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=30000,
+ ["num_for_nothing"]="VQhcA2U="
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=3005,
+ ["num_for_nothing"]="VQhcBg=="
+ }
+ },
+ ["time_type"]=2,
+ ["limit"]=5,
+ ["value"]=3000
+ },
+ [240102]={
+ ["type"]=24,
+ ["recharge_id"]=13,
+ ["time_type"]=2,
+ ["limit"]=1,
+ ["value"]=3000
+ },
+ [240202]={
+ ["type"]=24,
+ ["recharge_id"]=13,
+ ["time_type"]=2,
+ ["limit"]=1,
+ ["value"]=3000
+ },
+ [240302]={
+ ["type"]=24,
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=1500,
+ ["num_for_nothing"]="Vw1cAw=="
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=42002,
+ ["num_for_nothing"]="UgpcA2c="
+ }
+ }
+ },
+ [240402]={
+ ["type"]=24,
+ ["recharge_id"]=13,
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=1500,
+ ["num_for_nothing"]="Vw1cAw=="
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=42003,
+ ["num_for_nothing"]="UgpcA2Y="
+ }
+ },
+ ["time_type"]=2,
+ ["limit"]=5,
+ ["value"]=3000
+ },
+ [240502]={
+ ["type"]=24,
+ ["recharge_id"]=13,
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=1500,
+ ["num_for_nothing"]="Vw1cAw=="
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=42004,
+ ["num_for_nothing"]="UgpcA2E="
+ }
+ },
+ ["time_type"]=2,
+ ["limit"]=5,
+ ["value"]=3000
+ },
+ [240602]={
+ ["type"]=24,
+ ["recharge_id"]=13,
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=1500,
+ ["num_for_nothing"]="Vw1cAw=="
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=42005,
+ ["num_for_nothing"]="UgpcA2A="
+ }
+ },
+ ["time_type"]=2,
+ ["limit"]=5,
+ ["value"]=3000
+ },
+ [240702]={
+ ["type"]=24,
+ ["recharge_id"]=13,
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=1500,
+ ["num_for_nothing"]="Vw1cAw=="
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=42006,
+ ["num_for_nothing"]="UgpcA2M="
+ }
+ },
+ ["time_type"]=2,
+ ["limit"]=5,
+ ["value"]=3000
+ },
+ [240802]={
+ ["type"]=24,
+ ["recharge_id"]=13,
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=1500,
+ ["num_for_nothing"]="Vw1cAw=="
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=42007,
+ ["num_for_nothing"]="UgpcA2I="
+ }
+ },
+ ["time_type"]=2,
+ ["limit"]=5,
+ ["value"]=3000
}
}
local config = {
-data=act_gift,count=118
+data=act_gift,count=134
}
return config
\ No newline at end of file
diff --git a/lua/app/config/activity.lua b/lua/app/config/activity.lua
index 6ff89502..398d7a96 100644
--- a/lua/app/config/activity.lua
+++ b/lua/app/config/activity.lua
@@ -28,9 +28,19 @@ local activity = {
["act_type"]=3,
["start_time"]="2023-10-9 00:00:00",
["end_time"]="2023-10-17 00:00:00"
+ },
+ [706]={
+ ["act_type"]=5,
+ ["start_time"]="2023-10-16 00:00:00",
+ ["end_time"]="2023-10-24 00:00:00"
+ },
+ [806]={
+ ["act_type"]=6,
+ ["start_time"]="2023-10-30 00:00:00",
+ ["end_time"]="2023-11-7 00:00:00"
}
}
local config = {
-data=activity,count=6
+data=activity,count=8
}
return config
\ No newline at end of file
diff --git a/lua/app/config/activity_bounty_level.lua b/lua/app/config/activity_bounty_level.lua
index 5e5caf39..4230d447 100644
--- a/lua/app/config/activity_bounty_level.lua
+++ b/lua/app/config/activity_bounty_level.lua
@@ -3803,9 +3803,1687 @@ local activity_bounty_level = {
["num"]=3,
["num_for_nothing"]="VQ=="
}
+ },
+ [601]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=3,
+ ["num_for_nothing"]="VQ=="
+ }
+ },
+ [602]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=2000,
+ ["num_for_nothing"]="VAhcAw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=3000,
+ ["num_for_nothing"]="VQhcAw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=5000,
+ ["num_for_nothing"]="UwhcAw=="
+ }
+ },
+ [603]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=8,
+ ["id_for_nothing"]="Xg==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ },
+ [604]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ },
+ [605]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=11,
+ ["id_for_nothing"]="Vwk=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=3,
+ ["num_for_nothing"]="VQ=="
+ }
+ },
+ [606]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=2000,
+ ["num_for_nothing"]="VAhcAw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=3000,
+ ["num_for_nothing"]="VQhcAw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=5000,
+ ["num_for_nothing"]="UwhcAw=="
+ }
+ },
+ [607]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=8,
+ ["id_for_nothing"]="Xg==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ },
+ [608]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=50,
+ ["num_for_nothing"]="Uwg="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
+ }
+ },
+ [609]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ }
+ },
+ [610]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=11,
+ ["id_for_nothing"]="Vwk=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=3,
+ ["num_for_nothing"]="VQ=="
+ }
+ },
+ [611]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=15,
+ ["num_for_nothing"]="Vw0="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
+ }
+ },
+ [612]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=2000,
+ ["num_for_nothing"]="VAhcAw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=3000,
+ ["num_for_nothing"]="VQhcAw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=5000,
+ ["num_for_nothing"]="UwhcAw=="
+ }
+ },
+ [613]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=8,
+ ["id_for_nothing"]="Xg==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ },
+ [614]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ },
+ [615]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=11,
+ ["id_for_nothing"]="Vwk=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=18,
+ ["id_for_nothing"]="VwA=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ }
+ },
+ [616]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=2000,
+ ["num_for_nothing"]="VAhcAw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=3000,
+ ["num_for_nothing"]="VQhcAw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=5000,
+ ["num_for_nothing"]="UwhcAw=="
+ }
+ },
+ [617]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=8,
+ ["id_for_nothing"]="Xg==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ },
+ [618]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=50,
+ ["num_for_nothing"]="Uwg="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
+ }
+ },
+ [619]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ }
+ },
+ [620]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=11,
+ ["id_for_nothing"]="Vwk=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=3,
+ ["num_for_nothing"]="VQ=="
+ }
+ },
+ [621]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=15,
+ ["num_for_nothing"]="Vw0="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
+ }
+ },
+ [622]={
+ ["act_id"]=706,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=2000,
+ ["num_for_nothing"]="VAhcAw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=3000,
+ ["num_for_nothing"]="VQhcAw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=5000,
+ ["num_for_nothing"]="UwhcAw=="
+ }
+ },
+ [623]={
+ ["act_id"]=706,
+ ["exp"]=40,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=8,
+ ["id_for_nothing"]="Xg==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ },
+ [624]={
+ ["act_id"]=706,
+ ["exp"]=40,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ },
+ [625]={
+ ["act_id"]=706,
+ ["exp"]=40,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=18,
+ ["id_for_nothing"]="VwA=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=3,
+ ["num_for_nothing"]="VQ=="
+ }
+ },
+ [626]={
+ ["act_id"]=706,
+ ["exp"]=40,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=2000,
+ ["num_for_nothing"]="VAhcAw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=3000,
+ ["num_for_nothing"]="VQhcAw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=5000,
+ ["num_for_nothing"]="UwhcAw=="
+ }
+ },
+ [627]={
+ ["act_id"]=706,
+ ["exp"]=40,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=8,
+ ["id_for_nothing"]="Xg==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ }
+ },
+ [628]={
+ ["act_id"]=706,
+ ["exp"]=40,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=50,
+ ["num_for_nothing"]="Uwg="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
+ }
+ },
+ [629]={
+ ["act_id"]=706,
+ ["exp"]=40,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ }
+ },
+ [630]={
+ ["act_id"]=706,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=11,
+ ["id_for_nothing"]="Vwk=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=3,
+ ["num_for_nothing"]="VQ=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=3,
+ ["num_for_nothing"]="VQ=="
+ }
+ },
+ [701]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=3,
+ ["num_for_nothing"]="VQ=="
+ }
+ },
+ [702]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=2000,
+ ["num_for_nothing"]="VAhcAw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=3000,
+ ["num_for_nothing"]="VQhcAw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=5000,
+ ["num_for_nothing"]="UwhcAw=="
+ }
+ },
+ [703]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=8,
+ ["id_for_nothing"]="Xg==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ },
+ [704]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ },
+ [705]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=11,
+ ["id_for_nothing"]="Vwk=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=3,
+ ["num_for_nothing"]="VQ=="
+ }
+ },
+ [706]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=2000,
+ ["num_for_nothing"]="VAhcAw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=3000,
+ ["num_for_nothing"]="VQhcAw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=5000,
+ ["num_for_nothing"]="UwhcAw=="
+ }
+ },
+ [707]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=8,
+ ["id_for_nothing"]="Xg==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ },
+ [708]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=50,
+ ["num_for_nothing"]="Uwg="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
+ }
+ },
+ [709]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ }
+ },
+ [710]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=11,
+ ["id_for_nothing"]="Vwk=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=3,
+ ["num_for_nothing"]="VQ=="
+ }
+ },
+ [711]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=15,
+ ["num_for_nothing"]="Vw0="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
+ }
+ },
+ [712]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=2000,
+ ["num_for_nothing"]="VAhcAw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=3000,
+ ["num_for_nothing"]="VQhcAw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=5000,
+ ["num_for_nothing"]="UwhcAw=="
+ }
+ },
+ [713]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=8,
+ ["id_for_nothing"]="Xg==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ },
+ [714]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ },
+ [715]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=11,
+ ["id_for_nothing"]="Vwk=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=18,
+ ["id_for_nothing"]="VwA=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ }
+ },
+ [716]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=2000,
+ ["num_for_nothing"]="VAhcAw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=3000,
+ ["num_for_nothing"]="VQhcAw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=5000,
+ ["num_for_nothing"]="UwhcAw=="
+ }
+ },
+ [717]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=8,
+ ["id_for_nothing"]="Xg==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ },
+ [718]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=50,
+ ["num_for_nothing"]="Uwg="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
+ }
+ },
+ [719]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ }
+ },
+ [720]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=11,
+ ["id_for_nothing"]="Vwk=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=3,
+ ["num_for_nothing"]="VQ=="
+ }
+ },
+ [721]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=15,
+ ["num_for_nothing"]="Vw0="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
+ }
+ },
+ [722]={
+ ["act_id"]=806,
+ ["exp"]=30,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=2000,
+ ["num_for_nothing"]="VAhcAw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=3000,
+ ["num_for_nothing"]="VQhcAw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=5000,
+ ["num_for_nothing"]="UwhcAw=="
+ }
+ },
+ [723]={
+ ["act_id"]=806,
+ ["exp"]=40,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=8,
+ ["id_for_nothing"]="Xg==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ },
+ [724]={
+ ["act_id"]=806,
+ ["exp"]=40,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ },
+ [725]={
+ ["act_id"]=806,
+ ["exp"]=40,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=18,
+ ["id_for_nothing"]="VwA=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=3,
+ ["num_for_nothing"]="VQ=="
+ }
+ },
+ [726]={
+ ["act_id"]=806,
+ ["exp"]=40,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=2000,
+ ["num_for_nothing"]="VAhcAw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=3000,
+ ["num_for_nothing"]="VQhcAw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=1,
+ ["id_for_nothing"]="Vw==",
+ ["num"]=5000,
+ ["num_for_nothing"]="UwhcAw=="
+ }
+ },
+ [727]={
+ ["act_id"]=806,
+ ["exp"]=40,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=8,
+ ["id_for_nothing"]="Xg==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=9,
+ ["id_for_nothing"]="Xw==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ }
+ },
+ [728]={
+ ["act_id"]=806,
+ ["exp"]=40,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=50,
+ ["num_for_nothing"]="Uwg="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
+ }
+ },
+ [729]={
+ ["act_id"]=806,
+ ["exp"]=40,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=10,
+ ["id_for_nothing"]="Vwg=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ }
+ },
+ [730]={
+ ["act_id"]=806,
+ ["reward"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=11,
+ ["id_for_nothing"]="Vwk=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ },
+ ["reward_pro"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=3,
+ ["num_for_nothing"]="VQ=="
+ },
+ ["reward_pro_max"]={
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=34004,
+ ["id_for_nothing"]="VQxcA2E=",
+ ["num"]=3,
+ ["num_for_nothing"]="VQ=="
+ }
}
}
local config = {
-data=activity_bounty_level,count=136
+data=activity_bounty_level,count=196
}
return config
\ No newline at end of file
diff --git a/lua/app/config/activity_rank.lua b/lua/app/config/activity_rank.lua
index ca64c2ba..11103eef 100644
--- a/lua/app/config/activity_rank.lua
+++ b/lua/app/config/activity_rank.lua
@@ -348,9 +348,359 @@ local activity_rank = {
["num_for_nothing"]="VAg="
}
}
+ },
+ [301]={
+ ["act_id"]=706,
+ ["ranking"]={
+ 1,
+ 1
+ },
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=1200,
+ ["num_for_nothing"]="VwpcAw=="
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=47,
+ ["id_for_nothing"]="Ug8=",
+ ["num"]=6,
+ ["num_for_nothing"]="UA=="
+ }
+ }
+ },
+ [302]={
+ ["act_id"]=706,
+ ["ranking"]={
+ 2,
+ 2
+ },
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=1000,
+ ["num_for_nothing"]="VwhcAw=="
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=47,
+ ["id_for_nothing"]="Ug8=",
+ ["num"]=5,
+ ["num_for_nothing"]="Uw=="
+ }
+ }
+ },
+ [303]={
+ ["act_id"]=706,
+ ["ranking"]={
+ 3,
+ 3
+ },
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=800,
+ ["num_for_nothing"]="Xghc"
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=47,
+ ["id_for_nothing"]="Ug8=",
+ ["num"]=4,
+ ["num_for_nothing"]="Ug=="
+ }
+ }
+ },
+ [304]={
+ ["act_id"]=706,
+ ["ranking"]={
+ 4,
+ 10
+ },
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=600,
+ ["num_for_nothing"]="UAhc"
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=6,
+ ["id_for_nothing"]="UA==",
+ ["num"]=3,
+ ["num_for_nothing"]="VQ=="
+ }
+ }
+ },
+ [305]={
+ ["act_id"]=706,
+ ["ranking"]={
+ 11,
+ 50
+ },
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=400,
+ ["num_for_nothing"]="Ughc"
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=6,
+ ["id_for_nothing"]="UA==",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ }
+ },
+ [306]={
+ ["act_id"]=706,
+ ["ranking"]={
+ 51,
+ 500
+ },
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=300,
+ ["num_for_nothing"]="VQhc"
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=6,
+ ["id_for_nothing"]="UA==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ }
+ }
+ },
+ [307]={
+ ["act_id"]=706,
+ ["ranking"]={
+ 501,
+ 99999999
+ },
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=200,
+ ["num_for_nothing"]="VAhc"
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
+ }
+ }
+ },
+ [401]={
+ ["act_id"]=806,
+ ["ranking"]={
+ 1,
+ 1
+ },
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=1200,
+ ["num_for_nothing"]="VwpcAw=="
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=47,
+ ["id_for_nothing"]="Ug8=",
+ ["num"]=6,
+ ["num_for_nothing"]="UA=="
+ }
+ }
+ },
+ [402]={
+ ["act_id"]=806,
+ ["ranking"]={
+ 2,
+ 2
+ },
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=1000,
+ ["num_for_nothing"]="VwhcAw=="
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=47,
+ ["id_for_nothing"]="Ug8=",
+ ["num"]=5,
+ ["num_for_nothing"]="Uw=="
+ }
+ }
+ },
+ [403]={
+ ["act_id"]=806,
+ ["ranking"]={
+ 3,
+ 3
+ },
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=800,
+ ["num_for_nothing"]="Xghc"
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=47,
+ ["id_for_nothing"]="Ug8=",
+ ["num"]=4,
+ ["num_for_nothing"]="Ug=="
+ }
+ }
+ },
+ [404]={
+ ["act_id"]=806,
+ ["ranking"]={
+ 4,
+ 10
+ },
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=600,
+ ["num_for_nothing"]="UAhc"
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=6,
+ ["id_for_nothing"]="UA==",
+ ["num"]=3,
+ ["num_for_nothing"]="VQ=="
+ }
+ }
+ },
+ [405]={
+ ["act_id"]=806,
+ ["ranking"]={
+ 11,
+ 50
+ },
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=400,
+ ["num_for_nothing"]="Ughc"
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=6,
+ ["id_for_nothing"]="UA==",
+ ["num"]=2,
+ ["num_for_nothing"]="VA=="
+ }
+ }
+ },
+ [406]={
+ ["act_id"]=806,
+ ["ranking"]={
+ 51,
+ 500
+ },
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=300,
+ ["num_for_nothing"]="VQhc"
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=6,
+ ["id_for_nothing"]="UA==",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
+ }
+ }
+ },
+ [407]={
+ ["act_id"]=806,
+ ["ranking"]={
+ 501,
+ 99999999
+ },
+ ["reward"]={
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=200,
+ ["num_for_nothing"]="VAhc"
+ },
+ {
+ ["type"]=1,
+ ["type_for_nothing"]="Vw==",
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
+ }
+ }
}
}
local config = {
-data=activity_rank,count=14
+data=activity_rank,count=28
}
return config
\ No newline at end of file
diff --git a/lua/app/config/activity_tourn_arena_point.lua b/lua/app/config/activity_tourn_arena_point.lua
new file mode 100644
index 00000000..cc8d1bc7
--- /dev/null
+++ b/lua/app/config/activity_tourn_arena_point.lua
@@ -0,0 +1,54 @@
+local activity_tourn_arena_point = {
+ [1]={
+ ["point_win"]=2,
+ ["point_lose"]=1
+ },
+ [2]={
+ ["point_win"]=4,
+ ["point_lose"]=2
+ },
+ [3]={
+ ["point_win"]=6,
+ ["point_lose"]=3
+ },
+ [4]={
+ ["point_win"]=8,
+ ["point_lose"]=4
+ },
+ [5]={
+ ["point_win"]=10,
+ ["point_lose"]=5
+ },
+ [6]={
+ ["point_win"]=12,
+ ["point_lose"]=6
+ },
+ [7]={
+ ["point_win"]=14,
+ ["point_lose"]=7
+ },
+ [8]={
+ ["point_win"]=16,
+ ["point_lose"]=8
+ },
+ [9]={
+ ["point_win"]=18,
+ ["point_lose"]=9
+ },
+ [10]={
+ ["point_win"]=20,
+ ["point_lose"]=10
+ },
+ [11]={
+ ["point_win"]=22,
+ ["point_lose"]=11
+ },
+ [12]={
+ ["point_win"]=24,
+ ["point_lose"]=12
+ }
+}
+local config = {
+data=activity_tourn_arena_point,count=12
+}
+return config
\ No newline at end of file
diff --git a/lua/app/config/activity_tourn_arena_point.lua.meta b/lua/app/config/activity_tourn_arena_point.lua.meta
new file mode 100644
index 00000000..71571f7a
--- /dev/null
+++ b/lua/app/config/activity_tourn_arena_point.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 3e83ace12d9f46c4b8aef7f8f3521dcc
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/config/const.lua b/lua/app/config/const.lua
index 99cbd95c..c1cdbe9a 100644
--- a/lua/app/config/const.lua
+++ b/lua/app/config/const.lua
@@ -508,24 +508,14 @@ local const = {
["num_for_nothing"]="Vwg="
}
},
- ["activity_skin_fight_id_1"]={
- ["value"]=4104
+ ["act_tourn_rank_free"]={
+ ["value"]=90
},
- ["activity_skin_fight_id_2"]={
- ["value"]=4204
- },
- ["activity_skin_fight_reward"]={
- ["reward"]={
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=50,
- ["num_for_nothing"]="Uwg="
- }
+ ["act_tourn_rank_pay"]={
+ ["value"]=10
}
}
local config = {
-data=const,count=105
+data=const,count=104
}
return config
\ No newline at end of file
diff --git a/lua/app/config/localization/localization_global_const.lua b/lua/app/config/localization/localization_global_const.lua
index b1fb99f6..42f7356c 100644
--- a/lua/app/config/localization/localization_global_const.lua
+++ b/lua/app/config/localization/localization_global_const.lua
@@ -620,6 +620,18 @@ local LocalizationGlobalConst =
RUNES_QLT_6 = "RUNES_QLT_6",
RUNES_QLT_7 = "RUNES_QLT_7",
RUNES_QLT_8 = "RUNES_QLT_8",
+ ACT_TOURN_WAVE_TITLE = "ACT_TOURN_WAVE_TITLE",
+ ACT_TOURN_WAVE_DESC_1 = "ACT_TOURN_WAVE_DESC_1",
+ ACT_TOURN_WAVE_DESC_2 = "ACT_TOURN_WAVE_DESC_2",
+ ACT_TOURN_WAVE_DESC_3 = "ACT_TOURN_WAVE_DESC_3",
+ ACT_TOURN_WAVE_HELP_1 = "ACT_TOURN_WAVE_HELP_1",
+ ACT_TOURN_WAVE_HELP_2 = "ACT_TOURN_WAVE_HELP_2",
+ ACT_TOURN_WAVE_BTN_1 = "ACT_TOURN_WAVE_BTN_1",
+ ACT_TOURN_WAVE_BTN_2 = "ACT_TOURN_WAVE_BTN_2",
+ ACT_TOURN_WAVE_BTN_3 = "ACT_TOURN_WAVE_BTN_3",
+ ACT_TOURN_ARENEA_TITLE = "ACT_TOURN_ARENEA_TITLE",
+ ACT_TOURN_ARENEA_DESC_1 = "ACT_TOURN_ARENEA_DESC_1",
+ ACT_TOURN_ARENEA_HELP = "ACT_TOURN_ARENEA_HELP",
}
return LocalizationGlobalConst
\ No newline at end of file
diff --git a/lua/app/config/skill.lua b/lua/app/config/skill.lua
index fcf5854f..5ba2a4bd 100644
--- a/lua/app/config/skill.lua
+++ b/lua/app/config/skill.lua
@@ -3854,7 +3854,6 @@ local skill = {
},
[2400421]={
["position"]=2,
- ["combo_position"]=1,
["effect_type"]=2,
["trigger"]=5,
["effect"]={
@@ -3893,6 +3892,7 @@ local skill = {
2
}
},
+ ["combo_position"]=2,
["effect_type"]=2,
["trigger"]=5,
["effect"]={
@@ -5553,7 +5553,7 @@ local skill = {
{
{
["type"]="state",
- ["attr"]="vulnerable",
+ ["attr"]="frozen",
["op"]=">",
["v"]=0,
["side"]=2
@@ -5566,14 +5566,15 @@ local skill = {
1
}
},
+ ["combo_position"]=3,
["effect_type"]=2,
["trigger"]=5,
["effect"]={
{
- ["type"]="bleed",
- ["num"]=3500,
- ["ratio"]=1000,
- ["round"]=2
+ ["type"]="hurt_green",
+ ["num"]=5000,
+ ["ratio"]=10000,
+ ["round"]=0
}
},
["obj"]=2
diff --git a/lua/app/config/skill_rogue.lua b/lua/app/config/skill_rogue.lua
index 66e44502..0a6541e0 100644
--- a/lua/app/config/skill_rogue.lua
+++ b/lua/app/config/skill_rogue.lua
@@ -3358,9 +3358,6 @@ local skill_rogue = {
["icon"]="244"
},
[3400303]={
- ["buff_id"]={
- "bleed"
- },
["limit_times"]=1,
["weight"]=3000,
["qlt"]=4,
diff --git a/lua/app/config/strings/cn/global.lua b/lua/app/config/strings/cn/global.lua
index 9117571b..7482bd58 100644
--- a/lua/app/config/strings/cn/global.lua
+++ b/lua/app/config/strings/cn/global.lua
@@ -620,6 +620,18 @@ local localization_global =
["RUNES_QLT_6"] = "A",
["RUNES_QLT_7"] = "S",
["RUNES_QLT_8"] = "SS",
+ ["ACT_TOURN_WAVE_TITLE"] = "丛林大探险",
+ ["ACT_TOURN_WAVE_DESC_1"] = "累积副本通关波次,可获得战令奖励!",
+ ["ACT_TOURN_WAVE_DESC_2"] = "距离下次分组:",
+ ["ACT_TOURN_WAVE_DESC_3"] = "距离结算:",
+ ["ACT_TOURN_WAVE_HELP_1"] = "活动期间,通关以下副本波次,可获得战令奖励:\n1. 主线章节 \n2. 主线挑战 \n3. 活动关卡",
+ ["ACT_TOURN_WAVE_HELP_2"] = "排行榜积分:\n活动期间,通关主线章节、主线挑战、活动关卡的波次,每次可获得{0}积分,排行榜根据积分进行排行。\n注意:活动最后1天,通关波次不再计入积分,仅展示排名。\n\n 排行榜分组规则:\n活动开启后,每2天进行一次分组,根据玩家在2天内的积分数进行排名,冒险家们可于第3天在“上轮排行榜”中,领取排行奖励。",
+ ["ACT_TOURN_WAVE_BTN_1"] = "当前排行榜",
+ ["ACT_TOURN_WAVE_BTN_2"] = "上轮排行榜",
+ ["ACT_TOURN_WAVE_BTN_3"] = "排行榜奖励",
+ ["ACT_TOURN_ARENEA_TITLE"] = "帝国锦标赛",
+ ["ACT_TOURN_ARENEA_DESC_1"] = "参与竞技场,可获得战令奖励!",
+ ["ACT_TOURN_ARENEA_HELP"] = " 排行榜积分:\n活动期间,参与竞技场,根据排位及战斗结果,可获得若干积分,排行榜根据积分进行排行。\n\n 青铜2:胜利{0}分,失败{1}分;\n 青铜1:胜利{0}分,失败{1}分;\n 白银4:胜利{0}分,失败{1}分;\n 白银3:胜利{0}分,失败{1}分;\n 白银2:胜利{0}分,失败{1}分;\n 白银1:胜利{0}分,失败{1}分;\n 黄金5:胜利{0}分,失败{1}分;\n 黄金4:胜利{0}分,失败{1}分;\n 黄金3:胜利{0}分,失败{1}分;\n 黄金2:胜利{0}分,失败{1}分;\n 黄金1:胜利{0}分,失败{1}分;\n\n注意:活动最后1天,参与竞技场不再计入积分,仅展示排名。\n\n 排行榜分组规则:\n活动开启后,每2天进行一次分组,根据玩家在2天内的积分数进行排名,冒险家们可于第3天在“上轮排行榜”中,领取排行奖励。",
}
return localization_global
\ No newline at end of file
diff --git a/lua/app/config/strings/cn/skill_rogue.lua b/lua/app/config/strings/cn/skill_rogue.lua
index c6903b2c..0e2f6d72 100644
--- a/lua/app/config/strings/cn/skill_rogue.lua
+++ b/lua/app/config/strings/cn/skill_rogue.lua
@@ -789,7 +789,7 @@ local skill_rogue = {
["desc"]="绝命啃咬消除的元素提供技能能量*2。"
},
[3400303]={
- ["desc"]="Combo:忍者菲尔普攻易伤敌人有10%概率附加流血效果,2回合。"
+ ["desc"]="Combo:忍者菲尔普攻对冻结敌人额外增伤。"
},
[3400304]={
["desc"]="绝命啃咬使用时本次普攻伤害提升。"
diff --git a/lua/app/config/strings/en/skill_rogue.lua b/lua/app/config/strings/en/skill_rogue.lua
index ebe621d8..46f3708c 100644
--- a/lua/app/config/strings/en/skill_rogue.lua
+++ b/lua/app/config/strings/en/skill_rogue.lua
@@ -789,7 +789,7 @@ local skill_rogue = {
["desc"]="Skill energy provided by Elements cleared by Lethal Bite *2."
},
[3400303]={
- ["desc"]="Combo: Ninja Phil's normal attacks on Vulnerable have a 10% of chance to inflict Bleed for 2 turns."
+ ["desc"]="Combo: Ninja Phil's normal attacks deal increased damage to Frozen enemies."
},
[3400304]={
["desc"]="When Lethal Bite is used, normal attack damage increases for this turn."
@@ -894,7 +894,7 @@ local skill_rogue = {
["desc"]="Take This can inflict Bleed for 2 turns."
},
[2400406]={
- ["desc"]="Combo: Lee's normal attacks deal increased damage to Cold and Bleeding enemies."
+ ["desc"]="Combo: Lee's normal attacks deal increased damage to Cold and Burn enemies."
},
[2400407]={
["desc"]="The chance of Stun inflicted by Take This increases to 10% for +1 turn."
diff --git a/lua/app/config/strings/es/skill_rogue.lua b/lua/app/config/strings/es/skill_rogue.lua
index 041321a6..573c0a59 100644
--- a/lua/app/config/strings/es/skill_rogue.lua
+++ b/lua/app/config/strings/es/skill_rogue.lua
@@ -789,7 +789,7 @@ local skill_rogue = {
["desc"]="Energía de habilidad ofrecida por elementos eliminados por Mordedura Fatal *2."
},
[3400303]={
- ["desc"]="Combo: el ATQ común de Ninja Phil a enemigos vulnerables tiene un 10% de chance de aplicar Sangrado durante 2 rondas."
+ ["desc"]="Combo: el ATQ común de Ninja Phil aumenta el daño extra a enemigos Congelado."
},
[3400304]={
["desc"]="Al usar Mordedura Fatal, el daño de este ataque común aumenta."
@@ -894,7 +894,7 @@ local skill_rogue = {
["desc"]="Ah-dah puede aplicar Sangrado durante 2 rondas."
},
[2400406]={
- ["desc"]="Combo: ataque común de Lee causa daño adicional a los enemigos con Escarcha y Sangrados."
+ ["desc"]="Combo: ataque común de Lee causa daño adicional a los enemigos con Escarcha y Quemadura."
},
[2400407]={
["desc"]="Aumenta el chance de Vértigo aplicado por Ah-dah a 10% durante +1 ronda."
diff --git a/lua/app/config/strings/id/skill_rogue.lua b/lua/app/config/strings/id/skill_rogue.lua
index 40bc5d41..b57974f9 100644
--- a/lua/app/config/strings/id/skill_rogue.lua
+++ b/lua/app/config/strings/id/skill_rogue.lua
@@ -789,7 +789,7 @@ local skill_rogue = {
["desc"]="Energi skill yang diberikan oleh elemen dan dibersihkan Gigitan Maut *2."
},
[3400303]={
- ["desc"]="Combo: ATK Normal Ninja Phil pada Rentan memiliki 10% peluang untuk memberikan Berdarah selama 2 giliran."
+ ["desc"]="Combo: ATK Normal Ninja Phil memberikan peningkatan DMG pada musuh yang Freeze."
},
[3400304]={
["desc"]="DMG ATK normal akan meningkat pada giliran ini saat Gigitan Maut digunakan."
@@ -894,7 +894,7 @@ local skill_rogue = {
["desc"]="Ah, bertarung! menyebabkan berdarah selama 2 giliran."
},
[2400406]={
- ["desc"]="Combo: ATK normal Lee memberikan peningkatan DMG pada musuh Freeze dan Bleed."
+ ["desc"]="Combo: ATK normal Lee memberikan peningkatan DMG pada musuh Freeze dan Scorch."
},
[2400407]={
["desc"]="Peluang Stun yang ditimbulkan Ah, bertarung! meningkat menjadi 10% selama +1 putaran."
diff --git a/lua/app/config/strings/ja/skill_rogue.lua b/lua/app/config/strings/ja/skill_rogue.lua
index 0842c978..26f75f03 100644
--- a/lua/app/config/strings/ja/skill_rogue.lua
+++ b/lua/app/config/strings/ja/skill_rogue.lua
@@ -789,7 +789,7 @@ local skill_rogue = {
["desc"]="「リーサルバイト」が消す元素のスキルエネルギー*2。"
},
[3400303]={
- ["desc"]="ヒット:「忍者フィルの通常攻撃」は10%の確率で被ダメージアップ状態の敵に2ターン出血効果を付与する。"
+ ["desc"]="ヒット:「忍者フィルの通常攻撃」は凍結状態の敵に与えるダメージが増加する。"
},
[3400304]={
["desc"]="「リーサルバイト」を発動すると、今回の通常攻撃のダメージがアップ。"
@@ -894,7 +894,7 @@ local skill_rogue = {
["desc"]="「喰らえ!」は敵に2ターン出血効果を付与できる。"
},
[2400406]={
- ["desc"]="ヒット:李の通常攻撃は凍傷と出血状態の敵にダメージが50%アップ。"
+ ["desc"]="ヒット:李の通常攻撃は凍傷と⽕傷状態の敵にダメージが50%アップ。"
},
[2400407]={
["desc"]="「喰らえ!」のスタン効果の確率は10%に増加し、ターン数が+1。"
diff --git a/lua/app/config/strings/ko/chapter.lua b/lua/app/config/strings/ko/chapter.lua
index 7ec95c8b..a7e5a0b3 100644
--- a/lua/app/config/strings/ko/chapter.lua
+++ b/lua/app/config/strings/ko/chapter.lua
@@ -81,7 +81,7 @@ local chapter = {
["name"]="27. 악마의 도시 동쪽 거리"
},
[28]={
- ["name"]="29. 악마의 도시 센터"
+ ["name"]="28. 악마의 도시 센터"
},
[29]={
["name"]="29. 악마의 도시 진입로"
diff --git a/lua/app/config/strings/ko/skill_rogue.lua b/lua/app/config/strings/ko/skill_rogue.lua
index 801c96e6..3165e7db 100644
--- a/lua/app/config/strings/ko/skill_rogue.lua
+++ b/lua/app/config/strings/ko/skill_rogue.lua
@@ -789,7 +789,7 @@ local skill_rogue = {
["desc"]="필사적인 물기로 소멸한 원소가 제공하는 스킬 에너지 2배"
},
[3400303]={
- ["desc"]="Combo: 닌자 필이 부상 상태인 적에게 일반 공격을 가하면 2턴 동안 10% 확률로 출혈 효과를 부여합니다."
+ ["desc"]="Combo: 닌자 필이 의 일반 공격이 동결 효과의 적에게 추가 피해를 입힙니다."
},
[3400304]={
["desc"]="필사적인 물기를 사용하면 이번 턴의 일반 공격 대미지가 증가합니다."
@@ -894,7 +894,7 @@ local skill_rogue = {
["desc"]="아뵤! 2턴 동안 출혈효과를 부여합니다."
},
[2400406]={
- ["desc"]="Combo: 리의 일반 공격은 서리 또는 출혈 상태인 적에게 추가 피해를 입힙니다."
+ ["desc"]="Combo: 리의 일반 공격은 서리 또는 버닝 효과 상태인 적에게 추가 피해를 입힙니다."
},
[2400407]={
["desc"]="아뵤! 가 기절 효과를 부여할 확률이 10%로 증가하며 턴 횟수 +1"
diff --git a/lua/app/config/strings/pt/skill_rogue.lua b/lua/app/config/strings/pt/skill_rogue.lua
index af7cb057..124508df 100644
--- a/lua/app/config/strings/pt/skill_rogue.lua
+++ b/lua/app/config/strings/pt/skill_rogue.lua
@@ -789,7 +789,7 @@ local skill_rogue = {
["desc"]="Os elementos eliminados pela Mordida Desesperada fornecem energia de habilidade*2."
},
[3400303]={
- ["desc"]="Combo: o ataque básico de Ninja Phill tem 10% de chance de infligir sangramento por 2 turnos a inimigos vulneráveis."
+ ["desc"]="Combo: o ataque básico de Ninja Phill serve para aumentar o dano extra a inimigos Congelado."
},
[3400304]={
["desc"]="O dano deste ataque básico aumenta quando Mordida Desesperada é usada."
@@ -894,7 +894,7 @@ local skill_rogue = {
["desc"]="Ah-dah! pode sangrar o alvo por 2 rodadas."
},
[2400406]={
- ["desc"]="Combo: o ataque básico de Lee causa dano extra aos inimigos gélidos e sangrentos."
+ ["desc"]="Combo: o ataque básico de Lee causa dano extra aos inimigos Gélidos e Conflagração."
},
[2400407]={
["desc"]="Aumenta a 10% a chance de acionamento do atordoamento de Ah-dah! com +1 rodada de duração."
diff --git a/lua/app/config/strings/th/skill_rogue.lua b/lua/app/config/strings/th/skill_rogue.lua
index 82514674..b2684448 100644
--- a/lua/app/config/strings/th/skill_rogue.lua
+++ b/lua/app/config/strings/th/skill_rogue.lua
@@ -789,7 +789,7 @@ local skill_rogue = {
["desc"]="ธาตุที่กำจัดโดยขย้ำดับชีพเสนอพลังงานสกิล*2"
},
[3400303]={
- ["desc"]="Combo: การโจมตีทั่วไปของนินจาฟิลโดนศัตรูอ่อนแอจะมีโอกาส 10% เพิ่มเอฟเฟกต์เลือดไหล 2 รอบ"
+ ["desc"]="Combo: การโจมตีทั่วไปของนินจาฟิลสร้างดาเมจเพิ่มเติมให้กับศัตรูแช่แข็ง"
},
[3400304]={
["desc"]="เมื่อใช้ขย้ำดับชีพ เพิ่มดาเมจโจมตีทั่วไปครั้งนี้"
@@ -894,7 +894,7 @@ local skill_rogue = {
["desc"]="อ่า ต้า! จะเพิ่มเอฟเฟกต์เลือดไหล 2 รอบ"
},
[2400406]={
- ["desc"]="คอมโบ: การโจมตีทั่วไปของหลี่จะสร้างดาเมจเพิ่มเติมให้กับศัตรูฟรอสต์และเลือดไหล"
+ ["desc"]="คอมโบ: การโจมตีทั่วไปของหลี่จะสร้างดาเมจเพิ่มเติมให้กับศัตรูฟรอสต์และเผาไหม้"
},
[2400407]={
["desc"]="โอกาสเอฟเฟกต์มึนงงที่เพิ่มโดยอ่า ต้า!เพิ่มขึ้นถึง10% จำนวนรอบ+1"
diff --git a/lua/app/config/strings/vi/skill_rogue.lua b/lua/app/config/strings/vi/skill_rogue.lua
index 0f5389b5..1bdcb7b2 100644
--- a/lua/app/config/strings/vi/skill_rogue.lua
+++ b/lua/app/config/strings/vi/skill_rogue.lua
@@ -789,7 +789,7 @@ local skill_rogue = {
["desc"]="Cung cấp Năng Lượng Kỹ Năng*2 nguyên tố do Gặm Cắn Chí Mạng xua tan."
},
[3400303]={
- ["desc"]="Combo: Ninja Phil đánh thường kẻ địch Trọng Thương có 10% kèm Mất Máu, 2 hiệp."
+ ["desc"]="Combo: Ninja Phil đánh thường gây thêm sát thương lên kẻ địch Đóng Băng."
},
[3400304]={
["desc"]="Khi dùng Gặm Cắn Chí Mạng tăng sát thương đánh thường lần này."
@@ -894,7 +894,7 @@ local skill_rogue = {
["desc"]="Đánh Nào! kèm hiệu quả Mất Máu, 2 hiệp."
},
[2400406]={
- ["desc"]="Combo: Lee đánh thường gây thêm ST lên kẻ địch Băng Sương và Mất Máu."
+ ["desc"]="Combo: Lee đánh thường gây thêm ST lên kẻ địch Băng Sương và Thiêu Đốt."
},
[2400407]={
["desc"]="Đánh Nào! kèm hiệu quả Choáng, TL tăng đến 10%, số hiệp +1."
diff --git a/lua/app/config/strings/zh/skill_rogue.lua b/lua/app/config/strings/zh/skill_rogue.lua
index 2fcd926b..c8e1e836 100644
--- a/lua/app/config/strings/zh/skill_rogue.lua
+++ b/lua/app/config/strings/zh/skill_rogue.lua
@@ -789,7 +789,7 @@ local skill_rogue = {
["desc"]="絕命啃咬消除的元素提供技能能量*2。"
},
[3400303]={
- ["desc"]="Combo:忍者菲爾普攻易傷敵人有10%機率附帶流血效果,2回合。"
+ ["desc"]="Combo:忍者菲爾普攻對凍結敵人額外增傷。"
},
[3400304]={
["desc"]="絕命啃咬使用時本次普攻傷害提高。"
@@ -894,7 +894,7 @@ local skill_rogue = {
["desc"]="啊,打!可附帶流血效果,2回合。"
},
[2400406]={
- ["desc"]="Combo:李普攻對冰霜和流血敵人額外增傷。"
+ ["desc"]="Combo:李普攻對冰霜和灼燒敵人額外增傷。"
},
[2400407]={
["desc"]="啊,打!附帶的暈眩效果機率提高至10%,回合數+1。"
diff --git a/lua/app/global/global_const.lua b/lua/app/global/global_const.lua
index 136ce72d..894e95fa 100644
--- a/lua/app/global/global_const.lua
+++ b/lua/app/global/global_const.lua
@@ -24,6 +24,8 @@ local CONST_PATHS = {
FourteenDayConst = "app/module/activity/fourteen_day/fourteen_day_const",
DungeonRuneConst = "app/module/dungeon_rune/dungeon_rune_const",
FullMoonConst = "app/module/activity/full_moon/full_moon_const",
+ TournWaveConst = "app/module/activity/tourn_wave/tourn_wave_const",
+ TournArenaConst = "app/module/activity/tourn_arena/tourn_arena_const",
}
if EDITOR_MODE then
diff --git a/lua/app/module/activity/tourn_arena.meta b/lua/app/module/activity/tourn_arena.meta
new file mode 100644
index 00000000..e4564094
--- /dev/null
+++ b/lua/app/module/activity/tourn_arena.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0a51eb4f4ea887b4fb3681027bf8e553
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/lua/app/module/activity/tourn_arena/tourn_arena_const.lua b/lua/app/module/activity/tourn_arena/tourn_arena_const.lua
new file mode 100644
index 00000000..7f317d36
--- /dev/null
+++ b/lua/app/module/activity/tourn_arena/tourn_arena_const.lua
@@ -0,0 +1,30 @@
+local TournArenaConst = {}
+
+-- 界面
+TournArenaConst.PANEL_TYPE = {
+ BOUNTY = 1,
+ RANK = 2,
+ GIFT = 3,
+}
+
+-- 战令档位
+TournArenaConst.BOUNTY_GRADE_TYPE = {
+ FREE = 0,
+ PAY1 = 1,
+ PAY2 = 2,
+}
+
+-- 战令礼包id
+TournArenaConst.BOUNTY_GIFT_ID_1 = 240102
+TournArenaConst.BOUNTY_GIFT_ID_2 = 240202
+
+TournArenaConst.GIFT_IDS = {
+ 240302,
+ 240402,
+ 240502,
+ 240602,
+ 240702,
+ 240802,
+}
+
+return TournArenaConst
\ No newline at end of file
diff --git a/lua/app/module/activity/tourn_arena/tourn_arena_const.lua.meta b/lua/app/module/activity/tourn_arena/tourn_arena_const.lua.meta
new file mode 100644
index 00000000..0dfcb7b5
--- /dev/null
+++ b/lua/app/module/activity/tourn_arena/tourn_arena_const.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: fcf392b8e24fe79459d4bb5f8eb0c5d7
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/module/activity/tourn_arena/tourn_arena_manager.lua b/lua/app/module/activity/tourn_arena/tourn_arena_manager.lua
new file mode 100644
index 00000000..8693c47f
--- /dev/null
+++ b/lua/app/module/activity/tourn_arena/tourn_arena_manager.lua
@@ -0,0 +1,133 @@
+local TournArenaManager = class("TournArenaManager", BaseModule)
+
+function TournArenaManager:init()
+ self:addEventListener(EventManager.CUSTOM_EVENT.ARENA_BATTLE_SETTLEMENT, function(isWin)
+ self:reqActData()
+ end)
+end
+
+function TournArenaManager:showActMainUI()
+ UIManager:showUI("app/ui/activity/tourn_arena/tourn_arena_ui")
+end
+
+-- 初始化计时器
+function TournArenaManager:initTimer()
+ self:unscheduleGlobal(self.actSid)
+
+ if DataManager.TournArenaData:isActiveTime() then
+ Logger.logHighlight("竞技场锦标赛活动结束倒计时:"..DataManager.TournArenaData:getEndRemainTime())
+ self.actSid = self:performWithDelayGlobal(function()
+ Logger.logHighlight("竞技场锦标赛活动结束")
+ EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.ACTIVITY_TOURN_ARENA_END)
+ end, DataManager.TournArenaData:getEndRemainTime())
+ elseif DataManager.TournArenaData:getStartRemainTime() > 0 then
+ Logger.logHighlight("竞技场锦标赛活动开始倒计时:"..DataManager.TournArenaData:getStartRemainTime())
+ self.actSid = self:performWithDelayGlobal(function()
+ Logger.logHighlight("竞技场锦标赛活动开始")
+ self:reqActData()
+ end, DataManager.TournArenaData:getStartRemainTime())
+ end
+end
+
+-- 购买活动战令
+function TournArenaManager:buyBounty(giftId)
+ PayManager:purchasePackage(giftId, PayManager.PURCHARSE_TYPE.ACT_GIFT)
+end
+
+-- 请求活动数据
+function TournArenaManager:reqActData()
+ if not DataManager.TournArenaData:isOpen() then
+ return
+ end
+ if not DataManager.TournArenaData:isActiveTime() then
+ return
+ end
+ if self.isReqActData then
+ return
+ end
+
+ self.isReqActData = true
+ self:sendMessage(ProtoMsgType.FromMsgEnum.TournArenaDataReq, {}, {}, self.rspActData, nil)
+end
+
+function TournArenaManager:rspActData(result)
+ self.isReqActData = false
+ if result.err_code == GConst.ERROR_STR.SUCCESS then
+ DataManager.TournArenaData:onGetActData(result.tourn_arena)
+ end
+end
+
+-- 请求战令奖励
+function TournArenaManager:reqBountyReward(id, grade)
+ self:sendMessage(ProtoMsgType.FromMsgEnum.TournArenaBountyClaimReq, {id = id, grade = grade}, {}, self.rspBountyReward, BIReport.ITEM_GET_TYPE.TOURN_ARENA_BOUNTY_REWARD)
+end
+
+function TournArenaManager:rspBountyReward(result)
+ if result.err_code == GConst.ERROR_STR.SUCCESS then
+ DataManager.TournArenaData:onReceivedBountyReward(result.success_id_grade)
+
+ GFunc.showRewardBox(result.rewards)
+ end
+end
+
+-- 购买战令等级
+function TournArenaManager:reqBuyBountyLevel()
+ local cost = DataManager.TournArenaData:getBuyBountyLevelCost()
+ local costId = GFunc.getRewardId(cost)
+ local costNum = GFunc.getRewardNum(cost)
+ if not GFunc.checkCost(costId, costNum, true) then
+ return
+ end
+ local params ={
+ titleTx = I18N:getGlobalText(I18N.GlobalConst.BOUNTY_BUY_LEVEL_TITLE),
+ content = I18N:getGlobalText(I18N.GlobalConst.BOUNTY_BUY_LEVEL_COUNTENT),
+ boxType = GConst.MESSAGE_BOX_TYPE.MB_OK_CANCEL,
+ showToday = GConst.MESSAGE_BOX_SHOW_TODAY.ACTIVITY_BUY_LEVEL,
+ costId = costId,
+ costNum = costNum,
+ okFunc = function()
+ local id = DataManager.TournArenaData:getBountyCfgByLevel(DataManager.TournArenaData:getBountyLevel() + 1).id
+ -- Logger.logHighlight("购买战令等级:"..id)
+ self:sendMessage(ProtoMsgType.FromMsgEnum.TournArenaBountyClaimByDiamondReq, {id = id}, {}, self.rspBuyBountyLevel, BIReport.ITEM_GET_TYPE.TOURN_ARENA_BOUNTY_LEVEL)
+ end,
+ }
+ GFunc.showMessageBox(params)
+end
+
+function TournArenaManager:rspBuyBountyLevel(result)
+ if result.err_code == GConst.ERROR_STR.SUCCESS then
+ DataManager.TournArenaData:onBoughtBountyLevel()
+ end
+end
+
+-- 获取排行榜数据
+function TournArenaManager:reqRankList(turn)
+ if turn == self.isReqRankList then
+ return
+ end
+
+ self.isReqRankList = turn
+ self:sendMessage(ProtoMsgType.FromMsgEnum.TournArenaRankReq, {turn = turn}, {}, self.rspRankList, nil)
+end
+
+function TournArenaManager:rspRankList(result)
+ self.isReqRankList = nil
+ DataManager.TournArenaData:setInReset(false)
+ if result.err_code == GConst.ERROR_STR.SUCCESS then
+ DataManager.TournArenaData:onGetRankData(result.reqData.turn, result.ranks, result.score, result.own_rank)
+ end
+end
+
+-- 领取排行榜奖励
+function TournArenaManager:reqRankReward()
+ self:sendMessage(ProtoMsgType.FromMsgEnum.TournArenaRankClaimRewardReq, {}, {}, self.rspRankReward, BIReport.ITEM_GET_TYPE.TOURN_ARENA_RANK_REWARD)
+end
+
+function TournArenaManager:rspRankReward(result)
+ if result.err_code == GConst.ERROR_STR.SUCCESS then
+ DataManager.TournArenaData:onReceivedRankReward()
+ GFunc.showRewardBox(result.rewards)
+ end
+end
+
+return TournArenaManager
\ No newline at end of file
diff --git a/lua/app/module/activity/tourn_arena/tourn_arena_manager.lua.meta b/lua/app/module/activity/tourn_arena/tourn_arena_manager.lua.meta
new file mode 100644
index 00000000..940f76ea
--- /dev/null
+++ b/lua/app/module/activity/tourn_arena/tourn_arena_manager.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: c3b14de198ed03f42b62c82328c27519
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/module/activity/tourn_wave.meta b/lua/app/module/activity/tourn_wave.meta
new file mode 100644
index 00000000..e0716506
--- /dev/null
+++ b/lua/app/module/activity/tourn_wave.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4b9001279852c1a4ca2b3596edbcc576
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/lua/app/module/activity/tourn_wave/tourn_wave_const.lua b/lua/app/module/activity/tourn_wave/tourn_wave_const.lua
new file mode 100644
index 00000000..662f7694
--- /dev/null
+++ b/lua/app/module/activity/tourn_wave/tourn_wave_const.lua
@@ -0,0 +1,30 @@
+local TournWaveConst = {}
+
+-- 界面
+TournWaveConst.PANEL_TYPE = {
+ BOUNTY = 1,
+ RANK = 2,
+ GIFT = 3,
+}
+
+-- 战令档位
+TournWaveConst.BOUNTY_GRADE_TYPE = {
+ FREE = 0,
+ PAY1 = 1,
+ PAY2 = 2,
+}
+
+-- 战令礼包id
+TournWaveConst.BOUNTY_GIFT_ID_1 = 230102
+TournWaveConst.BOUNTY_GIFT_ID_2 = 230202
+
+TournWaveConst.GIFT_IDS = {
+ 230302,
+ 230402,
+ 230502,
+ 230602,
+ 230702,
+ 230802,
+}
+
+return TournWaveConst
\ No newline at end of file
diff --git a/lua/app/module/activity/tourn_wave/tourn_wave_const.lua.meta b/lua/app/module/activity/tourn_wave/tourn_wave_const.lua.meta
new file mode 100644
index 00000000..54a4b3b2
--- /dev/null
+++ b/lua/app/module/activity/tourn_wave/tourn_wave_const.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: b16d29c98a6455245aeeb8e6941c3625
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/module/activity/tourn_wave/tourn_wave_manager.lua b/lua/app/module/activity/tourn_wave/tourn_wave_manager.lua
new file mode 100644
index 00000000..c59ccdaa
--- /dev/null
+++ b/lua/app/module/activity/tourn_wave/tourn_wave_manager.lua
@@ -0,0 +1,127 @@
+local TournWaveManager = class("TournWaveManager", BaseModule)
+
+function TournWaveManager:showActMainUI()
+ UIManager:showUI("app/ui/activity/tourn_wave/tourn_wave_ui")
+end
+
+-- 初始化计时器
+function TournWaveManager:initTimer()
+ self:unscheduleGlobal(self.actSid)
+
+ if DataManager.TournWaveData:isActiveTime() then
+ Logger.logHighlight("波次锦标赛活动结束倒计时:"..DataManager.TournWaveData:getEndRemainTime())
+ self.actSid = self:performWithDelayGlobal(function()
+ Logger.logHighlight("波次锦标赛活动结束")
+ EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.ACTIVITY_TOURN_WAVE_END)
+ end, DataManager.TournWaveData:getEndRemainTime())
+ elseif DataManager.TournWaveData:getStartRemainTime() > 0 then
+ Logger.logHighlight("波次锦标赛活动开始倒计时:"..DataManager.TournWaveData:getStartRemainTime())
+ self.actSid = self:performWithDelayGlobal(function()
+ Logger.logHighlight("波次锦标赛活动开始")
+ self:reqActData()
+ end, DataManager.TournWaveData:getStartRemainTime())
+ end
+end
+
+-- 购买活动战令
+function TournWaveManager:buyBounty(giftId)
+ PayManager:purchasePackage(giftId, PayManager.PURCHARSE_TYPE.ACT_GIFT)
+end
+
+-- 请求活动数据
+function TournWaveManager:reqActData()
+ if not DataManager.TournWaveData:isOpen() then
+ return
+ end
+ if not DataManager.TournWaveData:isActiveTime() then
+ return
+ end
+ if self.isReqActData then
+ return
+ end
+
+ self.isReqActData = true
+ self:sendMessage(ProtoMsgType.FromMsgEnum.TournWaveDataReq, {}, {}, self.rspActData, nil)
+end
+
+function TournWaveManager:rspActData(result)
+ self.isReqActData = false
+ if result.err_code == GConst.ERROR_STR.SUCCESS then
+ DataManager.TournWaveData:onGetActData(result.tourn_wave)
+ end
+end
+
+-- 请求战令奖励
+function TournWaveManager:reqBountyReward(id, grade)
+ self:sendMessage(ProtoMsgType.FromMsgEnum.TournWaveBountyClaimReq, {id = id, grade = grade}, {}, self.rspBountyReward, BIReport.ITEM_GET_TYPE.TOURN_WAVE_BOUNTY_REWARD)
+end
+
+function TournWaveManager:rspBountyReward(result)
+ if result.err_code == GConst.ERROR_STR.SUCCESS then
+ DataManager.TournWaveData:onReceivedBountyReward(result.success_id_grade)
+
+ GFunc.showRewardBox(result.rewards)
+ end
+end
+
+-- 购买战令等级
+function TournWaveManager:reqBuyBountyLevel()
+ local cost = DataManager.TournWaveData:getBuyBountyLevelCost()
+ local costId = GFunc.getRewardId(cost)
+ local costNum = GFunc.getRewardNum(cost)
+ if not GFunc.checkCost(costId, costNum, true) then
+ return
+ end
+ local params ={
+ titleTx = I18N:getGlobalText(I18N.GlobalConst.BOUNTY_BUY_LEVEL_TITLE),
+ content = I18N:getGlobalText(I18N.GlobalConst.BOUNTY_BUY_LEVEL_COUNTENT),
+ boxType = GConst.MESSAGE_BOX_TYPE.MB_OK_CANCEL,
+ showToday = GConst.MESSAGE_BOX_SHOW_TODAY.ACTIVITY_BUY_LEVEL,
+ costId = costId,
+ costNum = costNum,
+ okFunc = function()
+ local id = DataManager.TournWaveData:getBountyCfgByLevel(DataManager.TournWaveData:getBountyLevel() + 1).id
+ -- Logger.logHighlight("购买战令等级:"..id)
+ self:sendMessage(ProtoMsgType.FromMsgEnum.TournWaveBountyClaimByDiamondReq, {id = id}, {}, self.rspBuyBountyLevel, BIReport.ITEM_GET_TYPE.TOURN_WAVE_BOUNTY_LEVEL)
+ end,
+ }
+ GFunc.showMessageBox(params)
+end
+
+function TournWaveManager:rspBuyBountyLevel(result)
+ if result.err_code == GConst.ERROR_STR.SUCCESS then
+ DataManager.TournWaveData:onBoughtBountyLevel()
+ end
+end
+
+-- 获取排行榜数据
+function TournWaveManager:reqRankList(turn)
+ if turn == self.isReqRankList then
+ return
+ end
+
+ self.isReqRankList = turn
+ self:sendMessage(ProtoMsgType.FromMsgEnum.TournWaveRankReq, {turn = turn}, {}, self.rspRankList, nil)
+end
+
+function TournWaveManager:rspRankList(result)
+ self.isReqRankList = nil
+ DataManager.TournWaveData:setInReset(false)
+ if result.err_code == GConst.ERROR_STR.SUCCESS then
+ DataManager.TournWaveData:onGetRankData(result.reqData.turn, result.ranks, result.score, result.own_rank)
+ end
+end
+
+-- 领取排行榜奖励
+function TournWaveManager:reqRankReward()
+ self:sendMessage(ProtoMsgType.FromMsgEnum.TournWaveRankClaimRewardReq, {}, {}, self.rspRankReward, BIReport.ITEM_GET_TYPE.TOURN_WAVE_RANK_REWARD)
+end
+
+function TournWaveManager:rspRankReward(result)
+ if result.err_code == GConst.ERROR_STR.SUCCESS then
+ DataManager.TournWaveData:onReceivedRankReward()
+ GFunc.showRewardBox(result.rewards)
+ end
+end
+
+return TournWaveManager
\ No newline at end of file
diff --git a/lua/app/module/activity/tourn_wave/tourn_wave_manager.lua.meta b/lua/app/module/activity/tourn_wave/tourn_wave_manager.lua.meta
new file mode 100644
index 00000000..e9136a71
--- /dev/null
+++ b/lua/app/module/activity/tourn_wave/tourn_wave_manager.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 96146863570985640a1597f0ab1dbd55
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/module/arena/arena_manager.lua b/lua/app/module/arena/arena_manager.lua
index 10047321..eec4643a 100644
--- a/lua/app/module/arena/arena_manager.lua
+++ b/lua/app/module/arena/arena_manager.lua
@@ -149,6 +149,7 @@ function ArenaManager:rspSettlement(result)
end
end
ModuleManager.TaskManager:addTaskProgress(GConst.TaskConst.TASK_TYPE.X_ARENA_CHALLENGE)
+ EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.ARENA_BATTLE_SETTLEMENT, result.settlement.win)
--bi上报
local winRate = result.total_win_count / (result.total_win_count + result.total_lose_count)
diff --git a/lua/app/module/maincity/maincity_const.lua b/lua/app/module/maincity/maincity_const.lua
index 0d293c36..e4b05296 100644
--- a/lua/app/module/maincity/maincity_const.lua
+++ b/lua/app/module/maincity/maincity_const.lua
@@ -37,6 +37,8 @@ MainCityConst.LEFT_SIDE_BARS = {
"app/ui/main_city/cell/side_bar_seven_days_cell",
"app/ui/main_city/cell/side_bar_activity_cell",
"app/ui/main_city/cell/side_bar_full_moon_cell",
+ "app/ui/main_city/cell/side_bar_tourn_wave_cell",
+ "app/ui/main_city/cell/side_bar_tourn_arena_cell",
-- gm放最后一个
"app/ui/main_city/cell/side_bar_gm_cell"
}
diff --git a/lua/app/proto/proto_msg_type.lua b/lua/app/proto/proto_msg_type.lua
index 1a12e977..560b92fd 100644
--- a/lua/app/proto/proto_msg_type.lua
+++ b/lua/app/proto/proto_msg_type.lua
@@ -39,6 +39,8 @@ local ProtoMsgType = {
[606210585] = "DailyChallengeTaskAwardRsp",
[613793796] = "WatchADReq",
[613795629] = "WatchADRsp",
+ [629736377] = "TournArenaBountyClaimByDiamondReq",
+ [629738210] = "TournArenaBountyClaimByDiamondRsp",
[697000709] = "FourteenBountyTaskAwardReq",
[697002542] = "FourteenBountyTaskAwardRsp",
[737107384] = "BuyMallIdleReq",
@@ -105,6 +107,8 @@ local ProtoMsgType = {
[1666429753] = "MailDeleteRsp",
[1690297937] = "SummonReq",
[1690299770] = "SummonRsp",
+ [1729069725] = "TournArenaRankReq",
+ [1729071558] = "TournArenaRankRsp",
[1746317288] = "IdleInfoReq",
[1746319121] = "IdleInfoRsp",
[1751460231] = "PVPHeroesArrayReq",
@@ -116,6 +120,8 @@ local ProtoMsgType = {
[1975352438] = "ActivityPVPRankRewardsRsp",
[2017336372] = "BossRushSettlementReq",
[2017338205] = "BossRushSettlementRsp",
+ [2018011867] = "TournWaveRankReq",
+ [2018013700] = "TournWaveRankRsp",
[2060508030] = "ChangeAvatarFrameReq",
[2060509863] = "ChangeAvatarFrameRsp",
[2095612947] = "ChangeNameReq",
@@ -182,6 +188,8 @@ local ProtoMsgType = {
[2909094887] = "AIHelpUnreadRsp",
[2921083100] = "ChapterArmorChallengeSettlementReq",
[2921084933] = "ChapterArmorChallengeSettlementRsp",
+ [2964758488] = "TournWaveBountyClaimReq",
+ [2964760321] = "TournWaveBountyClaimRsp",
[3003864530] = "ActTriggerGiftNtf",
[3013273736] = "PVPRankHeroesReq",
[3013275569] = "PVPRankHeroesRsp",
@@ -234,6 +242,12 @@ local ProtoMsgType = {
[3440328467] = "PigLevelUpNtf",
[3512214338] = "BossRushPlayerInfoReq",
[3512216171] = "BossRushPlayerInfoRsp",
+ [3531336428] = "TournArenaRankClaimRewardReq",
+ [3531338261] = "TournArenaRankClaimRewardRsp",
+ [3533710638] = "TournArenaBountyClaimReq",
+ [3533712471] = "TournArenaBountyClaimRsp",
+ [3548077431] = "TournWaveBountyClaimByDiamondReq",
+ [3548079264] = "TournWaveBountyClaimByDiamondRsp",
[3555824176] = "TaskDailyInfoReq",
[3555826009] = "TaskDailyInfoRsp",
[3597633120] = "BattleSkillRefreshReq",
@@ -276,6 +290,10 @@ local ProtoMsgType = {
[3904150593] = "GMRsp",
[3933875617] = "ChapterStartReq",
[3933877450] = "ChapterStartRsp",
+ [3966736054] = "TournWaveRankClaimRewardReq",
+ [3966737887] = "TournWaveRankClaimRewardRsp",
+ [3980802711] = "TournArenaDataReq",
+ [3980804544] = "TournArenaDataRsp",
[3991710133] = "FullMoonRewardClaimReq",
[3991711966] = "FullMoonRewardClaimRsp",
[4010728288] = "ChapterRuneBuySliverReq",
@@ -302,6 +320,8 @@ local ProtoMsgType = {
[4195652624] = "TriggerWeaponArmorGiftRsp",
[4256333947] = "ExistReq",
[4256335780] = "ExistRsp",
+ [4269744853] = "TournWaveDataReq",
+ [4269746686] = "TournWaveDataRsp",
},
FromMsgToId = {
FullMoonCustomGiftChooseReq = 5949102,
@@ -343,6 +363,8 @@ local ProtoMsgType = {
DailyChallengeTaskAwardRsp = 606210585,
WatchADReq = 613793796,
WatchADRsp = 613795629,
+ TournArenaBountyClaimByDiamondReq = 629736377,
+ TournArenaBountyClaimByDiamondRsp = 629738210,
FourteenBountyTaskAwardReq = 697000709,
FourteenBountyTaskAwardRsp = 697002542,
BuyMallIdleReq = 737107384,
@@ -409,6 +431,8 @@ local ProtoMsgType = {
MailDeleteRsp = 1666429753,
SummonReq = 1690297937,
SummonRsp = 1690299770,
+ TournArenaRankReq = 1729069725,
+ TournArenaRankRsp = 1729071558,
IdleInfoReq = 1746317288,
IdleInfoRsp = 1746319121,
PVPHeroesArrayReq = 1751460231,
@@ -420,6 +444,8 @@ local ProtoMsgType = {
ActivityPVPRankRewardsRsp = 1975352438,
BossRushSettlementReq = 2017336372,
BossRushSettlementRsp = 2017338205,
+ TournWaveRankReq = 2018011867,
+ TournWaveRankRsp = 2018013700,
ChangeAvatarFrameReq = 2060508030,
ChangeAvatarFrameRsp = 2060509863,
ChangeNameReq = 2095612947,
@@ -486,6 +512,8 @@ local ProtoMsgType = {
AIHelpUnreadRsp = 2909094887,
ChapterArmorChallengeSettlementReq = 2921083100,
ChapterArmorChallengeSettlementRsp = 2921084933,
+ TournWaveBountyClaimReq = 2964758488,
+ TournWaveBountyClaimRsp = 2964760321,
ActTriggerGiftNtf = 3003864530,
PVPRankHeroesReq = 3013273736,
PVPRankHeroesRsp = 3013275569,
@@ -538,6 +566,12 @@ local ProtoMsgType = {
PigLevelUpNtf = 3440328467,
BossRushPlayerInfoReq = 3512214338,
BossRushPlayerInfoRsp = 3512216171,
+ TournArenaRankClaimRewardReq = 3531336428,
+ TournArenaRankClaimRewardRsp = 3531338261,
+ TournArenaBountyClaimReq = 3533710638,
+ TournArenaBountyClaimRsp = 3533712471,
+ TournWaveBountyClaimByDiamondReq = 3548077431,
+ TournWaveBountyClaimByDiamondRsp = 3548079264,
TaskDailyInfoReq = 3555824176,
TaskDailyInfoRsp = 3555826009,
BattleSkillRefreshReq = 3597633120,
@@ -580,6 +614,10 @@ local ProtoMsgType = {
GMRsp = 3904150593,
ChapterStartReq = 3933875617,
ChapterStartRsp = 3933877450,
+ TournWaveRankClaimRewardReq = 3966736054,
+ TournWaveRankClaimRewardRsp = 3966737887,
+ TournArenaDataReq = 3980802711,
+ TournArenaDataRsp = 3980804544,
FullMoonRewardClaimReq = 3991710133,
FullMoonRewardClaimRsp = 3991711966,
ChapterRuneBuySliverReq = 4010728288,
@@ -606,6 +644,8 @@ local ProtoMsgType = {
TriggerWeaponArmorGiftRsp = 4195652624,
ExistReq = 4256333947,
ExistRsp = 4256335780,
+ TournWaveDataReq = 4269744853,
+ TournWaveDataRsp = 4269746686,
},
FromMsgEnum = {
FullMoonCustomGiftChooseReq = "FullMoonCustomGiftChooseReq",
@@ -647,6 +687,8 @@ local ProtoMsgType = {
DailyChallengeTaskAwardRsp = "DailyChallengeTaskAwardRsp",
WatchADReq = "WatchADReq",
WatchADRsp = "WatchADRsp",
+ TournArenaBountyClaimByDiamondReq = "TournArenaBountyClaimByDiamondReq",
+ TournArenaBountyClaimByDiamondRsp = "TournArenaBountyClaimByDiamondRsp",
FourteenBountyTaskAwardReq = "FourteenBountyTaskAwardReq",
FourteenBountyTaskAwardRsp = "FourteenBountyTaskAwardRsp",
BuyMallIdleReq = "BuyMallIdleReq",
@@ -713,6 +755,8 @@ local ProtoMsgType = {
MailDeleteRsp = "MailDeleteRsp",
SummonReq = "SummonReq",
SummonRsp = "SummonRsp",
+ TournArenaRankReq = "TournArenaRankReq",
+ TournArenaRankRsp = "TournArenaRankRsp",
IdleInfoReq = "IdleInfoReq",
IdleInfoRsp = "IdleInfoRsp",
PVPHeroesArrayReq = "PVPHeroesArrayReq",
@@ -724,6 +768,8 @@ local ProtoMsgType = {
ActivityPVPRankRewardsRsp = "ActivityPVPRankRewardsRsp",
BossRushSettlementReq = "BossRushSettlementReq",
BossRushSettlementRsp = "BossRushSettlementRsp",
+ TournWaveRankReq = "TournWaveRankReq",
+ TournWaveRankRsp = "TournWaveRankRsp",
ChangeAvatarFrameReq = "ChangeAvatarFrameReq",
ChangeAvatarFrameRsp = "ChangeAvatarFrameRsp",
ChangeNameReq = "ChangeNameReq",
@@ -790,6 +836,8 @@ local ProtoMsgType = {
AIHelpUnreadRsp = "AIHelpUnreadRsp",
ChapterArmorChallengeSettlementReq = "ChapterArmorChallengeSettlementReq",
ChapterArmorChallengeSettlementRsp = "ChapterArmorChallengeSettlementRsp",
+ TournWaveBountyClaimReq = "TournWaveBountyClaimReq",
+ TournWaveBountyClaimRsp = "TournWaveBountyClaimRsp",
ActTriggerGiftNtf = "ActTriggerGiftNtf",
PVPRankHeroesReq = "PVPRankHeroesReq",
PVPRankHeroesRsp = "PVPRankHeroesRsp",
@@ -842,6 +890,12 @@ local ProtoMsgType = {
PigLevelUpNtf = "PigLevelUpNtf",
BossRushPlayerInfoReq = "BossRushPlayerInfoReq",
BossRushPlayerInfoRsp = "BossRushPlayerInfoRsp",
+ TournArenaRankClaimRewardReq = "TournArenaRankClaimRewardReq",
+ TournArenaRankClaimRewardRsp = "TournArenaRankClaimRewardRsp",
+ TournArenaBountyClaimReq = "TournArenaBountyClaimReq",
+ TournArenaBountyClaimRsp = "TournArenaBountyClaimRsp",
+ TournWaveBountyClaimByDiamondReq = "TournWaveBountyClaimByDiamondReq",
+ TournWaveBountyClaimByDiamondRsp = "TournWaveBountyClaimByDiamondRsp",
TaskDailyInfoReq = "TaskDailyInfoReq",
TaskDailyInfoRsp = "TaskDailyInfoRsp",
BattleSkillRefreshReq = "BattleSkillRefreshReq",
@@ -884,6 +938,10 @@ local ProtoMsgType = {
GMRsp = "GMRsp",
ChapterStartReq = "ChapterStartReq",
ChapterStartRsp = "ChapterStartRsp",
+ TournWaveRankClaimRewardReq = "TournWaveRankClaimRewardReq",
+ TournWaveRankClaimRewardRsp = "TournWaveRankClaimRewardRsp",
+ TournArenaDataReq = "TournArenaDataReq",
+ TournArenaDataRsp = "TournArenaDataRsp",
FullMoonRewardClaimReq = "FullMoonRewardClaimReq",
FullMoonRewardClaimRsp = "FullMoonRewardClaimRsp",
ChapterRuneBuySliverReq = "ChapterRuneBuySliverReq",
@@ -910,6 +968,8 @@ local ProtoMsgType = {
TriggerWeaponArmorGiftRsp = "TriggerWeaponArmorGiftRsp",
ExistReq = "ExistReq",
ExistRsp = "ExistRsp",
+ TournWaveDataReq = "TournWaveDataReq",
+ TournWaveDataRsp = "TournWaveDataRsp",
},
}
diff --git a/lua/app/ui/activity/fourteen_day/cell/fourteen_day_gift_cell.lua b/lua/app/ui/activity/fourteen_day/cell/fourteen_day_gift_cell.lua
index d81ebe95..ac898d28 100644
--- a/lua/app/ui/activity/fourteen_day/cell/fourteen_day_gift_cell.lua
+++ b/lua/app/ui/activity/fourteen_day/cell/fourteen_day_gift_cell.lua
@@ -1,6 +1,6 @@
-local FourteenDayExchangeCell = class("FourteenDayExchangeCell", BaseCell)
+local FourteenDayGiftCell = class("FourteenDayGiftCell", BaseCell)
-function FourteenDayExchangeCell:init()
+function FourteenDayGiftCell:init()
local uiMap = self:getUIMap()
self.txLimit = uiMap["fourteen_day_gift_cell.tx_limit"]
@@ -19,7 +19,7 @@ function FourteenDayExchangeCell:init()
end)
end
-function FourteenDayExchangeCell:refresh(id)
+function FourteenDayGiftCell:refresh(id)
self.id = id
local cfg = DataManager.ShopData:getActGiftConfig()[self.id]
local time = DataManager.FourteenDayData:getGiftRemainTime(self.id)
@@ -53,4 +53,4 @@ function FourteenDayExchangeCell:refresh(id)
self.txBuy:setText(buyStr)
end
-return FourteenDayExchangeCell
\ No newline at end of file
+return FourteenDayGiftCell
\ No newline at end of file
diff --git a/lua/app/ui/activity/tourn_arena.meta b/lua/app/ui/activity/tourn_arena.meta
new file mode 100644
index 00000000..940dcb21
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0db3ebc134726304cb0a40fd23ab52b8
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/lua/app/ui/activity/tourn_arena/cell.meta b/lua/app/ui/activity/tourn_arena/cell.meta
new file mode 100644
index 00000000..7e6af678
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena/cell.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6fdea40bf29965944b9ae4c5184361b1
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/lua/app/ui/activity/tourn_arena/cell/tourn_arena_bounty_cell.lua b/lua/app/ui/activity/tourn_arena/cell/tourn_arena_bounty_cell.lua
new file mode 100644
index 00000000..100d63f2
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena/cell/tourn_arena_bounty_cell.lua
@@ -0,0 +1,62 @@
+local TournArenaBountyCell = class("TournArenaBountyCell", BaseCell)
+
+function TournArenaBountyCell:init()
+ local uiMap = self:getUIMap()
+ self.txLevel = uiMap["tourn_arena_bounty_cell.level.tx_level"]
+ self.rewardCell1 = uiMap["tourn_arena_bounty_cell.reward_cell_1"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
+ self.rewardCell2 = uiMap["tourn_arena_bounty_cell.reward_cell_2"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
+ self.rewardCell3 = uiMap["tourn_arena_bounty_cell.reward_cell_3"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
+end
+
+function TournArenaBountyCell:refresh(level, id)
+ self.id = id
+ self.txLevel:setText(DataManager.TournArenaData:getLevelTotalScore(level))
+
+ local isGet
+
+ isGet = DataManager.TournArenaData:isReceivedBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE)
+ self.rewardCell1:refreshByConfig(DataManager.TournArenaData:getBountyGradeReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE), isGet, isGet)
+ self.rewardCell1:showLock(not DataManager.TournArenaData:isBountyGradeUnlock(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE))
+ if DataManager.TournArenaData:canGetBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE) then
+ self.rewardCell1.baseObject:addRedPoint(50, 50, 0.6)
+ self.rewardCell1:addClickListener(function()
+ self:onClickReward(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE)
+ end)
+ else
+ self.rewardCell1.baseObject:removeRedPoint()
+ self.rewardCell1:addClickListener(nil)
+ end
+
+ isGet = DataManager.TournArenaData:isReceivedBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1)
+ self.rewardCell2:refreshByConfig(DataManager.TournArenaData:getBountyGradeReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1), isGet, isGet)
+ self.rewardCell2:showLock(not DataManager.TournArenaData:isBountyGradeUnlock(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1))
+ if DataManager.TournArenaData:canGetBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1) then
+ self.rewardCell2.baseObject:addRedPoint(50, 50, 0.6)
+ self.rewardCell2:addClickListener(function()
+ self:onClickReward(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1)
+ end)
+ else
+ self.rewardCell2.baseObject:removeRedPoint()
+ self.rewardCell2:addClickListener(nil)
+ end
+
+ isGet = DataManager.TournArenaData:isReceivedBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2)
+ self.rewardCell3:refreshByConfig(DataManager.TournArenaData:getBountyGradeReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2), isGet, isGet)
+ self.rewardCell3:showLock(not DataManager.TournArenaData:isBountyGradeUnlock(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2))
+ if DataManager.TournArenaData:canGetBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2) then
+ self.rewardCell3.baseObject:addRedPoint(50, 50, 0.6)
+ self.rewardCell3:addClickListener(function()
+ self:onClickReward(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2)
+ end)
+ else
+ self.rewardCell3.baseObject:removeRedPoint()
+ self.rewardCell3:addClickListener(nil)
+ end
+end
+
+-- 领取奖励
+function TournArenaBountyCell:onClickReward(grade)
+ ModuleManager.TournArenaManager:reqBountyReward(self.id, grade)
+end
+
+return TournArenaBountyCell
\ No newline at end of file
diff --git a/lua/app/ui/activity/tourn_arena/cell/tourn_arena_bounty_cell.lua.meta b/lua/app/ui/activity/tourn_arena/cell/tourn_arena_bounty_cell.lua.meta
new file mode 100644
index 00000000..d9f8c6aa
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena/cell/tourn_arena_bounty_cell.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: ede94bb5b293fd84487866bda65bc97e
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/tourn_arena/cell/tourn_arena_gift_cell.lua b/lua/app/ui/activity/tourn_arena/cell/tourn_arena_gift_cell.lua
new file mode 100644
index 00000000..d940d631
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena/cell/tourn_arena_gift_cell.lua
@@ -0,0 +1,56 @@
+local TournArenaGiftCell = class("TournArenaGiftCell", BaseCell)
+
+function TournArenaGiftCell:init()
+ local uiMap = self:getUIMap()
+
+ self.txLimit = uiMap["tourn_arena_gift_cell.tx_limit"]
+ self.txBuy = uiMap["tourn_arena_gift_cell.tx_buy"]
+ self.imgOff = uiMap["tourn_arena_gift_cell.off_img"]
+ self.txOff = uiMap["tourn_arena_gift_cell.off_img.tx_off"]
+ self.rewards = {}
+ for i = 1, 3 do
+ table.insert(self.rewards, uiMap["tourn_arena_gift_cell.reward_cell_"..i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
+ end
+
+ self:addClickListener(function()
+ if DataManager.TournArenaData:getGiftRemainTime(self.id) > 0 then
+ PayManager:purchasePackage(self.id, PayManager.PURCHARSE_TYPE.ACT_GIFT)
+ end
+ end)
+end
+
+function TournArenaGiftCell:refresh(id)
+ self.id = id
+ local cfg = DataManager.ShopData:getActGiftConfig()[self.id]
+ local time = DataManager.TournArenaData:getGiftRemainTime(self.id)
+
+ self.txLimit:setText(I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_18, time))
+
+ for idx, reward in ipairs(self.rewards) do
+ if cfg.reward[idx] then
+ reward:setVisible(true)
+ reward:refreshByConfig(cfg.reward[idx])
+ else
+ reward:setVisible(false)
+ end
+ end
+
+ local buyStr
+ if cfg.recharge_id then
+ self.baseObject:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_bg_6")
+ self.imgOff:setActive(true)
+ self.txOff:setText(cfg.value .. "%")
+ buyStr = GFunc.getFormatPrice(cfg.recharge_id)
+ else
+ self.baseObject:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_bg_5")
+ self.imgOff:setActive(false)
+ buyStr = I18N:getGlobalText(I18N.GlobalConst.STR_FREE)
+ end
+
+ if time <= 0 then
+ buyStr = I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_20)
+ end
+ self.txBuy:setText(buyStr)
+end
+
+return TournArenaGiftCell
\ No newline at end of file
diff --git a/lua/app/ui/activity/tourn_arena/cell/tourn_arena_gift_cell.lua.meta b/lua/app/ui/activity/tourn_arena/cell/tourn_arena_gift_cell.lua.meta
new file mode 100644
index 00000000..f39234fd
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena/cell/tourn_arena_gift_cell.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 88465b50d54bb764eaa2aa91a489e08d
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/tourn_arena/cell/tourn_arena_rank_cell.lua b/lua/app/ui/activity/tourn_arena/cell/tourn_arena_rank_cell.lua
new file mode 100644
index 00000000..d1f7438b
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena/cell/tourn_arena_rank_cell.lua
@@ -0,0 +1,61 @@
+local TournArenaRankCell = class("TournArenaRankCell", BaseCell)
+
+local RANK_IMG = {"act_ranking_1", "act_ranking_2", "act_ranking_3"}
+local BG = {"common_bg_8", "common_bg_9", "common_bg_10", "common_bg_11"}
+
+function TournArenaRankCell:init()
+ local uiMap = self:getUIMap()
+
+ self.txRank = uiMap["tourn_arena_rank_cell.tx_rank"]
+ self.imgRank = uiMap["tourn_arena_rank_cell.img_rank"]
+ self.playerHeadCell = uiMap["tourn_arena_rank_cell.player_head_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.PLAYER_HEAD_CELL)
+ self.txName = uiMap["tourn_arena_rank_cell.tx_name"]
+ self.txScore = uiMap["tourn_arena_rank_cell.tx_score"]
+ self.rewards = uiMap["tourn_arena_rank_cell.rewards"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT)
+ self.rewardCells = {}
+ for i = 1, 3 do
+ table.insert(self.rewardCells, uiMap["tourn_arena_rank_cell.rewards.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
+ end
+end
+
+function TournArenaRankCell:refresh(rank, info)
+ self.playerHeadCell:refresh(info.avatar, info.avatar_frame)
+ local name = info.name
+ if name == nil or #name == 0 then
+ name = I18N:getGlobalText(I18N.GlobalConst.NEW_PLAYER)
+ end
+ self.txName:setText(name)
+ self.txScore:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_16)..":"..info.score)
+
+ if BG[rank] then
+ self.baseObject:setSprite(GConst.ATLAS_PATH.COMMON, BG[rank])
+ else
+ self.baseObject:setSprite(GConst.ATLAS_PATH.COMMON, BG[4])
+ end
+
+ if RANK_IMG[rank] then
+ self.imgRank:setActive(true)
+ self.imgRank:setSprite(GConst.ATLAS_PATH.ACT_COMMON, RANK_IMG[rank])
+ self.txRank:setText(GConst.EMPTY_STRING)
+ else
+ self.imgRank:setActive(false)
+ if info.score > 0 then
+ self.txRank:setText(rank)
+ else
+ self.txRank:setText("--")
+ end
+ end
+
+ local rewards = DataManager.TournArenaData:getRewardByRank(rank)
+ for index, cell in ipairs(self.rewardCells) do
+ if rewards[index] then
+ cell:setVisible(true)
+ cell:refreshByConfig(rewards[index])
+ else
+ cell:setVisible(false)
+ end
+ end
+ self.rewards:RefreshLayout()
+end
+
+return TournArenaRankCell
\ No newline at end of file
diff --git a/lua/app/ui/activity/tourn_arena/cell/tourn_arena_rank_cell.lua.meta b/lua/app/ui/activity/tourn_arena/cell/tourn_arena_rank_cell.lua.meta
new file mode 100644
index 00000000..57fc98b8
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena/cell/tourn_arena_rank_cell.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 0701b2f9d5a616241b15a566c048cbf5
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/tourn_arena/cell/tourn_arena_rank_reward_cell.lua b/lua/app/ui/activity/tourn_arena/cell/tourn_arena_rank_reward_cell.lua
new file mode 100644
index 00000000..6990a9d3
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena/cell/tourn_arena_rank_reward_cell.lua
@@ -0,0 +1,61 @@
+local TournArenaRankRewardCell = class("TournArenaRankRewardCell", BaseCell)
+
+local RANK_IMG = {"act_ranking_1", "act_ranking_2", "act_ranking_3"}
+local BG = {"common_bg_8", "common_bg_9", "common_bg_10", "common_bg_11"}
+
+function TournArenaRankRewardCell:init()
+ local uiMap = self:getUIMap()
+
+ self.txRank = uiMap["tourn_arena_rank_reward_cell.tx_rank"]
+ self.imgRank = uiMap["tourn_arena_rank_reward_cell.img_rank"]
+ self.rewards = uiMap["tourn_arena_rank_reward_cell.rewards"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT)
+ self.rewardCells = {}
+ for i = 1, 3 do
+ table.insert(self.rewardCells, uiMap["tourn_arena_rank_reward_cell.rewards.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
+ end
+end
+
+function TournArenaRankRewardCell:refresh(index)
+ local info = DataManager.TournArenaData:getRankCfgByIndex(index)
+ local ranking1 = info.ranking[1]
+ local ranking2 = info.ranking[2]
+
+ if BG[ranking1] then
+ self.baseObject:setSprite(GConst.ATLAS_PATH.COMMON, BG[ranking1])
+ else
+ self.baseObject:setSprite(GConst.ATLAS_PATH.COMMON, BG[4])
+ end
+
+ if RANK_IMG[ranking1] then
+ self.imgRank:setActive(true)
+ self.imgRank:setSprite(GConst.ATLAS_PATH.ACT_COMMON, RANK_IMG[ranking1])
+ self.txRank:setText(GConst.EMPTY_STRING)
+ else
+ self.imgRank:setActive(false)
+ local rankStr = ranking1 .. "-"
+ if ranking2 then
+ rankStr = rankStr .. ranking2
+ else
+ rankStr = rankStr .. "-"
+ end
+ if ranking1 == ranking2 then
+ rankStr = ranking1
+ end
+ if index == #DataManager.TournArenaData:getRankIdList() then
+ rankStr = ranking1 .. "+"
+ end
+ self.txRank:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_BOSS_RUSH_DESC_23, rankStr))
+ end
+
+ for index, cell in ipairs(self.rewardCells) do
+ if info.reward[index] then
+ cell:setVisible(true)
+ cell:refreshByConfig(info.reward[index])
+ else
+ cell:setVisible(false)
+ end
+ end
+ self.rewards:RefreshLayout()
+end
+
+return TournArenaRankRewardCell
\ No newline at end of file
diff --git a/lua/app/ui/activity/tourn_arena/cell/tourn_arena_rank_reward_cell.lua.meta b/lua/app/ui/activity/tourn_arena/cell/tourn_arena_rank_reward_cell.lua.meta
new file mode 100644
index 00000000..1b0d26b7
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena/cell/tourn_arena_rank_reward_cell.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 39da646b9dfd3154ea5eb18ea98c12d7
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/tourn_arena/tourn_arena_bounty_comp.lua b/lua/app/ui/activity/tourn_arena/tourn_arena_bounty_comp.lua
new file mode 100644
index 00000000..21398357
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena/tourn_arena_bounty_comp.lua
@@ -0,0 +1,99 @@
+local TournArenaBountyComp = class("TournArenaBountyComp", LuaComponent)
+
+function TournArenaBountyComp:init()
+ local uiMap = self:getUIMap()
+ self.txDesc = uiMap["bounty_panel.tx_desc"]
+ self.txFree = uiMap["bounty_panel.title.free.tx_free"]
+ self.txCurScore = uiMap["bounty_panel.title.cur_level.tx_level"]
+ -- 档位1
+ self.txBuyed1 = uiMap["bounty_panel.title.buy1.tx_buyed"]
+ self.btnBuy1 = uiMap["bounty_panel.title.buy1.btn_buy"]
+ self.txBuy1 = uiMap["bounty_panel.title.buy1.btn_buy.tx_buy"]
+ -- 档位2
+ self.txBuyed2 = uiMap["bounty_panel.title.buy2.tx_buyed"]
+ self.btnBuy2 = uiMap["bounty_panel.title.buy2.btn_buy"]
+ self.txBuy2 = uiMap["bounty_panel.title.buy2.btn_buy.tx_buy"]
+
+ self.scrollrectComp = uiMap["bounty_panel.list_bounty"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
+ self.progLevel = uiMap["bounty_panel.list_bounty.viewport.content.prog"]
+ self.imgProgLevel = uiMap["bounty_panel.list_bounty.viewport.content.prog.img_prog"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER)
+ self.maskLevel = uiMap["bounty_panel.list_bounty.viewport.content.mask_img"]
+ self.lineLevel = uiMap["bounty_panel.list_bounty.viewport.content.line"]
+ self.btnBuyLevel = uiMap["bounty_panel.list_bounty.viewport.content.line.btn_buy_level"]
+ self.txBuyLevelNum = uiMap["bounty_panel.list_bounty.viewport.content.line.btn_buy_level.tx_num"]
+ self.imgBuyLevelIcon = uiMap["bounty_panel.list_bounty.viewport.content.line.btn_buy_level.icon"]
+
+ self.txDesc:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_ARENEA_DESC_1))
+ self.txFree:setText(I18N:getGlobalText(I18N.GlobalConst.STR_FREE))
+ self.txBuyed1:setText(I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_20))
+ self.txBuyed2:setText(I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_20))
+
+ self.bountyIdList = DataManager.TournArenaData:getBountyIdList()
+ self.scrollrectComp:addInitCallback(function()
+ self.maskLevel:getTransform():SetAsLastSibling()
+ self.lineLevel:getTransform():SetAsLastSibling()
+ return "app/ui/activity/tourn_arena/cell/tourn_arena_bounty_cell"
+ end)
+ self.scrollrectComp:addRefreshCallback(function(index, cell)
+ cell:refresh(index, self.bountyIdList[index])
+ end)
+ self.scrollrectComp:clearCells()
+ self.scrollrectComp:refillCells(DataManager.TournArenaData:getBountyMaxLevel())
+
+ self.btnBuy1:addClickListener(function()
+ ModuleManager.TournArenaManager:buyBounty(GConst.TournArenaConst.BOUNTY_GIFT_ID_1)
+ end)
+ self.btnBuy2:addClickListener(function()
+ ModuleManager.TournArenaManager:buyBounty(GConst.TournArenaConst.BOUNTY_GIFT_ID_2)
+ end)
+ self.btnBuyLevel:addClickListener(function()
+ ModuleManager.TournArenaManager:reqBuyBountyLevel()
+ end)
+ self:bind(DataManager.TournArenaData, "isDirty", function()
+ self:refresh(true)
+ end)
+ self:bind(DataManager.ShopData, "isDirty", function()
+ self:refresh(true)
+ end)
+end
+
+function TournArenaBountyComp:refresh(notUpdatePos)
+ self.btnBuyLevel:setActive(DataManager.TournArenaData:canBuyBountyLevel())
+ self.txCurScore:setText(DataManager.TournArenaData:getBountyTotalScore())
+
+ -- 档位展示
+ self.btnBuy1:setActive(not DataManager.TournArenaData:isBountyGradeUnlock(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1))
+ self.btnBuy2:setActive(not DataManager.TournArenaData:isBountyGradeUnlock(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2))
+
+ local gift1 = DataManager.TournArenaData:getBountyGradeGiftCfg(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1)
+ local gift2 = DataManager.TournArenaData:getBountyGradeGiftCfg(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2)
+ self.txBuy1:setText(GFunc.getFormatPrice(gift1.recharge_id))
+ self.txBuy2:setText(GFunc.getFormatPrice(gift2.recharge_id))
+ self.txBuyLevelNum:setText(GFunc.getRewardNum(DataManager.TournArenaData:getBuyBountyLevelCost()))
+ GFunc.centerImgAndTx(self.imgBuyLevelIcon, self.txBuyLevelNum, 5)
+
+ -- 等级列表
+ local maxLevel = DataManager.TournArenaData:getBountyMaxLevel()
+ local curLevel = DataManager.TournArenaData:getBountyLevel()
+ local topRecoveryOffset = self.scrollrectComp:getTopRecoveryOffset()
+ local downRecoveryOffset = self.scrollrectComp:getDownRecoveryOffset()
+ local cellHeight = self.scrollrectComp:getCellHeight()
+ if curLevel >= maxLevel then
+ self.lineLevel:setVisible(false)
+ else
+ self.lineLevel:setVisible(true)
+ self.lineLevel:setAnchoredPositionY(-topRecoveryOffset - curLevel * cellHeight)
+ end
+ self.progLevel:setAnchoredPositionY((topRecoveryOffset + downRecoveryOffset) / 2 - cellHeight / 2 - 10)
+ self.progLevel:setSizeDeltaY(cellHeight * (maxLevel - 1))
+ self.imgProgLevel.value = DataManager.TournArenaData:getBountyTotalScore() / DataManager.TournArenaData:getLevelTotalScore(#DataManager.TournArenaData:getBountyIdList())
+ self.maskLevel:setAnchoredPositionY(-topRecoveryOffset - curLevel * cellHeight)
+ self.maskLevel:setSizeDeltaY(cellHeight * maxLevel + GConst.UI_SCREEN_HEIGHT)
+ self.scrollrectComp:updateAllCell()
+ if not notUpdatePos then
+ local rewardLevel = DataManager.TournArenaData:getFirstCanGetBountyRewardLevel()
+ self.scrollrectComp:moveToIndex(rewardLevel or curLevel)
+ end
+end
+
+return TournArenaBountyComp
\ No newline at end of file
diff --git a/lua/app/ui/activity/tourn_arena/tourn_arena_bounty_comp.lua.meta b/lua/app/ui/activity/tourn_arena/tourn_arena_bounty_comp.lua.meta
new file mode 100644
index 00000000..881da977
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena/tourn_arena_bounty_comp.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: add50f9a8e4e59c438d243609ebb1951
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/tourn_arena/tourn_arena_gift_comp.lua b/lua/app/ui/activity/tourn_arena/tourn_arena_gift_comp.lua
new file mode 100644
index 00000000..59cb482d
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena/tourn_arena_gift_comp.lua
@@ -0,0 +1,28 @@
+local TournArenaGiftComp = class("TournArenaGiftComp", LuaComponent)
+
+function TournArenaGiftComp:init()
+ local uiMap = self:getUIMap()
+ self.scrollrectComp = uiMap["gift_panel.scrollrect"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
+
+ self.scrollrectComp:addInitCallback(function()
+ return "app/ui/activity/tourn_arena/cell/tourn_arena_gift_cell"
+ end)
+ self.scrollrectComp:addRefreshCallback(function(index, cell)
+ cell:refresh(self.giftList[index].id)
+ end)
+
+ self:bind(DataManager.TournArenaData, "isDirty", function()
+ self:refresh()
+ end)
+ self:bind(DataManager.ShopData, "isDirty", function()
+ self:refresh()
+ end)
+end
+
+function TournArenaGiftComp:refresh()
+ self.giftList = DataManager.TournArenaData:getGiftIdsSort()
+ self.scrollrectComp:clearCells()
+ self.scrollrectComp:refillCells(#self.giftList)
+end
+
+return TournArenaGiftComp
\ No newline at end of file
diff --git a/lua/app/ui/activity/tourn_arena/tourn_arena_gift_comp.lua.meta b/lua/app/ui/activity/tourn_arena/tourn_arena_gift_comp.lua.meta
new file mode 100644
index 00000000..b14dc28f
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena/tourn_arena_gift_comp.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: b6ea3f91f034273478a904f0ca403424
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/tourn_arena/tourn_arena_rank_comp.lua b/lua/app/ui/activity/tourn_arena/tourn_arena_rank_comp.lua
new file mode 100644
index 00000000..2f58403c
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena/tourn_arena_rank_comp.lua
@@ -0,0 +1,204 @@
+local TournArenaRankComp = class("TournArenaRankComp", LuaComponent)
+
+local SHOW_TYPE = {
+ CUR_RANK = 1,
+ LAST_RANK = 2,
+ REWARD = 3,
+}
+
+local RANK_IMG = {"act_ranking_1", "act_ranking_2", "act_ranking_3"}
+
+function TournArenaRankComp:onClose()
+ if self.countdownSid then
+ self.baseObject:unscheduleGlobal(self.countdownSid)
+ self.countdownSid = nil
+ end
+end
+
+function TournArenaRankComp:init()
+ local uiMap = self:getUIMap()
+
+ self.txEmpty = uiMap["rank_panel.tx_empty"]
+ self.btnHelp = uiMap["rank_panel.btn_help"]
+ self.btns = uiMap["rank_panel.btns"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT)
+ self.btnCur = uiMap["rank_panel.btns.btn_cur"]
+ self.txCur = uiMap["rank_panel.btns.btn_cur.tx_cur"]
+ self.btnLast = uiMap["rank_panel.btns.btn_last"]
+ self.txLast = uiMap["rank_panel.btns.btn_last.tx_last"]
+ self.btnReward = uiMap["rank_panel.btns.btn_reward"]
+ self.txReward = uiMap["rank_panel.btns.btn_reward.tx_reward"]
+ self.txCountdown = uiMap["rank_panel.tx_countdown"]
+ self.listRewardComp = uiMap["rank_panel.list_reward"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
+ self.listRankComp = uiMap["rank_panel.list_rank"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
+ -- 自己排名
+ self.imgRank = uiMap["rank_panel.my_rank.img_rank"]
+ self.txRank = uiMap["rank_panel.my_rank.tx_rank"]
+ self.txName = uiMap["rank_panel.my_rank.tx_name"]
+ self.txScore = uiMap["rank_panel.my_rank.tx_score"]
+ self.playerHeadCell = uiMap["rank_panel.my_rank.player_head_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.PLAYER_HEAD_CELL)
+ self.rewards = uiMap["rank_panel.my_rank.rewards"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT)
+ self.rewardCells = {}
+ for i = 1, 3 do
+ table.insert(self.rewardCells, uiMap["rank_panel.my_rank.rewards.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
+ end
+
+ self.txEmpty:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_BOSS_RUSH_DESC_8))
+ self.txCur:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_BTN_1))
+ self.txLast:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_BTN_2))
+ self.txReward:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_BTN_3))
+ self:refreshCountdown()
+
+ self.listRankComp:addInitCallback(function()
+ return "app/ui/activity/tourn_arena/cell/tourn_arena_rank_cell"
+ end)
+ self.listRankComp:addRefreshCallback(function(index, cell)
+ cell:refresh(index, self.rankDataList[index])
+ end)
+ self.listRewardComp:addInitCallback(function()
+ return "app/ui/activity/tourn_arena/cell/tourn_arena_rank_reward_cell"
+ end)
+ self.listRewardComp:addRefreshCallback(function(index, cell)
+ cell:refresh(index)
+ end)
+
+ self.btnHelp:addClickListener(function()
+ local params = {
+ type = GConst.TipsConst.HELP_TIPS_TYPE.ARENA,
+ title = I18N:getGlobalText(I18N.GlobalConst.COLLECTION_DESC_11),
+ desc = I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_ARENEA_HELP),
+ }
+ ModuleManager.TipsManager:showHelpTips(params)
+ end)
+ self.btnCur:addClickListener(function()
+ ModuleManager.TournArenaManager:reqRankList(DataManager.TournArenaData:getCurRankStep())
+ self:refresh(SHOW_TYPE.CUR_RANK)
+ end)
+ self.btnLast:addClickListener(function()
+ ModuleManager.TournArenaManager:reqRankList(DataManager.TournArenaData:getCurRankStep() - 1)
+ self:refresh(SHOW_TYPE.LAST_RANK)
+ end)
+ self.btnReward:addClickListener(function()
+ self:refresh(SHOW_TYPE.REWARD)
+ end)
+ self:bind(DataManager.TournArenaData, "isDirty", function()
+ self:refresh()
+ end)
+end
+
+function TournArenaRankComp:refresh(showType)
+ self.showType = showType or self.showType or SHOW_TYPE.CUR_RANK
+
+ self.btnCur:setSprite(GConst.ATLAS_PATH.COMMON, self.showType == SHOW_TYPE.CUR_RANK and "common_board_130" or "common_board_134")
+ self.btnLast:setSprite(GConst.ATLAS_PATH.COMMON, self.showType == SHOW_TYPE.LAST_RANK and "common_board_130" or "common_board_134")
+ self.btnReward:setSprite(GConst.ATLAS_PATH.COMMON, self.showType == SHOW_TYPE.REWARD and "common_board_130" or "common_board_134")
+
+ local curStep = DataManager.TournArenaData:getCurRankStep()
+
+ self.btnLast:setActive(curStep > 1)
+ self.btns:RefreshLayout()
+
+ if self.showType == SHOW_TYPE.CUR_RANK then
+ self:showRankList(curStep)
+ self:showSelfRank(curStep)
+ elseif self.showType == SHOW_TYPE.LAST_RANK then
+ local lastStep = curStep - 1
+ self:showRankList(lastStep)
+ self:showSelfRank(lastStep)
+ elseif self.showType == SHOW_TYPE.REWARD then
+ self:showRankReward()
+ self:showSelfRank(curStep)
+ end
+end
+
+-- 展示自己排名
+function TournArenaRankComp:showSelfRank(step)
+ local rank = DataManager.TournArenaData:getSelfRank(step)
+ local score = DataManager.TournArenaData:getSelfScore(step)
+
+ if score > 0 then
+ if RANK_IMG[rank] then
+ self.imgRank:setActive(true)
+ self.imgRank:setSprite(GConst.ATLAS_PATH.ACT_COMMON, RANK_IMG[rank])
+ self.txRank:setText(GConst.EMPTY_STRING)
+ else
+ self.imgRank:setActive(false)
+ self.txRank:setText(rank)
+ end
+ else
+ self.imgRank:setActive(false)
+ self.txRank:setText("--")
+ end
+ self.playerHeadCell:refresh()
+ self.txName:setText(DataManager.PlayerData:getNickname())
+ self.txScore:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_16)..":"..score)
+
+ local rewards = DataManager.TournArenaData:getRewardByRank(rank)
+ for index, cell in ipairs(self.rewardCells) do
+ if score > 0 and rewards[index] then
+ cell:setVisible(true)
+ cell:refreshByConfig(rewards[index])
+ if step ~= DataManager.TournArenaData:getCurRankStep() and DataManager.TournArenaData:isReachRankReward() then
+ cell.baseObject:addRedPoint(50, 50, 0.6)
+ cell:addClickListener(function()
+ ModuleManager.TournArenaManager:reqRankReward()
+ end)
+ else
+ cell.baseObject:removeRedPoint()
+ cell:addClickListener(nil)
+ end
+ else
+ cell:setVisible(false)
+ end
+ end
+ self.rewards:RefreshLayout()
+end
+
+-- 展示榜单
+function TournArenaRankComp:showRankList(step)
+ self.listRankComp:getBaseObject():setActive(true)
+ self.listRewardComp:getBaseObject():setActive(false)
+
+ self.rankDataList = DataManager.TournArenaData:getRankListData(step)
+ if self.rankDataList == nil then
+ self.rankDataList = {}
+ end
+ self.listRankComp:clearCells()
+ self.listRankComp:refillCells(#self.rankDataList)
+ self.txEmpty:setActive(#self.rankDataList <= 0)
+end
+
+-- 展示排行榜奖励
+function TournArenaRankComp:showRankReward()
+ self.listRankComp:getBaseObject():setActive(false)
+ self.listRewardComp:getBaseObject():setActive(true)
+ self.txEmpty:setActive(false)
+
+ self.rankIdList = DataManager.TournArenaData:getRankIdList()
+ self.listRewardComp:clearCells()
+ self.listRewardComp:refillCells(#self.rankIdList)
+end
+
+-- 刷新倒计时
+function TournArenaRankComp:refreshCountdown()
+ if self.countdownSid then
+ self.baseObject:unscheduleGlobal(self.countdownSid)
+ end
+
+ local str = DataManager.TournArenaData:isFinalDay() and I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_DESC_3) or I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_DESC_2)
+
+ self.txCountdown:setText(str .. Time:formatNumTimeStr(DataManager.TournArenaData:getCurRankStepRemainTime()))
+ self.countdownSid = self.baseObject:scheduleGlobal(function()
+ local time = DataManager.TournArenaData:getCurRankStepRemainTime()
+ if time >= 0 then
+ self.txCountdown:setText(str .. Time:formatNumTimeStr(time))
+ else
+ if self.showType == SHOW_TYPE.CUR_RANK then
+ ModuleManager.TournArenaManager:reqRankList(DataManager.TournArenaData:getCurRankStep())
+ elseif self.showType == SHOW_TYPE.LAST_RANK then
+ ModuleManager.TournArenaManager:reqRankList(DataManager.TournArenaData:getCurRankStep() - 1)
+ end
+ end
+ end, 1)
+end
+
+return TournArenaRankComp
\ No newline at end of file
diff --git a/lua/app/ui/activity/tourn_arena/tourn_arena_rank_comp.lua.meta b/lua/app/ui/activity/tourn_arena/tourn_arena_rank_comp.lua.meta
new file mode 100644
index 00000000..bf19c44b
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena/tourn_arena_rank_comp.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 423848385560f3d49a0d5861ef04b564
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/tourn_arena/tourn_arena_ui.lua b/lua/app/ui/activity/tourn_arena/tourn_arena_ui.lua
new file mode 100644
index 00000000..e9c983b3
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena/tourn_arena_ui.lua
@@ -0,0 +1,210 @@
+local TournArenaUI = class("TournArenaUI", BaseUI)
+
+local COMP_BOUNTY = "app/ui/activity/tourn_arena/tourn_arena_bounty_comp"
+local COMP_RANK = "app/ui/activity/tourn_arena/tourn_arena_rank_comp"
+local COMP_GIFT = "app/ui/activity/tourn_arena/tourn_arena_gift_comp"
+
+function TournArenaUI:isFullScreen()
+ return false
+end
+
+function TournArenaUI:getPrefabPath()
+ return "assets/prefabs/ui/activity/tourn_arena/tourn_arena_ui.prefab"
+end
+
+function TournArenaUI:onPressBackspace()
+ self:closeUI()
+end
+
+function TournArenaUI:onClose()
+ if self.compRank ~= nil then
+ self.compRank:refresh()
+ end
+ if self.countdownSid then
+ self.txCountdown:unscheduleGlobal(self.countdownSid)
+ end
+end
+
+function TournArenaUI:ctor(param)
+ if param then
+ self.panelType = param
+ else
+ self.panelType = GConst.TournArenaConst.PANEL_TYPE.BOUNTY -- 默认进入任务页签
+ end
+end
+
+function TournArenaUI:onLoadRootComplete()
+ local uiMap = self.root:genAllChildren()
+
+ -- 通用
+ self.txTitle = uiMap["tourn_arena_ui.common.img_title.tx_title"]
+ self.btnClose = uiMap["tourn_arena_ui.common.btn_close"]
+ self.bg = uiMap["tourn_arena_ui.common.bg"]
+ self.countdown = uiMap["tourn_arena_ui.common.countdown"]
+ self.txCountdown = uiMap["tourn_arena_ui.common.countdown.tx_countdown"]
+ self.spineTitle = uiMap["tourn_arena_ui.common.spine_title"]
+ -- 子界面
+ self.bountyPanel = uiMap["tourn_arena_ui.bounty_panel"]
+ self.rankPanel = uiMap["tourn_arena_ui.rank_panel"]
+ self.giftPanel = uiMap["tourn_arena_ui.gift_panel"]
+ -- 战令标签
+ self.btnBounty = uiMap["tourn_arena_ui.common.btns.btn_bounty"]
+ self.txBounty1 = uiMap["tourn_arena_ui.common.btns.btn_bounty.tx_btn"]
+ self.txBounty2 = uiMap["tourn_arena_ui.common.btns.btn_bounty.select.tx_select"]
+ self.selectBounty = uiMap["tourn_arena_ui.common.btns.btn_bounty.select"]
+ -- 排行榜标签
+ self.btnRank = uiMap["tourn_arena_ui.common.btns.btn_rank"]
+ self.txRank1 = uiMap["tourn_arena_ui.common.btns.btn_rank.tx_btn"]
+ self.txRank2 = uiMap["tourn_arena_ui.common.btns.btn_rank.select.tx_select"]
+ self.selectRank = uiMap["tourn_arena_ui.common.btns.btn_rank.select"]
+ -- 礼包标签
+ self.btnGift = uiMap["tourn_arena_ui.common.btns.btn_gift"]
+ self.txGift1 = uiMap["tourn_arena_ui.common.btns.btn_gift.tx_btn"]
+ self.txGift2 = uiMap["tourn_arena_ui.common.btns.btn_gift.select.tx_select"]
+ self.selectGift = uiMap["tourn_arena_ui.common.btns.btn_gift.select"]
+
+ self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_ARENEA_TITLE))
+ self.txBounty1:setText(I18N:getGlobalText(I18N.GlobalConst.REWARD_DESC))
+ self.txBounty2:setText(I18N:getGlobalText(I18N.GlobalConst.REWARD_DESC))
+ self.txRank1:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_5))
+ self.txRank2:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_5))
+ self.txGift1:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_DESC_4))
+ self.txGift2:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_DESC_4))
+
+ self.spineTitle:getSkeletonGraphic().enabled = false
+ self.spineTitle:loadAssetAsync("ui_act_tourn_arena_title", function()
+ self.spineTitle:getSkeletonGraphic().enabled = true
+ self.spineTitle:playAnimComplete("animation", false, true, function()
+ self.spineTitle:playAnim("idle", true, true, true)
+ end, true)
+ end, false)
+
+ self.btnBounty:addClickListener(function()
+ self.panelType = GConst.TournArenaConst.PANEL_TYPE.BOUNTY
+ self:onRefresh()
+ end)
+ self.btnRank:addClickListener(function()
+ self.panelType = GConst.TournArenaConst.PANEL_TYPE.RANK
+ self:onRefresh()
+ end)
+ self.btnGift:addClickListener(function()
+ self.panelType = GConst.TournArenaConst.PANEL_TYPE.GIFT
+ self:onRefresh()
+ end)
+ self.btnClose:addClickListener(function()
+ self:closeUI()
+ end)
+ self:addEventListener(EventManager.CUSTOM_EVENT.ACTIVITY_TOURN_ARENA_END, function()
+ self:closeUI()
+ end)
+ self:bind(DataManager.TournArenaData, "isDirty", function()
+ -- 检查更新数据
+ if DataManager.TournArenaData:getIsInReset() and self.panelType == GConst.TournArenaConst.PANEL_TYPE.RANK then
+ self:onRefresh()
+ else
+ self:refreshRedPoint()
+ end
+ end)
+end
+
+function TournArenaUI:onRefresh()
+ -- 倒计时
+ if self.countdownSid then
+ self.txCountdown:unscheduleGlobal(self.countdownSid)
+ end
+ self.txCountdown:setText(Time:formatNumTimeStr(DataManager.TournArenaData:getEndRemainTime()))
+ self.countdownSid = self.txCountdown:scheduleGlobal(function()
+ local time = DataManager.TournArenaData:getEndRemainTime()
+ if time >= 0 then
+ self.txCountdown:setText(Time:formatNumTimeStr(time))
+ end
+ end, 1)
+
+ if self.panelType == GConst.TournArenaConst.PANEL_TYPE.BOUNTY then
+ self:showBountyInfo()
+ elseif self.panelType == GConst.TournArenaConst.PANEL_TYPE.RANK then
+ self:showRankInfo()
+ elseif self.panelType == GConst.TournArenaConst.PANEL_TYPE.GIFT then
+ self:showGiftInfo()
+ end
+ self:refreshRedPoint()
+end
+
+-- 刷新标签红点
+function TournArenaUI:refreshRedPoint()
+ if DataManager.TournArenaData:hasBountyRedPoint() then
+ self.btnBounty:addRedPoint(75, 5, 0.6)
+ else
+ self.btnBounty:removeRedPoint()
+ end
+ if DataManager.TournArenaData:hasRankRedPoint() then
+ self.btnRank:addRedPoint(75, 5, 0.6)
+ else
+ self.btnRank:removeRedPoint()
+ end
+ if DataManager.TournArenaData:hasGiftRedPoint() then
+ self.btnGift:addRedPoint(75, 5, 0.6)
+ else
+ self.btnGift:removeRedPoint()
+ end
+end
+
+function TournArenaUI:showBountyInfo()
+ self.bountyPanel:setActive(true)
+ self.selectBounty:setActive(true)
+ self.rankPanel:setActive(false)
+ self.selectRank:setActive(false)
+ self.giftPanel:setActive(false)
+ self.selectGift:setActive(false)
+ self.countdown:setActive(true)
+ self.bg:setActive(true)
+
+ if not self.compBounty then
+ self.bountyPanel:initPrefabHelper()
+ self.bountyPanel:genAllChildren()
+ self.compBounty = self.bountyPanel:addLuaComponent(COMP_BOUNTY)
+ end
+
+ self.compBounty:refresh()
+end
+
+function TournArenaUI:showRankInfo()
+ self.bountyPanel:setActive(false)
+ self.selectBounty:setActive(false)
+ self.rankPanel:setActive(true)
+ self.selectRank:setActive(true)
+ self.giftPanel:setActive(false)
+ self.selectGift:setActive(false)
+ self.countdown:setActive(false)
+ self.bg:setActive(false)
+
+ ModuleManager.TournArenaManager:reqRankList(DataManager.TournArenaData:getCurRankStep())
+ if not self.compRank then
+ self.rankPanel:initPrefabHelper()
+ self.rankPanel:genAllChildren()
+ self.compRank = self.rankPanel:addLuaComponent(COMP_RANK)
+ end
+
+ self.compRank:refresh()
+end
+
+function TournArenaUI:showGiftInfo()
+ self.bountyPanel:setActive(false)
+ self.selectBounty:setActive(false)
+ self.rankPanel:setActive(false)
+ self.selectRank:setActive(false)
+ self.giftPanel:setActive(true)
+ self.selectGift:setActive(true)
+ self.countdown:setActive(true)
+ self.bg:setActive(false)
+
+ if not self.compGift then
+ self.giftPanel:initPrefabHelper()
+ self.giftPanel:genAllChildren()
+ self.compGift = self.giftPanel:addLuaComponent(COMP_GIFT)
+ end
+
+ self.compGift:refresh()
+end
+
+return TournArenaUI
\ No newline at end of file
diff --git a/lua/app/ui/activity/tourn_arena/tourn_arena_ui.lua.meta b/lua/app/ui/activity/tourn_arena/tourn_arena_ui.lua.meta
new file mode 100644
index 00000000..d5cc5ea5
--- /dev/null
+++ b/lua/app/ui/activity/tourn_arena/tourn_arena_ui.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: c29f7f21d2c22f74db078cffc8100e42
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/tourn_wave.meta b/lua/app/ui/activity/tourn_wave.meta
new file mode 100644
index 00000000..8ca0493a
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 840201af24820dd4387b1ebf46520230
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/lua/app/ui/activity/tourn_wave/cell.meta b/lua/app/ui/activity/tourn_wave/cell.meta
new file mode 100644
index 00000000..18677e99
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave/cell.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bb3773d108d0c7c46b23ba556dec5723
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/lua/app/ui/activity/tourn_wave/cell/tourn_wave_bounty_cell.lua b/lua/app/ui/activity/tourn_wave/cell/tourn_wave_bounty_cell.lua
new file mode 100644
index 00000000..d6a2b1f6
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave/cell/tourn_wave_bounty_cell.lua
@@ -0,0 +1,62 @@
+local TournWaveBountyCell = class("TournWaveBountyCell", BaseCell)
+
+function TournWaveBountyCell:init()
+ local uiMap = self:getUIMap()
+ self.txLevel = uiMap["tourn_wave_bounty_cell.level.tx_level"]
+ self.rewardCell1 = uiMap["tourn_wave_bounty_cell.reward_cell_1"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
+ self.rewardCell2 = uiMap["tourn_wave_bounty_cell.reward_cell_2"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
+ self.rewardCell3 = uiMap["tourn_wave_bounty_cell.reward_cell_3"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
+end
+
+function TournWaveBountyCell:refresh(level, id)
+ self.id = id
+ self.txLevel:setText(DataManager.TournWaveData:getLevelTotalScore(level))
+
+ local isGet
+
+ isGet = DataManager.TournWaveData:isReceivedBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE)
+ self.rewardCell1:refreshByConfig(DataManager.TournWaveData:getBountyGradeReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE), isGet, isGet)
+ self.rewardCell1:showLock(not DataManager.TournWaveData:isBountyGradeUnlock(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE))
+ if DataManager.TournWaveData:canGetBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE) then
+ self.rewardCell1.baseObject:addRedPoint(50, 50, 0.6)
+ self.rewardCell1:addClickListener(function()
+ self:onClickReward(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE)
+ end)
+ else
+ self.rewardCell1.baseObject:removeRedPoint()
+ self.rewardCell1:addClickListener(nil)
+ end
+
+ isGet = DataManager.TournWaveData:isReceivedBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1)
+ self.rewardCell2:refreshByConfig(DataManager.TournWaveData:getBountyGradeReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1), isGet, isGet)
+ self.rewardCell2:showLock(not DataManager.TournWaveData:isBountyGradeUnlock(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1))
+ if DataManager.TournWaveData:canGetBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1) then
+ self.rewardCell2.baseObject:addRedPoint(50, 50, 0.6)
+ self.rewardCell2:addClickListener(function()
+ self:onClickReward(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1)
+ end)
+ else
+ self.rewardCell2.baseObject:removeRedPoint()
+ self.rewardCell2:addClickListener(nil)
+ end
+
+ isGet = DataManager.TournWaveData:isReceivedBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2)
+ self.rewardCell3:refreshByConfig(DataManager.TournWaveData:getBountyGradeReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2), isGet, isGet)
+ self.rewardCell3:showLock(not DataManager.TournWaveData:isBountyGradeUnlock(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2))
+ if DataManager.TournWaveData:canGetBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2) then
+ self.rewardCell3.baseObject:addRedPoint(50, 50, 0.6)
+ self.rewardCell3:addClickListener(function()
+ self:onClickReward(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2)
+ end)
+ else
+ self.rewardCell3.baseObject:removeRedPoint()
+ self.rewardCell3:addClickListener(nil)
+ end
+end
+
+-- 领取奖励
+function TournWaveBountyCell:onClickReward(grade)
+ ModuleManager.TournWaveManager:reqBountyReward(self.id, grade)
+end
+
+return TournWaveBountyCell
\ No newline at end of file
diff --git a/lua/app/ui/activity/tourn_wave/cell/tourn_wave_bounty_cell.lua.meta b/lua/app/ui/activity/tourn_wave/cell/tourn_wave_bounty_cell.lua.meta
new file mode 100644
index 00000000..7855158c
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave/cell/tourn_wave_bounty_cell.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 0aba106b0cea72f43bb5fe476d750402
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/tourn_wave/cell/tourn_wave_gift_cell.lua b/lua/app/ui/activity/tourn_wave/cell/tourn_wave_gift_cell.lua
new file mode 100644
index 00000000..67398365
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave/cell/tourn_wave_gift_cell.lua
@@ -0,0 +1,56 @@
+local TournWaveGiftCell = class("TournWaveGiftCell", BaseCell)
+
+function TournWaveGiftCell:init()
+ local uiMap = self:getUIMap()
+
+ self.txLimit = uiMap["tourn_wave_gift_cell.tx_limit"]
+ self.txBuy = uiMap["tourn_wave_gift_cell.tx_buy"]
+ self.imgOff = uiMap["tourn_wave_gift_cell.off_img"]
+ self.txOff = uiMap["tourn_wave_gift_cell.off_img.tx_off"]
+ self.rewards = {}
+ for i = 1, 3 do
+ table.insert(self.rewards, uiMap["tourn_wave_gift_cell.reward_cell_"..i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
+ end
+
+ self:addClickListener(function()
+ if DataManager.TournWaveData:getGiftRemainTime(self.id) > 0 then
+ PayManager:purchasePackage(self.id, PayManager.PURCHARSE_TYPE.ACT_GIFT)
+ end
+ end)
+end
+
+function TournWaveGiftCell:refresh(id)
+ self.id = id
+ local cfg = DataManager.ShopData:getActGiftConfig()[self.id]
+ local time = DataManager.TournWaveData:getGiftRemainTime(self.id)
+
+ self.txLimit:setText(I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_18, time))
+
+ for idx, reward in ipairs(self.rewards) do
+ if cfg.reward[idx] then
+ reward:setVisible(true)
+ reward:refreshByConfig(cfg.reward[idx])
+ else
+ reward:setVisible(false)
+ end
+ end
+
+ local buyStr
+ if cfg.recharge_id then
+ self.baseObject:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_bg_6")
+ self.imgOff:setActive(true)
+ self.txOff:setText(cfg.value .. "%")
+ buyStr = GFunc.getFormatPrice(cfg.recharge_id)
+ else
+ self.baseObject:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_bg_5")
+ self.imgOff:setActive(false)
+ buyStr = I18N:getGlobalText(I18N.GlobalConst.STR_FREE)
+ end
+
+ if time <= 0 then
+ buyStr = I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_20)
+ end
+ self.txBuy:setText(buyStr)
+end
+
+return TournWaveGiftCell
\ No newline at end of file
diff --git a/lua/app/ui/activity/tourn_wave/cell/tourn_wave_gift_cell.lua.meta b/lua/app/ui/activity/tourn_wave/cell/tourn_wave_gift_cell.lua.meta
new file mode 100644
index 00000000..febde932
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave/cell/tourn_wave_gift_cell.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 08a1c923b2c92e0478372680efbdce07
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/tourn_wave/cell/tourn_wave_rank_cell.lua b/lua/app/ui/activity/tourn_wave/cell/tourn_wave_rank_cell.lua
new file mode 100644
index 00000000..d378cb9b
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave/cell/tourn_wave_rank_cell.lua
@@ -0,0 +1,61 @@
+local TournWaveRankCell = class("TournWaveRankCell", BaseCell)
+
+local RANK_IMG = {"act_ranking_1", "act_ranking_2", "act_ranking_3"}
+local BG = {"common_bg_8", "common_bg_9", "common_bg_10", "common_bg_11"}
+
+function TournWaveRankCell:init()
+ local uiMap = self:getUIMap()
+
+ self.txRank = uiMap["tourn_wave_rank_cell.tx_rank"]
+ self.imgRank = uiMap["tourn_wave_rank_cell.img_rank"]
+ self.playerHeadCell = uiMap["tourn_wave_rank_cell.player_head_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.PLAYER_HEAD_CELL)
+ self.txName = uiMap["tourn_wave_rank_cell.tx_name"]
+ self.txScore = uiMap["tourn_wave_rank_cell.tx_score"]
+ self.rewards = uiMap["tourn_wave_rank_cell.rewards"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT)
+ self.rewardCells = {}
+ for i = 1, 3 do
+ table.insert(self.rewardCells, uiMap["tourn_wave_rank_cell.rewards.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
+ end
+end
+
+function TournWaveRankCell:refresh(rank, info)
+ self.playerHeadCell:refresh(info.avatar, info.avatar_frame)
+ local name = info.name
+ if name == nil or #name == 0 then
+ name = I18N:getGlobalText(I18N.GlobalConst.NEW_PLAYER)
+ end
+ self.txName:setText(name)
+ self.txScore:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_16)..":"..info.score)
+
+ if BG[rank] then
+ self.baseObject:setSprite(GConst.ATLAS_PATH.COMMON, BG[rank])
+ else
+ self.baseObject:setSprite(GConst.ATLAS_PATH.COMMON, BG[4])
+ end
+
+ if RANK_IMG[rank] then
+ self.imgRank:setActive(true)
+ self.imgRank:setSprite(GConst.ATLAS_PATH.ACT_COMMON, RANK_IMG[rank])
+ self.txRank:setText(GConst.EMPTY_STRING)
+ else
+ self.imgRank:setActive(false)
+ if info.score > 0 then
+ self.txRank:setText(rank)
+ else
+ self.txRank:setText("--")
+ end
+ end
+
+ local rewards = DataManager.TournWaveData:getRewardByRank(rank)
+ for index, cell in ipairs(self.rewardCells) do
+ if rewards[index] then
+ cell:setVisible(true)
+ cell:refreshByConfig(rewards[index])
+ else
+ cell:setVisible(false)
+ end
+ end
+ self.rewards:RefreshLayout()
+end
+
+return TournWaveRankCell
\ No newline at end of file
diff --git a/lua/app/ui/activity/tourn_wave/cell/tourn_wave_rank_cell.lua.meta b/lua/app/ui/activity/tourn_wave/cell/tourn_wave_rank_cell.lua.meta
new file mode 100644
index 00000000..5396e915
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave/cell/tourn_wave_rank_cell.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 8cd3744c1d41e3449b5a254f46c48b86
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/tourn_wave/cell/tourn_wave_rank_reward_cell.lua b/lua/app/ui/activity/tourn_wave/cell/tourn_wave_rank_reward_cell.lua
new file mode 100644
index 00000000..82462c11
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave/cell/tourn_wave_rank_reward_cell.lua
@@ -0,0 +1,61 @@
+local TournWaveRankRewardCell = class("TournWaveRankRewardCell", BaseCell)
+
+local RANK_IMG = {"act_ranking_1", "act_ranking_2", "act_ranking_3"}
+local BG = {"common_bg_8", "common_bg_9", "common_bg_10", "common_bg_11"}
+
+function TournWaveRankRewardCell:init()
+ local uiMap = self:getUIMap()
+
+ self.txRank = uiMap["tourn_wave_rank_reward_cell.tx_rank"]
+ self.imgRank = uiMap["tourn_wave_rank_reward_cell.img_rank"]
+ self.rewards = uiMap["tourn_wave_rank_reward_cell.rewards"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT)
+ self.rewardCells = {}
+ for i = 1, 3 do
+ table.insert(self.rewardCells, uiMap["tourn_wave_rank_reward_cell.rewards.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
+ end
+end
+
+function TournWaveRankRewardCell:refresh(index)
+ local info = DataManager.TournWaveData:getRankCfgByIndex(index)
+ local ranking1 = info.ranking[1]
+ local ranking2 = info.ranking[2]
+
+ if BG[ranking1] then
+ self.baseObject:setSprite(GConst.ATLAS_PATH.COMMON, BG[ranking1])
+ else
+ self.baseObject:setSprite(GConst.ATLAS_PATH.COMMON, BG[4])
+ end
+
+ if RANK_IMG[ranking1] then
+ self.imgRank:setActive(true)
+ self.imgRank:setSprite(GConst.ATLAS_PATH.ACT_COMMON, RANK_IMG[ranking1])
+ self.txRank:setText(GConst.EMPTY_STRING)
+ else
+ self.imgRank:setActive(false)
+ local rankStr = ranking1 .. "-"
+ if ranking2 then
+ rankStr = rankStr .. ranking2
+ else
+ rankStr = rankStr .. "-"
+ end
+ if ranking1 == ranking2 then
+ rankStr = ranking1
+ end
+ if index == #DataManager.TournWaveData:getRankIdList() then
+ rankStr = ranking1 .. "+"
+ end
+ self.txRank:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_BOSS_RUSH_DESC_23, rankStr))
+ end
+
+ for index, cell in ipairs(self.rewardCells) do
+ if info.reward[index] then
+ cell:setVisible(true)
+ cell:refreshByConfig(info.reward[index])
+ else
+ cell:setVisible(false)
+ end
+ end
+ self.rewards:RefreshLayout()
+end
+
+return TournWaveRankRewardCell
\ No newline at end of file
diff --git a/lua/app/ui/activity/tourn_wave/cell/tourn_wave_rank_reward_cell.lua.meta b/lua/app/ui/activity/tourn_wave/cell/tourn_wave_rank_reward_cell.lua.meta
new file mode 100644
index 00000000..1eab447b
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave/cell/tourn_wave_rank_reward_cell.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 967b65025941ddd469069a4d210fc121
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/tourn_wave/tourn_wave_bounty_comp.lua b/lua/app/ui/activity/tourn_wave/tourn_wave_bounty_comp.lua
new file mode 100644
index 00000000..cf9e3095
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave/tourn_wave_bounty_comp.lua
@@ -0,0 +1,110 @@
+local TournWaveBountyComp = class("TournWaveBountyComp", LuaComponent)
+
+function TournWaveBountyComp:init()
+ local uiMap = self:getUIMap()
+ self.txDesc = uiMap["bounty_panel.tx_desc"]
+ self.btnHelp = uiMap["bounty_panel.tx_desc.btn_help"]
+ self.txFree = uiMap["bounty_panel.title.free.tx_free"]
+ self.txCurWave = uiMap["bounty_panel.title.cur_level.tx_level"]
+ -- 档位1
+ self.txBuyed1 = uiMap["bounty_panel.title.buy1.tx_buyed"]
+ self.btnBuy1 = uiMap["bounty_panel.title.buy1.btn_buy"]
+ self.txBuy1 = uiMap["bounty_panel.title.buy1.btn_buy.tx_buy"]
+ -- 档位2
+ self.txBuyed2 = uiMap["bounty_panel.title.buy2.tx_buyed"]
+ self.btnBuy2 = uiMap["bounty_panel.title.buy2.btn_buy"]
+ self.txBuy2 = uiMap["bounty_panel.title.buy2.btn_buy.tx_buy"]
+
+ self.scrollrectComp = uiMap["bounty_panel.list_bounty"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
+ self.progLevel = uiMap["bounty_panel.list_bounty.viewport.content.prog"]
+ self.imgProgLevel = uiMap["bounty_panel.list_bounty.viewport.content.prog.img_prog"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER)
+ self.maskLevel = uiMap["bounty_panel.list_bounty.viewport.content.mask_img"]
+ self.lineLevel = uiMap["bounty_panel.list_bounty.viewport.content.line"]
+ self.btnBuyLevel = uiMap["bounty_panel.list_bounty.viewport.content.line.btn_buy_level"]
+ self.txBuyLevelNum = uiMap["bounty_panel.list_bounty.viewport.content.line.btn_buy_level.tx_num"]
+ self.imgBuyLevelIcon = uiMap["bounty_panel.list_bounty.viewport.content.line.btn_buy_level.icon"]
+
+ self.txDesc:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_DESC_1))
+ self.txFree:setText(I18N:getGlobalText(I18N.GlobalConst.STR_FREE))
+ self.txBuyed1:setText(I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_20))
+ self.txBuyed2:setText(I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_20))
+
+ self.bountyIdList = DataManager.TournWaveData:getBountyIdList()
+ self.scrollrectComp:addInitCallback(function()
+ self.maskLevel:getTransform():SetAsLastSibling()
+ self.lineLevel:getTransform():SetAsLastSibling()
+ return "app/ui/activity/tourn_wave/cell/tourn_wave_bounty_cell"
+ end)
+ self.scrollrectComp:addRefreshCallback(function(index, cell)
+ cell:refresh(index, self.bountyIdList[index])
+ end)
+ self.scrollrectComp:clearCells()
+ self.scrollrectComp:refillCells(DataManager.TournWaveData:getBountyMaxLevel())
+
+ self.btnHelp:addClickListener(function()
+ local params = {
+ type = GConst.TipsConst.HELP_TIPS_TYPE.ARENA,
+ title = I18N:getGlobalText(I18N.GlobalConst.COLLECTION_DESC_11),
+ desc = I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_HELP_1),
+ }
+ ModuleManager.TipsManager:showHelpTips(params)
+ end)
+ self.btnBuy1:addClickListener(function()
+ ModuleManager.TournWaveManager:buyBounty(GConst.TournWaveConst.BOUNTY_GIFT_ID_1)
+ end)
+ self.btnBuy2:addClickListener(function()
+ ModuleManager.TournWaveManager:buyBounty(GConst.TournWaveConst.BOUNTY_GIFT_ID_2)
+ end)
+ self.btnBuyLevel:addClickListener(function()
+ ModuleManager.TournWaveManager:reqBuyBountyLevel()
+ end)
+ self:bind(DataManager.TournWaveData, "isDirty", function()
+ self:refresh(true)
+ end)
+ self:bind(DataManager.ShopData, "isDirty", function()
+ self:refresh(true)
+ end)
+end
+
+function TournWaveBountyComp:refresh(notUpdatePos)
+ self.btnBuyLevel:setActive(DataManager.TournWaveData:canBuyBountyLevel())
+ self.txCurWave:setText(DataManager.TournWaveData:getBountyTotalScore())
+
+ -- 档位展示
+ self.btnBuy1:setActive(not DataManager.TournWaveData:isBountyGradeUnlock(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1))
+ self.btnBuy2:setActive(not DataManager.TournWaveData:isBountyGradeUnlock(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2))
+
+ local gift1 = DataManager.TournWaveData:getBountyGradeGiftCfg(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1)
+ local gift2 = DataManager.TournWaveData:getBountyGradeGiftCfg(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2)
+ self.txBuy1:setText(GFunc.getFormatPrice(gift1.recharge_id))
+ self.txBuy2:setText(GFunc.getFormatPrice(gift2.recharge_id))
+ self.txBuyLevelNum:setText(GFunc.getRewardNum(DataManager.TournWaveData:getBuyBountyLevelCost()))
+ GFunc.centerImgAndTx(self.imgBuyLevelIcon, self.txBuyLevelNum, 5)
+
+ -- 等级列表
+ local maxLevel = DataManager.TournWaveData:getBountyMaxLevel()
+ local curLevel = DataManager.TournWaveData:getBountyLevel()
+ local topRecoveryOffset = self.scrollrectComp:getTopRecoveryOffset()
+ local downRecoveryOffset = self.scrollrectComp:getDownRecoveryOffset()
+ local cellHeight = self.scrollrectComp:getCellHeight()
+ if curLevel >= maxLevel then
+ self.lineLevel:setVisible(false)
+ else
+ self.lineLevel:setVisible(true)
+ self.lineLevel:setAnchoredPositionY(-topRecoveryOffset - curLevel * cellHeight)
+ end
+ self.progLevel:setAnchoredPositionY((topRecoveryOffset + downRecoveryOffset) / 2 - cellHeight / 2 - 10)
+ self.progLevel:setSizeDeltaY(cellHeight * (maxLevel - 1))
+
+ self.imgProgLevel.value = DataManager.TournWaveData:getBountyTotalScore() / DataManager.TournWaveData:getLevelTotalScore(#DataManager.TournWaveData:getBountyIdList())
+ self.maskLevel:setAnchoredPositionY(-topRecoveryOffset - curLevel * cellHeight)
+ self.maskLevel:setSizeDeltaY(cellHeight * maxLevel + GConst.UI_SCREEN_HEIGHT)
+ self.scrollrectComp:updateAllCell()
+
+ if not notUpdatePos then
+ local rewardLevel = DataManager.TournWaveData:getFirstCanGetBountyRewardLevel()
+ self.scrollrectComp:moveToIndex(rewardLevel or curLevel)
+ end
+end
+
+return TournWaveBountyComp
\ No newline at end of file
diff --git a/lua/app/ui/activity/tourn_wave/tourn_wave_bounty_comp.lua.meta b/lua/app/ui/activity/tourn_wave/tourn_wave_bounty_comp.lua.meta
new file mode 100644
index 00000000..bfd0fe98
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave/tourn_wave_bounty_comp.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: a89a4c596ad402b448d81442cc26026f
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/tourn_wave/tourn_wave_gift_comp.lua b/lua/app/ui/activity/tourn_wave/tourn_wave_gift_comp.lua
new file mode 100644
index 00000000..d5297006
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave/tourn_wave_gift_comp.lua
@@ -0,0 +1,28 @@
+local TournWaveGiftComp = class("TournWaveGiftComp", LuaComponent)
+
+function TournWaveGiftComp:init()
+ local uiMap = self:getUIMap()
+ self.scrollrectComp = uiMap["gift_panel.scrollrect"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
+
+ self.scrollrectComp:addInitCallback(function()
+ return "app/ui/activity/tourn_wave/cell/tourn_wave_gift_cell"
+ end)
+ self.scrollrectComp:addRefreshCallback(function(index, cell)
+ cell:refresh(self.giftList[index].id)
+ end)
+
+ self:bind(DataManager.TournWaveData, "isDirty", function()
+ self:refresh()
+ end)
+ self:bind(DataManager.ShopData, "isDirty", function()
+ self:refresh()
+ end)
+end
+
+function TournWaveGiftComp:refresh()
+ self.giftList = DataManager.TournWaveData:getGiftIdsSort()
+ self.scrollrectComp:clearCells()
+ self.scrollrectComp:refillCells(#self.giftList)
+end
+
+return TournWaveGiftComp
\ No newline at end of file
diff --git a/lua/app/ui/activity/tourn_wave/tourn_wave_gift_comp.lua.meta b/lua/app/ui/activity/tourn_wave/tourn_wave_gift_comp.lua.meta
new file mode 100644
index 00000000..2fb749a4
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave/tourn_wave_gift_comp.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: cff71edf36f45d74d849b0c5ebc13b7c
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/tourn_wave/tourn_wave_rank_comp.lua b/lua/app/ui/activity/tourn_wave/tourn_wave_rank_comp.lua
new file mode 100644
index 00000000..8a03e04b
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave/tourn_wave_rank_comp.lua
@@ -0,0 +1,204 @@
+local TournWaveRankComp = class("TournWaveRankComp", LuaComponent)
+
+local SHOW_TYPE = {
+ CUR_RANK = 1,
+ LAST_RANK = 2,
+ REWARD = 3,
+}
+
+local RANK_IMG = {"act_ranking_1", "act_ranking_2", "act_ranking_3"}
+
+function TournWaveRankComp:onClose()
+ if self.countdownSid then
+ self.baseObject:unscheduleGlobal(self.countdownSid)
+ self.countdownSid = nil
+ end
+end
+
+function TournWaveRankComp:init()
+ local uiMap = self:getUIMap()
+
+ self.txEmpty = uiMap["rank_panel.tx_empty"]
+ self.btnHelp = uiMap["rank_panel.btn_help"]
+ self.btns = uiMap["rank_panel.btns"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT)
+ self.btnCur = uiMap["rank_panel.btns.btn_cur"]
+ self.txCur = uiMap["rank_panel.btns.btn_cur.tx_cur"]
+ self.btnLast = uiMap["rank_panel.btns.btn_last"]
+ self.txLast = uiMap["rank_panel.btns.btn_last.tx_last"]
+ self.btnReward = uiMap["rank_panel.btns.btn_reward"]
+ self.txReward = uiMap["rank_panel.btns.btn_reward.tx_reward"]
+ self.txCountdown = uiMap["rank_panel.tx_countdown"]
+ self.listRewardComp = uiMap["rank_panel.list_reward"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
+ self.listRankComp = uiMap["rank_panel.list_rank"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
+ -- 自己排名
+ self.imgRank = uiMap["rank_panel.my_rank.img_rank"]
+ self.txRank = uiMap["rank_panel.my_rank.tx_rank"]
+ self.txName = uiMap["rank_panel.my_rank.tx_name"]
+ self.txScore = uiMap["rank_panel.my_rank.tx_score"]
+ self.playerHeadCell = uiMap["rank_panel.my_rank.player_head_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.PLAYER_HEAD_CELL)
+ self.rewards = uiMap["rank_panel.my_rank.rewards"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT)
+ self.rewardCells = {}
+ for i = 1, 3 do
+ table.insert(self.rewardCells, uiMap["rank_panel.my_rank.rewards.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
+ end
+
+ self.txEmpty:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_BOSS_RUSH_DESC_8))
+ self.txCur:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_BTN_1))
+ self.txLast:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_BTN_2))
+ self.txReward:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_BTN_3))
+ self:refreshCountdown()
+
+ self.listRankComp:addInitCallback(function()
+ return "app/ui/activity/tourn_wave/cell/tourn_wave_rank_cell"
+ end)
+ self.listRankComp:addRefreshCallback(function(index, cell)
+ cell:refresh(index, self.rankDataList[index])
+ end)
+ self.listRewardComp:addInitCallback(function()
+ return "app/ui/activity/tourn_wave/cell/tourn_wave_rank_reward_cell"
+ end)
+ self.listRewardComp:addRefreshCallback(function(index, cell)
+ cell:refresh(index)
+ end)
+
+ self.btnHelp:addClickListener(function()
+ local params = {
+ type = GConst.TipsConst.HELP_TIPS_TYPE.ARENA,
+ title = I18N:getGlobalText(I18N.GlobalConst.COLLECTION_DESC_11),
+ desc = I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_HELP_2),
+ }
+ ModuleManager.TipsManager:showHelpTips(params)
+ end)
+ self.btnCur:addClickListener(function()
+ ModuleManager.TournWaveManager:reqRankList(DataManager.TournWaveData:getCurRankStep())
+ self:refresh(SHOW_TYPE.CUR_RANK)
+ end)
+ self.btnLast:addClickListener(function()
+ ModuleManager.TournWaveManager:reqRankList(DataManager.TournWaveData:getCurRankStep() - 1)
+ self:refresh(SHOW_TYPE.LAST_RANK)
+ end)
+ self.btnReward:addClickListener(function()
+ self:refresh(SHOW_TYPE.REWARD)
+ end)
+ self:bind(DataManager.TournWaveData, "isDirty", function()
+ self:refresh()
+ end)
+end
+
+function TournWaveRankComp:refresh(showType)
+ self.showType = showType or self.showType or SHOW_TYPE.CUR_RANK
+
+ self.btnCur:setSprite(GConst.ATLAS_PATH.COMMON, self.showType == SHOW_TYPE.CUR_RANK and "common_board_130" or "common_board_134")
+ self.btnLast:setSprite(GConst.ATLAS_PATH.COMMON, self.showType == SHOW_TYPE.LAST_RANK and "common_board_130" or "common_board_134")
+ self.btnReward:setSprite(GConst.ATLAS_PATH.COMMON, self.showType == SHOW_TYPE.REWARD and "common_board_130" or "common_board_134")
+
+ local curStep = DataManager.TournWaveData:getCurRankStep()
+
+ self.btnLast:setActive(curStep > 1)
+ self.btns:RefreshLayout()
+
+ if self.showType == SHOW_TYPE.CUR_RANK then
+ self:showRankList(curStep)
+ self:showSelfRank(curStep)
+ elseif self.showType == SHOW_TYPE.LAST_RANK then
+ local lastStep = curStep - 1
+ self:showRankList(lastStep)
+ self:showSelfRank(lastStep)
+ elseif self.showType == SHOW_TYPE.REWARD then
+ self:showRankReward()
+ self:showSelfRank(curStep)
+ end
+end
+
+-- 展示自己排名
+function TournWaveRankComp:showSelfRank(step)
+ local rank = DataManager.TournWaveData:getSelfRank(step)
+ local score = DataManager.TournWaveData:getSelfScore(step)
+
+ if score > 0 then
+ if RANK_IMG[rank] then
+ self.imgRank:setActive(true)
+ self.imgRank:setSprite(GConst.ATLAS_PATH.ACT_COMMON, RANK_IMG[rank])
+ self.txRank:setText(GConst.EMPTY_STRING)
+ else
+ self.imgRank:setActive(false)
+ self.txRank:setText(rank)
+ end
+ else
+ self.imgRank:setActive(false)
+ self.txRank:setText("--")
+ end
+ self.playerHeadCell:refresh()
+ self.txName:setText(DataManager.PlayerData:getNickname())
+ self.txScore:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_16)..":"..score)
+
+ local rewards = DataManager.TournWaveData:getRewardByRank(rank)
+ for index, cell in ipairs(self.rewardCells) do
+ if score > 0 and rewards[index] then
+ cell:setVisible(true)
+ cell:refreshByConfig(rewards[index])
+ if step ~= DataManager.TournWaveData:getCurRankStep() and DataManager.TournWaveData:isReachRankReward() then
+ cell.baseObject:addRedPoint(50, 50, 0.6)
+ cell:addClickListener(function()
+ ModuleManager.TournWaveManager:reqRankReward()
+ end)
+ else
+ cell.baseObject:removeRedPoint()
+ cell:addClickListener(nil)
+ end
+ else
+ cell:setVisible(false)
+ end
+ end
+ self.rewards:RefreshLayout()
+end
+
+-- 展示榜单
+function TournWaveRankComp:showRankList(step)
+ self.listRankComp:getBaseObject():setActive(true)
+ self.listRewardComp:getBaseObject():setActive(false)
+
+ self.rankDataList = DataManager.TournWaveData:getRankListData(step)
+ if self.rankDataList == nil then
+ self.rankDataList = {}
+ end
+ self.listRankComp:clearCells()
+ self.listRankComp:refillCells(#self.rankDataList)
+ self.txEmpty:setActive(#self.rankDataList <= 0)
+end
+
+-- 展示排行榜奖励
+function TournWaveRankComp:showRankReward()
+ self.listRankComp:getBaseObject():setActive(false)
+ self.listRewardComp:getBaseObject():setActive(true)
+ self.txEmpty:setActive(false)
+
+ self.rankIdList = DataManager.TournWaveData:getRankIdList()
+ self.listRewardComp:clearCells()
+ self.listRewardComp:refillCells(#self.rankIdList)
+end
+
+-- 刷新倒计时
+function TournWaveRankComp:refreshCountdown()
+ if self.countdownSid then
+ self.baseObject:unscheduleGlobal(self.countdownSid)
+ end
+
+ local str = DataManager.TournWaveData:isFinalDay() and I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_DESC_3) or I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_DESC_2)
+
+ self.txCountdown:setText(str .. Time:formatNumTimeStr(DataManager.TournWaveData:getCurRankStepRemainTime()))
+ self.countdownSid = self.baseObject:scheduleGlobal(function()
+ local time = DataManager.TournWaveData:getCurRankStepRemainTime()
+ if time >= 0 then
+ self.txCountdown:setText(str .. Time:formatNumTimeStr(time))
+ else
+ if self.showType == SHOW_TYPE.CUR_RANK then
+ ModuleManager.TournWaveManager:reqRankList(DataManager.TournWaveData:getCurRankStep())
+ elseif self.showType == SHOW_TYPE.LAST_RANK then
+ ModuleManager.TournWaveManager:reqRankList(DataManager.TournWaveData:getCurRankStep() - 1)
+ end
+ end
+ end, 1)
+end
+
+return TournWaveRankComp
\ No newline at end of file
diff --git a/lua/app/ui/activity/tourn_wave/tourn_wave_rank_comp.lua.meta b/lua/app/ui/activity/tourn_wave/tourn_wave_rank_comp.lua.meta
new file mode 100644
index 00000000..d996fef2
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave/tourn_wave_rank_comp.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: f1a089a3d69cb5c43954d024f28ce4e8
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/tourn_wave/tourn_wave_ui.lua b/lua/app/ui/activity/tourn_wave/tourn_wave_ui.lua
new file mode 100644
index 00000000..6e68d62b
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave/tourn_wave_ui.lua
@@ -0,0 +1,201 @@
+local TournWaveUI = class("TournWaveUI", BaseUI)
+
+local COMP_BOUNTY = "app/ui/activity/tourn_wave/tourn_wave_bounty_comp"
+local COMP_RANK = "app/ui/activity/tourn_wave/tourn_wave_rank_comp"
+local COMP_GIFT = "app/ui/activity/tourn_wave/tourn_wave_gift_comp"
+
+function TournWaveUI:isFullScreen()
+ return false
+end
+
+function TournWaveUI:getPrefabPath()
+ return "assets/prefabs/ui/activity/tourn_wave/tourn_wave_ui.prefab"
+end
+
+function TournWaveUI:onPressBackspace()
+ self:closeUI()
+end
+
+function TournWaveUI:onClose()
+ if self.compRank ~= nil then
+ self.compRank:refresh()
+ end
+ if self.countdownSid then
+ self.txCountdown:unscheduleGlobal(self.countdownSid)
+ end
+end
+
+function TournWaveUI:ctor(param)
+ if param then
+ self.panelType = param
+ else
+ self.panelType = GConst.TournWaveConst.PANEL_TYPE.BOUNTY -- 默认进入任务页签
+ end
+end
+
+function TournWaveUI:onLoadRootComplete()
+ local uiMap = self.root:genAllChildren()
+
+ -- 通用
+ self.txTitle = uiMap["tourn_wave_ui.common.img_title.tx_title"]
+ self.btnClose = uiMap["tourn_wave_ui.common.btn_close"]
+ self.bg = uiMap["tourn_wave_ui.common.bg"]
+ self.countdown = uiMap["tourn_wave_ui.common.countdown"]
+ self.txCountdown = uiMap["tourn_wave_ui.common.countdown.tx_countdown"]
+ -- 子界面
+ self.bountyPanel = uiMap["tourn_wave_ui.bounty_panel"]
+ self.rankPanel = uiMap["tourn_wave_ui.rank_panel"]
+ self.giftPanel = uiMap["tourn_wave_ui.gift_panel"]
+ -- 战令标签
+ self.btnBounty = uiMap["tourn_wave_ui.common.btns.btn_bounty"]
+ self.txBounty1 = uiMap["tourn_wave_ui.common.btns.btn_bounty.tx_btn"]
+ self.txBounty2 = uiMap["tourn_wave_ui.common.btns.btn_bounty.select.tx_select"]
+ self.selectBounty = uiMap["tourn_wave_ui.common.btns.btn_bounty.select"]
+ -- 排行榜标签
+ self.btnRank = uiMap["tourn_wave_ui.common.btns.btn_rank"]
+ self.txRank1 = uiMap["tourn_wave_ui.common.btns.btn_rank.tx_btn"]
+ self.txRank2 = uiMap["tourn_wave_ui.common.btns.btn_rank.select.tx_select"]
+ self.selectRank = uiMap["tourn_wave_ui.common.btns.btn_rank.select"]
+ -- 礼包标签
+ self.btnGift = uiMap["tourn_wave_ui.common.btns.btn_gift"]
+ self.txGift1 = uiMap["tourn_wave_ui.common.btns.btn_gift.tx_btn"]
+ self.txGift2 = uiMap["tourn_wave_ui.common.btns.btn_gift.select.tx_select"]
+ self.selectGift = uiMap["tourn_wave_ui.common.btns.btn_gift.select"]
+
+ self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_TITLE))
+ self.txBounty1:setText(I18N:getGlobalText(I18N.GlobalConst.REWARD_DESC))
+ self.txBounty2:setText(I18N:getGlobalText(I18N.GlobalConst.REWARD_DESC))
+ self.txRank1:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_5))
+ self.txRank2:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_5))
+ self.txGift1:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_DESC_4))
+ self.txGift2:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_DESC_4))
+
+ self.btnBounty:addClickListener(function()
+ self.panelType = GConst.TournWaveConst.PANEL_TYPE.BOUNTY
+ self:onRefresh()
+ end)
+ self.btnRank:addClickListener(function()
+ self.panelType = GConst.TournWaveConst.PANEL_TYPE.RANK
+ self:onRefresh()
+ end)
+ self.btnGift:addClickListener(function()
+ self.panelType = GConst.TournWaveConst.PANEL_TYPE.GIFT
+ self:onRefresh()
+ end)
+ self.btnClose:addClickListener(function()
+ self:closeUI()
+ end)
+ self:addEventListener(EventManager.CUSTOM_EVENT.ACTIVITY_TOURN_WAVE_END, function()
+ self:closeUI()
+ end)
+ self:bind(DataManager.TournWaveData, "isDirty", function()
+ -- 检查更新数据
+ if DataManager.TournWaveData:getIsInReset() and self.panelType == GConst.TournWaveConst.PANEL_TYPE.RANK then
+ self:onRefresh()
+ else
+ self:refreshRedPoint()
+ end
+ end)
+end
+
+function TournWaveUI:onRefresh()
+ -- 倒计时
+ if self.countdownSid then
+ self.txCountdown:unscheduleGlobal(self.countdownSid)
+ end
+ self.txCountdown:setText(Time:formatNumTimeStr(DataManager.TournWaveData:getEndRemainTime()))
+ self.countdownSid = self.txCountdown:scheduleGlobal(function()
+ local time = DataManager.TournWaveData:getEndRemainTime()
+ if time >= 0 then
+ self.txCountdown:setText(Time:formatNumTimeStr(time))
+ end
+ end, 1)
+
+ if self.panelType == GConst.TournWaveConst.PANEL_TYPE.BOUNTY then
+ self:showBountyInfo()
+ elseif self.panelType == GConst.TournWaveConst.PANEL_TYPE.RANK then
+ self:showRankInfo()
+ elseif self.panelType == GConst.TournWaveConst.PANEL_TYPE.GIFT then
+ self:showGiftInfo()
+ end
+ self:refreshRedPoint()
+end
+
+-- 刷新标签红点
+function TournWaveUI:refreshRedPoint()
+ if DataManager.TournWaveData:hasBountyRedPoint() then
+ self.btnBounty:addRedPoint(-75, -5, 0.6)
+ else
+ self.btnBounty:removeRedPoint()
+ end
+ if DataManager.TournWaveData:hasRankRedPoint() then
+ self.btnRank:addRedPoint(-75, -5, 0.6)
+ else
+ self.btnRank:removeRedPoint()
+ end
+ if DataManager.TournWaveData:hasGiftRedPoint() then
+ self.btnGift:addRedPoint(-75, -5, 0.6)
+ else
+ self.btnGift:removeRedPoint()
+ end
+end
+
+function TournWaveUI:showBountyInfo()
+ self.bountyPanel:setActive(true)
+ self.selectBounty:setActive(true)
+ self.rankPanel:setActive(false)
+ self.selectRank:setActive(false)
+ self.giftPanel:setActive(false)
+ self.selectGift:setActive(false)
+ self.countdown:setActive(true)
+ self.bg:setActive(true)
+
+ if not self.compBounty then
+ self.bountyPanel:initPrefabHelper()
+ self.bountyPanel:genAllChildren()
+ self.compBounty = self.bountyPanel:addLuaComponent(COMP_BOUNTY)
+ end
+
+ self.compBounty:refresh()
+end
+
+function TournWaveUI:showRankInfo()
+ self.bountyPanel:setActive(false)
+ self.selectBounty:setActive(false)
+ self.rankPanel:setActive(true)
+ self.selectRank:setActive(true)
+ self.giftPanel:setActive(false)
+ self.selectGift:setActive(false)
+ self.countdown:setActive(false)
+ self.bg:setActive(false)
+
+ ModuleManager.TournWaveManager:reqRankList(DataManager.TournWaveData:getCurRankStep())
+ if not self.compRank then
+ self.rankPanel:initPrefabHelper()
+ self.rankPanel:genAllChildren()
+ self.compRank = self.rankPanel:addLuaComponent(COMP_RANK)
+ end
+
+ self.compRank:refresh()
+end
+
+function TournWaveUI:showGiftInfo()
+ self.bountyPanel:setActive(false)
+ self.selectBounty:setActive(false)
+ self.rankPanel:setActive(false)
+ self.selectRank:setActive(false)
+ self.giftPanel:setActive(true)
+ self.selectGift:setActive(true)
+ self.countdown:setActive(true)
+ self.bg:setActive(false)
+
+ if not self.compGift then
+ self.giftPanel:initPrefabHelper()
+ self.giftPanel:genAllChildren()
+ self.compGift = self.giftPanel:addLuaComponent(COMP_GIFT)
+ end
+
+ self.compGift:refresh()
+end
+
+return TournWaveUI
\ No newline at end of file
diff --git a/lua/app/ui/activity/tourn_wave/tourn_wave_ui.lua.meta b/lua/app/ui/activity/tourn_wave/tourn_wave_ui.lua.meta
new file mode 100644
index 00000000..9a235a03
--- /dev/null
+++ b/lua/app/ui/activity/tourn_wave/tourn_wave_ui.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: c3c48b9494daada49a21717ce70dd4a8
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/main_city/cell/side_bar_tourn_arena_cell.lua b/lua/app/ui/main_city/cell/side_bar_tourn_arena_cell.lua
new file mode 100644
index 00000000..ece116e9
--- /dev/null
+++ b/lua/app/ui/main_city/cell/side_bar_tourn_arena_cell.lua
@@ -0,0 +1,46 @@
+local SideBarBaseCellComp = require "app/ui/main_city/cell/side_bar_base_cell"
+local SideBarTournArenaCell = class("SideBarTournArenaCell", SideBarBaseCellComp)
+
+function SideBarTournArenaCell:getModuleKey()
+ return ModuleManager.MODULE_KEY.ACTIVITY
+end
+
+function SideBarTournArenaCell:getIsOpen()
+ return DataManager.TournArenaData:isOpen() and DataManager.TournArenaData:isActiveTime()
+end
+
+function SideBarTournArenaCell:getSpineName()
+ return "ui_main_btn_act_fullmoon"
+end
+
+function SideBarTournArenaCell:onClick()
+ ModuleManager.TournArenaManager:showActMainUI()
+end
+
+function SideBarTournArenaCell:getIsShowRedPoint()
+ return DataManager.TournArenaData:hasEntryRedPoint()
+end
+
+function SideBarTournArenaCell:onRefresh()
+ self.timeBg:setVisible(true)
+ self:_refreshTime()
+end
+
+function SideBarTournArenaCell:updateTime()
+ if self:getIsOpen() then
+ self:_refreshTime()
+ else
+ self:closeBtn()
+ end
+end
+
+function SideBarTournArenaCell:_refreshTime()
+ local remainTime = DataManager.TournArenaData:getEndRemainTime()
+ if remainTime >= 0 then
+ self.timeTx:setText(GFunc.getTimeStr(remainTime))
+ else
+ self.timeTx:setText("00:00:00")
+ end
+end
+
+return SideBarTournArenaCell
\ No newline at end of file
diff --git a/lua/app/ui/main_city/cell/side_bar_tourn_arena_cell.lua.meta b/lua/app/ui/main_city/cell/side_bar_tourn_arena_cell.lua.meta
new file mode 100644
index 00000000..32cc2986
--- /dev/null
+++ b/lua/app/ui/main_city/cell/side_bar_tourn_arena_cell.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: fbea87ac611b43747bf41d2ca95b29cd
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/main_city/cell/side_bar_tourn_wave_cell.lua b/lua/app/ui/main_city/cell/side_bar_tourn_wave_cell.lua
new file mode 100644
index 00000000..66330b9b
--- /dev/null
+++ b/lua/app/ui/main_city/cell/side_bar_tourn_wave_cell.lua
@@ -0,0 +1,46 @@
+local SideBarBaseCellComp = require "app/ui/main_city/cell/side_bar_base_cell"
+local SideBarTournWaveCell = class("SideBarTournWaveCell", SideBarBaseCellComp)
+
+function SideBarTournWaveCell:getModuleKey()
+ return ModuleManager.MODULE_KEY.ACTIVITY
+end
+
+function SideBarTournWaveCell:getIsOpen()
+ return DataManager.TournWaveData:isOpen() and DataManager.TournWaveData:isActiveTime()
+end
+
+function SideBarTournWaveCell:getSpineName()
+ return "ui_main_btn_act_fullmoon"
+end
+
+function SideBarTournWaveCell:onClick()
+ ModuleManager.TournWaveManager:showActMainUI()
+end
+
+function SideBarTournWaveCell:getIsShowRedPoint()
+ return DataManager.TournWaveData:hasEntryRedPoint()
+end
+
+function SideBarTournWaveCell:onRefresh()
+ self.timeBg:setVisible(true)
+ self:_refreshTime()
+end
+
+function SideBarTournWaveCell:updateTime()
+ if self:getIsOpen() then
+ self:_refreshTime()
+ else
+ self:closeBtn()
+ end
+end
+
+function SideBarTournWaveCell:_refreshTime()
+ local remainTime = DataManager.TournWaveData:getEndRemainTime()
+ if remainTime >= 0 then
+ self.timeTx:setText(GFunc.getTimeStr(remainTime))
+ else
+ self.timeTx:setText("00:00:00")
+ end
+end
+
+return SideBarTournWaveCell
\ No newline at end of file
diff --git a/lua/app/ui/main_city/cell/side_bar_tourn_wave_cell.lua.meta b/lua/app/ui/main_city/cell/side_bar_tourn_wave_cell.lua.meta
new file mode 100644
index 00000000..22d57ac9
--- /dev/null
+++ b/lua/app/ui/main_city/cell/side_bar_tourn_wave_cell.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 2a27a3856b8ae854a867d2264ee54a70
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/userdata/activity/fourteen_day/fourteen_day_data.lua b/lua/app/userdata/activity/fourteen_day/fourteen_day_data.lua
index 0767ba9e..690dc809 100644
--- a/lua/app/userdata/activity/fourteen_day/fourteen_day_data.lua
+++ b/lua/app/userdata/activity/fourteen_day/fourteen_day_data.lua
@@ -624,7 +624,7 @@ end
function FourteenDayData:getGiftRemainTime(giftId)
if self:isFreeGift(giftId) then
local giftData = DataManager.ShopData:getActGiftDetailData(PayManager.PURCHARSE_TYPE.ACT_GIFT, giftId)
- if giftData and giftData.latest_buy_at then
+ if giftData and giftData.buy_count > 0 and giftData.latest_buy_at then
if Time:getBeginningOfOneDay(Time:getServerTime()) == Time:getBeginningOfOneDay(giftData.latest_buy_at // 1000) then
return 0
end
diff --git a/lua/app/userdata/activity/tourn_arena.meta b/lua/app/userdata/activity/tourn_arena.meta
new file mode 100644
index 00000000..5e1c9e09
--- /dev/null
+++ b/lua/app/userdata/activity/tourn_arena.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a333fbe6fb2c2ed43aac6d319fb913fa
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/lua/app/userdata/activity/tourn_arena/tourn_arena_data.lua b/lua/app/userdata/activity/tourn_arena/tourn_arena_data.lua
new file mode 100644
index 00000000..ffa73f26
--- /dev/null
+++ b/lua/app/userdata/activity/tourn_arena/tourn_arena_data.lua
@@ -0,0 +1,540 @@
+local TournArenaData = class("TournArenaData", BaseData)
+
+function TournArenaData:ctor()
+ self.data.isDirty = false
+
+ self.bountyLevel = 1
+ self.bountyExp = 0
+ self.bountyCollected = {}
+ self.rankStep = 1
+ self.rankStepEndTime = 0
+ self.rankCollected = {}
+end
+
+function TournArenaData:clear()
+ DataManager:unregisterTryOpenFunc("TournArenaData")
+ DataManager:unregisterCrossDayFunc("TournArenaData")
+end
+
+-- 设置活动数据
+function TournArenaData:setActStatus(data)
+ data = data or GConst.EMPTY_TABLE
+
+ self.actId = data.id
+ self.startTime = GFunc.formatTimeStep(data.start_at)
+ self.endTime = GFunc.formatTimeStep(data.end_at)
+
+ if EDITOR_MODE then
+ Logger.logHighlight("竞技场锦标赛活动开启时间:")
+ Logger.printTable(data)
+ end
+
+ if not self:isOpen() then
+ -- 活动开启
+ DataManager:registerTryOpenFunc("TournArenaData", function()
+ if not self:isOpen() then
+ return
+ end
+ if not self:isActiveTime() then
+ return
+ end
+
+ DataManager:unregisterTryOpenFunc("TournArenaData")
+ ModuleManager.TournArenaManager:reqActData()
+ end)
+ end
+end
+
+-- 获取活动数据成功
+function TournArenaData:onGetActData(data)
+ data = data or GConst.EMPTY_TABLE
+ if EDITOR_MODE then
+ Logger.logHighlight("竞技场锦标赛活动数据:")
+ Logger.printTable(data)
+ end
+
+ -- 战令
+ self.bountyLevel = data.level
+ self.bountyExp = data.exp
+ self.bountyCollected = data.collected
+ -- 排行榜
+ self.rankStep = data.present_turn
+ self.rankStepEndTime = GFunc.formatTimeStep(data.turn_end_at)
+ self.rankCollected = data.rank_reward_claimed
+
+ -- 跨天
+ DataManager:registerCrossDayFunc("TournArenaData", function()
+ if not self:isOpen() then
+ return
+ end
+ if not self:isActiveTime() then
+ return
+ end
+
+ self.ranks = nil
+ self:setInReset(true)
+ self:setDirty()
+ end)
+
+ self:setDirty()
+end
+
+function TournArenaData:setInReset(isInReset)
+ self.isInReset = isInReset
+end
+
+function TournArenaData:getIsInReset()
+ return self.isInReset
+end
+
+function TournArenaData:setDirty()
+ self.data.isDirty = not self.data.isDirty
+end
+
+function TournArenaData:isOpen()
+ if GFunc.isShenhe() then
+ return false
+ end
+ if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.ACTIVITY, true) then
+ return false
+ end
+ return true
+end
+
+-- 是否在活动配置时间内
+function TournArenaData:isActiveTime()
+ if self.startTime == nil or self.startTime <= 0 then
+ return false
+ end
+ if self.endTime == nil or self.endTime <= 0 then
+ return false
+ end
+ return Time:getServerTime() >= self.startTime and Time:getServerTime() <= self.endTime
+end
+
+-- 获取活动开启剩余时间(秒)
+function TournArenaData:getStartRemainTime()
+ if self.startTime == nil or self.startTime <= 0 then
+ return 0
+ end
+ return self.startTime - Time:getServerTime()
+end
+
+-- 获取活动结束剩余时间(秒)
+function TournArenaData:getEndRemainTime()
+ if self.endTime == nil or self.endTime <= 0 then
+ return 0
+ end
+ return self.endTime - Time:getServerTime()
+end
+
+-- 当前为活动第几天
+function TournArenaData:getActDay()
+ local days = Time:getDistanceDays(self.startTime)
+ if days < 0 then
+ days = -days
+ end
+ return days + 1
+end
+
+-- 是否有入口红点
+function TournArenaData:hasEntryRedPoint()
+ return self:hasBountyRedPoint() or self:hasRankRedPoint() or self:hasGiftRedPoint()
+end
+
+-- 战令--------------------------------------------------------------------------------------------------
+
+-- 是否有战令红点
+function TournArenaData:hasBountyRedPoint()
+ if self:getFirstCanGetBountyRewardLevel() ~= nil then
+ return true
+ end
+
+ return false
+end
+
+-- 获取首个可领取奖励的战令等级
+function TournArenaData:getFirstCanGetBountyRewardLevel()
+ local curLevel = self:getBountyLevel()
+
+ for level, data in ipairs(self:getBountyIdList()) do
+ if level > curLevel then
+ break
+ end
+
+ if self:canGetBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE) then
+ return true
+ end
+ if self:canGetBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1) then
+ return true
+ end
+ if self:canGetBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2) then
+ return true
+ end
+ end
+
+ return nil
+end
+
+--
+function TournArenaData:getBountyIdList()
+ if not self.bountyIdList then
+ self.bountyIdList = GFunc.getTable(DataManager:getActivityBountyLevelByActId(self.actId) or {})
+ table.sort(self.bountyIdList, function(a, b)
+ return a < b
+ end)
+ end
+ return self.bountyIdList
+end
+
+-- 获取对应等级的配置
+function TournArenaData:getBountyCfgByLevel(level)
+ return ConfigManager:getConfig("activity_bounty_level")[self:getBountyIdList()[level]]
+end
+
+-- 获取战令档位礼包配置
+function TournArenaData:getBountyGradeGiftCfg(gradeType)
+ if gradeType == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1 then
+ return DataManager.ShopData:getActGiftConfig()[GConst.TournArenaConst.BOUNTY_GIFT_ID_1]
+ elseif gradeType == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2 then
+ return DataManager.ShopData:getActGiftConfig()[GConst.TournArenaConst.BOUNTY_GIFT_ID_2]
+ end
+end
+
+-- 战令档位是否已解锁
+function TournArenaData:isBountyGradeUnlock(grade)
+ if grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE then
+ return true
+ elseif grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1 then
+ return DataManager.ShopData:getGiftBoughtNum(PayManager.PURCHARSE_TYPE.ACT_GIFT, GConst.TournArenaConst.BOUNTY_GIFT_ID_1) > 0
+ elseif grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2 then
+ return DataManager.ShopData:getGiftBoughtNum(PayManager.PURCHARSE_TYPE.ACT_GIFT, GConst.TournArenaConst.BOUNTY_GIFT_ID_2) > 0
+ end
+ return false
+end
+
+-- 战令最大等级
+function TournArenaData:getBountyMaxLevel()
+ return #self:getBountyIdList()
+end
+
+-- 获取当前战令等级
+function TournArenaData:getBountyLevel()
+ if self.bountyLevel <= self:getBountyMaxLevel() then
+ return self.bountyLevel
+ else
+ return self:getBountyMaxLevel()
+ end
+end
+
+-- 获取当前等级战令积分
+function TournArenaData:getBountyLevelScore()
+ return self.bountyExp
+end
+
+-- 获取当前总积分
+function TournArenaData:getBountyTotalScore()
+ local total = self:getBountyLevelScore()
+
+ for l = 1, self:getBountyLevel() - 1 do
+ total = total + (self:getBountyCfgByLevel(l).exp or 0)
+ end
+
+ return total
+end
+
+-- 获取等级所需总积分
+function TournArenaData:getLevelTotalScore(level)
+ local total = 0
+
+ if level > 1 then
+ for l = 1, level - 1 do
+ total = total + (self:getBountyCfgByLevel(l).exp or 0)
+ end
+ end
+
+ return total
+end
+
+-- 获取当前升级所需总积分
+function TournArenaData:getBountyUpgradeScore()
+ return self:getBountyCfgByLevel(self:getBountyLevel()).exp or 0
+end
+
+-- 是否满足购买战令等级的条件
+function TournArenaData:canBuyBountyLevel()
+ if self:getBountyLevel() >= self:getBountyMaxLevel() then
+ return false
+ end
+
+ local lastDay = Time:getDistanceDays(self.endTime)
+ if lastDay < 0 then
+ lastDay = -lastDay
+ end
+ return self:getActDay() >= lastDay
+end
+
+-- 购买战令等级的消耗
+function TournArenaData:getBuyBountyLevelCost()
+ return GFunc.getConstReward("activity_bounty_cost")
+end
+
+-- 获取战令档位奖励
+function TournArenaData:getBountyGradeReward(level, grade)
+ local cfg = self:getBountyCfgByLevel(level)
+ local result
+ if cfg then
+ if grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE then
+ result = cfg.reward
+ elseif grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1 then
+ result = cfg.reward_pro
+ elseif grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2 then
+ result = cfg.reward_pro_max
+ end
+ end
+ return result
+end
+
+-- 战令奖励可领取
+function TournArenaData:canGetBountyReward(level, grade)
+ return self:isReachBountyReward(level, grade) and not self:isReceivedBountyReward(level, grade)
+end
+
+-- 战令奖励是否满足领取条件
+function TournArenaData:isReachBountyReward(level, grade)
+ local curLevel = self:getBountyLevel()
+ if curLevel >= level then
+ return self:isBountyGradeUnlock(grade)
+ else
+ return false
+ end
+end
+
+-- 战令奖励是否已领取
+function TournArenaData:isReceivedBountyReward(level, grade)
+ local id = self:getBountyIdList()[level]
+ if self.bountyCollected[id] == nil then
+ return false
+ end
+
+ if grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE then
+ return self.bountyCollected[id].normal
+ elseif grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1 then
+ return self.bountyCollected[id].superior
+ elseif grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2 then
+ return self.bountyCollected[id].superior_max
+ end
+end
+
+-- 战令奖励领取成功
+function TournArenaData:onReceivedBountyReward(successMap)
+ for id, grade in pairs(successMap) do
+ if self.bountyCollected[id] == nil then
+ self.bountyCollected[id] = {}
+ end
+
+ if grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE then
+ self.bountyCollected[id].normal = true
+ elseif grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1 then
+ self.bountyCollected[id].superior = true
+ elseif grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2 then
+ self.bountyCollected[id].superior_max = true
+ end
+ end
+
+ self:setDirty()
+end
+
+-- 解锁战令等级成功
+function TournArenaData:onBoughtBountyLevel()
+ self.bountyLevel = self.bountyLevel + 1
+ self:setDirty()
+end
+
+-- 排行榜--------------------------------------------------------------------------------------------------
+
+-- 是否有排行榜红点
+function TournArenaData:hasRankRedPoint()
+ for rank, id in ipairs(self:getRankIdList()) do
+ if self:isReachRankReward(rank) and not self:isReceivedRankReward(rank) then
+ return true
+ end
+ end
+
+ return false
+end
+
+--
+function TournArenaData:getRankIdList()
+ if not self.rankIdList then
+ self.rankIdList = GFunc.getTable(DataManager:getActivityRankByActId(self.actId) or {})
+ table.sort(self.rankIdList, function(a, b)
+ return a < b
+ end)
+ end
+ return self.rankIdList
+end
+
+-- 获取排行榜的配置
+function TournArenaData:getRankCfgByIndex(index)
+ return ConfigManager:getConfig("activity_rank")[self:getRankIdList()[index]]
+end
+
+-- 是否是最后一次分组
+function TournArenaData:isFinalDay()
+ return self:getEndRemainTime() <= 86400
+end
+
+-- 获取当前排行榜阶段
+function TournArenaData:getCurRankStep()
+ return self.rankStep
+end
+
+-- 获取排名相应的奖励
+function TournArenaData:getRewardByRank(rank)
+ for index, id in ipairs(self:getRankIdList()) do
+ local cfg = ConfigManager:getConfig("activity_rank")[id]
+ if rank >= cfg.ranking[1] and rank <= cfg.ranking[2] then
+ return cfg.reward
+ end
+ end
+ return nil
+end
+
+-- 获取当前排行榜阶段剩余时间
+function TournArenaData:getCurRankStepRemainTime()
+ return self.rankStepEndTime - Time:getServerTime()
+end
+
+-- 获取排行榜数据
+function TournArenaData:getRankListData(step)
+ if self.ranks == nil then
+ return nil
+ end
+
+ return self.ranks[step] and self.ranks[step].ranks or {}
+end
+
+-- 获取自己的排名
+function TournArenaData:getSelfRank(step)
+ if self.ranks == nil or self.ranks[step] == nil then
+ return 0
+ end
+
+ return self.ranks[step].ownRank
+end
+
+-- 获取自己的积分
+function TournArenaData:getSelfScore(step)
+ if self.ranks == nil or self.ranks[step] == nil then
+ return 0
+ end
+
+ return self.ranks[step].ownSorce
+end
+
+-- 是否满足段位奖励条件
+function TournArenaData:isReachRankReward()
+ if self:getCurRankStep() == 1 then
+ return false
+ end
+
+ local lastRank = self:getSelfRank(self:getCurRankStep() - 1)
+ if lastRank and lastRank <= 0 then
+ return false
+ end
+ return not self:isReceivedRankReward()
+end
+
+-- 是否已领取段位奖励
+function TournArenaData:isReceivedRankReward()
+ if self:getCurRankStep() == 1 then
+ return false
+ end
+
+ local received = self.rankCollected[self:getCurRankStep() - 1]
+ return received ~= nil and received or false
+end
+
+-- 获取排行榜数据成功
+function TournArenaData:onGetRankData(step, ranks, score, ownRank)
+ if self.ranks == nil then
+ self.ranks = {}
+ end
+ self.ranks[step] = {ownRank = ownRank, ownSorce = score, ranks = ranks}
+
+ self:setDirty()
+end
+
+-- 领取排名奖励成功
+function TournArenaData:onReceivedRankReward()
+ self.rankCollected[self:getCurRankStep() - 1] = true
+
+ self:setDirty()
+end
+
+
+-- 礼包---------------------------------------------------------------------------------------------------
+
+-- 是否有礼包红点
+function TournArenaData:hasGiftRedPoint()
+ local ids = GConst.TournArenaConst.GIFT_IDS
+ for index, id in pairs(ids) do
+ if self:isFreeGift(id) and self:getGiftRemainTime(id) > 0 then
+ return true
+ end
+ end
+
+ return false
+end
+
+-- 获取礼包配置
+function TournArenaData:getGiftCfg(giftId)
+ return DataManager.ShopData:getActGiftConfig()[giftId]
+end
+
+-- 是否是免费礼包
+function TournArenaData:isFreeGift(id)
+ return DataManager.ShopData:getActGiftConfig()[id].recharge_id == nil
+end
+
+-- 获取礼包id列表
+function TournArenaData:getGiftIdsSort()
+ local result = {}
+ local ids = GConst.TournArenaConst.GIFT_IDS
+ for index, id in ipairs(ids) do
+ local sort = id + 10000000000
+
+ if self:isFreeGift(id) then
+ sort = sort - 10000000
+ end
+
+ if self:getGiftRemainTime(id) > 0 then
+ sort = sort - 10000
+ end
+ table.insert(result, {id = id, sort = sort})
+ end
+
+ table.sort(result, function (a, b)
+ return a.sort < b.sort
+ end)
+
+ return result
+end
+
+-- 礼包剩余购买次数
+function TournArenaData:getGiftRemainTime(giftId)
+ if self:isFreeGift(giftId) then
+ local giftData = DataManager.ShopData:getActGiftDetailData(PayManager.PURCHARSE_TYPE.ACT_GIFT, giftId)
+ if giftData and giftData.buy_count > 0 and giftData.latest_buy_at then
+ if Time:getBeginningOfOneDay(Time:getServerTime()) == Time:getBeginningOfOneDay(giftData.latest_buy_at // 1000) then
+ return 0
+ end
+ end
+ return 1
+ else
+ return DataManager.ShopData:getGiftRemainBuyNum(giftId) or 0
+ end
+end
+
+return TournArenaData
\ No newline at end of file
diff --git a/lua/app/userdata/activity/tourn_arena/tourn_arena_data.lua.meta b/lua/app/userdata/activity/tourn_arena/tourn_arena_data.lua.meta
new file mode 100644
index 00000000..a253e759
--- /dev/null
+++ b/lua/app/userdata/activity/tourn_arena/tourn_arena_data.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: c33e1d5bdb494e84cab9ccd418e3083f
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/userdata/activity/tourn_wave.meta b/lua/app/userdata/activity/tourn_wave.meta
new file mode 100644
index 00000000..0b8cef7c
--- /dev/null
+++ b/lua/app/userdata/activity/tourn_wave.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8ef93c36d00ed70449ca5eddabc0d378
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/lua/app/userdata/activity/tourn_wave/tourn_wave_data.lua b/lua/app/userdata/activity/tourn_wave/tourn_wave_data.lua
new file mode 100644
index 00000000..8ec145af
--- /dev/null
+++ b/lua/app/userdata/activity/tourn_wave/tourn_wave_data.lua
@@ -0,0 +1,571 @@
+local TournWaveData = class("TournWaveData", BaseData)
+
+function TournWaveData:ctor()
+ self.data.isDirty = false
+
+ self.bountyLevel = 1
+ self.bountyExp = 0
+ self.bountyCollected = {}
+ self.rankStep = 1
+ self.rankStepEndTime = 0
+ self.rankCollected = {}
+end
+
+function TournWaveData:clear()
+ DataManager:unregisterTryOpenFunc("TournWaveData")
+ DataManager:unregisterCrossDayFunc("TournWaveData")
+end
+
+-- 设置活动数据
+function TournWaveData:setActStatus(data)
+ data = data or GConst.EMPTY_TABLE
+
+ self.actId = data.id
+ self.startTime = GFunc.formatTimeStep(data.start_at)
+ self.endTime = GFunc.formatTimeStep(data.end_at)
+
+ if EDITOR_MODE then
+ Logger.logHighlight("波次锦标赛活动开启时间:")
+ Logger.printTable(data)
+ end
+
+ if not self:isOpen() then
+ -- 活动开启
+ DataManager:registerTryOpenFunc("TournWaveData", function()
+ if not self:isOpen() then
+ return
+ end
+ if not self:isActiveTime() then
+ return
+ end
+
+ DataManager:unregisterTryOpenFunc("TournWaveData")
+ ModuleManager.TournWaveManager:reqActData()
+ end)
+ end
+end
+
+-- 获取活动数据成功
+function TournWaveData:onGetActData(data)
+ data = data or GConst.EMPTY_TABLE
+ if EDITOR_MODE then
+ Logger.logHighlight("波次锦标赛活动数据:")
+ Logger.printTable(data)
+ end
+
+ -- 战令
+ self.bountyLevel = data.level
+ self.bountyExp = data.exp
+ self.bountyCollected = data.collected
+ -- 排行榜
+ self.rankStep = data.present_turn
+ self.rankStepEndTime = GFunc.formatTimeStep(data.turn_end_at)
+ self.rankCollected = data.rank_reward_claimed
+
+ -- 跨天
+ DataManager:registerCrossDayFunc("TournWaveData", function()
+ if not self:isOpen() then
+ return
+ end
+ if not self:isActiveTime() then
+ return
+ end
+
+ self.ranks = nil
+ self:setInReset(true)
+ self:initTaskListener()
+ self:setDirty()
+ end)
+
+ self:initTaskListener()
+ self:setDirty()
+end
+
+function TournWaveData:initTaskListener()
+ if not self:isOpen() then
+ return
+ end
+ if not self:isActiveTime() then
+ ModuleManager.TaskManager:unRegisterAllModuleTask("TournWaveData")
+ return
+ end
+
+ ModuleManager.TaskManager:registerTask("TournWaveData", GConst.TaskConst.TASK_TYPE.X_BATTLE_PASS_WAVE, function(count)
+ self:addWaveCount(count)
+ end)
+end
+
+function TournWaveData:setInReset(isInReset)
+ self.isInReset = isInReset
+end
+
+function TournWaveData:getIsInReset()
+ return self.isInReset
+end
+
+function TournWaveData:setDirty()
+ self.data.isDirty = not self.data.isDirty
+end
+
+function TournWaveData:isOpen()
+ if GFunc.isShenhe() then
+ return false
+ end
+ if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.ACTIVITY, true) then
+ return false
+ end
+ return true
+end
+
+-- 是否在活动配置时间内
+function TournWaveData:isActiveTime()
+ if self.startTime == nil or self.startTime <= 0 then
+ return false
+ end
+ if self.endTime == nil or self.endTime <= 0 then
+ return false
+ end
+ return Time:getServerTime() >= self.startTime and Time:getServerTime() <= self.endTime
+end
+
+-- 获取活动开启剩余时间(秒)
+function TournWaveData:getStartRemainTime()
+ if self.startTime == nil or self.startTime <= 0 then
+ return 0
+ end
+ return self.startTime - Time:getServerTime()
+end
+
+-- 获取活动结束剩余时间(秒)
+function TournWaveData:getEndRemainTime()
+ if self.endTime == nil or self.endTime <= 0 then
+ return 0
+ end
+ return self.endTime - Time:getServerTime()
+end
+
+-- 当前为活动第几天
+function TournWaveData:getActDay()
+ local days = Time:getDistanceDays(self.startTime)
+ if days < 0 then
+ days = -days
+ end
+ return days + 1
+end
+
+-- 是否有入口红点
+function TournWaveData:hasEntryRedPoint()
+ return self:hasBountyRedPoint() or self:hasRankRedPoint() or self:hasGiftRedPoint()
+end
+
+-- 战令--------------------------------------------------------------------------------------------------
+
+-- 是否有战令红点
+function TournWaveData:hasBountyRedPoint()
+ if self:getFirstCanGetBountyRewardLevel() ~= nil then
+ return true
+ end
+
+ return false
+end
+
+-- 获取首个可领取奖励的战令等级
+function TournWaveData:getFirstCanGetBountyRewardLevel()
+ local curLevel = self:getBountyLevel()
+
+ for level, data in ipairs(self:getBountyIdList()) do
+ if level > curLevel then
+ break
+ end
+
+ if self:canGetBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE) then
+ return true
+ end
+ if self:canGetBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1) then
+ return true
+ end
+ if self:canGetBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2) then
+ return true
+ end
+ end
+
+ return nil
+end
+
+--
+function TournWaveData:getBountyIdList()
+ if not self.bountyIdList then
+ self.bountyIdList = GFunc.getTable(DataManager:getActivityBountyLevelByActId(self.actId) or {})
+ table.sort(self.bountyIdList, function(a, b)
+ return a < b
+ end)
+ end
+ return self.bountyIdList
+end
+
+-- 获取对应等级的配置
+function TournWaveData:getBountyCfgByLevel(level)
+ return ConfigManager:getConfig("activity_bounty_level")[self:getBountyIdList()[level]]
+end
+
+-- 获取战令档位礼包配置
+function TournWaveData:getBountyGradeGiftCfg(gradeType)
+ if gradeType == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1 then
+ return DataManager.ShopData:getActGiftConfig()[GConst.TournWaveConst.BOUNTY_GIFT_ID_1]
+ elseif gradeType == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2 then
+ return DataManager.ShopData:getActGiftConfig()[GConst.TournWaveConst.BOUNTY_GIFT_ID_2]
+ end
+end
+
+-- 战令档位是否已解锁
+function TournWaveData:isBountyGradeUnlock(grade)
+ if grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE then
+ return true
+ elseif grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1 then
+ return DataManager.ShopData:getGiftBoughtNum(PayManager.PURCHARSE_TYPE.ACT_GIFT, GConst.TournWaveConst.BOUNTY_GIFT_ID_1) > 0
+ elseif grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2 then
+ return DataManager.ShopData:getGiftBoughtNum(PayManager.PURCHARSE_TYPE.ACT_GIFT, GConst.TournWaveConst.BOUNTY_GIFT_ID_2) > 0
+ end
+ return false
+end
+
+-- 战令最大等级
+function TournWaveData:getBountyMaxLevel()
+ return #self:getBountyIdList()
+end
+
+-- 获取当前战令等级
+function TournWaveData:getBountyLevel()
+ if self.bountyLevel <= self:getBountyMaxLevel() then
+ return self.bountyLevel
+ else
+ return self:getBountyMaxLevel()
+ end
+end
+
+-- 获取当前等级战令积分
+function TournWaveData:getBountyLevelScore()
+ return self.bountyExp
+end
+
+-- 获取当前总波次
+function TournWaveData:getBountyTotalScore()
+ local total = self:getBountyLevelScore()
+
+ for l = 1, self:getBountyLevel() - 1 do
+ total = total + (self:getBountyCfgByLevel(l).exp or 0)
+ end
+
+ return total
+end
+
+-- 获取等级所需总积分
+function TournWaveData:getLevelTotalScore(level)
+ local total = 0
+
+ if level > 1 then
+ for l = 1, level - 1 do
+ total = total + (self:getBountyCfgByLevel(l).exp or 0)
+ end
+ end
+
+ return total
+end
+
+-- 获取当前升级所需总积分
+function TournWaveData:getBountyUpgradeScore()
+ return self:getBountyCfgByLevel(self:getBountyLevel()).exp or 0
+end
+
+-- 是否满足购买战令等级的条件
+function TournWaveData:canBuyBountyLevel()
+ if self:getBountyLevel() >= self:getBountyMaxLevel() then
+ return false
+ end
+
+ local lastDay = Time:getDistanceDays(self.endTime)
+ if lastDay < 0 then
+ lastDay = -lastDay
+ end
+ return self:getActDay() >= lastDay
+end
+
+-- 购买战令等级的消耗
+function TournWaveData:getBuyBountyLevelCost()
+ return GFunc.getConstReward("activity_bounty_cost")
+end
+
+-- 获取战令档位奖励
+function TournWaveData:getBountyGradeReward(level, grade)
+ local cfg = self:getBountyCfgByLevel(level)
+ local result
+ if cfg then
+ if grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE then
+ result = cfg.reward
+ elseif grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1 then
+ result = cfg.reward_pro
+ elseif grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2 then
+ result = cfg.reward_pro_max
+ end
+ end
+ return result
+end
+
+-- 战令奖励可领取
+function TournWaveData:canGetBountyReward(level, grade)
+ return self:isReachBountyReward(level, grade) and not self:isReceivedBountyReward(level, grade)
+end
+
+-- 战令奖励是否满足领取条件
+function TournWaveData:isReachBountyReward(level, grade)
+ local curLevel = self:getBountyLevel()
+ if curLevel >= level then
+ return self:isBountyGradeUnlock(grade)
+ else
+ return false
+ end
+end
+
+-- 战令奖励是否已领取
+function TournWaveData:isReceivedBountyReward(level, grade)
+ local id = self:getBountyIdList()[level]
+ if self.bountyCollected[id] == nil then
+ return false
+ end
+
+ if grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE then
+ return self.bountyCollected[id].normal
+ elseif grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1 then
+ return self.bountyCollected[id].superior
+ elseif grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2 then
+ return self.bountyCollected[id].superior_max
+ end
+end
+
+-- 战令奖励领取成功
+function TournWaveData:onReceivedBountyReward(successMap)
+ Logger.logHighlight("战令奖励领取成功")
+ Logger.printTable(successMap)
+ for id, grade in pairs(successMap) do
+ if self.bountyCollected[id] == nil then
+ self.bountyCollected[id] = {}
+ end
+
+ if grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE then
+ self.bountyCollected[id].normal = true
+ elseif grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1 then
+ self.bountyCollected[id].superior = true
+ elseif grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2 then
+ self.bountyCollected[id].superior_max = true
+ end
+ end
+
+ self:setDirty()
+end
+
+-- 解锁战令等级成功
+function TournWaveData:onBoughtBountyLevel()
+ self.bountyLevel = self.bountyLevel + 1
+ self:setDirty()
+end
+
+-- 战令波次改变
+function TournWaveData:addWaveCount(count)
+ self.bountyExp = self.bountyExp + count
+
+ local upExp = self:getBountyUpgradeScore()
+ if upExp > 0 and self.bountyExp >= upExp then
+ self.bountyExp = self.bountyExp - upExp
+ self.bountyLevel = self.bountyLevel + 1
+ end
+
+ self:setDirty()
+end
+
+-- 排行榜--------------------------------------------------------------------------------------------------
+
+-- 是否有排行榜红点
+function TournWaveData:hasRankRedPoint()
+ for rank, id in ipairs(self:getRankIdList()) do
+ if self:isReachRankReward(rank) and not self:isReceivedRankReward(rank) then
+ return true
+ end
+ end
+
+ return false
+end
+
+--
+function TournWaveData:getRankIdList()
+ if not self.rankIdList then
+ self.rankIdList = GFunc.getTable(DataManager:getActivityRankByActId(self.actId) or {})
+ table.sort(self.rankIdList, function(a, b)
+ return a < b
+ end)
+ end
+ return self.rankIdList
+end
+
+-- 获取排行榜的配置
+function TournWaveData:getRankCfgByIndex(index)
+ return ConfigManager:getConfig("activity_rank")[self:getRankIdList()[index]]
+end
+
+-- 是否是最后一次分组
+function TournWaveData:isFinalDay()
+ return self:getEndRemainTime() <= 86400
+end
+
+-- 获取当前排行榜阶段
+function TournWaveData:getCurRankStep()
+ return self.rankStep
+end
+
+-- 获取排名相应的奖励
+function TournWaveData:getRewardByRank(rank)
+ for index, id in ipairs(self:getRankIdList()) do
+ local cfg = ConfigManager:getConfig("activity_rank")[id]
+ if rank >= cfg.ranking[1] and rank <= cfg.ranking[2] then
+ return cfg.reward
+ end
+ end
+ return nil
+end
+
+-- 获取当前排行榜阶段剩余时间
+function TournWaveData:getCurRankStepRemainTime()
+ return self.rankStepEndTime - Time:getServerTime()
+end
+
+-- 获取排行榜数据
+function TournWaveData:getRankListData(step)
+ if self.ranks == nil then
+ return nil
+ end
+
+ return self.ranks[step] and self.ranks[step].ranks or {}
+end
+
+-- 获取自己的排名
+function TournWaveData:getSelfRank(step)
+ if self.ranks == nil or self.ranks[step] == nil then
+ return 0
+ end
+
+ return self.ranks[step].ownRank
+end
+
+-- 获取自己的积分
+function TournWaveData:getSelfScore(step)
+ if self.ranks == nil or self.ranks[step] == nil then
+ return 0
+ end
+
+ return self.ranks[step].ownSorce
+end
+
+-- 是否满足段位奖励条件
+function TournWaveData:isReachRankReward()
+ if self:getCurRankStep() == 1 then
+ return false
+ end
+
+ local lastRank = self:getSelfRank(self:getCurRankStep() - 1)
+ if lastRank and lastRank <= 0 then
+ return false
+ end
+ return not self:isReceivedRankReward()
+end
+
+-- 是否已领取段位奖励
+function TournWaveData:isReceivedRankReward()
+ if self:getCurRankStep() == 1 then
+ return false
+ end
+
+ local received = self.rankCollected[self:getCurRankStep() - 1]
+ return received ~= nil and received or false
+end
+
+-- 获取排行榜数据成功
+function TournWaveData:onGetRankData(step, ranks, score, ownRank)
+ if self.ranks == nil then
+ self.ranks = {}
+ end
+ self.ranks[step] = {ownRank = ownRank, ownSorce = score, ranks = ranks}
+
+ self:setDirty()
+end
+
+-- 领取排名奖励成功
+function TournWaveData:onReceivedRankReward()
+ self.rankCollected[self:getCurRankStep() - 1] = true
+
+ self:setDirty()
+end
+
+
+-- 礼包---------------------------------------------------------------------------------------------------
+
+-- 是否有礼包红点
+function TournWaveData:hasGiftRedPoint()
+ local ids = GConst.TournWaveConst.GIFT_IDS
+ for index, id in pairs(ids) do
+ if self:isFreeGift(id) and self:getGiftRemainTime(id) > 0 then
+ return true
+ end
+ end
+
+ return false
+end
+
+-- 获取礼包配置
+function TournWaveData:getGiftCfg(giftId)
+ return DataManager.ShopData:getActGiftConfig()[giftId]
+end
+
+-- 是否是免费礼包
+function TournWaveData:isFreeGift(id)
+ return DataManager.ShopData:getActGiftConfig()[id].recharge_id == nil
+end
+
+-- 获取礼包id列表
+function TournWaveData:getGiftIdsSort()
+ local result = {}
+ local ids = GConst.TournWaveConst.GIFT_IDS
+ for index, id in ipairs(ids) do
+ local sort = id + 10000000000
+
+ if self:isFreeGift(id) then
+ sort = sort - 10000000
+ end
+
+ if self:getGiftRemainTime(id) > 0 then
+ sort = sort - 10000
+ end
+ table.insert(result, {id = id, sort = sort})
+ end
+
+ table.sort(result, function (a, b)
+ return a.sort < b.sort
+ end)
+
+ return result
+end
+
+-- 礼包剩余购买次数
+function TournWaveData:getGiftRemainTime(giftId)
+ if self:isFreeGift(giftId) then
+ local giftData = DataManager.ShopData:getActGiftDetailData(PayManager.PURCHARSE_TYPE.ACT_GIFT, giftId)
+ if giftData and giftData.buy_count > 0 and giftData.latest_buy_at then
+ if Time:getBeginningOfOneDay(Time:getServerTime()) == Time:getBeginningOfOneDay(giftData.latest_buy_at // 1000) then
+ return 0
+ end
+ end
+ return 1
+ else
+ return DataManager.ShopData:getGiftRemainBuyNum(giftId)
+ end
+end
+
+return TournWaveData
\ No newline at end of file
diff --git a/lua/app/userdata/activity/tourn_wave/tourn_wave_data.lua.meta b/lua/app/userdata/activity/tourn_wave/tourn_wave_data.lua.meta
new file mode 100644
index 00000000..56c052b1
--- /dev/null
+++ b/lua/app/userdata/activity/tourn_wave/tourn_wave_data.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 788cab35c3ef4184386df9d940a38560
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}