Merge branch 'fang/runes' into 'dev_20230919'
符文功能 See merge request b6-client/b6-lua!15
This commit is contained in:
commit
0abdb166d2
@ -154,6 +154,8 @@ BIReport.ITEM_GET_TYPE = {
|
|||||||
DUNGEON_RUNE_SETTLEMENT = "DungeonRuneSettlement",
|
DUNGEON_RUNE_SETTLEMENT = "DungeonRuneSettlement",
|
||||||
DUNGEON_RUNE_SWEEP = "DungeonRuneSweep",
|
DUNGEON_RUNE_SWEEP = "DungeonRuneSweep",
|
||||||
DUNGEON_RUNE_BUY_WING = "DungeonRunebuyWing",
|
DUNGEON_RUNE_BUY_WING = "DungeonRunebuyWing",
|
||||||
|
RUNES_QUENCHING = "RuneQuenching",
|
||||||
|
RUNES_GIFT = "RuneGift",
|
||||||
}
|
}
|
||||||
|
|
||||||
BIReport.ADS_CLICK_TYPE = {
|
BIReport.ADS_CLICK_TYPE = {
|
||||||
@ -227,6 +229,7 @@ BIReport.GIFT_TYPE = {
|
|||||||
ACT_SUMMER = "ActSummer",
|
ACT_SUMMER = "ActSummer",
|
||||||
ACT_HERO_FUND = "ActHeroFund",
|
ACT_HERO_FUND = "ActHeroFund",
|
||||||
FOURTEEN_DAY_GIFT = "FourteenDayGift",
|
FOURTEEN_DAY_GIFT = "FourteenDayGift",
|
||||||
|
RUNES_GIFT = "RunesGift",
|
||||||
}
|
}
|
||||||
|
|
||||||
BIReport.COIN_TYPE = {
|
BIReport.COIN_TYPE = {
|
||||||
|
|||||||
@ -16,6 +16,7 @@ function DataManager:init()
|
|||||||
self:initManager("BagData", "app/userdata/bag/bag_data")
|
self:initManager("BagData", "app/userdata/bag/bag_data")
|
||||||
self:initManager("EquipData", "app/userdata/equip/equip_data")
|
self:initManager("EquipData", "app/userdata/equip/equip_data")
|
||||||
self:initManager("SkinData", "app/userdata/skin/skin_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("BattleData", "app/userdata/battle/battle_data")
|
||||||
self:initManager("BattlePVPData", "app/userdata/battle/battle_pvp_data")
|
self:initManager("BattlePVPData", "app/userdata/battle/battle_pvp_data")
|
||||||
self:initManager("FormationData", "app/userdata/formation/formation_data")
|
self:initManager("FormationData", "app/userdata/formation/formation_data")
|
||||||
@ -106,6 +107,7 @@ function DataManager:clear()
|
|||||||
self.BagData:clear()
|
self.BagData:clear()
|
||||||
self.EquipData:clear()
|
self.EquipData:clear()
|
||||||
self.SkinData:clear()
|
self.SkinData:clear()
|
||||||
|
self.RunesData:clear()
|
||||||
self.FormationData:clear()
|
self.FormationData:clear()
|
||||||
self.ActivityData:clear()
|
self.ActivityData:clear()
|
||||||
self.MailData:clear()
|
self.MailData:clear()
|
||||||
@ -151,7 +153,8 @@ function DataManager:initWithServerData(data)
|
|||||||
self.EquipData:init(data.heroes_equips)
|
self.EquipData:init(data.heroes_equips)
|
||||||
self.EquipData:initGifts(data.act_weapon_armor_gift)
|
self.EquipData:initGifts(data.act_weapon_armor_gift)
|
||||||
self.SkinData:init(data.bag.skins)
|
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.HeroData:init(data.bag.heroes)
|
||||||
self.BagData:init(data.bag)
|
self.BagData:init(data.bag)
|
||||||
self.FormationData:init(data.fight_info)
|
self.FormationData:init(data.fight_info)
|
||||||
|
|||||||
@ -69,6 +69,8 @@ local MODULE_PATHS = {
|
|||||||
EquipManager = "app/module/equip/equip_manager",
|
EquipManager = "app/module/equip/equip_manager",
|
||||||
-- 皮肤
|
-- 皮肤
|
||||||
SkinManager = "app/module/skin/skin_manager",
|
SkinManager = "app/module/skin/skin_manager",
|
||||||
|
-- 皮肤
|
||||||
|
RunesManager = "app/module/runes/runes_manager",
|
||||||
-- 英雄基金
|
-- 英雄基金
|
||||||
HeroFundManager = "app/module/activity/hero_fund/hero_fund_manager",
|
HeroFundManager = "app/module/activity/hero_fund/hero_fund_manager",
|
||||||
-- 世界首领活动
|
-- 世界首领活动
|
||||||
|
|||||||
@ -27,6 +27,7 @@ PayManager.PURCHARSE_ACT_TYPE = {
|
|||||||
WEAPON_UPGRADE_GIFT = 15,
|
WEAPON_UPGRADE_GIFT = 15,
|
||||||
ARMOR_UPGRADE_GIFT = 16,
|
ARMOR_UPGRADE_GIFT = 16,
|
||||||
FOURTEEN_DAY_GIFT = 17,
|
FOURTEEN_DAY_GIFT = 17,
|
||||||
|
RUNES_GIFT = 21,
|
||||||
}
|
}
|
||||||
|
|
||||||
PayManager.PURCHARSE_TYPE_CONFIG = {
|
PayManager.PURCHARSE_TYPE_CONFIG = {
|
||||||
@ -56,6 +57,7 @@ PayManager.BI_ITEM_GET_TYPE = {
|
|||||||
[PayManager.PURCHARSE_ACT_TYPE.WEAPON_UPGRADE_GIFT] = BIReport.ITEM_GET_TYPE.WEAPON_GIFT,
|
[PayManager.PURCHARSE_ACT_TYPE.WEAPON_UPGRADE_GIFT] = BIReport.ITEM_GET_TYPE.WEAPON_GIFT,
|
||||||
[PayManager.PURCHARSE_ACT_TYPE.ARMOR_UPGRADE_GIFT] = BIReport.ITEM_GET_TYPE.ARMOR_GIFT,
|
[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.FOURTEEN_DAY_GIFT] = BIReport.ITEM_GET_TYPE.FOURTEEN_DAY_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.ACT_GOLD_PIG] = BIReport.ITEM_GET_TYPE.GOLD_PIG,
|
||||||
[PayManager.PURCHARSE_TYPE.MALL_TREASURE] = BIReport.ITEM_GET_TYPE.MALL_TREASURE,
|
[PayManager.PURCHARSE_TYPE.MALL_TREASURE] = BIReport.ITEM_GET_TYPE.MALL_TREASURE,
|
||||||
@ -82,6 +84,7 @@ PayManager.BI_GIFT_TYPE = {
|
|||||||
[PayManager.PURCHARSE_ACT_TYPE.WEAPON_UPGRADE_GIFT] = BIReport.GIFT_TYPE.WEAPON_GIFT,
|
[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.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.FOURTEEN_DAY_GIFT] = BIReport.GIFT_TYPE.FOURTEEN_DAY_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.ACT_GOLD_PIG] = BIReport.GIFT_TYPE.GOLD_PIG,
|
||||||
[PayManager.PURCHARSE_TYPE.MALL_TREASURE] = BIReport.GIFT_TYPE.MALL_TREASURE,
|
[PayManager.PURCHARSE_TYPE.MALL_TREASURE] = BIReport.GIFT_TYPE.MALL_TREASURE,
|
||||||
|
|||||||
@ -23,6 +23,7 @@ function ServerPushManager:initWhenLogin()
|
|||||||
self:addServerPushListener(ProtoMsgType.FromMsgEnum.AIHelpUnreadNtf, ModuleManager.GameSettingManager, ModuleManager.GameSettingManager.rspAiHelperNtf)
|
self:addServerPushListener(ProtoMsgType.FromMsgEnum.AIHelpUnreadNtf, ModuleManager.GameSettingManager, ModuleManager.GameSettingManager.rspAiHelperNtf)
|
||||||
self:addServerPushListener(ProtoMsgType.FromMsgEnum.RecoveryNtf, ModuleManager.ItemManager, ModuleManager.ItemManager.rspRecoveryNtf)
|
self:addServerPushListener(ProtoMsgType.FromMsgEnum.RecoveryNtf, ModuleManager.ItemManager, ModuleManager.ItemManager.rspRecoveryNtf)
|
||||||
self:addServerPushListener(ProtoMsgType.FromMsgEnum.BossRushBoughtNtf, ModuleManager.ActBossRushManager, ModuleManager.ActBossRushManager.rspBossRushBoughtNtf)
|
self:addServerPushListener(ProtoMsgType.FromMsgEnum.BossRushBoughtNtf, ModuleManager.ActBossRushManager, ModuleManager.ActBossRushManager.rspBossRushBoughtNtf)
|
||||||
|
self:addServerPushListener(ProtoMsgType.FromMsgEnum.RuneUpdateNtf, ModuleManager.RunesManager, ModuleManager.RunesManager.rspUpdate)
|
||||||
end
|
end
|
||||||
|
|
||||||
---- 移除全局推送监听
|
---- 移除全局推送监听
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
local activity_pvp_wingift = {
|
local activity_pvp_wingift = {
|
||||||
[1]={
|
[1]={
|
||||||
|
["win"]=1,
|
||||||
["reward"]={
|
["reward"]={
|
||||||
{
|
{
|
||||||
["type"]=1,
|
["type"]=1,
|
||||||
@ -20,6 +21,7 @@ local activity_pvp_wingift = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
[2]={
|
[2]={
|
||||||
|
["win"]=4,
|
||||||
["reward"]={
|
["reward"]={
|
||||||
{
|
{
|
||||||
["type"]=1,
|
["type"]=1,
|
||||||
@ -40,6 +42,7 @@ local activity_pvp_wingift = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
[3]={
|
[3]={
|
||||||
|
["win"]=7,
|
||||||
["reward"]={
|
["reward"]={
|
||||||
{
|
{
|
||||||
["type"]=1,
|
["type"]=1,
|
||||||
@ -60,6 +63,7 @@ local activity_pvp_wingift = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
[4]={
|
[4]={
|
||||||
|
["win"]=10,
|
||||||
["reward"]={
|
["reward"]={
|
||||||
{
|
{
|
||||||
["type"]=1,
|
["type"]=1,
|
||||||
|
|||||||
@ -53,7 +53,9 @@ local buff = {
|
|||||||
["stack"]=2,
|
["stack"]=2,
|
||||||
["position"]=1,
|
["position"]=1,
|
||||||
["decr"]=1,
|
["decr"]=1,
|
||||||
["icon"]="dec_dmg_red_add"
|
["icon"]="dec_dmg_red_add",
|
||||||
|
["show_name"]=true,
|
||||||
|
["ispercent"]=1
|
||||||
},
|
},
|
||||||
[8]={
|
[8]={
|
||||||
["id"]=8,
|
["id"]=8,
|
||||||
@ -62,7 +64,9 @@ local buff = {
|
|||||||
["stack"]=2,
|
["stack"]=2,
|
||||||
["position"]=2,
|
["position"]=2,
|
||||||
["decr"]=1,
|
["decr"]=1,
|
||||||
["icon"]="dec_dmg_yellow_add"
|
["icon"]="dec_dmg_yellow_add",
|
||||||
|
["show_name"]=true,
|
||||||
|
["ispercent"]=1
|
||||||
},
|
},
|
||||||
[9]={
|
[9]={
|
||||||
["id"]=9,
|
["id"]=9,
|
||||||
@ -71,7 +75,9 @@ local buff = {
|
|||||||
["stack"]=2,
|
["stack"]=2,
|
||||||
["position"]=3,
|
["position"]=3,
|
||||||
["decr"]=1,
|
["decr"]=1,
|
||||||
["icon"]="dec_dmg_green_add"
|
["icon"]="dec_dmg_green_add",
|
||||||
|
["show_name"]=true,
|
||||||
|
["ispercent"]=1
|
||||||
},
|
},
|
||||||
[10]={
|
[10]={
|
||||||
["id"]=10,
|
["id"]=10,
|
||||||
@ -80,7 +86,9 @@ local buff = {
|
|||||||
["stack"]=2,
|
["stack"]=2,
|
||||||
["position"]=4,
|
["position"]=4,
|
||||||
["decr"]=1,
|
["decr"]=1,
|
||||||
["icon"]="dec_dmg_blue_add"
|
["icon"]="dec_dmg_blue_add",
|
||||||
|
["show_name"]=true,
|
||||||
|
["ispercent"]=1
|
||||||
},
|
},
|
||||||
[11]={
|
[11]={
|
||||||
["id"]=11,
|
["id"]=11,
|
||||||
@ -89,7 +97,9 @@ local buff = {
|
|||||||
["stack"]=2,
|
["stack"]=2,
|
||||||
["position"]=5,
|
["position"]=5,
|
||||||
["decr"]=1,
|
["decr"]=1,
|
||||||
["icon"]="dec_dmg_purple_add"
|
["icon"]="dec_dmg_purple_add",
|
||||||
|
["show_name"]=true,
|
||||||
|
["ispercent"]=1
|
||||||
},
|
},
|
||||||
[12]={
|
[12]={
|
||||||
["id"]=12,
|
["id"]=12,
|
||||||
@ -97,7 +107,9 @@ local buff = {
|
|||||||
["buff_type"]=1,
|
["buff_type"]=1,
|
||||||
["stack"]=2,
|
["stack"]=2,
|
||||||
["decr"]=1,
|
["decr"]=1,
|
||||||
["icon"]="dec_dmg_all_add"
|
["icon"]="dec_dmg_all_add",
|
||||||
|
["show_name"]=true,
|
||||||
|
["ispercent"]=1
|
||||||
},
|
},
|
||||||
[13]={
|
[13]={
|
||||||
["id"]=13,
|
["id"]=13,
|
||||||
@ -192,7 +204,8 @@ local buff = {
|
|||||||
["buff_type"]=1,
|
["buff_type"]=1,
|
||||||
["stack"]=2,
|
["stack"]=2,
|
||||||
["decr"]=1,
|
["decr"]=1,
|
||||||
["icon"]="weakness_all_add"
|
["icon"]="weakness_all_add",
|
||||||
|
["ispercent"]=1
|
||||||
},
|
},
|
||||||
[25]={
|
[25]={
|
||||||
["id"]=25,
|
["id"]=25,
|
||||||
@ -406,6 +419,7 @@ local buff = {
|
|||||||
["formula"]=4,
|
["formula"]=4,
|
||||||
["icon"]="burn",
|
["icon"]="burn",
|
||||||
["show_name"]=true,
|
["show_name"]=true,
|
||||||
|
["ispercent"]=1,
|
||||||
["fx_take"]={
|
["fx_take"]={
|
||||||
36
|
36
|
||||||
}
|
}
|
||||||
@ -416,6 +430,8 @@ local buff = {
|
|||||||
["buff_type"]=1,
|
["buff_type"]=1,
|
||||||
["decr"]=2,
|
["decr"]=2,
|
||||||
["icon"]="vulnerable",
|
["icon"]="vulnerable",
|
||||||
|
["show_name"]=true,
|
||||||
|
["ispercent"]=1,
|
||||||
["fx_get"]={
|
["fx_get"]={
|
||||||
34
|
34
|
||||||
}
|
}
|
||||||
@ -444,6 +460,7 @@ local buff = {
|
|||||||
["formula"]=4,
|
["formula"]=4,
|
||||||
["icon"]="poison",
|
["icon"]="poison",
|
||||||
["show_name"]=true,
|
["show_name"]=true,
|
||||||
|
["ispercent"]=1,
|
||||||
["fx_take"]={
|
["fx_take"]={
|
||||||
35
|
35
|
||||||
}
|
}
|
||||||
@ -467,6 +484,7 @@ local buff = {
|
|||||||
["decr"]=2,
|
["decr"]=2,
|
||||||
["icon"]="corrupt",
|
["icon"]="corrupt",
|
||||||
["show_name"]=true,
|
["show_name"]=true,
|
||||||
|
["ispercent"]=1,
|
||||||
["fx_get"]={
|
["fx_get"]={
|
||||||
19
|
19
|
||||||
}
|
}
|
||||||
@ -479,6 +497,7 @@ local buff = {
|
|||||||
["formula"]=4,
|
["formula"]=4,
|
||||||
["icon"]="bleed",
|
["icon"]="bleed",
|
||||||
["show_name"]=true,
|
["show_name"]=true,
|
||||||
|
["ispercent"]=1,
|
||||||
["fx_take"]={
|
["fx_take"]={
|
||||||
31
|
31
|
||||||
}
|
}
|
||||||
@ -490,6 +509,7 @@ local buff = {
|
|||||||
["decr"]=2,
|
["decr"]=2,
|
||||||
["icon"]="weaken",
|
["icon"]="weaken",
|
||||||
["show_name"]=true,
|
["show_name"]=true,
|
||||||
|
["ispercent"]=1,
|
||||||
["fx_continued"]={
|
["fx_continued"]={
|
||||||
33
|
33
|
||||||
}
|
}
|
||||||
@ -530,7 +550,7 @@ local buff = {
|
|||||||
["id"]=59,
|
["id"]=59,
|
||||||
["name"]="first_hand",
|
["name"]="first_hand",
|
||||||
["buff_type"]=1,
|
["buff_type"]=1,
|
||||||
["decr"]=3,
|
["decr"]=1,
|
||||||
["icon"]="first_hand"
|
["icon"]="first_hand"
|
||||||
},
|
},
|
||||||
[60]={
|
[60]={
|
||||||
@ -559,7 +579,8 @@ local buff = {
|
|||||||
["stack"]=1,
|
["stack"]=1,
|
||||||
["decr"]=1,
|
["decr"]=1,
|
||||||
["icon"]="counterattack",
|
["icon"]="counterattack",
|
||||||
["show_name"]=true
|
["show_name"]=true,
|
||||||
|
["ispercent"]=1
|
||||||
},
|
},
|
||||||
[63]={
|
[63]={
|
||||||
["id"]=63,
|
["id"]=63,
|
||||||
@ -568,6 +589,7 @@ local buff = {
|
|||||||
["decr"]=1,
|
["decr"]=1,
|
||||||
["icon"]="thorns",
|
["icon"]="thorns",
|
||||||
["show_name"]=true,
|
["show_name"]=true,
|
||||||
|
["ispercent"]=1,
|
||||||
["fx_continued"]={
|
["fx_continued"]={
|
||||||
18
|
18
|
||||||
}
|
}
|
||||||
@ -765,7 +787,7 @@ local buff = {
|
|||||||
["decr"]=1,
|
["decr"]=1,
|
||||||
["formula"]=3,
|
["formula"]=3,
|
||||||
["icon"]="rebirth",
|
["icon"]="rebirth",
|
||||||
["fx_take"]={
|
["fx_disappear"]={
|
||||||
44
|
44
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -790,6 +812,7 @@ local buff = {
|
|||||||
["decr"]=1,
|
["decr"]=1,
|
||||||
["formula"]=3,
|
["formula"]=3,
|
||||||
["icon"]="self_heal",
|
["icon"]="self_heal",
|
||||||
|
["show_name"]=true,
|
||||||
["fx_take"]={
|
["fx_take"]={
|
||||||
300027
|
300027
|
||||||
}
|
}
|
||||||
@ -799,14 +822,103 @@ local buff = {
|
|||||||
["name"]="charm",
|
["name"]="charm",
|
||||||
["buff_type"]=7,
|
["buff_type"]=7,
|
||||||
["decr"]=2,
|
["decr"]=2,
|
||||||
["icon"]="charm"
|
["icon"]="charm",
|
||||||
|
["show_name"]=true
|
||||||
},
|
},
|
||||||
[88]={
|
[88]={
|
||||||
["id"]=88,
|
["id"]=88,
|
||||||
["name"]="immune",
|
["name"]="immune",
|
||||||
["buff_type"]=7,
|
["buff_type"]=7,
|
||||||
["decr"]=1,
|
["decr"]=1,
|
||||||
["icon"]="immune"
|
["icon"]="immune",
|
||||||
|
["show_name"]=true
|
||||||
|
},
|
||||||
|
[89]={
|
||||||
|
["id"]=89,
|
||||||
|
["name"]="forever_first_hand",
|
||||||
|
["buff_type"]=1,
|
||||||
|
["decr"]=3,
|
||||||
|
["icon"]="first_hand"
|
||||||
|
},
|
||||||
|
[90]={
|
||||||
|
["id"]=90,
|
||||||
|
["name"]="forever_counterattack",
|
||||||
|
["buff_type"]=1,
|
||||||
|
["stack"]=1,
|
||||||
|
["decr"]=3,
|
||||||
|
["icon"]="counterattack",
|
||||||
|
["ispercent"]=1
|
||||||
|
},
|
||||||
|
[91]={
|
||||||
|
["id"]=91,
|
||||||
|
["name"]="forever_dec_dmg_red_add",
|
||||||
|
["buff_type"]=1,
|
||||||
|
["stack"]=2,
|
||||||
|
["position"]=1,
|
||||||
|
["decr"]=3,
|
||||||
|
["icon"]="dec_dmg_red_add",
|
||||||
|
["ispercent"]=1
|
||||||
|
},
|
||||||
|
[92]={
|
||||||
|
["id"]=92,
|
||||||
|
["name"]="forever_dec_dmg_yellow_add",
|
||||||
|
["buff_type"]=1,
|
||||||
|
["stack"]=2,
|
||||||
|
["position"]=2,
|
||||||
|
["decr"]=3,
|
||||||
|
["icon"]="dec_dmg_yellow_add",
|
||||||
|
["ispercent"]=1
|
||||||
|
},
|
||||||
|
[93]={
|
||||||
|
["id"]=93,
|
||||||
|
["name"]="forever_dec_dmg_green_add",
|
||||||
|
["buff_type"]=1,
|
||||||
|
["stack"]=2,
|
||||||
|
["position"]=3,
|
||||||
|
["decr"]=3,
|
||||||
|
["icon"]="dec_dmg_green_add",
|
||||||
|
["ispercent"]=1
|
||||||
|
},
|
||||||
|
[94]={
|
||||||
|
["id"]=94,
|
||||||
|
["name"]="forever_dec_dmg_blue_add",
|
||||||
|
["buff_type"]=1,
|
||||||
|
["stack"]=2,
|
||||||
|
["position"]=4,
|
||||||
|
["decr"]=3,
|
||||||
|
["icon"]="dec_dmg_blue_add",
|
||||||
|
["ispercent"]=1
|
||||||
|
},
|
||||||
|
[95]={
|
||||||
|
["id"]=95,
|
||||||
|
["name"]="forever_dec_dmg_purple_add",
|
||||||
|
["buff_type"]=1,
|
||||||
|
["stack"]=2,
|
||||||
|
["position"]=5,
|
||||||
|
["decr"]=3,
|
||||||
|
["icon"]="dec_dmg_purple_add",
|
||||||
|
["ispercent"]=1
|
||||||
|
},
|
||||||
|
[96]={
|
||||||
|
["id"]=96,
|
||||||
|
["name"]="forever_dec_dmg_all_add",
|
||||||
|
["buff_type"]=1,
|
||||||
|
["stack"]=2,
|
||||||
|
["decr"]=3,
|
||||||
|
["icon"]="dec_dmg_all_add",
|
||||||
|
["ispercent"]=1
|
||||||
|
},
|
||||||
|
[97]={
|
||||||
|
["id"]=97,
|
||||||
|
["name"]="forever_thorns",
|
||||||
|
["buff_type"]=1,
|
||||||
|
["decr"]=3,
|
||||||
|
["icon"]="thorns",
|
||||||
|
["show_name"]=true,
|
||||||
|
["ispercent"]=1,
|
||||||
|
["fx_continued"]={
|
||||||
|
18
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
local keys = {
|
local keys = {
|
||||||
@ -898,12 +1010,21 @@ local keys = {
|
|||||||
["ocean_shield"]=buff[85],
|
["ocean_shield"]=buff[85],
|
||||||
["self_heal"]=buff[86],
|
["self_heal"]=buff[86],
|
||||||
["charm"]=buff[87],
|
["charm"]=buff[87],
|
||||||
["immune"]=buff[88]
|
["immune"]=buff[88],
|
||||||
|
["forever_first_hand"]=buff[89],
|
||||||
|
["forever_counterattack"]=buff[90],
|
||||||
|
["forever_dec_dmg_red_add"]=buff[91],
|
||||||
|
["forever_dec_dmg_yellow_add"]=buff[92],
|
||||||
|
["forever_dec_dmg_green_add"]=buff[93],
|
||||||
|
["forever_dec_dmg_blue_add"]=buff[94],
|
||||||
|
["forever_dec_dmg_purple_add"]=buff[95],
|
||||||
|
["forever_dec_dmg_all_add"]=buff[96],
|
||||||
|
["forever_thorns"]=buff[97]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
local config = {
|
local config = {
|
||||||
data=buff,
|
data=buff,
|
||||||
keys=keys,
|
keys=keys,
|
||||||
count=88
|
count=97
|
||||||
}
|
}
|
||||||
return config
|
return config
|
||||||
@ -492,6 +492,19 @@ local const = {
|
|||||||
["activity_pvp_bounty_point"]={
|
["activity_pvp_bounty_point"]={
|
||||||
["value"]=10
|
["value"]=10
|
||||||
},
|
},
|
||||||
|
["activity_pvp_refresh_ad_times"]={
|
||||||
|
["value"]=1
|
||||||
|
},
|
||||||
|
["activity_pvp_refresh_cost"]={
|
||||||
|
["reward"]={
|
||||||
|
["type"]=1,
|
||||||
|
["type_for_nothing"]="Vw==",
|
||||||
|
["id"]=2,
|
||||||
|
["id_for_nothing"]="VA==",
|
||||||
|
["num"]=10,
|
||||||
|
["num_for_nothing"]="Vwg="
|
||||||
|
}
|
||||||
|
},
|
||||||
["activity_skin_fight_id_1"]={
|
["activity_skin_fight_id_1"]={
|
||||||
["value"]=4104
|
["value"]=4104
|
||||||
},
|
},
|
||||||
@ -510,6 +523,6 @@ local const = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
local config = {
|
local config = {
|
||||||
data=const,count=102
|
data=const,count=104
|
||||||
}
|
}
|
||||||
return config
|
return config
|
||||||
@ -440,7 +440,7 @@ local grid_type = {
|
|||||||
["break_sfx"]="sfx_piece_zhongrushi_b01"
|
["break_sfx"]="sfx_piece_zhongrushi_b01"
|
||||||
},
|
},
|
||||||
[31]={
|
[31]={
|
||||||
["icon"]="battle_obstacle_lron_1",
|
["icon"]="battle_obstacle_iron_1",
|
||||||
["next_type"]=0,
|
["next_type"]=0,
|
||||||
["break_condition"]={
|
["break_condition"]={
|
||||||
1,
|
1,
|
||||||
@ -453,7 +453,7 @@ local grid_type = {
|
|||||||
["break_sfx"]="sfx_piece_tiexie_b01"
|
["break_sfx"]="sfx_piece_tiexie_b01"
|
||||||
},
|
},
|
||||||
[32]={
|
[32]={
|
||||||
["icon"]="battle_obstacle_lron_2",
|
["icon"]="battle_obstacle_iron_2",
|
||||||
["next_type"]=31,
|
["next_type"]=31,
|
||||||
["break_condition"]={
|
["break_condition"]={
|
||||||
1,
|
1,
|
||||||
@ -466,7 +466,7 @@ local grid_type = {
|
|||||||
["break_sfx"]="sfx_piece_tiexie_b01"
|
["break_sfx"]="sfx_piece_tiexie_b01"
|
||||||
},
|
},
|
||||||
[33]={
|
[33]={
|
||||||
["icon"]="battle_obstacle_lron_3",
|
["icon"]="battle_obstacle_iron_3",
|
||||||
["next_type"]=32,
|
["next_type"]=32,
|
||||||
["break_condition"]={
|
["break_condition"]={
|
||||||
1,
|
1,
|
||||||
|
|||||||
@ -527,13 +527,42 @@ local LocalizationGlobalConst =
|
|||||||
DUNGEON_RUNE_TIP_4 = "DUNGEON_RUNE_TIP_4",
|
DUNGEON_RUNE_TIP_4 = "DUNGEON_RUNE_TIP_4",
|
||||||
DUNGEON_RUNE_TIP_5 = "DUNGEON_RUNE_TIP_5",
|
DUNGEON_RUNE_TIP_5 = "DUNGEON_RUNE_TIP_5",
|
||||||
UNFINISHED = "UNFINISHED",
|
UNFINISHED = "UNFINISHED",
|
||||||
|
RUNES_DESC_1 = "RUNES_DESC_1",
|
||||||
["DUNGEON_RUNE_DESC_1"]= "DUNGEON_RUNE_DESC_1",
|
RUNES_DESC_2 = "RUNES_DESC_2",
|
||||||
["DUNGEON_RUNE_DESC_2"] = "DUNGEON_RUNE_DESC_2",
|
RUNES_DESC_3 = "RUNES_DESC_3",
|
||||||
["DUNGEON_RUNE_DESC_3"] = "DUNGEON_RUNE_DESC_3",
|
RUNES_DESC_4 = "RUNES_DESC_4",
|
||||||
["DUNGEON_RUNE_DESC_4"] = "DUNGEON_RUNE_DESC_4",
|
RUNES_DESC_5 = "RUNES_DESC_5",
|
||||||
["DUNGEON_RUNE_DESC_5"] = "DUNGEON_RUNE_DESC_5",
|
RUNES_DESC_6 = "RUNES_DESC_6",
|
||||||
|
RUNES_DESC_7 = "RUNES_DESC_7",
|
||||||
|
RUNES_DESC_8 = "RUNES_DESC_8",
|
||||||
|
RUNES_DESC_9 = "RUNES_DESC_9",
|
||||||
|
RUNES_DESC_10 = "RUNES_DESC_10",
|
||||||
|
RUNES_DESC_11 = "RUNES_DESC_11",
|
||||||
|
RUNES_DESC_12 = "RUNES_DESC_12",
|
||||||
|
RUNES_DESC_13 = "RUNES_DESC_13",
|
||||||
|
RUNES_DESC_14 = "RUNES_DESC_14",
|
||||||
|
RUNES_DESC_15 = "RUNES_DESC_15",
|
||||||
|
RUNES_DESC_16 = "RUNES_DESC_16",
|
||||||
|
RUNES_DESC_17 = "RUNES_DESC_17",
|
||||||
|
RUNES_DESC_18 = "RUNES_DESC_18",
|
||||||
|
RUNES_DESC_19 = "RUNES_DESC_19",
|
||||||
|
RUNES_DESC_20 = "RUNES_DESC_20",
|
||||||
|
RUNES_DESC_21 = "RUNES_DESC_21",
|
||||||
|
RUNES_DESC_22 = "RUNES_DESC_22",
|
||||||
|
RUNES_DESC_23 = "RUNES_DESC_23",
|
||||||
|
RUNES_DESC_24 = "RUNES_DESC_24",
|
||||||
|
RUNES_DESC_25 = "RUNES_DESC_25",
|
||||||
|
DUNGEON_RUNE_DESC_1 = "DUNGEON_RUNE_DESC_1",
|
||||||
|
DUNGEON_RUNE_DESC_2 = "DUNGEON_RUNE_DESC_2",
|
||||||
|
DUNGEON_RUNE_DESC_3 = "DUNGEON_RUNE_DESC_3",
|
||||||
|
DUNGEON_RUNE_DESC_4 = "DUNGEON_RUNE_DESC_4",
|
||||||
|
DUNGEON_RUNE_DESC_5 = "DUNGEON_RUNE_DESC_5",
|
||||||
DUNGEON_RUNE_DESC_6 = "DUNGEON_RUNE_DESC_6",
|
DUNGEON_RUNE_DESC_6 = "DUNGEON_RUNE_DESC_6",
|
||||||
|
DUNGEON_RUNE_DESC_7 = "DUNGEON_RUNE_DESC_7",
|
||||||
|
DUNGEON_RUNE_DESC_8 = "DUNGEON_RUNE_DESC_8",
|
||||||
|
DUNGEON_RUNE_DESC_9 = "DUNGEON_RUNE_DESC_9",
|
||||||
|
DUNGEON_RUNE_DESC_10 = "DUNGEON_RUNE_DESC_10",
|
||||||
|
DUNGEON_RUNE_DESC_11 = "DUNGEON_RUNE_DESC_11",
|
||||||
}
|
}
|
||||||
|
|
||||||
return LocalizationGlobalConst
|
return LocalizationGlobalConst
|
||||||
@ -2,8 +2,8 @@ local monster_dungeon_rune = {
|
|||||||
[108]={
|
[108]={
|
||||||
["none"]="大史莱姆(红)",
|
["none"]="大史莱姆(红)",
|
||||||
["monster_base"]=10027,
|
["monster_base"]=10027,
|
||||||
["hp"]=681920000,
|
["hp"]=999999999,
|
||||||
["atk"]=6080000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20076,
|
20076,
|
||||||
@ -15,8 +15,8 @@ local monster_dungeon_rune = {
|
|||||||
[208]={
|
[208]={
|
||||||
["none"]="大史莱姆(黄)",
|
["none"]="大史莱姆(黄)",
|
||||||
["monster_base"]=10025,
|
["monster_base"]=10025,
|
||||||
["hp"]=278310000,
|
["hp"]=999999999,
|
||||||
["atk"]=4040000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20070,
|
20070,
|
||||||
@ -28,8 +28,8 @@ local monster_dungeon_rune = {
|
|||||||
[308]={
|
[308]={
|
||||||
["none"]="大史莱姆(蓝)",
|
["none"]="大史莱姆(蓝)",
|
||||||
["monster_base"]=10026,
|
["monster_base"]=10026,
|
||||||
["hp"]=278310000,
|
["hp"]=999999999,
|
||||||
["atk"]=4040000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20073,
|
20073,
|
||||||
@ -41,8 +41,8 @@ local monster_dungeon_rune = {
|
|||||||
[408]={
|
[408]={
|
||||||
["none"]="大史莱姆(绿)",
|
["none"]="大史莱姆(绿)",
|
||||||
["monster_base"]=10024,
|
["monster_base"]=10024,
|
||||||
["hp"]=205490000,
|
["hp"]=999999999,
|
||||||
["atk"]=3950000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20067,
|
20067,
|
||||||
@ -54,8 +54,8 @@ local monster_dungeon_rune = {
|
|||||||
[508]={
|
[508]={
|
||||||
["none"]="盾刀骷髅兵",
|
["none"]="盾刀骷髅兵",
|
||||||
["monster_base"]=10009,
|
["monster_base"]=10009,
|
||||||
["hp"]=482700000,
|
["hp"]=999999999,
|
||||||
["atk"]=5690000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20025,
|
20025,
|
||||||
@ -67,8 +67,8 @@ local monster_dungeon_rune = {
|
|||||||
[608]={
|
[608]={
|
||||||
["none"]="盾刀骷髅兵(有头盔)",
|
["none"]="盾刀骷髅兵(有头盔)",
|
||||||
["monster_base"]=10039,
|
["monster_base"]=10039,
|
||||||
["hp"]=593840000,
|
["hp"]=999999999,
|
||||||
["atk"]=5780000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20112,
|
20112,
|
||||||
@ -80,8 +80,8 @@ local monster_dungeon_rune = {
|
|||||||
[708]={
|
[708]={
|
||||||
["none"]="哥布林匕首(蓝)",
|
["none"]="哥布林匕首(蓝)",
|
||||||
["monster_base"]=10001,
|
["monster_base"]=10001,
|
||||||
["hp"]=474020000,
|
["hp"]=999999999,
|
||||||
["atk"]=5340000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20001,
|
20001,
|
||||||
@ -93,8 +93,8 @@ local monster_dungeon_rune = {
|
|||||||
[808]={
|
[808]={
|
||||||
["none"]="哥布林匕首(紫)",
|
["none"]="哥布林匕首(紫)",
|
||||||
["monster_base"]=10003,
|
["monster_base"]=10003,
|
||||||
["hp"]=554250000,
|
["hp"]=999999999,
|
||||||
["atk"]=5310000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20007,
|
20007,
|
||||||
@ -106,8 +106,8 @@ local monster_dungeon_rune = {
|
|||||||
[908]={
|
[908]={
|
||||||
["none"]="哥布林法师(红)",
|
["none"]="哥布林法师(红)",
|
||||||
["monster_base"]=10008,
|
["monster_base"]=10008,
|
||||||
["hp"]=298160000,
|
["hp"]=999999999,
|
||||||
["atk"]=4390000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20022,
|
20022,
|
||||||
@ -119,8 +119,8 @@ local monster_dungeon_rune = {
|
|||||||
[1008]={
|
[1008]={
|
||||||
["none"]="哥布林法师(蓝)",
|
["none"]="哥布林法师(蓝)",
|
||||||
["monster_base"]=10005,
|
["monster_base"]=10005,
|
||||||
["hp"]=525000000,
|
["hp"]=999999999,
|
||||||
["atk"]=5020000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20013,
|
20013,
|
||||||
@ -132,8 +132,8 @@ local monster_dungeon_rune = {
|
|||||||
[1108]={
|
[1108]={
|
||||||
["none"]="哥布林法师(绿)",
|
["none"]="哥布林法师(绿)",
|
||||||
["monster_base"]=10006,
|
["monster_base"]=10006,
|
||||||
["hp"]=372560000,
|
["hp"]=999999999,
|
||||||
["atk"]=4530000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20016,
|
20016,
|
||||||
@ -145,8 +145,8 @@ local monster_dungeon_rune = {
|
|||||||
[1208]={
|
[1208]={
|
||||||
["none"]="哥布林法师(紫)",
|
["none"]="哥布林法师(紫)",
|
||||||
["monster_base"]=10007,
|
["monster_base"]=10007,
|
||||||
["hp"]=450590000,
|
["hp"]=999999999,
|
||||||
["atk"]=5230000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20019,
|
20019,
|
||||||
@ -158,8 +158,8 @@ local monster_dungeon_rune = {
|
|||||||
[1308]={
|
[1308]={
|
||||||
["none"]="哥布林斧头(红)",
|
["none"]="哥布林斧头(红)",
|
||||||
["monster_base"]=10002,
|
["monster_base"]=10002,
|
||||||
["hp"]=426740000,
|
["hp"]=999999999,
|
||||||
["atk"]=4940000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20004,
|
20004,
|
||||||
@ -171,8 +171,8 @@ local monster_dungeon_rune = {
|
|||||||
[1408]={
|
[1408]={
|
||||||
["none"]="哥布林棍棒(绿)",
|
["none"]="哥布林棍棒(绿)",
|
||||||
["monster_base"]=10004,
|
["monster_base"]=10004,
|
||||||
["hp"]=391500000,
|
["hp"]=999999999,
|
||||||
["atk"]=5410000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20010,
|
20010,
|
||||||
@ -184,8 +184,8 @@ local monster_dungeon_rune = {
|
|||||||
[1508]={
|
[1508]={
|
||||||
["none"]="黑色食人花",
|
["none"]="黑色食人花",
|
||||||
["monster_base"]=10050,
|
["monster_base"]=10050,
|
||||||
["hp"]=474020000,
|
["hp"]=999999999,
|
||||||
["atk"]=5340000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20145,
|
20145,
|
||||||
@ -197,8 +197,8 @@ local monster_dungeon_rune = {
|
|||||||
[1608]={
|
[1608]={
|
||||||
["none"]="红色蝙蝠恶魔",
|
["none"]="红色蝙蝠恶魔",
|
||||||
["monster_base"]=10052,
|
["monster_base"]=10052,
|
||||||
["hp"]=507910000,
|
["hp"]=999999999,
|
||||||
["atk"]=5800000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20151,
|
20151,
|
||||||
@ -210,8 +210,8 @@ local monster_dungeon_rune = {
|
|||||||
[1708]={
|
[1708]={
|
||||||
["none"]="红色恶魔野猪",
|
["none"]="红色恶魔野猪",
|
||||||
["monster_base"]=10051,
|
["monster_base"]=10051,
|
||||||
["hp"]=347620000,
|
["hp"]=999999999,
|
||||||
["atk"]=4170000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20148,
|
20148,
|
||||||
@ -223,8 +223,8 @@ local monster_dungeon_rune = {
|
|||||||
[1808]={
|
[1808]={
|
||||||
["none"]="红色蜥蜴剑士",
|
["none"]="红色蜥蜴剑士",
|
||||||
["monster_base"]=10047,
|
["monster_base"]=10047,
|
||||||
["hp"]=324830000,
|
["hp"]=999999999,
|
||||||
["atk"]=4460000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20136,
|
20136,
|
||||||
@ -236,8 +236,8 @@ local monster_dungeon_rune = {
|
|||||||
[1908]={
|
[1908]={
|
||||||
["none"]="红色幽灵恶魔",
|
["none"]="红色幽灵恶魔",
|
||||||
["monster_base"]=10055,
|
["monster_base"]=10055,
|
||||||
["hp"]=309200000,
|
["hp"]=999999999,
|
||||||
["atk"]=3730000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20160,
|
20160,
|
||||||
@ -249,8 +249,8 @@ local monster_dungeon_rune = {
|
|||||||
[2008]={
|
[2008]={
|
||||||
["none"]="红色蜘蛛",
|
["none"]="红色蜘蛛",
|
||||||
["monster_base"]=10046,
|
["monster_base"]=10046,
|
||||||
["hp"]=507910000,
|
["hp"]=999999999,
|
||||||
["atk"]=5800000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20133,
|
20133,
|
||||||
@ -262,8 +262,8 @@ local monster_dungeon_rune = {
|
|||||||
[2108]={
|
[2108]={
|
||||||
["none"]="黄发剑士",
|
["none"]="黄发剑士",
|
||||||
["monster_base"]=10030,
|
["monster_base"]=10030,
|
||||||
["hp"]=554250000,
|
["hp"]=999999999,
|
||||||
["atk"]=5310000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20085,
|
20085,
|
||||||
@ -275,8 +275,8 @@ local monster_dungeon_rune = {
|
|||||||
[2208]={
|
[2208]={
|
||||||
["none"]="火山甲壳虫",
|
["none"]="火山甲壳虫",
|
||||||
["monster_base"]=10061,
|
["monster_base"]=10061,
|
||||||
["hp"]=482700000,
|
["hp"]=999999999,
|
||||||
["atk"]=5690000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20178,
|
20178,
|
||||||
@ -288,8 +288,8 @@ local monster_dungeon_rune = {
|
|||||||
[2308]={
|
[2308]={
|
||||||
["none"]="火山岩石怪",
|
["none"]="火山岩石怪",
|
||||||
["monster_base"]=10060,
|
["monster_base"]=10060,
|
||||||
["hp"]=298160000,
|
["hp"]=999999999,
|
||||||
["atk"]=4390000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20175,
|
20175,
|
||||||
@ -301,8 +301,8 @@ local monster_dungeon_rune = {
|
|||||||
[2408]={
|
[2408]={
|
||||||
["none"]="剑盾士兵(黄发)",
|
["none"]="剑盾士兵(黄发)",
|
||||||
["monster_base"]=10034,
|
["monster_base"]=10034,
|
||||||
["hp"]=298160000,
|
["hp"]=999999999,
|
||||||
["atk"]=4390000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20097,
|
20097,
|
||||||
@ -314,8 +314,8 @@ local monster_dungeon_rune = {
|
|||||||
[2508]={
|
[2508]={
|
||||||
["none"]="剑盾士兵(蓝发)",
|
["none"]="剑盾士兵(蓝发)",
|
||||||
["monster_base"]=10035,
|
["monster_base"]=10035,
|
||||||
["hp"]=372560000,
|
["hp"]=999999999,
|
||||||
["atk"]=4530000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20100,
|
20100,
|
||||||
@ -327,8 +327,8 @@ local monster_dungeon_rune = {
|
|||||||
[2608]={
|
[2608]={
|
||||||
["none"]="骷髅弓箭手",
|
["none"]="骷髅弓箭手",
|
||||||
["monster_base"]=10038,
|
["monster_base"]=10038,
|
||||||
["hp"]=391500000,
|
["hp"]=999999999,
|
||||||
["atk"]=5410000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20109,
|
20109,
|
||||||
@ -340,8 +340,8 @@ local monster_dungeon_rune = {
|
|||||||
[2708]={
|
[2708]={
|
||||||
["none"]="骷髅枪兵",
|
["none"]="骷髅枪兵",
|
||||||
["monster_base"]=10010,
|
["monster_base"]=10010,
|
||||||
["hp"]=347620000,
|
["hp"]=999999999,
|
||||||
["atk"]=4170000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20028,
|
20028,
|
||||||
@ -353,8 +353,8 @@ local monster_dungeon_rune = {
|
|||||||
[2808]={
|
[2808]={
|
||||||
["none"]="骷髅小法师",
|
["none"]="骷髅小法师",
|
||||||
["monster_base"]=10040,
|
["monster_base"]=10040,
|
||||||
["hp"]=482700000,
|
["hp"]=999999999,
|
||||||
["atk"]=5690000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20115,
|
20115,
|
||||||
@ -366,8 +366,8 @@ local monster_dungeon_rune = {
|
|||||||
[2908]={
|
[2908]={
|
||||||
["none"]="蓝发剑士",
|
["none"]="蓝发剑士",
|
||||||
["monster_base"]=10031,
|
["monster_base"]=10031,
|
||||||
["hp"]=345780000,
|
["hp"]=999999999,
|
||||||
["atk"]=4720000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20088,
|
20088,
|
||||||
@ -379,8 +379,8 @@ local monster_dungeon_rune = {
|
|||||||
[3008]={
|
[3008]={
|
||||||
["none"]="蓝色蝙蝠恶魔",
|
["none"]="蓝色蝙蝠恶魔",
|
||||||
["monster_base"]=10041,
|
["monster_base"]=10041,
|
||||||
["hp"]=391500000,
|
["hp"]=999999999,
|
||||||
["atk"]=5410000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20118,
|
20118,
|
||||||
@ -392,8 +392,8 @@ local monster_dungeon_rune = {
|
|||||||
[3108]={
|
[3108]={
|
||||||
["none"]="蓝色独眼蝙蝠",
|
["none"]="蓝色独眼蝙蝠",
|
||||||
["monster_base"]=10044,
|
["monster_base"]=10044,
|
||||||
["hp"]=191410000,
|
["hp"]=999999999,
|
||||||
["atk"]=3630000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20127,
|
20127,
|
||||||
@ -405,8 +405,8 @@ local monster_dungeon_rune = {
|
|||||||
[3208]={
|
[3208]={
|
||||||
["none"]="蓝色恶魔野猪",
|
["none"]="蓝色恶魔野猪",
|
||||||
["monster_base"]=10042,
|
["monster_base"]=10042,
|
||||||
["hp"]=365170000,
|
["hp"]=999999999,
|
||||||
["atk"]=4980000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20121,
|
20121,
|
||||||
@ -418,8 +418,8 @@ local monster_dungeon_rune = {
|
|||||||
[3308]={
|
[3308]={
|
||||||
["none"]="绿色食人花",
|
["none"]="绿色食人花",
|
||||||
["monster_base"]=10049,
|
["monster_base"]=10049,
|
||||||
["hp"]=409220000,
|
["hp"]=999999999,
|
||||||
["atk"]=4500000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20142,
|
20142,
|
||||||
@ -431,8 +431,8 @@ local monster_dungeon_rune = {
|
|||||||
[3408]={
|
[3408]={
|
||||||
["none"]="绿色蜥蜴剑士",
|
["none"]="绿色蜥蜴剑士",
|
||||||
["monster_base"]=10048,
|
["monster_base"]=10048,
|
||||||
["hp"]=482700000,
|
["hp"]=999999999,
|
||||||
["atk"]=5690000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20139,
|
20139,
|
||||||
@ -444,8 +444,8 @@ local monster_dungeon_rune = {
|
|||||||
[3508]={
|
[3508]={
|
||||||
["none"]="魔都小枪兵(红)",
|
["none"]="魔都小枪兵(红)",
|
||||||
["monster_base"]=10057,
|
["monster_base"]=10057,
|
||||||
["hp"]=191410000,
|
["hp"]=999999999,
|
||||||
["atk"]=3630000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20166,
|
20166,
|
||||||
@ -457,8 +457,8 @@ local monster_dungeon_rune = {
|
|||||||
[3608]={
|
[3608]={
|
||||||
["none"]="魔都小枪兵(紫)",
|
["none"]="魔都小枪兵(紫)",
|
||||||
["monster_base"]=10058,
|
["monster_base"]=10058,
|
||||||
["hp"]=164360000,
|
["hp"]=999999999,
|
||||||
["atk"]=3050000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20169,
|
20169,
|
||||||
@ -470,8 +470,8 @@ local monster_dungeon_rune = {
|
|||||||
[3708]={
|
[3708]={
|
||||||
["none"]="女巫师(蓝)",
|
["none"]="女巫师(蓝)",
|
||||||
["monster_base"]=10032,
|
["monster_base"]=10032,
|
||||||
["hp"]=525000000,
|
["hp"]=999999999,
|
||||||
["atk"]=5020000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20091,
|
20091,
|
||||||
@ -483,8 +483,8 @@ local monster_dungeon_rune = {
|
|||||||
[3808]={
|
[3808]={
|
||||||
["none"]="女巫师(紫)",
|
["none"]="女巫师(紫)",
|
||||||
["monster_base"]=10033,
|
["monster_base"]=10033,
|
||||||
["hp"]=278310000,
|
["hp"]=999999999,
|
||||||
["atk"]=4040000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20094,
|
20094,
|
||||||
@ -496,8 +496,8 @@ local monster_dungeon_rune = {
|
|||||||
[3908]={
|
[3908]={
|
||||||
["none"]="青绿鬼火",
|
["none"]="青绿鬼火",
|
||||||
["monster_base"]=10054,
|
["monster_base"]=10054,
|
||||||
["hp"]=191410000,
|
["hp"]=999999999,
|
||||||
["atk"]=3630000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20157,
|
20157,
|
||||||
@ -509,8 +509,8 @@ local monster_dungeon_rune = {
|
|||||||
[4008]={
|
[4008]={
|
||||||
["none"]="人类弓箭手(红)",
|
["none"]="人类弓箭手(红)",
|
||||||
["monster_base"]=10036,
|
["monster_base"]=10036,
|
||||||
["hp"]=554250000,
|
["hp"]=999999999,
|
||||||
["atk"]=5310000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20103,
|
20103,
|
||||||
@ -522,8 +522,8 @@ local monster_dungeon_rune = {
|
|||||||
[4108]={
|
[4108]={
|
||||||
["none"]="人类弓箭手(绿)",
|
["none"]="人类弓箭手(绿)",
|
||||||
["monster_base"]=10037,
|
["monster_base"]=10037,
|
||||||
["hp"]=205490000,
|
["hp"]=999999999,
|
||||||
["atk"]=3950000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20106,
|
20106,
|
||||||
@ -535,8 +535,8 @@ local monster_dungeon_rune = {
|
|||||||
[4208]={
|
[4208]={
|
||||||
["none"]="人鱼双匕首(红)",
|
["none"]="人鱼双匕首(红)",
|
||||||
["monster_base"]=10065,
|
["monster_base"]=10065,
|
||||||
["hp"]=243300000,
|
["hp"]=999999999,
|
||||||
["atk"]=2900000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20187,
|
20187,
|
||||||
@ -548,8 +548,8 @@ local monster_dungeon_rune = {
|
|||||||
[4308]={
|
[4308]={
|
||||||
["none"]="人鱼双匕首(蓝)",
|
["none"]="人鱼双匕首(蓝)",
|
||||||
["monster_base"]=10063,
|
["monster_base"]=10063,
|
||||||
["hp"]=191500000,
|
["hp"]=999999999,
|
||||||
["atk"]=2660000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20184,
|
20184,
|
||||||
@ -561,8 +561,8 @@ local monster_dungeon_rune = {
|
|||||||
[4408]={
|
[4408]={
|
||||||
["none"]="兽人大刀兵(红)",
|
["none"]="兽人大刀兵(红)",
|
||||||
["monster_base"]=10014,
|
["monster_base"]=10014,
|
||||||
["hp"]=450590000,
|
["hp"]=999999999,
|
||||||
["atk"]=5230000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20037,
|
20037,
|
||||||
@ -574,8 +574,8 @@ local monster_dungeon_rune = {
|
|||||||
[4508]={
|
[4508]={
|
||||||
["none"]="兽人大刀兵(黄)",
|
["none"]="兽人大刀兵(黄)",
|
||||||
["monster_base"]=10015,
|
["monster_base"]=10015,
|
||||||
["hp"]=507910000,
|
["hp"]=999999999,
|
||||||
["atk"]=5800000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20040,
|
20040,
|
||||||
@ -587,8 +587,8 @@ local monster_dungeon_rune = {
|
|||||||
[4608]={
|
[4608]={
|
||||||
["none"]="兽人大刀兵(蓝)",
|
["none"]="兽人大刀兵(蓝)",
|
||||||
["monster_base"]=10013,
|
["monster_base"]=10013,
|
||||||
["hp"]=205490000,
|
["hp"]=999999999,
|
||||||
["atk"]=3950000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20034,
|
20034,
|
||||||
@ -600,8 +600,8 @@ local monster_dungeon_rune = {
|
|||||||
[4708]={
|
[4708]={
|
||||||
["none"]="兽人大刀兵(绿)",
|
["none"]="兽人大刀兵(绿)",
|
||||||
["monster_base"]=10012,
|
["monster_base"]=10012,
|
||||||
["hp"]=482700000,
|
["hp"]=999999999,
|
||||||
["atk"]=5690000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20031,
|
20031,
|
||||||
@ -613,8 +613,8 @@ local monster_dungeon_rune = {
|
|||||||
[4808]={
|
[4808]={
|
||||||
["none"]="兽人盾骨兵(红)",
|
["none"]="兽人盾骨兵(红)",
|
||||||
["monster_base"]=10017,
|
["monster_base"]=10017,
|
||||||
["hp"]=593840000,
|
["hp"]=999999999,
|
||||||
["atk"]=5780000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20046,
|
20046,
|
||||||
@ -626,8 +626,8 @@ local monster_dungeon_rune = {
|
|||||||
[4908]={
|
[4908]={
|
||||||
["none"]="兽人盾骨兵(黄)",
|
["none"]="兽人盾骨兵(黄)",
|
||||||
["monster_base"]=10018,
|
["monster_base"]=10018,
|
||||||
["hp"]=593840000,
|
["hp"]=999999999,
|
||||||
["atk"]=5780000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20049,
|
20049,
|
||||||
@ -639,8 +639,8 @@ local monster_dungeon_rune = {
|
|||||||
[5008]={
|
[5008]={
|
||||||
["none"]="兽人盾骨兵(蓝)",
|
["none"]="兽人盾骨兵(蓝)",
|
||||||
["monster_base"]=10019,
|
["monster_base"]=10019,
|
||||||
["hp"]=372560000,
|
["hp"]=999999999,
|
||||||
["atk"]=4530000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20052,
|
20052,
|
||||||
@ -652,8 +652,8 @@ local monster_dungeon_rune = {
|
|||||||
[5108]={
|
[5108]={
|
||||||
["none"]="兽人盾骨兵(绿)",
|
["none"]="兽人盾骨兵(绿)",
|
||||||
["monster_base"]=10016,
|
["monster_base"]=10016,
|
||||||
["hp"]=593840000,
|
["hp"]=999999999,
|
||||||
["atk"]=5780000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20043,
|
20043,
|
||||||
@ -665,8 +665,8 @@ local monster_dungeon_rune = {
|
|||||||
[5208]={
|
[5208]={
|
||||||
["none"]="双斧莫西干(红)",
|
["none"]="双斧莫西干(红)",
|
||||||
["monster_base"]=10029,
|
["monster_base"]=10029,
|
||||||
["hp"]=391500000,
|
["hp"]=999999999,
|
||||||
["atk"]=5410000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20082,
|
20082,
|
||||||
@ -678,8 +678,8 @@ local monster_dungeon_rune = {
|
|||||||
[5308]={
|
[5308]={
|
||||||
["none"]="双斧莫西干(紫)",
|
["none"]="双斧莫西干(紫)",
|
||||||
["monster_base"]=10028,
|
["monster_base"]=10028,
|
||||||
["hp"]=298160000,
|
["hp"]=999999999,
|
||||||
["atk"]=4390000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20079,
|
20079,
|
||||||
@ -691,8 +691,8 @@ local monster_dungeon_rune = {
|
|||||||
[5408]={
|
[5408]={
|
||||||
["none"]="水蜥蜴",
|
["none"]="水蜥蜴",
|
||||||
["monster_base"]=10064,
|
["monster_base"]=10064,
|
||||||
["hp"]=224450000,
|
["hp"]=999999999,
|
||||||
["atk"]=3190000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20190,
|
20190,
|
||||||
@ -704,8 +704,8 @@ local monster_dungeon_rune = {
|
|||||||
[5508]={
|
[5508]={
|
||||||
["none"]="小史莱姆(红)",
|
["none"]="小史莱姆(红)",
|
||||||
["monster_base"]=10023,
|
["monster_base"]=10023,
|
||||||
["hp"]=507910000,
|
["hp"]=999999999,
|
||||||
["atk"]=5800000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20064,
|
20064,
|
||||||
@ -717,8 +717,8 @@ local monster_dungeon_rune = {
|
|||||||
[5608]={
|
[5608]={
|
||||||
["none"]="小史莱姆(黄)",
|
["none"]="小史莱姆(黄)",
|
||||||
["monster_base"]=10021,
|
["monster_base"]=10021,
|
||||||
["hp"]=593840000,
|
["hp"]=999999999,
|
||||||
["atk"]=5780000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20058,
|
20058,
|
||||||
@ -730,8 +730,8 @@ local monster_dungeon_rune = {
|
|||||||
[5708]={
|
[5708]={
|
||||||
["none"]="小史莱姆(蓝)",
|
["none"]="小史莱姆(蓝)",
|
||||||
["monster_base"]=10022,
|
["monster_base"]=10022,
|
||||||
["hp"]=205490000,
|
["hp"]=999999999,
|
||||||
["atk"]=3950000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20061,
|
20061,
|
||||||
@ -743,8 +743,8 @@ local monster_dungeon_rune = {
|
|||||||
[5808]={
|
[5808]={
|
||||||
["none"]="小史莱姆(绿)",
|
["none"]="小史莱姆(绿)",
|
||||||
["monster_base"]=10020,
|
["monster_base"]=10020,
|
||||||
["hp"]=602910000,
|
["hp"]=999999999,
|
||||||
["atk"]=5280000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20055,
|
20055,
|
||||||
@ -756,8 +756,8 @@ local monster_dungeon_rune = {
|
|||||||
[5908]={
|
[5908]={
|
||||||
["none"]="紫色独眼蝙蝠",
|
["none"]="紫色独眼蝙蝠",
|
||||||
["monster_base"]=10043,
|
["monster_base"]=10043,
|
||||||
["hp"]=474020000,
|
["hp"]=999999999,
|
||||||
["atk"]=5340000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20124,
|
20124,
|
||||||
@ -769,8 +769,8 @@ local monster_dungeon_rune = {
|
|||||||
[6008]={
|
[6008]={
|
||||||
["none"]="紫色鬼火",
|
["none"]="紫色鬼火",
|
||||||
["monster_base"]=10053,
|
["monster_base"]=10053,
|
||||||
["hp"]=549890000,
|
["hp"]=999999999,
|
||||||
["atk"]=4690000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20154,
|
20154,
|
||||||
@ -782,8 +782,8 @@ local monster_dungeon_rune = {
|
|||||||
[6108]={
|
[6108]={
|
||||||
["none"]="紫色幽灵恶魔",
|
["none"]="紫色幽灵恶魔",
|
||||||
["monster_base"]=10056,
|
["monster_base"]=10056,
|
||||||
["hp"]=191410000,
|
["hp"]=999999999,
|
||||||
["atk"]=3630000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20163,
|
20163,
|
||||||
@ -795,8 +795,8 @@ local monster_dungeon_rune = {
|
|||||||
[6208]={
|
[6208]={
|
||||||
["none"]="紫色蜘蛛",
|
["none"]="紫色蜘蛛",
|
||||||
["monster_base"]=10045,
|
["monster_base"]=10045,
|
||||||
["hp"]=205490000,
|
["hp"]=999999999,
|
||||||
["atk"]=3950000,
|
["atk"]=999999999,
|
||||||
["atk_times"]=3,
|
["atk_times"]=3,
|
||||||
["hurt_skill"]={
|
["hurt_skill"]={
|
||||||
20130,
|
20130,
|
||||||
@ -939,6 +939,9 @@ local monster_dungeon_rune = {
|
|||||||
30206,
|
30206,
|
||||||
30207
|
30207
|
||||||
},
|
},
|
||||||
|
["passive_skill"]={
|
||||||
|
10013
|
||||||
|
},
|
||||||
["monster_exp"]=0
|
["monster_exp"]=0
|
||||||
},
|
},
|
||||||
[7008]={
|
[7008]={
|
||||||
@ -979,7 +982,6 @@ local monster_dungeon_rune = {
|
|||||||
30220
|
30220
|
||||||
},
|
},
|
||||||
["passive_skill"]={
|
["passive_skill"]={
|
||||||
10013,
|
|
||||||
10014,
|
10014,
|
||||||
30218
|
30218
|
||||||
},
|
},
|
||||||
@ -1001,7 +1003,8 @@ local monster_dungeon_rune = {
|
|||||||
30226,
|
30226,
|
||||||
30227,
|
30227,
|
||||||
30228,
|
30228,
|
||||||
30229
|
30229,
|
||||||
|
30230
|
||||||
},
|
},
|
||||||
["passive_skill"]={
|
["passive_skill"]={
|
||||||
10013,
|
10013,
|
||||||
|
|||||||
@ -90,45 +90,45 @@ local runes_sub = {
|
|||||||
},
|
},
|
||||||
["attr_5"]={
|
["attr_5"]={
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_red",
|
["type"]="attr_normal_hurt_red",
|
||||||
["num"]=10000
|
["num"]=10000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_yellow",
|
["type"]="attr_normal_hurt_yellow",
|
||||||
["num"]=10000
|
["num"]=10000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_green",
|
["type"]="attr_normal_hurt_green",
|
||||||
["num"]=10000
|
["num"]=10000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_blue",
|
["type"]="attr_normal_hurt_blue",
|
||||||
["num"]=10000
|
["num"]=10000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_purple",
|
["type"]="attr_normal_hurt_purple",
|
||||||
["num"]=10000
|
["num"]=10000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["attr_6"]={
|
["attr_6"]={
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_red",
|
["type"]="attr_skill_hurt_red",
|
||||||
["num"]=10000
|
["num"]=10000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_yellow",
|
["type"]="attr_skill_hurt_yellow",
|
||||||
["num"]=10000
|
["num"]=10000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_green",
|
["type"]="attr_skill_hurt_green",
|
||||||
["num"]=10000
|
["num"]=10000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_blue",
|
["type"]="attr_skill_hurt_blue",
|
||||||
["num"]=10000
|
["num"]=10000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_purple",
|
["type"]="attr_skill_hurt_purple",
|
||||||
["num"]=10000
|
["num"]=10000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -334,45 +334,45 @@ local runes_sub = {
|
|||||||
},
|
},
|
||||||
["attr_5"]={
|
["attr_5"]={
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_red",
|
["type"]="attr_normal_hurt_red",
|
||||||
["num"]=20000
|
["num"]=20000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_yellow",
|
["type"]="attr_normal_hurt_yellow",
|
||||||
["num"]=20000
|
["num"]=20000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_green",
|
["type"]="attr_normal_hurt_green",
|
||||||
["num"]=20000
|
["num"]=20000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_blue",
|
["type"]="attr_normal_hurt_blue",
|
||||||
["num"]=20000
|
["num"]=20000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_purple",
|
["type"]="attr_normal_hurt_purple",
|
||||||
["num"]=20000
|
["num"]=20000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["attr_6"]={
|
["attr_6"]={
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_red",
|
["type"]="attr_skill_hurt_red",
|
||||||
["num"]=20000
|
["num"]=20000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_yellow",
|
["type"]="attr_skill_hurt_yellow",
|
||||||
["num"]=20000
|
["num"]=20000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_green",
|
["type"]="attr_skill_hurt_green",
|
||||||
["num"]=20000
|
["num"]=20000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_blue",
|
["type"]="attr_skill_hurt_blue",
|
||||||
["num"]=20000
|
["num"]=20000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_purple",
|
["type"]="attr_skill_hurt_purple",
|
||||||
["num"]=20000
|
["num"]=20000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -578,45 +578,45 @@ local runes_sub = {
|
|||||||
},
|
},
|
||||||
["attr_5"]={
|
["attr_5"]={
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_red",
|
["type"]="attr_normal_hurt_red",
|
||||||
["num"]=30000
|
["num"]=30000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_yellow",
|
["type"]="attr_normal_hurt_yellow",
|
||||||
["num"]=30000
|
["num"]=30000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_green",
|
["type"]="attr_normal_hurt_green",
|
||||||
["num"]=30000
|
["num"]=30000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_blue",
|
["type"]="attr_normal_hurt_blue",
|
||||||
["num"]=30000
|
["num"]=30000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_purple",
|
["type"]="attr_normal_hurt_purple",
|
||||||
["num"]=30000
|
["num"]=30000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["attr_6"]={
|
["attr_6"]={
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_red",
|
["type"]="attr_skill_hurt_red",
|
||||||
["num"]=30000
|
["num"]=30000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_yellow",
|
["type"]="attr_skill_hurt_yellow",
|
||||||
["num"]=30000
|
["num"]=30000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_green",
|
["type"]="attr_skill_hurt_green",
|
||||||
["num"]=30000
|
["num"]=30000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_blue",
|
["type"]="attr_skill_hurt_blue",
|
||||||
["num"]=30000
|
["num"]=30000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_purple",
|
["type"]="attr_skill_hurt_purple",
|
||||||
["num"]=30000
|
["num"]=30000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -822,45 +822,45 @@ local runes_sub = {
|
|||||||
},
|
},
|
||||||
["attr_5"]={
|
["attr_5"]={
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_red",
|
["type"]="attr_normal_hurt_red",
|
||||||
["num"]=40000
|
["num"]=40000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_yellow",
|
["type"]="attr_normal_hurt_yellow",
|
||||||
["num"]=40000
|
["num"]=40000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_green",
|
["type"]="attr_normal_hurt_green",
|
||||||
["num"]=40000
|
["num"]=40000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_blue",
|
["type"]="attr_normal_hurt_blue",
|
||||||
["num"]=40000
|
["num"]=40000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_purple",
|
["type"]="attr_normal_hurt_purple",
|
||||||
["num"]=40000
|
["num"]=40000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["attr_6"]={
|
["attr_6"]={
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_red",
|
["type"]="attr_skill_hurt_red",
|
||||||
["num"]=40000
|
["num"]=40000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_yellow",
|
["type"]="attr_skill_hurt_yellow",
|
||||||
["num"]=40000
|
["num"]=40000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_green",
|
["type"]="attr_skill_hurt_green",
|
||||||
["num"]=40000
|
["num"]=40000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_blue",
|
["type"]="attr_skill_hurt_blue",
|
||||||
["num"]=40000
|
["num"]=40000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_purple",
|
["type"]="attr_skill_hurt_purple",
|
||||||
["num"]=40000
|
["num"]=40000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1066,45 +1066,45 @@ local runes_sub = {
|
|||||||
},
|
},
|
||||||
["attr_5"]={
|
["attr_5"]={
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_red",
|
["type"]="attr_normal_hurt_red",
|
||||||
["num"]=50000
|
["num"]=50000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_yellow",
|
["type"]="attr_normal_hurt_yellow",
|
||||||
["num"]=50000
|
["num"]=50000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_green",
|
["type"]="attr_normal_hurt_green",
|
||||||
["num"]=50000
|
["num"]=50000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_blue",
|
["type"]="attr_normal_hurt_blue",
|
||||||
["num"]=50000
|
["num"]=50000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_purple",
|
["type"]="attr_normal_hurt_purple",
|
||||||
["num"]=50000
|
["num"]=50000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["attr_6"]={
|
["attr_6"]={
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_red",
|
["type"]="attr_skill_hurt_red",
|
||||||
["num"]=50000
|
["num"]=50000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_yellow",
|
["type"]="attr_skill_hurt_yellow",
|
||||||
["num"]=50000
|
["num"]=50000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_green",
|
["type"]="attr_skill_hurt_green",
|
||||||
["num"]=50000
|
["num"]=50000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_blue",
|
["type"]="attr_skill_hurt_blue",
|
||||||
["num"]=50000
|
["num"]=50000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_purple",
|
["type"]="attr_skill_hurt_purple",
|
||||||
["num"]=50000
|
["num"]=50000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1310,45 +1310,45 @@ local runes_sub = {
|
|||||||
},
|
},
|
||||||
["attr_5"]={
|
["attr_5"]={
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_red",
|
["type"]="attr_normal_hurt_red",
|
||||||
["num"]=90000
|
["num"]=90000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_yellow",
|
["type"]="attr_normal_hurt_yellow",
|
||||||
["num"]=90000
|
["num"]=90000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_green",
|
["type"]="attr_normal_hurt_green",
|
||||||
["num"]=90000
|
["num"]=90000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_blue",
|
["type"]="attr_normal_hurt_blue",
|
||||||
["num"]=90000
|
["num"]=90000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_purple",
|
["type"]="attr_normal_hurt_purple",
|
||||||
["num"]=90000
|
["num"]=90000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["attr_6"]={
|
["attr_6"]={
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_red",
|
["type"]="attr_skill_hurt_red",
|
||||||
["num"]=90000
|
["num"]=90000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_yellow",
|
["type"]="attr_skill_hurt_yellow",
|
||||||
["num"]=90000
|
["num"]=90000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_green",
|
["type"]="attr_skill_hurt_green",
|
||||||
["num"]=90000
|
["num"]=90000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_blue",
|
["type"]="attr_skill_hurt_blue",
|
||||||
["num"]=90000
|
["num"]=90000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_purple",
|
["type"]="attr_skill_hurt_purple",
|
||||||
["num"]=90000
|
["num"]=90000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1554,45 +1554,45 @@ local runes_sub = {
|
|||||||
},
|
},
|
||||||
["attr_5"]={
|
["attr_5"]={
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_red",
|
["type"]="attr_normal_hurt_red",
|
||||||
["num"]=100000
|
["num"]=100000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_yellow",
|
["type"]="attr_normal_hurt_yellow",
|
||||||
["num"]=100000
|
["num"]=100000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_green",
|
["type"]="attr_normal_hurt_green",
|
||||||
["num"]=100000
|
["num"]=100000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_blue",
|
["type"]="attr_normal_hurt_blue",
|
||||||
["num"]=100000
|
["num"]=100000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_purple",
|
["type"]="attr_normal_hurt_purple",
|
||||||
["num"]=100000
|
["num"]=100000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["attr_6"]={
|
["attr_6"]={
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_red",
|
["type"]="attr_skill_hurt_red",
|
||||||
["num"]=100000
|
["num"]=100000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_yellow",
|
["type"]="attr_skill_hurt_yellow",
|
||||||
["num"]=100000
|
["num"]=100000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_green",
|
["type"]="attr_skill_hurt_green",
|
||||||
["num"]=100000
|
["num"]=100000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_blue",
|
["type"]="attr_skill_hurt_blue",
|
||||||
["num"]=100000
|
["num"]=100000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_purple",
|
["type"]="attr_skill_hurt_purple",
|
||||||
["num"]=100000
|
["num"]=100000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1798,45 +1798,45 @@ local runes_sub = {
|
|||||||
},
|
},
|
||||||
["attr_5"]={
|
["attr_5"]={
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_red",
|
["type"]="attr_normal_hurt_red",
|
||||||
["num"]=200000
|
["num"]=200000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_yellow",
|
["type"]="attr_normal_hurt_yellow",
|
||||||
["num"]=200000
|
["num"]=200000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_green",
|
["type"]="attr_normal_hurt_green",
|
||||||
["num"]=200000
|
["num"]=200000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_blue",
|
["type"]="attr_normal_hurt_blue",
|
||||||
["num"]=200000
|
["num"]=200000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_normal_hurtp_purple",
|
["type"]="attr_normal_hurt_purple",
|
||||||
["num"]=200000
|
["num"]=200000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["attr_6"]={
|
["attr_6"]={
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_red",
|
["type"]="attr_skill_hurt_red",
|
||||||
["num"]=200000
|
["num"]=200000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_yellow",
|
["type"]="attr_skill_hurt_yellow",
|
||||||
["num"]=200000
|
["num"]=200000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_green",
|
["type"]="attr_skill_hurt_green",
|
||||||
["num"]=200000
|
["num"]=200000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_blue",
|
["type"]="attr_skill_hurt_blue",
|
||||||
["num"]=200000
|
["num"]=200000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
["type"]="attr_skill_hurtp_purple",
|
["type"]="attr_skill_hurt_purple",
|
||||||
["num"]=200000
|
["num"]=200000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -9326,7 +9326,7 @@ local skill = {
|
|||||||
["round"]=1
|
["round"]=1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=2
|
["obj"]=1
|
||||||
},
|
},
|
||||||
[5400423]={
|
[5400423]={
|
||||||
["position"]=5,
|
["position"]=5,
|
||||||
@ -9567,10 +9567,10 @@ local skill = {
|
|||||||
["trigger"]=2,
|
["trigger"]=2,
|
||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="dec_dmg_red_add",
|
["type"]="forever_dec_dmg_red_add",
|
||||||
["num"]=5000,
|
["num"]=5000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=9999
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=1,
|
["obj"]=1,
|
||||||
@ -9584,10 +9584,10 @@ local skill = {
|
|||||||
["trigger"]=2,
|
["trigger"]=2,
|
||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="dec_dmg_yellow_add",
|
["type"]="forever_dec_dmg_yellow_add",
|
||||||
["num"]=5000,
|
["num"]=5000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=9999
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=1,
|
["obj"]=1,
|
||||||
@ -9601,10 +9601,10 @@ local skill = {
|
|||||||
["trigger"]=2,
|
["trigger"]=2,
|
||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="dec_dmg_green_add",
|
["type"]="forever_dec_dmg_green_add",
|
||||||
["num"]=5000,
|
["num"]=5000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=9999
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=1,
|
["obj"]=1,
|
||||||
@ -9618,10 +9618,10 @@ local skill = {
|
|||||||
["trigger"]=2,
|
["trigger"]=2,
|
||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="dec_dmg_blue_add",
|
["type"]="forever_dec_dmg_blue_add",
|
||||||
["num"]=5000,
|
["num"]=5000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=9999
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=1,
|
["obj"]=1,
|
||||||
@ -9635,10 +9635,10 @@ local skill = {
|
|||||||
["trigger"]=2,
|
["trigger"]=2,
|
||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="dec_dmg_purple_add",
|
["type"]="forever_dec_dmg_purple_add",
|
||||||
["num"]=5000,
|
["num"]=5000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=9999
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=1,
|
["obj"]=1,
|
||||||
@ -9652,10 +9652,10 @@ local skill = {
|
|||||||
["trigger"]=2,
|
["trigger"]=2,
|
||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="first_hand",
|
["type"]="forever_first_hand",
|
||||||
["num"]=10000,
|
["num"]=10000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=9999
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=1,
|
["obj"]=1,
|
||||||
@ -9669,10 +9669,10 @@ local skill = {
|
|||||||
["trigger"]=2,
|
["trigger"]=2,
|
||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="counterattack",
|
["type"]="forever_counterattack",
|
||||||
["num"]=2500,
|
["num"]=2500,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=9999
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=1
|
["obj"]=1
|
||||||
@ -24046,7 +24046,7 @@ local skill = {
|
|||||||
{
|
{
|
||||||
["type"]="state",
|
["type"]="state",
|
||||||
["attr"]="dmg_addition_all_add",
|
["attr"]="dmg_addition_all_add",
|
||||||
["op"]="=",
|
["op"]="<",
|
||||||
["v"]=0,
|
["v"]=0,
|
||||||
["side"]=1
|
["side"]=1
|
||||||
}
|
}
|
||||||
@ -24062,7 +24062,7 @@ local skill = {
|
|||||||
{
|
{
|
||||||
["type"]="state",
|
["type"]="state",
|
||||||
["attr"]="vulnerable",
|
["attr"]="vulnerable",
|
||||||
["op"]="=",
|
["op"]="<",
|
||||||
["v"]=0,
|
["v"]=0,
|
||||||
["side"]=1
|
["side"]=1
|
||||||
}
|
}
|
||||||
@ -24252,7 +24252,7 @@ local skill = {
|
|||||||
2,
|
2,
|
||||||
0
|
0
|
||||||
},
|
},
|
||||||
["cd"]=3,
|
["cd"]=2,
|
||||||
["cd_start"]=0,
|
["cd_start"]=0,
|
||||||
["shake_time"]=200,
|
["shake_time"]=200,
|
||||||
["shake_type"]=6,
|
["shake_type"]=6,
|
||||||
@ -24275,7 +24275,7 @@ local skill = {
|
|||||||
{
|
{
|
||||||
["type"]="weaken",
|
["type"]="weaken",
|
||||||
["num"]=2500,
|
["num"]=2500,
|
||||||
["ratio"]=1000,
|
["ratio"]=10000,
|
||||||
["round"]=2
|
["round"]=2
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -24305,7 +24305,7 @@ local skill = {
|
|||||||
{
|
{
|
||||||
["type"]="weaken",
|
["type"]="weaken",
|
||||||
["num"]=2500,
|
["num"]=2500,
|
||||||
["ratio"]=1000,
|
["ratio"]=10000,
|
||||||
["round"]=2
|
["round"]=2
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -24335,7 +24335,7 @@ local skill = {
|
|||||||
{
|
{
|
||||||
["type"]="weaken",
|
["type"]="weaken",
|
||||||
["num"]=2500,
|
["num"]=2500,
|
||||||
["ratio"]=1000,
|
["ratio"]=10000,
|
||||||
["round"]=2
|
["round"]=2
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -24370,7 +24370,7 @@ local skill = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=2,
|
["obj"]=2,
|
||||||
["cd"]=7,
|
["cd"]=4,
|
||||||
["cd_start"]=0,
|
["cd_start"]=0,
|
||||||
["shake_time"]=200,
|
["shake_time"]=200,
|
||||||
["shake_type"]=6,
|
["shake_type"]=6,
|
||||||
@ -24398,8 +24398,8 @@ local skill = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=2,
|
["obj"]=2,
|
||||||
["cd"]=7,
|
["cd"]=4,
|
||||||
["cd_start"]=3,
|
["cd_start"]=2,
|
||||||
["shake_time"]=200,
|
["shake_time"]=200,
|
||||||
["shake_type"]=6,
|
["shake_type"]=6,
|
||||||
["sound_hit"]={
|
["sound_hit"]={
|
||||||
@ -24492,7 +24492,7 @@ local skill = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=2,
|
["obj"]=2,
|
||||||
["cd"]=5,
|
["cd"]=4,
|
||||||
["cd_start"]=0,
|
["cd_start"]=0,
|
||||||
["shake_time"]=200,
|
["shake_time"]=200,
|
||||||
["shake_type"]=6,
|
["shake_type"]=6,
|
||||||
@ -24514,7 +24514,7 @@ local skill = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=2,
|
["obj"]=2,
|
||||||
["cd"]=5,
|
["cd"]=4,
|
||||||
["cd_start"]=1,
|
["cd_start"]=1,
|
||||||
["shake_time"]=200,
|
["shake_time"]=200,
|
||||||
["shake_type"]=6,
|
["shake_type"]=6,
|
||||||
@ -24536,7 +24536,7 @@ local skill = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=2,
|
["obj"]=2,
|
||||||
["cd"]=5,
|
["cd"]=4,
|
||||||
["cd_start"]=2,
|
["cd_start"]=2,
|
||||||
["shake_time"]=200,
|
["shake_time"]=200,
|
||||||
["shake_type"]=6,
|
["shake_type"]=6,
|
||||||
@ -24555,7 +24555,7 @@ local skill = {
|
|||||||
["effect_type"]=1,
|
["effect_type"]=1,
|
||||||
["trigger"]=1,
|
["trigger"]=1,
|
||||||
["obj"]=2,
|
["obj"]=2,
|
||||||
["cd"]=5,
|
["cd"]=4,
|
||||||
["cd_start"]=3,
|
["cd_start"]=3,
|
||||||
["shake_time"]=200,
|
["shake_time"]=200,
|
||||||
["shake_type"]=6,
|
["shake_type"]=6,
|
||||||
@ -24643,7 +24643,7 @@ local skill = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="heal",
|
["type"]="heal",
|
||||||
["num"]=10000,
|
["num"]=100000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=1
|
["round"]=1
|
||||||
}
|
}
|
||||||
@ -24656,7 +24656,7 @@ local skill = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="shield",
|
["type"]="shield",
|
||||||
["num"]=1000,
|
["num"]=2000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=3
|
["round"]=3
|
||||||
},
|
},
|
||||||
@ -24769,10 +24769,22 @@ local skill = {
|
|||||||
["num"]=20000,
|
["num"]=20000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
["type"]="imprison",
|
||||||
|
["num"]=0,
|
||||||
|
["ratio"]=10000,
|
||||||
|
["round"]=2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
["type"]="corrupt",
|
||||||
|
["num"]=7500,
|
||||||
|
["ratio"]=10000,
|
||||||
|
["round"]=2
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=2,
|
["obj"]=2,
|
||||||
["cd"]=4,
|
["cd"]=3,
|
||||||
["cd_start"]=0,
|
["cd_start"]=0,
|
||||||
["shake_time"]=200,
|
["shake_time"]=200,
|
||||||
["shake_type"]=6,
|
["shake_type"]=6,
|
||||||
@ -24796,11 +24808,11 @@ local skill = {
|
|||||||
["type"]="normal_attack_add",
|
["type"]="normal_attack_add",
|
||||||
["num"]=2,
|
["num"]=2,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=2
|
["round"]=3
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=2,
|
["obj"]=1,
|
||||||
["cd"]=4,
|
["cd"]=3,
|
||||||
["cd_start"]=0
|
["cd_start"]=0
|
||||||
},
|
},
|
||||||
[30197]={
|
[30197]={
|
||||||
@ -24884,7 +24896,7 @@ local skill = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=1,
|
["obj"]=1,
|
||||||
["cd"]=11,
|
["cd"]=10,
|
||||||
["cd_start"]=0
|
["cd_start"]=0
|
||||||
},
|
},
|
||||||
[30201]={
|
[30201]={
|
||||||
@ -24899,7 +24911,7 @@ local skill = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=1,
|
["obj"]=1,
|
||||||
["cd"]=11,
|
["cd"]=10,
|
||||||
["cd_start"]=2
|
["cd_start"]=2
|
||||||
},
|
},
|
||||||
[30202]={
|
[30202]={
|
||||||
@ -24914,7 +24926,7 @@ local skill = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=1,
|
["obj"]=1,
|
||||||
["cd"]=11,
|
["cd"]=10,
|
||||||
["cd_start"]=4
|
["cd_start"]=4
|
||||||
},
|
},
|
||||||
[30203]={
|
[30203]={
|
||||||
@ -24929,7 +24941,7 @@ local skill = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=1,
|
["obj"]=1,
|
||||||
["cd"]=11,
|
["cd"]=10,
|
||||||
["cd_start"]=6
|
["cd_start"]=6
|
||||||
},
|
},
|
||||||
[30204]={
|
[30204]={
|
||||||
@ -24944,7 +24956,7 @@ local skill = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=1,
|
["obj"]=1,
|
||||||
["cd"]=11,
|
["cd"]=10,
|
||||||
["cd_start"]=8
|
["cd_start"]=8
|
||||||
},
|
},
|
||||||
[30205]={
|
[30205]={
|
||||||
@ -24953,7 +24965,7 @@ local skill = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="hurt",
|
["type"]="hurt",
|
||||||
["num"]=20000,
|
["num"]=40000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=0
|
||||||
},
|
},
|
||||||
@ -24965,7 +24977,7 @@ local skill = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=2,
|
["obj"]=2,
|
||||||
["cd"]=9,
|
["cd"]=3,
|
||||||
["cd_start"]=0,
|
["cd_start"]=0,
|
||||||
["shake_time"]=200,
|
["shake_time"]=200,
|
||||||
["shake_type"]=6,
|
["shake_type"]=6,
|
||||||
@ -24981,7 +24993,7 @@ local skill = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="hurt",
|
["type"]="hurt",
|
||||||
["num"]=20000,
|
["num"]=40000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=0
|
||||||
},
|
},
|
||||||
@ -24993,8 +25005,8 @@ local skill = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=2,
|
["obj"]=2,
|
||||||
["cd"]=9,
|
["cd"]=3,
|
||||||
["cd_start"]=3,
|
["cd_start"]=1,
|
||||||
["shake_time"]=200,
|
["shake_time"]=200,
|
||||||
["shake_type"]=6,
|
["shake_type"]=6,
|
||||||
["sound_hit"]={
|
["sound_hit"]={
|
||||||
@ -25009,7 +25021,7 @@ local skill = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="hurt",
|
["type"]="hurt",
|
||||||
["num"]=20000,
|
["num"]=40000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=0
|
||||||
},
|
},
|
||||||
@ -25021,8 +25033,8 @@ local skill = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=2,
|
["obj"]=2,
|
||||||
["cd"]=9,
|
["cd"]=3,
|
||||||
["cd_start"]=6,
|
["cd_start"]=2,
|
||||||
["shake_time"]=200,
|
["shake_time"]=200,
|
||||||
["shake_type"]=6,
|
["shake_type"]=6,
|
||||||
["sound_hit"]={
|
["sound_hit"]={
|
||||||
@ -25119,7 +25131,7 @@ local skill = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="shield",
|
["type"]="shield",
|
||||||
["num"]=1000,
|
["num"]=2000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=2
|
["round"]=2
|
||||||
}
|
}
|
||||||
@ -25129,7 +25141,7 @@ local skill = {
|
|||||||
2,
|
2,
|
||||||
0
|
0
|
||||||
},
|
},
|
||||||
["cd"]=4,
|
["cd"]=3,
|
||||||
["cd_start"]=0,
|
["cd_start"]=0,
|
||||||
["shake_time"]=200,
|
["shake_time"]=200,
|
||||||
["shake_type"]=6,
|
["shake_type"]=6,
|
||||||
@ -25155,7 +25167,7 @@ local skill = {
|
|||||||
2,
|
2,
|
||||||
0
|
0
|
||||||
},
|
},
|
||||||
["cd"]=4,
|
["cd"]=3,
|
||||||
["cd_start"]=1,
|
["cd_start"]=1,
|
||||||
["shake_time"]=200,
|
["shake_time"]=200,
|
||||||
["shake_type"]=6,
|
["shake_type"]=6,
|
||||||
@ -25181,7 +25193,7 @@ local skill = {
|
|||||||
2,
|
2,
|
||||||
0
|
0
|
||||||
},
|
},
|
||||||
["cd"]=4,
|
["cd"]=3,
|
||||||
["cd_start"]=2,
|
["cd_start"]=2,
|
||||||
["shake_time"]=200,
|
["shake_time"]=200,
|
||||||
["shake_type"]=6,
|
["shake_type"]=6,
|
||||||
@ -25265,25 +25277,21 @@ local skill = {
|
|||||||
["trigger"]=2,
|
["trigger"]=2,
|
||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="dec_dmg_all_add",
|
["type"]="forever_dec_dmg_all_add",
|
||||||
["num"]=5000,
|
["num"]=5000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=999
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=1
|
["obj"]=1
|
||||||
},
|
},
|
||||||
[30219]={
|
[30219]={
|
||||||
["skill_type"]=9,
|
|
||||||
["skill_type_parameter"]={
|
|
||||||
12500
|
|
||||||
},
|
|
||||||
["effect_type"]=1,
|
["effect_type"]=1,
|
||||||
["trigger"]=1,
|
["trigger"]=1,
|
||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="hurt",
|
["type"]="hurt",
|
||||||
["num"]=20000,
|
["num"]=80000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=0
|
||||||
},
|
},
|
||||||
@ -25299,7 +25307,7 @@ local skill = {
|
|||||||
2,
|
2,
|
||||||
0
|
0
|
||||||
},
|
},
|
||||||
["cd"]=5,
|
["cd"]=4,
|
||||||
["cd_start"]=0,
|
["cd_start"]=0,
|
||||||
["shake_time"]=200,
|
["shake_time"]=200,
|
||||||
["shake_type"]=6,
|
["shake_type"]=6,
|
||||||
@ -25310,6 +25318,10 @@ local skill = {
|
|||||||
["fx_self"]=200099
|
["fx_self"]=200099
|
||||||
},
|
},
|
||||||
[30220]={
|
[30220]={
|
||||||
|
["skill_type"]=9,
|
||||||
|
["skill_type_parameter"]={
|
||||||
|
12500
|
||||||
|
},
|
||||||
["effect_type"]=1,
|
["effect_type"]=1,
|
||||||
["trigger"]=1,
|
["trigger"]=1,
|
||||||
["effect"]={
|
["effect"]={
|
||||||
@ -25325,7 +25337,7 @@ local skill = {
|
|||||||
2,
|
2,
|
||||||
0
|
0
|
||||||
},
|
},
|
||||||
["cd"]=5,
|
["cd"]=4,
|
||||||
["cd_start"]=2,
|
["cd_start"]=2,
|
||||||
["shake_time"]=200,
|
["shake_time"]=200,
|
||||||
["shake_type"]=6,
|
["shake_type"]=6,
|
||||||
@ -25409,10 +25421,10 @@ local skill = {
|
|||||||
["trigger"]=2,
|
["trigger"]=2,
|
||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="thorns",
|
["type"]="forever_thorns",
|
||||||
["num"]=1000,
|
["num"]=1000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=999
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=1
|
["obj"]=1
|
||||||
@ -25422,8 +25434,8 @@ local skill = {
|
|||||||
["trigger"]=1,
|
["trigger"]=1,
|
||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="undead",
|
["type"]="rebirth",
|
||||||
["num"]=0,
|
["num"]=62500,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=2
|
["round"]=2
|
||||||
},
|
},
|
||||||
@ -25439,7 +25451,7 @@ local skill = {
|
|||||||
2,
|
2,
|
||||||
0
|
0
|
||||||
},
|
},
|
||||||
["cd"]=4,
|
["cd"]=6,
|
||||||
["cd_start"]=2,
|
["cd_start"]=2,
|
||||||
["shake_time"]=200,
|
["shake_time"]=200,
|
||||||
["shake_type"]=6,
|
["shake_type"]=6,
|
||||||
@ -25462,7 +25474,7 @@ local skill = {
|
|||||||
2,
|
2,
|
||||||
0
|
0
|
||||||
},
|
},
|
||||||
["cd"]=7,
|
["cd"]=6,
|
||||||
["cd_start"]=0,
|
["cd_start"]=0,
|
||||||
["name_act"]="skill01"
|
["name_act"]="skill01"
|
||||||
},
|
},
|
||||||
@ -25479,7 +25491,7 @@ local skill = {
|
|||||||
2,
|
2,
|
||||||
0
|
0
|
||||||
},
|
},
|
||||||
["cd"]=8,
|
["cd"]=6,
|
||||||
["cd_start"]=1,
|
["cd_start"]=1,
|
||||||
["name_act"]="skill01"
|
["name_act"]="skill01"
|
||||||
},
|
},
|
||||||
@ -25517,6 +25529,38 @@ local skill = {
|
|||||||
["cd_start"]=4,
|
["cd_start"]=4,
|
||||||
["name_act"]="skill01"
|
["name_act"]="skill01"
|
||||||
},
|
},
|
||||||
|
[30230]={
|
||||||
|
["effect_type"]=1,
|
||||||
|
["trigger"]=1,
|
||||||
|
["effect"]={
|
||||||
|
{
|
||||||
|
["type"]="rebirth",
|
||||||
|
["num"]=62500,
|
||||||
|
["ratio"]=10000,
|
||||||
|
["round"]=2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
["type"]="heal",
|
||||||
|
["num"]=125000,
|
||||||
|
["ratio"]=10000,
|
||||||
|
["round"]=1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
["obj"]=1,
|
||||||
|
["skill_position"]={
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
},
|
||||||
|
["cd"]=6,
|
||||||
|
["cd_start"]=5,
|
||||||
|
["shake_time"]=200,
|
||||||
|
["shake_type"]=6,
|
||||||
|
["sound_hit"]={
|
||||||
|
10018
|
||||||
|
},
|
||||||
|
["name_act"]="skill01",
|
||||||
|
["fx_self"]=200099
|
||||||
|
},
|
||||||
[40001]={
|
[40001]={
|
||||||
["effect_type"]=1,
|
["effect_type"]=1,
|
||||||
["trigger"]=1,
|
["trigger"]=1,
|
||||||
@ -30443,6 +30487,6 @@ local skill = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
local config = {
|
local config = {
|
||||||
data=skill,count=1102
|
data=skill,count=1103
|
||||||
}
|
}
|
||||||
return config
|
return config
|
||||||
@ -1636,7 +1636,7 @@ local skill_rogue = {
|
|||||||
["qlt"]=4,
|
["qlt"]=4,
|
||||||
["type"]=1,
|
["type"]=1,
|
||||||
["parameter"]={
|
["parameter"]={
|
||||||
1400325
|
1400425
|
||||||
},
|
},
|
||||||
["skill_position"]=1,
|
["skill_position"]=1,
|
||||||
["icon"]="270"
|
["icon"]="270"
|
||||||
@ -5319,7 +5319,7 @@ local skill_rogue = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="add_skill",
|
["type"]="add_skill",
|
||||||
["num"]=5400321,
|
["num"]=5400421,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=999
|
["round"]=999
|
||||||
}
|
}
|
||||||
@ -5336,7 +5336,7 @@ local skill_rogue = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="add_skill",
|
["type"]="add_skill",
|
||||||
["num"]=5400322,
|
["num"]=5400422,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=1
|
["round"]=1
|
||||||
}
|
}
|
||||||
@ -5353,7 +5353,7 @@ local skill_rogue = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="add_skill",
|
["type"]="add_skill",
|
||||||
["num"]=5400323,
|
["num"]=5400423,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=1
|
["round"]=1
|
||||||
}
|
}
|
||||||
@ -5372,7 +5372,7 @@ local skill_rogue = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="add_skill",
|
["type"]="add_skill",
|
||||||
["num"]=5400324,
|
["num"]=5400424,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=1
|
["round"]=1
|
||||||
}
|
}
|
||||||
@ -5391,7 +5391,7 @@ local skill_rogue = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="add_skill",
|
["type"]="add_skill",
|
||||||
["num"]=5400325,
|
["num"]=5400425,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=999
|
["round"]=999
|
||||||
}
|
}
|
||||||
@ -5408,7 +5408,7 @@ local skill_rogue = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="add_skill",
|
["type"]="add_skill",
|
||||||
["num"]=5400326,
|
["num"]=5400426,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=1
|
["round"]=1
|
||||||
}
|
}
|
||||||
|
|||||||
@ -527,7 +527,31 @@ local localization_global =
|
|||||||
["DUNGEON_RUNE_TIP_4"] = "血量回复至50%",
|
["DUNGEON_RUNE_TIP_4"] = "血量回复至50%",
|
||||||
["DUNGEON_RUNE_TIP_5"] = "回合数+5!",
|
["DUNGEON_RUNE_TIP_5"] = "回合数+5!",
|
||||||
["UNFINISHED"] = "未完成",
|
["UNFINISHED"] = "未完成",
|
||||||
|
["RUNES_DESC_1"] = "符文铸台:{0}级",
|
||||||
|
["RUNES_DESC_2"] = "符文套装",
|
||||||
|
["RUNES_DESC_3"] = "符文铸台{0}级解锁",
|
||||||
|
["RUNES_DESC_4"] = "一键淬炼",
|
||||||
|
["RUNES_DESC_5"] = "淬炼",
|
||||||
|
["RUNES_DESC_6"] = "符文",
|
||||||
|
["RUNES_DESC_7"] = "符文铸台等级",
|
||||||
|
["RUNES_DESC_8"] = "1.消耗符文精粹提升符文铸台等级。\n2.符文铸台等级提升将解锁付文栏,有概率淬炼出高品质符文。\n3.所有英雄符文铸台等级互通。\n4.同一种属性,最多只会出现2条。",
|
||||||
|
["RUNES_DESC_9"] = "符文套装效果",
|
||||||
|
["RUNES_DESC_10"] = "生命套装",
|
||||||
|
["RUNES_DESC_11"] = "攻击套装",
|
||||||
|
["RUNES_DESC_12"] = "增伤套装",
|
||||||
|
["RUNES_DESC_13"] = "暴击套装",
|
||||||
|
["RUNES_DESC_14"] = "爆伤套装",
|
||||||
|
["RUNES_DESC_15"] = "Lv1-2件套:{0}",
|
||||||
|
["RUNES_DESC_16"] = "Lv2-4件套:{0}",
|
||||||
|
["RUNES_DESC_17"] = "符文每日礼包",
|
||||||
|
["RUNES_DESC_18"] = "强化材料不足",
|
||||||
|
["RUNES_DESC_19"] = "符文精华不足,洋葱头也没办法",
|
||||||
|
["RUNES_DESC_20"] = "符文之塔获得",
|
||||||
|
["RUNES_DESC_21"] = "一键淬炼,只有在出现S和SS符文或符文精粹不足时停止,是否开始?",
|
||||||
|
["RUNES_DESC_22"] = "符文属性",
|
||||||
|
["RUNES_DESC_23"] = "无套装效果",
|
||||||
|
["RUNES_DESC_24"] = "请先激活英雄",
|
||||||
|
["RUNES_DESC_25"] = "符文淬炼至少保留1个未锁符文",
|
||||||
["DUNGEON_RUNE_DESC_1"] = "目标",
|
["DUNGEON_RUNE_DESC_1"] = "目标",
|
||||||
["DUNGEON_RUNE_DESC_2"] = "再次挑战",
|
["DUNGEON_RUNE_DESC_2"] = "再次挑战",
|
||||||
["DUNGEON_RUNE_DESC_3"] = "通关获得",
|
["DUNGEON_RUNE_DESC_3"] = "通关获得",
|
||||||
|
|||||||
@ -876,28 +876,28 @@ local skill_rogue = {
|
|||||||
["desc"]="九尾祥瑞激活所需能量<color=#3cff28>-2</color>。"
|
["desc"]="九尾祥瑞激活所需能量<color=#3cff28>-2</color>。"
|
||||||
},
|
},
|
||||||
[2400400]={
|
[2400400]={
|
||||||
["desc"]="解锁双截龙棍:使用后本次伤害提升,并额外造成多次大量技能伤害。"
|
["desc"]="解锁啊,打!:使用后本次伤害提升,并额外造成多次大量技能伤害。"
|
||||||
},
|
},
|
||||||
[2400401]={
|
[2400401]={
|
||||||
["desc"]="双截龙棍技能伤害提升。"
|
["desc"]="啊,打!技能伤害提升。"
|
||||||
},
|
},
|
||||||
[2400402]={
|
[2400402]={
|
||||||
["desc"]="双截龙棍沿+方向可额外消除<color=#3cff28>4</color>格。"
|
["desc"]="啊,打!沿+方向可额外消除<color=#3cff28>4</color>格。"
|
||||||
},
|
},
|
||||||
[2400403]={
|
[2400403]={
|
||||||
["desc"]="龙哥普攻有<color=#3cff28>5%</color>概率附加<color=#3cff28>眩晕</color>效果,<color=#3cff28>1</color>回合。"
|
["desc"]="龙哥普攻有<color=#3cff28>5%</color>概率附加<color=#3cff28>眩晕</color>效果,<color=#3cff28>1</color>回合。"
|
||||||
},
|
},
|
||||||
[2400404]={
|
[2400404]={
|
||||||
["desc"]="双截龙棍沿X方向可额外消除<color=#3cff28>4</color>格。"
|
["desc"]="啊,打!沿X方向可额外消除<color=#3cff28>4</color>格。"
|
||||||
},
|
},
|
||||||
[2400405]={
|
[2400405]={
|
||||||
["desc"]="双截龙棍可附加<color=#3cff28>流血</color>效果,<color=#3cff28>2</color>回合。"
|
["desc"]="啊,打!可附加<color=#3cff28>流血</color>效果,<color=#3cff28>2</color>回合。"
|
||||||
},
|
},
|
||||||
[2400406]={
|
[2400406]={
|
||||||
["desc"]="<color=#fcff28>Combo</color>:龙哥普攻对<color=#3cff28>冰霜</color>和<color=#3cff28>流血</color>敌人额外增伤。"
|
["desc"]="<color=#fcff28>Combo</color>:龙哥普攻对<color=#3cff28>冰霜</color>和<color=#3cff28>流血</color>敌人额外增伤。"
|
||||||
},
|
},
|
||||||
[2400407]={
|
[2400407]={
|
||||||
["desc"]="双截龙棍附加的<color=#3cff28>眩晕</color>效果概率提高至<color=#3cff28>10%</color>,回合数<color=#3cff28>+1</color>。"
|
["desc"]="啊,打!附加的<color=#3cff28>眩晕</color>效果概率提高至<color=#3cff28>10%</color>,回合数<color=#3cff28>+1</color>。"
|
||||||
},
|
},
|
||||||
[3400400]={
|
[3400400]={
|
||||||
["desc"]="解锁刺杀艺术:使用后本次伤害提升,并额外造成多次大量技能伤害。"
|
["desc"]="解锁刺杀艺术:使用后本次伤害提升,并额外造成多次大量技能伤害。"
|
||||||
@ -936,7 +936,7 @@ local skill_rogue = {
|
|||||||
["desc"]="飞棺降物附加的<color=#3cff28>冰霜</color>效果,回合数<color=#3cff28>+1</color>。"
|
["desc"]="飞棺降物附加的<color=#3cff28>冰霜</color>效果,回合数<color=#3cff28>+1</color>。"
|
||||||
},
|
},
|
||||||
[4400404]={
|
[4400404]={
|
||||||
["desc"]="<color=#fcff28>Combo</color>:已逝行者普攻对<color=#3cff28>腐败</color>敌人将恢复生命。"
|
["desc"]="<color=#fcff28>Combo</color>:已逝行者普攻<color=#3cff28>腐败</color>敌人将恢复生命。"
|
||||||
},
|
},
|
||||||
[4400405]={
|
[4400405]={
|
||||||
["desc"]="飞棺降物释放后为团队附加<color=#3cff28>重生</color>效果,<color=#3cff28>1</color>回合。"
|
["desc"]="飞棺降物释放后为团队附加<color=#3cff28>重生</color>效果,<color=#3cff28>1</color>回合。"
|
||||||
|
|||||||
@ -13,6 +13,7 @@ local CONST_PATHS = {
|
|||||||
HeroConst = "app/module/hero/hero_const",
|
HeroConst = "app/module/hero/hero_const",
|
||||||
FormationConst = "app/module/formation/formation_const",
|
FormationConst = "app/module/formation/formation_const",
|
||||||
EquipConst = "app/module/equip/equip_const",
|
EquipConst = "app/module/equip/equip_const",
|
||||||
|
RunesConst = "app/module/runes/runes_const",
|
||||||
DungeonConst = "app/module/dungeon/dungeon_const",
|
DungeonConst = "app/module/dungeon/dungeon_const",
|
||||||
ShopConst = "app/module/shop/shop_const",
|
ShopConst = "app/module/shop/shop_const",
|
||||||
SummonConst = "app/module/summon/summon_const",
|
SummonConst = "app/module/summon/summon_const",
|
||||||
@ -310,7 +311,8 @@ GConst.MESSAGE_BOX_TYPE = {
|
|||||||
GConst.MESSAGE_BOX_SHOW_TODAY = {
|
GConst.MESSAGE_BOX_SHOW_TODAY = {
|
||||||
BOUNTY_BUY_LEVEL = 1,
|
BOUNTY_BUY_LEVEL = 1,
|
||||||
HOT_SELL_BUY = 2,
|
HOT_SELL_BUY = 2,
|
||||||
ACTIVITY_BUY_LEVEL = 2,
|
ACTIVITY_BUY_LEVEL = 3,
|
||||||
|
RUNES_AUTO = 4,
|
||||||
}
|
}
|
||||||
|
|
||||||
GConst.QUALITY_TYPE =
|
GConst.QUALITY_TYPE =
|
||||||
|
|||||||
@ -434,10 +434,27 @@ function GFunc.getBuffDesc(buffName, effectNum, ispercent)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function GFunc.getAttrDesc(attrName, attrNum)
|
function GFunc.getAttrDesc(attrName, attrNum)
|
||||||
attrNum = attrNum // 100
|
attrNum = GFunc.getAttrShowValue(attrName, attrNum, true)
|
||||||
return I18N:getTextWithOtherKey("attr", "name", attrName, "desc", attrNum)
|
return I18N:getTextWithOtherKey("attr", "name", attrName, "desc", attrNum)
|
||||||
end
|
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)
|
||||||
|
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)
|
function GFunc.getAttrName(key)
|
||||||
return I18N:getText("attr", key, "name")
|
return I18N:getText("attr", key, "name")
|
||||||
end
|
end
|
||||||
@ -1821,7 +1838,7 @@ function GFunc.formatPlayerName(name)
|
|||||||
return name
|
return name
|
||||||
end
|
end
|
||||||
|
|
||||||
-- info = {array_heroes, heroes_equips, skins} -- 服务器返回的数据
|
-- info = {array_heroes, heroes_equips, skins, heroes_runes} -- 服务器返回的数据
|
||||||
function GFunc.formatPlayerFormationInfo(info)
|
function GFunc.formatPlayerFormationInfo(info)
|
||||||
local formation = {}
|
local formation = {}
|
||||||
if not info.array_heroes then
|
if not info.array_heroes then
|
||||||
@ -1840,6 +1857,9 @@ function GFunc.formatPlayerFormationInfo(info)
|
|||||||
if not info.skins then
|
if not info.skins then
|
||||||
info.skins = {}
|
info.skins = {}
|
||||||
end
|
end
|
||||||
|
if not info.heroes_runes then
|
||||||
|
info.heroes_runes = {}
|
||||||
|
end
|
||||||
|
|
||||||
for matchType, heroEntity in pairs(formation) do
|
for matchType, heroEntity in pairs(formation) do
|
||||||
local heroId = heroEntity:getCfgId()
|
local heroId = heroEntity:getCfgId()
|
||||||
@ -1868,6 +1888,13 @@ function GFunc.formatPlayerFormationInfo(info)
|
|||||||
if #skinIds > 0 then
|
if #skinIds > 0 then
|
||||||
heroEntity:setSkins(skinIds)
|
heroEntity:setSkins(skinIds)
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
return formation
|
return formation
|
||||||
|
|||||||
@ -20,6 +20,7 @@ BattleConst.SKILL_TYPE_ASSISTING = 3
|
|||||||
BattleConst.SKILL_TYPE_PASSIVE = 4
|
BattleConst.SKILL_TYPE_PASSIVE = 4
|
||||||
BattleConst.SKILL_SELECT_COUNT = 3
|
BattleConst.SKILL_SELECT_COUNT = 3
|
||||||
BattleConst.DEFAULT_FACTOR = 10000
|
BattleConst.DEFAULT_FACTOR = 10000
|
||||||
|
BattleConst.PERCENT_FACTOR = 100
|
||||||
BattleConst.TIME_FACTOR = 1000
|
BattleConst.TIME_FACTOR = 1000
|
||||||
BattleConst.INIT_POS_X = 140 -- 战斗单位初始化的坐标
|
BattleConst.INIT_POS_X = 140 -- 战斗单位初始化的坐标
|
||||||
BattleConst.UNIT_FRONT_POS_X = 0 -- 战斗单位身前的坐标
|
BattleConst.UNIT_FRONT_POS_X = 0 -- 战斗单位身前的坐标
|
||||||
|
|||||||
@ -1,5 +1,14 @@
|
|||||||
local HeroConst = {}
|
local HeroConst = {}
|
||||||
|
|
||||||
|
-- 英雄颜色类型
|
||||||
|
HeroConst.MATCH_TYPE = {
|
||||||
|
RED = 1,
|
||||||
|
YELLOW = 2,
|
||||||
|
GREEN = 3,
|
||||||
|
BLUE = 4,
|
||||||
|
PURPLE = 5
|
||||||
|
}
|
||||||
|
|
||||||
HeroConst.MATCH_ICON_NAME = {
|
HeroConst.MATCH_ICON_NAME = {
|
||||||
[1] = "match_1",
|
[1] = "match_1",
|
||||||
[2] = "match_2",
|
[2] = "match_2",
|
||||||
@ -21,7 +30,7 @@ HeroConst.PANEL_TYPE = {
|
|||||||
HERO = 1,
|
HERO = 1,
|
||||||
WEAPON = 2,
|
WEAPON = 2,
|
||||||
ARMOR = 3,
|
ARMOR = 3,
|
||||||
SKIN = 4,
|
RUNES = 4,
|
||||||
}
|
}
|
||||||
|
|
||||||
-- 总计
|
-- 总计
|
||||||
@ -70,6 +79,18 @@ HeroConst.ATTR_SHOW_SKIN = {
|
|||||||
GConst.MATCH_SKILL_HURTP_NAME, -- 技能增伤百分比
|
GConst.MATCH_SKILL_HURTP_NAME, -- 技能增伤百分比
|
||||||
GConst.MATCH_CURED_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 = {
|
HeroConst.SHOW_NODE = {
|
||||||
@ -77,6 +98,7 @@ HeroConst.SHOW_NODE = {
|
|||||||
HeroConst.ATTR_SHOW_BASE,
|
HeroConst.ATTR_SHOW_BASE,
|
||||||
HeroConst.ATTR_SHOW_WEAPON,
|
HeroConst.ATTR_SHOW_WEAPON,
|
||||||
HeroConst.ATTR_SHOW_ARMOR,
|
HeroConst.ATTR_SHOW_ARMOR,
|
||||||
|
HeroConst.ATTR_SHOW_RUNES,
|
||||||
HeroConst.ATTR_SHOW_SKIN,
|
HeroConst.ATTR_SHOW_SKIN,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,11 @@
|
|||||||
local HeroManager = class("HeroManager", BaseModule)
|
local HeroManager = class("HeroManager", BaseModule)
|
||||||
|
|
||||||
function HeroManager:showHeroDetailUI(heroId, onlyLook, heroEntity, skinId, formationType)
|
function HeroManager:showHeroDetailUI(heroId, onlyLook, heroEntity, formationType)
|
||||||
UIManager:showUI("app/ui/hero/hero_detail_ui", {heroId = heroId, onlyLook = onlyLook, heroEntity = heroEntity, skinId = skinId, formationType = 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
|
end
|
||||||
|
|
||||||
function HeroManager:showHeroUnlockUI(heroIdList)
|
function HeroManager:showHeroUnlockUI(heroIdList)
|
||||||
|
|||||||
@ -19,6 +19,7 @@ ItemConst.ITEM_ID_ARENA_TICKET = 22
|
|||||||
ItemConst.ITEM_ID_FOURTEEN_DAY_EXCHANGE = 51
|
ItemConst.ITEM_ID_FOURTEEN_DAY_EXCHANGE = 51
|
||||||
ItemConst.ITEM_ID_GLOD_WING = 49
|
ItemConst.ITEM_ID_GLOD_WING = 49
|
||||||
ItemConst.ITEM_ID_SLIVER_WING = 50
|
ItemConst.ITEM_ID_SLIVER_WING = 50
|
||||||
|
ItemConst.ITEM_ID_RUNES = 55
|
||||||
|
|
||||||
ItemConst.ITEM_TYPE = {
|
ItemConst.ITEM_TYPE = {
|
||||||
RES = 1,
|
RES = 1,
|
||||||
|
|||||||
8
lua/app/module/runes.meta
Normal file
8
lua/app/module/runes.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 18d45baac20fe4d4b8f98e500a15c222
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
29
lua/app/module/runes/runes_const.lua
Normal file
29
lua/app/module/runes/runes_const.lua
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
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.MAX_ATTR_GRID_COUNT = 6
|
||||||
|
-- 品质个数
|
||||||
|
RunesConst.MAX_QUALITY_COUNT = 8
|
||||||
|
-- 最大套装个数
|
||||||
|
RunesConst.MAX_SUITS_COUNT = 5
|
||||||
|
-- 最大符文种类个数
|
||||||
|
RunesConst.MAX_ATTR_COUNT = 11
|
||||||
|
|
||||||
|
return RunesConst
|
||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 7209380a6f275fe4fa7fd87e464fde53
|
guid: 4bda2a68bd04f8e4993df04a2b3878c7
|
||||||
ScriptedImporter:
|
ScriptedImporter:
|
||||||
internalIDToNameTable: []
|
internalIDToNameTable: []
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
45
lua/app/module/runes/runes_manager.lua
Normal file
45
lua/app/module/runes/runes_manager.lua
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
local RunesManager = class("RunesManager", BaseModule)
|
||||||
|
|
||||||
|
-- 锁定和解锁属性栏
|
||||||
|
function RunesManager:reqChangeLockGrid(heroId, index, isLock)
|
||||||
|
self:sendMessage(ProtoMsgType.FromMsgEnum.RuneLockReq, {hero_id = heroId, grid_num = index, lock = isLock}, {}, self.rspChangeLockGrid)
|
||||||
|
end
|
||||||
|
|
||||||
|
function RunesManager:rspChangeLockGrid(result)
|
||||||
|
if result.hero_girds then
|
||||||
|
DataManager.RunesData:onGridLockSuccess(result.reqData.hero_id, result.hero_girds.grids)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 淬炼
|
||||||
|
function RunesManager:reqQuenching(heroId, autoCount)
|
||||||
|
if DataManager.RunesData:getRunes(heroId):getAttrLockCount() >= DataManager.RunesData:getUnlockCount() then
|
||||||
|
GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_25))
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if self.isReqQuenching then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local cost = DataManager.RunesData:getRunes(heroId):getMaterialCost()
|
||||||
|
if not GFunc.checkCost(GFunc.getRewardId(cost), GFunc.getRewardNum(cost), true) then
|
||||||
|
UIManager:showUI("app/ui/runes/runes_source_ui")
|
||||||
|
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)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function RunesManager:rspUpdate(result)
|
||||||
|
DataManager.RunesData:init(result.rune)
|
||||||
|
end
|
||||||
|
|
||||||
|
return RunesManager
|
||||||
10
lua/app/module/runes/runes_manager.lua.meta
Normal file
10
lua/app/module/runes/runes_manager.lua.meta
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 88f86325d3b00894d8fb5beb962a5ac0
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
@ -48,7 +48,7 @@ function TipsManager:showRewardTips(rewardId, rewardType, tarPrefabObj, alignTyp
|
|||||||
return
|
return
|
||||||
elseif info.type == GConst.ItemConst.ITEM_TYPE.SKIN then
|
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
|
return
|
||||||
elseif info.type == GConst.ItemConst.ITEM_TYPE.RANDOM_BOX_ITEM or info.type == GConst.ItemConst.ITEM_TYPE.FIXED_BOX_ITEM then
|
elseif info.type == GConst.ItemConst.ITEM_TYPE.RANDOM_BOX_ITEM or info.type == GConst.ItemConst.ITEM_TYPE.FIXED_BOX_ITEM then
|
||||||
self:showBoxItemTips(rewardId)
|
self:showBoxItemTips(rewardId)
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
local AttrCell = class("AttrCell", BaseCell)
|
local AttrCell = class("AttrCell", BaseCell)
|
||||||
local DEFAULT_FACTOR = GConst.BattleConst.DEFAULT_FACTOR
|
|
||||||
local PERCENT_FACTOR = 100
|
|
||||||
|
|
||||||
function AttrCell:init()
|
function AttrCell:init()
|
||||||
local uiMap = self:getUIMap()
|
local uiMap = self:getUIMap()
|
||||||
@ -63,9 +61,11 @@ function AttrCell:showHp()
|
|||||||
value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getHp()
|
value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getHp()
|
||||||
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
||||||
value = value + DataManager.SkinData:getHp(self.heroEntity)
|
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
|
end
|
||||||
|
|
||||||
self.txValue:setText(value // DEFAULT_FACTOR)
|
self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 显示攻击力
|
-- 显示攻击力
|
||||||
@ -95,9 +95,11 @@ function AttrCell:showAtk()
|
|||||||
value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getAttack()
|
value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getAttack()
|
||||||
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
||||||
value = value + DataManager.SkinData:getAttack(self.heroEntity)
|
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
|
end
|
||||||
|
|
||||||
self.txValue:setText(value // DEFAULT_FACTOR)
|
self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 显示普攻增伤
|
-- 显示普攻增伤
|
||||||
@ -117,9 +119,11 @@ function AttrCell:showNormalHurt()
|
|||||||
value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getNormalHurt()
|
value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getNormalHurt()
|
||||||
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
||||||
value = value + DataManager.SkinData:getNormalHurt(self.heroEntity)
|
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
|
end
|
||||||
|
|
||||||
self.txValue:setText(value // DEFAULT_FACTOR)
|
self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 显示技能增伤
|
-- 显示技能增伤
|
||||||
@ -139,9 +143,11 @@ function AttrCell:showSkillHurt()
|
|||||||
value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getSkillHurt()
|
value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getSkillHurt()
|
||||||
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
||||||
value = value + DataManager.SkinData:getSkillHurt(self.heroEntity)
|
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
|
end
|
||||||
|
|
||||||
self.txValue:setText(value // DEFAULT_FACTOR)
|
self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 显示暴击率
|
-- 显示暴击率
|
||||||
@ -158,9 +164,11 @@ function AttrCell:showCrit()
|
|||||||
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_ARMOR then
|
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_ARMOR then
|
||||||
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
||||||
value = value + DataManager.SkinData:getCritPercent(self.heroEntity)
|
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
|
end
|
||||||
|
|
||||||
self.txValue:setText(value // PERCENT_FACTOR .. "%")
|
self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 显示暴击伤害百分比
|
-- 显示暴击伤害百分比
|
||||||
@ -177,9 +185,11 @@ function AttrCell:showCritAtk()
|
|||||||
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_ARMOR then
|
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_ARMOR then
|
||||||
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
||||||
value = value + DataManager.SkinData:getCritHurtPercent(self.heroEntity)
|
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
|
end
|
||||||
|
|
||||||
self.txValue:setText(value // PERCENT_FACTOR .. "%")
|
self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 显示普攻增伤百分比
|
-- 显示普攻增伤百分比
|
||||||
@ -200,9 +210,11 @@ function AttrCell:showNormalHurtp()
|
|||||||
-- value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getNormalHurtPercent()
|
-- value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getNormalHurtPercent()
|
||||||
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
||||||
value = value + DataManager.SkinData:getNormalHurtPercent(self.heroEntity)
|
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
|
end
|
||||||
|
|
||||||
self.txValue:setText(value // PERCENT_FACTOR .. "%")
|
self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 显示技能增伤百分比
|
-- 显示技能增伤百分比
|
||||||
@ -223,9 +235,11 @@ function AttrCell:showSkillHurtp()
|
|||||||
-- value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getSkillHurtPercent()
|
-- value = value + self.heroEntity:getEquips(GConst.EquipConst.PART_TYPE.HANDGUARD):getSkillHurtPercent()
|
||||||
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
||||||
value = value + DataManager.SkinData:getSkillHurtPercent(self.heroEntity)
|
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
|
end
|
||||||
|
|
||||||
self.txValue:setText(value // PERCENT_FACTOR .. "%")
|
self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 显示治疗效果提升百分比
|
-- 显示治疗效果提升百分比
|
||||||
@ -242,9 +256,11 @@ function AttrCell:showCured()
|
|||||||
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_ARMOR then
|
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_ARMOR then
|
||||||
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
elseif self.nodeType == GConst.HeroConst.ATTR_SHOW_SKIN then
|
||||||
value = value + DataManager.SkinData:getHealPercent(self.heroEntity)
|
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
|
end
|
||||||
|
|
||||||
self.txValue:setText(value // PERCENT_FACTOR .. "%")
|
self.txValue:setText(GFunc.getAttrShowValue(self.attrName, value))
|
||||||
end
|
end
|
||||||
|
|
||||||
return AttrCell
|
return AttrCell
|
||||||
@ -20,11 +20,13 @@ function AttrNodeCell:refresh(heroEntity, node)
|
|||||||
self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_DESC_16))
|
self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_DESC_16))
|
||||||
elseif node == GConst.HeroConst.ATTR_SHOW_SKIN then
|
elseif node == GConst.HeroConst.ATTR_SHOW_SKIN then
|
||||||
self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_DESC_17))
|
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
|
end
|
||||||
|
|
||||||
self.attrCount = 0
|
self.attrCount = 0
|
||||||
for index, attr in ipairs(node) do
|
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
|
self.attrCount = self.attrCount + 1
|
||||||
CellManager:loadCellAsync(ATTR_CELL_PATH, ATTR_CELL, self.itemsRoot, function(cell)
|
CellManager:loadCellAsync(ATTR_CELL_PATH, ATTR_CELL, self.itemsRoot, function(cell)
|
||||||
cell:refresh(heroEntity, node, attr)
|
cell:refresh(heroEntity, node, attr)
|
||||||
@ -33,6 +35,18 @@ function AttrNodeCell:refresh(heroEntity, node)
|
|||||||
end
|
end
|
||||||
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()
|
function AttrNodeCell:getShowAttrCount()
|
||||||
return self.attrCount
|
return self.attrCount
|
||||||
|
|||||||
@ -44,7 +44,7 @@ function HeroAttrUI:onRefresh()
|
|||||||
local totalHeight = 0
|
local totalHeight = 0
|
||||||
for index, node in ipairs(GConst.HeroConst.SHOW_NODE) do
|
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)
|
CellManager:loadCellAsync(ATTR_NODE_CELL_PATH, ATTR_NODE_CELL, self.rootNodes, function(cell)
|
||||||
cell:refresh(self.heroEntity, node)
|
cell:refresh(self.heroEntity, node)
|
||||||
|
|
||||||
@ -60,4 +60,17 @@ function HeroAttrUI:onRefresh()
|
|||||||
self.rootNodes:setAnchoredPositionY(0)
|
self.rootNodes:setAnchoredPositionY(0)
|
||||||
end
|
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
|
return HeroAttrUI
|
||||||
@ -58,7 +58,7 @@ function HeroComp:init()
|
|||||||
if heroId then
|
if heroId then
|
||||||
local hero = DataManager.HeroData:getHeroById(heroId)
|
local hero = DataManager.HeroData:getHeroById(heroId)
|
||||||
if hero then
|
if hero then
|
||||||
ModuleManager.HeroManager:showHeroDetailUI(heroId, nil, nil, nil, self.battleType)
|
ModuleManager.HeroManager:showHeroDetailUI(heroId, nil, nil, self.battleType)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
@ -265,7 +265,7 @@ function HeroComp:onClickHero(cell, heroId)
|
|||||||
self.largeHeroCell:refresh(entity, not entity:isActived(), self.onClickUseFunc)
|
self.largeHeroCell:refresh(entity, not entity:isActived(), self.onClickUseFunc)
|
||||||
self.largeHeroCell:showCheck(self.curFormation[entity:getMatchType()] == heroId)
|
self.largeHeroCell:showCheck(self.curFormation[entity:getMatchType()] == heroId)
|
||||||
else
|
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)
|
self.largeHeroCell:getBaseObject():setAnchoredPositionX(OUT_SCREEN_X)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
|||||||
@ -2,10 +2,9 @@ local HeroDetailUI = class("HeroDetailUI", BaseUI)
|
|||||||
local COMP_HERO = "app/ui/hero/hero_info_comp"
|
local COMP_HERO = "app/ui/hero/hero_info_comp"
|
||||||
local COMP_WEAPON = "app/ui/hero/weapon_info_comp"
|
local COMP_WEAPON = "app/ui/hero/weapon_info_comp"
|
||||||
local COMP_ARMOR = "app/ui/hero/armor_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_HERO = 942
|
||||||
local SIZE_DELTA_Y_LOOK_HERO = 802
|
local SIZE_DELTA_Y_LOOK_HERO = 802
|
||||||
local SIZE_DELTA_Y_LOOK_SKIN = 720
|
|
||||||
|
|
||||||
function HeroDetailUI:isFullScreen()
|
function HeroDetailUI:isFullScreen()
|
||||||
return false
|
return false
|
||||||
@ -20,12 +19,7 @@ function HeroDetailUI:onPressBackspace()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function HeroDetailUI:ctor(parmas)
|
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
|
self.panelType = parmas.panelType or GConst.HeroConst.PANEL_TYPE.HERO
|
||||||
end
|
|
||||||
self.formationType = parmas.formationType
|
self.formationType = parmas.formationType
|
||||||
self.onlyLook = parmas.onlyLook
|
self.onlyLook = parmas.onlyLook
|
||||||
if parmas.heroEntity then
|
if parmas.heroEntity then
|
||||||
@ -43,9 +37,10 @@ function HeroDetailUI:onLoadRootComplete()
|
|||||||
self.heroInfo = uiMap["hero_detail_ui.hero_info"]
|
self.heroInfo = uiMap["hero_detail_ui.hero_info"]
|
||||||
self.weaponInfo = uiMap["hero_detail_ui.weapon_info"]
|
self.weaponInfo = uiMap["hero_detail_ui.weapon_info"]
|
||||||
self.armorInfo = uiMap["hero_detail_ui.armor_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.txTitle = uiMap["hero_detail_ui.common.img_title.tx_title"]
|
||||||
self.btnClose = uiMap["hero_detail_ui.common.btn_close"]
|
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.btnHero = uiMap["hero_detail_ui.common.btns.btn_hero"]
|
||||||
self.txHero1 = uiMap["hero_detail_ui.common.btns.btn_hero.tx_btn"]
|
self.txHero1 = uiMap["hero_detail_ui.common.btns.btn_hero.tx_btn"]
|
||||||
self.selectHero = uiMap["hero_detail_ui.common.btns.btn_hero.select"]
|
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.txArmor1 = uiMap["hero_detail_ui.common.btns.btn_armor.tx_btn"]
|
||||||
self.selectArmor = uiMap["hero_detail_ui.common.btns.btn_armor.select"]
|
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.txArmor2 = uiMap["hero_detail_ui.common.btns.btn_armor.select.tx_select"]
|
||||||
self.btnSkin = uiMap["hero_detail_ui.common.btns.btn_skin"]
|
self.btnRunes = uiMap["hero_detail_ui.common.btns.btn_runes"]
|
||||||
self.lockSkin = uiMap["hero_detail_ui.common.btns.btn_skin.content.img_lock"]
|
self.lockRunes = uiMap["hero_detail_ui.common.btns.btn_runes.content.img_lock"]
|
||||||
self.txSkin1 = uiMap["hero_detail_ui.common.btns.btn_skin.content.tx_btn"]
|
self.txRunes1 = uiMap["hero_detail_ui.common.btns.btn_runes.content.tx_btn"]
|
||||||
self.selectSkin = uiMap["hero_detail_ui.common.btns.btn_skin.select"]
|
self.selectRunes = uiMap["hero_detail_ui.common.btns.btn_runes.select"]
|
||||||
self.txSkin2 = uiMap["hero_detail_ui.common.btns.btn_skin.select.tx_select"]
|
self.txRunes2 = uiMap["hero_detail_ui.common.btns.btn_runes.select.tx_select"]
|
||||||
self.btnLeft = uiMap["hero_detail_ui.common.btn_left"]
|
self.btnLeft = uiMap["hero_detail_ui.common.btn_left"]
|
||||||
self.btnRight = uiMap["hero_detail_ui.common.btn_right"]
|
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.txWeapon2:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_DESC_1))
|
||||||
self.txArmor1:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_DESC_2))
|
self.txArmor1:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_DESC_2))
|
||||||
self.txArmor2: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.txRunes1:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_6))
|
||||||
self.txSkin2:setText(I18N:getGlobalText(I18N.GlobalConst.SKIN))
|
self.txRunes2:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_6))
|
||||||
if not DataManager.EquipData:isWeaponOpen() then
|
if not DataManager.EquipData:isWeaponOpen() then
|
||||||
self.lockWeapon:setVisible(true)
|
self.lockWeapon:setVisible(true)
|
||||||
GFunc.centerImgAndTx(self.lockWeapon, self.txWeapon1, 5)
|
GFunc.centerImgAndTx(self.lockWeapon, self.txWeapon1, 5)
|
||||||
@ -88,11 +83,11 @@ function HeroDetailUI:onLoadRootComplete()
|
|||||||
else
|
else
|
||||||
self.lockArmor:setVisible(false)
|
self.lockArmor:setVisible(false)
|
||||||
end
|
end
|
||||||
if not DataManager.SkinData:isOpen() then
|
if not DataManager.RunesData:isOpen() then
|
||||||
self.lockSkin:setVisible(true)
|
self.lockRunes:setVisible(true)
|
||||||
GFunc.centerImgAndTx(self.lockSkin, self.txSkin1, 5)
|
GFunc.centerImgAndTx(self.lockRunes, self.txRunes1, 5)
|
||||||
else
|
else
|
||||||
self.lockSkin:setVisible(false)
|
self.lockRunes:setVisible(false)
|
||||||
end
|
end
|
||||||
|
|
||||||
self.heroList = DataManager.HeroData:getAllHeroesSort(self.formationType)
|
self.heroList = DataManager.HeroData:getAllHeroesSort(self.formationType)
|
||||||
@ -117,18 +112,22 @@ function HeroDetailUI:onLoadRootComplete()
|
|||||||
self.panelType = GConst.HeroConst.PANEL_TYPE.ARMOR
|
self.panelType = GConst.HeroConst.PANEL_TYPE.ARMOR
|
||||||
self:refreshShow()
|
self:refreshShow()
|
||||||
end)
|
end)
|
||||||
self.btnSkin:addClickListener(function()
|
self.btnRunes:addClickListener(function()
|
||||||
if not DataManager.SkinData:isOpen(true) then
|
if not DataManager.RunesData:isOpen(true) then
|
||||||
return
|
return
|
||||||
end
|
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()
|
self:refreshShow()
|
||||||
end)
|
end)
|
||||||
self.btnClose:addClickListener(function()
|
self.btnClose:addClickListener(function()
|
||||||
self:closeUI()
|
self:closeUI()
|
||||||
end)
|
end)
|
||||||
self.btnLeft:addClickListener(function()
|
self.btnLeft:addClickListener(function()
|
||||||
if not self:isExistLeftHero() then
|
if not self:isShowLeftArrow() then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
self.heroEntity = DataManager.HeroData:getHeroById(self.heroList[self.idxLast].cfgId)
|
self.heroEntity = DataManager.HeroData:getHeroById(self.heroList[self.idxLast].cfgId)
|
||||||
@ -136,7 +135,7 @@ function HeroDetailUI:onLoadRootComplete()
|
|||||||
self:refreshShow()
|
self:refreshShow()
|
||||||
end)
|
end)
|
||||||
self.btnRight:addClickListener(function()
|
self.btnRight:addClickListener(function()
|
||||||
if not self:isExistRightHero() then
|
if not self:isShowRightArrow() then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
self.heroEntity = DataManager.HeroData:getHeroById(self.heroList[self.idxNext].cfgId)
|
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:addEventListener(EventManager.CUSTOM_EVENT.GO_DUNGEON_UI, function()
|
||||||
self:closeUI()
|
self:closeUI()
|
||||||
end)
|
end)
|
||||||
self:addEventListener(EventManager.CUSTOM_EVENT.SKIN_SELECT, function(skinId)
|
|
||||||
self.compSkin:refreshSelectSkin(skinId)
|
|
||||||
end)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function HeroDetailUI:updateSide()
|
function HeroDetailUI:updateSide()
|
||||||
@ -190,28 +186,26 @@ function HeroDetailUI:refreshShow()
|
|||||||
self:showWeaponInfo()
|
self:showWeaponInfo()
|
||||||
elseif self.panelType == GConst.HeroConst.PANEL_TYPE.ARMOR then
|
elseif self.panelType == GConst.HeroConst.PANEL_TYPE.ARMOR then
|
||||||
self:showArmorInfo()
|
self:showArmorInfo()
|
||||||
elseif self.panelType == GConst.HeroConst.PANEL_TYPE.SKIN then
|
elseif self.panelType == GConst.HeroConst.PANEL_TYPE.RUNES then
|
||||||
self:showSkinInfo()
|
self:showRunesInfo()
|
||||||
end
|
end
|
||||||
if self.onlyLook then -- 仅查看的不显示升级和激活按钮
|
if self.onlyLook then -- 仅查看的不显示升级和激活按钮
|
||||||
self.btnHero:setActive(false)
|
self.btnHero:setActive(false)
|
||||||
self.btnWeapon:setActive(false)
|
self.btnWeapon:setActive(false)
|
||||||
self.btnArmor:setActive(false)
|
self.btnArmor:setActive(false)
|
||||||
self.btnSkin:setActive(false)
|
self.btnRunes:setActive(false)
|
||||||
self.btnLeft:setActive(false)
|
self.btnLeft:setActive(false)
|
||||||
self.btnRight:setActive(false)
|
self.btnRight:setActive(false)
|
||||||
if self.panelType == GConst.HeroConst.PANEL_TYPE.HERO then
|
if self.panelType == GConst.HeroConst.PANEL_TYPE.HERO then
|
||||||
self.commonInfo:setSizeDeltaY(SIZE_DELTA_Y_LOOK_HERO)
|
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
|
end
|
||||||
else
|
else
|
||||||
self.btnHero:setActive(true)
|
self.btnHero:setActive(true)
|
||||||
self.btnWeapon:setActive(true)
|
self.btnWeapon:setActive(true)
|
||||||
self.btnArmor:setActive(true)
|
self.btnArmor:setActive(true)
|
||||||
self.btnSkin:setActive(true)
|
self.btnRunes:setActive(true)
|
||||||
self.btnLeft:setActive(self:isExistLeftHero())
|
self.btnLeft:setActive(self:isShowLeftArrow())
|
||||||
self.btnRight:setActive(self:isExistRightHero())
|
self.btnRight:setActive(self:isShowRightArrow())
|
||||||
self.commonInfo:setSizeDeltaY(SIZE_DELTA_Y_HERO)
|
self.commonInfo:setSizeDeltaY(SIZE_DELTA_Y_HERO)
|
||||||
self:refreshRedPoint()
|
self:refreshRedPoint()
|
||||||
end
|
end
|
||||||
@ -243,8 +237,9 @@ function HeroDetailUI:showHeroInfo()
|
|||||||
self.selectWeapon:setActive(false)
|
self.selectWeapon:setActive(false)
|
||||||
self.armorInfo:setActive(false)
|
self.armorInfo:setActive(false)
|
||||||
self.selectArmor:setActive(false)
|
self.selectArmor:setActive(false)
|
||||||
self.skinInfo:setActive(false)
|
self.runesInfo:setActive(false)
|
||||||
self.selectSkin:setActive(false)
|
self.selectRunes:setActive(false)
|
||||||
|
self.bg:setActive(true)
|
||||||
|
|
||||||
if not self.compHero then
|
if not self.compHero then
|
||||||
self.heroInfo:initPrefabHelper()
|
self.heroInfo:initPrefabHelper()
|
||||||
@ -263,8 +258,9 @@ function HeroDetailUI:showWeaponInfo()
|
|||||||
self.selectWeapon:setActive(true)
|
self.selectWeapon:setActive(true)
|
||||||
self.armorInfo:setActive(false)
|
self.armorInfo:setActive(false)
|
||||||
self.selectArmor:setActive(false)
|
self.selectArmor:setActive(false)
|
||||||
self.skinInfo:setActive(false)
|
self.runesInfo:setActive(false)
|
||||||
self.selectSkin:setActive(false)
|
self.selectRunes:setActive(false)
|
||||||
|
self.bg:setActive(true)
|
||||||
|
|
||||||
if not self.compWeapon then
|
if not self.compWeapon then
|
||||||
self.weaponInfo:initPrefabHelper()
|
self.weaponInfo:initPrefabHelper()
|
||||||
@ -284,8 +280,9 @@ function HeroDetailUI:showArmorInfo()
|
|||||||
self.selectWeapon:setActive(false)
|
self.selectWeapon:setActive(false)
|
||||||
self.armorInfo:setActive(true)
|
self.armorInfo:setActive(true)
|
||||||
self.selectArmor:setActive(true)
|
self.selectArmor:setActive(true)
|
||||||
self.skinInfo:setActive(false)
|
self.runesInfo:setActive(false)
|
||||||
self.selectSkin:setActive(false)
|
self.selectRunes:setActive(false)
|
||||||
|
self.bg:setActive(true)
|
||||||
|
|
||||||
if not self.compArmor then
|
if not self.compArmor then
|
||||||
self.armorInfo:initPrefabHelper()
|
self.armorInfo:initPrefabHelper()
|
||||||
@ -298,34 +295,42 @@ function HeroDetailUI:showArmorInfo()
|
|||||||
self.compArmor:refresh()
|
self.compArmor:refresh()
|
||||||
end
|
end
|
||||||
|
|
||||||
function HeroDetailUI:showSkinInfo()
|
function HeroDetailUI:showRunesInfo()
|
||||||
self.heroInfo:setActive(false)
|
self.heroInfo:setActive(false)
|
||||||
self.selectHero:setActive(false)
|
self.selectHero:setActive(false)
|
||||||
self.weaponInfo:setActive(false)
|
self.weaponInfo:setActive(false)
|
||||||
self.selectWeapon:setActive(false)
|
self.selectWeapon:setActive(false)
|
||||||
self.armorInfo:setActive(false)
|
self.armorInfo:setActive(false)
|
||||||
self.selectArmor:setActive(false)
|
self.selectArmor:setActive(false)
|
||||||
self.skinInfo:setActive(true)
|
self.runesInfo:setActive(true)
|
||||||
self.selectSkin:setActive(true)
|
self.selectRunes:setActive(true)
|
||||||
|
self.bg:setActive(false)
|
||||||
|
|
||||||
if not self.compSkin then
|
if not self.compRunes then
|
||||||
self.skinInfo:initPrefabHelper()
|
self.runesInfo:initPrefabHelper()
|
||||||
self.skinInfo:genAllChildren()
|
self.runesInfo:genAllChildren()
|
||||||
self.compSkin = self.skinInfo:addLuaComponent(COMP_SKIN)
|
self.compRunes = self.runesInfo:addLuaComponent(COMP_RUNES)
|
||||||
self.compSkin:setUI(self)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
self.compSkin:setHeroData(self.heroEntity, self.onlyLookSkinId)
|
self.compRunes:setHeroData(self.heroEntity)
|
||||||
self.compSkin:refresh()
|
self.compRunes:refresh()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 是否显示左箭头
|
||||||
|
function HeroDetailUI:isShowLeftArrow()
|
||||||
|
if self.panelType == GConst.HeroConst.PANEL_TYPE.RUNES then
|
||||||
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 是否存在左侧英雄
|
|
||||||
function HeroDetailUI:isExistLeftHero()
|
|
||||||
return self.idxLast and self.idxLast > 0
|
return self.idxLast and self.idxLast > 0
|
||||||
end
|
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
|
return self.idxNext and self.idxNext <= #self.heroList
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -34,6 +34,8 @@ function HeroInfoComp:init()
|
|||||||
self.bgElement = uiMap["hero_detail_ui.bg.element_bg"]
|
self.bgElement = uiMap["hero_detail_ui.bg.element_bg"]
|
||||||
self.btnAttr = uiMap["hero_info.bg_6.btn_attr"]
|
self.btnAttr = uiMap["hero_info.bg_6.btn_attr"]
|
||||||
self.fragmentNode = uiMap["hero_detail_ui.bg.fragment_bg"]
|
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.skill = {}
|
||||||
self.skillIcon = {}
|
self.skillIcon = {}
|
||||||
@ -47,7 +49,12 @@ function HeroInfoComp:init()
|
|||||||
self.spineObjSkill:setVisible(false)
|
self.spineObjSkill:setVisible(false)
|
||||||
self.spineObjLv:setVisible(false)
|
self.spineObjLv:setVisible(false)
|
||||||
self.spineObj: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()
|
self.btnUp:addClickListener(function()
|
||||||
ModuleManager.HeroManager:upgradeHero(self.heroEntity:getCfgId(), self.heroEntity)
|
ModuleManager.HeroManager:upgradeHero(self.heroEntity:getCfgId(), self.heroEntity)
|
||||||
end)
|
end)
|
||||||
|
|||||||
@ -1,13 +1,37 @@
|
|||||||
local SkinInfoComp = class("SkinInfoComp", LuaComponent)
|
local HeroSkinUI = class("HeroSkinUI", BaseUI)
|
||||||
local DEFAULT_FACTOR = GConst.BattleConst.DEFAULT_FACTOR
|
|
||||||
local PERCENT_FACTOR = 100
|
|
||||||
|
|
||||||
local SIZE_DELTA_Y_SKIN = 942
|
local SIZE_DELTA_Y_SKIN = 942
|
||||||
local SIZE_DELTA_Y_LOOK = 720
|
local SIZE_DELTA_Y_LOOK = 720
|
||||||
|
|
||||||
function SkinInfoComp:init()
|
function HeroSkinUI:isFullScreen()
|
||||||
local uiMap = self:getUIMap()
|
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.txName = uiMap["skin_info.name.tx_name"]
|
||||||
self.bgQlt = uiMap["skin_info.bg_qlt"]
|
self.bgQlt = uiMap["skin_info.bg_qlt"]
|
||||||
self.iconQlt = uiMap["skin_info.bg_qlt.icon_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]
|
self.attr[i] = uiMap["skin_info.attr_" .. i]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
self.txTitle:setText(self.heroEntity:getName())
|
||||||
self.txDesc1:setText(I18N:getGlobalText(I18N.GlobalConst.SKIN_ATTR))
|
self.txDesc1:setText(I18N:getGlobalText(I18N.GlobalConst.SKIN_ATTR))
|
||||||
self.txDesc2:setText(I18N:getGlobalText(I18N.GlobalConst.SKIN_LIST))
|
self.txDesc2:setText(I18N:getGlobalText(I18N.GlobalConst.SKIN_LIST))
|
||||||
|
|
||||||
|
self.btnClose:addClickListener(function()
|
||||||
|
self:closeUI()
|
||||||
|
end)
|
||||||
self.btnUse:addClickListener(function()
|
self.btnUse:addClickListener(function()
|
||||||
ModuleManager.SkinManager:reqChangeSkin(self.heroEntity:getCfgId(), self.selectSkinId)
|
ModuleManager.SkinManager:reqChangeSkin(self.heroEntity:getCfgId(), self.selectSkinId)
|
||||||
end)
|
end)
|
||||||
self.btnAttr:addClickListener(function()
|
self.btnAttr:addClickListener(function()
|
||||||
UIManager:showUI("app/ui/hero/hero_attr_ui", {heroEntity = self.heroEntity})
|
UIManager:showUI("app/ui/hero/hero_attr_ui", {heroEntity = self.heroEntity})
|
||||||
end)
|
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:bind(self.heroEntity, "isDirty", function()
|
||||||
self:refresh()
|
self:onRefresh()
|
||||||
|
end)
|
||||||
|
self:addEventListener(EventManager.CUSTOM_EVENT.SKIN_SELECT, function(skinId)
|
||||||
|
self:refreshSelectSkin(skinId)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
function SkinInfoComp:refresh()
|
function HeroSkinUI:onRefresh()
|
||||||
local ids = DataManager.SkinData:getHeroAllSkinIdsSort(self.heroEntity:getCfgId())
|
local ids = DataManager.SkinData:getHeroAllSkinIdsSort(self.heroEntity:getCfgId())
|
||||||
self.scrollrectComp:addInitCallback(function()
|
self.scrollrectComp:addInitCallback(function()
|
||||||
return "app/ui/hero/cell/skin_cell"
|
return "app/ui/hero/cell/skin_cell"
|
||||||
@ -70,7 +86,7 @@ function SkinInfoComp:refresh()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- 刷新选择皮肤相关内容
|
-- 刷新选择皮肤相关内容
|
||||||
function SkinInfoComp:refreshSelectSkin(selectId)
|
function HeroSkinUI:refreshSelectSkin(selectId)
|
||||||
if selectId then
|
if selectId then
|
||||||
self.selectSkinId = selectId
|
self.selectSkinId = selectId
|
||||||
self.scrollrectComp:updateAllCell()
|
self.scrollrectComp:updateAllCell()
|
||||||
@ -95,77 +111,65 @@ function SkinInfoComp:refreshSelectSkin(selectId)
|
|||||||
local txTitle = map["tx_title"]
|
local txTitle = map["tx_title"]
|
||||||
local txNum = map["tx_num"]
|
local txNum = map["tx_num"]
|
||||||
|
|
||||||
local showValue
|
|
||||||
if curAttr[index].type == GConst.MATCH_ATTACK_NAME[self.heroEntity:getMatchType()] then
|
if curAttr[index].type == GConst.MATCH_ATTACK_NAME[self.heroEntity:getMatchType()] then
|
||||||
-- 攻击
|
-- 攻击
|
||||||
table.insert(showAttrType, GConst.MATCH_ATTACK_NAME[self.heroEntity:getMatchType()])
|
table.insert(showAttrType, GConst.MATCH_ATTACK_NAME[self.heroEntity:getMatchType()])
|
||||||
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_5")
|
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_5")
|
||||||
txTitle:setText("<color=#FCB501>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_ATK).."</color>")
|
txTitle:setText("<color=#FCB501>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_ATK).."</color>")
|
||||||
showValue = curAttr[index].num // DEFAULT_FACTOR
|
|
||||||
elseif curAttr[index].type == GConst.MATCH_ATTACK_ADD_NAME[self.heroEntity:getMatchType()] then
|
elseif curAttr[index].type == GConst.MATCH_ATTACK_ADD_NAME[self.heroEntity:getMatchType()] then
|
||||||
-- 攻击加成百分比
|
-- 攻击加成百分比
|
||||||
table.insert(showAttrType, GConst.MATCH_ATTACK_ADD_NAME[self.heroEntity:getMatchType()])
|
table.insert(showAttrType, GConst.MATCH_ATTACK_ADD_NAME[self.heroEntity:getMatchType()])
|
||||||
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_5")
|
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_5")
|
||||||
txTitle:setText("<color=#FCB501>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_ATK).."</color>")
|
txTitle:setText("<color=#FCB501>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_ATK).."</color>")
|
||||||
showValue = curAttr[index].num // PERCENT_FACTOR .. "%"
|
|
||||||
elseif curAttr[index].type == GConst.MATCH_HP_FIX_NAME[self.heroEntity:getMatchType()] then
|
elseif curAttr[index].type == GConst.MATCH_HP_FIX_NAME[self.heroEntity:getMatchType()] then
|
||||||
-- 生命
|
-- 生命
|
||||||
table.insert(showAttrType, GConst.MATCH_HP_FIX_NAME[self.heroEntity:getMatchType()])
|
table.insert(showAttrType, GConst.MATCH_HP_FIX_NAME[self.heroEntity:getMatchType()])
|
||||||
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_4")
|
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_4")
|
||||||
txTitle:setText("<color=#FB6895>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_HP).."</color>")
|
txTitle:setText("<color=#FB6895>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_HP).."</color>")
|
||||||
showValue = curAttr[index].num // DEFAULT_FACTOR
|
|
||||||
elseif curAttr[index].type == GConst.MATCH_HP_ADD_NAME[self.heroEntity:getMatchType()] then
|
elseif curAttr[index].type == GConst.MATCH_HP_ADD_NAME[self.heroEntity:getMatchType()] then
|
||||||
-- 生命加成百分比
|
-- 生命加成百分比
|
||||||
table.insert(showAttrType, GConst.MATCH_HP_ADD_NAME[self.heroEntity:getMatchType()])
|
table.insert(showAttrType, GConst.MATCH_HP_ADD_NAME[self.heroEntity:getMatchType()])
|
||||||
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_4")
|
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_4")
|
||||||
txTitle:setText("<color=#FB6895>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_HP).."</color>")
|
txTitle:setText("<color=#FB6895>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_HP).."</color>")
|
||||||
showValue = (curAttr[index].num // PERCENT_FACTOR) .. "%"
|
|
||||||
elseif curAttr[index].type == GConst.MATCH_NORMAL_HURT_NAME[self.heroEntity:getMatchType()] then
|
elseif curAttr[index].type == GConst.MATCH_NORMAL_HURT_NAME[self.heroEntity:getMatchType()] then
|
||||||
-- 普攻增伤
|
-- 普攻增伤
|
||||||
table.insert(showAttrType, GConst.MATCH_NORMAL_HURT_NAME[self.heroEntity:getMatchType()])
|
table.insert(showAttrType, GConst.MATCH_NORMAL_HURT_NAME[self.heroEntity:getMatchType()])
|
||||||
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_20")
|
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_20")
|
||||||
txTitle:setText("<color=#4CCFFA>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_NORMAL_HURT).."</color>")
|
txTitle:setText("<color=#4CCFFA>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_NORMAL_HURT).."</color>")
|
||||||
showValue = curAttr[index].num // DEFAULT_FACTOR
|
|
||||||
elseif curAttr[index].type == GConst.MATCH_SKILL_HURT_NAME[self.heroEntity:getMatchType()] then
|
elseif curAttr[index].type == GConst.MATCH_SKILL_HURT_NAME[self.heroEntity:getMatchType()] then
|
||||||
-- 技能增伤
|
-- 技能增伤
|
||||||
table.insert(showAttrType, GConst.MATCH_SKILL_HURT_NAME[self.heroEntity:getMatchType()])
|
table.insert(showAttrType, GConst.MATCH_SKILL_HURT_NAME[self.heroEntity:getMatchType()])
|
||||||
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_21")
|
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_21")
|
||||||
txTitle:setText("<color=#EC80FF>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_SKILL_HURT).."</color>")
|
txTitle:setText("<color=#EC80FF>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_SKILL_HURT).."</color>")
|
||||||
showValue = curAttr[index].num // DEFAULT_FACTOR
|
|
||||||
elseif curAttr[index].type == GConst.MATCH_NORMAL_HURTP_NAME[self.heroEntity:getMatchType()] then
|
elseif curAttr[index].type == GConst.MATCH_NORMAL_HURTP_NAME[self.heroEntity:getMatchType()] then
|
||||||
-- 普攻增伤百分比
|
-- 普攻增伤百分比
|
||||||
table.insert(showAttrType, GConst.MATCH_NORMAL_HURTP_NAME[self.heroEntity:getMatchType()])
|
table.insert(showAttrType, GConst.MATCH_NORMAL_HURTP_NAME[self.heroEntity:getMatchType()])
|
||||||
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_20")
|
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_20")
|
||||||
txTitle:setText("<color=#4CCFFA>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_NORMAL_HURTP).."</color>")
|
txTitle:setText("<color=#4CCFFA>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_NORMAL_HURTP).."</color>")
|
||||||
showValue = curAttr[index].num // PERCENT_FACTOR .. "%"
|
|
||||||
elseif curAttr[index].type == GConst.MATCH_SKILL_HURTP_NAME[self.heroEntity:getMatchType()] then
|
elseif curAttr[index].type == GConst.MATCH_SKILL_HURTP_NAME[self.heroEntity:getMatchType()] then
|
||||||
-- 技能增伤百分比
|
-- 技能增伤百分比
|
||||||
table.insert(showAttrType, GConst.MATCH_SKILL_HURTP_NAME[self.heroEntity:getMatchType()])
|
table.insert(showAttrType, GConst.MATCH_SKILL_HURTP_NAME[self.heroEntity:getMatchType()])
|
||||||
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_21")
|
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_21")
|
||||||
txTitle:setText("<color=#EC80FF>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_SKILL_HURTP).."</color>")
|
txTitle:setText("<color=#EC80FF>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_SKILL_HURTP).."</color>")
|
||||||
showValue = curAttr[index].num // PERCENT_FACTOR .. "%"
|
|
||||||
elseif curAttr[index].type == GConst.MATCH_CRIT_NAME[self.heroEntity:getMatchType()] then
|
elseif curAttr[index].type == GConst.MATCH_CRIT_NAME[self.heroEntity:getMatchType()] then
|
||||||
-- 暴击率百分比
|
-- 暴击率百分比
|
||||||
table.insert(showAttrType, GConst.MATCH_CRIT_NAME[self.heroEntity:getMatchType()])
|
table.insert(showAttrType, GConst.MATCH_CRIT_NAME[self.heroEntity:getMatchType()])
|
||||||
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_22")
|
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_22")
|
||||||
txTitle:setText("<color=#FFF95F>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_CRIT).."</color>")
|
txTitle:setText("<color=#FFF95F>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_CRIT).."</color>")
|
||||||
showValue = curAttr[index].num // PERCENT_FACTOR .. "%"
|
|
||||||
elseif curAttr[index].type == GConst.MATCH_CRIT_TIME_NAME[self.heroEntity:getMatchType()] then
|
elseif curAttr[index].type == GConst.MATCH_CRIT_TIME_NAME[self.heroEntity:getMatchType()] then
|
||||||
-- 暴击伤害百分比
|
-- 暴击伤害百分比
|
||||||
table.insert(showAttrType, GConst.MATCH_CRIT_TIME_NAME[self.heroEntity:getMatchType()])
|
table.insert(showAttrType, GConst.MATCH_CRIT_TIME_NAME[self.heroEntity:getMatchType()])
|
||||||
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_23")
|
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_23")
|
||||||
txTitle:setText("<color=#FF4848>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_CRIT_TIME).."</color>")
|
txTitle:setText("<color=#FF4848>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_CRIT_TIME).."</color>")
|
||||||
showValue = curAttr[index].num // PERCENT_FACTOR .. "%"
|
|
||||||
elseif curAttr[index].type == GConst.MATCH_CURED_NAME[self.heroEntity:getMatchType()] then
|
elseif curAttr[index].type == GConst.MATCH_CURED_NAME[self.heroEntity:getMatchType()] then
|
||||||
-- 治疗提升百分比
|
-- 治疗提升百分比
|
||||||
table.insert(showAttrType, GConst.MATCH_CURED_NAME[self.heroEntity:getMatchType()])
|
table.insert(showAttrType, GConst.MATCH_CURED_NAME[self.heroEntity:getMatchType()])
|
||||||
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_24")
|
imgIcon:setSprite(GConst.ATLAS_PATH.COMMON, "common_dec_24")
|
||||||
txTitle:setText("<color=#85FF82>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_CURED).."</color>")
|
txTitle:setText("<color=#85FF82>"..I18N:getGlobalText(I18N.GlobalConst.ATTR_CURED).."</color>")
|
||||||
showValue = curAttr[index].num // PERCENT_FACTOR .. "%"
|
|
||||||
else
|
else
|
||||||
obj:setVisible(false)
|
obj:setVisible(false)
|
||||||
end
|
end
|
||||||
txNum:setText(showValue)
|
txNum:setText(GFunc.getAttrShowValue(curAttr[index].type, curAttr[index].num))
|
||||||
else
|
else
|
||||||
obj:setVisible(false)
|
obj:setVisible(false)
|
||||||
end
|
end
|
||||||
@ -221,12 +225,14 @@ function SkinInfoComp:refreshSelectSkin(selectId)
|
|||||||
if self.onlyLook then -- 仅查看
|
if self.onlyLook then -- 仅查看
|
||||||
self.txDesc2:setVisible(false)
|
self.txDesc2:setVisible(false)
|
||||||
self.scrollrectComp.baseObject: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
|
else
|
||||||
self.txDesc2:setVisible(true)
|
self.txDesc2:setVisible(true)
|
||||||
self.scrollrectComp.baseObject: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
|
||||||
end
|
end
|
||||||
|
|
||||||
return SkinInfoComp
|
return HeroSkinUI
|
||||||
10
lua/app/ui/hero/hero_skin_ui.lua.meta
Normal file
10
lua/app/ui/hero/hero_skin_ui.lua.meta
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 013e50285bf00304b9911ee482aa7b3d
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
193
lua/app/ui/hero/runes_info_comp.lua
Normal file
193
lua/app/ui/hero/runes_info_comp.lua
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
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.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.spineAuto:playAnim("idle", true, true)
|
||||||
|
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 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:startAutoQuenching()
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
GFunc.showMessageBox(params)
|
||||||
|
else
|
||||||
|
self:endAutoQuenching()
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
self.btnUse:addClickListener(function()
|
||||||
|
ModuleManager.RunesManager:reqQuenching(self.heroEntity:getCfgId(), 0)
|
||||||
|
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()
|
||||||
|
|
||||||
|
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()))
|
||||||
|
self.imgProg.value = curExp / maxExp
|
||||||
|
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)
|
||||||
|
imgQlt:setSprite(GConst.ATLAS_PATH.HERO, GConst.RunesConst.QUALITY_ICON[index])
|
||||||
|
imgSuit:setSprite(GConst.ATLAS_PATH.HERO, "hero_rune_"..self.runesEntity:getGridSuit(index))
|
||||||
|
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:startAutoQuenching()
|
||||||
|
self.mask:setActive(true)
|
||||||
|
self:autoQuenching()
|
||||||
|
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
|
||||||
|
self:autoQuenching()
|
||||||
|
end, 1 / 3)
|
||||||
|
self.spineAuto:playAnim("attack", true, true)
|
||||||
|
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
|
||||||
|
|
||||||
|
-- 请求一次自动淬炼
|
||||||
|
function RunesInfoComp:autoQuenching()
|
||||||
|
ModuleManager.RunesManager:reqQuenching(self.heroEntity:getCfgId(), 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
return RunesInfoComp
|
||||||
10
lua/app/ui/hero/runes_info_comp.lua.meta
Normal file
10
lua/app/ui/hero/runes_info_comp.lua.meta
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4d6ae74e1ac107c4ca73bacaafebec15
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
8
lua/app/ui/runes.meta
Normal file
8
lua/app/ui/runes.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 03aa5a5d9fc516842b410568fc7345d7
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
78
lua/app/ui/runes/runes_level_ui.lua
Normal file
78
lua/app/ui/runes/runes_level_ui.lua
Normal file
@ -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
|
||||||
10
lua/app/ui/runes/runes_level_ui.lua.meta
Normal file
10
lua/app/ui/runes/runes_level_ui.lua.meta
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4e658a421ae93f9429873a072c30732f
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
140
lua/app/ui/runes/runes_source_ui.lua
Normal file
140
lua/app/ui/runes/runes_source_ui.lua
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
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()
|
||||||
|
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
|
||||||
10
lua/app/ui/runes/runes_source_ui.lua.meta
Normal file
10
lua/app/ui/runes/runes_source_ui.lua.meta
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e0f16c6f0334eb04db5746a1576d0387
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
69
lua/app/ui/runes/runes_suit_ui.lua
Normal file
69
lua/app/ui/runes/runes_suit_ui.lua
Normal file
@ -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.HERO_DESC_1, 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 = "<color=#FFFFFF>" .. str1 .. "</color>"
|
||||||
|
str2 = "<color=#FFFFFF>" .. str2 .. "</color>"
|
||||||
|
elseif level == 1 then
|
||||||
|
str1 = "<color=#F9FF60>" .. str1 .. "</color>"
|
||||||
|
str2 = "<color=#FFFFFF>" .. str2 .. "</color>"
|
||||||
|
elseif level == 2 then
|
||||||
|
str1 = "<color=#FFFFFF>" .. str1 .. "</color>"
|
||||||
|
str2 = "<color=#F9FF60>" .. str2 .. "</color>"
|
||||||
|
end
|
||||||
|
txAttr1:setText(str1)
|
||||||
|
txAttr2:setText(str2)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return RunesSuitUI
|
||||||
10
lua/app/ui/runes/runes_suit_ui.lua.meta
Normal file
10
lua/app/ui/runes/runes_suit_ui.lua.meta
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7eaccbe09a9a77b4c8def1595e994b66
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
@ -12,6 +12,7 @@ function HeroEntity:ctor(cfgId, lv, skin)
|
|||||||
self.baseAttrOriginal = {}
|
self.baseAttrOriginal = {}
|
||||||
self.equipAttr = {}
|
self.equipAttr = {}
|
||||||
self.skinAttr = {}
|
self.skinAttr = {}
|
||||||
|
self.runesAttr = {}
|
||||||
self.allAttr = {}
|
self.allAttr = {}
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -54,6 +55,12 @@ function HeroEntity:onSkinAttrChange()
|
|||||||
self:setDirty()
|
self:setDirty()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function HeroEntity:onRunesAttrChange()
|
||||||
|
self:updateRunesAttr()
|
||||||
|
self:updateTotalAttr()
|
||||||
|
self:setDirty()
|
||||||
|
end
|
||||||
|
|
||||||
function HeroEntity:setDirty()
|
function HeroEntity:setDirty()
|
||||||
self.data.isDirty = not self.data.isDirty
|
self.data.isDirty = not self.data.isDirty
|
||||||
end
|
end
|
||||||
@ -67,6 +74,7 @@ function HeroEntity:updateAllAttr()
|
|||||||
self:updateBaseAttr()
|
self:updateBaseAttr()
|
||||||
self:updateEquipAttr()
|
self:updateEquipAttr()
|
||||||
self:updateSkinAttr()
|
self:updateSkinAttr()
|
||||||
|
self:updateRunesAttr()
|
||||||
self:updateTotalAttr()
|
self:updateTotalAttr()
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -193,6 +201,46 @@ function HeroEntity:updateSkinAttr()
|
|||||||
end
|
end
|
||||||
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()])
|
||||||
|
local skillHurtPer = self:getRunes():getAttrValue(GConst.MATCH_SKILL_HURTP_NAME[self:getMatchType()])
|
||||||
|
local healPer = self:getRunes():getAttrValue(GConst.MATCH_CURED_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
|
||||||
|
|
||||||
|
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"
|
||||||
|
Logger.logHighlight(printStr)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- 更新总属性
|
-- 更新总属性
|
||||||
function HeroEntity:updateTotalAttr()
|
function HeroEntity:updateTotalAttr()
|
||||||
self.allAttr = {}
|
self.allAttr = {}
|
||||||
@ -205,6 +253,9 @@ function HeroEntity:updateTotalAttr()
|
|||||||
for k, v in pairs(self.skinAttr) do
|
for k, v in pairs(self.skinAttr) do
|
||||||
self:addTotalAttrValue(k, v)
|
self:addTotalAttrValue(k, v)
|
||||||
end
|
end
|
||||||
|
for k, v in pairs(self.runesAttr) do
|
||||||
|
self:addTotalAttrValue(k, v)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function HeroEntity:setTotalAttrValue(name, value)
|
function HeroEntity:setTotalAttrValue(name, value)
|
||||||
@ -500,6 +551,7 @@ function HeroEntity:getTotalBaseHp()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
result = result + DataManager.SkinData:getBaseHp(self)
|
result = result + DataManager.SkinData:getBaseHp(self)
|
||||||
|
result = result + self:getRunes():getAttrValue(GConst.MATCH_HP_FIX_NAME, true)
|
||||||
return result
|
return result
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -517,6 +569,7 @@ function HeroEntity:getTotalBaseAtk()
|
|||||||
end
|
end
|
||||||
-- Logger.logHighlight(logStr)
|
-- Logger.logHighlight(logStr)
|
||||||
result = result + DataManager.SkinData:getBaseAttack(self)
|
result = result + DataManager.SkinData:getBaseAttack(self)
|
||||||
|
result = result + self:getRunes():getAttrValue(GConst.MATCH_ATTACK_NAME, true)
|
||||||
return result
|
return result
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -545,4 +598,18 @@ function HeroEntity:getSkins()
|
|||||||
return self.unlockSkins
|
return self.unlockSkins
|
||||||
end
|
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
|
return HeroEntity
|
||||||
8
lua/app/userdata/runes.meta
Normal file
8
lua/app/userdata/runes.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 623c3622200ddb346836080a5e43badb
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
218
lua/app/userdata/runes/runes_data.lua
Normal file
218
lua/app/userdata/runes/runes_data.lua
Normal file
@ -0,0 +1,218 @@
|
|||||||
|
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
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取到下一档的总经验
|
||||||
|
function RunesData:getNextLevelTotalExp()
|
||||||
|
local cfg = self:getLevelConfig()[self:getLevel() + 1]
|
||||||
|
if cfg then
|
||||||
|
return cfg.cost or 0
|
||||||
|
end
|
||||||
|
|
||||||
|
return 0
|
||||||
|
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: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_12)
|
||||||
|
elseif index == 4 then
|
||||||
|
return I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_13)
|
||||||
|
elseif index == 5 then
|
||||||
|
return I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_14)
|
||||||
|
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
|
||||||
10
lua/app/userdata/runes/runes_data.lua.meta
Normal file
10
lua/app/userdata/runes/runes_data.lua.meta
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a9a5f762edecf854ab9eecd7ace92c0e
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
206
lua/app/userdata/runes/runes_entity.lua
Normal file
206
lua/app/userdata/runes/runes_entity.lua
Normal file
@ -0,0 +1,206 @@
|
|||||||
|
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
|
||||||
|
|
||||||
|
-- 获取锻造的材料消耗
|
||||||
|
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:getGridSuit(index)
|
||||||
|
if self.grids[index] then
|
||||||
|
return self.grids[index].suit
|
||||||
|
end
|
||||||
|
|
||||||
|
Logger.logError("英雄".. self.heroId .. "未获取到格子的符文数据:"..tostring(index))
|
||||||
|
return 0
|
||||||
|
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_SUITS_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)
|
||||||
|
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) // DEFAULT_FACTOR
|
||||||
|
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
|
||||||
10
lua/app/userdata/runes/runes_entity.lua.meta
Normal file
10
lua/app/userdata/runes/runes_entity.lua.meta
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 22f546c66a8d67842b8befee0e17a707
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
@ -19,6 +19,7 @@ end
|
|||||||
|
|
||||||
function ShopData:initCrossDay()
|
function ShopData:initCrossDay()
|
||||||
DataManager:registerCrossDayFunc("ShopData", function()
|
DataManager:registerCrossDayFunc("ShopData", function()
|
||||||
|
self:resetRunesGift()
|
||||||
self:resetMallDaily()
|
self:resetMallDaily()
|
||||||
self:resetCommonDailyGemAdCount()
|
self:resetCommonDailyGemAdCount()
|
||||||
self:resetCommonDailyCoinAdCount()
|
self:resetCommonDailyCoinAdCount()
|
||||||
@ -95,6 +96,14 @@ function ShopData:getGiftBoughtNum(actType, actId)
|
|||||||
return 0
|
return 0
|
||||||
end
|
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)
|
function ShopData:getGiftRemainBuyNum(actId)
|
||||||
local bought = self:getGiftBoughtNum(PayManager.PURCHARSE_TYPE.ACT_GIFT, actId)
|
local bought = self:getGiftBoughtNum(PayManager.PURCHARSE_TYPE.ACT_GIFT, actId)
|
||||||
@ -1030,4 +1039,11 @@ function ShopData:markPopLastChapterActGift()
|
|||||||
end
|
end
|
||||||
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
|
return ShopData
|
||||||
Loading…
x
Reference in New Issue
Block a user