diff --git a/lua/app/common/bi_report.lua b/lua/app/common/bi_report.lua
index 5178793f..472968df 100644
--- a/lua/app/common/bi_report.lua
+++ b/lua/app/common/bi_report.lua
@@ -150,6 +150,9 @@ BIReport.ITEM_GET_TYPE = {
ACT_FOURTEEN_DAY_TASK = "ActFourteenDayTask",
ACT_FOURTEEN_DAY_EXCHANGE = "ActFourteenDayExchange",
FOURTEEN_DAY_GIFT = "FourteenDayGift",
+ FULL_MOON_HERO_GIFT = "FullMoonHeroGift",
+ FULL_MOON_NEW_HERO_GIFT = "FullMoonNewHeroGift",
+ FULL_MOON_SKIN_GIFT = "FullMoonSkinGift",
DUNGEON_RUNE_START = "DungeonRuneStart",
DUNGEON_RUNE_SETTLEMENT = "DungeonRuneSettlement",
DUNGEON_RUNE_SWEEP = "DungeonRuneSweep",
@@ -163,6 +166,11 @@ BIReport.ITEM_GET_TYPE = {
ACT_PVP_BOUNTY_GIFT = "ActPvpBountyGift",
ACT_PVP_RANK_REWARD = "ActPvpRankReward",
ACT_PVP_BUY_BOUNTY_LEVEL = "ActPvpBuyBountyLevel",
+ RUNES_QUENCHING = "RuneQuenching",
+ RUNES_GIFT = "RuneGift",
+ FULL_MOON_TASK = "FullMoonTask",
+ FULL_MOON_TASK_PROG_REWARD = "FullMoonTaskProgReward",
+ FULL_MOON_SKIN_CHALLENGE_REWARD = "FullMoonSkinChallengeReward",
}
BIReport.ADS_CLICK_TYPE = {
@@ -216,7 +224,8 @@ BIReport.BATTLE_TYPE = {
["7"] = "DungeonArmor",
["8"] = "ActBossRush",
["9"] = "DungeonRune",
- ["10"] = "ActPvp",
+ ["10"] = "FullMoonSkin",
+ ["11"] = "ActPvp",
}
BIReport.GIFT_TYPE = {
@@ -240,6 +249,10 @@ BIReport.GIFT_TYPE = {
ACT_HERO_FUND = "ActHeroFund",
FOURTEEN_DAY_GIFT = "FourteenDayGift",
ACT_PVP_BOUNTY_GIFT = "ActPvpBountyGift",
+ FULL_MOON_HERO_GIFT = "FullMoonHeroGift",
+ FULL_MOON_NEW_HERO_GIFT = "FullMoonNewHeroGift",
+ FULL_MOON_SKIN_GIFT = "FullMoonSkinGift",
+ RUNES_GIFT = "RunesGift",
}
BIReport.COIN_TYPE = {
@@ -282,6 +295,7 @@ BIReport.DIALY_CHALLENGE_OPT_TYPE = {
BIReport.MISCELLANEOUS_OPT_TYPE = {
EVALUATE_OPEN = "EvaluateOpen",
EVALUATE_CLOSE = "EvaluateClose",
+ BATTLE_SNAP_SHOP_OPEN = "BattleSnapShopOpen",
}
BIReport.ARENA_OPT_TYPE = {
@@ -1673,6 +1687,13 @@ function BIReport:postRateOpen()
self:report(EVENT_NAME_MISCELLANEOUS_OPT, args)
end
+function BIReport:postBatttleSnapshotOpen()
+ local args = {
+ event_type = BIReport.MISCELLANEOUS_OPT_TYPE.BATTLE_SNAP_SHOP_OPEN,
+ }
+ self:report(EVENT_NAME_MISCELLANEOUS_OPT, args)
+end
+
function BIReport:postPbAuthfailed(pbName, lastLoginInfo, authFailToLogin)
local args = {
event_type = BIReport.NETWORK_OPT_TYPE.AUTH_FAILED,
diff --git a/lua/app/common/data_manager.lua b/lua/app/common/data_manager.lua
index 7060b337..12444d13 100644
--- a/lua/app/common/data_manager.lua
+++ b/lua/app/common/data_manager.lua
@@ -16,6 +16,7 @@ function DataManager:init()
self:initManager("BagData", "app/userdata/bag/bag_data")
self:initManager("EquipData", "app/userdata/equip/equip_data")
self:initManager("SkinData", "app/userdata/skin/skin_data")
+ self:initManager("RunesData", "app/userdata/runes/runes_data")
self:initManager("BattleData", "app/userdata/battle/battle_data")
self:initManager("BattlePVPData", "app/userdata/battle/battle_pvp_data")
self:initManager("FormationData", "app/userdata/formation/formation_data")
@@ -32,6 +33,7 @@ function DataManager:init()
self:initManager("SevenDayData", "app/userdata/activity/seven_day/seven_day_data")
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("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")
@@ -107,6 +109,7 @@ function DataManager:clear()
self.BagData:clear()
self.EquipData:clear()
self.SkinData:clear()
+ self.RunesData:clear()
self.FormationData:clear()
self.ActivityData:clear()
self.MailData:clear()
@@ -119,6 +122,7 @@ function DataManager:clear()
self.SevenDayData:clear()
self.ShopData:clear()
self.SummonData:clear()
+ self.FullMoonData:clear()
-- 任务数据最后清理
self.TaskData:clear()
self.AIHelperData:clear()
@@ -153,7 +157,8 @@ function DataManager:initWithServerData(data)
self.EquipData:init(data.heroes_equips)
self.EquipData:initGifts(data.act_weapon_armor_gift)
self.SkinData:init(data.bag.skins)
- -- HeroData要在EquipData和SkinData之后初始化,依赖它们的属性数据
+ self.RunesData:init(data.rune)
+ -- HeroData要在EquipData、SkinData、RunesData之后初始化,依赖它们的属性数据
self.HeroData:init(data.bag.heroes)
self.BagData:init(data.bag)
self.FormationData:init(data.fight_info)
@@ -507,6 +512,10 @@ DataManager.activityOpenFunc = {
DataManager.ActPvpData:setActivityInfo(params)
ModuleManager.ActPvpManager:reqActData()
end,
+ [4] = function(params)
+ DataManager.FullMoonData:setActStatus(params)
+ ModuleManager.FullMoonManager:reqActData()
+ end,
}
DataManager.waitOpenActivity = {
@@ -519,6 +528,10 @@ DataManager.waitOpenActivity = {
DataManager.ActPvpData:setActivityId(params.id)
DataManager.ActPvpData:setActivityInfo(params)
end,
+ [4] = function(params)
+ DataManager.FullMoonData:setActStatus(params)
+ ModuleManager.FullMoonManager: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 021a86b1..e8453096 100644
--- a/lua/app/common/event_manager.lua
+++ b/lua/app/common/event_manager.lua
@@ -60,6 +60,7 @@ EventManager.CUSTOM_EVENT = {
-- BORAD_TOUCH_OVER = "BORAD_TOUCH_OVER"
DUNGEON_ARMOR_TO_TARGET_ID = "DUNGEON_ARMOR_TO_TARGET_ID",
ACTIVITY_SUMMER_END = "ACTIVITY_SUMMER_END",
+ ACTIVITY_FULL_MOON_END = "ACTIVITY_FULL_MOON_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 5bea008b..505fa1f3 100644
--- a/lua/app/common/module_manager.lua
+++ b/lua/app/common/module_manager.lua
@@ -69,12 +69,16 @@ local MODULE_PATHS = {
EquipManager = "app/module/equip/equip_manager",
-- 皮肤
SkinManager = "app/module/skin/skin_manager",
+ -- 皮肤
+ RunesManager = "app/module/runes/runes_manager",
-- 英雄基金
HeroFundManager = "app/module/activity/hero_fund/hero_fund_manager",
-- 世界首领活动
ActBossRushManager = "app/module/activity/act_boss_rush/act_boss_rush_manager",
-- 新手14天乐
FourteenDayManager = "app/module/activity/fourteen_day/fourteen_day_manager",
+ -- 圆月活动
+ FullMoonManager = "app/module/activity/full_moon/full_moon_manager",
-- 符文副本
DungeonRuneManager = "app/module/dungeon_rune/dungeon_rune_manager",
-- 梦魇酒馆
diff --git a/lua/app/common/pay_manager.lua b/lua/app/common/pay_manager.lua
index 11dcaf48..674e7119 100644
--- a/lua/app/common/pay_manager.lua
+++ b/lua/app/common/pay_manager.lua
@@ -28,6 +28,10 @@ PayManager.PURCHARSE_ACT_TYPE = {
ARMOR_UPGRADE_GIFT = 16,
FOURTEEN_DAY_GIFT = 17,
ACT_PVP_BOUNTY = 22,
+ FULL_MOON_HERO_GIFT = 18,
+ FULL_MOON_NEW_HERO_GIFT = 19,
+ FULL_MOON_SKIN_GIFT = 20,
+ RUNES_GIFT = 21,
}
PayManager.PURCHARSE_TYPE_CONFIG = {
@@ -58,6 +62,10 @@ PayManager.BI_ITEM_GET_TYPE = {
[PayManager.PURCHARSE_ACT_TYPE.ARMOR_UPGRADE_GIFT] = BIReport.ITEM_GET_TYPE.ARMOR_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.FOURTEEN_DAY_GIFT] = BIReport.ITEM_GET_TYPE.FOURTEEN_DAY_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.ACT_PVP_BOUNTY] = BIReport.ITEM_GET_TYPE.ACT_PVP_BOUNTY_GIFT,
+ [PayManager.PURCHARSE_ACT_TYPE.FULL_MOON_HERO_GIFT] = BIReport.ITEM_GET_TYPE.FULL_MOON_HERO_GIFT,
+ [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_TYPE.ACT_GOLD_PIG] = BIReport.ITEM_GET_TYPE.GOLD_PIG,
[PayManager.PURCHARSE_TYPE.MALL_TREASURE] = BIReport.ITEM_GET_TYPE.MALL_TREASURE,
@@ -80,11 +88,15 @@ PayManager.BI_GIFT_TYPE = {
[PayManager.PURCHARSE_ACT_TYPE.WEAPON_GIFT] = BIReport.GIFT_TYPE.WEAPON_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.ARMOR_GIFT] = BIReport.GIFT_TYPE.ARMOR_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.ACT_SUMMER] = BIReport.GIFT_TYPE.ACT_SUMMER,
- [PayManager.PURCHARSE_ACT_TYPE.ACT_HERO_FUND] = BIReport.ITEM_GET_TYPE.ACT_HERO_FUND,
+ [PayManager.PURCHARSE_ACT_TYPE.ACT_HERO_FUND] = BIReport.GIFT_TYPE.ACT_HERO_FUND,
[PayManager.PURCHARSE_ACT_TYPE.WEAPON_UPGRADE_GIFT] = BIReport.GIFT_TYPE.WEAPON_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.ARMOR_UPGRADE_GIFT] = BIReport.GIFT_TYPE.ARMOR_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.FOURTEEN_DAY_GIFT] = BIReport.GIFT_TYPE.FOURTEEN_DAY_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.ACT_PVP_BOUNTY] = BIReport.GIFT_TYPE.ACT_PVP_BOUNTY_GIFT,
+ [PayManager.PURCHARSE_ACT_TYPE.FULL_MOON_HERO_GIFT] = BIReport.GIFT_TYPE.FULL_MOON_HERO_GIFT,
+ [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_TYPE.ACT_GOLD_PIG] = BIReport.GIFT_TYPE.GOLD_PIG,
[PayManager.PURCHARSE_TYPE.MALL_TREASURE] = BIReport.GIFT_TYPE.MALL_TREASURE,
diff --git a/lua/app/common/server_push_manager.lua b/lua/app/common/server_push_manager.lua
index f7c33fae..495667e0 100644
--- a/lua/app/common/server_push_manager.lua
+++ b/lua/app/common/server_push_manager.lua
@@ -23,6 +23,7 @@ function ServerPushManager:initWhenLogin()
self:addServerPushListener(ProtoMsgType.FromMsgEnum.AIHelpUnreadNtf, ModuleManager.GameSettingManager, ModuleManager.GameSettingManager.rspAiHelperNtf)
self:addServerPushListener(ProtoMsgType.FromMsgEnum.RecoveryNtf, ModuleManager.ItemManager, ModuleManager.ItemManager.rspRecoveryNtf)
self:addServerPushListener(ProtoMsgType.FromMsgEnum.BossRushBoughtNtf, ModuleManager.ActBossRushManager, ModuleManager.ActBossRushManager.rspBossRushBoughtNtf)
+ self:addServerPushListener(ProtoMsgType.FromMsgEnum.RuneUpdateNtf, ModuleManager.RunesManager, ModuleManager.RunesManager.rspUpdate)
end
---- 移除全局推送监听
diff --git a/lua/app/config/act_gift.lua b/lua/app/config/act_gift.lua
index 76afbe80..5888d69d 100644
--- a/lua/app/config/act_gift.lua
+++ b/lua/app/config/act_gift.lua
@@ -5059,8 +5059,8 @@ local act_gift = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=3400101,
- ["id_for_nothing"]="VQxcA2RRfg==",
+ ["id"]=5400401,
+ ["id_for_nothing"]="UwxcA2FRfg==",
["num"]=1,
["num_for_nothing"]="Vw=="
}
@@ -5091,8 +5091,8 @@ local act_gift = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=5400101,
- ["id_for_nothing"]="UwxcA2RRfg==",
+ ["id"]=4400201,
+ ["id_for_nothing"]="UgxcA2dRfg==",
["num"]=1,
["num_for_nothing"]="Vw=="
}
diff --git a/lua/app/config/activity_full_moon_reward.lua b/lua/app/config/activity_full_moon_reward.lua
index 59cee37c..93d22abd 100644
--- a/lua/app/config/activity_full_moon_reward.lua
+++ b/lua/app/config/activity_full_moon_reward.lua
@@ -114,8 +114,8 @@ local activity_full_moon_reward = {
["reward"]={
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=5300101,
- ["id_for_nothing"]="UwtcA2RRfg==",
+ ["id"]=2300201,
+ ["id_for_nothing"]="VAtcA2dRfg==",
["num"]=1,
["num_for_nothing"]="Vw=="
}
diff --git a/lua/app/config/activity_pvp_board.lua.meta b/lua/app/config/activity_pvp_board.lua.meta
index 0b72968f..596d1d52 100644
--- a/lua/app/config/activity_pvp_board.lua.meta
+++ b/lua/app/config/activity_pvp_board.lua.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: eec0aaed6b62d6742906ac31143602d1
+guid: 0ea07987f5138fd4783f9cb9509cf506
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
diff --git a/lua/app/config/avatar.lua b/lua/app/config/avatar.lua
index 3e7a631d..93ee837d 100644
--- a/lua/app/config/avatar.lua
+++ b/lua/app/config/avatar.lua
@@ -171,9 +171,21 @@ local avatar = {
[1400101]={
["iconId"]="16_1",
["item"]=1400101
+ },
+ [2300201]={
+ ["iconId"]="10_1",
+ ["item"]=2300201
+ },
+ [4400201]={
+ ["iconId"]="20_1",
+ ["item"]=4400201
+ },
+ [5400401]={
+ ["iconId"]="16_1",
+ ["item"]=5400401
}
}
local config = {
-data=avatar,count=42
+data=avatar,count=45
}
return config
\ No newline at end of file
diff --git a/lua/app/config/chapter_dungeon_rune.lua b/lua/app/config/chapter_dungeon_rune.lua
index b0e9dc02..213be4ce 100644
--- a/lua/app/config/chapter_dungeon_rune.lua
+++ b/lua/app/config/chapter_dungeon_rune.lua
@@ -106,16 +106,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=3000,
+ ["num_for_nothing"]="VQhcAw=="
}
}
},
@@ -220,18 +212,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -340,18 +324,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -453,21 +429,13 @@ local chapter_dungeon_rune = {
}
},
["first_reward"]={
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=2,
["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -566,18 +534,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=1001,
+ ["id_for_nothing"]="VwhcAg==",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -673,16 +633,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=3000,
+ ["num_for_nothing"]="VQhcAw=="
}
}
},
@@ -776,18 +728,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -896,18 +840,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -1001,18 +937,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=38,
+ ["id_for_nothing"]="VQA=",
+ ["num"]=5,
+ ["num_for_nothing"]="Uw=="
}
}
},
@@ -1020,8 +948,8 @@ local chapter_dungeon_rune = {
["season"]=1,
["stage"]=10,
["chapter_board"]=10,
- ["scene"]="bg_14",
- ["block_icon"]="battle_hinder_14",
+ ["scene"]="bg_21",
+ ["block_icon"]="battle_hinder_21",
["chess_board"]="chessboard_1",
["monster"]={
6308
@@ -1033,28 +961,28 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=30,
+ ["num_for_nothing"]="VQg="
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=50,
+ ["num_for_nothing"]="Uwg="
}
},
["sweep_reward"]={
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1009,
- ["num_for_nothing"]="VwhcCg=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
}
}
},
@@ -1161,16 +1089,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=4000,
+ ["num_for_nothing"]="UghcAw=="
}
}
},
@@ -1275,18 +1195,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -1395,18 +1307,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -1512,21 +1416,13 @@ local chapter_dungeon_rune = {
}
},
["first_reward"]={
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=2,
["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -1615,18 +1511,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=1001,
+ ["id_for_nothing"]="VwhcAg==",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -1733,16 +1621,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=4000,
+ ["num_for_nothing"]="UghcAw=="
}
}
},
@@ -1836,18 +1716,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -1956,18 +1828,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -2061,18 +1925,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=38,
+ ["id_for_nothing"]="VQA=",
+ ["num"]=5,
+ ["num_for_nothing"]="Uw=="
}
}
},
@@ -2080,9 +1936,9 @@ local chapter_dungeon_rune = {
["season"]=1,
["stage"]=20,
["chapter_board"]=20,
- ["scene"]="bg_23",
- ["block_icon"]="battle_hinder_23",
- ["chess_board"]="chessboard_2",
+ ["scene"]="bg_26",
+ ["block_icon"]="battle_hinder_26",
+ ["chess_board"]="chessboard_1",
["monster"]={
6408
},
@@ -2093,28 +1949,28 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=30,
+ ["num_for_nothing"]="VQg="
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
}
},
["sweep_reward"]={
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1019,
- ["num_for_nothing"]="VwhdCg=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=25,
+ ["num_for_nothing"]="VA0="
}
}
},
@@ -2210,16 +2066,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=5000,
+ ["num_for_nothing"]="UwhcAw=="
}
}
},
@@ -2324,18 +2172,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -2435,18 +2275,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -2552,21 +2384,13 @@ local chapter_dungeon_rune = {
}
},
["first_reward"]={
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=2,
["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -2660,18 +2484,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=1002,
+ ["id_for_nothing"]="VwhcAQ==",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -2778,16 +2594,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=5000,
+ ["num_for_nothing"]="UwhcAw=="
}
}
},
@@ -2896,18 +2704,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -3016,18 +2816,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -3132,18 +2924,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=39,
+ ["id_for_nothing"]="VQE=",
+ ["num"]=5,
+ ["num_for_nothing"]="Uw=="
}
}
},
@@ -3164,28 +2948,28 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=40,
+ ["num_for_nothing"]="Ugg="
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=150,
+ ["num_for_nothing"]="Vw1c"
}
},
["sweep_reward"]={
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1029,
- ["num_for_nothing"]="VwheCg=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=30,
+ ["num_for_nothing"]="VQg="
}
}
},
@@ -3292,16 +3076,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=6000,
+ ["num_for_nothing"]="UAhcAw=="
}
}
},
@@ -3406,18 +3182,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -3526,18 +3294,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=15,
+ ["num_for_nothing"]="Vw0="
}
}
},
@@ -3639,21 +3399,13 @@ local chapter_dungeon_rune = {
}
},
["first_reward"]={
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=2,
["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=15,
+ ["num_for_nothing"]="Vw0="
}
}
},
@@ -3758,18 +3510,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=1002,
+ ["id_for_nothing"]="VwhcAQ==",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -3876,16 +3620,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=6000,
+ ["num_for_nothing"]="UAhcAw=="
}
}
},
@@ -3994,18 +3730,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=30,
+ ["num_for_nothing"]="VQg="
}
}
},
@@ -4114,18 +3842,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=15,
+ ["num_for_nothing"]="Vw0="
}
}
},
@@ -4234,18 +3954,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=39,
+ ["id_for_nothing"]="VQE=",
+ ["num"]=5,
+ ["num_for_nothing"]="Uw=="
}
}
},
@@ -4253,8 +3965,8 @@ local chapter_dungeon_rune = {
["season"]=1,
["stage"]=40,
["chapter_board"]=40,
- ["scene"]="bg_7",
- ["block_icon"]="battle_hinder_7",
+ ["scene"]="bg_31",
+ ["block_icon"]="battle_hinder_33",
["chess_board"]="chessboard_2",
["monster"]={
6608
@@ -4266,28 +3978,28 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=50,
+ ["num_for_nothing"]="Uwg="
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=200,
+ ["num_for_nothing"]="VAhc"
}
},
["sweep_reward"]={
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1039,
- ["num_for_nothing"]="VwhfCg=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=35,
+ ["num_for_nothing"]="VQ0="
}
}
},
@@ -4394,16 +4106,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=7000,
+ ["num_for_nothing"]="UQhcAw=="
}
}
},
@@ -4508,18 +4212,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -4628,18 +4324,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=15,
+ ["num_for_nothing"]="Vw0="
}
}
},
@@ -4741,21 +4429,13 @@ local chapter_dungeon_rune = {
}
},
["first_reward"]={
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=2,
["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=15,
+ ["num_for_nothing"]="Vw0="
}
}
},
@@ -4864,18 +4544,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=1002,
+ ["id_for_nothing"]="VwhcAQ==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
}
}
},
@@ -4982,16 +4654,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=7000,
+ ["num_for_nothing"]="UQhcAw=="
}
}
},
@@ -5096,18 +4760,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -5216,18 +4872,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=15,
+ ["num_for_nothing"]="Vw0="
}
}
},
@@ -5332,18 +4980,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=39,
+ ["id_for_nothing"]="VQE=",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -5351,8 +4991,8 @@ local chapter_dungeon_rune = {
["season"]=1,
["stage"]=50,
["chapter_board"]=50,
- ["scene"]="bg_7",
- ["block_icon"]="battle_hinder_7",
+ ["scene"]="bg_13",
+ ["block_icon"]="battle_hinder_13",
["chess_board"]="chessboard_2",
["monster"]={
6708
@@ -5364,28 +5004,28 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=60,
+ ["num_for_nothing"]="UAg="
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=300,
+ ["num_for_nothing"]="VQhc"
}
},
["sweep_reward"]={
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1049,
- ["num_for_nothing"]="VwhYCg=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=40,
+ ["num_for_nothing"]="Ugg="
}
}
},
@@ -5492,16 +5132,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=8000,
+ ["num_for_nothing"]="XghcAw=="
}
}
},
@@ -5606,18 +5238,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -5722,18 +5346,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
}
}
},
@@ -5829,21 +5445,13 @@ local chapter_dungeon_rune = {
}
},
["first_reward"]={
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=2,
["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=15,
+ ["num_for_nothing"]="Vw0="
}
}
},
@@ -5948,18 +5556,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=1002,
+ ["id_for_nothing"]="VwhcAQ==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
}
}
},
@@ -6070,16 +5670,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=8000,
+ ["num_for_nothing"]="XghcAw=="
}
}
},
@@ -6184,18 +5776,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -6300,18 +5884,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
}
}
},
@@ -6416,18 +5992,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=39,
+ ["id_for_nothing"]="VQE=",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -6448,28 +6016,28 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=70,
+ ["num_for_nothing"]="UQg="
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=400,
+ ["num_for_nothing"]="Ughc"
}
},
["sweep_reward"]={
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1059,
- ["num_for_nothing"]="VwhZCg=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=45,
+ ["num_for_nothing"]="Ug0="
}
}
},
@@ -6576,16 +6144,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=9000,
+ ["num_for_nothing"]="XwhcAw=="
}
}
},
@@ -6690,18 +6250,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -6806,18 +6358,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
}
}
},
@@ -6919,21 +6463,13 @@ local chapter_dungeon_rune = {
}
},
["first_reward"]={
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=2,
["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
}
}
},
@@ -7042,18 +6578,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=1003,
+ ["id_for_nothing"]="VwhcAA==",
+ ["num"]=15,
+ ["num_for_nothing"]="Vw0="
}
}
},
@@ -7160,16 +6688,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=9000,
+ ["num_for_nothing"]="XwhcAw=="
}
}
},
@@ -7278,18 +6798,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -7394,18 +6906,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=50,
+ ["num_for_nothing"]="Uwg="
}
}
},
@@ -7510,18 +7014,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=40,
+ ["id_for_nothing"]="Ugg=",
+ ["num"]=8,
+ ["num_for_nothing"]="Xg=="
}
}
},
@@ -7529,8 +7025,8 @@ local chapter_dungeon_rune = {
["season"]=1,
["stage"]=70,
["chapter_board"]=70,
- ["scene"]="bg_14",
- ["block_icon"]="battle_hinder_14",
+ ["scene"]="bg_17",
+ ["block_icon"]="battle_hinder_17",
["chess_board"]="chessboard_1",
["monster"]={
6908
@@ -7542,28 +7038,28 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=80,
+ ["num_for_nothing"]="Xgg="
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=600,
+ ["num_for_nothing"]="UAhc"
}
},
["sweep_reward"]={
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1069,
- ["num_for_nothing"]="VwhaCg=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=50,
+ ["num_for_nothing"]="Uwg="
}
}
},
@@ -7678,16 +7174,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=10000,
+ ["num_for_nothing"]="VwhcA2U="
}
}
},
@@ -7792,18 +7280,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -7912,18 +7392,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
}
}
},
@@ -8025,21 +7497,13 @@ local chapter_dungeon_rune = {
}
},
["first_reward"]={
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=2,
["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
}
}
},
@@ -8144,18 +7608,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=1003,
+ ["id_for_nothing"]="VwhcAA==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
}
}
},
@@ -8270,16 +7726,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=10000,
+ ["num_for_nothing"]="VwhcA2U="
}
}
},
@@ -8384,18 +7832,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=50,
+ ["num_for_nothing"]="Uwg="
}
}
},
@@ -8500,18 +7940,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
}
}
},
@@ -8620,18 +8052,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=40,
+ ["id_for_nothing"]="Ugg=",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -8652,28 +8076,28 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=90,
+ ["num_for_nothing"]="Xwg="
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=800,
+ ["num_for_nothing"]="Xghc"
}
},
["sweep_reward"]={
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1079,
- ["num_for_nothing"]="VwhbCg=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=55,
+ ["num_for_nothing"]="Uw0="
}
}
},
@@ -8780,16 +8204,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=12000,
+ ["num_for_nothing"]="VwpcA2U="
}
}
},
@@ -8898,18 +8314,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -9008,18 +8416,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=25,
+ ["num_for_nothing"]="VA0="
}
}
},
@@ -9125,21 +8525,13 @@ local chapter_dungeon_rune = {
}
},
["first_reward"]={
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=2,
["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
}
}
},
@@ -9244,18 +8636,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=1003,
+ ["id_for_nothing"]="VwhcAA==",
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
}
}
},
@@ -9362,16 +8746,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=12000,
+ ["num_for_nothing"]="VwpcA2U="
}
}
},
@@ -9476,18 +8852,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -9592,18 +8960,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=25,
+ ["num_for_nothing"]="VA0="
}
}
},
@@ -9712,18 +9072,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=40,
+ ["id_for_nothing"]="Ugg=",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -9744,28 +9096,28 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=1000,
+ ["num_for_nothing"]="VwhcAw=="
}
},
["sweep_reward"]={
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1089,
- ["num_for_nothing"]="VwhUCg=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=60,
+ ["num_for_nothing"]="UAg="
}
}
},
@@ -9872,16 +9224,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=14000,
+ ["num_for_nothing"]="VwxcA2U="
}
}
},
@@ -9994,18 +9338,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -10110,18 +9446,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=25,
+ ["num_for_nothing"]="VA0="
}
}
},
@@ -10227,21 +9555,13 @@ local chapter_dungeon_rune = {
}
},
["first_reward"]={
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
{
["type"]=1,
["type_for_nothing"]="Vw==",
["id"]=2,
["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=20,
+ ["num_for_nothing"]="VAg="
}
}
},
@@ -10346,18 +9666,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=1004,
+ ["id_for_nothing"]="VwhcBw==",
+ ["num"]=15,
+ ["num_for_nothing"]="Vw0="
}
}
},
@@ -10468,16 +9780,8 @@ local chapter_dungeon_rune = {
["type_for_nothing"]="Vw==",
["id"]=1,
["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["num"]=14000,
+ ["num_for_nothing"]="VwxcA2U="
}
}
},
@@ -10582,18 +9886,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=13,
+ ["id_for_nothing"]="Vws=",
+ ["num"]=1,
+ ["num_for_nothing"]="Vw=="
}
}
},
@@ -10698,18 +9994,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=3,
+ ["id_for_nothing"]="VQ==",
+ ["num"]=25,
+ ["num_for_nothing"]="VA0="
}
}
},
@@ -10814,18 +10102,10 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
- },
- {
- ["type"]=1,
- ["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=41,
+ ["id_for_nothing"]="Ugk=",
+ ["num"]=10,
+ ["num_for_nothing"]="Vwg="
}
}
},
@@ -10833,9 +10113,9 @@ local chapter_dungeon_rune = {
["season"]=1,
["stage"]=100,
["chapter_board"]=100,
- ["scene"]="bg_7",
- ["block_icon"]="battle_hinder_7",
- ["chess_board"]="chessboard_2",
+ ["scene"]="bg_22",
+ ["block_icon"]="battle_hinder_22",
+ ["chess_board"]="chessboard_1",
["monster"]={
7208
},
@@ -10846,28 +10126,28 @@ local chapter_dungeon_rune = {
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1000,
- ["num_for_nothing"]="VwhcAw=="
+ ["id"]=2,
+ ["id_for_nothing"]="VA==",
+ ["num"]=100,
+ ["num_for_nothing"]="Vwhc"
},
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=2,
- ["id_for_nothing"]="VA==",
- ["num"]=2000,
- ["num_for_nothing"]="VAhcAw=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=1200,
+ ["num_for_nothing"]="VwpcAw=="
}
},
["sweep_reward"]={
{
["type"]=1,
["type_for_nothing"]="Vw==",
- ["id"]=1,
- ["id_for_nothing"]="Vw==",
- ["num"]=1099,
- ["num_for_nothing"]="VwhVCg=="
+ ["id"]=55,
+ ["id_for_nothing"]="Uw0=",
+ ["num"]=65,
+ ["num_for_nothing"]="UA0="
}
}
}
diff --git a/lua/app/config/const.lua b/lua/app/config/const.lua
index af101080..99cbd95c 100644
--- a/lua/app/config/const.lua
+++ b/lua/app/config/const.lua
@@ -441,6 +441,9 @@ local const = {
["num_for_nothing"]="Uw=="
}
},
+ ["runes_red_point"]={
+ ["value"]=1000
+ },
["dungeon_rune_lvlimit"]={
["value"]=20
},
@@ -523,6 +526,6 @@ local const = {
}
}
local config = {
-data=const,count=104
+data=const,count=105
}
return config
\ No newline at end of file
diff --git a/lua/app/config/hero.lua b/lua/app/config/hero.lua
index 5c2d73e9..51a5a430 100644
--- a/lua/app/config/hero.lua
+++ b/lua/app/config/hero.lua
@@ -1620,7 +1620,8 @@ local hero = {
["is_show"]=1,
["collection_point"]=5,
["skin"]={
- 44002
+ 44002,
+ 4400201
}
},
[44003]={
@@ -2180,7 +2181,8 @@ local hero = {
["item_id"]=54004,
["collection_point"]=5,
["skin"]={
- 54004
+ 54004,
+ 5400401
}
}
}
diff --git a/lua/app/config/item.lua b/lua/app/config/item.lua
index 221bc2b8..f1a4fead 100644
--- a/lua/app/config/item.lua
+++ b/lua/app/config/item.lua
@@ -2451,9 +2451,21 @@ local item = {
["parameter"]=2300201,
["qlt"]=2,
["icon"]="2300201"
+ },
+ [4400201]={
+ ["type"]=12,
+ ["parameter"]=4400201,
+ ["qlt"]=4,
+ ["icon"]="4400201"
+ },
+ [5400401]={
+ ["type"]=12,
+ ["parameter"]=5400401,
+ ["qlt"]=4,
+ ["icon"]="5400401"
}
}
local config = {
-data=item,count=126
+data=item,count=128
}
return config
\ No newline at end of file
diff --git a/lua/app/config/monster_activity.lua b/lua/app/config/monster_activity.lua
index 66e9c286..35ff3bed 100644
--- a/lua/app/config/monster_activity.lua
+++ b/lua/app/config/monster_activity.lua
@@ -771,47 +771,39 @@ local monster_activity = {
["monster_exp"]=15000
},
[10004]={
- ["monster_base"]=20047,
+ ["monster_base"]=30043,
["is_boss"]=1,
- ["hp"]=107230000,
- ["atk"]=930000,
+ ["hp"]=245450000,
+ ["atk"]=910000,
["atk_times"]=4,
["hurt_skill"]={
- 30156,
- 30157,
- 30158
+ 50138,
+ 50139,
+ 50140,
+ 50141
},
["skill"]={
- 10137,
- 10138
+ 50142,
+ 50143
},
- ["passive_skill"]={
- 10013,
- 10010
- },
- ["monster_exp"]=15000
+ ["monster_exp"]=350000
},
[10104]={
- ["monster_base"]=20048,
+ ["monster_base"]=30044,
["is_boss"]=1,
- ["hp"]=107230000,
- ["atk"]=930000,
+ ["hp"]=245450000,
+ ["atk"]=910000,
["atk_times"]=4,
["hurt_skill"]={
- 30159,
- 30160,
- 30161
+ 50144,
+ 50145,
+ 50146,
+ 50147
},
["skill"]={
- 10139,
- 10140
+ 50148
},
- ["passive_skill"]={
- 10141,
- 10014,
- 10009
- },
- ["monster_exp"]=15000
+ ["monster_exp"]=350000
}
}
local config = {
diff --git a/lua/app/config/monster_base.lua b/lua/app/config/monster_base.lua
index e93a9672..7389ebff 100644
--- a/lua/app/config/monster_base.lua
+++ b/lua/app/config/monster_base.lua
@@ -620,52 +620,52 @@ local monster_base = {
["model_ui"]=1.0
},
[20049]={
- ["model_id"]="m20039",
+ ["model_id"]="m20049",
["body"]=1,
- ["model_ui"]=0.8
+ ["model_ui"]=1.0
},
[20050]={
- ["model_id"]="m20040",
+ ["model_id"]="m20051",
["body"]=1,
- ["model_ui"]=0.8
+ ["model_ui"]=1.0
},
[20051]={
- ["model_id"]="m20041",
+ ["model_id"]="m20053",
["body"]=1,
- ["model_ui"]=0.8
+ ["model_ui"]=1.0
},
[20052]={
- ["model_id"]="m20042",
+ ["model_id"]="m20052",
["body"]=1,
- ["model_ui"]=0.8
+ ["model_ui"]=1.0
},
[20053]={
- ["model_id"]="m20043",
+ ["model_id"]="m20056",
["body"]=1,
- ["model_ui"]=0.8
+ ["model_ui"]=1.0
},
[20054]={
- ["model_id"]="m20044",
+ ["model_id"]="m20057",
["body"]=1,
["model_ui"]=1.0
},
[20055]={
- ["model_id"]="m20045",
+ ["model_id"]="m20058",
["body"]=1,
["model_ui"]=1.0
},
[20056]={
- ["model_id"]="m20046",
+ ["model_id"]="m20054",
["body"]=1,
["model_ui"]=1.0
},
[20057]={
- ["model_id"]="m20047",
+ ["model_id"]="m20055",
["body"]=1,
["model_ui"]=1.0
},
[20058]={
- ["model_id"]="m20048",
+ ["model_id"]="m20050",
["body"]=1,
["model_ui"]=1.0
},
@@ -793,9 +793,19 @@ local monster_base = {
["model_id"]="p0026",
["body"]=2,
["model_ui"]=1.0
+ },
+ [30043]={
+ ["model_id"]="p0043",
+ ["body"]=2,
+ ["model_ui"]=1.0
+ },
+ [30044]={
+ ["model_id"]="p0044",
+ ["body"]=2,
+ ["model_ui"]=1.0
}
}
local config = {
-data=monster_base,count=159
+data=monster_base,count=161
}
return config
\ No newline at end of file
diff --git a/lua/app/config/skill.lua b/lua/app/config/skill.lua
index d3c3f4ed..ad1f8967 100644
--- a/lua/app/config/skill.lua
+++ b/lua/app/config/skill.lua
@@ -2534,6 +2534,9 @@ local skill = {
["fx_self_mirror"]=400014
},
[2300123]={
+ ["buff_id"]={
+ "stun"
+ },
["position"]=2,
["buff_condition"]={
{
@@ -3891,16 +3894,16 @@ local skill = {
}
},
["effect_type"]=2,
- ["trigger"]=9,
+ ["trigger"]=5,
["effect"]={
{
- ["type"]="atkp_color_add",
- ["num"]=1000,
+ ["type"]="hurt_yellow",
+ ["num"]=5000,
["ratio"]=10000,
- ["round"]=999
+ ["round"]=0
}
},
- ["obj"]=1
+ ["obj"]=2
},
[2400423]={
["position"]=2,
@@ -7452,6 +7455,9 @@ local skill = {
["fx_self_mirror"]=400154
},
[4400420]={
+ ["buff_id"]={
+ "normal_attack_dec"
+ },
["energy"]=10,
["link"]=1,
["position"]=4,
@@ -7532,9 +7538,9 @@ local skill = {
["trigger"]=6,
["effect"]={
{
- ["type"]="normal_attack_dec",
- ["num"]=1,
- ["ratio"]=1000,
+ ["type"]="weaken",
+ ["num"]=2500,
+ ["ratio"]=10000,
["round"]=2
}
},
@@ -23915,16 +23921,15 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
["sound_hit"]={
1000011
},
- ["name_act"]="attack01",
- ["fx_self"]=200096
+ ["name_act"]="attack01"
},
[30166]={
["effect_type"]=1,
@@ -23939,16 +23944,15 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
["sound_hit"]={
1000012
},
- ["name_act"]="attack02",
- ["fx_self"]=200097
+ ["name_act"]="attack02"
},
[30167]={
["effect_type"]=1,
@@ -23963,16 +23967,15 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
["sound_hit"]={
1000013
},
- ["name_act"]="attack03",
- ["fx_self"]=200098
+ ["name_act"]="attack03"
},
[30168]={
["buff_condition"]={
@@ -24041,6 +24044,18 @@ local skill = {
["effect_type"]=1,
["trigger"]=1,
["effect"]={
+ {
+ ["type"]="hurt",
+ ["num"]=10000,
+ ["ratio"]=10000,
+ ["round"]=0
+ },
+ {
+ ["type"]="hurt",
+ ["num"]=15000,
+ ["ratio"]=10000,
+ ["round"]=0
+ },
{
["type"]="hurt",
["num"]=20000,
@@ -24055,6 +24070,11 @@ local skill = {
}
},
["obj"]=2,
+ ["effect_block"]={
+ 1,
+ 2,
+ 4
+ },
["skill_position"]={
2,
0
@@ -24066,8 +24086,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill01"
},
[30170]={
["effect_type"]=1,
@@ -24094,16 +24113,15 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
["sound_hit"]={
1000011
},
- ["name_act"]="attack01",
- ["fx_self"]=200096
+ ["name_act"]="attack01"
},
[30171]={
["effect_type"]=1,
@@ -24130,16 +24148,15 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
["sound_hit"]={
1000012
},
- ["name_act"]="attack02",
- ["fx_self"]=200097
+ ["name_act"]="attack02"
},
[30172]={
["effect_type"]=1,
@@ -24166,16 +24183,15 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
["sound_hit"]={
1000013
},
- ["name_act"]="attack03",
- ["fx_self"]=200098
+ ["name_act"]="attack03"
},
[30173]={
["effect_type"]=1,
@@ -24200,8 +24216,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill01"
},
[30174]={
["effect_type"]=1,
@@ -24222,16 +24237,15 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
["sound_hit"]={
1000011
},
- ["name_act"]="attack01",
- ["fx_self"]=200096
+ ["name_act"]="attack01"
},
[30175]={
["effect_type"]=1,
@@ -24252,16 +24266,15 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
["sound_hit"]={
1000012
},
- ["name_act"]="attack02",
- ["fx_self"]=200097
+ ["name_act"]="attack02"
},
[30176]={
["effect_type"]=1,
@@ -24282,16 +24295,15 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
["sound_hit"]={
1000013
},
- ["name_act"]="attack03",
- ["fx_self"]=200098
+ ["name_act"]="attack03"
},
[30177]={
["effect_type"]=1,
@@ -24318,8 +24330,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill01"
},
[30178]={
["effect_type"]=1,
@@ -24346,8 +24357,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill02"
},
[30179]={
["effect_type"]=1,
@@ -24362,16 +24372,15 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
["sound_hit"]={
1000011
},
- ["name_act"]="attack01",
- ["fx_self"]=200096
+ ["name_act"]="attack01"
},
[30180]={
["effect_type"]=1,
@@ -24386,16 +24395,15 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
["sound_hit"]={
1000012
},
- ["name_act"]="attack02",
- ["fx_self"]=200097
+ ["name_act"]="attack02"
},
[30181]={
["effect_type"]=1,
@@ -24410,16 +24418,15 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
["sound_hit"]={
1000013
},
- ["name_act"]="attack03",
- ["fx_self"]=200098
+ ["name_act"]="attack03"
},
[30182]={
["effect_type"]=1,
@@ -24440,8 +24447,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill01"
},
[30183]={
["effect_type"]=1,
@@ -24462,8 +24468,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill01"
},
[30184]={
["effect_type"]=1,
@@ -24484,8 +24489,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill01"
},
[30185]={
["skill_type"]=3,
@@ -24503,8 +24507,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill01"
},
[30186]={
["effect_type"]=1,
@@ -24519,16 +24522,15 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
["sound_hit"]={
1000011
},
- ["name_act"]="attack01",
- ["fx_self"]=200096
+ ["name_act"]="attack01"
},
[30187]={
["effect_type"]=1,
@@ -24543,16 +24545,15 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
["sound_hit"]={
1000012
},
- ["name_act"]="attack02",
- ["fx_self"]=200097
+ ["name_act"]="attack02"
},
[30188]={
["effect_type"]=1,
@@ -24567,16 +24568,15 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
["sound_hit"]={
1000013
},
- ["name_act"]="attack03",
- ["fx_self"]=200098
+ ["name_act"]="attack03"
},
[30189]={
["effect_type"]=2,
@@ -24616,8 +24616,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill01"
},
[30191]={
["effect_type"]=1,
@@ -24632,8 +24631,8 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
@@ -24655,8 +24654,8 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
@@ -24678,8 +24677,8 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
@@ -24732,8 +24731,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill01"
},
[30196]={
["effect_type"]=1,
@@ -24769,8 +24767,8 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
@@ -24792,8 +24790,8 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
@@ -24815,8 +24813,8 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
@@ -24925,8 +24923,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill01"
},
[30206]={
["effect_type"]=1,
@@ -24953,8 +24950,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill01"
},
[30207]={
["effect_type"]=1,
@@ -24981,8 +24977,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill01"
},
[30208]={
["effect_type"]=1,
@@ -24997,8 +24992,8 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
@@ -25020,8 +25015,8 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
@@ -25043,8 +25038,8 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
@@ -25089,8 +25084,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill01"
},
[30213]={
["effect_type"]=1,
@@ -25115,8 +25109,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill01"
},
[30214]={
["effect_type"]=1,
@@ -25141,8 +25134,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill01"
},
[30215]={
["effect_type"]=1,
@@ -25157,8 +25149,8 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
@@ -25180,8 +25172,8 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
@@ -25203,8 +25195,8 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
@@ -25255,8 +25247,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill01"
},
[30220]={
["skill_type"]=9,
@@ -25285,8 +25276,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill02"
},
[30221]={
["effect_type"]=1,
@@ -25301,8 +25291,8 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
@@ -25324,8 +25314,8 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
@@ -25347,8 +25337,8 @@ local skill = {
},
["obj"]=2,
["skill_position"]={
- 1,
- 140
+ 2,
+ 0
},
["shake_time"]=100,
["shake_type"]=1,
@@ -25399,8 +25389,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill02"
},
[30226]={
["skill_type"]=3,
@@ -25411,6 +25400,11 @@ local skill = {
["effect_type"]=1,
["trigger"]=1,
["obj"]=2,
+ ["effect_block"]={
+ 1,
+ 2,
+ 3
+ },
["skill_position"]={
2,
0
@@ -25428,6 +25422,11 @@ local skill = {
["effect_type"]=1,
["trigger"]=1,
["obj"]=2,
+ ["effect_block"]={
+ 1,
+ 2,
+ 3
+ },
["skill_position"]={
2,
0
@@ -25445,6 +25444,11 @@ local skill = {
["effect_type"]=1,
["trigger"]=1,
["obj"]=2,
+ ["effect_block"]={
+ 1,
+ 2,
+ 3
+ },
["skill_position"]={
2,
0
@@ -25462,6 +25466,11 @@ local skill = {
["effect_type"]=1,
["trigger"]=1,
["obj"]=2,
+ ["effect_block"]={
+ 1,
+ 2,
+ 3
+ },
["skill_position"]={
2,
0
@@ -25499,8 +25508,7 @@ local skill = {
["sound_hit"]={
10018
},
- ["name_act"]="skill01",
- ["fx_self"]=200099
+ ["name_act"]="skill02"
},
[40001]={
["effect_type"]=1,
@@ -30326,6 +30334,339 @@ local skill = {
["cd"]=3,
["cd_start"]=0
},
+ [50138]={
+ ["effect_type"]=1,
+ ["trigger"]=1,
+ ["effect"]={
+ {
+ ["type"]="hurt_purple",
+ ["num"]=10000,
+ ["ratio"]=10000,
+ ["round"]=0
+ }
+ },
+ ["obj"]=2,
+ ["skill_position"]={
+ 1,
+ 25
+ },
+ ["shake_time"]=100,
+ ["shake_type"]=2,
+ ["sound"]=5400410,
+ ["sound_delay"]=0.0,
+ ["name_act"]="attack01",
+ ["fx_self"]=400160
+ },
+ [50139]={
+ ["effect_type"]=1,
+ ["trigger"]=1,
+ ["effect"]={
+ {
+ ["type"]="hurt_purple",
+ ["num"]=10000,
+ ["ratio"]=10000,
+ ["round"]=0
+ }
+ },
+ ["obj"]=2,
+ ["skill_position"]={
+ 1,
+ 25
+ },
+ ["shake_time"]=100,
+ ["shake_type"]=2,
+ ["sound"]=5400411,
+ ["sound_delay"]=0.0,
+ ["name_act"]="attack02",
+ ["fx_self"]=400161
+ },
+ [50140]={
+ ["effect_type"]=1,
+ ["trigger"]=1,
+ ["effect"]={
+ {
+ ["type"]="hurt_purple",
+ ["num"]=10000,
+ ["ratio"]=10000,
+ ["round"]=0
+ }
+ },
+ ["obj"]=2,
+ ["skill_position"]={
+ 1,
+ 25
+ },
+ ["shake_time"]=100,
+ ["shake_type"]=1,
+ ["sound"]=5400412,
+ ["sound_delay"]=0.0,
+ ["name_act"]="attack03",
+ ["fx_self"]=400162
+ },
+ [50141]={
+ ["effect_type"]=1,
+ ["trigger"]=1,
+ ["effect"]={
+ {
+ ["type"]="hurt_purple",
+ ["num"]=10000,
+ ["ratio"]=10000,
+ ["round"]=0
+ }
+ },
+ ["obj"]=2,
+ ["skill_position"]={
+ 1,
+ 25
+ },
+ ["shake_time"]=100,
+ ["shake_type"]=2,
+ ["sound"]=5400413,
+ ["sound_delay"]=0.0,
+ ["name_act"]="attack04",
+ ["fx_self"]=400163
+ },
+ [50142]={
+ ["effect_type"]=1,
+ ["trigger"]=1,
+ ["effect"]={
+ {
+ ["type"]="hurt_purple",
+ ["num"]=50000,
+ ["ratio"]=10000,
+ ["round"]=0
+ }
+ },
+ ["obj"]=2,
+ ["skill_position"]={
+ 1,
+ 25
+ },
+ ["cd"]=3,
+ ["cd_start"]=0,
+ ["shake_time"]=200,
+ ["shake_type"]=6,
+ ["sound"]=5400420,
+ ["sound_delay"]=0.0,
+ ["name_act"]="skill01",
+ ["fx_self"]=400164,
+ ["bullet_time"]={
+ 1666,
+ 3000,
+ 400
+ }
+ },
+ [50143]={
+ ["effect_type"]=1,
+ ["trigger"]=1,
+ ["effect"]={
+ {
+ ["type"]="immune",
+ ["num"]=0,
+ ["ratio"]=10000,
+ ["round"]=2
+ },
+ {
+ ["type"]="counterattack",
+ ["num"]=2500,
+ ["ratio"]=10000,
+ ["round"]=2
+ },
+ {
+ ["type"]="undead",
+ ["num"]=0,
+ ["ratio"]=10000,
+ ["round"]=2
+ }
+ },
+ ["obj"]=1,
+ ["skill_position"]={
+ 1,
+ 25
+ },
+ ["cd"]=3,
+ ["cd_start"]=0
+ },
+ [50144]={
+ ["effect_type"]=1,
+ ["trigger"]=1,
+ ["effect"]={
+ {
+ ["type"]="hurt",
+ ["num"]=10000,
+ ["ratio"]=10000,
+ ["round"]=0
+ },
+ {
+ ["type"]="corrupt",
+ ["num"]=7500,
+ ["ratio"]=1000,
+ ["round"]=2
+ }
+ },
+ ["obj"]=2,
+ ["skill_position"]={
+ 2,
+ 0
+ },
+ ["shake_time"]=100,
+ ["shake_type"]=1,
+ ["sound_hit"]={
+ 10005
+ },
+ ["name_act"]="attack01",
+ ["fx_self"]=400110
+ },
+ [50145]={
+ ["effect_type"]=1,
+ ["trigger"]=1,
+ ["effect"]={
+ {
+ ["type"]="hurt",
+ ["num"]=10000,
+ ["ratio"]=10000,
+ ["round"]=0
+ },
+ {
+ ["type"]="corrupt",
+ ["num"]=7500,
+ ["ratio"]=1000,
+ ["round"]=2
+ }
+ },
+ ["obj"]=2,
+ ["skill_position"]={
+ 2,
+ 0
+ },
+ ["shake_time"]=100,
+ ["shake_type"]=1,
+ ["sound_hit"]={
+ 10006
+ },
+ ["name_act"]="attack02",
+ ["fx_self"]=400110
+ },
+ [50146]={
+ ["effect_type"]=1,
+ ["trigger"]=1,
+ ["effect"]={
+ {
+ ["type"]="hurt",
+ ["num"]=10000,
+ ["ratio"]=10000,
+ ["round"]=0
+ },
+ {
+ ["type"]="corrupt",
+ ["num"]=7500,
+ ["ratio"]=1000,
+ ["round"]=2
+ }
+ },
+ ["obj"]=2,
+ ["skill_position"]={
+ 2,
+ 0
+ },
+ ["shake_time"]=100,
+ ["shake_type"]=1,
+ ["sound_hit"]={
+ 10023
+ },
+ ["name_act"]="attack03",
+ ["fx_self"]=400110
+ },
+ [50147]={
+ ["effect_type"]=1,
+ ["trigger"]=1,
+ ["effect"]={
+ {
+ ["type"]="hurt",
+ ["num"]=10000,
+ ["ratio"]=10000,
+ ["round"]=0
+ },
+ {
+ ["type"]="corrupt",
+ ["num"]=7500,
+ ["ratio"]=1000,
+ ["round"]=2
+ }
+ },
+ ["obj"]=2,
+ ["skill_position"]={
+ 2,
+ 0
+ },
+ ["shake_time"]=100,
+ ["shake_type"]=1,
+ ["sound_hit"]={
+ 10048
+ },
+ ["name_act"]="attack04",
+ ["fx_self"]=400110
+ },
+ [50148]={
+ ["effect_type"]=1,
+ ["trigger"]=1,
+ ["effect"]={
+ {
+ ["type"]="hurt",
+ ["num"]=10000,
+ ["ratio"]=10000,
+ ["round"]=0
+ },
+ {
+ ["type"]="hurt",
+ ["num"]=10000,
+ ["ratio"]=10000,
+ ["round"]=0
+ },
+ {
+ ["type"]="hurt",
+ ["num"]=10000,
+ ["ratio"]=10000,
+ ["round"]=0
+ },
+ {
+ ["type"]="hurt",
+ ["num"]=10000,
+ ["ratio"]=10000,
+ ["round"]=0
+ },
+ {
+ ["type"]="curse",
+ ["num"]=10000,
+ ["ratio"]=10000,
+ ["round"]=2
+ }
+ },
+ ["obj"]=2,
+ ["effect_block"]={
+ 1,
+ 2,
+ 3,
+ 5
+ },
+ ["skill_position"]={
+ 2,
+ 0
+ },
+ ["cd"]=3,
+ ["cd_start"]=0,
+ ["shake_time"]=200,
+ ["shake_type"]=6,
+ ["sound"]=44002200,
+ ["sound_delay"]=0.0,
+ ["name_act"]="skill01",
+ ["fx_self"]=400111,
+ ["bullet_time"]={
+ 1600,
+ 3000,
+ 200
+ }
+ },
[110001]={
["skill_type"]=5,
["skill_position"]={
@@ -30428,6 +30769,6 @@ local skill = {
}
}
local config = {
-data=skill,count=1104
+data=skill,count=1115
}
return config
\ No newline at end of file
diff --git a/lua/app/config/skill_rogue.lua b/lua/app/config/skill_rogue.lua
index 13ed1d92..0be33447 100644
--- a/lua/app/config/skill_rogue.lua
+++ b/lua/app/config/skill_rogue.lua
@@ -1518,6 +1518,9 @@ local skill_rogue = {
["icon"]="235"
},
[1400401]={
+ ["buff_id"]={
+ "charm"
+ },
["limit_times"]=1,
["weight"]=3000,
["qlt"]=4,
@@ -1578,6 +1581,9 @@ local skill_rogue = {
["icon"]="266"
},
[1400404]={
+ ["buff_id"]={
+ "charm"
+ },
["unlock"]=1400401,
["cover_unlock"]=1400401,
["limit_times"]=1,
@@ -1597,6 +1603,9 @@ local skill_rogue = {
["icon"]="267"
},
[1400405]={
+ ["buff_id"]={
+ "normal_attack_add"
+ },
["limit_times"]=1,
["weight"]=3000,
["qlt"]=4,
@@ -2523,6 +2532,9 @@ local skill_rogue = {
["icon"]="237"
},
[2400403]={
+ ["buff_id"]={
+ "stun"
+ },
["limit_times"]=1,
["weight"]=3000,
["qlt"]=4,
@@ -2567,6 +2579,9 @@ local skill_rogue = {
["icon"]="239"
},
[2400405]={
+ ["buff_id"]={
+ "bleed"
+ },
["limit_times"]=1,
["weight"]=3000,
["qlt"]=4,
@@ -2587,20 +2602,23 @@ local skill_rogue = {
["limit_times"]=1,
["weight"]=3000,
["qlt"]=3,
- ["type"]=12,
+ ["type"]=9,
["skill_position"]=2,
["effect"]={
{
["type"]="add_skill",
["num"]=2400422,
["ratio"]=10000,
- ["round"]=1
+ ["round"]=999
}
},
["obj"]=4,
["icon"]="241"
},
[2400407]={
+ ["buff_id"]={
+ "stun"
+ },
["unlock"]=2400403,
["cover_unlock"]=2400403,
["limit_times"]=1,
@@ -3458,6 +3476,9 @@ local skill_rogue = {
["icon"]="243"
},
[3400402]={
+ ["buff_id"]={
+ "poison"
+ },
["limit_times"]=1,
["weight"]=3000,
["qlt"]=3,
@@ -4398,13 +4419,16 @@ local skill_rogue = {
["qlt"]=3,
["type"]=8,
["parameter"]={
- 5,
+ 4,
1
},
["skill_position"]=4,
["icon"]="252"
},
[4400404]={
+ ["buff_id"]={
+ "corrupt"
+ },
["limit_times"]=1,
["weight"]=3000,
["qlt"]=4,
@@ -4422,6 +4446,9 @@ local skill_rogue = {
["icon"]="253"
},
[4400405]={
+ ["buff_id"]={
+ "rebirth"
+ },
["limit_times"]=1,
["weight"]=3000,
["qlt"]=4,
@@ -4466,6 +4493,9 @@ local skill_rogue = {
["icon"]="255"
},
[4400407]={
+ ["buff_id"]={
+ "rebirth"
+ },
["unlock"]=4400405,
["cover_unlock"]=4400405,
["limit_times"]=1,
@@ -5337,6 +5367,9 @@ local skill_rogue = {
["icon"]="258"
},
[5400403]={
+ ["buff_id"]={
+ "immune"
+ },
["limit_times"]=1,
["weight"]=3000,
["qlt"]=4,
@@ -5354,6 +5387,9 @@ local skill_rogue = {
["icon"]="259"
},
[5400404]={
+ ["buff_id"]={
+ "counterattack"
+ },
["limit_times"]=1,
["weight"]=3000,
["qlt"]=4,
@@ -5371,6 +5407,9 @@ local skill_rogue = {
["icon"]="260"
},
[5400405]={
+ ["buff_id"]={
+ "immune"
+ },
["unlock"]=5400403,
["cover_unlock"]=5400403,
["limit_times"]=1,
@@ -5407,6 +5446,9 @@ local skill_rogue = {
["icon"]="262"
},
[5400407]={
+ ["buff_id"]={
+ "undead"
+ },
["limit_times"]=1,
["weight"]=3000,
["qlt"]=4,
diff --git a/lua/app/config/skin.lua b/lua/app/config/skin.lua
index 548c582a..afee9d67 100644
--- a/lua/app/config/skin.lua
+++ b/lua/app/config/skin.lua
@@ -259,6 +259,32 @@ local skin = {
["skin_point"]=0,
["hero_id"]=44002
},
+ [4400201]={
+ ["model_id"]="p0044",
+ ["qlt"]=4,
+ ["bonus"]={
+ {
+ ["type"]="attr_crit_blue",
+ ["num"]=500
+ },
+ {
+ ["type"]="attr_crit_time_blue",
+ ["num"]=2000
+ }
+ },
+ ["icon"]="20_1",
+ ["got"]=1,
+ ["skin_point"]=15,
+ ["hero_id"]=44002,
+ ["item_id"]=4400201,
+ ["skill_show"]={
+ 44002011,
+ 44002012,
+ 44002013,
+ 44002014,
+ 44002015
+ }
+ },
[44003]={
["model_id"]="p0030",
["qlt"]=1,
@@ -364,9 +390,35 @@ local skin = {
["qlt"]=1,
["skin_point"]=0,
["hero_id"]=54004
+ },
+ [5400401]={
+ ["model_id"]="p0043",
+ ["qlt"]=4,
+ ["bonus"]={
+ {
+ ["type"]="attr_crit_purple",
+ ["num"]=500
+ },
+ {
+ ["type"]="attr_crit_time_purple",
+ ["num"]=2000
+ }
+ },
+ ["icon"]="20_1",
+ ["got"]=1,
+ ["skin_point"]=15,
+ ["hero_id"]=54004,
+ ["item_id"]=5400401,
+ ["skill_show"]={
+ 54004011,
+ 54004012,
+ 54004013,
+ 54004014,
+ 54004015
+ }
}
}
local config = {
-data=skin,count=41
+data=skin,count=43
}
return config
\ No newline at end of file
diff --git a/lua/app/config/skin_skill.lua b/lua/app/config/skin_skill.lua
index b3d93357..4f44f683 100644
--- a/lua/app/config/skin_skill.lua
+++ b/lua/app/config/skin_skill.lua
@@ -451,9 +451,153 @@ local skin_skill = {
400
},
["fx_self_mirror"]=400004
+ },
+ [44002011]={
+ ["skill_position"]={
+ 2,
+ 0
+ },
+ ["shake_time"]=100,
+ ["shake_type"]=1,
+ ["sound_hit"]={
+ 10005
+ },
+ ["name_act"]="attack01",
+ ["fx_self"]=300110,
+ ["fx_self_mirror"]=400110
+ },
+ [44002012]={
+ ["skill_position"]={
+ 2,
+ 0
+ },
+ ["shake_time"]=100,
+ ["shake_type"]=1,
+ ["sound_hit"]={
+ 10006
+ },
+ ["name_act"]="attack02",
+ ["fx_self"]=300110,
+ ["fx_self_mirror"]=400110
+ },
+ [44002013]={
+ ["skill_position"]={
+ 2,
+ 0
+ },
+ ["shake_time"]=100,
+ ["shake_type"]=1,
+ ["sound_hit"]={
+ 10023
+ },
+ ["name_act"]="attack03",
+ ["fx_self"]=300110,
+ ["fx_self_mirror"]=400110
+ },
+ [44002014]={
+ ["skill_position"]={
+ 2,
+ 0
+ },
+ ["shake_time"]=100,
+ ["shake_type"]=1,
+ ["sound_hit"]={
+ 10048
+ },
+ ["name_act"]="attack04",
+ ["fx_self"]=300110,
+ ["fx_self_mirror"]=400110
+ },
+ [44002015]={
+ ["skill_position"]={
+ 2,
+ 0
+ },
+ ["shake_time"]=200,
+ ["shake_type"]=6,
+ ["sound"]=44002200,
+ ["sound_delay"]=0.0,
+ ["name_act"]="skill01",
+ ["fx_self"]=300111,
+ ["bullet_time"]={
+ 1333,
+ 3000,
+ 400
+ },
+ ["fx_self_mirror"]=400111
+ },
+ [54004011]={
+ ["skill_position"]={
+ 1,
+ 25
+ },
+ ["shake_time"]=100,
+ ["shake_type"]=2,
+ ["sound"]=5400410,
+ ["sound_delay"]=0.0,
+ ["name_act"]="attack01",
+ ["fx_self"]=300160,
+ ["fx_self_mirror"]=400160
+ },
+ [54004012]={
+ ["skill_position"]={
+ 1,
+ 25
+ },
+ ["shake_time"]=100,
+ ["shake_type"]=2,
+ ["sound"]=5400411,
+ ["sound_delay"]=0.0,
+ ["name_act"]="attack02",
+ ["fx_self"]=300161,
+ ["fx_self_mirror"]=400161
+ },
+ [54004013]={
+ ["skill_position"]={
+ 1,
+ 25
+ },
+ ["shake_time"]=100,
+ ["shake_type"]=1,
+ ["sound"]=5400412,
+ ["sound_delay"]=0.0,
+ ["name_act"]="attack03",
+ ["fx_self"]=300162,
+ ["fx_self_mirror"]=400162
+ },
+ [54004014]={
+ ["skill_position"]={
+ 1,
+ 25
+ },
+ ["shake_time"]=100,
+ ["shake_type"]=2,
+ ["sound"]=5400413,
+ ["sound_delay"]=0.0,
+ ["name_act"]="attack04",
+ ["fx_self"]=300163,
+ ["fx_self_mirror"]=400163
+ },
+ [54004015]={
+ ["skill_position"]={
+ 1,
+ 25
+ },
+ ["shake_time"]=200,
+ ["shake_type"]=6,
+ ["sound"]=5400420,
+ ["sound_delay"]=0.0,
+ ["name_act"]="skill01",
+ ["fx_self"]=300164,
+ ["bullet_time"]={
+ 1666,
+ 3000,
+ 400
+ },
+ ["fx_self_mirror"]=400164
}
}
local config = {
-data=skin_skill,count=30
+data=skin_skill,count=40
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/cn/avatar.lua b/lua/app/config/strings/cn/avatar.lua
index c9f6c9f4..dd6b7d73 100644
--- a/lua/app/config/strings/cn/avatar.lua
+++ b/lua/app/config/strings/cn/avatar.lua
@@ -124,9 +124,18 @@ local avatar = {
},
[1400101]={
["desc"]="遗迹战甲"
+ },
+ [2300201]={
+ ["desc"]="黑剑士"
+ },
+ [4400201]={
+ ["desc"]="新月女王"
+ },
+ [5400401]={
+ ["desc"]="暗月武神"
}
}
local config = {
-data=avatar,count=42
+data=avatar,count=45
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/cn/global.lua b/lua/app/config/strings/cn/global.lua
index 05224c3d..a240f017 100644
--- a/lua/app/config/strings/cn/global.lua
+++ b/lua/app/config/strings/cn/global.lua
@@ -596,9 +596,9 @@ local localization_global =
["ACT_PVP_DESC_13"] = "是否消耗{0}钻石刷新",
["ACT_PVP_DESC_14"] = "总胜场数",
["ACT_PVP_DESC_15"] = "酒馆积分",
- ["ACT_PVP_DESC_16"] = "酒馆描述",
+ ["ACT_PVP_DESC_16"] = "欢迎入股酒馆基金,在酒馆挑战对手,累计积分可领取奖励分红哟~",
["ACT_PVP_DESC_17"] = "累计胜场",
- ["ACT_PVP_DESC_18"] = "排行榜帮助",
+ ["ACT_PVP_DESC_18"] = "1.活动前七天可以挑战,累计胜场排名。\n2.第八天可领取排行榜奖励,第八天无挑战。",
}
return localization_global
\ No newline at end of file
diff --git a/lua/app/config/strings/cn/item.lua b/lua/app/config/strings/cn/item.lua
index 069217f5..791a4041 100644
--- a/lua/app/config/strings/cn/item.lua
+++ b/lua/app/config/strings/cn/item.lua
@@ -474,9 +474,18 @@ local item = {
[5400101]={
["name"]="翩然起舞",
["desc"]="蝴蝶的新衣装。"
+ },
+ [2300201]={
+ ["name"]="黑剑士"
+ },
+ [4400201]={
+ ["name"]="新月女王"
+ },
+ [5400401]={
+ ["name"]="暗月武神"
}
}
local config = {
-data=item,count=119
+data=item,count=122
}
return config
\ 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 4686e733..c6903b2c 100644
--- a/lua/app/config/strings/cn/skill_rogue.lua
+++ b/lua/app/config/strings/cn/skill_rogue.lua
@@ -885,7 +885,7 @@ local skill_rogue = {
["desc"]="啊,打!沿+方向可额外消除4格。"
},
[2400403]={
- ["desc"]="龙哥普攻有5%概率附加眩晕效果,1回合。"
+ ["desc"]="李普攻有5%概率附加眩晕效果,1回合。"
},
[2400404]={
["desc"]="啊,打!沿X方向可额外消除4格。"
@@ -894,7 +894,7 @@ local skill_rogue = {
["desc"]="啊,打!可附加流血效果,2回合。"
},
[2400406]={
- ["desc"]="Combo:龙哥普攻对冰霜和流血敌人额外增伤。"
+ ["desc"]="Combo:李普攻对冰霜和灼烧敌人额外增伤。"
},
[2400407]={
["desc"]="啊,打!附加的眩晕效果概率提高至10%,回合数+1。"
@@ -927,7 +927,7 @@ local skill_rogue = {
["desc"]="解锁飞棺降物:额外造成多次技能伤害,附加冰霜效果,1回合。"
},
[4400401]={
- ["desc"]="已逝行者普攻有10%概率附加腐败效果,2回合。"
+ ["desc"]="牧魂者普攻有10%概率附加腐败效果,2回合。"
},
[4400402]={
["desc"]="飞棺降物可附加虚弱效果,2回合。"
@@ -936,7 +936,7 @@ local skill_rogue = {
["desc"]="飞棺降物附加的冰霜效果,回合数+1。"
},
[4400404]={
- ["desc"]="Combo:已逝行者普攻腐败敌人将恢复生命。"
+ ["desc"]="Combo:牧魂者普攻腐败敌人将恢复生命。"
},
[4400405]={
["desc"]="飞棺降物释放后为团队附加重生效果,1回合。"
diff --git a/lua/app/config/strings/cn/skin.lua b/lua/app/config/strings/cn/skin.lua
index 5f8bc7c7..d150dcfb 100644
--- a/lua/app/config/strings/cn/skin.lua
+++ b/lua/app/config/strings/cn/skin.lua
@@ -36,7 +36,7 @@ local skin = {
["value"]="初始"
},
[2300201]={
- ["value"]="Z丫"
+ ["value"]="黑剑士"
},
[24001]={
["value"]="初始"
@@ -89,6 +89,9 @@ local skin = {
[44002]={
["value"]="初始"
},
+ [4400201]={
+ ["value"]="新月女王"
+ },
[44003]={
["value"]="初始"
},
@@ -121,9 +124,12 @@ local skin = {
},
[54004]={
["value"]="初始"
+ },
+ [5400401]={
+ ["value"]="暗月武神"
}
}
local config = {
-data=skin,count=41
+data=skin,count=43
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/de/avatar.lua b/lua/app/config/strings/de/avatar.lua
index 734fab36..437eb5db 100644
--- a/lua/app/config/strings/de/avatar.lua
+++ b/lua/app/config/strings/de/avatar.lua
@@ -124,9 +124,18 @@ local avatar = {
},
[1400101]={
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=avatar,count=42
+data=avatar,count=45
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/de/item.lua b/lua/app/config/strings/de/item.lua
index 9cc79563..60496521 100644
--- a/lua/app/config/strings/de/item.lua
+++ b/lua/app/config/strings/de/item.lua
@@ -355,9 +355,18 @@ local item = {
},
[5400101]={
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=item,count=119
+data=item,count=122
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/de/skin.lua b/lua/app/config/strings/de/skin.lua
index ac13dc52..91905e66 100644
--- a/lua/app/config/strings/de/skin.lua
+++ b/lua/app/config/strings/de/skin.lua
@@ -88,6 +88,9 @@ local skin = {
},
[44002]={
+ },
+ [4400201]={
+
},
[44003]={
@@ -121,9 +124,12 @@ local skin = {
},
[54004]={
+ },
+ [5400401]={
+
}
}
local config = {
-data=skin,count=41
+data=skin,count=43
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/en/avatar.lua b/lua/app/config/strings/en/avatar.lua
index da346002..7e0a20cf 100644
--- a/lua/app/config/strings/en/avatar.lua
+++ b/lua/app/config/strings/en/avatar.lua
@@ -124,9 +124,18 @@ local avatar = {
},
[1400101]={
["desc"]="Relic Armor"
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=avatar,count=42
+data=avatar,count=45
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/en/item.lua b/lua/app/config/strings/en/item.lua
index fb125d9f..099e23df 100644
--- a/lua/app/config/strings/en/item.lua
+++ b/lua/app/config/strings/en/item.lua
@@ -470,9 +470,18 @@ local item = {
[5400101]={
["name"]="Graceful Dance",
["desc"]="Butterfly's new outfit."
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=item,count=119
+data=item,count=122
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/en/skin.lua b/lua/app/config/strings/en/skin.lua
index 8a28401f..f90b2560 100644
--- a/lua/app/config/strings/en/skin.lua
+++ b/lua/app/config/strings/en/skin.lua
@@ -88,6 +88,9 @@ local skin = {
},
[44002]={
["value"]="Initial"
+ },
+ [4400201]={
+
},
[44003]={
["value"]="Initial"
@@ -121,9 +124,12 @@ local skin = {
},
[54004]={
["value"]="Initial"
+ },
+ [5400401]={
+
}
}
local config = {
-data=skin,count=41
+data=skin,count=43
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/es/avatar.lua b/lua/app/config/strings/es/avatar.lua
index f30588c3..95d27b24 100644
--- a/lua/app/config/strings/es/avatar.lua
+++ b/lua/app/config/strings/es/avatar.lua
@@ -124,9 +124,18 @@ local avatar = {
},
[1400101]={
["desc"]="Armadura de Ruinas"
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=avatar,count=42
+data=avatar,count=45
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/es/item.lua b/lua/app/config/strings/es/item.lua
index a84048f0..a55637cc 100644
--- a/lua/app/config/strings/es/item.lua
+++ b/lua/app/config/strings/es/item.lua
@@ -470,9 +470,18 @@ local item = {
[5400101]={
["name"]="Danza Elegante",
["desc"]="Traje nuevo de Mariposa."
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=item,count=119
+data=item,count=122
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/es/skin.lua b/lua/app/config/strings/es/skin.lua
index 90f59dd4..ed6b63d2 100644
--- a/lua/app/config/strings/es/skin.lua
+++ b/lua/app/config/strings/es/skin.lua
@@ -88,6 +88,9 @@ local skin = {
},
[44002]={
["value"]="Inicial"
+ },
+ [4400201]={
+
},
[44003]={
["value"]="Inicial"
@@ -121,9 +124,12 @@ local skin = {
},
[54004]={
["value"]="Inicial"
+ },
+ [5400401]={
+
}
}
local config = {
-data=skin,count=41
+data=skin,count=43
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/fr/avatar.lua b/lua/app/config/strings/fr/avatar.lua
index 734fab36..437eb5db 100644
--- a/lua/app/config/strings/fr/avatar.lua
+++ b/lua/app/config/strings/fr/avatar.lua
@@ -124,9 +124,18 @@ local avatar = {
},
[1400101]={
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=avatar,count=42
+data=avatar,count=45
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/fr/item.lua b/lua/app/config/strings/fr/item.lua
index 9cc79563..60496521 100644
--- a/lua/app/config/strings/fr/item.lua
+++ b/lua/app/config/strings/fr/item.lua
@@ -355,9 +355,18 @@ local item = {
},
[5400101]={
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=item,count=119
+data=item,count=122
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/fr/skin.lua b/lua/app/config/strings/fr/skin.lua
index ac13dc52..91905e66 100644
--- a/lua/app/config/strings/fr/skin.lua
+++ b/lua/app/config/strings/fr/skin.lua
@@ -88,6 +88,9 @@ local skin = {
},
[44002]={
+ },
+ [4400201]={
+
},
[44003]={
@@ -121,9 +124,12 @@ local skin = {
},
[54004]={
+ },
+ [5400401]={
+
}
}
local config = {
-data=skin,count=41
+data=skin,count=43
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/id/avatar.lua b/lua/app/config/strings/id/avatar.lua
index 97b79e5a..faf2771e 100644
--- a/lua/app/config/strings/id/avatar.lua
+++ b/lua/app/config/strings/id/avatar.lua
@@ -124,9 +124,18 @@ local avatar = {
},
[1400101]={
["desc"]="Armor Relik"
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=avatar,count=42
+data=avatar,count=45
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/id/item.lua b/lua/app/config/strings/id/item.lua
index c6e1b55f..cd72615f 100644
--- a/lua/app/config/strings/id/item.lua
+++ b/lua/app/config/strings/id/item.lua
@@ -470,9 +470,18 @@ local item = {
[5400101]={
["name"]="Tarian Anggun",
["desc"]="Outfit baru Kupu-kupu."
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=item,count=119
+data=item,count=122
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/id/skin.lua b/lua/app/config/strings/id/skin.lua
index 6908b05b..32d88252 100644
--- a/lua/app/config/strings/id/skin.lua
+++ b/lua/app/config/strings/id/skin.lua
@@ -88,6 +88,9 @@ local skin = {
},
[44002]={
["value"]="Awal"
+ },
+ [4400201]={
+
},
[44003]={
["value"]="Awal"
@@ -121,9 +124,12 @@ local skin = {
},
[54004]={
["value"]="Awal"
+ },
+ [5400401]={
+
}
}
local config = {
-data=skin,count=41
+data=skin,count=43
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/ja/avatar.lua b/lua/app/config/strings/ja/avatar.lua
index 9f0298b4..68219f8d 100644
--- a/lua/app/config/strings/ja/avatar.lua
+++ b/lua/app/config/strings/ja/avatar.lua
@@ -124,9 +124,18 @@ local avatar = {
},
[1400101]={
["desc"]="レリックアーマー"
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=avatar,count=42
+data=avatar,count=45
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/ja/item.lua b/lua/app/config/strings/ja/item.lua
index 78e926b2..980b7760 100644
--- a/lua/app/config/strings/ja/item.lua
+++ b/lua/app/config/strings/ja/item.lua
@@ -470,9 +470,18 @@ local item = {
[5400101]={
["name"]="グレイスフルダンス",
["desc"]="蝴蝶の新スキン。"
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=item,count=119
+data=item,count=122
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/ja/skin.lua b/lua/app/config/strings/ja/skin.lua
index 032a18a5..e7e5e1af 100644
--- a/lua/app/config/strings/ja/skin.lua
+++ b/lua/app/config/strings/ja/skin.lua
@@ -88,6 +88,9 @@ local skin = {
},
[44002]={
["value"]="デフォルト"
+ },
+ [4400201]={
+
},
[44003]={
["value"]="デフォルト"
@@ -121,9 +124,12 @@ local skin = {
},
[54004]={
["value"]="デフォルト"
+ },
+ [5400401]={
+
}
}
local config = {
-data=skin,count=41
+data=skin,count=43
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/ko/avatar.lua b/lua/app/config/strings/ko/avatar.lua
index d6003432..bd96be72 100644
--- a/lua/app/config/strings/ko/avatar.lua
+++ b/lua/app/config/strings/ko/avatar.lua
@@ -124,9 +124,18 @@ local avatar = {
},
[1400101]={
["desc"]="유적 갑옷"
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=avatar,count=42
+data=avatar,count=45
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/ko/item.lua b/lua/app/config/strings/ko/item.lua
index da4c04b8..2b2e0460 100644
--- a/lua/app/config/strings/ko/item.lua
+++ b/lua/app/config/strings/ko/item.lua
@@ -470,9 +470,18 @@ local item = {
[5400101]={
["name"]="날아오르는 춤",
["desc"]="나비의 새 옷"
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=item,count=119
+data=item,count=122
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/ko/skin.lua b/lua/app/config/strings/ko/skin.lua
index 0061bb38..152f4df7 100644
--- a/lua/app/config/strings/ko/skin.lua
+++ b/lua/app/config/strings/ko/skin.lua
@@ -88,6 +88,9 @@ local skin = {
},
[44002]={
["value"]="초기"
+ },
+ [4400201]={
+
},
[44003]={
["value"]="초기"
@@ -121,9 +124,12 @@ local skin = {
},
[54004]={
["value"]="초기"
+ },
+ [5400401]={
+
}
}
local config = {
-data=skin,count=41
+data=skin,count=43
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/pt/avatar.lua b/lua/app/config/strings/pt/avatar.lua
index e4258495..92eaf905 100644
--- a/lua/app/config/strings/pt/avatar.lua
+++ b/lua/app/config/strings/pt/avatar.lua
@@ -124,9 +124,18 @@ local avatar = {
},
[1400101]={
["desc"]="Armadura das Ruínas"
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=avatar,count=42
+data=avatar,count=45
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/pt/item.lua b/lua/app/config/strings/pt/item.lua
index e1f6a0a4..f5a2a670 100644
--- a/lua/app/config/strings/pt/item.lua
+++ b/lua/app/config/strings/pt/item.lua
@@ -470,9 +470,18 @@ local item = {
[5400101]={
["name"]="Dança Fluida",
["desc"]="A nova roupa da Borboleta."
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=item,count=119
+data=item,count=122
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/pt/skin.lua b/lua/app/config/strings/pt/skin.lua
index c5114cef..3a986068 100644
--- a/lua/app/config/strings/pt/skin.lua
+++ b/lua/app/config/strings/pt/skin.lua
@@ -88,6 +88,9 @@ local skin = {
},
[44002]={
["value"]="Inicial"
+ },
+ [4400201]={
+
},
[44003]={
["value"]="Inicial"
@@ -121,9 +124,12 @@ local skin = {
},
[54004]={
["value"]="Inicial"
+ },
+ [5400401]={
+
}
}
local config = {
-data=skin,count=41
+data=skin,count=43
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/ru/avatar.lua b/lua/app/config/strings/ru/avatar.lua
index 734fab36..437eb5db 100644
--- a/lua/app/config/strings/ru/avatar.lua
+++ b/lua/app/config/strings/ru/avatar.lua
@@ -124,9 +124,18 @@ local avatar = {
},
[1400101]={
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=avatar,count=42
+data=avatar,count=45
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/ru/item.lua b/lua/app/config/strings/ru/item.lua
index 9cc79563..60496521 100644
--- a/lua/app/config/strings/ru/item.lua
+++ b/lua/app/config/strings/ru/item.lua
@@ -355,9 +355,18 @@ local item = {
},
[5400101]={
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=item,count=119
+data=item,count=122
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/ru/skin.lua b/lua/app/config/strings/ru/skin.lua
index ac13dc52..91905e66 100644
--- a/lua/app/config/strings/ru/skin.lua
+++ b/lua/app/config/strings/ru/skin.lua
@@ -88,6 +88,9 @@ local skin = {
},
[44002]={
+ },
+ [4400201]={
+
},
[44003]={
@@ -121,9 +124,12 @@ local skin = {
},
[54004]={
+ },
+ [5400401]={
+
}
}
local config = {
-data=skin,count=41
+data=skin,count=43
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/th/avatar.lua b/lua/app/config/strings/th/avatar.lua
index f3d0fa76..67d52663 100644
--- a/lua/app/config/strings/th/avatar.lua
+++ b/lua/app/config/strings/th/avatar.lua
@@ -124,9 +124,18 @@ local avatar = {
},
[1400101]={
["desc"]="เกราะรบซาก"
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=avatar,count=42
+data=avatar,count=45
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/th/item.lua b/lua/app/config/strings/th/item.lua
index 50f2004f..7338e96e 100644
--- a/lua/app/config/strings/th/item.lua
+++ b/lua/app/config/strings/th/item.lua
@@ -470,9 +470,18 @@ local item = {
[5400101]={
["name"]="เยื้องกรายเต้นรำ",
["desc"]="ชุดใหม่ของผีเสื้อ"
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=item,count=119
+data=item,count=122
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/th/skin.lua b/lua/app/config/strings/th/skin.lua
index 9228040e..cf61741f 100644
--- a/lua/app/config/strings/th/skin.lua
+++ b/lua/app/config/strings/th/skin.lua
@@ -88,6 +88,9 @@ local skin = {
},
[44002]={
["value"]="เริ่มต้น"
+ },
+ [4400201]={
+
},
[44003]={
["value"]="เริ่มต้น"
@@ -121,9 +124,12 @@ local skin = {
},
[54004]={
["value"]="เริ่มต้น"
+ },
+ [5400401]={
+
}
}
local config = {
-data=skin,count=41
+data=skin,count=43
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/vi/avatar.lua b/lua/app/config/strings/vi/avatar.lua
index 1bab61c3..30be4a00 100644
--- a/lua/app/config/strings/vi/avatar.lua
+++ b/lua/app/config/strings/vi/avatar.lua
@@ -124,9 +124,18 @@ local avatar = {
},
[1400101]={
["desc"]="Giáp Di Tích"
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=avatar,count=42
+data=avatar,count=45
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/vi/item.lua b/lua/app/config/strings/vi/item.lua
index 207020e3..d3f5b5c5 100644
--- a/lua/app/config/strings/vi/item.lua
+++ b/lua/app/config/strings/vi/item.lua
@@ -470,9 +470,18 @@ local item = {
[5400101]={
["name"]="Nhảy Múa Nhanh Nhẹn",
["desc"]="Quần áo mới của Bươm Bướm."
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=item,count=119
+data=item,count=122
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/vi/skin.lua b/lua/app/config/strings/vi/skin.lua
index d93240ae..90a0c858 100644
--- a/lua/app/config/strings/vi/skin.lua
+++ b/lua/app/config/strings/vi/skin.lua
@@ -88,6 +88,9 @@ local skin = {
},
[44002]={
["value"]="Ban Đầu"
+ },
+ [4400201]={
+
},
[44003]={
["value"]="Ban Đầu"
@@ -121,9 +124,12 @@ local skin = {
},
[54004]={
["value"]="Ban Đầu"
+ },
+ [5400401]={
+
}
}
local config = {
-data=skin,count=41
+data=skin,count=43
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/zh/avatar.lua b/lua/app/config/strings/zh/avatar.lua
index b48d856d..3c685777 100644
--- a/lua/app/config/strings/zh/avatar.lua
+++ b/lua/app/config/strings/zh/avatar.lua
@@ -124,9 +124,18 @@ local avatar = {
},
[1400101]={
["desc"]="遺跡戰甲"
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=avatar,count=42
+data=avatar,count=45
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/zh/item.lua b/lua/app/config/strings/zh/item.lua
index 40872dbc..db5b7f6b 100644
--- a/lua/app/config/strings/zh/item.lua
+++ b/lua/app/config/strings/zh/item.lua
@@ -470,9 +470,18 @@ local item = {
[5400101]={
["name"]="翩然起舞",
["desc"]="蝴蝶的新服裝。"
+ },
+ [2300201]={
+
+ },
+ [4400201]={
+
+ },
+ [5400401]={
+
}
}
local config = {
-data=item,count=119
+data=item,count=122
}
return config
\ No newline at end of file
diff --git a/lua/app/config/strings/zh/skin.lua b/lua/app/config/strings/zh/skin.lua
index 93112cd0..3a4755dd 100644
--- a/lua/app/config/strings/zh/skin.lua
+++ b/lua/app/config/strings/zh/skin.lua
@@ -88,6 +88,9 @@ local skin = {
},
[44002]={
["value"]="初始"
+ },
+ [4400201]={
+
},
[44003]={
["value"]="初始"
@@ -121,9 +124,12 @@ local skin = {
},
[54004]={
["value"]="初始"
+ },
+ [5400401]={
+
}
}
local config = {
-data=skin,count=41
+data=skin,count=43
}
return config
\ No newline at end of file
diff --git a/lua/app/config/task_type.lua.meta b/lua/app/config/task_type.lua.meta
index 78b0ad77..915fd215 100644
--- a/lua/app/config/task_type.lua.meta
+++ b/lua/app/config/task_type.lua.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 06cee74f7d55a4049a81d89bfe1caa02
+guid: a1f8b50c03a5fd747b96cc18be330104
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
diff --git a/lua/app/global/global_const.lua b/lua/app/global/global_const.lua
index c7d0f147..54aaab06 100644
--- a/lua/app/global/global_const.lua
+++ b/lua/app/global/global_const.lua
@@ -13,6 +13,7 @@ local CONST_PATHS = {
HeroConst = "app/module/hero/hero_const",
FormationConst = "app/module/formation/formation_const",
EquipConst = "app/module/equip/equip_const",
+ RunesConst = "app/module/runes/runes_const",
DungeonConst = "app/module/dungeon/dungeon_const",
ShopConst = "app/module/shop/shop_const",
SummonConst = "app/module/summon/summon_const",
@@ -22,7 +23,7 @@ local CONST_PATHS = {
ActivityConst = "app/module/activity/activity_const",
FourteenDayConst = "app/module/activity/fourteen_day/fourteen_day_const",
DungeonRuneConst = "app/module/dungeon_rune/dungeon_rune_const",
- DungeonRuneConst = "app/module/dungeon_rune/dungeon_rune_const",
+ FullMoonConst = "app/module/activity/full_moon/full_moon_const",
}
if EDITOR_MODE then
@@ -312,7 +313,8 @@ GConst.MESSAGE_BOX_TYPE = {
GConst.MESSAGE_BOX_SHOW_TODAY = {
BOUNTY_BUY_LEVEL = 1,
HOT_SELL_BUY = 2,
- ACTIVITY_BUY_LEVEL = 2,
+ ACTIVITY_BUY_LEVEL = 3,
+ RUNES_AUTO = 4,
}
GConst.QUALITY_TYPE =
diff --git a/lua/app/global/global_func.lua b/lua/app/global/global_func.lua
index 06d2c83a..5eb4df2f 100644
--- a/lua/app/global/global_func.lua
+++ b/lua/app/global/global_func.lua
@@ -434,14 +434,63 @@ function GFunc.getBuffDesc(buffName, effectNum, ispercent)
end
function GFunc.getAttrDesc(attrName, attrNum)
- attrNum = attrNum // 100
+ attrNum = GFunc.getAttrShowValue(attrName, attrNum, true)
return I18N:getTextWithOtherKey("attr", "name", attrName, "desc", attrNum)
end
+-- 获取属性用于显示的数值
+function GFunc.getAttrShowValue(attrType, attrNum, notPercentSign)
+ if table.containValue(GConst.MATCH_ATTACK_ADD_NAME, attrType) or
+ table.containValue(GConst.MATCH_HP_ADD_NAME, attrType) or
+ table.containValue(GConst.MATCH_NORMAL_HURTP_NAME, attrType) or
+ table.containValue(GConst.MATCH_SKILL_HURTP_NAME, attrType) or
+ table.containValue(GConst.MATCH_CRIT_NAME, attrType) or
+ table.containValue(GConst.MATCH_CRIT_TIME_NAME, attrType) or
+ table.containValue(GConst.MATCH_CURED_NAME, attrType) or
+ table.containValue(GConst.MATCH_ALL_HURTP_NAME, attrType)
+ then
+ local str = notPercentSign and "" or "%"
+ return attrNum // GConst.BattleConst.PERCENT_FACTOR .. str
+ else
+ return attrNum // GConst.BattleConst.DEFAULT_FACTOR
+ end
+end
+
function GFunc.getAttrName(key)
return I18N:getText("attr", key, "name")
end
+-- 获取任务icon
+function GFunc.getTaskIcon(taskType, taskTarget)
+ if taskType == GConst.TaskConst.TASK_TYPE.X_ARENA_GRADING then
+ local name = DataManager.ArenaData:getGradingIconName(DataManager.ArenaData:getGradingIdFromScore(taskTarget))
+ if name == "arena_dan_1" then
+ return "13"
+ elseif name == "arena_dan_2" then
+ return "14"
+ elseif name == "arena_dan_3" then
+ return "12"
+ end
+ else
+ return ConfigManager:getConfig("task_type")[taskType].icon
+ end
+end
+
+-- 获取任务描述
+function GFunc.getTaskDesc(taskType, taskTarget)
+ if taskType == GConst.TaskConst.TASK_TYPE.X_ARENA_GRADING then
+ -- 段位显示文本
+ local grading = DataManager.ArenaData:getGradingName(DataManager.ArenaData:getGradingIdFromScore(taskTarget))
+ return I18N:getText("task_type", taskType, "desc", grading)
+ elseif taskType == GConst.TaskConst.TASK_TYPE.X_DUNGEON_ARMOR then
+ -- 防具副本显示章节和关卡
+ local cfg = DataManager.DungeonData:getDungeonDataByType(ModuleManager.MODULE_KEY.DUNGEON_ARMOR):getConfig(taskTarget)
+ return I18N:getText("task_type", taskType, "desc", cfg.chapter, cfg.stage)
+ else
+ return I18N:getText("task_type", taskType, "desc", taskTarget)
+ end
+end
+
function GFunc.getTimeStrWithMS(time)
local m = math.floor(time/60)
local s = time%60
@@ -1821,7 +1870,7 @@ function GFunc.formatPlayerName(name)
return name
end
--- info = {array_heroes, heroes_equips, skins} -- 服务器返回的数据
+-- info = {array_heroes, heroes_equips, skins, heroes_runes} -- 服务器返回的数据
function GFunc.formatPlayerFormationInfo(info)
local formation = {}
if not info.array_heroes then
@@ -1840,6 +1889,9 @@ function GFunc.formatPlayerFormationInfo(info)
if not info.skins then
info.skins = {}
end
+ if not info.heroes_runes then
+ info.heroes_runes = {}
+ end
for matchType, heroEntity in pairs(formation) do
local heroId = heroEntity:getCfgId()
@@ -1868,6 +1920,13 @@ function GFunc.formatPlayerFormationInfo(info)
if #skinIds > 0 then
heroEntity:setSkins(skinIds)
end
+
+ -- 处理符文
+ if info.heroes_runes[heroId] == nil then
+ info.heroes_runes[heroId] = {grids = {}}
+ end
+ local runesEntity = DataManager.RunesData:createEntity(heroId, info.heroes_runes[heroId].grids)
+ heroEntity:setRunes(runesEntity)
end
return formation
diff --git a/lua/app/module/activity/full_moon.meta b/lua/app/module/activity/full_moon.meta
new file mode 100644
index 00000000..0d157e21
--- /dev/null
+++ b/lua/app/module/activity/full_moon.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0ee2abea36076ae4d8463dff225a1234
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/lua/app/module/activity/full_moon/full_moon_const.lua b/lua/app/module/activity/full_moon/full_moon_const.lua
new file mode 100644
index 00000000..826e3f09
--- /dev/null
+++ b/lua/app/module/activity/full_moon/full_moon_const.lua
@@ -0,0 +1,28 @@
+local FullMoonConst = {}
+
+-- 活动id
+FullMoonConst.ACT_ID = 406
+
+
+FullMoonConst.ACT_DAYS = 10
+
+-- 英雄自选礼包分页显示个数
+FullMoonConst.HERO_GIFT_SHOW_STEP = {
+ 4,4,5
+}
+
+-- 界面
+FullMoonConst.PANEL_TYPE = {
+ TASK = 1,
+ CHOOSE_HERO = 2,
+ NEW_HERO = 3,
+ SKIN = 4,
+}
+
+FullMoonConst.SKIN_CHALLENGE_ID_1 = 1
+FullMoonConst.SKIN_CHALLENGE_ID_2 = 2
+
+FullMoonConst.SKIN_GIFT_ID_1 = 200102
+FullMoonConst.SKIN_GIFT_ID_2 = 200202
+
+return FullMoonConst
\ No newline at end of file
diff --git a/lua/app/ui/hero/skin_info_comp.lua.meta b/lua/app/module/activity/full_moon/full_moon_const.lua.meta
similarity index 86%
rename from lua/app/ui/hero/skin_info_comp.lua.meta
rename to lua/app/module/activity/full_moon/full_moon_const.lua.meta
index 2dae3444..e03c47f8 100644
--- a/lua/app/ui/hero/skin_info_comp.lua.meta
+++ b/lua/app/module/activity/full_moon/full_moon_const.lua.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 7209380a6f275fe4fa7fd87e464fde53
+guid: 2ce3abbd5316c744c9ea4254adf1a947
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
diff --git a/lua/app/module/activity/full_moon/full_moon_manager.lua b/lua/app/module/activity/full_moon/full_moon_manager.lua
new file mode 100644
index 00000000..8a32c606
--- /dev/null
+++ b/lua/app/module/activity/full_moon/full_moon_manager.lua
@@ -0,0 +1,112 @@
+local FullMoonManager = class("FullMoonManager", BaseModule)
+
+function FullMoonManager:showActMainUI(panelType)
+ UIManager:showUI("app/ui/activity/full_moon/full_moon_ui", panelType)
+end
+
+-- 初始化计时器
+function FullMoonManager:initTimer()
+ self:unscheduleGlobal(self.actSid)
+
+ if DataManager.FullMoonData:isOpenTime() then
+ Logger.logHighlight("圆月活动结束倒计时:"..DataManager.FullMoonData:getEndRemainTime())
+ self.actSid = self:performWithDelayGlobal(function()
+ Logger.logHighlight("圆月活动结束")
+ EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.ACTIVITY_FULL_MOON_END)
+ end, DataManager.FullMoonData:getEndRemainTime())
+ elseif DataManager.FullMoonData:getStartRemainTime() > 0 then
+ Logger.logHighlight("圆月活动开始倒计时:"..DataManager.FullMoonData:getStartRemainTime())
+ self.actSid = self:performWithDelayGlobal(function()
+ Logger.logHighlight("圆月活动开始")
+ self:reqActData()
+ end, DataManager.FullMoonData:getStartRemainTime())
+ end
+end
+
+-- 请求活动数据
+function FullMoonManager:reqActData()
+ if not DataManager.FullMoonData:isOpen() then
+ return
+ end
+ if not DataManager.FullMoonData:isOpenTime() then
+ return
+ end
+ if self.isReqActData then
+ return
+ end
+
+ self.isReqActData = true
+ self:sendMessage(ProtoMsgType.FromMsgEnum.FullMoonInfoReq, {}, {}, self.rspActData, nil)
+end
+
+function FullMoonManager:rspActData(result)
+ self.isReqActData = false
+ DataManager.FullMoonData:setInReset(false)
+ if result.err_code == GConst.ERROR_STR.SUCCESS then
+ DataManager.FullMoonData:onGetActData(result.full_moon)
+ end
+end
+
+-- 请求任务奖励
+function FullMoonManager:reqTaskReward(id)
+ self:sendMessage(ProtoMsgType.FromMsgEnum.FullMoonTaskClaimReq, {id = id}, {}, self.rspTaskReward, BIReport.ITEM_GET_TYPE.FULL_MOON_TASK)
+end
+
+function FullMoonManager:rspTaskReward(result)
+ if result.err_code == GConst.ERROR_STR.SUCCESS then
+ DataManager.FullMoonData:onReceivedTaskReward(result.reqData.id, result.finished)
+ GFunc.showRewardBox(result.rewards)
+ end
+end
+
+-- 请求任务进度奖励
+function FullMoonManager:reqTaskProgressReward(id)
+ self:sendMessage(ProtoMsgType.FromMsgEnum.FullMoonRewardClaimReq, {id = id}, {}, self.rspTaskProgressReward, BIReport.ITEM_GET_TYPE.FULL_MOON_TASK_PROG_REWARD)
+end
+
+function FullMoonManager:rspTaskProgressReward(result)
+ if result.err_code == GConst.ERROR_STR.SUCCESS then
+ DataManager.FullMoonData:onReceivedTaskProgressReward(result.reqData.id)
+ GFunc.showRewardBox(result.rewards)
+ end
+end
+
+-- 自选礼包选择
+function FullMoonManager:reqGiftChooseHero(index)
+ self:sendMessage(ProtoMsgType.FromMsgEnum.FullMoonCustomGiftChooseReq, {index = index}, {}, self.rspGiftChooseHero, nil)
+end
+
+function FullMoonManager:rspGiftChooseHero(result)
+ if result.err_code == GConst.ERROR_STR.SUCCESS then
+ DataManager.FullMoonData:onChooseHeroSuccess(result.reqData.index)
+ end
+end
+
+-- 皮肤挑战
+function FullMoonManager:skinChallenge(id)
+ DataManager.FullMoonData:setCurSkinChallengeId(id)
+ ModuleManager.BattleManager:playBattle(GConst.BattleConst.BATTLE_TYPE.FULL_MOON_SKIN, nil, function()
+ UIManager:closeAllUI()
+ ModuleManager.MaincityManager:showMainCityUI()
+ self:showActMainUI(GConst.FullMoonConst.PANEL_TYPE.SKIN)
+ end)
+end
+
+-- 请求皮肤关卡挑战奖励
+function FullMoonManager:reqChapterSkinClaim(id, combatReport)
+ if not combatReport.victory or DataManager.FullMoonData:isReceivedSkinFirstChallengeReward(id) then
+ ModuleManager.BattleManager:showBattleResultUI(GConst.BattleConst.BATTLE_TYPE.FULL_MOON_SKIN, {}, combatReport or {}, nil, nil, true)
+ return
+ end
+
+ self:sendMessage(ProtoMsgType.FromMsgEnum.FullMoonChapterSkinClaimReq, {id = id, combatReport = combatReport}, {}, self.rspChapterSkinClaim, BIReport.ITEM_GET_TYPE.FULL_MOON_SKIN_CHALLENGE_REWARD)
+end
+
+function FullMoonManager:rspChapterSkinClaim(result)
+ if result.err_code == GConst.ERROR_STR.SUCCESS then
+ DataManager.FullMoonData:onReceivedSkinChallengeReward(result.reqData.id)
+ ModuleManager.BattleManager:showBattleResultUI(GConst.BattleConst.BATTLE_TYPE.FULL_MOON_SKIN, result.rewards, result.reqData and result.reqData.combatReport or {}, nil, nil, true)
+ end
+end
+
+return FullMoonManager
\ No newline at end of file
diff --git a/lua/app/module/activity/full_moon/full_moon_manager.lua.meta b/lua/app/module/activity/full_moon/full_moon_manager.lua.meta
new file mode 100644
index 00000000..96c45dbe
--- /dev/null
+++ b/lua/app/module/activity/full_moon/full_moon_manager.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 5b71325bf902494459246e0b6b8b0799
+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 eb9b7bda..10047321 100644
--- a/lua/app/module/arena/arena_manager.lua
+++ b/lua/app/module/arena/arena_manager.lua
@@ -127,7 +127,7 @@ function ArenaManager:rspSettlement(result)
if result.err_code == GConst.ERROR_STR.SUCCESS then
local reqData = result.reqData
- DataManager.ArenaData:onBattleResultReceived(result.settlement, result)
+ DataManager.ArenaData:onBattleResultReceived(result.score, result.settlement, result)
DataManager.ArenaData:initGiftInfo(result.act_arena_gift)
local checkCount = 0
if result.settlement.win then
diff --git a/lua/app/module/battle/battle_const.lua b/lua/app/module/battle/battle_const.lua
index d0d70b9d..905466b4 100644
--- a/lua/app/module/battle/battle_const.lua
+++ b/lua/app/module/battle/battle_const.lua
@@ -20,6 +20,7 @@ BattleConst.SKILL_TYPE_ASSISTING = 3
BattleConst.SKILL_TYPE_PASSIVE = 4
BattleConst.SKILL_SELECT_COUNT = 3
BattleConst.DEFAULT_FACTOR = 10000
+BattleConst.PERCENT_FACTOR = 100
BattleConst.TIME_FACTOR = 1000
BattleConst.INIT_POS_X = 140 -- 战斗单位初始化的坐标
BattleConst.UNIT_FRONT_POS_X = 0 -- 战斗单位身前的坐标
@@ -90,7 +91,8 @@ BattleConst.BATTLE_TYPE = {
DUNGEON_ARMOR = "7",
ACT_BOSS_RUSH = "8",
DUNGEON_RUNE = "9",
- ACT_PVP = "10",
+ ACT_PVP = "11",
+ FULL_MOON_SKIN = "10",
}
BattleConst.IS_PVP_BATTLE = {
diff --git a/lua/app/module/battle/battle_manager.lua b/lua/app/module/battle/battle_manager.lua
index 228aeba1..26349841 100644
--- a/lua/app/module/battle/battle_manager.lua
+++ b/lua/app/module/battle/battle_manager.lua
@@ -17,6 +17,7 @@ local BATTLE_CONTROLLER = {
[BattleConst.BATTLE_TYPE.ACT_BOSS_RUSH] = "app/module/battle/controller/battle_controller_boss_rush",
[BattleConst.BATTLE_TYPE.DUNGEON_RUNE] = "app/module/battle/controller/battle_controller_dungeon_rune",
[BattleConst.BATTLE_TYPE.ACT_PVP] = "app/module/battle/controller/battle_controller_act_pvp",
+ [BattleConst.BATTLE_TYPE.FULL_MOON_SKIN] = "app/module/battle/controller/battle_controller_full_moon_skin",
}
function BattleManager:showPauseUI(battleType, battleController)
diff --git a/lua/app/module/battle/controller/battle_controller_dungeon_rune.lua b/lua/app/module/battle/controller/battle_controller_dungeon_rune.lua
index 5304806e..2c4e52b3 100644
--- a/lua/app/module/battle/controller/battle_controller_dungeon_rune.lua
+++ b/lua/app/module/battle/controller/battle_controller_dungeon_rune.lua
@@ -28,9 +28,6 @@ function BattleControllerDungeonRune:initOther()
if self.battleUI then
local desc = self.dungeonRuneRemainRoundCount
- if not self.isBossChapter then
- desc = I18N:getGlobalText(I18N.GlobalConst.DUNGEON_WEAPON_DESC_6, self.chapterId)
- end
self.battleUI:refreshWave(desc, GConst.ATLAS_PATH.COMMON, "common_dec_15")
end
@@ -161,9 +158,6 @@ function BattleControllerDungeonRune:enterRoundBegin()
self.dungeonRuneRemainRoundCount = self.dungeonRuneRemainRoundCount - 1
if self.battleUI then
local desc = self.dungeonRuneRemainRoundCount + 1
- if not self.isBossChapter then
- desc = I18N:getGlobalText(I18N.GlobalConst.DUNGEON_WEAPON_DESC_6, self.chapterId)
- end
self.battleUI:refreshWave(desc, GConst.ATLAS_PATH.COMMON, "common_dec_15")
end
BattleController.enterRoundBegin(self)
@@ -186,9 +180,6 @@ function BattleControllerDungeonRune:enterRoundBegin()
end
if self.battleUI then
local desc = self.dungeonRuneRemainRoundCount + 1
- if not self.isBossChapter then
- desc = I18N:getGlobalText(I18N.GlobalConst.DUNGEON_WEAPON_DESC_6, self.chapterId)
- end
self.battleUI:refreshWave(desc, GConst.ATLAS_PATH.COMMON, "common_dec_15")
end
BattleController.enterRoundBegin(self)
@@ -239,6 +230,44 @@ function BattleControllerDungeonRune:getInitBoard()
return self.boradList, self.fixedRandomGrid, self.mysteryBoxIndexMap
end
+function BattleControllerDungeonRune:refreshWave()
+ if not self.battleUI then
+ return
+ end
+ -- local desc = self.dungeonRuneRemainRoundCount + 1
+ -- self.battleUI:refreshWave(desc, GConst.ATLAS_PATH.COMMON, "common_dec_15")
+end
+
+function BattleControllerDungeonRune:getRandomGridInfo()
+ local list, fixedRandomGrid = self:getInitBoard()
+ local fixedRandomList = fixedRandomGrid[self.curBoardIndex]
+
+ local gridType = 0
+ local elementType
+ if fixedRandomList and fixedRandomList[1] then
+ elementType = table.remove(fixedRandomList, 1)
+ else
+ local map = self.battleData:getElementTypeMap()
+ self.getRandomGridInfoIndexs = table.clearOrCreate(self.getRandomGridInfoIndexs)
+ self.getRandomGridInfoTypeList = table.clearOrCreate(self.getRandomGridInfoTypeList)
+ for typeName, typeNum in pairs(BattleConst.ELEMENT_TYPE) do
+ if not self:getSealElementType()[typeNum] and self:getSkillEntityByElement(typeNum) then
+ local weight = 100
+ if self.elementWeightMap and self.elementWeightMap[typeNum] then
+ weight = weight + self.elementWeightMap[typeNum]
+ end
+ table.insert(self.getRandomGridInfoIndexs, weight)
+ table.insert(self.getRandomGridInfoTypeList, typeNum)
+ end
+ end
+
+ local index = GFunc.getRandomIndex(self.getRandomGridInfoIndexs)
+ elementType = self.getRandomGridInfoTypeList[index]
+ end
+
+ return {gridType = gridType, elementType = elementType}
+end
+
function BattleControllerDungeonRune:onLoadComplete(...)
-- 处理技能
local unlockAllSkill = function(side)
@@ -401,7 +430,7 @@ function BattleControllerDungeonRune:getRuneTaskNumByType(taskInfo)
elseif taskType == GConst.DungeonRuneConst.TASK_TYPE.BREAK_GRID_TYPE then
return self.totalBreakedGridType[taskParams1] or 0
elseif taskType == GConst.DungeonRuneConst.TASK_TYPE.KILL_MONSTER then
- return self.getTaskProgress[GConst.BattleConst.BATTLE_TASK_FIELD.KILL_NORMAL_MONSTER]
+ return self.taskProgress[GConst.BattleConst.BATTLE_TASK_FIELD.KILL_NORMAL_MONSTER]
end
end
@@ -411,7 +440,7 @@ function BattleControllerDungeonRune:getRuneTaskAllOver()
local taskProgress = ModuleManager.DungeonRuneManager:getTaskStatus(self, chapterCondition)
local taskOver = true
for index, info in pairs(taskProgress) do
- if not info.over then
+ if not info.over and index ~= 1 then
taskOver = false
break
end
diff --git a/lua/app/module/battle/controller/battle_controller_full_moon_skin.lua b/lua/app/module/battle/controller/battle_controller_full_moon_skin.lua
new file mode 100644
index 00000000..ba960300
--- /dev/null
+++ b/lua/app/module/battle/controller/battle_controller_full_moon_skin.lua
@@ -0,0 +1,63 @@
+local BattleController = require "app/module/battle/controller/battle_controller"
+local BattleControllerFullMoonSkin = class("BattleControllerFullMoonSkin", BattleController)
+
+function BattleControllerFullMoonSkin:getBoardConfig()
+ return ConfigManager:getConfig("chapter_board_dungeon_shards")
+end
+
+function BattleControllerFullMoonSkin:getChapterConfig()
+ return ConfigManager:getConfig("chapter_new_skin_fight")
+end
+
+function BattleControllerFullMoonSkin:getChapterId()
+ return DataManager.FullMoonData:getCurSkinChallengeId()
+end
+
+function BattleControllerFullMoonSkin:controllBattleEnd()
+ self.combatReport = {
+ battleType = GConst.BattleConst.BATTLE_TYPE.FULL_MOON_SKIN,
+ wave = self:getWaveIndex(),
+ victory = self.victory,
+ }
+ local atkReport = {}
+ local teamEntity = self.battleData:getAtkTeam()
+ local members = teamEntity:getAllMembers()
+ for k, v in pairs(members) do
+ local report = {
+ heroId = v:getId(),
+ dmg = v:getDamageCount(),
+ }
+ table.insert(atkReport, report)
+ end
+ self.combatReport.atkReport = atkReport
+ ModuleManager.FullMoonManager:reqChapterSkinClaim(self.chapterId, self.combatReport)
+end
+
+function BattleControllerFullMoonSkin:postWaveOver(atkDead, isQuit)
+ local deathType = BIReport.FIGHT_DEATH_TYPE.SURVIVE
+ local waveEndType = BIReport.FIGHT_WAVE_END_TYPE.WIN
+ if atkDead then
+ if self.isBossWave then
+ deathType = BIReport.FIGHT_DEATH_TYPE.BOSS_FAIL
+ else
+ deathType = BIReport.FIGHT_DEATH_TYPE.NORMAL_FAIL
+ end
+ waveEndType = BIReport.FIGHT_WAVE_END_TYPE.FAIL
+ end
+
+ if isQuit then
+ waveEndType = BIReport.FIGHT_WAVE_END_TYPE.QUIT
+ end
+
+ local duration = self.waveDurationTime
+ local totalTime = self.totalDurationTime
+ local isFianlStep = self:getWaveIndex() >= self.maxWaveIndex
+
+ BIReport:postFightEnd(GConst.BattleConst.BATTLE_TYPE.FULL_MOON_SKIN, self.battleData, self.chapterId, self:getWaveIndex(), duration, totalTime, self.eliminateCount, self.eliminateTotalCount, waveEndType, deathType, 0, true, isFianlStep, self.maxLinkCount)
+end
+
+function BattleControllerFullMoonSkin:postFightStart()
+ BIReport:postFightBegin(GConst.BattleConst.BATTLE_TYPE.FULL_MOON_SKIN, self:getWaveIndex(), self.chapterId, 0, 0)
+end
+
+return BattleControllerFullMoonSkin
\ No newline at end of file
diff --git a/lua/app/module/battle/controller/battle_controller_full_moon_skin.lua.meta b/lua/app/module/battle/controller/battle_controller_full_moon_skin.lua.meta
new file mode 100644
index 00000000..f49f8bd0
--- /dev/null
+++ b/lua/app/module/battle/controller/battle_controller_full_moon_skin.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 4d3f99278cc5ab44e81190f7b9819a0b
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/module/battle/controller/battle_controller_pvp.lua b/lua/app/module/battle/controller/battle_controller_pvp.lua
index edc3da4b..ef91dfb1 100644
--- a/lua/app/module/battle/controller/battle_controller_pvp.lua
+++ b/lua/app/module/battle/controller/battle_controller_pvp.lua
@@ -320,4 +320,37 @@ function BattleControllerPVP:refreshWave()
self.battleUI:refreshWave(self.waveRoundCount[self:getWaveIndex()] or 0)
end
+function BattleControllerPVP:getRandomGridInfo()
+ local list, fixedRandomGrid = self:getInitBoard()
+ local fixedRandomList = fixedRandomGrid[self.curBoardIndex]
+
+ local gridType = 0
+ local elementType
+ if fixedRandomList and fixedRandomList[1] then
+ elementType = table.remove(fixedRandomList, 1)
+ else
+ local map = self.battleData:getElementTypeMap()
+ self.getRandomGridInfoIndexs = table.clearOrCreate(self.getRandomGridInfoIndexs)
+ self.getRandomGridInfoTypeList = table.clearOrCreate(self.getRandomGridInfoTypeList)
+ for typeName, typeNum in pairs(BattleConst.ELEMENT_TYPE) do
+ if not self:getSealElementType()[typeNum] and self:getSkillEntityByElement(typeNum) then
+ local weight = BattleConst.ELEMENT_WIGHT -- 改为平等权重
+ if self.elementWeightMap and self.elementWeightMap[typeNum] then
+ weight = weight + self.elementWeightMap[typeNum]
+ end
+ if weight > BattleConst.MAX_ELEMENT_WIGHT then
+ weight = BattleConst.MAX_ELEMENT_WIGHT
+ end
+ table.insert(self.getRandomGridInfoIndexs, weight)
+ table.insert(self.getRandomGridInfoTypeList, typeNum)
+ end
+ end
+
+ local index = GFunc.getRandomIndex(self.getRandomGridInfoIndexs)
+ elementType = self.getRandomGridInfoTypeList[index]
+ end
+
+ return {gridType = gridType, elementType = elementType}
+end
+
return BattleControllerPVP
\ No newline at end of file
diff --git a/lua/app/module/dungeon_rune/dungeon_rune_const.lua b/lua/app/module/dungeon_rune/dungeon_rune_const.lua
index 23f29d2b..cf31da33 100644
--- a/lua/app/module/dungeon_rune/dungeon_rune_const.lua
+++ b/lua/app/module/dungeon_rune/dungeon_rune_const.lua
@@ -25,7 +25,7 @@ DungeonRuneConst.TASK_ICON = {
[4] = "dungeon_rune_task_vine",
[5] = "dungeon_rune_task_ice",
[7] = "dungeon_rune_task_stone_3",
- [12] = "dungeon_rune_task_stump_1",
+ [12] = "dungeon_rune_task_leaf",
[13] = "dungeon_rune_task_jelly",
[18] = "dungeon_rune_task_stump_1",
[19] = "dungeon_rune_task_stump_2",
diff --git a/lua/app/module/hero/hero_const.lua b/lua/app/module/hero/hero_const.lua
index b8bc0f4d..6d406356 100644
--- a/lua/app/module/hero/hero_const.lua
+++ b/lua/app/module/hero/hero_const.lua
@@ -1,5 +1,14 @@
local HeroConst = {}
+-- 英雄颜色类型
+HeroConst.MATCH_TYPE = {
+ RED = 1,
+ YELLOW = 2,
+ GREEN = 3,
+ BLUE = 4,
+ PURPLE = 5
+}
+
HeroConst.MATCH_ICON_NAME = {
[1] = "match_1",
[2] = "match_2",
@@ -21,7 +30,7 @@ HeroConst.PANEL_TYPE = {
HERO = 1,
WEAPON = 2,
ARMOR = 3,
- SKIN = 4,
+ RUNES = 4,
}
-- 总计
@@ -70,6 +79,18 @@ HeroConst.ATTR_SHOW_SKIN = {
GConst.MATCH_SKILL_HURTP_NAME, -- 技能增伤百分比
GConst.MATCH_CURED_NAME, -- 治疗效果提升百分比
}
+-- 符文
+HeroConst.ATTR_SHOW_RUNES = {
+ GConst.MATCH_HP_FIX_NAME, -- 生命
+ GConst.MATCH_ATTACK_NAME, -- 攻击
+ GConst.MATCH_NORMAL_HURT_NAME, -- 普攻增伤
+ GConst.MATCH_SKILL_HURT_NAME, -- 技能增伤
+ GConst.MATCH_CRIT_NAME, -- 暴击率百分比
+ GConst.MATCH_CRIT_TIME_NAME, -- 暴击伤害百分比
+ GConst.MATCH_NORMAL_HURTP_NAME, -- 普攻增伤百分比
+ GConst.MATCH_SKILL_HURTP_NAME, -- 技能增伤百分比
+ GConst.MATCH_CURED_NAME, -- 治疗效果提升百分比
+}
-- 需要显示属性的模块
HeroConst.SHOW_NODE = {
@@ -77,6 +98,7 @@ HeroConst.SHOW_NODE = {
HeroConst.ATTR_SHOW_BASE,
HeroConst.ATTR_SHOW_WEAPON,
HeroConst.ATTR_SHOW_ARMOR,
+ HeroConst.ATTR_SHOW_RUNES,
HeroConst.ATTR_SHOW_SKIN,
}
diff --git a/lua/app/module/hero/hero_manager.lua b/lua/app/module/hero/hero_manager.lua
index 80618ba2..8f8566fb 100644
--- a/lua/app/module/hero/hero_manager.lua
+++ b/lua/app/module/hero/hero_manager.lua
@@ -1,7 +1,11 @@
local HeroManager = class("HeroManager", BaseModule)
-function HeroManager:showHeroDetailUI(heroId, onlyLook, heroEntity, skinId, formationType)
- UIManager:showUI("app/ui/hero/hero_detail_ui", {heroId = heroId, onlyLook = onlyLook, heroEntity = heroEntity, skinId = skinId, formationType = formationType})
+function HeroManager:showHeroDetailUI(heroId, onlyLook, heroEntity, formationType)
+ UIManager:showUI("app/ui/hero/hero_detail_ui", {heroId = heroId, onlyLook = onlyLook, heroEntity = heroEntity, formationType = formationType})
+end
+
+function HeroManager:showHeroSkinUI(heroId, onlyLookSkinId)
+ UIManager:showUI("app/ui/hero/hero_skin_ui", {heroId = heroId, onlyLookSkinId = onlyLookSkinId})
end
function HeroManager:showHeroUnlockUI(heroIdList)
diff --git a/lua/app/module/item/item_const.lua b/lua/app/module/item/item_const.lua
index 7a87a188..96390175 100644
--- a/lua/app/module/item/item_const.lua
+++ b/lua/app/module/item/item_const.lua
@@ -19,6 +19,8 @@ ItemConst.ITEM_ID_ARENA_TICKET = 22
ItemConst.ITEM_ID_FOURTEEN_DAY_EXCHANGE = 51
ItemConst.ITEM_ID_GLOD_WING = 49
ItemConst.ITEM_ID_SLIVER_WING = 50
+ItemConst.ITEM_ID_RUNES = 55
+ItemConst.ITEM_ID_FULL_MOON = 56
ItemConst.ITEM_TYPE = {
RES = 1,
diff --git a/lua/app/module/maincity/maincity_const.lua b/lua/app/module/maincity/maincity_const.lua
index b9828464..0d293c36 100644
--- a/lua/app/module/maincity/maincity_const.lua
+++ b/lua/app/module/maincity/maincity_const.lua
@@ -36,6 +36,7 @@ MainCityConst.LEFT_SIDE_BARS = {
"app/ui/main_city/cell/side_bar_hero_fund_cell",
"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",
-- gm放最后一个
"app/ui/main_city/cell/side_bar_gm_cell"
}
diff --git a/lua/app/module/runes.meta b/lua/app/module/runes.meta
new file mode 100644
index 00000000..53a3d38f
--- /dev/null
+++ b/lua/app/module/runes.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 18d45baac20fe4d4b8f98e500a15c222
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/lua/app/module/runes/runes_const.lua b/lua/app/module/runes/runes_const.lua
new file mode 100644
index 00000000..12a4ccec
--- /dev/null
+++ b/lua/app/module/runes/runes_const.lua
@@ -0,0 +1,32 @@
+local RunesConst = {}
+
+RunesConst.GIFT_IDS = {
+ 210102,
+ 210202,
+ 210302,
+}
+
+RunesConst.QUALITY_ICON = {
+ [1] = "hero_rune_f",
+ [2] = "hero_rune_e",
+ [3] = "hero_rune_d",
+ [4] = "hero_rune_c",
+ [5] = "hero_rune_b",
+ [6] = "hero_rune_a",
+ [7] = "hero_rune_s",
+ [8] = "hero_rune_ss",
+}
+
+-- 检查锁定状态
+RunesConst.CHECK_QLT_LOCK = 7
+
+-- 最大属性栏位数
+RunesConst.MAX_ATTR_GRID_COUNT = 6
+-- 品质个数
+RunesConst.MAX_QUALITY_COUNT = 8
+-- 最大套装个数
+RunesConst.MAX_SUITS_COUNT = 5
+-- 最大符文种类个数
+RunesConst.MAX_ATTR_COUNT = 11
+
+return RunesConst
\ No newline at end of file
diff --git a/lua/app/module/runes/runes_const.lua.meta b/lua/app/module/runes/runes_const.lua.meta
new file mode 100644
index 00000000..64b9aa20
--- /dev/null
+++ b/lua/app/module/runes/runes_const.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 4bda2a68bd04f8e4993df04a2b3878c7
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/module/runes/runes_manager.lua b/lua/app/module/runes/runes_manager.lua
new file mode 100644
index 00000000..67426a1f
--- /dev/null
+++ b/lua/app/module/runes/runes_manager.lua
@@ -0,0 +1,47 @@
+local RunesManager = class("RunesManager", BaseModule)
+
+-- 锁定和解锁属性栏
+function RunesManager:reqChangeLockGrid(heroId, index, isLock)
+ if self.isReqLockChange then
+ return
+ end
+ self.isReqLockChange = true
+
+ self:sendMessage(ProtoMsgType.FromMsgEnum.RuneLockReq, {hero_id = heroId, grid_num = index, lock = isLock}, {}, self.rspChangeLockGrid)
+end
+
+function RunesManager:rspChangeLockGrid(result)
+ self.isReqLockChange = false
+ if result.hero_girds then
+ DataManager.RunesData:onGridLockSuccess(result.reqData.hero_id, result.hero_girds.grids)
+ end
+end
+
+-- 淬炼
+function RunesManager:reqQuenching(heroId, autoCount)
+ if self.isReqQuenching then
+ return
+ end
+ self.isReqQuenching = true
+
+ self:sendMessage(ProtoMsgType.FromMsgEnum.RuneQuenchingReq, {hero_id = heroId, auto_count = autoCount}, {}, self.rspQuenching, BIReport.ITEM_GET_TYPE.RUNES_QUENCHING)
+end
+
+function RunesManager:rspQuenching(result)
+ self.isReqQuenching = false
+ if result.err_code == GConst.ERROR_STR.SUCCESS then
+ DataManager.RunesData:onQuenchingSuccess(result.level, result.exp, result.reqData.hero_id, result.hero_girds.grids)
+
+ if result.auto_count and result.auto_count > 0 then
+ ModuleManager.TaskManager:addTaskProgress(GConst.TaskConst.TASK_TYPE.X_RUNES_QUENCHING, result.auto_count)
+ else
+ ModuleManager.TaskManager:addTaskProgress(GConst.TaskConst.TASK_TYPE.X_RUNES_QUENCHING, 1)
+ end
+ end
+end
+
+function RunesManager:rspUpdate(result)
+ DataManager.RunesData:init(result.rune)
+end
+
+return RunesManager
\ No newline at end of file
diff --git a/lua/app/module/runes/runes_manager.lua.meta b/lua/app/module/runes/runes_manager.lua.meta
new file mode 100644
index 00000000..ca51460f
--- /dev/null
+++ b/lua/app/module/runes/runes_manager.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 88f86325d3b00894d8fb5beb962a5ac0
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/module/task/task_const.lua b/lua/app/module/task/task_const.lua
index c2a102d5..af2ab1a6 100644
--- a/lua/app/module/task/task_const.lua
+++ b/lua/app/module/task/task_const.lua
@@ -40,6 +40,9 @@ TaskConst.TASK_TYPE = {
X_OPEN_CHAPTER_BOX = 37, -- 开启主线宝箱x个
X_UPGRADE_WEAPON = 38, -- 武器升级x次
X_UPGRADE_ARMOR = 39, -- 防具升级x次
+ X_BUY_ANYONE = 40, -- 任意购买行为x次
+ X_RUNES_GETED_MATERIALS = 41, -- 获得符文材料x个
+ X_RUNES_QUENCHING = 42, -- 符文锻造x次
}
return TaskConst
\ No newline at end of file
diff --git a/lua/app/module/task/task_manager.lua b/lua/app/module/task/task_manager.lua
index 0f6ad958..662e5666 100644
--- a/lua/app/module/task/task_manager.lua
+++ b/lua/app/module/task/task_manager.lua
@@ -310,6 +310,18 @@ function TaskManager:xUpgradeArmor()
self:dispatchTask(GConst.TaskConst.TASK_TYPE.X_UPGRADE_ARMOR, 1)
end
+function TaskManager:xBuyAnyone()
+ self:dispatchTask(GConst.TaskConst.TASK_TYPE.X_BUY_ANYONE, 1)
+end
+
+function TaskManager:xRunesGetedMaterials(count)
+ self:dispatchTask(GConst.TaskConst.TASK_TYPE.X_RUNES_GETED_MATERIALS, count)
+end
+
+function TaskManager:xRunesQuenching(count)
+ self:dispatchTask(GConst.TaskConst.TASK_TYPE.X_RUNES_QUENCHING, count)
+end
+
---- 没有特殊说明,方法均返回任务增量
TaskManager.TYPE_DEAL_FUNC = {
[GConst.TaskConst.TASK_TYPE.X_WATCH_AD] = TaskManager.xWatchAd,
@@ -349,6 +361,9 @@ TaskManager.TYPE_DEAL_FUNC = {
[GConst.TaskConst.TASK_TYPE.X_OPEN_CHAPTER_BOX] = TaskManager.xOpenChapterBox,
[GConst.TaskConst.TASK_TYPE.X_UPGRADE_WEAPON] = TaskManager.xUpgradeWeapon,
[GConst.TaskConst.TASK_TYPE.X_UPGRADE_ARMOR] = TaskManager.xUpgradeArmor,
+ [GConst.TaskConst.TASK_TYPE.X_BUY_ANYONE] = TaskManager.xBuyAnyone,
+ [GConst.TaskConst.TASK_TYPE.X_RUNES_GETED_MATERIALS] = TaskManager.xRunesGetedMaterials,
+ [GConst.TaskConst.TASK_TYPE.X_RUNES_QUENCHING] = TaskManager.xRunesQuenching,
}
function TaskManager:taskGoto(taskType)
diff --git a/lua/app/module/tips/tips_manager.lua b/lua/app/module/tips/tips_manager.lua
index 059bfd01..a54bb73e 100644
--- a/lua/app/module/tips/tips_manager.lua
+++ b/lua/app/module/tips/tips_manager.lua
@@ -48,7 +48,7 @@ function TipsManager:showRewardTips(rewardId, rewardType, tarPrefabObj, alignTyp
return
elseif info.type == GConst.ItemConst.ITEM_TYPE.SKIN then
-- 英雄皮肤
- ModuleManager.HeroManager:showHeroDetailUI(DataManager.SkinData:getHeroIdBySkinId(info.parameter), true, nil, info.parameter)
+ ModuleManager.HeroManager:showHeroSkinUI(DataManager.SkinData:getHeroIdBySkinId(info.parameter), info.parameter)
return
elseif info.type == GConst.ItemConst.ITEM_TYPE.RANDOM_BOX_ITEM or info.type == GConst.ItemConst.ITEM_TYPE.FIXED_BOX_ITEM then
self:showBoxItemTips(rewardId)
@@ -110,6 +110,16 @@ function TipsManager:showDescTips(desc, tarPrefabObj, alignType)
UIManager:showUI("app/ui/tips/desc_tips", params)
end
+function TipsManager:showChooseRewardTips(title, desc, rewards, callback)
+ local params = {
+ title = title,
+ desc = desc,
+ rewards = rewards,
+ callback = callback,
+ }
+ UIManager:showUI("app/ui/tips/choose_reward_tips", params)
+end
+
function TipsManager:showHeroFragmentTips(itemId)
local params = {
itemId = itemId
diff --git a/lua/app/module/tutorial/tutorial_const.lua b/lua/app/module/tutorial/tutorial_const.lua
index 0b5f2c65..59d3a112 100644
--- a/lua/app/module/tutorial/tutorial_const.lua
+++ b/lua/app/module/tutorial/tutorial_const.lua
@@ -12,6 +12,7 @@ TutorialConst.UNLOCK_DUNGEON = 6
TutorialConst.UNLOCK_ARENA = 7
TutorialConst.WEAPON_DUNGEON = 8
TutorialConst.ARMOR_DUNGEON = 9
+TutorialConst.RUNE_DUNGEON = 10
TutorialConst.TUTORIAL_TYPE = {
CLICK = 1, -- 点击任意区域
diff --git a/lua/app/proto/proto_msg_type.lua b/lua/app/proto/proto_msg_type.lua
index 0eb18187..0a3ffde0 100644
--- a/lua/app/proto/proto_msg_type.lua
+++ b/lua/app/proto/proto_msg_type.lua
@@ -1,5 +1,7 @@
local ProtoMsgType = {
FromMsgId = {
+ [5949102] = "FullMoonCustomGiftChooseReq",
+ [5950935] = "FullMoonCustomGiftChooseRsp",
[109633552] = "PigLevelDownNtf",
[109700242] = "PigLevelDownReq",
[109702075] = "PigLevelDownRsp",
@@ -77,6 +79,8 @@ local ProtoMsgType = {
[1433354371] = "ChapterDailyChallengeResetRsp",
[1435947790] = "AppStorePaidReq",
[1435949623] = "AppStorePaidRsp",
+ [1459267856] = "FullMoonChapterSkinClaimReq",
+ [1459269689] = "FullMoonChapterSkinClaimRsp",
[1471116409] = "BindReq",
[1471118242] = "BindRsp",
[1478006910] = "BossRushBountyClaimReq",
@@ -123,6 +127,8 @@ local ProtoMsgType = {
[2140119902] = "ActivityPVPDecideHeroRsp",
[2164009445] = "BossRushStartReq",
[2164011278] = "BossRushStartRsp",
+ [2194306819] = "FullMoonTaskClaimReq",
+ [2194308652] = "FullMoonTaskClaimRsp",
[2198847028] = "BossRushBoughtNtf",
[2224825865] = "ChapterRuneChallengeSettlementReq",
[2224827698] = "ChapterRuneChallengeSettlementRsp",
@@ -183,6 +189,8 @@ local ProtoMsgType = {
[3038153756] = "TaskDailyRefreshRsp",
[3039097236] = "SummerBountyClaimReq",
[3039099069] = "SummerBountyClaimRsp",
+ [3050641832] = "FullMoonInfoReq",
+ [3050643665] = "FullMoonInfoRsp",
[3058879524] = "PVPRankReq",
[3058881357] = "PVPRankRsp",
[3062745642] = "FundAwardReq",
@@ -264,6 +272,8 @@ local ProtoMsgType = {
[3904150593] = "GMRsp",
[3933875617] = "ChapterStartReq",
[3933877450] = "ChapterStartRsp",
+ [3991710133] = "FullMoonRewardClaimReq",
+ [3991711966] = "FullMoonRewardClaimRsp",
[4010728288] = "ChapterRuneBuySliverReq",
[4010730121] = "ChapterRuneBuySliverRsp",
[4015942008] = "RuneQuenchingReq",
@@ -290,6 +300,8 @@ local ProtoMsgType = {
[4256335780] = "ExistRsp",
},
FromMsgToId = {
+ FullMoonCustomGiftChooseReq = 5949102,
+ FullMoonCustomGiftChooseRsp = 5950935,
PigLevelDownNtf = 109633552,
PigLevelDownReq = 109700242,
PigLevelDownRsp = 109702075,
@@ -367,6 +379,8 @@ local ProtoMsgType = {
ChapterDailyChallengeResetRsp = 1433354371,
AppStorePaidReq = 1435947790,
AppStorePaidRsp = 1435949623,
+ FullMoonChapterSkinClaimReq = 1459267856,
+ FullMoonChapterSkinClaimRsp = 1459269689,
BindReq = 1471116409,
BindRsp = 1471118242,
BossRushBountyClaimReq = 1478006910,
@@ -413,6 +427,8 @@ local ProtoMsgType = {
ActivityPVPDecideHeroRsp = 2140119902,
BossRushStartReq = 2164009445,
BossRushStartRsp = 2164011278,
+ FullMoonTaskClaimReq = 2194306819,
+ FullMoonTaskClaimRsp = 2194308652,
BossRushBoughtNtf = 2198847028,
ChapterRuneChallengeSettlementReq = 2224825865,
ChapterRuneChallengeSettlementRsp = 2224827698,
@@ -473,6 +489,8 @@ local ProtoMsgType = {
TaskDailyRefreshRsp = 3038153756,
SummerBountyClaimReq = 3039097236,
SummerBountyClaimRsp = 3039099069,
+ FullMoonInfoReq = 3050641832,
+ FullMoonInfoRsp = 3050643665,
PVPRankReq = 3058879524,
PVPRankRsp = 3058881357,
FundAwardReq = 3062745642,
@@ -554,6 +572,8 @@ local ProtoMsgType = {
GMRsp = 3904150593,
ChapterStartReq = 3933875617,
ChapterStartRsp = 3933877450,
+ FullMoonRewardClaimReq = 3991710133,
+ FullMoonRewardClaimRsp = 3991711966,
ChapterRuneBuySliverReq = 4010728288,
ChapterRuneBuySliverRsp = 4010730121,
RuneQuenchingReq = 4015942008,
@@ -580,6 +600,8 @@ local ProtoMsgType = {
ExistRsp = 4256335780,
},
FromMsgEnum = {
+ FullMoonCustomGiftChooseReq = "FullMoonCustomGiftChooseReq",
+ FullMoonCustomGiftChooseRsp = "FullMoonCustomGiftChooseRsp",
PigLevelDownNtf = "PigLevelDownNtf",
PigLevelDownReq = "PigLevelDownReq",
PigLevelDownRsp = "PigLevelDownRsp",
@@ -657,6 +679,8 @@ local ProtoMsgType = {
ChapterDailyChallengeResetRsp = "ChapterDailyChallengeResetRsp",
AppStorePaidReq = "AppStorePaidReq",
AppStorePaidRsp = "AppStorePaidRsp",
+ FullMoonChapterSkinClaimReq = "FullMoonChapterSkinClaimReq",
+ FullMoonChapterSkinClaimRsp = "FullMoonChapterSkinClaimRsp",
BindReq = "BindReq",
BindRsp = "BindRsp",
BossRushBountyClaimReq = "BossRushBountyClaimReq",
@@ -703,6 +727,8 @@ local ProtoMsgType = {
ActivityPVPDecideHeroRsp = "ActivityPVPDecideHeroRsp",
BossRushStartReq = "BossRushStartReq",
BossRushStartRsp = "BossRushStartRsp",
+ FullMoonTaskClaimReq = "FullMoonTaskClaimReq",
+ FullMoonTaskClaimRsp = "FullMoonTaskClaimRsp",
BossRushBoughtNtf = "BossRushBoughtNtf",
ChapterRuneChallengeSettlementReq = "ChapterRuneChallengeSettlementReq",
ChapterRuneChallengeSettlementRsp = "ChapterRuneChallengeSettlementRsp",
@@ -763,6 +789,8 @@ local ProtoMsgType = {
TaskDailyRefreshRsp = "TaskDailyRefreshRsp",
SummerBountyClaimReq = "SummerBountyClaimReq",
SummerBountyClaimRsp = "SummerBountyClaimRsp",
+ FullMoonInfoReq = "FullMoonInfoReq",
+ FullMoonInfoRsp = "FullMoonInfoRsp",
PVPRankReq = "PVPRankReq",
PVPRankRsp = "PVPRankRsp",
FundAwardReq = "FundAwardReq",
@@ -844,6 +872,8 @@ local ProtoMsgType = {
GMRsp = "GMRsp",
ChapterStartReq = "ChapterStartReq",
ChapterStartRsp = "ChapterStartRsp",
+ FullMoonRewardClaimReq = "FullMoonRewardClaimReq",
+ FullMoonRewardClaimRsp = "FullMoonRewardClaimRsp",
ChapterRuneBuySliverReq = "ChapterRuneBuySliverReq",
ChapterRuneBuySliverRsp = "ChapterRuneBuySliverRsp",
RuneQuenchingReq = "RuneQuenchingReq",
diff --git a/lua/app/ui/activity/full_moon.meta b/lua/app/ui/activity/full_moon.meta
new file mode 100644
index 00000000..2905de6f
--- /dev/null
+++ b/lua/app/ui/activity/full_moon.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1332d53647109d0499e22a6659ce1f1e
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/lua/app/ui/activity/full_moon/cell.meta b/lua/app/ui/activity/full_moon/cell.meta
new file mode 100644
index 00000000..4dbd0df8
--- /dev/null
+++ b/lua/app/ui/activity/full_moon/cell.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dd6f0549559c9064790b07dc590f84a4
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/lua/app/ui/activity/full_moon/cell/full_moon_task_cell.lua b/lua/app/ui/activity/full_moon/cell/full_moon_task_cell.lua
new file mode 100644
index 00000000..2afbfc74
--- /dev/null
+++ b/lua/app/ui/activity/full_moon/cell/full_moon_task_cell.lua
@@ -0,0 +1,60 @@
+local FullMoonTaskCell = class("FullMoonTaskCell", BaseCell)
+
+function FullMoonTaskCell:init()
+ local uiMap = self:getUIMap()
+ self.imgTaskBg = uiMap["full_moon_task_cell.img_task_bg"]
+ self.imgTask = uiMap["full_moon_task_cell.img_task_bg.img_task"]
+ self.txDesc = uiMap["full_moon_task_cell.tx_desc"]
+ self.imgProg = uiMap["full_moon_task_cell.prog.img_prog"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER)
+ self.txProg = uiMap["full_moon_task_cell.prog.tx_prog"]
+ self.txRewardName = uiMap["full_moon_task_cell.tx_reward_name"]
+ self.imgRewardIcon = uiMap["full_moon_task_cell.icon_reward"]
+ self.txNum = uiMap["full_moon_task_cell.tx_num"]
+ self.finish = uiMap["full_moon_task_cell.finish"]
+ self.txFinish = uiMap["full_moon_task_cell.finish.bg.tx_finish"]
+
+ self:addClickListener(function()
+ if DataManager.FullMoonData:canGetTaskReward(self.taskId) and not DataManager.FullMoonData:isReceivedTaskReward(self.taskId) then
+ ModuleManager.FullMoonManager:reqTaskReward(self.taskId)
+ end
+ end)
+end
+
+function FullMoonTaskCell:refresh(id)
+ self.taskId = id
+ local taskType = DataManager.FullMoonData:getTaskType(self.taskId)
+ local total = DataManager.FullMoonData:getTaskTarget(self.taskId)
+ local cur = DataManager.FullMoonData:getTaskProgress(self.taskId)
+ local reward = DataManager.FullMoonData:getTaskReward(self.taskId)
+ self.imgTask:setSprite(GConst.ATLAS_PATH.ICON_TASK, GFunc.getTaskIcon(taskType, total))
+ self.txDesc:setText(GFunc.getTaskDesc(taskType, total))
+ self.imgProg.value = cur / total
+ self.txProg:setText(cur .. "/" .. total)
+ self.txRewardName:setText(GFunc.getRewardName(reward.type, reward.id))
+ self.imgRewardIcon:setSprite(GFunc.getRewardIconRes(reward.type, reward.id))
+ self.txNum:setText(GFunc.getRewardNum(reward))
+ self.txFinish:setText(I18N:getGlobalText(I18N.GlobalConst.STR_COMPLETED))
+
+ self.finish:setActive(false)
+ self.baseObject:removeRedPoint()
+ if DataManager.FullMoonData:canGetTaskReward(self.taskId) then
+ -- 已完成
+ if DataManager.FullMoonData:isReceivedTaskReward(self.taskId) then
+ -- 已领取
+ self.baseObject:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_bg_2")
+ self.imgTaskBg:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_board_3")
+ self.finish:setActive(true)
+ else
+ -- 未领取
+ self.baseObject:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_bg_3")
+ self.imgTaskBg:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_board_4")
+ self.baseObject:addRedPoint(260, 70, 0.8)
+ end
+ else
+ --未完成
+ self.baseObject:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_bg_2")
+ self.imgTaskBg:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_board_3")
+ end
+end
+
+return FullMoonTaskCell
\ No newline at end of file
diff --git a/lua/app/ui/activity/full_moon/cell/full_moon_task_cell.lua.meta b/lua/app/ui/activity/full_moon/cell/full_moon_task_cell.lua.meta
new file mode 100644
index 00000000..34a17de7
--- /dev/null
+++ b/lua/app/ui/activity/full_moon/cell/full_moon_task_cell.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 7f22f15dc9b4a6d4385ac1f17fd683b4
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/full_moon/cell/full_moon_task_prog_cell.lua b/lua/app/ui/activity/full_moon/cell/full_moon_task_prog_cell.lua
new file mode 100644
index 00000000..b2054696
--- /dev/null
+++ b/lua/app/ui/activity/full_moon/cell/full_moon_task_prog_cell.lua
@@ -0,0 +1,34 @@
+local FullMoonTaskProgCell = class("FullMoonTaskProgCell", BaseCell)
+
+function FullMoonTaskProgCell:init()
+ local uiMap = self:getUIMap()
+ self.imgProg = uiMap["prog_reward.img_prog"]
+ self.txProg = uiMap["prog_reward.img_prog.tx_prog"]
+ self.rewardCell = uiMap["prog_reward.reward_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
+end
+
+function FullMoonTaskProgCell:refresh(id)
+ local canGet = DataManager.FullMoonData:isReachTaskProgressReward(id)
+ local isReceived = DataManager.FullMoonData:isReceivedTaskProgressReward(id)
+
+ self.txProg:setText(DataManager.FullMoonData:getTaskProgressTarget(id))
+ self.rewardCell:refreshByConfig(DataManager.FullMoonData:getTaskProgressReward(id), isReceived, isReceived)
+ if canGet then
+ self.imgProg:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_bg_7")
+ if not isReceived then
+ self.rewardCell.baseObject:addRedPoint(50, 50, 0.6)
+ self.rewardCell:addClickListener(function()
+ ModuleManager.FullMoonManager:reqTaskProgressReward(id)
+ end)
+ else
+ self.rewardCell.baseObject:removeRedPoint()
+ self.rewardCell:addClickListener(nil)
+ end
+ else
+ self.imgProg:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_bg_8")
+ self.rewardCell.baseObject:removeRedPoint()
+ self.rewardCell:addClickListener(nil)
+ end
+end
+
+return FullMoonTaskProgCell
\ No newline at end of file
diff --git a/lua/app/ui/activity/full_moon/cell/full_moon_task_prog_cell.lua.meta b/lua/app/ui/activity/full_moon/cell/full_moon_task_prog_cell.lua.meta
new file mode 100644
index 00000000..aaef64f4
--- /dev/null
+++ b/lua/app/ui/activity/full_moon/cell/full_moon_task_prog_cell.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 77ab55a8c675c344f86e75e0c68481dc
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/full_moon/full_moon_choose_hero_comp.lua b/lua/app/ui/activity/full_moon/full_moon_choose_hero_comp.lua
new file mode 100644
index 00000000..9da49232
--- /dev/null
+++ b/lua/app/ui/activity/full_moon/full_moon_choose_hero_comp.lua
@@ -0,0 +1,130 @@
+local FullMoonChooseHeroComp = class("FullMoonChooseHeroComp", LuaComponent)
+
+function FullMoonChooseHeroComp:init()
+ local uiMap = self:getUIMap()
+ -- self.spineBanner = uiMap["choose_hero_panel.spine_banner"]
+ self.txTitle = uiMap["choose_hero_panel.tx_title"]
+ self.txTips = uiMap["choose_hero_panel.tx_tips"]
+ self.btnBuy = uiMap["choose_hero_panel.btn_buy"]
+ self.txBuy = uiMap["choose_hero_panel.btn_buy.tx_buy"]
+ self.rewards = uiMap["choose_hero_panel.rewards"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT)
+ self.rewardCells = {}
+ for i = 1, 3 do
+ table.insert(self.rewardCells, uiMap["choose_hero_panel.rewards.pop_reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.POP_REWARD_CELL))
+ end
+ self.gifts = uiMap["choose_hero_panel.gifts"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT)
+ self.giftItems = {}
+ for i = 1, 5 do
+ table.insert(self.giftItems, uiMap["choose_hero_panel.gifts.gift_" .. i])
+ end
+
+ -- self.spineBanner:playAnim("animation", true, true)
+ self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_MOON_DESC_4))
+ self.txTips:setText(I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_MOON_DESC_6))
+
+ self.btnBuy:addClickListener(function()
+ if not DataManager.FullMoonData:getChooseHeroIndex() then
+ self:showChoose()
+ return
+ end
+ PayManager:purchasePackage(self.selectGiftId, PayManager.PURCHARSE_TYPE.ACT_GIFT)
+ end)
+end
+
+function FullMoonChooseHeroComp:refresh()
+ self.curGiftId = DataManager.FullMoonData:getCurChooseHeroGiftId()
+ self.selectGiftId = self.curGiftId
+ self:refreshGifts()
+end
+
+-- 刷新礼包显示
+function FullMoonChooseHeroComp:refreshGifts()
+ local chooseFunc = function()
+ self:showChoose()
+ end
+ local gift = DataManager.ShopData:getActGiftConfig()[self.selectGiftId]
+
+ self.txTips:setActive(self.selectGiftId ~= self.curGiftId)
+ self.btnBuy:setActive(self.selectGiftId == self.curGiftId)
+ if not DataManager.FullMoonData:isGiftBought(self.selectGiftId) then
+ self.btnBuy:setTouchEnable(true)
+ self.btnBuy:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_green_1")
+ self.txBuy:setText(GFunc.getFormatPrice(gift.recharge_id))
+ else
+ self.btnBuy:setTouchEnable(false)
+ self.btnBuy:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_grey_1")
+ self.txBuy:setText(I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_20))
+ end
+
+ for index, cell in ipairs(self.rewardCells) do
+ if gift.reward[index] then
+ cell:setVisible(true)
+ cell:refresh(gift.reward[index].id, gift.reward[index].num, true)
+ elseif index == #gift.reward + 1 then
+ cell:setVisible(true)
+ if DataManager.FullMoonData:getChooseHeroIndex() then
+ local choose = DataManager.FullMoonData:getChooseRewards(self.selectGiftId, true)[DataManager.FullMoonData:getChooseHeroIndex()]
+ -- Logger.logHighlight(DataManager.FullMoonData:getChooseHeroIndex())
+ cell:refresh(choose.id, choose.num, true)
+ cell:refreshChoose(chooseFunc)
+ else
+ cell:refreshOnlyChoose(chooseFunc)
+ end
+ else
+ cell:setVisible(false)
+ end
+ end
+ self.rewards:RefreshLayout()
+
+ local ids = DataManager.FullMoonData:getCurStepChooseHeroGiftIds()
+ for index, item in ipairs(self.giftItems) do
+ if ids[index] then
+ item:setActive(true)
+ local map = item:genAllChildren()
+ local imgGift = map["img_gift"]
+ local imgBught = map["img_bught"]
+ local imgSelect = map["img_select"]
+
+ if ids[index] == self.curGiftId then
+ imgGift:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_chest_2")
+ elseif ids[index] > self.curGiftId then
+ imgGift:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_chest_3")
+ else
+ imgGift:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_chest_1")
+ end
+ imgSelect:setActive(ids[index] == self.selectGiftId)
+ imgBught:setActive(DataManager.FullMoonData:isGiftBought(ids[index]))
+ item:addClickListener(function()
+ self:onSelectGift(ids[index])
+ end)
+ else
+ item:setActive(false)
+ end
+ end
+ self.gifts:RefreshLayout()
+end
+
+-- 选择礼包
+function FullMoonChooseHeroComp:onSelectGift(id)
+ if id < self.curGiftId then
+ -- 已购礼包不允许点击
+ return
+ end
+ self.selectGiftId = id
+ self:refreshGifts()
+end
+
+-- 自选弹窗
+function FullMoonChooseHeroComp:showChoose()
+ ModuleManager.TipsManager:showChooseRewardTips(
+ I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_MOON_DESC_7),
+ I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_MOON_DESC_8),
+ DataManager.FullMoonData:getChooseRewards(self.selectGiftId),
+ function(index)
+ index = DataManager.FullMoonData:getChooseRewardsIndexByCanChooseIndex(index)
+ ModuleManager.FullMoonManager:reqGiftChooseHero(index)
+ end
+ )
+end
+
+return FullMoonChooseHeroComp
\ No newline at end of file
diff --git a/lua/app/ui/activity/full_moon/full_moon_choose_hero_comp.lua.meta b/lua/app/ui/activity/full_moon/full_moon_choose_hero_comp.lua.meta
new file mode 100644
index 00000000..c139f7ee
--- /dev/null
+++ b/lua/app/ui/activity/full_moon/full_moon_choose_hero_comp.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: ff32f3cd22038324e8daab0f06524093
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/full_moon/full_moon_new_hero_comp.lua b/lua/app/ui/activity/full_moon/full_moon_new_hero_comp.lua
new file mode 100644
index 00000000..0f496bac
--- /dev/null
+++ b/lua/app/ui/activity/full_moon/full_moon_new_hero_comp.lua
@@ -0,0 +1,100 @@
+local FullMoonNewHeroComp = class("FullMoonNewHeroComp", LuaComponent)
+
+function FullMoonNewHeroComp:init()
+ local uiMap = self:getUIMap()
+ -- self.spineBanner = uiMap["new_hero_panel.spine_banner"]
+ self.txTitle = uiMap["new_hero_panel.tx_title"]
+ self.txTips = uiMap["new_hero_panel.tx_tips"]
+ self.btnBuy = uiMap["new_hero_panel.btn_buy"]
+ self.txBuy = uiMap["new_hero_panel.btn_buy.tx_buy"]
+ self.rewards = uiMap["new_hero_panel.rewards"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT)
+ self.rewardCells = {}
+ for i = 1, 3 do
+ table.insert(self.rewardCells, uiMap["new_hero_panel.rewards.pop_reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.POP_REWARD_CELL))
+ end
+ self.gifts = uiMap["new_hero_panel.gifts"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT)
+ self.giftItems = {}
+ for i = 1, 5 do
+ table.insert(self.giftItems, uiMap["new_hero_panel.gifts.gift_" .. i])
+ end
+
+ -- self.spineBanner:playAnim("animation", true, true)
+ self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_MOON_DESC_5))
+ self.txTips:setText(I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_MOON_DESC_6))
+
+ self.btnBuy:addClickListener(function()
+ PayManager:purchasePackage(self.selectGiftId, PayManager.PURCHARSE_TYPE.ACT_GIFT)
+ end)
+end
+
+function FullMoonNewHeroComp:refresh()
+ self.curGiftId = DataManager.FullMoonData:getCurNewHeroGiftId()
+ self.selectGiftId = self.curGiftId
+ self:refreshGifts()
+end
+
+-- 刷新礼包显示
+function FullMoonNewHeroComp:refreshGifts()
+ local gift = DataManager.ShopData:getActGiftConfig()[self.selectGiftId]
+
+ self.txTips:setActive(self.selectGiftId ~= self.curGiftId)
+ self.btnBuy:setActive(self.selectGiftId == self.curGiftId)
+ if not DataManager.FullMoonData:isGiftBought(self.selectGiftId) then
+ self.btnBuy:setTouchEnable(true)
+ self.btnBuy:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_green_1")
+ self.txBuy:setText(GFunc.getFormatPrice(gift.recharge_id))
+ else
+ self.btnBuy:setTouchEnable(false)
+ self.btnBuy:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_grey_1")
+ self.txBuy:setText(I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_20))
+ end
+
+ for index, cell in ipairs(self.rewardCells) do
+ if gift.reward[index] then
+ cell:setVisible(true)
+ cell:refresh(gift.reward[index].id, gift.reward[index].num, true)
+ else
+ cell:setVisible(false)
+ end
+ end
+ self.rewards:RefreshLayout()
+
+ local ids = DataManager.FullMoonData:getCurStepNewHeroGiftIds()
+ for index, item in ipairs(self.giftItems) do
+ if ids[index] then
+ item:setActive(true)
+ local map = item:genAllChildren()
+ local imgGift = map["img_gift"]
+ local imgBught = map["img_bught"]
+ local imgSelect = map["img_select"]
+
+ if ids[index] == self.curGiftId then
+ imgGift:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_chest_2")
+ elseif ids[index] > self.curGiftId then
+ imgGift:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_chest_3")
+ else
+ imgGift:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_chest_1")
+ end
+ imgSelect:setActive(ids[index] == self.selectGiftId)
+ imgBught:setActive(DataManager.FullMoonData:isGiftBought(ids[index]))
+ item:addClickListener(function()
+ self:onSelectGift(ids[index])
+ end)
+ else
+ item:setActive(false)
+ end
+ end
+ self.gifts:RefreshLayout()
+end
+
+-- 选择礼包
+function FullMoonNewHeroComp:onSelectGift(id)
+ if id < self.curGiftId then
+ -- 已购礼包不允许点击
+ return
+ end
+ self.selectGiftId = id
+ self:refreshGifts()
+end
+
+return FullMoonNewHeroComp
\ No newline at end of file
diff --git a/lua/app/ui/activity/full_moon/full_moon_new_hero_comp.lua.meta b/lua/app/ui/activity/full_moon/full_moon_new_hero_comp.lua.meta
new file mode 100644
index 00000000..981d90b7
--- /dev/null
+++ b/lua/app/ui/activity/full_moon/full_moon_new_hero_comp.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 8d0203e3e0bcce8458287cbbb13b18be
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/full_moon/full_moon_skin_comp.lua b/lua/app/ui/activity/full_moon/full_moon_skin_comp.lua
new file mode 100644
index 00000000..e1c43dde
--- /dev/null
+++ b/lua/app/ui/activity/full_moon/full_moon_skin_comp.lua
@@ -0,0 +1,144 @@
+local FullMoonSkinComp = class("FullMoonSkinComp", LuaComponent)
+
+function FullMoonSkinComp:init()
+ local uiMap = self:getUIMap()
+ self.txTitle = uiMap["skin_panel.banner.title.tx_title"]
+ self.txBannerDesc1 = uiMap["skin_panel.banner.content.desc1.tx_desc1"]
+ self.txBannerDesc2 = uiMap["skin_panel.banner.content.desc2.tx_desc2"]
+ -- 礼包1
+ self.spineSkin1 = uiMap["skin_panel.skin1.spine_skin1"]
+ self.txDesc1 = uiMap["skin_panel.skin1.bg_title.tx_title"]
+ self.btnBuy1 = uiMap["skin_panel.skin1.btn_buy"]
+ self.txBuy1 = uiMap["skin_panel.skin1.btn_buy.tx_buy"]
+ self.challenge1 = uiMap["skin_panel.skin1.challenge"]
+ self.challengeTag1 = uiMap["skin_panel.skin1.challenge.tag"]
+ self.imgChallengeTag1 = uiMap["skin_panel.skin1.challenge.tag.content.img"]
+ self.txChallengeTag1 = uiMap["skin_panel.skin1.challenge.tag.content.tx_num"]
+ self.rewardCells1 = {}
+ for i = 1, 3 do
+ table.insert(self.rewardCells1, uiMap["skin_panel.skin1.rewards.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
+ end
+ -- 礼包2
+ self.spineSkin2 = uiMap["skin_panel.skin2.spine_skin2"]
+ self.txDesc2 = uiMap["skin_panel.skin2.bg_title.tx_title"]
+ self.btnBuy2 = uiMap["skin_panel.skin2.btn_buy"]
+ self.txBuy2 = uiMap["skin_panel.skin2.btn_buy.tx_buy"]
+ self.challenge2 = uiMap["skin_panel.skin2.challenge"]
+ self.challengeTag2 = uiMap["skin_panel.skin2.challenge.tag"]
+ self.imgChallengeTag2 = uiMap["skin_panel.skin2.challenge.tag.content.img"]
+ self.txChallengeTag2 = uiMap["skin_panel.skin2.challenge.tag.content.tx_num"]
+ self.rewardCells2 = {}
+ for i = 1, 3 do
+ table.insert(self.rewardCells2, uiMap["skin_panel.skin2.rewards.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
+ end
+
+ self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_MOON_DESC_9))
+
+ self.challenge1:addClickListener(function()
+ ModuleManager.FullMoonManager:skinChallenge(GConst.FullMoonConst.SKIN_CHALLENGE_ID_1)
+ end)
+ self.challenge2:addClickListener(function()
+ ModuleManager.FullMoonManager:skinChallenge(GConst.FullMoonConst.SKIN_CHALLENGE_ID_2)
+ end)
+ self.btnBuy1:addClickListener(function()
+ PayManager:purchasePackage(GConst.FullMoonConst.SKIN_GIFT_ID_1, PayManager.PURCHARSE_TYPE.ACT_GIFT)
+ end)
+ self.btnBuy2:addClickListener(function()
+ PayManager:purchasePackage(GConst.FullMoonConst.SKIN_GIFT_ID_2, PayManager.PURCHARSE_TYPE.ACT_GIFT)
+ end)
+ LocalData:recordTodayActSummerWatchedSkin()
+end
+
+function FullMoonSkinComp:refresh()
+ -- 礼包1
+ if not DataManager.FullMoonData:isReceivedSkinFirstChallengeReward(GConst.FullMoonConst.SKIN_CHALLENGE_ID_1) then
+ self.challengeTag1:setActive(true)
+ local reward = DataManager.FullMoonData:getSkinFirstChallengeReward(GConst.FullMoonConst.SKIN_CHALLENGE_ID_1)
+ self.imgChallengeTag1:setSprite(GFunc.getIconRes(reward.id))
+ self.txChallengeTag1:setText(reward.num)
+ GFunc.centerImgAndTx(self.imgChallengeTag1, self.txChallengeTag1)
+ else
+ self.challengeTag1:setActive(false)
+ end
+ local gift1 = DataManager.ShopData:getActGiftConfig()[GConst.FullMoonConst.SKIN_GIFT_ID_1]
+ local skinId1,heroId1
+ for idx, reward in ipairs(gift1.reward) do
+ if ConfigManager:getConfig("item")[reward.id].type == GConst.ItemConst.ITEM_TYPE.SKIN then
+ skinId1 = DataManager.SkinData:getSkinIdByItemId(reward.id)
+ heroId1 = DataManager.SkinData:getHeroIdBySkinId(skinId1)
+ end
+ end
+ if skinId1 and heroId1 then
+ self.spineSkin1:getSkeletonGraphic().enabled = false
+ self.spineSkin1:loadAssetAsync(DataManager.SkinData:getModelId(skinId1), function()
+ self.spineSkin1:getSkeletonGraphic().enabled = true
+ self.spineSkin1:playAnim("idle", true, true, true)
+ end, true)
+ self.txBannerDesc1:setText(DataManager.HeroData:getHeroById(heroId1):getName() .. "-" .. DataManager.SkinData:getName(skinId1) .. "(" .. I18N:getGlobalText(I18N.GlobalConst.ACT_DESC_9) .. ")")
+ end
+ self.txDesc1:setText(I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_MOON_DESC_10, DataManager.HeroData:getHeroById(heroId1):getName()))
+ for index, cell in ipairs(self.rewardCells1) do
+ if gift1.reward[index] then
+ cell:setVisible(true)
+ cell:refreshByConfig(gift1.reward[index])
+ else
+ cell:setVisible(false)
+ end
+ end
+ if DataManager.ShopData:getGiftRemainBuyNum(GConst.FullMoonConst.SKIN_GIFT_ID_1) > 0 then
+ self.btnBuy1:setTouchEnable(true)
+ self.btnBuy1:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_green_2")
+ self.txBuy1:setText(GFunc.getFormatPrice(gift1.recharge_id))
+ else
+ self.btnBuy1:setTouchEnable(false)
+ self.btnBuy1:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_grey_2")
+ self.txBuy1:setText(I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_20))
+ end
+
+ -- 礼包2
+ if not DataManager.FullMoonData:isReceivedSkinFirstChallengeReward(GConst.FullMoonConst.SKIN_CHALLENGE_ID_2) then
+ self.challengeTag2:setActive(true)
+ local reward = DataManager.FullMoonData:getSkinFirstChallengeReward(GConst.FullMoonConst.SKIN_CHALLENGE_ID_2)
+ self.imgChallengeTag2:setSprite(GFunc.getIconRes(reward.id))
+ self.txChallengeTag2:setText(reward.num)
+ GFunc.centerImgAndTx(self.imgChallengeTag2, self.txChallengeTag2)
+ else
+ self.challengeTag2:setActive(false)
+ end
+ local gift2 = DataManager.ShopData:getActGiftConfig()[GConst.FullMoonConst.SKIN_GIFT_ID_2]
+ local skinId2,heroId2
+ for idx, reward in ipairs(gift2.reward) do
+ if ConfigManager:getConfig("item")[reward.id].type == GConst.ItemConst.ITEM_TYPE.SKIN then
+ skinId2 = DataManager.SkinData:getSkinIdByItemId(reward.id)
+ heroId2 = DataManager.SkinData:getHeroIdBySkinId(skinId2)
+ end
+ end
+ if skinId2 and heroId2 then
+ self.spineSkin2:getSkeletonGraphic().enabled = false
+ self.spineSkin2:loadAssetAsync(DataManager.SkinData:getModelId(skinId2), function()
+ self.spineSkin2:getSkeletonGraphic().enabled = true
+ self.spineSkin2:playAnim("idle", true, true, true)
+ end, true)
+ self.txBannerDesc2:setText(DataManager.HeroData:getHeroById(heroId2):getName() .. "-" .. DataManager.SkinData:getName(skinId2) .. "(" .. I18N:getGlobalText(I18N.GlobalConst.ACT_DESC_9) .. ")")
+ end
+ self.txDesc2:setText(I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_MOON_DESC_10, DataManager.HeroData:getHeroById(heroId2):getName()))
+ for index, cell in ipairs(self.rewardCells2) do
+ if gift2.reward[index] then
+ cell:setVisible(true)
+ cell:refreshByConfig(gift2.reward[index])
+ else
+ cell:setVisible(false)
+ end
+ end
+ if DataManager.ShopData:getGiftRemainBuyNum(GConst.FullMoonConst.SKIN_GIFT_ID_2) > 0 then
+ self.btnBuy2:setTouchEnable(true)
+ self.btnBuy2:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_green_2")
+ self.txBuy2:setText(GFunc.getFormatPrice(gift2.recharge_id))
+ else
+ self.btnBuy2:setTouchEnable(false)
+ self.btnBuy2:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_grey_2")
+ self.txBuy2:setText(I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_20))
+ end
+end
+
+return FullMoonSkinComp
\ No newline at end of file
diff --git a/lua/app/ui/activity/full_moon/full_moon_skin_comp.lua.meta b/lua/app/ui/activity/full_moon/full_moon_skin_comp.lua.meta
new file mode 100644
index 00000000..4f42ad11
--- /dev/null
+++ b/lua/app/ui/activity/full_moon/full_moon_skin_comp.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 2bdec32481442b648a69cea1bf0a2bc9
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/full_moon/full_moon_task_comp.lua b/lua/app/ui/activity/full_moon/full_moon_task_comp.lua
new file mode 100644
index 00000000..3bc6111f
--- /dev/null
+++ b/lua/app/ui/activity/full_moon/full_moon_task_comp.lua
@@ -0,0 +1,74 @@
+local FullMoonTaskComp = class("FullMoonTaskComp", LuaComponent)
+
+function FullMoonTaskComp:init()
+ local uiMap = self:getUIMap()
+ self.listProg = uiMap["task_panel.prog.list_prog"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
+ self.content = uiMap["task_panel.prog.list_prog.viewport.content"]
+ self.prog = uiMap["task_panel.prog.list_prog.viewport.content.prog"]
+ self.imgProg = uiMap["task_panel.prog.list_prog.viewport.content.prog.img_prog"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER)
+ self.listTask = uiMap["task_panel.list_task"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
+ self.spineSkin = uiMap["task_panel.prog.spine_skin"]
+ self.imgScore = uiMap["task_panel.prog.score.img_score"]
+ self.txScore = uiMap["task_panel.prog.score.tx_score"]
+ self.txSkin = uiMap["task_panel.prog.skin_desc.skin.tx_skin"]
+ self.txAllFinish = uiMap["task_panel.tx_all_finish"]
+
+ local skinId,heroId
+ for id, data in pairs(ConfigManager:getConfig("activity_full_moon_reward")) do
+ if ConfigManager:getConfig("item")[data.reward.id].type == GConst.ItemConst.ITEM_TYPE.SKIN then
+ skinId = DataManager.SkinData:getSkinIdByItemId(data.reward.id)
+ heroId = DataManager.SkinData:getHeroIdBySkinId(skinId)
+ end
+ end
+ if heroId and skinId then
+ self.txSkin:setText(DataManager.HeroData:getHeroById(heroId):getName() .. "-" .. DataManager.SkinData:getName(skinId) .. "(" .. I18N:getGlobalText(I18N.GlobalConst.ACT_DESC_9) .. ")")
+
+ self.spineSkin:getSkeletonGraphic().enabled = false
+ self.spineSkin:loadAssetAsync(DataManager.SkinData:getModelId(skinId), function()
+ self.spineSkin:getSkeletonGraphic().enabled = true
+ self.spineSkin:playAnim("idle", true, true, true)
+ end, true)
+ end
+end
+
+function FullMoonTaskComp:refresh()
+ self.txScore:setText(DataManager.FullMoonData:getTaskFinishNum())
+ GFunc.centerImgAndTx(self.imgScore, self.txScore)
+
+ -- 任务列表
+ local tasks = DataManager.FullMoonData:getTaskListSort()
+ if tasks then
+ self.txAllFinish:setActive(false)
+ self.listTask:addInitCallback(function()
+ return "app/ui/activity/full_moon/cell/full_moon_task_cell"
+ end)
+ self.listTask:addRefreshCallback(function(index, cell)
+ cell:refresh(tasks[index].id)
+ end)
+ self.listTask:clearCells()
+ self.listTask:refillCells(#tasks)
+ else
+ self.txAllFinish:setActive(true)
+ self.txAllFinish:setText(I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_MOON_DESC_11))
+ end
+
+ -- 任务进度奖励列表
+ self.listProg:addInitCallback(function()
+ return "app/ui/activity/full_moon/cell/full_moon_task_prog_cell"
+ end)
+ self.listProg:addRefreshCallback(function(index, cell)
+ cell:refresh(DataManager.FullMoonData:getTaskProgressRewardIdByIndex(index))
+ end)
+ self.listProg:clearCells()
+ self.listProg:refillCells(DataManager.FullMoonData:getTaskProgressRewardTotalNum())
+ local idx = DataManager.FullMoonData:getCurTaskProgressRewardIndex()
+ -- Logger.logHighlight(idx)
+ self.listProg:moveToIndex(idx)
+
+ local maxIndex = DataManager.FullMoonData:getTaskProgressRewardTotalNum()
+ local cellWidth = self.listProg:getCellWidth()
+ self.prog:setSizeDeltaX(cellWidth * maxIndex)
+ self.imgProg.value = DataManager.FullMoonData:getTaskFinishNum() / DataManager.FullMoonData:getTaskTotalNum()
+end
+
+return FullMoonTaskComp
\ No newline at end of file
diff --git a/lua/app/ui/activity/full_moon/full_moon_task_comp.lua.meta b/lua/app/ui/activity/full_moon/full_moon_task_comp.lua.meta
new file mode 100644
index 00000000..034c2582
--- /dev/null
+++ b/lua/app/ui/activity/full_moon/full_moon_task_comp.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: c992c98a31d8ac74398f2cba0db13c33
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/activity/full_moon/full_moon_ui.lua b/lua/app/ui/activity/full_moon/full_moon_ui.lua
new file mode 100644
index 00000000..853fa3b7
--- /dev/null
+++ b/lua/app/ui/activity/full_moon/full_moon_ui.lua
@@ -0,0 +1,243 @@
+local FullMoonUI = class("FullMoonUI", BaseUI)
+local COMP_TASK = "app/ui/activity/full_moon/full_moon_task_comp"
+local COMP_CHOOSE_HERO = "app/ui/activity/full_moon/full_moon_choose_hero_comp"
+local COMP_NEW_HERO = "app/ui/activity/full_moon/full_moon_new_hero_comp"
+local COMP_SKIN = "app/ui/activity/full_moon/full_moon_skin_comp"
+
+function FullMoonUI:isFullScreen()
+ return false
+end
+
+function FullMoonUI:getPrefabPath()
+ return "assets/prefabs/ui/activity/full_moon/full_moon_ui.prefab"
+end
+
+function FullMoonUI:onPressBackspace()
+ self:closeUI()
+end
+
+function FullMoonUI:onClose()
+ if self.actCountdownSid then
+ self.txCountdown:unscheduleGlobal(self.actCountdownSid)
+ end
+end
+
+function FullMoonUI:ctor(param)
+ if param then
+ self.panelType = param
+ else
+ self.panelType = GConst.FullMoonConst.PANEL_TYPE.TASK -- 默认进入任务页签
+ end
+end
+
+function FullMoonUI:onLoadRootComplete()
+ local uiMap = self.root:genAllChildren()
+ -- 通用
+ self.txTitle = uiMap["full_moon_ui.img_title.tx_title"]
+ self.btnClose = uiMap["full_moon_ui.common.btn_close"]
+ self.txCountdown = uiMap["full_moon_ui.countdown.tx_countdown"]
+ self.bg_task = uiMap["full_moon_ui.common.bg_task"]
+ self.bg_gift = uiMap["full_moon_ui.common.bg_gift"]
+ -- 子界面
+ self.taskPanel = uiMap["full_moon_ui.task_panel"]
+ self.chooseHeroPanel = uiMap["full_moon_ui.choose_hero_panel"]
+ self.newHeroPanel = uiMap["full_moon_ui.new_hero_panel"]
+ self.skinPanel = uiMap["full_moon_ui.skin_panel"]
+ -- 任务标签
+ self.btnTask = uiMap["full_moon_ui.common.btns.btn_task"]
+ self.txTask1 = uiMap["full_moon_ui.common.btns.btn_task.tx_btn"]
+ self.txTask2 = uiMap["full_moon_ui.common.btns.btn_task.select.tx_select"]
+ self.selectTask = uiMap["full_moon_ui.common.btns.btn_task.select"]
+ -- 自选英雄礼包标签
+ self.btnChooseHero = uiMap["full_moon_ui.common.btns.btn_choose_hero"]
+ self.txChooseHero1 = uiMap["full_moon_ui.common.btns.btn_choose_hero.tx_btn"]
+ self.txChooseHero2 = uiMap["full_moon_ui.common.btns.btn_choose_hero.select.tx_select"]
+ self.selectChooseHero = uiMap["full_moon_ui.common.btns.btn_choose_hero.select"]
+ -- 新英雄礼包标签
+ self.btnNewHero = uiMap["full_moon_ui.common.btns.btn_new_hero"]
+ self.txNewHero1 = uiMap["full_moon_ui.common.btns.btn_new_hero.tx_btn"]
+ self.txNewHero2 = uiMap["full_moon_ui.common.btns.btn_new_hero.select.tx_select"]
+ self.selectNewHero = uiMap["full_moon_ui.common.btns.btn_new_hero.select"]
+ -- 皮肤标签
+ self.btnSkin = uiMap["full_moon_ui.common.btns.btn_skin"]
+ self.txSkin1 = uiMap["full_moon_ui.common.btns.btn_skin.tx_btn"]
+ self.txSkin2 = uiMap["full_moon_ui.common.btns.btn_skin.select.tx_select"]
+ self.selectSkin = uiMap["full_moon_ui.common.btns.btn_skin.select"]
+
+ self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_MOON_DESC_1))
+ self.txTask1:setText(I18N:getGlobalText(I18N.GlobalConst.TASK_NAME))
+ self.txTask2:setText(I18N:getGlobalText(I18N.GlobalConst.TASK_NAME))
+ self.txChooseHero1:setText(I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_MOON_DESC_2))
+ self.txChooseHero2:setText(I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_MOON_DESC_2))
+ self.txNewHero1:setText(I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_MOON_DESC_3))
+ self.txNewHero2:setText(I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_MOON_DESC_3))
+ self.txSkin1:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_DESC_3))
+ self.txSkin2:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_DESC_3))
+ DataManager.FullMoonData:showActPanel()
+
+ self.btnTask:addClickListener(function()
+ self.panelType = GConst.FullMoonConst.PANEL_TYPE.TASK
+ self:onRefresh()
+ end)
+ self.btnChooseHero:addClickListener(function()
+ self.panelType = GConst.FullMoonConst.PANEL_TYPE.CHOOSE_HERO
+ self:onRefresh()
+ end)
+ self.btnNewHero:addClickListener(function()
+ self.panelType = GConst.FullMoonConst.PANEL_TYPE.NEW_HERO
+ self:onRefresh()
+ end)
+ self.btnSkin:addClickListener(function()
+ self.panelType = GConst.FullMoonConst.PANEL_TYPE.SKIN
+ self:onRefresh()
+ end)
+ self.btnClose:addClickListener(function()
+ self:closeUI()
+ end)
+ self:addEventListener(EventManager.CUSTOM_EVENT.ACTIVITY_FULL_MOON_END, function()
+ self:closeUI()
+ end)
+ self:bind(DataManager.FullMoonData, "isDirty", function()
+ -- 检查更新数据
+ if DataManager.FullMoonData:getIsInReset() and self.panelType == GConst.FullMoonConst.PANEL_TYPE.TASK then
+ ModuleManager.FullMoonManager:reqActData()
+ end
+
+ self:onRefresh()
+ end)
+ self:bind(DataManager.ShopData, "isDirty", function()
+ self:onRefresh()
+ end)
+end
+
+function FullMoonUI:onRefresh()
+ -- 倒计时
+ if self.actCountdownSid then
+ self.txCountdown:unscheduleGlobal(self.actCountdownSid)
+ end
+ self.txCountdown:setText(GFunc.getTimeStrWithHMS2(DataManager.FullMoonData:getEndRemainTime()))
+ self.actCountdownSid = self.txCountdown:scheduleGlobal(function()
+ self.txCountdown:setText(GFunc.getTimeStrWithHMS2(DataManager.FullMoonData:getEndRemainTime()))
+ end, 1)
+
+ if self.panelType == GConst.FullMoonConst.PANEL_TYPE.TASK then
+ self:showTaskInfo()
+ elseif self.panelType == GConst.FullMoonConst.PANEL_TYPE.CHOOSE_HERO then
+ self:showChooseHeroInfo()
+ elseif self.panelType == GConst.FullMoonConst.PANEL_TYPE.NEW_HERO then
+ self:showNewHeroInfo()
+ elseif self.panelType == GConst.FullMoonConst.PANEL_TYPE.SKIN then
+ self:showSkinInfo()
+ end
+ self:refreshRedPoint()
+end
+
+-- 刷新标签红点
+function FullMoonUI:refreshRedPoint()
+ -- if DataManager.FullMoonData:hasTaskRedPoint() then
+ -- self.btnTask:addRedPoint(-65, -5, 0.6)
+ -- else
+ -- self.btnTask:removeRedPoint()
+ -- end
+ -- if DataManager.FullMoonData:hasBountyRedPoint() then
+ -- self.btnBounty:addRedPoint(-65, -5, 0.6)
+ -- else
+ -- self.btnBounty:removeRedPoint()
+ -- end
+ -- if DataManager.FullMoonData:hasSkinRedPoint() then
+ -- self.btnSkin:addRedPoint(-65, -5, 0.6)
+ -- else
+ -- self.btnSkin:removeRedPoint()
+ -- end
+ -- if DataManager.FullMoonData:hasHeroRedPoint() then
+ -- self.btnHero:addRedPoint(-65, -5, 0.6)
+ -- else
+ -- self.btnHero:removeRedPoint()
+ -- end
+end
+
+function FullMoonUI:showTaskInfo()
+ self.taskPanel:setActive(true)
+ self.selectTask:setActive(true)
+ self.chooseHeroPanel:setActive(false)
+ self.selectChooseHero:setActive(false)
+ self.newHeroPanel:setActive(false)
+ self.selectNewHero:setActive(false)
+ self.skinPanel:setActive(false)
+ self.selectSkin:setActive(false)
+ self.bg_task:setActive(true)
+ self.bg_gift:setActive(false)
+
+ if not self.compTask then
+ self.taskPanel:initPrefabHelper()
+ self.taskPanel:genAllChildren()
+ self.compTask = self.taskPanel:addLuaComponent(COMP_TASK)
+ end
+
+ self.compTask:refresh()
+end
+
+function FullMoonUI:showChooseHeroInfo()
+ self.taskPanel:setActive(false)
+ self.selectTask:setActive(false)
+ self.chooseHeroPanel:setActive(true)
+ self.selectChooseHero:setActive(true)
+ self.newHeroPanel:setActive(false)
+ self.selectNewHero:setActive(false)
+ self.skinPanel:setActive(false)
+ self.selectSkin:setActive(false)
+ self.bg_task:setActive(false)
+ self.bg_gift:setActive(true)
+
+ if not self.chooseHeroComp then
+ self.chooseHeroPanel:initPrefabHelper()
+ self.chooseHeroPanel:genAllChildren()
+ self.chooseHeroComp = self.chooseHeroPanel:addLuaComponent(COMP_CHOOSE_HERO)
+ end
+
+ self.chooseHeroComp:refresh()
+end
+
+function FullMoonUI:showNewHeroInfo()
+ self.taskPanel:setActive(false)
+ self.selectTask:setActive(false)
+ self.chooseHeroPanel:setActive(false)
+ self.selectChooseHero:setActive(false)
+ self.newHeroPanel:setActive(true)
+ self.selectNewHero:setActive(true)
+ self.skinPanel:setActive(false)
+ self.selectSkin:setActive(false)
+ self.bg_task:setActive(false)
+ self.bg_gift:setActive(true)
+
+ if not self.newHeroComp then
+ self.newHeroPanel:initPrefabHelper()
+ self.newHeroPanel:genAllChildren()
+ self.newHeroComp = self.newHeroPanel:addLuaComponent(COMP_NEW_HERO)
+ end
+
+ self.newHeroComp:refresh()
+end
+
+function FullMoonUI:showSkinInfo()
+ self.taskPanel:setActive(false)
+ self.selectTask:setActive(false)
+ self.chooseHeroPanel:setActive(false)
+ self.selectChooseHero:setActive(false)
+ self.newHeroPanel:setActive(false)
+ self.selectNewHero:setActive(false)
+ self.skinPanel:setActive(true)
+ self.selectSkin:setActive(true)
+ self.bg_task:setActive(false)
+ self.bg_gift:setActive(false)
+
+ if not self.compSkin then
+ self.skinPanel:initPrefabHelper()
+ self.skinPanel:genAllChildren()
+ self.compSkin = self.skinPanel:addLuaComponent(COMP_SKIN)
+ end
+
+ self.compSkin:refresh()
+end
+
+return FullMoonUI
\ No newline at end of file
diff --git a/lua/app/ui/activity/full_moon/full_moon_ui.lua.meta b/lua/app/ui/activity/full_moon/full_moon_ui.lua.meta
new file mode 100644
index 00000000..60ed16b1
--- /dev/null
+++ b/lua/app/ui/activity/full_moon/full_moon_ui.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 89c9eb8cb84d89441b6f18941c24b880
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/battle/battle_rune_result_ui.lua b/lua/app/ui/battle/battle_rune_result_ui.lua
index 2a50ac78..bc86d883 100644
--- a/lua/app/ui/battle/battle_rune_result_ui.lua
+++ b/lua/app/ui/battle/battle_rune_result_ui.lua
@@ -211,8 +211,8 @@ function BattleRuneResultUI:refreshTaskNode()
local condition = chapterCondition[newIndex]
if condition then
objs.cell:getBaseObject():setActive(true)
- local taskNum = taskProgress[index] and taskProgress[index].progress
- local desc = self.runeData:getConditionDesc(condition, taskNum)
+ local taskNum = taskProgress[newIndex] and taskProgress[newIndex].progress
+ local desc = self.runeData:getConditionDesc(condition)
local over = false
if taskProgress[newIndex] then
local info = taskProgress[newIndex]
diff --git a/lua/app/ui/battle/battle_ui.lua b/lua/app/ui/battle/battle_ui.lua
index c7eab930..8cd422f9 100644
--- a/lua/app/ui/battle/battle_ui.lua
+++ b/lua/app/ui/battle/battle_ui.lua
@@ -500,28 +500,25 @@ function BattleUI:refreshTaskNode()
if self.battleController.battleType == GConst.BattleConst.BATTLE_TYPE.DUNGEON_RUNE then
self.taskNode:setLocalScale(0.6, 0.6, 0.6)
local runeData = DataManager.DungeonData:getDungeonDataByType(ModuleManager.MODULE_KEY.RUNES_OPEN)
- local isBossChapter = runeData:isBossChapter(self.battleController.chapterId)
local chapterCondition = runeData:getChapterCondition(self.battleController.chapterId)
local taskProgress = ModuleManager.DungeonRuneManager:getTaskStatus(self.battleController, chapterCondition)
for index, cell in ipairs(self.taskCells) do
- local newIndex = index
- if isBossChapter then
- newIndex = index + 1
- end
+ local newIndex = index + 1
local condition = chapterCondition[newIndex]
if condition then
cell:getBaseObject():setActive(true)
local atlast, iconName = runeData:getConditionIcon(condition)
local taskNum = condition[3] or 0
- Logger.printTable(taskProgress)
+ local over = false
if taskProgress[newIndex] then
taskNum = taskProgress[newIndex].totalProgress - taskProgress[newIndex].progress
if taskNum < 0 then
taskNum = 0
end
+ over = taskProgress[newIndex].over
end
- cell:refresh(atlast, iconName, taskNum)
+ cell:refresh(atlast, iconName, taskNum, over)
cell:addClickListener(function()
ModuleManager.DungeonRuneManager:showTaskUI(self.battleController.chapterId)
end)
diff --git a/lua/app/ui/battle/cell/battle_task_cell.lua b/lua/app/ui/battle/cell/battle_task_cell.lua
index e1969057..03b66dc1 100644
--- a/lua/app/ui/battle/cell/battle_task_cell.lua
+++ b/lua/app/ui/battle/cell/battle_task_cell.lua
@@ -2,18 +2,17 @@ local BattleTaskCell = class("BattleTaskCell", BaseCell)
local BG = {"common_board_131", "common_board_132"} -- 紫绿
-function BattleTaskCell:refresh(iconAtlas, iconName, taskNum)
+function BattleTaskCell:refresh(iconAtlas, iconName, taskNum, over)
local uiMap = self:getUIMap()
local bg = uiMap["battle_task_cell.bg"]
local icon = uiMap["battle_task_cell.icon"]
local point = uiMap["battle_task_cell.point"]
local desc = uiMap["battle_task_cell.desc"]
+ local check = uiMap["battle_task_cell.check"]
icon:setSprite(iconAtlas, iconName)
-
+ check:setVisible(over == true)
desc:setText(taskNum)
self:hidePoint(not taskNum)
-
- self:hidePoint(false)
end
function BattleTaskCell:hidePoint(hide)
diff --git a/lua/app/ui/common/cell/reward_cell.lua b/lua/app/ui/common/cell/reward_cell.lua
index b5566f7f..fd0bdd63 100644
--- a/lua/app/ui/common/cell/reward_cell.lua
+++ b/lua/app/ui/common/cell/reward_cell.lua
@@ -4,6 +4,7 @@ local EFFECT_LIGHT = "assets/prefabs/effects/ui/vfx_ui_arena_gift_b02.prefab"
function RewardCell:init()
local uiMap = self:getUIMap()
+ self.content = uiMap["reward_cell.content"]
self.icon = uiMap["reward_cell.item_bg.icon"]
self.frameBg = uiMap["reward_cell.item_bg"]
self.mask = uiMap["reward_cell.item_bg.mask"]
@@ -23,6 +24,10 @@ function RewardCell:init()
self.skinQlt = uiMap["reward_cell.skin.img_qlt"]
-- 特效
self.rootEffect = uiMap["reward_cell.root_effect"]
+ -- 选中框
+ self.select = uiMap["reward_cell.content.item_bg.select"]
+ -- 自选
+ self.choose = uiMap["reward_cell.choose"]
self:hideFrameAnimation()
self.baseObject:addClickListener(function()
@@ -50,6 +55,12 @@ function RewardCell:refresh(reward)
self:showFirstPass(false)
end
+-- 展示自选
+function RewardCell:refreshByChoose()
+ self.choose:setVisible(true)
+ self.content:setVisible(false)
+end
+
function RewardCell:refreshByConfig(reward, mask, check)
self:showMask(mask, check)
if reward.type == GConst.REWARD_TYPE.ITEM then
@@ -79,7 +90,10 @@ function RewardCell:refreshItemById(itemId, count, mask, check)
end
function RewardCell:_refreshItem(info, count)
+ self.choose:setVisible(false)
+ self.select:setActive(false)
self.lock:setVisible(false)
+ self.content:setVisible(true)
self.numTx:setVisible(true)
self.frameBg:setSprite(GConst.ATLAS_PATH.ICON_ITEM, GConst.FRAME_QLT[info.qlt])
if count and count > 0 then
@@ -221,4 +235,9 @@ function RewardCell:showLight(show, ui)
end
end
+-- 展示选中框
+function RewardCell:showSelect(show)
+ self.select:setActive(show == true)
+end
+
return RewardCell
\ No newline at end of file
diff --git a/lua/app/ui/dungeon_rune/cell/rune_chapter_cell.lua b/lua/app/ui/dungeon_rune/cell/rune_chapter_cell.lua
index 3b87e3b0..c382436e 100644
--- a/lua/app/ui/dungeon_rune/cell/rune_chapter_cell.lua
+++ b/lua/app/ui/dungeon_rune/cell/rune_chapter_cell.lua
@@ -37,34 +37,45 @@ function RuneChapterCell:refresh(id, index, isFinal, chapterListCount)
lightImg:setVisible(false)
sweep:setVisible(false)
local passed = false
- if runeData:curFight(id) then -- 正在可打的
- curBg:setVisible(true)
- fightBg:setVisible(false)
-
- local layer = uiMap["chapter_cell.touch_node.bg_cur.desc"]
- layer:setText(I18N:getGlobalText(I18N.GlobalConst.DUNGEON_WEAPON_DESC_6, id))
+ local isBossChapter = runeData:isBossChapter(id)
+ curBg:setVisible(isBossChapter)
+ fightBg:setVisible(not isBossChapter)
+ local curLayerDecs
+ local curLock
+ local curMask
+ if isBossChapter then
+ curLayerDecs = uiMap["chapter_cell.touch_node.bg_cur.desc"]
+ curLock = uiMap["chapter_cell.touch_node.bg_cur.lock"]
+ curMask = uiMap["chapter_cell.touch_node.bg_cur.bg_mask"]
else
- curBg:setVisible(false)
- fightBg:setVisible(true)
+ curLayerDecs = uiMap["chapter_cell.touch_node.bg.desc"]
+ curLock = uiMap["chapter_cell.touch_node.bg.lock"]
+ curMask = uiMap["chapter_cell.touch_node.bg.bg_mask"]
+ end
- local layer = uiMap["chapter_cell.touch_node.bg.desc"]
- layer:setText(I18N:getGlobalText(I18N.GlobalConst.DUNGEON_WEAPON_DESC_6, id))
- local lock = uiMap["chapter_cell.touch_node.bg.lock"]
- if maxPassedId >= id then -- 已通关的
- passed = true
- local canSweep = runeData:canSweep(id)
- sweep:setVisible(canSweep)
- if canSweep then
- uiMap["chapter_cell.touch_node.sweep_bg.tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.SMASH))
- end
- lock:setVisible(false)
- layer:setAnchoredPositionX(0)
- -- lightImg:setVisible(true)
- -- descMinRound:setText(I18N:getGlobalText(I18N.GlobalConst.DUNGEON_RUNE_MIN, runeData:getChapterPassRound(id)))
- -- descMinRound:setVisible(true)
+ curLayerDecs:setText(I18N:getGlobalText(I18N.GlobalConst.DUNGEON_WEAPON_DESC_6, id))
+ if maxPassedId >= id then -- 已通关的
+ passed = true
+ local canSweep = runeData:canSweep(id)
+ sweep:setVisible(canSweep)
+ if canSweep then
+ uiMap["chapter_cell.touch_node.sweep_bg.tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.SMASH))
+ end
+ curLock:setVisible(false)
+ curMask:setVisible(false)
+ curLayerDecs:setAnchoredPositionX(0)
+ -- lightImg:setVisible(true)
+ -- descMinRound:setText(I18N:getGlobalText(I18N.GlobalConst.DUNGEON_RUNE_MIN, runeData:getChapterPassRound(id)))
+ -- descMinRound:setVisible(true)
+ else
+ if runeData:canFight(id) then
+ curLock:setVisible(false)
+ curMask:setVisible(false)
+ curLayerDecs:setAnchoredPositionX(0)
else
- lock:setVisible(true)
- GFunc.centerImgAndTx(lock, layer, 5)
+ curLock:setVisible(true)
+ curMask:setVisible(true)
+ GFunc.centerImgAndTx(curLock, curLayerDecs, 5)
end
end
@@ -76,15 +87,49 @@ function RuneChapterCell:refresh(id, index, isFinal, chapterListCount)
end
local rewards = runeData:getChapterRewards(id)
+ local rewardCount = 0
for i, cell in ipairs(self.rewardCells) do
if rewards[i] then
+ rewardCount = rewardCount + 1
cell:refreshByConfig(rewards[i], passed, passed)
+ if isBossChapter then
+ cell:getBaseObject():setLocalScale(0.6, 0.6, 0.6)
+ else
+ cell:getBaseObject():setLocalScale(0.5, 0.5, 0.5)
+ end
+ cell:addClickListener(function()
+ if self.clickFunc then
+ self.clickFunc()
+ end
+ end)
+ cell:getBaseObject():setActive(true)
+ else
+ cell:getBaseObject():setActive(false)
end
end
+
+ if isBossChapter then
+ self.rewardCells[1]:getBaseObject():setAnchoredPositionX(-43)
+ self.rewardCells[2]:getBaseObject():setAnchoredPositionX(43)
+ else
+ self.rewardCells[1]:getBaseObject():setAnchoredPositionX(-35)
+ self.rewardCells[2]:getBaseObject():setAnchoredPositionX(35)
+ end
+
+ if rewardCount < 2 then
+ self.rewardCells[1]:getBaseObject():setAnchoredPositionX(0)
+ end
+
+ sweep:addClickListener(function()
+ if self.clickFunc then
+ self.clickFunc()
+ end
+ end)
end
function RuneChapterCell:addClickListener(func)
local uiMap = self:getUIMap()
+ self.clickFunc = func
uiMap["chapter_cell.touch_node"]:addClickListener(func)
end
diff --git a/lua/app/ui/dungeon_rune/dungeon_rune_fight_ui.lua b/lua/app/ui/dungeon_rune/dungeon_rune_fight_ui.lua
index d8034308..6cda3958 100644
--- a/lua/app/ui/dungeon_rune/dungeon_rune_fight_ui.lua
+++ b/lua/app/ui/dungeon_rune/dungeon_rune_fight_ui.lua
@@ -76,6 +76,8 @@ function DungeonRuneFightUI:refreshRewardInfo()
local descPassRound = uiMap["dungeon_rune_fight_ui.bg.desc_3"]
local imgPassIcon = uiMap["dungeon_rune_fight_ui.bg.icon"]
local rewardNode = uiMap["dungeon_rune_fight_ui.bg.reward_node"]
+ local lineR = uiMap["dungeon_rune_fight_ui.bg.line_r"]
+ local lineL = uiMap["dungeon_rune_fight_ui.bg.line_l"]
rewardNode:setActive(not passed)
descPassRound:setVisible(passed)
imgPassIcon:setVisible(passed)
@@ -85,7 +87,11 @@ function DungeonRuneFightUI:refreshRewardInfo()
-- local round = self.runeData:getChapterPassRound(self.id)
-- descPassRound:setText(I18N:getGlobalText(I18N.GlobalConst.DUNGEON_RUNE_MIN, round))
-- GFunc.centerImgAndTx(imgPassIcon, descPassRound, 5)
+ lineR:setVisible(false)
+ lineL:setVisible(false)
else
+ lineR:setVisible(true)
+ lineL:setVisible(true)
if not self.rewardCells then
self.rewardCells = {}
for i = 1, 4 do
@@ -128,7 +134,7 @@ function DungeonRuneFightUI:refreshFightBtn()
if passed then
descAgain:setText(I18N:getGlobalText(I18N.GlobalConst.DUNGEON_RUNE_DESC_2))
-- title:setText(I18N:getGlobalText(I18N.GlobalConst.DUNGEON_RUNE_DESC_6))
- title:setText(I18N:getGlobalText(I18N.GlobalConst.DUNGEON_RUNE_DESC_3))
+ title:setText(GConst.EMPTY_STRING)
else
desc:setText(I18N:getGlobalText(I18N.GlobalConst.TASK_CHALLENGE))
num:setText(1)
diff --git a/lua/app/ui/dungeon_rune/dungeon_rune_rebirth_ui.lua b/lua/app/ui/dungeon_rune/dungeon_rune_rebirth_ui.lua
index 947dc208..a15809ee 100644
--- a/lua/app/ui/dungeon_rune/dungeon_rune_rebirth_ui.lua
+++ b/lua/app/ui/dungeon_rune/dungeon_rune_rebirth_ui.lua
@@ -23,13 +23,16 @@ end
function DungeonRuneRebirthUI:_display()
local uiMap = self.root:genAllChildren()
uiMap["dungeon_rune_rebirth_ui.title_bg_img.title_text"]:setText(I18N:getGlobalText(I18N.GlobalConst.DUNGEON_RUNE_TIP_2))
- uiMap["dungeon_rune_rebirth_ui.title_bg_img.content_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.DUNGEON_RUNE_TIP_3))
+ local desc1
local desc2
if self.isHpOver then
+ desc1 = I18N:getGlobalText(I18N.GlobalConst.DUNGEON_RUNE_TIP_3)
desc2 = I18N:getGlobalText(I18N.GlobalConst.DUNGEON_RUNE_TIP_4)
else
+ desc1 = I18N:getGlobalText(I18N.GlobalConst.DUNGEON_RUNE_TIP_6)
desc2 = I18N:getGlobalText(I18N.GlobalConst.DUNGEON_RUNE_TIP_5)
end
+ uiMap["dungeon_rune_rebirth_ui.title_bg_img.content_tx"]:setText(desc1)
uiMap["dungeon_rune_rebirth_ui.title_bg_img.content_tx_2"]:setText(desc2)
uiMap["dungeon_rune_rebirth_ui.title_bg_img.desc_close"]:setText(I18N:getGlobalText(I18N.GlobalConst.DUNGEON_RUNE_DESC_7))
diff --git a/lua/app/ui/dungeon_rune/dungeon_rune_task_ui.lua b/lua/app/ui/dungeon_rune/dungeon_rune_task_ui.lua
index 49769cf4..728b1aa1 100644
--- a/lua/app/ui/dungeon_rune/dungeon_rune_task_ui.lua
+++ b/lua/app/ui/dungeon_rune/dungeon_rune_task_ui.lua
@@ -42,7 +42,7 @@ function DungeonRuneTaskUI:_display()
local condition = chapterCondition[newIndex]
if condition then
cell:getBaseObject():setActive(true)
- local taskNum = taskProgress[index] and taskProgress[index].progress
+ local taskNum = taskProgress[newIndex] and taskProgress[newIndex].progress
local desc = self.runeData:getConditionDesc(condition, taskNum)
local over = false
if taskProgress[newIndex] then
diff --git a/lua/app/ui/hero/cell/attr_cell.lua b/lua/app/ui/hero/cell/attr_cell.lua
index 617f5bbd..0095f2b5 100644
--- a/lua/app/ui/hero/cell/attr_cell.lua
+++ b/lua/app/ui/hero/cell/attr_cell.lua
@@ -1,6 +1,4 @@
local AttrCell = class("AttrCell", BaseCell)
-local DEFAULT_FACTOR = GConst.BattleConst.DEFAULT_FACTOR
-local PERCENT_FACTOR = 100
function AttrCell:init()
local uiMap = self:getUIMap()
@@ -63,9 +61,11 @@ function AttrCell:showHp()
value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getHp()
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
value = value + DataManager.SkinData:getHp(self.heroEntity)
+ elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_RUNES then
+ value = value + self.heroEntity:getRunes():getAttrValue(self.attrName)
end
- self.txValue:setText(value // DEFAULT_FACTOR)
+ self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
end
-- 显示攻击力
@@ -95,9 +95,11 @@ function AttrCell:showAtk()
value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getAttack()
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
value = value + DataManager.SkinData:getAttack(self.heroEntity)
+ elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_RUNES then
+ value = value + self.heroEntity:getRunes():getAttrValue(self.attrName)
end
- self.txValue:setText(value // DEFAULT_FACTOR)
+ self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
end
-- 显示普攻增伤
@@ -117,9 +119,11 @@ function AttrCell:showNormalHurt()
value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getNormalHurt()
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
value = value + DataManager.SkinData:getNormalHurt(self.heroEntity)
+ elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_RUNES then
+ value = value + self.heroEntity:getRunes():getAttrValue(self.attrName)
end
- self.txValue:setText(value // DEFAULT_FACTOR)
+ self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
end
-- 显示技能增伤
@@ -139,9 +143,11 @@ function AttrCell:showSkillHurt()
value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getSkillHurt()
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
value = value + DataManager.SkinData:getSkillHurt(self.heroEntity)
+ elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_RUNES then
+ value = value + self.heroEntity:getRunes():getAttrValue(self.attrName)
end
- self.txValue:setText(value // DEFAULT_FACTOR)
+ self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
end
-- 显示暴击率
@@ -158,9 +164,11 @@ function AttrCell:showCrit()
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_ARMOR then
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
value = value + DataManager.SkinData:getCritPercent(self.heroEntity)
+ elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_RUNES then
+ value = value + self.heroEntity:getRunes():getAttrValue(self.attrName)
end
- self.txValue:setText(value // PERCENT_FACTOR .. "%")
+ self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
end
-- 显示暴击伤害百分比
@@ -177,9 +185,11 @@ function AttrCell:showCritAtk()
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_ARMOR then
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
value = value + DataManager.SkinData:getCritHurtPercent(self.heroEntity)
+ elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_RUNES then
+ value = value + self.heroEntity:getRunes():getAttrValue(self.attrName)
end
- self.txValue:setText(value // PERCENT_FACTOR .. "%")
+ self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
end
-- 显示普攻增伤百分比
@@ -190,6 +200,8 @@ function AttrCell:showNormalHurtp()
local value = 0
if self.nodeType == GConst.HeroConst.ATTR_SHOW_TOTAL then
value = self.heroEntity:getTotalAttrValue(self.attrName)
+ -- 特殊处理:显示总属性时,普攻百分比和技能百分比把所有伤害百分比加上
+ value = value + self.heroEntity:getTotalAttrValue(GConst.MATCH_ALL_HURTP_NAME[self.heroEntity:getMatchType()])
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_BASE then
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_WEAPON then
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_ARMOR then
@@ -200,9 +212,11 @@ function AttrCell:showNormalHurtp()
-- value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getNormalHurtPercent()
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
value = value + DataManager.SkinData:getNormalHurtPercent(self.heroEntity)
+ elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_RUNES then
+ value = value + self.heroEntity:getRunes():getAttrValue(self.attrName)
end
- self.txValue:setText(value // PERCENT_FACTOR .. "%")
+ self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
end
-- 显示技能增伤百分比
@@ -213,6 +227,8 @@ function AttrCell:showSkillHurtp()
local value = 0
if self.nodeType == GConst.HeroConst.ATTR_SHOW_TOTAL then
value = self.heroEntity:getTotalAttrValue(self.attrName)
+ -- 特殊处理:显示总属性时,普攻百分比和技能百分比把所有伤害百分比加上
+ value = value + self.heroEntity:getTotalAttrValue(GConst.MATCH_ALL_HURTP_NAME[self.heroEntity:getMatchType()])
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_BASE then
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_WEAPON then
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_ARMOR then
@@ -223,9 +239,11 @@ function AttrCell:showSkillHurtp()
-- value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getSkillHurtPercent()
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
value = value + DataManager.SkinData:getSkillHurtPercent(self.heroEntity)
+ elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_RUNES then
+ value = value + self.heroEntity:getRunes():getAttrValue(self.attrName)
end
- self.txValue:setText(value // PERCENT_FACTOR .. "%")
+ self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
end
-- 显示治疗效果提升百分比
@@ -242,9 +260,11 @@ function AttrCell:showCured()
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_ARMOR then
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
value = value + DataManager.SkinData:getHealPercent(self.heroEntity)
+ elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_RUNES then
+ value = value + self.heroEntity:getRunes():getAttrValue(self.attrName)
end
- self.txValue:setText(value // PERCENT_FACTOR .. "%")
+ self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
end
return AttrCell
\ No newline at end of file
diff --git a/lua/app/ui/hero/cell/attr_node_cell.lua b/lua/app/ui/hero/cell/attr_node_cell.lua
index 8f506223..8053e6ea 100644
--- a/lua/app/ui/hero/cell/attr_node_cell.lua
+++ b/lua/app/ui/hero/cell/attr_node_cell.lua
@@ -20,11 +20,13 @@ function AttrNodeCell:refresh(heroEntity, node)
self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_DESC_16))
elseif node == GConst.HeroConst.ATTR_SHOW_SKIN then
self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_DESC_17))
+ elseif node == GConst.HeroConst.ATTR_SHOW_RUNES then
+ self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_22))
end
self.attrCount = 0
for index, attr in ipairs(node) do
- if node ~= GConst.HeroConst.ATTR_SHOW_SKIN or DataManager.SkinData:hasAttr(heroEntity, attr[heroEntity:getMatchType()]) then
+ if self:isShowAttr(heroEntity, node, attr) then
self.attrCount = self.attrCount + 1
CellManager:loadCellAsync(ATTR_CELL_PATH, ATTR_CELL, self.itemsRoot, function(cell)
cell:refresh(heroEntity, node, attr)
@@ -33,6 +35,18 @@ function AttrNodeCell:refresh(heroEntity, node)
end
end
+-- 是否显示属性项
+function AttrNodeCell:isShowAttr(heroEntity, node, attr)
+ if node == GConst.HeroConst.ATTR_SHOW_SKIN then
+ return DataManager.SkinData:hasAttr(heroEntity, attr[heroEntity:getMatchType()])
+ end
+ if node == GConst.HeroConst.ATTR_SHOW_RUNES then
+ return heroEntity:getRunes():hasAttr(attr[heroEntity:getMatchType()])
+ end
+
+ return true
+end
+
--获取节点显示属性个数
function AttrNodeCell:getShowAttrCount()
return self.attrCount
diff --git a/lua/app/ui/hero/hero_attr_ui.lua b/lua/app/ui/hero/hero_attr_ui.lua
index 1b419be6..eb9d93bb 100644
--- a/lua/app/ui/hero/hero_attr_ui.lua
+++ b/lua/app/ui/hero/hero_attr_ui.lua
@@ -44,7 +44,7 @@ function HeroAttrUI:onRefresh()
local totalHeight = 0
for index, node in ipairs(GConst.HeroConst.SHOW_NODE) do
-- 有皮肤属性时才显示皮肤
- if node ~= GConst.HeroConst.ATTR_SHOW_SKIN or #DataManager.SkinData:getOwnAllAttr(self.heroEntity) > 0 then
+ if self:isShowAttr(node) then
CellManager:loadCellAsync(ATTR_NODE_CELL_PATH, ATTR_NODE_CELL, self.rootNodes, function(cell)
cell:refresh(self.heroEntity, node)
@@ -60,4 +60,17 @@ function HeroAttrUI:onRefresh()
self.rootNodes:setAnchoredPositionY(0)
end
+-- 是否显示属性块
+function HeroAttrUI:isShowAttr(node)
+ if node == GConst.HeroConst.ATTR_SHOW_SKIN then
+ return #DataManager.SkinData:getOwnAllAttr(self.heroEntity) > 0
+ end
+ if node == GConst.HeroConst.ATTR_SHOW_RUNES then
+ local all = self.heroEntity:getRunes():getAllAttr()
+ return all and #all > 0
+ end
+
+ return true
+end
+
return HeroAttrUI
\ No newline at end of file
diff --git a/lua/app/ui/hero/hero_comp.lua b/lua/app/ui/hero/hero_comp.lua
index f8c1d7b7..8e8abbaf 100644
--- a/lua/app/ui/hero/hero_comp.lua
+++ b/lua/app/ui/hero/hero_comp.lua
@@ -58,7 +58,7 @@ function HeroComp:init()
if heroId then
local hero = DataManager.HeroData:getHeroById(heroId)
if hero then
- ModuleManager.HeroManager:showHeroDetailUI(heroId, nil, nil, nil, self.battleType)
+ ModuleManager.HeroManager:showHeroDetailUI(heroId, nil, nil, self.battleType)
end
end
end)
@@ -265,7 +265,7 @@ function HeroComp:onClickHero(cell, heroId)
self.largeHeroCell:refresh(entity, not entity:isActived(), self.onClickUseFunc)
self.largeHeroCell:showCheck(self.curFormation[entity:getMatchType()] == heroId)
else
- ModuleManager.HeroManager:showHeroDetailUI(heroId, nil, nil, nil, self.battleType)
+ ModuleManager.HeroManager:showHeroDetailUI(heroId, nil, nil, self.battleType)
self.largeHeroCell:getBaseObject():setAnchoredPositionX(OUT_SCREEN_X)
end
else
diff --git a/lua/app/ui/hero/hero_detail_ui.lua b/lua/app/ui/hero/hero_detail_ui.lua
index e969a868..dd27a174 100644
--- a/lua/app/ui/hero/hero_detail_ui.lua
+++ b/lua/app/ui/hero/hero_detail_ui.lua
@@ -2,10 +2,9 @@ local HeroDetailUI = class("HeroDetailUI", BaseUI)
local COMP_HERO = "app/ui/hero/hero_info_comp"
local COMP_WEAPON = "app/ui/hero/weapon_info_comp"
local COMP_ARMOR = "app/ui/hero/armor_info_comp"
-local COMP_SKIN = "app/ui/hero/skin_info_comp"
+local COMP_RUNES = "app/ui/hero/runes_info_comp"
local SIZE_DELTA_Y_HERO = 942
local SIZE_DELTA_Y_LOOK_HERO = 802
-local SIZE_DELTA_Y_LOOK_SKIN = 720
function HeroDetailUI:isFullScreen()
return false
@@ -20,12 +19,7 @@ function HeroDetailUI:onPressBackspace()
end
function HeroDetailUI:ctor(parmas)
- if parmas.skinId then
- self.onlyLookSkinId = parmas.skinId
- self.panelType = GConst.HeroConst.PANEL_TYPE.SKIN
- else
- self.panelType = parmas.panelType or GConst.HeroConst.PANEL_TYPE.HERO
- end
+ self.panelType = parmas.panelType or GConst.HeroConst.PANEL_TYPE.HERO
self.formationType = parmas.formationType
self.onlyLook = parmas.onlyLook
if parmas.heroEntity then
@@ -43,9 +37,10 @@ function HeroDetailUI:onLoadRootComplete()
self.heroInfo = uiMap["hero_detail_ui.hero_info"]
self.weaponInfo = uiMap["hero_detail_ui.weapon_info"]
self.armorInfo = uiMap["hero_detail_ui.armor_info"]
- self.skinInfo = uiMap["hero_detail_ui.skin_info"]
+ self.runesInfo = uiMap["hero_detail_ui.runes_info"]
self.txTitle = uiMap["hero_detail_ui.common.img_title.tx_title"]
self.btnClose = uiMap["hero_detail_ui.common.btn_close"]
+ self.bg = uiMap["hero_detail_ui.common.bg.bg"]
self.btnHero = uiMap["hero_detail_ui.common.btns.btn_hero"]
self.txHero1 = uiMap["hero_detail_ui.common.btns.btn_hero.tx_btn"]
self.selectHero = uiMap["hero_detail_ui.common.btns.btn_hero.select"]
@@ -60,11 +55,11 @@ function HeroDetailUI:onLoadRootComplete()
self.txArmor1 = uiMap["hero_detail_ui.common.btns.btn_armor.tx_btn"]
self.selectArmor = uiMap["hero_detail_ui.common.btns.btn_armor.select"]
self.txArmor2 = uiMap["hero_detail_ui.common.btns.btn_armor.select.tx_select"]
- self.btnSkin = uiMap["hero_detail_ui.common.btns.btn_skin"]
- self.lockSkin = uiMap["hero_detail_ui.common.btns.btn_skin.content.img_lock"]
- self.txSkin1 = uiMap["hero_detail_ui.common.btns.btn_skin.content.tx_btn"]
- self.selectSkin = uiMap["hero_detail_ui.common.btns.btn_skin.select"]
- self.txSkin2 = uiMap["hero_detail_ui.common.btns.btn_skin.select.tx_select"]
+ self.btnRunes = uiMap["hero_detail_ui.common.btns.btn_runes"]
+ self.lockRunes = uiMap["hero_detail_ui.common.btns.btn_runes.content.img_lock"]
+ self.txRunes1 = uiMap["hero_detail_ui.common.btns.btn_runes.content.tx_btn"]
+ self.selectRunes = uiMap["hero_detail_ui.common.btns.btn_runes.select"]
+ self.txRunes2 = uiMap["hero_detail_ui.common.btns.btn_runes.select.tx_select"]
self.btnLeft = uiMap["hero_detail_ui.common.btn_left"]
self.btnRight = uiMap["hero_detail_ui.common.btn_right"]
@@ -74,8 +69,8 @@ function HeroDetailUI:onLoadRootComplete()
self.txWeapon2:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_DESC_1))
self.txArmor1:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_DESC_2))
self.txArmor2:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_DESC_2))
- self.txSkin1:setText(I18N:getGlobalText(I18N.GlobalConst.SKIN))
- self.txSkin2:setText(I18N:getGlobalText(I18N.GlobalConst.SKIN))
+ self.txRunes1:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_6))
+ self.txRunes2:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_6))
if not DataManager.EquipData:isWeaponOpen() then
self.lockWeapon:setVisible(true)
GFunc.centerImgAndTx(self.lockWeapon, self.txWeapon1, 5)
@@ -88,11 +83,11 @@ function HeroDetailUI:onLoadRootComplete()
else
self.lockArmor:setVisible(false)
end
- if not DataManager.SkinData:isOpen() then
- self.lockSkin:setVisible(true)
- GFunc.centerImgAndTx(self.lockSkin, self.txSkin1, 5)
+ if not DataManager.RunesData:isOpen() then
+ self.lockRunes:setVisible(true)
+ GFunc.centerImgAndTx(self.lockRunes, self.txRunes1, 5)
else
- self.lockSkin:setVisible(false)
+ self.lockRunes:setVisible(false)
end
self.heroList = DataManager.HeroData:getAllHeroesSort(self.formationType)
@@ -117,18 +112,22 @@ function HeroDetailUI:onLoadRootComplete()
self.panelType = GConst.HeroConst.PANEL_TYPE.ARMOR
self:refreshShow()
end)
- self.btnSkin:addClickListener(function()
- if not DataManager.SkinData:isOpen(true) then
+ self.btnRunes:addClickListener(function()
+ if not DataManager.RunesData:isOpen(true) then
return
end
- self.panelType = GConst.HeroConst.PANEL_TYPE.SKIN
+ if not self.heroEntity:isActived() then
+ GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_24))
+ return
+ end
+ self.panelType = GConst.HeroConst.PANEL_TYPE.RUNES
self:refreshShow()
end)
self.btnClose:addClickListener(function()
self:closeUI()
end)
self.btnLeft:addClickListener(function()
- if not self:isExistLeftHero() then
+ if not self:isShowLeftArrow() then
return
end
self.heroEntity = DataManager.HeroData:getHeroById(self.heroList[self.idxLast].cfgId)
@@ -136,7 +135,7 @@ function HeroDetailUI:onLoadRootComplete()
self:refreshShow()
end)
self.btnRight:addClickListener(function()
- if not self:isExistRightHero() then
+ if not self:isShowRightArrow() then
return
end
self.heroEntity = DataManager.HeroData:getHeroById(self.heroList[self.idxNext].cfgId)
@@ -168,9 +167,6 @@ function HeroDetailUI:onLoadRootComplete()
self:addEventListener(EventManager.CUSTOM_EVENT.GO_DUNGEON_UI, function()
self:closeUI()
end)
- self:addEventListener(EventManager.CUSTOM_EVENT.SKIN_SELECT, function(skinId)
- self.compSkin:refreshSelectSkin(skinId)
- end)
end
function HeroDetailUI:updateSide()
@@ -190,28 +186,26 @@ function HeroDetailUI:refreshShow()
self:showWeaponInfo()
elseif self.panelType == GConst.HeroConst.PANEL_TYPE.ARMOR then
self:showArmorInfo()
- elseif self.panelType == GConst.HeroConst.PANEL_TYPE.SKIN then
- self:showSkinInfo()
+ elseif self.panelType == GConst.HeroConst.PANEL_TYPE.RUNES then
+ self:showRunesInfo()
end
if self.onlyLook then -- 仅查看的不显示升级和激活按钮
self.btnHero:setActive(false)
self.btnWeapon:setActive(false)
self.btnArmor:setActive(false)
- self.btnSkin:setActive(false)
+ self.btnRunes:setActive(false)
self.btnLeft:setActive(false)
self.btnRight:setActive(false)
if self.panelType == GConst.HeroConst.PANEL_TYPE.HERO then
self.commonInfo:setSizeDeltaY(SIZE_DELTA_Y_LOOK_HERO)
- elseif self.panelType == GConst.HeroConst.PANEL_TYPE.SKIN then
- self.commonInfo:setSizeDeltaY(SIZE_DELTA_Y_LOOK_SKIN)
end
else
self.btnHero:setActive(true)
self.btnWeapon:setActive(true)
self.btnArmor:setActive(true)
- self.btnSkin:setActive(true)
- self.btnLeft:setActive(self:isExistLeftHero())
- self.btnRight:setActive(self:isExistRightHero())
+ self.btnRunes:setActive(true)
+ self.btnLeft:setActive(self:isShowLeftArrow())
+ self.btnRight:setActive(self:isShowRightArrow())
self.commonInfo:setSizeDeltaY(SIZE_DELTA_Y_HERO)
self:refreshRedPoint()
end
@@ -243,8 +237,9 @@ function HeroDetailUI:showHeroInfo()
self.selectWeapon:setActive(false)
self.armorInfo:setActive(false)
self.selectArmor:setActive(false)
- self.skinInfo:setActive(false)
- self.selectSkin:setActive(false)
+ self.runesInfo:setActive(false)
+ self.selectRunes:setActive(false)
+ self.bg:setActive(true)
if not self.compHero then
self.heroInfo:initPrefabHelper()
@@ -263,8 +258,9 @@ function HeroDetailUI:showWeaponInfo()
self.selectWeapon:setActive(true)
self.armorInfo:setActive(false)
self.selectArmor:setActive(false)
- self.skinInfo:setActive(false)
- self.selectSkin:setActive(false)
+ self.runesInfo:setActive(false)
+ self.selectRunes:setActive(false)
+ self.bg:setActive(true)
if not self.compWeapon then
self.weaponInfo:initPrefabHelper()
@@ -284,8 +280,9 @@ function HeroDetailUI:showArmorInfo()
self.selectWeapon:setActive(false)
self.armorInfo:setActive(true)
self.selectArmor:setActive(true)
- self.skinInfo:setActive(false)
- self.selectSkin:setActive(false)
+ self.runesInfo:setActive(false)
+ self.selectRunes:setActive(false)
+ self.bg:setActive(true)
if not self.compArmor then
self.armorInfo:initPrefabHelper()
@@ -298,34 +295,42 @@ function HeroDetailUI:showArmorInfo()
self.compArmor:refresh()
end
-function HeroDetailUI:showSkinInfo()
+function HeroDetailUI:showRunesInfo()
self.heroInfo:setActive(false)
self.selectHero:setActive(false)
self.weaponInfo:setActive(false)
self.selectWeapon:setActive(false)
self.armorInfo:setActive(false)
self.selectArmor:setActive(false)
- self.skinInfo:setActive(true)
- self.selectSkin:setActive(true)
+ self.runesInfo:setActive(true)
+ self.selectRunes:setActive(true)
+ self.bg:setActive(false)
- if not self.compSkin then
- self.skinInfo:initPrefabHelper()
- self.skinInfo:genAllChildren()
- self.compSkin = self.skinInfo:addLuaComponent(COMP_SKIN)
- self.compSkin:setUI(self)
+ if not self.compRunes then
+ self.runesInfo:initPrefabHelper()
+ self.runesInfo:genAllChildren()
+ self.compRunes = self.runesInfo:addLuaComponent(COMP_RUNES)
end
- self.compSkin:setHeroData(self.heroEntity, self.onlyLookSkinId)
- self.compSkin:refresh()
+ self.compRunes:setHeroData(self.heroEntity)
+ self.compRunes:refresh()
end
--- 是否存在左侧英雄
-function HeroDetailUI:isExistLeftHero()
+-- 是否显示左箭头
+function HeroDetailUI:isShowLeftArrow()
+ if self.panelType == GConst.HeroConst.PANEL_TYPE.RUNES then
+ return false
+ end
+
return self.idxLast and self.idxLast > 0
end
--- 是否存在右侧英雄
-function HeroDetailUI:isExistRightHero()
+-- 是否显示右箭头
+function HeroDetailUI:isShowRightArrow()
+ if self.panelType == GConst.HeroConst.PANEL_TYPE.RUNES then
+ return false
+ end
+
return self.idxNext and self.idxNext <= #self.heroList
end
diff --git a/lua/app/ui/hero/hero_info_comp.lua b/lua/app/ui/hero/hero_info_comp.lua
index 94e4df5a..e71dab05 100644
--- a/lua/app/ui/hero/hero_info_comp.lua
+++ b/lua/app/ui/hero/hero_info_comp.lua
@@ -34,6 +34,8 @@ function HeroInfoComp:init()
self.bgElement = uiMap["hero_detail_ui.bg.element_bg"]
self.btnAttr = uiMap["hero_info.bg_6.btn_attr"]
self.fragmentNode = uiMap["hero_detail_ui.bg.fragment_bg"]
+ self.btnSkin = uiMap["hero_info.up.btn_skin"]
+ self.txSkin = uiMap["hero_info.up.btn_skin.tx_skin"]
self.skill = {}
self.skillIcon = {}
@@ -47,7 +49,12 @@ function HeroInfoComp:init()
self.spineObjSkill:setVisible(false)
self.spineObjLv:setVisible(false)
self.spineObj:setVisible(false)
+ self.txSkin:setText(I18N:getGlobalText(I18N.GlobalConst.SKIN))
+ self.btnSkin:setActive(DataManager.SkinData:isOpen())
+ self.btnSkin:addClickListener(function()
+ ModuleManager.HeroManager:showHeroSkinUI(self.heroEntity:getCfgId())
+ end)
self.btnUp:addClickListener(function()
ModuleManager.HeroManager:upgradeHero(self.heroEntity:getCfgId(), self.heroEntity)
end)
diff --git a/lua/app/ui/hero/skin_info_comp.lua b/lua/app/ui/hero/hero_skin_ui.lua
similarity index 87%
rename from lua/app/ui/hero/skin_info_comp.lua
rename to lua/app/ui/hero/hero_skin_ui.lua
index 56ffcb02..d53e574c 100644
--- a/lua/app/ui/hero/skin_info_comp.lua
+++ b/lua/app/ui/hero/hero_skin_ui.lua
@@ -1,13 +1,37 @@
-local SkinInfoComp = class("SkinInfoComp", LuaComponent)
-local DEFAULT_FACTOR = GConst.BattleConst.DEFAULT_FACTOR
-local PERCENT_FACTOR = 100
-
+local HeroSkinUI = class("HeroSkinUI", BaseUI)
local SIZE_DELTA_Y_SKIN = 942
local SIZE_DELTA_Y_LOOK = 720
-function SkinInfoComp:init()
- local uiMap = self:getUIMap()
+function HeroSkinUI:isFullScreen()
+ return false
+end
+function HeroSkinUI:getPrefabPath()
+ return "assets/prefabs/ui/hero/hero_skin_ui.prefab"
+end
+
+function HeroSkinUI:onPressBackspace()
+ self:closeUI()
+end
+
+function HeroSkinUI:ctor(parmas)
+ self.heroEntity = DataManager.HeroData:getHeroById(parmas.heroId)
+
+ if parmas.onlyLookSkinId then
+ self.onlyLook = true
+ self.selectSkinId = parmas.onlyLookSkinId
+ else
+ self.onlyLook = false
+ self.selectSkinId = self.heroEntity:getSkinId()
+ end
+end
+
+function HeroSkinUI:onLoadRootComplete()
+ local uiMap = self.root:genAllChildren()
+ self.bg = uiMap["hero_skin_ui.bg"]
+ self.content = uiMap["hero_skin_ui.content"]
+ self.txTitle = uiMap["hero_skin_ui.common.img_title.tx_title"]
+ self.btnClose = uiMap["hero_skin_ui.common.btn_close"]
self.txName = uiMap["skin_info.name.tx_name"]
self.bgQlt = uiMap["skin_info.bg_qlt"]
self.iconQlt = uiMap["skin_info.bg_qlt.icon_qlt"]
@@ -26,36 +50,28 @@ function SkinInfoComp:init()
self.attr[i] = uiMap["skin_info.attr_" .. i]
end
+ self.txTitle:setText(self.heroEntity:getName())
self.txDesc1:setText(I18N:getGlobalText(I18N.GlobalConst.SKIN_ATTR))
self.txDesc2:setText(I18N:getGlobalText(I18N.GlobalConst.SKIN_LIST))
+ self.btnClose:addClickListener(function()
+ self:closeUI()
+ end)
self.btnUse:addClickListener(function()
ModuleManager.SkinManager:reqChangeSkin(self.heroEntity:getCfgId(), self.selectSkinId)
end)
self.btnAttr:addClickListener(function()
UIManager:showUI("app/ui/hero/hero_attr_ui", {heroEntity = self.heroEntity})
end)
-end
-
-function SkinInfoComp:setUI(ui)
- self.uiRoot = ui
-end
-
-function SkinInfoComp:setHeroData(heroEntity, onlyLookSkinId)
- self.heroEntity = heroEntity
- if onlyLookSkinId then
- self.onlyLook = true
- self.selectSkinId = onlyLookSkinId
- else
- self.onlyLook = false
- self.selectSkinId = self.heroEntity:getSkinId()
- end
self:bind(self.heroEntity, "isDirty", function()
- self:refresh()
+ self:onRefresh()
+ end)
+ self:addEventListener(EventManager.CUSTOM_EVENT.SKIN_SELECT, function(skinId)
+ self:refreshSelectSkin(skinId)
end)
end
-function SkinInfoComp:refresh()
+function HeroSkinUI:onRefresh()
local ids = DataManager.SkinData:getHeroAllSkinIdsSort(self.heroEntity:getCfgId())
self.scrollrectComp:addInitCallback(function()
return "app/ui/hero/cell/skin_cell"
@@ -70,7 +86,7 @@ function SkinInfoComp:refresh()
end
-- 刷新选择皮肤相关内容
-function SkinInfoComp:refreshSelectSkin(selectId)
+function HeroSkinUI:refreshSelectSkin(selectId)
if selectId then
self.selectSkinId = selectId
self.scrollrectComp:updateAllCell()
@@ -95,77 +111,65 @@ function SkinInfoComp:refreshSelectSkin(selectId)
local txTitle = map["tx_title"]
local txNum = map["tx_num"]
- local showValue
if curAttr[index].type == GConst.MATCH_ATTACK_NAME[self.heroEntity:getMatchType()] then
-- 攻击
table.insert(showAttrType, GConst.MATCH_ATTACK_NAME[self.heroEntity:getMatchType()])
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_5")
txTitle:setText(""..I18N:getGlobalText(I18N.GlobalConst.ATTR_ATK).."")
- showValue = curAttr[index].num // DEFAULT_FACTOR
elseif curAttr[index].type == GConst.MATCH_ATTACK_ADD_NAME[self.heroEntity:getMatchType()] then
-- 攻击加成百分比
table.insert(showAttrType, GConst.MATCH_ATTACK_ADD_NAME[self.heroEntity:getMatchType()])
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_5")
txTitle:setText(""..I18N:getGlobalText(I18N.GlobalConst.ATTR_ATK).."")
- showValue = curAttr[index].num // PERCENT_FACTOR .. "%"
elseif curAttr[index].type == GConst.MATCH_HP_FIX_NAME[self.heroEntity:getMatchType()] then
-- 生命
table.insert(showAttrType, GConst.MATCH_HP_FIX_NAME[self.heroEntity:getMatchType()])
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_4")
txTitle:setText(""..I18N:getGlobalText(I18N.GlobalConst.ATTR_HP).."")
- showValue = curAttr[index].num // DEFAULT_FACTOR
elseif curAttr[index].type == GConst.MATCH_HP_ADD_NAME[self.heroEntity:getMatchType()] then
-- 生命加成百分比
table.insert(showAttrType, GConst.MATCH_HP_ADD_NAME[self.heroEntity:getMatchType()])
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_4")
txTitle:setText(""..I18N:getGlobalText(I18N.GlobalConst.ATTR_HP).."")
- showValue = (curAttr[index].num // PERCENT_FACTOR) .. "%"
elseif curAttr[index].type == GConst.MATCH_NORMAL_HURT_NAME[self.heroEntity:getMatchType()] then
-- 普攻增伤
table.insert(showAttrType, GConst.MATCH_NORMAL_HURT_NAME[self.heroEntity:getMatchType()])
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_20")
txTitle:setText(""..I18N:getGlobalText(I18N.GlobalConst.ATTR_NORMAL_HURT).."")
- showValue = curAttr[index].num // DEFAULT_FACTOR
elseif curAttr[index].type == GConst.MATCH_SKILL_HURT_NAME[self.heroEntity:getMatchType()] then
-- 技能增伤
table.insert(showAttrType, GConst.MATCH_SKILL_HURT_NAME[self.heroEntity:getMatchType()])
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_21")
txTitle:setText(""..I18N:getGlobalText(I18N.GlobalConst.ATTR_SKILL_HURT).."")
- showValue = curAttr[index].num // DEFAULT_FACTOR
elseif curAttr[index].type == GConst.MATCH_NORMAL_HURTP_NAME[self.heroEntity:getMatchType()] then
-- 普攻增伤百分比
table.insert(showAttrType, GConst.MATCH_NORMAL_HURTP_NAME[self.heroEntity:getMatchType()])
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_20")
txTitle:setText(""..I18N:getGlobalText(I18N.GlobalConst.ATTR_NORMAL_HURTP).."")
- showValue = curAttr[index].num // PERCENT_FACTOR .. "%"
elseif curAttr[index].type == GConst.MATCH_SKILL_HURTP_NAME[self.heroEntity:getMatchType()] then
-- 技能增伤百分比
table.insert(showAttrType, GConst.MATCH_SKILL_HURTP_NAME[self.heroEntity:getMatchType()])
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_21")
txTitle:setText(""..I18N:getGlobalText(I18N.GlobalConst.ATTR_SKILL_HURTP).."")
- showValue = curAttr[index].num // PERCENT_FACTOR .. "%"
elseif curAttr[index].type == GConst.MATCH_CRIT_NAME[self.heroEntity:getMatchType()] then
-- 暴击率百分比
table.insert(showAttrType, GConst.MATCH_CRIT_NAME[self.heroEntity:getMatchType()])
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_22")
txTitle:setText(""..I18N:getGlobalText(I18N.GlobalConst.ATTR_CRIT).."")
- showValue = curAttr[index].num // PERCENT_FACTOR .. "%"
elseif curAttr[index].type == GConst.MATCH_CRIT_TIME_NAME[self.heroEntity:getMatchType()] then
-- 暴击伤害百分比
table.insert(showAttrType, GConst.MATCH_CRIT_TIME_NAME[self.heroEntity:getMatchType()])
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_23")
txTitle:setText(""..I18N:getGlobalText(I18N.GlobalConst.ATTR_CRIT_TIME).."")
- showValue = curAttr[index].num // PERCENT_FACTOR .. "%"
elseif curAttr[index].type == GConst.MATCH_CURED_NAME[self.heroEntity:getMatchType()] then
-- 治疗提升百分比
table.insert(showAttrType, GConst.MATCH_CURED_NAME[self.heroEntity:getMatchType()])
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_24")
txTitle:setText(""..I18N:getGlobalText(I18N.GlobalConst.ATTR_CURED).."")
- showValue = curAttr[index].num // PERCENT_FACTOR .. "%"
else
obj:setVisible(false)
end
- txNum:setText(showValue)
+ txNum:setText(GFunc.getAttrShowValue(curAttr[index].type, curAttr[index].num))
else
obj:setVisible(false)
end
@@ -221,12 +225,14 @@ function SkinInfoComp:refreshSelectSkin(selectId)
if self.onlyLook then -- 仅查看
self.txDesc2:setVisible(false)
self.scrollrectComp.baseObject:setVisible(false)
- self.baseObject:setSizeDeltaY(SIZE_DELTA_Y_LOOK)
+ self.bg:setSizeDeltaY(SIZE_DELTA_Y_LOOK)
+ self.content:setSizeDeltaY(SIZE_DELTA_Y_LOOK)
else
self.txDesc2:setVisible(true)
self.scrollrectComp.baseObject:setVisible(true)
- self.baseObject:setSizeDeltaY(SIZE_DELTA_Y_SKIN)
+ self.bg:setSizeDeltaY(SIZE_DELTA_Y_SKIN)
+ self.content:setSizeDeltaY(SIZE_DELTA_Y_SKIN)
end
end
-return SkinInfoComp
\ No newline at end of file
+return HeroSkinUI
\ No newline at end of file
diff --git a/lua/app/ui/hero/hero_skin_ui.lua.meta b/lua/app/ui/hero/hero_skin_ui.lua.meta
new file mode 100644
index 00000000..3ae659a2
--- /dev/null
+++ b/lua/app/ui/hero/hero_skin_ui.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 013e50285bf00304b9911ee482aa7b3d
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/hero/runes_info_comp.lua b/lua/app/ui/hero/runes_info_comp.lua
new file mode 100644
index 00000000..d7945169
--- /dev/null
+++ b/lua/app/ui/hero/runes_info_comp.lua
@@ -0,0 +1,245 @@
+local RunesInfoComp = class("RunesInfoComp", LuaComponent)
+
+local LOCK_ICON = "common_lock"
+local UNLOCK_ICON = "common_lock_1"
+
+function RunesInfoComp:init()
+ local uiMap = self:getUIMap()
+ self.btnHelp = uiMap["runes_info.btn_help"]
+ self.imgProg = uiMap["runes_info.prog.img_prog"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER)
+ self.txProg = uiMap["runes_info.prog.tx_prog"]
+ self.txLevel = uiMap["runes_info.level.tx_level"]
+ self.btnSuit = uiMap["runes_info.btn_suit"]
+ self.txSuit = uiMap["runes_info.btn_suit.tx_suit"]
+ self.itemMaterial = uiMap["runes_info.item_material"]
+ self.txNum = uiMap["runes_info.item_material.tx_num"]
+ self.btnUse = uiMap["runes_info.bottom.btn_use"]
+ self.txUse = uiMap["runes_info.bottom.btn_use.tx_use"]
+ self.imgCost = uiMap["runes_info.bottom.btn_use.cost.img_cost"]
+ self.txCost = uiMap["runes_info.bottom.btn_use.cost.tx_cost"]
+ self.btnAuto = uiMap["runes_info.bottom.btn_auto"]
+ self.spineAuto = uiMap["runes_info.bottom.btn_auto.spine_auto"]
+ self.txAuto = uiMap["runes_info.bottom.btn_auto.tx_auto"]
+ self.txEmpty = uiMap["runes_info.suits.tx_empty"]
+ self.mask = uiMap["runes_info.bottom.mask"]
+ self.suits = {}
+ for i = 1, 3 do
+ self.suits[i] = uiMap["runes_info.suits.item_suit_" .. i]
+ end
+ self.grids = {}
+ for i = 1, 6 do
+ self.grids[i] = uiMap["runes_info.list_attr.grid_" .. i]
+ end
+
+ self.mask:setActive(false)
+ self.txSuit:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_2))
+ self.txUse:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_5))
+ self.txAuto:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_4))
+ self.txEmpty:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_23))
+
+ self.itemMaterial:addClickListener(function()
+ UIManager:showUI("app/ui/runes/runes_source_ui")
+ end)
+ self.btnHelp:addClickListener(function()
+ UIManager:showUI("app/ui/runes/runes_level_ui")
+ end)
+ self.btnSuit:addClickListener(function()
+ UIManager:showUI("app/ui/runes/runes_suit_ui", self.heroEntity)
+ end)
+ self.btnAuto:addClickListener(function()
+ if not DataManager.RunesData:canAutoMake() then
+ GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_27, DataManager.RunesData:getAutoMakeOpenLevel()))
+ return
+ end
+ if self.autoSid == nil then
+ local params ={
+ content = I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_21),
+ boxType = GConst.MESSAGE_BOX_TYPE.MB_OK_CANCEL,
+ showToday = GConst.MESSAGE_BOX_SHOW_TODAY.RUNES_AUTO,
+ okFunc = function()
+ self:checkQuenching(true)
+ end,
+ }
+ GFunc.showMessageBox(params)
+ else
+ self:endAutoQuenching()
+ end
+ end)
+ self.btnUse:addClickListener(function()
+ self:checkQuenching(false)
+ end)
+ self:bind(DataManager.BagData.ItemData, "dirty", function()
+ self:refresh()
+ end)
+ self:bind(DataManager.RunesData, "isDirty", function()
+ self:refresh()
+ end)
+end
+
+function RunesInfoComp:setHeroData(heroEntity)
+ self.heroEntity = heroEntity
+ self.runesEntity = DataManager.RunesData:getRunes(self.heroEntity:getCfgId())
+end
+
+function RunesInfoComp:refresh()
+
+ local curExp = DataManager.RunesData:getLevelExp()
+ local maxExp = DataManager.RunesData:getNextLevelTotalExp()
+ if maxExp then
+ self.imgProg.value = curExp / maxExp
+ self.txProg:setText(curExp .. "/" .. maxExp)
+ else
+ self.imgProg.value = 1
+ self.txProg:setText(I18N:getGlobalText(I18N.GlobalConst.STR_MAX))
+ end
+
+ if self.autoSid == nil then
+ if DataManager.RunesData:canAutoMake() then
+ self.spineAuto:playAnim("idle", true, true)
+ else
+ self.spineAuto:playAnim("idle2", true, true)
+ end
+ end
+ self.txNum:setText(DataManager.RunesData:getMaterialCount())
+ self.txCost:setText(GFunc.getRewardNum(self.runesEntity:getMaterialCost()))
+ self.txLevel:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_1, DataManager.RunesData:getLevel()))
+ GFunc.centerImgAndTx(self.imgCost, self.txCost)
+
+ self:refreshSuit()
+ self:refreshRunes()
+end
+
+-- 刷新符文
+function RunesInfoComp:refreshRunes()
+ for index, obj in ipairs(self.grids) do
+ local map = obj:genAllChildren()
+ local imgQlt = map["img_qlt"]
+ local imgSuit = map["img_suit"]
+ local txAttr = map["tx_attr"]
+ local imgLock = map["img_lock"]
+ local lock = map["lock"]
+ local txLock = map["tx_lock"]
+ obj:getComponent(GConst.TYPEOF_UNITY_CLASS.ANIMATOR).enabled = false
+
+ if DataManager.RunesData:isUnlock(index) then
+ lock:setActive(false)
+ local qlt = self.runesEntity:getGridQuality(index)
+ if qlt then
+ imgQlt:setSprite(GConst.ATLAS_PATH.HERO, GConst.RunesConst.QUALITY_ICON[qlt])
+ end
+ local suit = self.runesEntity:getGridSuit(index)
+ if suit then
+ imgSuit:setSprite(GConst.ATLAS_PATH.HERO, "hero_rune_"..suit)
+ end
+ imgLock:setSprite(GConst.ATLAS_PATH.COMMON, self.runesEntity:isAttrLock(index) and LOCK_ICON or UNLOCK_ICON)
+ local attr = self.runesEntity:getGridAttr(index)
+ if attr then
+ txAttr:setText(GFunc.getAttrDesc(attr.type, attr.num))
+ end
+ imgLock:addClickListener(function()
+ ModuleManager.RunesManager:reqChangeLockGrid(self.heroEntity:getCfgId(), index, not self.runesEntity:isAttrLock(index))
+ end)
+ else
+ lock:setActive(true)
+ txLock:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_3, DataManager.RunesData:getUnlockLevel(index)))
+ end
+ end
+end
+
+-- 刷新套装
+function RunesInfoComp:refreshSuit()
+ local ids = self.runesEntity:getSuitIds()
+
+ local isEmpty = true
+ for index, obj in ipairs(self.suits) do
+ local map = obj:genAllChildren()
+ local img = map["img"]
+ local tx = map["tx"]
+
+ if ids[index] then
+ local level = self.runesEntity:getSuitLevel(ids[index].id)
+ if level > 0 then
+ isEmpty = false
+ obj:setActive(true)
+ img:setSprite(GConst.ATLAS_PATH.HERO, "hero_rune_"..ids[index].id)
+ tx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_1, level))
+ else
+ obj:setActive(false)
+ end
+ else
+ obj:setActive(false)
+ end
+ end
+
+ self.txEmpty:setActive(isEmpty)
+end
+
+-- 检查淬炼
+function RunesInfoComp:checkQuenching(isAuto)
+ -- 是否全部锁定
+ if DataManager.RunesData:getRunes(self.heroEntity:getCfgId()):getAttrLockCount() >= DataManager.RunesData:getUnlockCount() then
+ GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_25))
+ return
+ end
+ -- 材料是否足够
+ local cost = self.runesEntity:getMaterialCost()
+ if not GFunc.checkCost(GFunc.getRewardId(cost), GFunc.getRewardNum(cost), true) then
+ UIManager:showUI("app/ui/runes/runes_source_ui")
+ return
+ end
+
+ if self.runesEntity:isUnlockHighQlt() then
+ local params ={
+ content = I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_28),
+ boxType = GConst.MESSAGE_BOX_TYPE.MB_OK_CANCEL,
+ okText = I18N:getGlobalText(I18N.GlobalConst.CONTINUE_DESC),
+ okFunc = function()
+ self:reqQuenching(isAuto)
+ end,
+ }
+ GFunc.showMessageBox(params)
+ else
+ self:reqQuenching(isAuto)
+ end
+end
+
+-- 请求淬炼
+function RunesInfoComp:reqQuenching(isAuto)
+ if isAuto then
+ -- 自动淬炼
+ self.mask:setActive(true)
+ self.autoSid = self.baseObject:scheduleGlobal(function()
+ local cost = self.runesEntity:getMaterialCost()
+ if not GFunc.checkCost(GFunc.getRewardId(cost), GFunc.getRewardNum(cost), true) then
+ self:endAutoQuenching()
+ return
+ end
+ ModuleManager.RunesManager:reqQuenching(self.heroEntity:getCfgId(), 0)
+ end, 1 / 3)
+ self.spineAuto:playAnim("attack", true, true)
+ else
+ -- 单次淬炼
+ ModuleManager.RunesManager:reqQuenching(self.heroEntity:getCfgId(), 0)
+ end
+end
+
+-- 结束自动淬炼
+function RunesInfoComp:endAutoQuenching()
+ self.mask:setActive(false)
+ if self.autoSid then
+ self.baseObject:unscheduleGlobal(self.autoSid)
+ self.autoSid = nil
+ end
+
+ for index, obj in ipairs(self.grids) do
+ if DataManager.RunesData:isUnlock(index) then
+ local animator = obj:getComponent(GConst.TYPEOF_UNITY_CLASS.ANIMATOR)
+ animator.enabled = true
+ -- CS.UnityEngine.Animator.StringToHash("runes_shake") 结果是1132417824
+ animator:Play(1132417824, -1, 0)
+ end
+ end
+ self.spineAuto:playAnim("idle", true, true)
+end
+
+return RunesInfoComp
\ No newline at end of file
diff --git a/lua/app/ui/hero/runes_info_comp.lua.meta b/lua/app/ui/hero/runes_info_comp.lua.meta
new file mode 100644
index 00000000..86d85a4c
--- /dev/null
+++ b/lua/app/ui/hero/runes_info_comp.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 4d6ae74e1ac107c4ca73bacaafebec15
+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_full_moon_cell.lua b/lua/app/ui/main_city/cell/side_bar_full_moon_cell.lua
new file mode 100644
index 00000000..cc3448aa
--- /dev/null
+++ b/lua/app/ui/main_city/cell/side_bar_full_moon_cell.lua
@@ -0,0 +1,46 @@
+local SideBarBaseCellComp = require "app/ui/main_city/cell/side_bar_base_cell"
+local SideBarFullMoonCell = class("SideBarFullMoonCell", SideBarBaseCellComp)
+
+function SideBarFullMoonCell:getModuleKey()
+ return ModuleManager.MODULE_KEY.ACTIVITY
+end
+
+function SideBarFullMoonCell:getIsOpen()
+ return DataManager.FullMoonData:isOpen() and DataManager.FullMoonData:isOpenTime()
+end
+
+function SideBarFullMoonCell:getSpineName()
+ return "ui_main_btn_act_fullmoon"
+end
+
+function SideBarFullMoonCell:onClick()
+ ModuleManager.FullMoonManager:showActMainUI()
+end
+
+function SideBarFullMoonCell:getIsShowRedPoint()
+ return DataManager.FullMoonData:hasEntryRedPoint()
+end
+
+function SideBarFullMoonCell:onRefresh()
+ self.timeBg:setVisible(true)
+ self:_refreshTime()
+end
+
+function SideBarFullMoonCell:updateTime()
+ if self:getIsOpen() then
+ self:_refreshTime()
+ else
+ self:closeBtn()
+ end
+end
+
+function SideBarFullMoonCell:_refreshTime()
+ local remainTime = DataManager.FullMoonData:getEndRemainTime()
+ if remainTime >= 0 then
+ self.timeTx:setText(GFunc.getTimeStr(remainTime))
+ else
+ self.timeTx:setText("00:00:00")
+ end
+end
+
+return SideBarFullMoonCell
\ No newline at end of file
diff --git a/lua/app/ui/main_city/cell/side_bar_full_moon_cell.lua.meta b/lua/app/ui/main_city/cell/side_bar_full_moon_cell.lua.meta
new file mode 100644
index 00000000..939749f3
--- /dev/null
+++ b/lua/app/ui/main_city/cell/side_bar_full_moon_cell.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 4ba87a7695be4af42842b7637db142ae
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/main_city/main_city_ui.lua b/lua/app/ui/main_city/main_city_ui.lua
index 96ab9a30..a2dae0ef 100644
--- a/lua/app/ui/main_city/main_city_ui.lua
+++ b/lua/app/ui/main_city/main_city_ui.lua
@@ -1050,16 +1050,20 @@ function MainCityUI:checkMainPop()
-- 续关
if self.isFirstEnter then
local battleSnapshot = LocalData:getBattleSnapshot()
- LocalData:saveBattleSnapshot({})
if battleSnapshot.battleType then
if battleSnapshot.currentVersion == Platform:getClientVersion() then
local snapshotTime = battleSnapshot.snapShotTime
if snapshotTime and Time:getOverOfServerToday(snapshotTime) >= Time:getOverOfServerToday() then
+ BIReport:postBatttleSnapshotOpen()
local params = {
content = I18N:getGlobalText(I18N.GlobalConst.BATTLE_DESC_14),
okFunc = function()
+ LocalData:saveBattleSnapshot({})
ModuleManager.BattleManager:playBattle(battleSnapshot.battleType, battleSnapshot.parmas, nil, battleSnapshot)
end,
+ cancelFunc = function()
+ LocalData:saveBattleSnapshot({})
+ end,
boxType = GConst.MESSAGE_BOX_TYPE.MB_OK_CANCEL,
}
GFunc.showMessageBox(params)
@@ -1107,6 +1111,13 @@ function MainCityUI:checkMainPop()
return
end
+ -- 圆月活动
+ local showType = DataManager.FullMoonData:getNeedShowActPanel()
+ if showType then
+ ModuleManager.FullMoonManager:showActMainUI(showType)
+ return
+ end
+
-- 金猪满了后下次进主城要弹出来
if DataManager.GoldPigData:getPopFlag() and not DataManager.TutorialData:getIsInTutorial() then
DataManager.GoldPigData:markPop()
@@ -1176,6 +1187,12 @@ function MainCityUI:checkTutorial(onlyCheck)
return true
end
end
+
+ if DataManager.DungeonData:isOpen(ModuleManager.MODULE_KEY.RUNES_OPEN) then
+ if ModuleManager.TutorialManager:checkFuncTutorial(GConst.TutorialConst.RUNE_DUNGEON, onlyCheck) then
+ return true
+ end
+ end
end
-- 检查礼包(首充(作废)/入门/章节/新手/助力/成长/金币顺序)
diff --git a/lua/app/ui/runes.meta b/lua/app/ui/runes.meta
new file mode 100644
index 00000000..6921d9f4
--- /dev/null
+++ b/lua/app/ui/runes.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 03aa5a5d9fc516842b410568fc7345d7
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/lua/app/ui/runes/runes_level_ui.lua b/lua/app/ui/runes/runes_level_ui.lua
new file mode 100644
index 00000000..a35d5953
--- /dev/null
+++ b/lua/app/ui/runes/runes_level_ui.lua
@@ -0,0 +1,78 @@
+local RunesLevelUI = class("RunesLevelUI", BaseUI)
+
+local ARROW_LIGHT = "common_arrow_2"
+local ARROW_GRAY = "common_arrow_3"
+
+function RunesLevelUI:isFullScreen()
+ return false
+end
+
+function RunesLevelUI:getPrefabPath()
+ return "assets/prefabs/ui/runes/runes_level_ui.prefab"
+end
+
+function RunesLevelUI:onPressBackspace()
+ self:closeUI()
+end
+
+function RunesLevelUI:ctor()
+ self.curLevel = DataManager.RunesData:getLevel()
+end
+
+function RunesLevelUI:onLoadRootComplete()
+ local uiMap = self.root:genAllChildren()
+ self.txTitle = uiMap["runes_level_ui.bg.title.tx_title"]
+ self.btnClose = uiMap["runes_level_ui.bg.close_btn"]
+ self.btnRight = uiMap["runes_level_ui.bg.select.btn_right"]
+ self.btnLeft = uiMap["runes_level_ui.bg.select.btn_left"]
+ self.txSelect = uiMap["runes_level_ui.bg.select.tx_select"]
+ self.txDesc = uiMap["runes_level_ui.bg.bottom.tx_desc"]
+
+ self.quality = {}
+ for i = 1, 8 do
+ self.quality[i] = uiMap["runes_level_ui.bg.list.qlt_cell_" .. i]
+ end
+
+ self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_7))
+ self.txDesc:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_8))
+
+ self.btnRight:addClickListener(function()
+ self.curLevel = self.curLevel + 1
+ self:onRefresh()
+ end)
+ self.btnLeft:addClickListener(function()
+ self.curLevel = self.curLevel - 1
+ self:onRefresh()
+ end)
+ self.btnClose:addClickListener(function()
+ self:closeUI()
+ end)
+end
+
+function RunesLevelUI:onRefresh()
+ self.txSelect:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_1, self.curLevel))
+ if self.curLevel >= DataManager.RunesData:getMaxLevel() then
+ self.btnRight:setTouchEnable(false)
+ self.btnRight:setSprite(GConst.ATLAS_PATH.COMMON, ARROW_GRAY)
+ else
+ self.btnRight:setTouchEnable(true)
+ self.btnRight:setSprite(GConst.ATLAS_PATH.COMMON, ARROW_LIGHT)
+ end
+ if self.curLevel <= 1 then
+ self.btnLeft:setTouchEnable(false)
+ self.btnLeft:setSprite(GConst.ATLAS_PATH.COMMON, ARROW_GRAY)
+ else
+ self.btnLeft:setTouchEnable(true)
+ self.btnLeft:setSprite(GConst.ATLAS_PATH.COMMON, ARROW_LIGHT)
+ end
+
+ for index, obj in ipairs(self.quality) do
+ local map = obj:genAllChildren()
+ local icon = map["img_qlt"]
+ local rate = map["tx_rate"]
+ icon:setSprite(GConst.ATLAS_PATH.HERO, GConst.RunesConst.QUALITY_ICON[index])
+ rate:setText(DataManager.RunesData:getQualityRate(self.curLevel, index) .. "%")
+ end
+end
+
+return RunesLevelUI
\ No newline at end of file
diff --git a/lua/app/ui/runes/runes_level_ui.lua.meta b/lua/app/ui/runes/runes_level_ui.lua.meta
new file mode 100644
index 00000000..f7436e22
--- /dev/null
+++ b/lua/app/ui/runes/runes_level_ui.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 4e658a421ae93f9429873a072c30732f
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/runes/runes_source_ui.lua b/lua/app/ui/runes/runes_source_ui.lua
new file mode 100644
index 00000000..8f390497
--- /dev/null
+++ b/lua/app/ui/runes/runes_source_ui.lua
@@ -0,0 +1,142 @@
+local RunesSourceUI = class("RunesSourceUI", BaseUI)
+
+function RunesSourceUI:isFullScreen()
+ return false
+end
+
+function RunesSourceUI:getPrefabPath()
+ return "assets/prefabs/ui/runes/runes_source_ui.prefab"
+end
+
+function RunesSourceUI:onPressBackspace()
+ self:closeUI()
+end
+
+function RunesSourceUI:ctor()
+ self.curGiftIndex = 1
+end
+
+function RunesSourceUI:onLoadRootComplete()
+ local uiMap = self.root:genAllChildren()
+ self.btnClose = uiMap["runes_source_ui.btn_close"]
+ -- 来源界面
+ self.panelMain = uiMap["runes_source_ui.panel_main"]
+ self.txTitleMain = uiMap["runes_source_ui.panel_main.title.tx_title"]
+ self.txTips = uiMap["runes_source_ui.panel_main.img_banner.tx_tips"]
+ self.txGet = uiMap["runes_source_ui.panel_main.tx_get"]
+ self.txDesc = uiMap["runes_source_ui.panel_main.target.tx_desc"]
+ self.btnGo = uiMap["runes_source_ui.panel_main.target.btn_go"]
+ self.txGo = uiMap["runes_source_ui.panel_main.target.btn_go.tx_go"]
+ -- 礼包界面
+ self.panelGift = uiMap["runes_source_ui.panel_gift"]
+ self.btn1 = uiMap["runes_source_ui.panel_gift.btns.btn_1"]
+ self.txBtn1 = uiMap["runes_source_ui.panel_gift.btns.btn_1.tx_btn"]
+ self.select1 = uiMap["runes_source_ui.panel_gift.btns.btn_1.select"]
+ self.txSelect1 = uiMap["runes_source_ui.panel_gift.btns.btn_1.select.tx_select"]
+ self.btn2 = uiMap["runes_source_ui.panel_gift.btns.btn_2"]
+ self.txBtn2 = uiMap["runes_source_ui.panel_gift.btns.btn_2.tx_btn"]
+ self.select2 = uiMap["runes_source_ui.panel_gift.btns.btn_2.select"]
+ self.txSelect2 = uiMap["runes_source_ui.panel_gift.btns.btn_2.select.tx_select"]
+ self.btn3 = uiMap["runes_source_ui.panel_gift.btns.btn_3"]
+ self.txBtn3 = uiMap["runes_source_ui.panel_gift.btns.btn_3.tx_btn"]
+ self.select3 = uiMap["runes_source_ui.panel_gift.btns.btn_3.select"]
+ self.txSelect3 = uiMap["runes_source_ui.panel_gift.btns.btn_3.select.tx_select"]
+ self.txTitleGift = uiMap["runes_source_ui.panel_gift.tx_title"]
+ self.txTime = uiMap["runes_source_ui.panel_gift.time.tx_time"]
+ self.btnBuy = uiMap["runes_source_ui.panel_gift.btn_buy"]
+ self.txBuy = uiMap["runes_source_ui.panel_gift.btn_buy.tx_buy"]
+ self.giftRewardCells = {}
+ for i = 1, 4 do
+ self.giftRewardCells[i] = uiMap["runes_source_ui.panel_gift.item_node.pop_reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.POP_REWARD_CELL)
+ end
+
+ self.txTitleGift:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_17))
+ self.txTitleMain:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_18))
+ self.txTips:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_19))
+ self.txGet:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_DESC_23))
+ self.txDesc:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_20))
+ self.txGo:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_DESC_21))
+
+ local gift1 = DataManager.ShopData:getActGiftConfig()[GConst.RunesConst.GIFT_IDS[1]]
+ self.txBtn1:setText(GFunc.getFormatPrice(gift1.recharge_id))
+ self.txSelect1:setText(GFunc.getFormatPrice(gift1.recharge_id))
+ local gift2 = DataManager.ShopData:getActGiftConfig()[GConst.RunesConst.GIFT_IDS[2]]
+ self.txBtn2:setText(GFunc.getFormatPrice(gift2.recharge_id))
+ self.txSelect2:setText(GFunc.getFormatPrice(gift2.recharge_id))
+ local gift3 = DataManager.ShopData:getActGiftConfig()[GConst.RunesConst.GIFT_IDS[3]]
+ self.txBtn3:setText(GFunc.getFormatPrice(gift3.recharge_id))
+ self.txSelect3:setText(GFunc.getFormatPrice(gift3.recharge_id))
+
+ self.btn1:addClickListener(function()
+ if self.curGiftIndex == 1 then
+ return
+ end
+ self.curGiftIndex = 1
+ self:onRefresh()
+ end)
+ self.btn2:addClickListener(function()
+ if self.curGiftIndex == 2 then
+ return
+ end
+ self.curGiftIndex = 2
+ self:onRefresh()
+ end)
+ self.btn3:addClickListener(function()
+ if self.curGiftIndex == 3 then
+ return
+ end
+ self.curGiftIndex = 3
+ self:onRefresh()
+ end)
+ self.btnGo:addClickListener(function()
+ ModuleManager.DungeonRuneManager:showMainUI()
+ EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.GO_DUNGEON_UI)
+ self:closeUI()
+ end)
+ self.btnBuy:addClickListener(function()
+ PayManager:purchasePackage(GConst.RunesConst.GIFT_IDS[self.curGiftIndex], PayManager.PURCHARSE_TYPE.ACT_GIFT)
+ end)
+ self.btnClose:addClickListener(function()
+ self:closeUI()
+ end)
+ self:bind(DataManager.ShopData, "isDirty", function()
+ self:onRefresh()
+ end)
+end
+
+function RunesSourceUI:onRefresh()
+ self.select1:setActive(self.curGiftIndex == 1)
+ self.select2:setActive(self.curGiftIndex == 2)
+ self.select3:setActive(self.curGiftIndex == 3)
+
+ local giftId = GConst.RunesConst.GIFT_IDS[self.curGiftIndex]
+ local gift = DataManager.ShopData:getActGiftConfig()[giftId]
+
+ if gift == nil then
+ self.panelGift:setActive(false)
+ return
+ end
+ local remain = DataManager.ShopData:getGiftRemainBuyNum(giftId)
+ self.panelGift:setActive(true)
+ self.txTime:setText(I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_18, remain))
+ if remain > 0 then
+ self.btnBuy:setTouchEnable(true)
+ self.btnBuy:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_green_1")
+ self.txBuy:setText(GFunc.getFormatPrice(gift.recharge_id))
+ else
+ self.btnBuy:setTouchEnable(false)
+ self.btnBuy:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_grey_1")
+ self.txBuy:setText(I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_20))
+ end
+
+ for index, cell in ipairs(self.giftRewardCells) do
+ if gift.reward[index] then
+ cell:setVisible(true, 0.8)
+ cell:refresh(gift.reward[index].id, gift.reward[index].num, true)
+ else
+ cell:setVisible(false)
+ end
+ end
+end
+
+return RunesSourceUI
\ No newline at end of file
diff --git a/lua/app/ui/runes/runes_source_ui.lua.meta b/lua/app/ui/runes/runes_source_ui.lua.meta
new file mode 100644
index 00000000..01bfa35e
--- /dev/null
+++ b/lua/app/ui/runes/runes_source_ui.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: e0f16c6f0334eb04db5746a1576d0387
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/runes/runes_suit_ui.lua b/lua/app/ui/runes/runes_suit_ui.lua
new file mode 100644
index 00000000..5d98e0a7
--- /dev/null
+++ b/lua/app/ui/runes/runes_suit_ui.lua
@@ -0,0 +1,69 @@
+local RunesSuitUI = class("RunesSuitUI", BaseUI)
+
+function RunesSuitUI:isFullScreen()
+ return false
+end
+
+function RunesSuitUI:getPrefabPath()
+ return "assets/prefabs/ui/runes/runes_suit_ui.prefab"
+end
+
+function RunesSuitUI:onPressBackspace()
+ self:closeUI()
+end
+
+function RunesSuitUI:ctor(params)
+ self.heroEntity = params
+ self.runesEntity = DataManager.RunesData:getRunes(self.heroEntity:getCfgId())
+ self.curLevel = DataManager.RunesData:getLevel()
+end
+
+function RunesSuitUI:onLoadRootComplete()
+ local uiMap = self.root:genAllChildren()
+ self.txTitle = uiMap["runes_suit_ui.bg.title.tx_title"]
+ self.btnClose = uiMap["runes_suit_ui.bg.close_btn"]
+ self.suits = {}
+ for i = 1, 5 do
+ self.suits[i] = uiMap["runes_suit_ui.bg.list.suit_cell_" .. i]
+ end
+
+ self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_9))
+
+ self.btnClose:addClickListener(function()
+ self:closeUI()
+ end)
+end
+
+function RunesSuitUI:onRefresh()
+ for index, obj in ipairs(self.suits) do
+ local map = obj:genAllChildren()
+ local imgIcon = map["img_type"]
+ local txName = map["tx_suit_name"]
+ local txAttr1 = map["tx_suit_attr1"]
+ local txAttr2 = map["tx_suit_attr2"]
+ local txLevel = map["tx_level"]
+ imgIcon:setSprite(GConst.ATLAS_PATH.HERO, "hero_rune_"..index)
+ txName:setText(DataManager.RunesData:getSuitName(index))
+ local attr1 = DataManager.RunesData:getSuitAttr(index, self.heroEntity:getMatchType(), 1)
+ local attr2 = DataManager.RunesData:getSuitAttr(index, self.heroEntity:getMatchType(), 2)
+ local level = self.runesEntity:getSuitLevel(index)
+ txLevel:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_26, level))
+
+ local str1 = I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_15, GFunc.getAttrDesc(attr1.type, attr1.num))
+ local str2 = I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_16, GFunc.getAttrDesc(attr2.type, attr2.num))
+ if level == 0 then
+ str1 = "" .. str1 .. ""
+ str2 = "" .. str2 .. ""
+ elseif level == 1 then
+ str1 = "" .. str1 .. ""
+ str2 = "" .. str2 .. ""
+ elseif level == 2 then
+ str1 = "" .. str1 .. ""
+ str2 = "" .. str2 .. ""
+ end
+ txAttr1:setText(str1)
+ txAttr2:setText(str2)
+ end
+end
+
+return RunesSuitUI
\ No newline at end of file
diff --git a/lua/app/ui/runes/runes_suit_ui.lua.meta b/lua/app/ui/runes/runes_suit_ui.lua.meta
new file mode 100644
index 00000000..a1987144
--- /dev/null
+++ b/lua/app/ui/runes/runes_suit_ui.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 7eaccbe09a9a77b4c8def1595e994b66
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/ui/shop/cell/pop_reward_cell.lua b/lua/app/ui/shop/cell/pop_reward_cell.lua
index 2ff51dfc..b3d1fced 100644
--- a/lua/app/ui/shop/cell/pop_reward_cell.lua
+++ b/lua/app/ui/shop/cell/pop_reward_cell.lua
@@ -3,6 +3,8 @@ local PopRewardCell = class("PopRewardCell", BaseCell)
function PopRewardCell:init()
local uiMap = self.baseObject:genAllChildren()
self.bg = uiMap["pop_reward_cell.bg"]
+ self.choose = uiMap["pop_reward_cell.choose"]
+ self.imgChoose = uiMap["pop_reward_cell.img_choose"]
if not self.itemCell then
self.itemCell = CellManager:addCellComp(uiMap["pop_reward_cell.item_cell"], GConst.TYPEOF_LUA_CLASS.ITEM_CELL)
end
@@ -10,9 +12,18 @@ function PopRewardCell:init()
self.popHeroCell = CellManager:addCellComp(uiMap["pop_reward_cell.pop_hero_cell"], GConst.TYPEOF_LUA_CLASS.POP_HERO_CELL)
end
self.descTx = uiMap["pop_reward_cell.desc_text"]
+ self:addClickListener(function()
+ if self.clickCallback then
+ self.clickCallback()
+ end
+ end)
end
+-- 显示道具
function PopRewardCell:refresh(id, num, showBg)
+ self.choose:setActive(false)
+ self.imgChoose:setActive(false)
+ self:setClickListener(nil)
local cfgInfo = ConfigManager:getConfig("item")[id]
if cfgInfo then
self.bg:setVisible(showBg)
@@ -44,7 +55,23 @@ function PopRewardCell:refresh(id, num, showBg)
end
end
-function PopRewardCell:addClickListener(callback)
+-- 显示可选
+function PopRewardCell:refreshChoose(clickFunc)
+ self.imgChoose:setActive(true)
+ self:setClickListener(clickFunc)
+end
+
+-- 只显示可选
+function PopRewardCell:refreshOnlyChoose(clickFunc)
+ self.choose:setActive(true)
+ self.imgChoose:setActive(false)
+ self.itemCell:getBaseObject():setActive(false)
+ self.popHeroCell:getBaseObject():setActive(false)
+ self.descTx:setText(I18N:getGlobalText(I18N.GlobalConst.REWARD_DESC))
+ self:setClickListener(clickFunc)
+end
+
+function PopRewardCell:setClickListener(callback)
self.clickCallback = callback
end
diff --git a/lua/app/ui/tips/choose_reward_tips.lua b/lua/app/ui/tips/choose_reward_tips.lua
new file mode 100644
index 00000000..0229091a
--- /dev/null
+++ b/lua/app/ui/tips/choose_reward_tips.lua
@@ -0,0 +1,69 @@
+local ChooseRewardTips = class("ChooseRewardTips", BaseUI)
+
+function ChooseRewardTips:ctor(params)
+ self.strTitle = params.title
+ self.strDesc = params.desc
+ self.chooseRewards = params.rewards
+ self.chooseCallback = params.callback
+end
+
+function ChooseRewardTips:onPressBackspace()
+ self:closeUI()
+end
+
+function ChooseRewardTips:getPrefabPath()
+ return "assets/prefabs/ui/tips/choose_reward_tips.prefab"
+end
+
+function ChooseRewardTips:isFullScreen()
+ return false
+end
+
+function ChooseRewardTips:onClose()
+ if self.chooseCallback and self.selectIndex then
+ self.chooseCallback(self.selectIndex)
+ end
+end
+
+function ChooseRewardTips:onLoadRootComplete()
+ local uiMap = self.root:genAllChildren()
+
+ self.txDesc = uiMap["choose_reward_tips.content.tx_desc"]
+ self.txTitle = uiMap["choose_reward_tips.content.tx_title"]
+ self.scrollRectComp = uiMap["choose_reward_tips.content.scroll_rect"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
+ self.btnClose = uiMap["choose_reward_tips.content.btn_close"]
+ self.rewardCell = uiMap["choose_reward_tips.content.reward_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
+
+ self.selectIndex = nil
+ self.txTitle:setText(self.strTitle or I18N:getGlobalText(I18N.GlobalConst.HERO_CARD_TIPS_DESC))
+ self.txDesc:setText(self.strDesc or I18N:getGlobalText(I18N.GlobalConst.HERO_CARD_TIPS_DESC))
+ self.rewardCell:refreshByChoose()
+ self:initScrollRect()
+
+ self.btnClose:addClickListener(function()
+ self:closeUI()
+ end)
+end
+
+function ChooseRewardTips:initScrollRect()
+ self.scrollRectComp:addInitCallback(function()
+ return GConst.TYPEOF_LUA_CLASS.REWARD_CELL
+ end)
+ self.scrollRectComp:addRefreshCallback(function(index, cell)
+ cell:refreshByConfig(self.chooseRewards[index])
+ cell:showSelect(index == self.selectIndex)
+ cell:addClickListener(function()
+ self:onSelectReward(index)
+ end)
+ end)
+ self.scrollRectComp:clearCells()
+ self.scrollRectComp:refillCells(#self.chooseRewards)
+end
+
+function ChooseRewardTips:onSelectReward(index)
+ self.selectIndex = index
+ self.rewardCell:refreshByConfig(self.chooseRewards[self.selectIndex])
+ self.scrollRectComp:updateAllCell()
+end
+
+return ChooseRewardTips
\ No newline at end of file
diff --git a/lua/app/ui/tips/choose_reward_tips.lua.meta b/lua/app/ui/tips/choose_reward_tips.lua.meta
new file mode 100644
index 00000000..b60c152d
--- /dev/null
+++ b/lua/app/ui/tips/choose_reward_tips.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 5bb2d9a852b0b394abd828365adc09d3
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/userdata/activity/full_moon.meta b/lua/app/userdata/activity/full_moon.meta
new file mode 100644
index 00000000..b2749106
--- /dev/null
+++ b/lua/app/userdata/activity/full_moon.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: aaa5662ae70c08140b8b3f2dde2fb87c
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/lua/app/userdata/activity/full_moon/full_moon_data.lua b/lua/app/userdata/activity/full_moon/full_moon_data.lua
new file mode 100644
index 00000000..fd102023
--- /dev/null
+++ b/lua/app/userdata/activity/full_moon/full_moon_data.lua
@@ -0,0 +1,603 @@
+local FullMoonData = class("FullMoonData", BaseData)
+
+function FullMoonData:ctor()
+ self.data.isDirty = false
+
+ self.taskFinished = 0
+ self.curHeroGiftChoose = nil
+ self.taskStatus = GConst.EMPTY_TABLE
+ self.taskProgReward = GConst.EMPTY_TABLE
+ self.chapterSkinClaimed = GConst.EMPTY_TABLE
+end
+
+function FullMoonData:clear()
+ DataManager:unregisterCrossDayFunc("FullMoonData")
+end
+
+-- 设置活动数据
+function FullMoonData:setActStatus(data)
+ data = data or GConst.EMPTY_TABLE
+
+ self.startTime = GFunc.formatTimeStep(data.start_at)
+ self.endTime = GFunc.formatTimeStep(data.end_at)
+
+ if EDITOR_MODE then
+ Logger.logHighlight("圆月活动开启时间:")
+ Logger.printTable(data)
+ end
+end
+
+-- 获取活动数据成功
+function FullMoonData:onGetActData(data)
+ data = data or GConst.EMPTY_TABLE
+
+ self.taskFinished = data.finished or 0-- 任务奖励总计
+ self.taskStatus = data.tasks or GConst.EMPTY_TABLE
+ self.taskProgReward = data.claimed or GConst.EMPTY_TABLE
+ self.curHeroGiftChoose = data.custom_gift_choose
+ self.chapterSkinClaimed = data.chapter_skin_claimed or GConst.EMPTY_TABLE
+
+ if self:isOpenTime() then
+ -- 注册任务进度监听
+ for id, data in ipairs(ConfigManager:getConfig("activity_full_moon_quest")) do
+ ModuleManager.TaskManager:registerTask("FullMoonData", data.type, function(count)
+ self:addTaskProgress(data.type, count)
+ end)
+ end
+ end
+
+ if EDITOR_MODE then
+ Logger.logHighlight("圆月活动数据:")
+ Logger.printTable(data)
+ end
+ -- 跨天
+ DataManager:registerCrossDayFunc("FullMoonData", function()
+ if not self:isOpen() then
+ return
+ end
+ if not self:isOpenTime() then
+ return
+ end
+
+ self:setInReset(true)
+ self:setDirty()
+ end)
+
+ self.isInitedData = true
+ self:setDirty()
+end
+
+function FullMoonData:setDirty()
+ self.data.isDirty = not self.data.isDirty
+end
+
+function FullMoonData: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 FullMoonData:isOpenTime()
+ 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 FullMoonData:getStartRemainTime()
+ if self.startTime == nil or self.startTime <= 0 then
+ return 0
+ end
+ return self.startTime - Time:getServerTime()
+end
+
+-- 获取活动结束剩余时间(秒)
+function FullMoonData:getEndRemainTime()
+ if self.endTime == nil or self.endTime <= 0 then
+ return 0
+ end
+ return self.endTime - Time:getServerTime()
+end
+
+-- 获取需要展示的活动界面
+function FullMoonData:getNeedShowActPanel()
+ if not self:isOpen() then
+ return nil
+ end
+ if not self:isOpenTime() then
+ return nil
+ end
+ if not self.isInitedData then
+ return nil
+ end
+ if self.isWatchedActPanel then
+ return nil
+ end
+
+ if not self:isAllBoughtSkinGifts() then
+ return GConst.FullMoonConst.PANEL_TYPE.SKIN
+ end
+
+ if not self:isAllBoughtNewHeroGifts() then
+ return GConst.FullMoonConst.PANEL_TYPE.NEW_HERO
+ end
+
+ if not self:isAllBoughtChooseHeroGifts() then
+ return GConst.FullMoonConst.PANEL_TYPE.CHOOSE_HERO
+ end
+
+ if not self:isTaskAllRewardReceived() then
+ return GConst.FullMoonConst.PANEL_TYPE.TASK
+ end
+
+ return nil
+end
+
+-- 展示活动界面
+function FullMoonData:showActPanel()
+ self.isWatchedActPanel = true
+end
+
+function FullMoonData:setInReset(isInReset)
+ self.isInReset = isInReset
+end
+
+function FullMoonData:getIsInReset()
+ return self.isInReset
+end
+
+-- 是否有入口红点
+function FullMoonData:hasEntryRedPoint()
+ return self:hasTaskRedPoint()
+end
+
+-- 任务--------------------------------------------------------------------------------------------------
+
+-- 是否奖励全领完
+function FullMoonData:isTaskAllRewardReceived()
+ for index, id in ipairs(self:getTaskListSort()) do
+ if not self:isReceivedTaskReward(id) then
+ return false
+ end
+ end
+
+ return true
+end
+
+-- 是否有任务红点
+function FullMoonData:hasTaskRedPoint()
+ for index, id in ipairs(table.keys(ConfigManager:getConfig("activity_full_moon_quest"))) do
+ if self:canGetTaskReward(id) and not self:isReceivedTaskReward(id) then
+ return true
+ end
+ end
+
+ for index, id in ipairs(table.keys(ConfigManager:getConfig("activity_full_moon_reward"))) do
+ if self:isReachTaskProgressReward(id) and not self:isReceivedTaskProgressReward(id) then
+ return true
+ end
+ end
+
+ return false
+end
+
+-- 获取任务完成个数
+function FullMoonData:getTaskFinishNum()
+ return self.taskFinished
+end
+
+-- 获取任务完成总目标个数
+function FullMoonData:getTaskTotalNum()
+ local max
+ for id, value in pairs(ConfigManager:getConfig("activity_full_moon_reward")) do
+ if max == nil or max < value.quest then
+ max = value.quest
+ end
+ end
+
+ return max
+end
+
+-- 获取下标对应的任务进度奖励id
+function FullMoonData:getTaskProgressRewardIdByIndex(index)
+ for id, value in pairs(ConfigManager:getConfig("activity_full_moon_reward")) do
+ if index == 1 then
+ return id
+ end
+ index = index - 1
+ end
+end
+
+-- 获取任务进度奖励总个数
+function FullMoonData:getTaskProgressRewardTotalNum()
+ return table.nums(ConfigManager:getConfig("activity_full_moon_reward"))
+end
+
+-- 获取任务进度奖励
+function FullMoonData:getTaskProgressReward(id)
+ return ConfigManager:getConfig("activity_full_moon_reward")[id].reward
+end
+
+-- 获取任务进度目标
+function FullMoonData:getTaskProgressTarget(id)
+ return ConfigManager:getConfig("activity_full_moon_reward")[id].quest
+end
+
+-- 任务进度奖励是否满足领取条件
+function FullMoonData:isReachTaskProgressReward(id)
+ return self:getTaskFinishNum() >= self:getTaskProgressTarget(id)
+end
+
+-- 任务进度奖励是否已领取
+function FullMoonData:isReceivedTaskProgressReward(id)
+ return self.taskProgReward[id]
+end
+
+-- 获取当前定位的任务进度奖励index
+function FullMoonData:getCurTaskProgressRewardIndex()
+ local index = 0
+
+ for id, data in pairs(ConfigManager:getConfig("activity_full_moon_reward")) do
+ index = index + 1
+ if self:isReachTaskProgressReward(id) and not self:isReceivedTaskProgressReward(id) then
+ return index
+ end
+ end
+
+ index = 0
+ local curStage = self:getTaskProgressRewardId()
+ for id, data in pairs(ConfigManager:getConfig("activity_full_moon_reward")) do
+ index = index + 1
+ if curStage == id then
+ return index
+ end
+ end
+
+ return nil
+end
+
+-- 获取任务奖励阶段id
+function FullMoonData:getTaskProgressRewardId()
+ local finish = self:getTaskFinishNum()
+ local curId
+ for id, data in pairs(ConfigManager:getConfig("activity_full_moon_reward")) do
+ if finish >= data.quest then
+ curId = id
+ else
+ break
+ end
+ finish = finish - data.quest
+ end
+
+ return curId
+end
+
+-- 获取今日任务列表
+function FullMoonData:getTaskListSort()
+ local ids = {}
+
+ for id, data in pairs(self.taskStatus) do
+ local sort = id + 10000000
+ if self:canGetTaskReward(id) and not self:isReceivedTaskReward(id) then
+ sort = sort - 100000
+ end
+ if self:isReceivedTaskReward(id) then
+ sort = sort + 100000
+ end
+ table.insert(ids, {id = id, sort = sort})
+ end
+ table.sort(ids, function (a, b)
+ return a.sort < b.sort
+ end)
+
+ -- Logger.logHighlight("任务列表排序:")
+ -- Logger.printTable(ids)
+ return ids
+end
+
+-- 获取任务类型
+function FullMoonData:getTaskType(id)
+ return ConfigManager:getConfig("activity_full_moon_quest")[id].type
+end
+
+-- 获取任务目标
+function FullMoonData:getTaskTarget(id)
+ return ConfigManager:getConfig("activity_full_moon_quest")[id].number
+end
+
+-- 获取任务奖励
+function FullMoonData:getTaskReward(id)
+ return ConfigManager:getConfig("activity_full_moon_quest")[id].reward
+end
+
+-- 获取任务进度
+function FullMoonData:getTaskProgress(id)
+ if self:getTaskType(id) == GConst.TaskConst.TASK_TYPE.X_PLAYER_LV_REACH then
+ -- 玩家等级实时处理
+ return DataManager.PlayerData:getLv()
+ end
+
+ return self.taskStatus[id] and self.taskStatus[id].progress or 0
+end
+
+-- 任务是否完成
+function FullMoonData:canGetTaskReward(id)
+ return self:getTaskProgress(id) >= self:getTaskTarget(id)
+end
+
+-- 任务奖励是否已领取
+function FullMoonData:isReceivedTaskReward(id)
+ if self.taskStatus[id] == nil then
+ return false
+ end
+
+ return self.taskStatus[id].claimed
+end
+
+-- 添加任务进度
+function FullMoonData:addTaskProgress(taskType, count)
+ -- Logger.logHighlight("任务进度改变:"..tostring(taskType)..","..tostring(count))
+ if not self:isOpen() then
+ return
+ end
+ if not self:isOpenTime() then
+ return
+ end
+
+ -- 检查圆月活动任务更新
+ if self:getIsInReset() then
+ ModuleManager.FullMoonManager:reqActData()
+ end
+
+ for id, data in pairs(self.taskStatus) do
+ local tt = self:getTaskType(id)
+ if tt == taskType then
+ if self.taskStatus[id] == nil then
+ self.taskStatus[id] = {}
+ self.taskStatus[id].progress = 0
+ end
+ self.taskStatus[id].progress = self.taskStatus[id].progress + count
+ end
+ end
+
+ self:setDirty()
+end
+
+-- 领取任务奖励成功
+function FullMoonData:onReceivedTaskReward(id, finished)
+ self.taskFinished = finished
+ if self.taskStatus[id] then
+ self.taskStatus[id].claimed = true
+ end
+ self:setDirty()
+end
+
+-- 领取任务进度奖励成功
+function FullMoonData:onReceivedTaskProgressReward(id)
+ self.taskProgReward[id] = true
+ self:setDirty()
+end
+
+-- 英雄自选连购礼包--------------------------------------------------------------------------------------------------
+
+-- 所有自选英雄礼包都被购买
+function FullMoonData:isAllBoughtChooseHeroGifts()
+ for index, id in ipairs(self:getChooseHeroGiftIds()) do
+ if not self:isGiftBought(id) then
+ return false
+ end
+ end
+ return true
+end
+
+-- 获取英雄自选礼包ids
+function FullMoonData:getChooseHeroGiftIds()
+ if self.chooseHeroIds == nil then
+ self.chooseHeroIds = table.keys(DataManager.ShopData:getGiftsByType(PayManager.PURCHARSE_ACT_TYPE.FULL_MOON_HERO_GIFT))
+ table.sort(self.chooseHeroIds)
+ end
+
+ return self.chooseHeroIds
+end
+
+-- 当前所处的英雄礼包
+function FullMoonData:getCurChooseHeroGiftId()
+ for index, id in pairs(self:getChooseHeroGiftIds()) do
+ if not self:isGiftBought(id) then
+ return id
+ end
+ end
+
+ return self:getChooseHeroGiftIds()[#self:getChooseHeroGiftIds()]
+end
+
+-- 获取当前组礼包ids
+function FullMoonData:getCurStepChooseHeroGiftIds()
+ local ids = self:getChooseHeroGiftIds()
+ local curId = self:getCurChooseHeroGiftId()
+ local result = {}
+ local step = 1
+
+ local idx = 0
+ for index, value in ipairs(GConst.FullMoonConst.HERO_GIFT_SHOW_STEP) do
+ result[index] = {}
+ for i = 1, value do
+ idx = idx + 1
+ if curId == ids[idx] then
+ step = index
+ end
+ if ids[idx] then
+ table.insert(result[index], ids[idx])
+ end
+ end
+ end
+
+ return result[step]
+end
+
+-- 当前自选英雄的下标
+function FullMoonData:getChooseHeroIndex()
+ return self.curHeroGiftChoose > 0 and self.curHeroGiftChoose or nil
+end
+
+-- 获取固定奖励
+function FullMoonData:getFixedRewards(id)
+ return DataManager.ShopData:getActGiftConfig()[id].reward
+end
+
+-- 获取自选奖励
+function FullMoonData:getChooseRewards(id, isAll)
+
+ local rewards = {}
+
+ if not isAll then
+ for index, reward in ipairs(DataManager.ShopData:getActGiftConfig()[id].choose_reward) do
+ local info = ConfigManager:getConfig("item")[reward.id]
+ if info.type == GConst.ItemConst.ITEM_TYPE.HERO_FRAGMENT then
+ if DataManager.HeroData:getHeroIsActive(info.parameter) then
+ table.insert(rewards, reward)
+ end
+ end
+ end
+ else
+ rewards = DataManager.ShopData:getActGiftConfig()[id].choose_reward
+ end
+
+ return rewards
+end
+
+-- 获取可选择的自选奖励下标对应的全部自选奖励下标
+function FullMoonData:getChooseRewardsIndexByCanChooseIndex(index)
+ local selectReward = self:getChooseRewards(self:getCurChooseHeroGiftId())[index]
+ local result = {}
+ for idx, reward in ipairs(self:getChooseRewards(self:getCurChooseHeroGiftId(), true)) do
+ if reward == selectReward then
+ return idx
+ end
+ end
+
+ Logger.logError("未找到"..index)
+ return result
+end
+
+-- 自选成功
+function FullMoonData:onChooseHeroSuccess(index)
+ self.curHeroGiftChoose = index
+ self:setDirty()
+end
+
+-- 新英雄连购礼包--------------------------------------------------------------------------------------------------
+
+-- 所有新英雄礼包都被购买
+function FullMoonData:isAllBoughtNewHeroGifts()
+ for index, id in ipairs(self:getNewHeroGiftIds()) do
+ if not self:isGiftBought(id) then
+ return false
+ end
+ end
+ return true
+end
+
+-- 获取新英雄礼包ids
+function FullMoonData:getNewHeroGiftIds()
+ if self.newHeroIds == nil then
+ self.newHeroIds = table.keys(DataManager.ShopData:getGiftsByType(PayManager.PURCHARSE_ACT_TYPE.FULL_MOON_NEW_HERO_GIFT))
+ table.sort(self.newHeroIds)
+ end
+
+ return self.newHeroIds
+end
+
+-- 当前所处的新英雄礼包
+function FullMoonData:getCurNewHeroGiftId()
+ for index, id in pairs(self:getNewHeroGiftIds()) do
+ if DataManager.ShopData:getGiftBoughtNum(PayManager.PURCHARSE_TYPE.ACT_GIFT, id) == 0 then
+ return id
+ end
+ end
+
+ return self:getNewHeroGiftIds()[#self:getNewHeroGiftIds()]
+end
+
+-- 获取当前组礼包ids
+function FullMoonData:getCurStepNewHeroGiftIds()
+ local ids = self:getNewHeroGiftIds()
+ local curId = self:getCurNewHeroGiftId()
+ local result = {}
+ local step = 1
+
+ local idx = 0
+ for index, value in ipairs(GConst.FullMoonConst.HERO_GIFT_SHOW_STEP) do
+ result[index] = {}
+ for i = 1, value do
+ idx = idx + 1
+ if curId == ids[idx] then
+ step = index
+ end
+ if ids[idx] then
+ table.insert(result[index], ids[idx])
+ end
+ end
+ end
+
+ return result[step]
+end
+
+-- 皮肤礼包--------------------------------------------------------------------------------------------------
+
+-- 所有皮肤礼包都被购买
+function FullMoonData:isAllBoughtSkinGifts()
+ for index, id in ipairs(table.keys(DataManager.ShopData:getGiftsByType(PayManager.PURCHARSE_ACT_TYPE.FULL_MOON_SKIN_GIFT))) do
+ if not self:isGiftBought(id) then
+ return false
+ end
+ end
+ return true
+end
+
+-- 皮肤礼包剩余购买次数
+function FullMoonData:getSkinGiftRemainBuyNum(id)
+ return DataManager.ShopData:getGiftRemainBuyNum(PayManager.PURCHARSE_TYPE.ACT_GIFT, id)
+end
+
+-- 获取皮肤挑战首通奖励
+function FullMoonData:getSkinFirstChallengeReward(id)
+ return ConfigManager:getConfig("chapter_new_skin_fight")[id].reward[1]
+end
+
+-- 皮肤挑战首通奖励是否已领取
+function FullMoonData:isReceivedSkinFirstChallengeReward(id)
+ return self.chapterSkinClaimed[id]
+end
+
+-- 设置当前皮肤挑战关卡id
+function FullMoonData:setCurSkinChallengeId(id)
+ self.curSkinChallengeId = id
+end
+
+-- 获取当前皮肤挑战关卡id
+function FullMoonData:getCurSkinChallengeId()
+ return self.curSkinChallengeId
+end
+
+-- 皮肤挑战奖励领取成功
+function FullMoonData:onReceivedSkinChallengeReward(id)
+ self.chapterSkinClaimed[id] = true
+ self:setDirty()
+end
+
+-- 礼包是否已购买
+function FullMoonData:isGiftBought(id)
+ return DataManager.ShopData:getGiftBoughtNum(PayManager.PURCHARSE_TYPE.ACT_GIFT, id) > 0
+end
+
+return FullMoonData
\ No newline at end of file
diff --git a/lua/app/userdata/activity/full_moon/full_moon_data.lua.meta b/lua/app/userdata/activity/full_moon/full_moon_data.lua.meta
new file mode 100644
index 00000000..d4be7b7f
--- /dev/null
+++ b/lua/app/userdata/activity/full_moon/full_moon_data.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 26e9c0c4a4691ed41a638980ce937de9
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/userdata/arena/arena_data.lua b/lua/app/userdata/arena/arena_data.lua
index 45f5a7cc..1eb4c4b6 100644
--- a/lua/app/userdata/arena/arena_data.lua
+++ b/lua/app/userdata/arena/arena_data.lua
@@ -705,7 +705,7 @@ function ArenaData:onMatchInfoReceived(match)
end
-- 结算战斗数据
-function ArenaData:onBattleResultReceived(settlement, result)
+function ArenaData:onBattleResultReceived(score, settlement, result)
self.matchInfo = nil
-- 战斗记录改变
if self.recentBattle == nil then
@@ -714,7 +714,7 @@ function ArenaData:onBattleResultReceived(settlement, result)
table.remove(self.recentBattle, #self.recentBattle)
table.insert(self.recentBattle, 1, settlement)
-- 积分改变
- self.score = self.score + settlement.incr_score
+ self.score = score
self.curGradingId = self:getGradingIdFromScore(self.score)
local beforeMaxGrading = self.maxScore
diff --git a/lua/app/userdata/bag/item_data.lua b/lua/app/userdata/bag/item_data.lua
index 241bc7dc..157e52b8 100644
--- a/lua/app/userdata/bag/item_data.lua
+++ b/lua/app/userdata/bag/item_data.lua
@@ -164,6 +164,10 @@ function ItemData:addItem(data, itemGetType)
else
BIReport:postVitGet(data.count, itemGetType)
end
+ elseif data.id == GConst.ItemConst.ITEM_ID_RUNES then
+ if data.count > 0 then
+ ModuleManager.TaskManager:addTaskProgress(GConst.TaskConst.TASK_TYPE.X_RUNES_GETED_MATERIALS, data.count)
+ end
else
if data.count < 0 then
BIReport:postItemUse(data.count, data.id, itemGetType)
diff --git a/lua/app/userdata/battle/battle_base_data.lua b/lua/app/userdata/battle/battle_base_data.lua
index c8e78492..ccb29cb2 100644
--- a/lua/app/userdata/battle/battle_base_data.lua
+++ b/lua/app/userdata/battle/battle_base_data.lua
@@ -837,7 +837,7 @@ function BattleBaseData:initHeroData(formation)
---- 普攻\技能增伤百分比
for matchType, attrName in pairs(GConst.MATCH_ALL_HURTP_NAME) do
- unitData.attr[attrName] = 2000--heroEntity:getTotalAttrValue(attrName)
+ unitData.attr[attrName] = heroEntity:getTotalAttrValue(attrName)
end
local skillInfo = skillCfg[skillId]
diff --git a/lua/app/userdata/hero/hero_entity.lua b/lua/app/userdata/hero/hero_entity.lua
index 69bd795d..f8fb0cf1 100644
--- a/lua/app/userdata/hero/hero_entity.lua
+++ b/lua/app/userdata/hero/hero_entity.lua
@@ -12,6 +12,7 @@ function HeroEntity:ctor(cfgId, lv, skin)
self.baseAttrOriginal = {}
self.equipAttr = {}
self.skinAttr = {}
+ self.runesAttr = {}
self.allAttr = {}
end
@@ -54,6 +55,12 @@ function HeroEntity:onSkinAttrChange()
self:setDirty()
end
+function HeroEntity:onRunesAttrChange()
+ self:updateRunesAttr()
+ self:updateTotalAttr()
+ self:setDirty()
+end
+
function HeroEntity:setDirty()
self.data.isDirty = not self.data.isDirty
end
@@ -67,6 +74,7 @@ function HeroEntity:updateAllAttr()
self:updateBaseAttr()
self:updateEquipAttr()
self:updateSkinAttr()
+ self:updateRunesAttr()
self:updateTotalAttr()
end
@@ -193,6 +201,49 @@ function HeroEntity:updateSkinAttr()
end
end
+-- 更新符文属性
+function HeroEntity:updateRunesAttr()
+ self.runesAttr = {}
+
+ local hp = self:getRunes():getAttrValue(GConst.MATCH_HP_FIX_NAME[self:getMatchType()])
+ local atk = self:getRunes():getAttrValue(GConst.MATCH_ATTACK_NAME[self:getMatchType()])
+ local normalHurt = self:getRunes():getAttrValue(GConst.MATCH_NORMAL_HURT_NAME[self:getMatchType()])
+ local skillHurt = self:getRunes():getAttrValue(GConst.MATCH_SKILL_HURT_NAME[self:getMatchType()])
+ local critPer = self:getRunes():getAttrValue(GConst.MATCH_CRIT_NAME[self:getMatchType()])
+ local critHurtPer = self:getRunes():getAttrValue(GConst.MATCH_CRIT_TIME_NAME[self:getMatchType()])
+ local normalHurtPer = self:getRunes():getAttrValue(GConst.MATCH_NORMAL_HURTP_NAME[self:getMatchType()], true)
+ local skillHurtPer = self:getRunes():getAttrValue(GConst.MATCH_SKILL_HURTP_NAME[self:getMatchType()], true)
+ local healPer = self:getRunes():getAttrValue(GConst.MATCH_CURED_NAME[self:getMatchType()])
+ local allHurtp = self:getRunes():getAttrValue(GConst.MATCH_ALL_HURTP_NAME[self:getMatchType()])
+
+ self.runesAttr[GConst.MATCH_HP_NAME[self:getMatchType()]] = hp
+ self.runesAttr[GConst.MATCH_ATTACK_NAME[self:getMatchType()]] = atk
+ self.runesAttr[GConst.MATCH_NORMAL_HURT_NAME[self:getMatchType()]] = normalHurt
+ self.runesAttr[GConst.MATCH_SKILL_HURT_NAME[self:getMatchType()]] = skillHurt
+ self.runesAttr[GConst.MATCH_CRIT_NAME[self:getMatchType()]] = critPer
+ self.runesAttr[GConst.MATCH_CRIT_TIME_NAME[self:getMatchType()]] = critHurtPer
+ self.runesAttr[GConst.MATCH_NORMAL_HURTP_NAME[self:getMatchType()]] = normalHurtPer
+ self.runesAttr[GConst.MATCH_SKILL_HURTP_NAME[self:getMatchType()]] = skillHurtPer
+ self.runesAttr[GConst.MATCH_CURED_NAME[self:getMatchType()]] = healPer
+ self.runesAttr[GConst.MATCH_ALL_HURTP_NAME[self:getMatchType()]] = allHurtp
+
+ if EDITOR_MODE then
+ local printStr = ""
+ printStr = printStr .. "更新符文数值:"..self:getCfgId() .. "\n"
+ printStr = printStr .. "生命:".. hp .. "\n"
+ printStr = printStr .. "攻击力:".. atk .. "\n"
+ printStr = printStr .. "普攻增伤:".. normalHurt .. "\n"
+ printStr = printStr .. "技能增伤:".. skillHurt .. "\n"
+ printStr = printStr .. "暴击率:".. critPer .. "\n"
+ printStr = printStr .. "暴击伤害百分比:".. critHurtPer .. "\n"
+ printStr = printStr .. "普攻增伤百分比:".. normalHurtPer .. "\n"
+ printStr = printStr .. "技能增伤百分比:".. skillHurtPer .. "\n"
+ printStr = printStr .. "治疗加成百分比:".. healPer .. "\n"
+ printStr = printStr .. "所有伤害百分比:".. allHurtp .. "\n"
+ Logger.logHighlight(printStr)
+ end
+end
+
-- 更新总属性
function HeroEntity:updateTotalAttr()
self.allAttr = {}
@@ -205,6 +256,9 @@ function HeroEntity:updateTotalAttr()
for k, v in pairs(self.skinAttr) do
self:addTotalAttrValue(k, v)
end
+ for k, v in pairs(self.runesAttr) do
+ self:addTotalAttrValue(k, v)
+ end
end
function HeroEntity:setTotalAttrValue(name, value)
@@ -502,6 +556,7 @@ function HeroEntity:getTotalBaseHp()
end
end
result = result + DataManager.SkinData:getBaseHp(self)
+ result = result + self:getRunes():getAttrValue(GConst.MATCH_HP_FIX_NAME[self:getMatchType()], true)
return result
end
@@ -517,8 +572,11 @@ function HeroEntity:getTotalBaseAtk()
result = result + equipEntity:getBaseAttack()
end
end
- -- Logger.logHighlight(logStr)
+ -- logStr = logStr .. "\nSKIN:" .. DataManager.SkinData:getBaseAttack(self)
result = result + DataManager.SkinData:getBaseAttack(self)
+ -- logStr = logStr .. "\nRUNES:" .. self:getRunes():getAttrValue(GConst.MATCH_ATTACK_NAME[self:getMatchType()], true)
+ result = result + self:getRunes():getAttrValue(GConst.MATCH_ATTACK_NAME[self:getMatchType()], true)
+ -- Logger.logHighlight(logStr)
return result
end
@@ -547,4 +605,18 @@ function HeroEntity:getSkins()
return self.unlockSkins
end
+function HeroEntity:setRunes(runesEntity)
+ self.runesEntity = runesEntity
+ self:getTotalAttrValue() -- 防止报错
+ self:onRunesAttrChange()
+end
+
+function HeroEntity:getRunes()
+ if self.runesEntity then
+ return self.runesEntity
+ end
+
+ return DataManager.RunesData:getRunes(self:getCfgId())
+end
+
return HeroEntity
\ No newline at end of file
diff --git a/lua/app/userdata/player/player_data.lua b/lua/app/userdata/player/player_data.lua
index a050f21b..b0a1a707 100644
--- a/lua/app/userdata/player/player_data.lua
+++ b/lua/app/userdata/player/player_data.lua
@@ -202,6 +202,7 @@ function PlayerData:addPayment(rechargeId)
self.data.payAmount = self.data.payAmount + cfg.price
self.data.payCount = self.data.payCount + 1
self.pay_counts[rechargeId] = (self.pay_counts[rechargeId] or 0) + 1
+ ModuleManager.TaskManager:addTaskProgress(GConst.TaskConst.TASK_TYPE.X_BUY_ANYONE)
end
function PlayerData:getPayCount()
diff --git a/lua/app/userdata/runes.meta b/lua/app/userdata/runes.meta
new file mode 100644
index 00000000..296421aa
--- /dev/null
+++ b/lua/app/userdata/runes.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 623c3622200ddb346836080a5e43badb
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/lua/app/userdata/runes/runes_data.lua b/lua/app/userdata/runes/runes_data.lua
new file mode 100644
index 00000000..5fc7161a
--- /dev/null
+++ b/lua/app/userdata/runes/runes_data.lua
@@ -0,0 +1,231 @@
+local RunesData = class("RunesData", BaseData)
+local RunesEntity = require "app/userdata/runes/runes_entity"
+
+function RunesData:ctor()
+ self.data.isDirty = false
+end
+
+function RunesData:clear()
+ DataManager:unregisterTryOpenFunc("RunesData")
+end
+
+function RunesData:init(data)
+ data = data or GConst.EMPTY_TABLE
+ if EDITOR_MODE then
+ Logger.logHighlight("符文初始化数据")
+ Logger.printTable(data)
+ end
+
+ self.level = data.level or 1
+ self.exp = data.exp or 0
+ if data.heroes_grids then
+ for heroId, grids in pairs(data.heroes_grids) do
+ self:addEquip(heroId, grids.grids)
+ end
+ end
+
+ -- 活动开启
+ DataManager:registerTryOpenFunc("RunesData", function()
+ if self:isOpen() then
+ DataManager:unregisterTryOpenFunc("RunesData")
+ self:setDirty()
+ end
+ end)
+ self:setDirty()
+end
+
+function RunesData:setDirty()
+ self.data.isDirty = not self.data.isDirty
+end
+
+function RunesData:isOpen(showToast)
+ if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.RUNES_OPEN, not showToast) then
+ return false
+ end
+ return true
+end
+
+function RunesData:addEquip(heroId, grids)
+ if self.runes == nil then
+ self.runes = {}
+ end
+
+ if self.runes[heroId] == nil then
+ self.runes[heroId] = self:createEntity(heroId, grids)
+ else
+ self.runes[heroId]:updateGrids(grids)
+ end
+end
+
+function RunesData:createEntity(heroId, grids)
+ return RunesEntity:create(heroId, grids)
+end
+
+function RunesData:getRunes(heroId)
+ if self.runes == nil then
+ self.runes = {}
+ end
+ if self.runes[heroId] == nil then
+ self.runes[heroId] = self:createEntity(heroId)
+ end
+
+ return self.runes[heroId]
+end
+
+-- 获取当前等级配置
+function RunesData:getLevelConfig()
+ return ConfigManager:getConfig("runes_level")
+end
+
+-- 获取铸台最大等级
+function RunesData:getMaxLevel()
+ return #self:getLevelConfig()
+end
+
+-- 获取符文铸台等级
+function RunesData:getLevel()
+ return self.level
+end
+
+-- 获取等级当前经验
+function RunesData:getLevelExp()
+ return self.exp - (self:getLevelConfig()[self:getLevel()].cost or 0)
+end
+
+-- 获取到下一档的总经验
+function RunesData:getNextLevelTotalExp()
+ local nextExp
+ local cfg = self:getLevelConfig()[self:getLevel() + 1]
+ if cfg then
+ nextExp = cfg.cost or 0
+ end
+ local curExp = self:getLevelConfig()[self:getLevel()].cost or 0
+
+ return nextExp - curExp
+end
+
+-- 获取相应铸台等级的品质概率
+function RunesData:getQualityRate(level, quality)
+ local cfg = self:getLevelConfig()[level]
+
+ local total = 0
+ for i = 1, GConst.RunesConst.MAX_QUALITY_COUNT do
+ total = total + (cfg["weight_"..i] or 0)
+ end
+
+ local value = cfg["weight_"..quality]
+ if value then
+ return string.format("%.2f",(value / total) * 100)
+ else
+ return 0
+ end
+end
+
+-- 获取相应套装的相应属性
+function RunesData:getSuitAttr(id, heroType, suitLevel)
+ local data = ConfigManager:getConfig("runes_suit")[id]
+ local attrs
+ if heroType == GConst.HeroConst.MATCH_TYPE.RED then
+ attrs = data.red_suit_attr
+ elseif heroType == GConst.HeroConst.MATCH_TYPE.YELLOW then
+ attrs = data.yellow_suit_attr
+ elseif heroType == GConst.HeroConst.MATCH_TYPE.GREEN then
+ attrs = data.green_suit_attr
+ elseif heroType == GConst.HeroConst.MATCH_TYPE.BLUE then
+ attrs = data.blue_suit_attr
+ elseif heroType == GConst.HeroConst.MATCH_TYPE.PURPLE then
+ attrs = data.purple_suit_attr
+ end
+
+ if attrs ~= nil and attrs[suitLevel] then
+ return attrs[suitLevel]
+ end
+
+ return nil
+end
+
+-- 获取锻造材料个数
+function RunesData:getMaterialCount()
+ return DataManager.BagData.ItemData:getItemNumById(GConst.ItemConst.ITEM_ID_RUNES)
+end
+
+-- 是否可以一键铸造
+function RunesData:canAutoMake()
+ local cfg = self:getLevelConfig()[self:getLevel()]
+ return cfg.auto and cfg.auto == 1
+end
+
+-- 获取自动铸造的开启等级
+function RunesData:getAutoMakeOpenLevel()
+ for level, data in ipairs(self:getLevelConfig()) do
+ if data.auto and data.auto == 1 then
+ return level
+ end
+ end
+
+ return nil
+end
+
+-- 符文栏是否解锁
+function RunesData:isUnlock(index)
+ local level = self:getLevel()
+ return index <= self:getLevelConfig()[level].grid
+end
+
+-- 获取符文栏解锁个数
+function RunesData:getUnlockCount()
+ local unlock = 0
+ for i = 1, GConst.RunesConst.MAX_ATTR_GRID_COUNT do
+ if self:isUnlock(i) then
+ unlock = unlock + 1
+ end
+ end
+
+ return unlock
+end
+
+-- 获取符文栏解锁等级要求
+function RunesData:getUnlockLevel(index)
+ for level, data in ipairs(self:getLevelConfig()) do
+ if data.grid >= index then
+ return level
+ end
+ end
+
+ return 0
+end
+
+-- 获取套装名
+function RunesData:getSuitName(index)
+ if index == 1 then
+ return I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_10)
+ elseif index == 2 then
+ return I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_11)
+ elseif index == 3 then
+ return I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_14)
+ elseif index == 4 then
+ return I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_12)
+ elseif index == 5 then
+ return I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_13)
+ end
+
+ return nil
+end
+
+-- 改变属性栏锁定状态成功
+function RunesData:onGridLockSuccess(heroId, grids)
+ self.runes[heroId]:updateGrids(grids)
+
+ self:setDirty()
+end
+
+-- 淬炼成功
+function RunesData:onQuenchingSuccess(level, exp, heroId, grids)
+ self.level = level
+ self.exp = exp
+ self.runes[heroId]:updateGrids(grids)
+
+ self:setDirty()
+end
+
+return RunesData
\ No newline at end of file
diff --git a/lua/app/userdata/runes/runes_data.lua.meta b/lua/app/userdata/runes/runes_data.lua.meta
new file mode 100644
index 00000000..9b1dc6c1
--- /dev/null
+++ b/lua/app/userdata/runes/runes_data.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: a9a5f762edecf854ab9eecd7ace92c0e
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/userdata/runes/runes_entity.lua b/lua/app/userdata/runes/runes_entity.lua
new file mode 100644
index 00000000..c3270c9a
--- /dev/null
+++ b/lua/app/userdata/runes/runes_entity.lua
@@ -0,0 +1,235 @@
+local RunesEntity = class("RunesEntity", BaseData)
+local DEFAULT_FACTOR = GConst.BattleConst.DEFAULT_FACTOR
+
+function RunesEntity:ctor(heroId, grids)
+ self.heroId = heroId
+ self.grids = grids or GConst.EMPTY_TABLE
+end
+
+function RunesEntity:setDirty()
+ self.data.isDirty = not self.data.isDirty
+end
+
+function RunesEntity:updateGrids(grids)
+ self.grids = grids or GConst.EMPTY_TABLE
+ self:getHeroEntity():onRunesAttrChange()
+ self:setDirty()
+end
+
+function RunesEntity:getHeroEntity()
+ if self.heroEntity == nil then
+ self.heroEntity = DataManager.HeroData:getHeroById(self.heroId)
+ end
+
+ return self.heroEntity
+end
+
+-- 符文栏是否锁定属性
+function RunesEntity:isAttrLock(index)
+ if self.grids[index] then
+ return self.grids[index].lock
+ end
+
+ return false
+end
+
+-- 获取已锁定的符文栏个数
+function RunesEntity:getAttrLockCount()
+ local lock = 0
+ for i = 1, GConst.RunesConst.MAX_ATTR_GRID_COUNT do
+ if self:isAttrLock(i) then
+ lock = lock + 1
+ end
+ end
+
+ return lock
+end
+
+-- 是否存在品质大于s的未锁定
+function RunesEntity:isUnlockHighQlt()
+ for idx, data in ipairs(self.grids) do
+ if self:getGridQuality(idx) >= GConst.RunesConst.CHECK_QLT_LOCK and not self:isAttrLock(idx) then
+ return true
+ end
+ end
+
+ return false
+end
+
+-- 获取锻造的材料消耗
+function RunesEntity:getMaterialCost()
+ local base = GFunc.getConstReward("runes_cost_base")
+ local add = GFunc.getConstReward("runes_cost_add")
+ local total = {id = base.id, num = base.num, type = base.type}
+
+ total.num = total.num + (add.num * self:getAttrLockCount())
+
+ return total
+end
+
+-- -- 获取随机符文属性
+-- function RunesEntity:getRandomAttr()
+-- local randomQlt = math.random(GConst.RunesConst.MAX_QUALITY_COUNT - 2)
+-- local randomAttr = math.random(GConst.RunesConst.MAX_ATTR_COUNT)
+
+-- local cfg = ConfigManager:getConfig("runes_sub")[randomQlt]
+-- return cfg["attr_"..randomAttr][self:getHeroEntity():getMatchType()]
+-- end
+
+-- -- 获取随机套装
+-- function RunesEntity:getRandomSuit()
+-- return math.random(GConst.RunesConst.MAX_SUITS_COUNT)
+-- end
+
+-- 获取格子的符文属性
+function RunesEntity:getGridAttr(index)
+ if self.grids[index] then
+ local cfg = ConfigManager:getConfig("runes_sub")[self.grids[index].quality]
+ local attr = cfg["attr_"..self.grids[index].attr]
+ if attr then
+ return attr[self:getHeroEntity():getMatchType()]
+ end
+ end
+
+ return nil
+end
+
+-- 获取格子的品质
+function RunesEntity:getGridQuality(index)
+ if self.grids[index] then
+ return self.grids[index].quality
+ end
+
+ return nil
+end
+
+-- 获取格子的套装
+function RunesEntity:getGridSuit(index)
+ if self.grids[index] then
+ return self.grids[index].suit
+ end
+
+ -- Logger.logError("英雄".. self.heroId .. "未获取到格子的符文数据:"..tostring(index))
+ return nil
+end
+
+-- 获取套装等级,2件套是lv1,4件套是lv2,没有就是lv0
+function RunesEntity:getSuitLevel(index)
+ local count = self:getSuitCount(index)
+
+ if count and count >= 4 then
+ return 2
+ end
+ if count and count >= 2 then
+ return 1
+ end
+
+ return 0
+end
+
+-- 获取套装个数
+function RunesEntity:getSuitCount(id)
+ local data = table.find(self:getSuitIds(), function(value) return value.id == id end)
+ return data and data.count or 0
+end
+
+-- 获取已有的套装id map
+function RunesEntity:getSuitIds()
+ local typeCount = {}
+ for i = 1, GConst.RunesConst.MAX_ATTR_GRID_COUNT do
+ local t = self:getGridSuit(i)
+ if t then
+ local temp = table.find(typeCount, function(value) return value.id == t end)
+ if temp then
+ temp.count = temp.count + 1
+ else
+ table.insert(typeCount, {id = t, count = 1})
+ end
+ end
+ end
+ table.sort(typeCount, function(a, b)
+ return a.count > b.count
+ end)
+
+ return typeCount
+end
+
+-- 属性相关接口start------------------------------------------------------------------------------------
+
+-- 获取所有属性加成,未经过计算加成
+function RunesEntity:getAllAttr()
+ if not DataManager.RunesData:isOpen() then
+ return nil
+ end
+
+ local all = {}
+ local func = function(attr)
+ if attr == nil then
+ return nil
+ end
+
+ local temp = table.find(all, function(value)
+ return value.type == attr.type
+ end)
+
+ if temp then
+ temp.num = temp.num + attr.num
+ else
+ table.insert(all, {type = attr.type, num = attr.num})
+ end
+ end
+
+ -- 格子属性
+ for i = 1, GConst.RunesConst.MAX_ATTR_GRID_COUNT do
+ func(self:getGridAttr(i))
+ end
+ -- 套装属性
+ local pos = self:getHeroEntity():getMatchType()
+ for idx, data in pairs(self:getSuitIds()) do
+ func(DataManager.RunesData:getSuitAttr(data.id, pos, self:getSuitLevel(data.id)))
+ end
+
+ return all
+end
+
+-- 是否拥有某属性
+function RunesEntity:hasAttr(attrType)
+ return self:getAttrValue(attrType) > 0
+end
+
+-- 获取属性 , isBase是否是基础配置的属性
+function RunesEntity:getAttrValue(attrType, isBase)
+ if type(attrType) ~= "string" then
+ Logger.logError("获取符文属性传入格式错误")
+ return 0
+ end
+
+ local result
+ if not isBase and attrType == GConst.MATCH_HP_FIX_NAME[self:getHeroEntity():getMatchType()] then
+ result = self:getAttrValue(GConst.MATCH_HP_FIX_NAME[self:getHeroEntity():getMatchType()], true)
+ result = result + self:getHeroEntity():getTotalBaseHp() * self:getAttrValue(GConst.MATCH_HP_ADD_NAME[self:getHeroEntity():getMatchType()]) // DEFAULT_FACTOR
+ return result
+ elseif not isBase and attrType == GConst.MATCH_ATTACK_NAME[self:getHeroEntity():getMatchType()] then
+ result = self:getAttrValue(GConst.MATCH_ATTACK_NAME[self:getHeroEntity():getMatchType()], true)
+ result = result + self:getHeroEntity():getTotalBaseAtk() * self:getAttrValue(GConst.MATCH_ATTACK_ADD_NAME[self:getHeroEntity():getMatchType()]) // DEFAULT_FACTOR
+ return result
+ elseif not isBase and (attrType == GConst.MATCH_NORMAL_HURTP_NAME[self:getHeroEntity():getMatchType()] or attrType == GConst.MATCH_SKILL_HURTP_NAME[self:getHeroEntity():getMatchType()]) then
+ result = self:getAttrValue(attrType, true)
+ result = result + self:getAttrValue(GConst.MATCH_ALL_HURTP_NAME[self:getHeroEntity():getMatchType()], true)
+ return result
+ else
+ local all = self:getAllAttr()
+ if all == nil then
+ return 0
+ end
+ result = table.find(all, function(value)
+ return attrType == value.type
+ end)
+ end
+
+ return result and result.num or 0
+end
+
+-- 属性相关接口end------------------------------------------------------------------------------------
+
+return RunesEntity
\ No newline at end of file
diff --git a/lua/app/userdata/runes/runes_entity.lua.meta b/lua/app/userdata/runes/runes_entity.lua.meta
new file mode 100644
index 00000000..7d62dbd3
--- /dev/null
+++ b/lua/app/userdata/runes/runes_entity.lua.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 22f546c66a8d67842b8befee0e17a707
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
diff --git a/lua/app/userdata/shop/shop_data.lua b/lua/app/userdata/shop/shop_data.lua
index 5640b1a2..56f27705 100644
--- a/lua/app/userdata/shop/shop_data.lua
+++ b/lua/app/userdata/shop/shop_data.lua
@@ -19,6 +19,7 @@ end
function ShopData:initCrossDay()
DataManager:registerCrossDayFunc("ShopData", function()
+ self:resetRunesGift()
self:resetMallDaily()
self:resetCommonDailyGemAdCount()
self:resetCommonDailyCoinAdCount()
@@ -95,6 +96,14 @@ function ShopData:getGiftBoughtNum(actType, actId)
return 0
end
+-- 重置一个礼包购买次数
+function ShopData:resetGiftBoughtNum(actType, actId)
+ local data = self:getActGiftDetailData(actType, actId)
+ if data then
+ data.buy_count = 0
+ end
+end
+
-- 获取通用礼包剩余可购买次数
function ShopData:getGiftRemainBuyNum(actId)
local bought = self:getGiftBoughtNum(PayManager.PURCHARSE_TYPE.ACT_GIFT, actId)
@@ -1030,4 +1039,11 @@ function ShopData:markPopLastChapterActGift()
end
end
+-- 重置符文每日礼包次数
+function ShopData:resetRunesGift()
+ for index, id in ipairs(GConst.RunesConst.GIFT_IDS) do
+ self:resetGiftBoughtNum(PayManager.PURCHARSE_TYPE.ACT_GIFT, id)
+ end
+end
+
return ShopData
\ No newline at end of file
diff --git a/lua/app/userdata/skin/skin_data.lua b/lua/app/userdata/skin/skin_data.lua
index bd08a7ae..a6f2e45f 100644
--- a/lua/app/userdata/skin/skin_data.lua
+++ b/lua/app/userdata/skin/skin_data.lua
@@ -92,12 +92,20 @@ end
-- 获取皮肤id所对应英雄id
function SkinData:getHeroIdBySkinId(skinId)
+ if skinId == nil then
+ return nil
+ end
+
local cfg = self:getSkinCfg(skinId)
return cfg and cfg.hero_id
end
-- 获取皮肤id所对应道具id
function SkinData:getItemIdBySkinId(skinId)
+ if skinId == nil then
+ return nil
+ end
+
local cfg = self:getSkinCfg(skinId)
return cfg and cfg.item_id
end