This commit is contained in:
puxuan 2025-09-12 09:50:19 +08:00
parent c8e5d669ab
commit 4bbe1af8b1
29 changed files with 12504 additions and 7020 deletions

File diff suppressed because it is too large Load Diff

View File

@ -32,127 +32,152 @@ local attr = {
[7]={
["id"]=7,
["name"]="attr_crit_red",
["power"]=500
["power"]=500,
["is_percent"]=1
},
[8]={
["id"]=8,
["name"]="attr_crit_yellow",
["power"]=500
["power"]=500,
["is_percent"]=1
},
[9]={
["id"]=9,
["name"]="attr_crit_green",
["power"]=500
["power"]=500,
["is_percent"]=1
},
[10]={
["id"]=10,
["name"]="attr_crit_blue",
["power"]=500
["power"]=500,
["is_percent"]=1
},
[11]={
["id"]=11,
["name"]="attr_crit_purple",
["power"]=500
["power"]=500,
["is_percent"]=1
},
[12]={
["id"]=12,
["name"]="attr_crit_time_red",
["power"]=500
["power"]=500,
["is_percent"]=1
},
[13]={
["id"]=13,
["name"]="attr_crit_time_yellow",
["power"]=500
["power"]=500,
["is_percent"]=1
},
[14]={
["id"]=14,
["name"]="attr_crit_time_green",
["power"]=500
["power"]=500,
["is_percent"]=1
},
[15]={
["id"]=15,
["name"]="attr_crit_time_blue",
["power"]=500
["power"]=500,
["is_percent"]=1
},
[16]={
["id"]=16,
["name"]="attr_crit_time_purple",
["power"]=500
["power"]=500,
["is_percent"]=1
},
[17]={
["id"]=17,
["name"]="attr_cured_red",
["power"]=100
["power"]=100,
["is_percent"]=1
},
[18]={
["id"]=18,
["name"]="attr_cured_yellow",
["power"]=100
["power"]=100,
["is_percent"]=1
},
[19]={
["id"]=19,
["name"]="attr_cured_green",
["power"]=100
["power"]=100,
["is_percent"]=1
},
[20]={
["id"]=20,
["name"]="attr_cured_blue",
["power"]=100
["power"]=100,
["is_percent"]=1
},
[21]={
["id"]=21,
["name"]="attr_cured_purple",
["power"]=100
["power"]=100,
["is_percent"]=1
},
[22]={
["id"]=22,
["name"]="attr_atkp_red",
["power"]=100
["power"]=100,
["is_percent"]=1
},
[23]={
["id"]=23,
["name"]="attr_atkp_yellow",
["power"]=100
["power"]=100,
["is_percent"]=1
},
[24]={
["id"]=24,
["name"]="attr_atkp_green",
["power"]=100
["power"]=100,
["is_percent"]=1
},
[25]={
["id"]=25,
["name"]="attr_atkp_blue",
["power"]=100
["power"]=100,
["is_percent"]=1
},
[26]={
["id"]=26,
["name"]="attr_atkp_purple",
["power"]=100
["power"]=100,
["is_percent"]=1
},
[27]={
["id"]=27,
["name"]="attr_hpp_red",
["power"]=100
["power"]=100,
["is_percent"]=1
},
[28]={
["id"]=28,
["name"]="attr_hpp_yellow",
["power"]=100
["power"]=100,
["is_percent"]=1
},
[29]={
["id"]=29,
["name"]="attr_hpp_green",
["power"]=100
["power"]=100,
["is_percent"]=1
},
[30]={
["id"]=30,
["name"]="attr_hpp_blue",
["power"]=100
["power"]=100,
["is_percent"]=1
},
[31]={
["id"]=31,
["name"]="attr_hpp_purple",
["power"]=100
["power"]=100,
["is_percent"]=1
},
[32]={
["id"]=32,
@ -207,52 +232,62 @@ local attr = {
[42]={
["id"]=42,
["name"]="attr_normal_hurtp_red",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[43]={
["id"]=43,
["name"]="attr_normal_hurtp_yellow",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[44]={
["id"]=44,
["name"]="attr_normal_hurtp_green",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[45]={
["id"]=45,
["name"]="attr_normal_hurtp_blue",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[46]={
["id"]=46,
["name"]="attr_normal_hurtp_purple",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[47]={
["id"]=47,
["name"]="attr_skill_hurtp_red",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[48]={
["id"]=48,
["name"]="attr_skill_hurtp_yellow",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[49]={
["id"]=49,
["name"]="attr_skill_hurtp_green",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[50]={
["id"]=50,
["name"]="attr_skill_hurtp_blue",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[51]={
["id"]=51,
["name"]="attr_skill_hurtp_purple",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[52]={
["id"]=52,
@ -282,52 +317,62 @@ local attr = {
[57]={
["id"]=57,
["name"]="attr_all_hurtp_red",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[58]={
["id"]=58,
["name"]="attr_all_hurtp_yellow",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[59]={
["id"]=59,
["name"]="attr_all_hurtp_green",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[60]={
["id"]=60,
["name"]="attr_all_hurtp_blue",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[61]={
["id"]=61,
["name"]="attr_all_hurtp_purple",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[62]={
["id"]=62,
["name"]="attr_atkp_red_all",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[63]={
["id"]=63,
["name"]="attr_atkp_yellow_all",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[64]={
["id"]=64,
["name"]="attr_atkp_green_all",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[65]={
["id"]=65,
["name"]="attr_atkp_blue_all",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[66]={
["id"]=66,
["name"]="attr_atkp_purple_all",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[67]={
["id"]=67,
@ -347,27 +392,32 @@ local attr = {
[70]={
["id"]=70,
["name"]="attr_crit_all",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[71]={
["id"]=71,
["name"]="attr_crit_time_all",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[72]={
["id"]=72,
["name"]="attr_normal_hurtp_all",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[73]={
["id"]=73,
["name"]="attr_skill_hurtp_all",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[74]={
["id"]=74,
["name"]="attr_atkp_all",
["power"]=50
["power"]=50,
["is_percent"]=1
},
[75]={
["id"]=75,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -722,6 +722,8 @@ local LocalizationGlobalConst =
EQUIP_HERO_DESC_32 = "EQUIP_HERO_DESC_32",
EQUIP_HERO_DESC_33 = "EQUIP_HERO_DESC_33",
EQUIP_HERO_DESC_34 = "EQUIP_HERO_DESC_34",
EQUIP_HERO_ACTIVATION_1 = "EQUIP_HERO_ACTIVATION_1",
EQUIP_HERO_ACTIVATION_2 = "EQUIP_HERO_ACTIVATION_2",
}
return LocalizationGlobalConst

File diff suppressed because it is too large Load Diff

View File

@ -9566,7 +9566,7 @@ local skill = {
5,
3
},
["battle_icon"]="45002",
["battle_icon"]="m30001_1",
["effect_type"]=1,
["trigger"]=1,
["effect"]={
@ -9605,7 +9605,7 @@ local skill = {
["skill_type_parameter"]={
12500
},
["battle_icon"]="53001",
["battle_icon"]="m30001_2",
["effect_type"]=1,
["trigger"]=1,
["effect"]={
@ -9710,7 +9710,7 @@ local skill = {
9,
3
},
["battle_icon"]="45002",
["battle_icon"]="m30002_1",
["effect_type"]=1,
["trigger"]=1,
["effect"]={
@ -9746,7 +9746,7 @@ local skill = {
["skill_type_parameter"]={
1
},
["battle_icon"]="53001",
["battle_icon"]="m30002_2",
["effect_type"]=1,
["trigger"]=1,
["effect"]={
@ -9861,7 +9861,7 @@ local skill = {
}
},
[20104]={
["battle_icon"]="45002",
["battle_icon"]="m30003_1",
["effect_type"]=1,
["trigger"]=1,
["effect"]={

View File

@ -328,6 +328,66 @@ local attr = {
["id"]=66,
["desc"]="全体紫色快递员攻击+{0}%",
["name"]="attr_atkp_purple_all"
},
[67]={
["id"]=67,
["desc"]="攻击",
["name"]="atk_all"
},
[68]={
["id"]=68,
["desc"]="生命",
["name"]="attr_hp_all"
},
[69]={
["id"]=69,
["desc"]="全体减伤",
["name"]="attr_dmgdec_all"
},
[70]={
["id"]=70,
["desc"]="全体暴击率",
["name"]="attr_crit_all"
},
[71]={
["id"]=71,
["desc"]="全体暴击伤害",
["name"]="attr_crit_time_all"
},
[72]={
["id"]=72,
["desc"]="全体普攻增伤",
["name"]="attr_normal_hurtp_all"
},
[73]={
["id"]=73,
["desc"]="全体技能增伤",
["name"]="attr_skill_hurtp_all"
},
[74]={
["id"]=74,
["desc"]="全体攻击",
["name"]="attr_atkp_all"
},
[75]={
["id"]=75,
["desc"]="通用个人攻击",
["name"]="attr_atk"
},
[76]={
["id"]=76,
["desc"]="通用个人生命",
["name"]="attr_hp"
},
[77]={
["id"]=77,
["desc"]="通用个人普攻伤害增加",
["name"]="attr_normal_hurt"
},
[78]={
["id"]=78,
["desc"]="通用个人技能伤害增加",
["name"]="attr_skill_hurt"
}
}
local keys = {
@ -397,12 +457,24 @@ local keys = {
["attr_atkp_yellow_all"]=attr[63],
["attr_atkp_green_all"]=attr[64],
["attr_atkp_blue_all"]=attr[65],
["attr_atkp_purple_all"]=attr[66]
["attr_atkp_purple_all"]=attr[66],
["atk_all"]=attr[67],
["attr_hp_all"]=attr[68],
["attr_dmgdec_all"]=attr[69],
["attr_crit_all"]=attr[70],
["attr_crit_time_all"]=attr[71],
["attr_normal_hurtp_all"]=attr[72],
["attr_skill_hurtp_all"]=attr[73],
["attr_atkp_all"]=attr[74],
["attr_atk"]=attr[75],
["attr_hp"]=attr[76],
["attr_normal_hurt"]=attr[77],
["attr_skill_hurt"]=attr[78]
}
}
local config = {
data=attr,
keys=keys,
count=66
count=78
}
return config

View File

@ -725,6 +725,8 @@ local localization_global =
["EQUIP_HERO_DESC_32"] = "没有可以强化的装备",
["EQUIP_HERO_DESC_33"] = "共鸣激活",
["EQUIP_HERO_DESC_34"] = "强化至<color=#00FF15>{0}</color>级可继续精炼",
["EQUIP_HERO_ACTIVATION_1"] = "已激活:强化共鸣Lv{0}",
["EQUIP_HERO_ACTIVATION_2"] = "已激活:精炼共鸣Lv{0}",
}
return localization_global

View File

@ -262,6 +262,54 @@ local attr = {
[66]={
["id"]=66,
["name"]="attr_atkp_purple_all"
},
[67]={
["id"]=67,
["name"]="atk_all"
},
[68]={
["id"]=68,
["name"]="attr_hp_all"
},
[69]={
["id"]=69,
["name"]="attr_dmgdec_all"
},
[70]={
["id"]=70,
["name"]="attr_crit_all"
},
[71]={
["id"]=71,
["name"]="attr_crit_time_all"
},
[72]={
["id"]=72,
["name"]="attr_normal_hurtp_all"
},
[73]={
["id"]=73,
["name"]="attr_skill_hurtp_all"
},
[74]={
["id"]=74,
["name"]="attr_atkp_all"
},
[75]={
["id"]=75,
["name"]="attr_atk"
},
[76]={
["id"]=76,
["name"]="attr_hp"
},
[77]={
["id"]=77,
["name"]="attr_normal_hurt"
},
[78]={
["id"]=78,
["name"]="attr_skill_hurt"
}
}
local keys = {
@ -331,12 +379,24 @@ local keys = {
["attr_atkp_yellow_all"]=attr[63],
["attr_atkp_green_all"]=attr[64],
["attr_atkp_blue_all"]=attr[65],
["attr_atkp_purple_all"]=attr[66]
["attr_atkp_purple_all"]=attr[66],
["atk_all"]=attr[67],
["attr_hp_all"]=attr[68],
["attr_dmgdec_all"]=attr[69],
["attr_crit_all"]=attr[70],
["attr_crit_time_all"]=attr[71],
["attr_normal_hurtp_all"]=attr[72],
["attr_skill_hurtp_all"]=attr[73],
["attr_atkp_all"]=attr[74],
["attr_atk"]=attr[75],
["attr_hp"]=attr[76],
["attr_normal_hurt"]=attr[77],
["attr_skill_hurt"]=attr[78]
}
}
local config = {
data=attr,
keys=keys,
count=66
count=78
}
return config

View File

@ -323,6 +323,54 @@ local attr = {
[66]={
["id"]=66,
["name"]="attr_atkp_purple_all"
},
[67]={
["id"]=67,
["name"]="atk_all"
},
[68]={
["id"]=68,
["name"]="attr_hp_all"
},
[69]={
["id"]=69,
["name"]="attr_dmgdec_all"
},
[70]={
["id"]=70,
["name"]="attr_crit_all"
},
[71]={
["id"]=71,
["name"]="attr_crit_time_all"
},
[72]={
["id"]=72,
["name"]="attr_normal_hurtp_all"
},
[73]={
["id"]=73,
["name"]="attr_skill_hurtp_all"
},
[74]={
["id"]=74,
["name"]="attr_atkp_all"
},
[75]={
["id"]=75,
["name"]="attr_atk"
},
[76]={
["id"]=76,
["name"]="attr_hp"
},
[77]={
["id"]=77,
["name"]="attr_normal_hurt"
},
[78]={
["id"]=78,
["name"]="attr_skill_hurt"
}
}
local keys = {
@ -392,12 +440,24 @@ local keys = {
["attr_atkp_yellow_all"]=attr[63],
["attr_atkp_green_all"]=attr[64],
["attr_atkp_blue_all"]=attr[65],
["attr_atkp_purple_all"]=attr[66]
["attr_atkp_purple_all"]=attr[66],
["atk_all"]=attr[67],
["attr_hp_all"]=attr[68],
["attr_dmgdec_all"]=attr[69],
["attr_crit_all"]=attr[70],
["attr_crit_time_all"]=attr[71],
["attr_normal_hurtp_all"]=attr[72],
["attr_skill_hurtp_all"]=attr[73],
["attr_atkp_all"]=attr[74],
["attr_atk"]=attr[75],
["attr_hp"]=attr[76],
["attr_normal_hurt"]=attr[77],
["attr_skill_hurt"]=attr[78]
}
}
local config = {
data=attr,
keys=keys,
count=66
count=78
}
return config

View File

@ -323,6 +323,54 @@ local attr = {
[66]={
["id"]=66,
["name"]="attr_atkp_purple_all"
},
[67]={
["id"]=67,
["name"]="atk_all"
},
[68]={
["id"]=68,
["name"]="attr_hp_all"
},
[69]={
["id"]=69,
["name"]="attr_dmgdec_all"
},
[70]={
["id"]=70,
["name"]="attr_crit_all"
},
[71]={
["id"]=71,
["name"]="attr_crit_time_all"
},
[72]={
["id"]=72,
["name"]="attr_normal_hurtp_all"
},
[73]={
["id"]=73,
["name"]="attr_skill_hurtp_all"
},
[74]={
["id"]=74,
["name"]="attr_atkp_all"
},
[75]={
["id"]=75,
["name"]="attr_atk"
},
[76]={
["id"]=76,
["name"]="attr_hp"
},
[77]={
["id"]=77,
["name"]="attr_normal_hurt"
},
[78]={
["id"]=78,
["name"]="attr_skill_hurt"
}
}
local keys = {
@ -392,12 +440,24 @@ local keys = {
["attr_atkp_yellow_all"]=attr[63],
["attr_atkp_green_all"]=attr[64],
["attr_atkp_blue_all"]=attr[65],
["attr_atkp_purple_all"]=attr[66]
["attr_atkp_purple_all"]=attr[66],
["atk_all"]=attr[67],
["attr_hp_all"]=attr[68],
["attr_dmgdec_all"]=attr[69],
["attr_crit_all"]=attr[70],
["attr_crit_time_all"]=attr[71],
["attr_normal_hurtp_all"]=attr[72],
["attr_skill_hurtp_all"]=attr[73],
["attr_atkp_all"]=attr[74],
["attr_atk"]=attr[75],
["attr_hp"]=attr[76],
["attr_normal_hurt"]=attr[77],
["attr_skill_hurt"]=attr[78]
}
}
local config = {
data=attr,
keys=keys,
count=66
count=78
}
return config

View File

@ -262,6 +262,54 @@ local attr = {
[66]={
["id"]=66,
["name"]="attr_atkp_purple_all"
},
[67]={
["id"]=67,
["name"]="atk_all"
},
[68]={
["id"]=68,
["name"]="attr_hp_all"
},
[69]={
["id"]=69,
["name"]="attr_dmgdec_all"
},
[70]={
["id"]=70,
["name"]="attr_crit_all"
},
[71]={
["id"]=71,
["name"]="attr_crit_time_all"
},
[72]={
["id"]=72,
["name"]="attr_normal_hurtp_all"
},
[73]={
["id"]=73,
["name"]="attr_skill_hurtp_all"
},
[74]={
["id"]=74,
["name"]="attr_atkp_all"
},
[75]={
["id"]=75,
["name"]="attr_atk"
},
[76]={
["id"]=76,
["name"]="attr_hp"
},
[77]={
["id"]=77,
["name"]="attr_normal_hurt"
},
[78]={
["id"]=78,
["name"]="attr_skill_hurt"
}
}
local keys = {
@ -331,12 +379,24 @@ local keys = {
["attr_atkp_yellow_all"]=attr[63],
["attr_atkp_green_all"]=attr[64],
["attr_atkp_blue_all"]=attr[65],
["attr_atkp_purple_all"]=attr[66]
["attr_atkp_purple_all"]=attr[66],
["atk_all"]=attr[67],
["attr_hp_all"]=attr[68],
["attr_dmgdec_all"]=attr[69],
["attr_crit_all"]=attr[70],
["attr_crit_time_all"]=attr[71],
["attr_normal_hurtp_all"]=attr[72],
["attr_skill_hurtp_all"]=attr[73],
["attr_atkp_all"]=attr[74],
["attr_atk"]=attr[75],
["attr_hp"]=attr[76],
["attr_normal_hurt"]=attr[77],
["attr_skill_hurt"]=attr[78]
}
}
local config = {
data=attr,
keys=keys,
count=66
count=78
}
return config

View File

@ -323,6 +323,54 @@ local attr = {
[66]={
["id"]=66,
["name"]="attr_atkp_purple_all"
},
[67]={
["id"]=67,
["name"]="atk_all"
},
[68]={
["id"]=68,
["name"]="attr_hp_all"
},
[69]={
["id"]=69,
["name"]="attr_dmgdec_all"
},
[70]={
["id"]=70,
["name"]="attr_crit_all"
},
[71]={
["id"]=71,
["name"]="attr_crit_time_all"
},
[72]={
["id"]=72,
["name"]="attr_normal_hurtp_all"
},
[73]={
["id"]=73,
["name"]="attr_skill_hurtp_all"
},
[74]={
["id"]=74,
["name"]="attr_atkp_all"
},
[75]={
["id"]=75,
["name"]="attr_atk"
},
[76]={
["id"]=76,
["name"]="attr_hp"
},
[77]={
["id"]=77,
["name"]="attr_normal_hurt"
},
[78]={
["id"]=78,
["name"]="attr_skill_hurt"
}
}
local keys = {
@ -392,12 +440,24 @@ local keys = {
["attr_atkp_yellow_all"]=attr[63],
["attr_atkp_green_all"]=attr[64],
["attr_atkp_blue_all"]=attr[65],
["attr_atkp_purple_all"]=attr[66]
["attr_atkp_purple_all"]=attr[66],
["atk_all"]=attr[67],
["attr_hp_all"]=attr[68],
["attr_dmgdec_all"]=attr[69],
["attr_crit_all"]=attr[70],
["attr_crit_time_all"]=attr[71],
["attr_normal_hurtp_all"]=attr[72],
["attr_skill_hurtp_all"]=attr[73],
["attr_atkp_all"]=attr[74],
["attr_atk"]=attr[75],
["attr_hp"]=attr[76],
["attr_normal_hurt"]=attr[77],
["attr_skill_hurt"]=attr[78]
}
}
local config = {
data=attr,
keys=keys,
count=66
count=78
}
return config

View File

@ -323,6 +323,54 @@ local attr = {
[66]={
["id"]=66,
["name"]="attr_atkp_purple_all"
},
[67]={
["id"]=67,
["name"]="atk_all"
},
[68]={
["id"]=68,
["name"]="attr_hp_all"
},
[69]={
["id"]=69,
["name"]="attr_dmgdec_all"
},
[70]={
["id"]=70,
["name"]="attr_crit_all"
},
[71]={
["id"]=71,
["name"]="attr_crit_time_all"
},
[72]={
["id"]=72,
["name"]="attr_normal_hurtp_all"
},
[73]={
["id"]=73,
["name"]="attr_skill_hurtp_all"
},
[74]={
["id"]=74,
["name"]="attr_atkp_all"
},
[75]={
["id"]=75,
["name"]="attr_atk"
},
[76]={
["id"]=76,
["name"]="attr_hp"
},
[77]={
["id"]=77,
["name"]="attr_normal_hurt"
},
[78]={
["id"]=78,
["name"]="attr_skill_hurt"
}
}
local keys = {
@ -392,12 +440,24 @@ local keys = {
["attr_atkp_yellow_all"]=attr[63],
["attr_atkp_green_all"]=attr[64],
["attr_atkp_blue_all"]=attr[65],
["attr_atkp_purple_all"]=attr[66]
["attr_atkp_purple_all"]=attr[66],
["atk_all"]=attr[67],
["attr_hp_all"]=attr[68],
["attr_dmgdec_all"]=attr[69],
["attr_crit_all"]=attr[70],
["attr_crit_time_all"]=attr[71],
["attr_normal_hurtp_all"]=attr[72],
["attr_skill_hurtp_all"]=attr[73],
["attr_atkp_all"]=attr[74],
["attr_atk"]=attr[75],
["attr_hp"]=attr[76],
["attr_normal_hurt"]=attr[77],
["attr_skill_hurt"]=attr[78]
}
}
local config = {
data=attr,
keys=keys,
count=66
count=78
}
return config

View File

@ -323,6 +323,54 @@ local attr = {
[66]={
["id"]=66,
["name"]="attr_atkp_purple_all"
},
[67]={
["id"]=67,
["name"]="atk_all"
},
[68]={
["id"]=68,
["name"]="attr_hp_all"
},
[69]={
["id"]=69,
["name"]="attr_dmgdec_all"
},
[70]={
["id"]=70,
["name"]="attr_crit_all"
},
[71]={
["id"]=71,
["name"]="attr_crit_time_all"
},
[72]={
["id"]=72,
["name"]="attr_normal_hurtp_all"
},
[73]={
["id"]=73,
["name"]="attr_skill_hurtp_all"
},
[74]={
["id"]=74,
["name"]="attr_atkp_all"
},
[75]={
["id"]=75,
["name"]="attr_atk"
},
[76]={
["id"]=76,
["name"]="attr_hp"
},
[77]={
["id"]=77,
["name"]="attr_normal_hurt"
},
[78]={
["id"]=78,
["name"]="attr_skill_hurt"
}
}
local keys = {
@ -392,12 +440,24 @@ local keys = {
["attr_atkp_yellow_all"]=attr[63],
["attr_atkp_green_all"]=attr[64],
["attr_atkp_blue_all"]=attr[65],
["attr_atkp_purple_all"]=attr[66]
["attr_atkp_purple_all"]=attr[66],
["atk_all"]=attr[67],
["attr_hp_all"]=attr[68],
["attr_dmgdec_all"]=attr[69],
["attr_crit_all"]=attr[70],
["attr_crit_time_all"]=attr[71],
["attr_normal_hurtp_all"]=attr[72],
["attr_skill_hurtp_all"]=attr[73],
["attr_atkp_all"]=attr[74],
["attr_atk"]=attr[75],
["attr_hp"]=attr[76],
["attr_normal_hurt"]=attr[77],
["attr_skill_hurt"]=attr[78]
}
}
local config = {
data=attr,
keys=keys,
count=66
count=78
}
return config

View File

@ -323,6 +323,54 @@ local attr = {
[66]={
["id"]=66,
["name"]="attr_atkp_purple_all"
},
[67]={
["id"]=67,
["name"]="atk_all"
},
[68]={
["id"]=68,
["name"]="attr_hp_all"
},
[69]={
["id"]=69,
["name"]="attr_dmgdec_all"
},
[70]={
["id"]=70,
["name"]="attr_crit_all"
},
[71]={
["id"]=71,
["name"]="attr_crit_time_all"
},
[72]={
["id"]=72,
["name"]="attr_normal_hurtp_all"
},
[73]={
["id"]=73,
["name"]="attr_skill_hurtp_all"
},
[74]={
["id"]=74,
["name"]="attr_atkp_all"
},
[75]={
["id"]=75,
["name"]="attr_atk"
},
[76]={
["id"]=76,
["name"]="attr_hp"
},
[77]={
["id"]=77,
["name"]="attr_normal_hurt"
},
[78]={
["id"]=78,
["name"]="attr_skill_hurt"
}
}
local keys = {
@ -392,12 +440,24 @@ local keys = {
["attr_atkp_yellow_all"]=attr[63],
["attr_atkp_green_all"]=attr[64],
["attr_atkp_blue_all"]=attr[65],
["attr_atkp_purple_all"]=attr[66]
["attr_atkp_purple_all"]=attr[66],
["atk_all"]=attr[67],
["attr_hp_all"]=attr[68],
["attr_dmgdec_all"]=attr[69],
["attr_crit_all"]=attr[70],
["attr_crit_time_all"]=attr[71],
["attr_normal_hurtp_all"]=attr[72],
["attr_skill_hurtp_all"]=attr[73],
["attr_atkp_all"]=attr[74],
["attr_atk"]=attr[75],
["attr_hp"]=attr[76],
["attr_normal_hurt"]=attr[77],
["attr_skill_hurt"]=attr[78]
}
}
local config = {
data=attr,
keys=keys,
count=66
count=78
}
return config

View File

@ -262,6 +262,54 @@ local attr = {
[66]={
["id"]=66,
["name"]="attr_atkp_purple_all"
},
[67]={
["id"]=67,
["name"]="atk_all"
},
[68]={
["id"]=68,
["name"]="attr_hp_all"
},
[69]={
["id"]=69,
["name"]="attr_dmgdec_all"
},
[70]={
["id"]=70,
["name"]="attr_crit_all"
},
[71]={
["id"]=71,
["name"]="attr_crit_time_all"
},
[72]={
["id"]=72,
["name"]="attr_normal_hurtp_all"
},
[73]={
["id"]=73,
["name"]="attr_skill_hurtp_all"
},
[74]={
["id"]=74,
["name"]="attr_atkp_all"
},
[75]={
["id"]=75,
["name"]="attr_atk"
},
[76]={
["id"]=76,
["name"]="attr_hp"
},
[77]={
["id"]=77,
["name"]="attr_normal_hurt"
},
[78]={
["id"]=78,
["name"]="attr_skill_hurt"
}
}
local keys = {
@ -331,12 +379,24 @@ local keys = {
["attr_atkp_yellow_all"]=attr[63],
["attr_atkp_green_all"]=attr[64],
["attr_atkp_blue_all"]=attr[65],
["attr_atkp_purple_all"]=attr[66]
["attr_atkp_purple_all"]=attr[66],
["atk_all"]=attr[67],
["attr_hp_all"]=attr[68],
["attr_dmgdec_all"]=attr[69],
["attr_crit_all"]=attr[70],
["attr_crit_time_all"]=attr[71],
["attr_normal_hurtp_all"]=attr[72],
["attr_skill_hurtp_all"]=attr[73],
["attr_atkp_all"]=attr[74],
["attr_atk"]=attr[75],
["attr_hp"]=attr[76],
["attr_normal_hurt"]=attr[77],
["attr_skill_hurt"]=attr[78]
}
}
local config = {
data=attr,
keys=keys,
count=66
count=78
}
return config

View File

@ -323,6 +323,54 @@ local attr = {
[66]={
["id"]=66,
["name"]="attr_atkp_purple_all"
},
[67]={
["id"]=67,
["name"]="atk_all"
},
[68]={
["id"]=68,
["name"]="attr_hp_all"
},
[69]={
["id"]=69,
["name"]="attr_dmgdec_all"
},
[70]={
["id"]=70,
["name"]="attr_crit_all"
},
[71]={
["id"]=71,
["name"]="attr_crit_time_all"
},
[72]={
["id"]=72,
["name"]="attr_normal_hurtp_all"
},
[73]={
["id"]=73,
["name"]="attr_skill_hurtp_all"
},
[74]={
["id"]=74,
["name"]="attr_atkp_all"
},
[75]={
["id"]=75,
["name"]="attr_atk"
},
[76]={
["id"]=76,
["name"]="attr_hp"
},
[77]={
["id"]=77,
["name"]="attr_normal_hurt"
},
[78]={
["id"]=78,
["name"]="attr_skill_hurt"
}
}
local keys = {
@ -392,12 +440,24 @@ local keys = {
["attr_atkp_yellow_all"]=attr[63],
["attr_atkp_green_all"]=attr[64],
["attr_atkp_blue_all"]=attr[65],
["attr_atkp_purple_all"]=attr[66]
["attr_atkp_purple_all"]=attr[66],
["atk_all"]=attr[67],
["attr_hp_all"]=attr[68],
["attr_dmgdec_all"]=attr[69],
["attr_crit_all"]=attr[70],
["attr_crit_time_all"]=attr[71],
["attr_normal_hurtp_all"]=attr[72],
["attr_skill_hurtp_all"]=attr[73],
["attr_atkp_all"]=attr[74],
["attr_atk"]=attr[75],
["attr_hp"]=attr[76],
["attr_normal_hurt"]=attr[77],
["attr_skill_hurt"]=attr[78]
}
}
local config = {
data=attr,
keys=keys,
count=66
count=78
}
return config

View File

@ -323,6 +323,54 @@ local attr = {
[66]={
["id"]=66,
["name"]="attr_atkp_purple_all"
},
[67]={
["id"]=67,
["name"]="atk_all"
},
[68]={
["id"]=68,
["name"]="attr_hp_all"
},
[69]={
["id"]=69,
["name"]="attr_dmgdec_all"
},
[70]={
["id"]=70,
["name"]="attr_crit_all"
},
[71]={
["id"]=71,
["name"]="attr_crit_time_all"
},
[72]={
["id"]=72,
["name"]="attr_normal_hurtp_all"
},
[73]={
["id"]=73,
["name"]="attr_skill_hurtp_all"
},
[74]={
["id"]=74,
["name"]="attr_atkp_all"
},
[75]={
["id"]=75,
["name"]="attr_atk"
},
[76]={
["id"]=76,
["name"]="attr_hp"
},
[77]={
["id"]=77,
["name"]="attr_normal_hurt"
},
[78]={
["id"]=78,
["name"]="attr_skill_hurt"
}
}
local keys = {
@ -392,12 +440,24 @@ local keys = {
["attr_atkp_yellow_all"]=attr[63],
["attr_atkp_green_all"]=attr[64],
["attr_atkp_blue_all"]=attr[65],
["attr_atkp_purple_all"]=attr[66]
["attr_atkp_purple_all"]=attr[66],
["atk_all"]=attr[67],
["attr_hp_all"]=attr[68],
["attr_dmgdec_all"]=attr[69],
["attr_crit_all"]=attr[70],
["attr_crit_time_all"]=attr[71],
["attr_normal_hurtp_all"]=attr[72],
["attr_skill_hurtp_all"]=attr[73],
["attr_atkp_all"]=attr[74],
["attr_atk"]=attr[75],
["attr_hp"]=attr[76],
["attr_normal_hurt"]=attr[77],
["attr_skill_hurt"]=attr[78]
}
}
local config = {
data=attr,
keys=keys,
count=66
count=78
}
return config

View File

@ -323,6 +323,54 @@ local attr = {
[66]={
["id"]=66,
["name"]="attr_atkp_purple_all"
},
[67]={
["id"]=67,
["name"]="atk_all"
},
[68]={
["id"]=68,
["name"]="attr_hp_all"
},
[69]={
["id"]=69,
["name"]="attr_dmgdec_all"
},
[70]={
["id"]=70,
["name"]="attr_crit_all"
},
[71]={
["id"]=71,
["name"]="attr_crit_time_all"
},
[72]={
["id"]=72,
["name"]="attr_normal_hurtp_all"
},
[73]={
["id"]=73,
["name"]="attr_skill_hurtp_all"
},
[74]={
["id"]=74,
["name"]="attr_atkp_all"
},
[75]={
["id"]=75,
["name"]="attr_atk"
},
[76]={
["id"]=76,
["name"]="attr_hp"
},
[77]={
["id"]=77,
["name"]="attr_normal_hurt"
},
[78]={
["id"]=78,
["name"]="attr_skill_hurt"
}
}
local keys = {
@ -392,12 +440,24 @@ local keys = {
["attr_atkp_yellow_all"]=attr[63],
["attr_atkp_green_all"]=attr[64],
["attr_atkp_blue_all"]=attr[65],
["attr_atkp_purple_all"]=attr[66]
["attr_atkp_purple_all"]=attr[66],
["atk_all"]=attr[67],
["attr_hp_all"]=attr[68],
["attr_dmgdec_all"]=attr[69],
["attr_crit_all"]=attr[70],
["attr_crit_time_all"]=attr[71],
["attr_normal_hurtp_all"]=attr[72],
["attr_skill_hurtp_all"]=attr[73],
["attr_atkp_all"]=attr[74],
["attr_atk"]=attr[75],
["attr_hp"]=attr[76],
["attr_normal_hurt"]=attr[77],
["attr_skill_hurt"]=attr[78]
}
}
local config = {
data=attr,
keys=keys,
count=66
count=78
}
return config

View File

@ -352,140 +352,6 @@ function GFunc.UiRectangleContainsScreenPoint(go, x, y)
return CS.BF.Utils.RectangleContainsScreenPoint(go:getTransform(), x, y, uiCamera)
end
function GFunc.getPerByW(ratio)
if ratio < 0 then
return math.ceil(ratio*0.01)
else
return math.floor(ratio*0.01)
end
end
function GFunc.getPerByW2(ratio)
if ratio < 0 then
return math.ceil(ratio*0.0001)
else
return math.floor(ratio*0.0001)
end
end
function GFunc.getPerByW3(ratio)
return ratio*0.0001
end
function GFunc.getPerStr(key, str, ispercent)
if ispercent or key == GConst.BattleConst.BUFF_NAME.ATKP_ADD or
key == GConst.BattleConst.BUFF_NAME.ATKP_COLOR_ADD or
key == GConst.BattleConst.BUFF_NAME.ATKP_RED_ADD or
key == GConst.BattleConst.BUFF_NAME.ATKP_YELLOW_ADD or
key == GConst.BattleConst.BUFF_NAME.ATKP_GREEN_ADD or
key == GConst.BattleConst.BUFF_NAME.ATKP_BLUE_ADD or
key == GConst.BattleConst.BUFF_NAME.ATKP_PURPLE_ADD or
key == GConst.BattleConst.BUFF_NAME.DEC_DMG_RED_ADD or
key == GConst.BattleConst.BUFF_NAME.DEC_DMG_YELLOW_ADD or
key == GConst.BattleConst.BUFF_NAME.DEC_DMG_GREEN_ADD or
key == GConst.BattleConst.BUFF_NAME.DEC_DMG_BLUE_ADD or
key == GConst.BattleConst.BUFF_NAME.DEC_DMG_PURPLE_ADD or
key == GConst.BattleConst.BUFF_NAME.DEC_DMG_ALL_ADD or
key == GConst.BattleConst.BUFF_NAME.WEAKNESS_RED_ADD or
key == GConst.BattleConst.BUFF_NAME.WEAKNESS_YELLOW_ADD or
key == GConst.BattleConst.BUFF_NAME.WEAKNESS_GREEN_ADD or
key == GConst.BattleConst.BUFF_NAME.WEAKNESS_BLUE_ADD or
key == GConst.BattleConst.BUFF_NAME.WEAKNESS_PURPLE_ADD or
key == GConst.BattleConst.BUFF_NAME.WEAKNESS_ALL_ADD or
key == GConst.BattleConst.BUFF_NAME.DMG_ADDITION_RED_ADD or
key == GConst.BattleConst.BUFF_NAME.DMG_ADDITION_YELLOW_ADD or
key == GConst.BattleConst.BUFF_NAME.DMG_ADDITION_GREEN_ADD or
key == GConst.BattleConst.BUFF_NAME.DMG_ADDITION_BLUE_ADD or
key == GConst.BattleConst.BUFF_NAME.DMG_ADDITION_PURPLE_ADD or
key == GConst.BattleConst.BUFF_NAME.DMG_ADDITION_ALL_ADD or
key == GConst.BattleConst.BUFF_NAME.HPP_ADD or
key == GConst.BattleConst.BUFF_NAME.CRIT_TIME_ADD or
key == GConst.BattleConst.BUFF_NAME.EXP_TIME_ADD or
key == GConst.BattleConst.BUFF_NAME.CURED_ADD or
key == GConst.BattleConst.BUFF_NAME.POISON or
key == GConst.BattleConst.BUFF_NAME.SHIELD or
key == GConst.BattleConst.BUFF_NAME.SHIELD_REBOUND_200 or
key == GConst.BattleConst.BUFF_NAME.VULNERABLE or
key == GConst.BattleConst.BUFF_NAME.CORRUPT or
key == GConst.BattleConst.BUFF_NAME.BLEED or
key == GConst.BattleConst.BUFF_NAME.WEAKEN or
key == GConst.BattleConst.BUFF_NAME.COUNTER_ATTACK or
key == GConst.BattleConst.BUFF_NAME.THORNS or
key == GConst.BattleConst.BUFF_NAME.SHIELD_REBOUND_400 or
key == GConst.BattleConst.BUFF_NAME.SHIELD_ICE_REBOUND_400 or
key == GConst.BattleConst.BUFF_NAME.BURN or
key == GConst.BattleConst.BUFF_NAME.SHIELD_ICE or
key == GConst.BattleConst.BUFF_NAME.SHIELD_ICE_02 or
key == GConst.BattleConst.BUFF_NAME.BLOCK or
key == GConst.BattleConst.BUFF_NAME.CRIT_ADD or
key == GConst.BattleConst.COUNTER_ATTACK or
key == GConst.BattleConst.BUFF_NAME.SHIELD_ICE_REBOUND_200 or
key == GConst.BattleConst.BUFF_NAME.SHIELD_REBOUND_100 or
key == GConst.BattleConst.BUFF_NAME.SKILL_HURT_ADD_SHOW
then
str = str // 100 .. "%"
end
return str
end
function GFunc.getBuffDesc(buffName, effectNum, ispercent)
effectNum = GFunc.getPerStr(buffName, effectNum, ispercent)
return I18N:getTextWithOtherKey("buff", "name", buffName, "desc", effectNum)
end
function GFunc.getAttrDesc(attrName, attrNum)
attrNum = GFunc.getAttrShowValue(attrName, attrNum, true)
return I18N:getTextWithOtherKey("attr", "name", attrName, "desc", attrNum)
end
-- 获取属性用于显示的数值
function GFunc.getAttrShowValue(attrType, attrNum, notPercentSign)
if table.containValue(GConst.MATCH_ATTACK_ADD_NAME, attrType) or
table.containValue(GConst.MATCH_HP_ADD_NAME, attrType) or
table.containValue(GConst.MATCH_NORMAL_HURTP_NAME, attrType) or
table.containValue(GConst.MATCH_SKILL_HURTP_NAME, attrType) or
table.containValue(GConst.MATCH_CRIT_NAME, attrType) or
table.containValue(GConst.MATCH_CRIT_TIME_NAME, attrType) or
table.containValue(GConst.MATCH_CURED_NAME, attrType) or
table.containValue(GConst.MATCH_ALL_ATKP_NAME, attrType) or
table.containValue(GConst.MATCH_ALL_HURTP_NAME, attrType)
then
local str = notPercentSign and "" or "%"
return attrNum // GConst.BattleConst.PERCENT_FACTOR .. str
else
return attrNum // GConst.BattleConst.DEFAULT_FACTOR
end
end
-- 属性id转属性名
function GFunc.getAttrNameById(id)
local cfg = ConfigManager:getConfig("attr")[id]
if cfg then
return cfg.name
end
if EDITOR_MODE then
Logger.logError("没有找到属性id:" .. tostring(id))
end
return nil
end
-- 属性名转属性id
function GFunc.getAttrIdByName(type)
for id, info in pairs(ConfigManager:getConfig("attr")) do
if info.name == type then
return id
end
end
if EDITOR_MODE then
Logger.logError("没有找到属性名:" .. tostring(type))
end
return nil
end
function GFunc.getAttrName(key)
return I18N:getText("attr", key, "name")
end
-- 获取任务icon
function GFunc.getTaskIcon(taskType, taskTarget)
if taskType == GConst.TaskConst.TASK_TYPE.X_ARENA_GRADING then
@ -1996,17 +1862,6 @@ function GFunc.getHeroQltStr(qlt)
return I18N:getGlobalText("QLT_DESC_" .. qlt)
end
-- 获取计算了加成的最终属性值全部属性固定属性id加成属性id
function GFunc.getFinalAttrValue(allAttrs, fixedId, factorId)
local fixedValue = allAttrs[fixedId] or 0
local factorValue = allAttrs[factorId] or 0
if factorValue > 0 then
return math.floor(fixedValue * (1 + factorValue / GConst.DEFAULT_FACTOR) + 0.0000001)
else
return fixedValue
end
end
-- 通用
function GFunc.getQltColor(qlt)
qlt = qlt or GConst.QLT_TYPE.NORMAL
@ -2078,4 +1933,130 @@ function GFunc.showPowerToast(before, after, posY)
end
--@endregion
--@region 属性相关
function GFunc.getFinalAttrValue(attrName, attrNum)
local cfg = ConfigManager:getConfigWithOtherKey("attr", "name")[attrName]
if cfg and cfg.is_percent then
return GFunc.num2Str(attrNum / 100, 2) .. "%"
else
return attrNum // GConst.DEFAULT_FACTOR
end
end
--@TODO 2025-09-11 11:54:20
function GFunc.getPerStr(key, str, ispercent)
if ispercent or key == GConst.BattleConst.BUFF_NAME.ATKP_ADD or
key == GConst.BattleConst.BUFF_NAME.ATKP_COLOR_ADD or
key == GConst.BattleConst.BUFF_NAME.ATKP_RED_ADD or
key == GConst.BattleConst.BUFF_NAME.ATKP_YELLOW_ADD or
key == GConst.BattleConst.BUFF_NAME.ATKP_GREEN_ADD or
key == GConst.BattleConst.BUFF_NAME.ATKP_BLUE_ADD or
key == GConst.BattleConst.BUFF_NAME.ATKP_PURPLE_ADD or
key == GConst.BattleConst.BUFF_NAME.DEC_DMG_RED_ADD or
key == GConst.BattleConst.BUFF_NAME.DEC_DMG_YELLOW_ADD or
key == GConst.BattleConst.BUFF_NAME.DEC_DMG_GREEN_ADD or
key == GConst.BattleConst.BUFF_NAME.DEC_DMG_BLUE_ADD or
key == GConst.BattleConst.BUFF_NAME.DEC_DMG_PURPLE_ADD or
key == GConst.BattleConst.BUFF_NAME.DEC_DMG_ALL_ADD or
key == GConst.BattleConst.BUFF_NAME.WEAKNESS_RED_ADD or
key == GConst.BattleConst.BUFF_NAME.WEAKNESS_YELLOW_ADD or
key == GConst.BattleConst.BUFF_NAME.WEAKNESS_GREEN_ADD or
key == GConst.BattleConst.BUFF_NAME.WEAKNESS_BLUE_ADD or
key == GConst.BattleConst.BUFF_NAME.WEAKNESS_PURPLE_ADD or
key == GConst.BattleConst.BUFF_NAME.WEAKNESS_ALL_ADD or
key == GConst.BattleConst.BUFF_NAME.DMG_ADDITION_RED_ADD or
key == GConst.BattleConst.BUFF_NAME.DMG_ADDITION_YELLOW_ADD or
key == GConst.BattleConst.BUFF_NAME.DMG_ADDITION_GREEN_ADD or
key == GConst.BattleConst.BUFF_NAME.DMG_ADDITION_BLUE_ADD or
key == GConst.BattleConst.BUFF_NAME.DMG_ADDITION_PURPLE_ADD or
key == GConst.BattleConst.BUFF_NAME.DMG_ADDITION_ALL_ADD or
key == GConst.BattleConst.BUFF_NAME.HPP_ADD or
key == GConst.BattleConst.BUFF_NAME.CRIT_TIME_ADD or
key == GConst.BattleConst.BUFF_NAME.EXP_TIME_ADD or
key == GConst.BattleConst.BUFF_NAME.CURED_ADD or
key == GConst.BattleConst.BUFF_NAME.POISON or
key == GConst.BattleConst.BUFF_NAME.SHIELD or
key == GConst.BattleConst.BUFF_NAME.SHIELD_REBOUND_200 or
key == GConst.BattleConst.BUFF_NAME.VULNERABLE or
key == GConst.BattleConst.BUFF_NAME.CORRUPT or
key == GConst.BattleConst.BUFF_NAME.BLEED or
key == GConst.BattleConst.BUFF_NAME.WEAKEN or
key == GConst.BattleConst.BUFF_NAME.COUNTER_ATTACK or
key == GConst.BattleConst.BUFF_NAME.THORNS or
key == GConst.BattleConst.BUFF_NAME.SHIELD_REBOUND_400 or
key == GConst.BattleConst.BUFF_NAME.SHIELD_ICE_REBOUND_400 or
key == GConst.BattleConst.BUFF_NAME.BURN or
key == GConst.BattleConst.BUFF_NAME.SHIELD_ICE or
key == GConst.BattleConst.BUFF_NAME.SHIELD_ICE_02 or
key == GConst.BattleConst.BUFF_NAME.BLOCK or
key == GConst.BattleConst.BUFF_NAME.CRIT_ADD or
key == GConst.BattleConst.COUNTER_ATTACK or
key == GConst.BattleConst.BUFF_NAME.SHIELD_ICE_REBOUND_200 or
key == GConst.BattleConst.BUFF_NAME.SHIELD_REBOUND_100 or
key == GConst.BattleConst.BUFF_NAME.SKILL_HURT_ADD_SHOW
then
str = str // 100 .. "%"
end
return str
end
function GFunc.getBuffDesc(buffName, effectNum, ispercent)
effectNum = GFunc.getPerStr(buffName, effectNum, ispercent)
return I18N:getTextWithOtherKey("buff", "name", buffName, "desc", effectNum)
end
function GFunc.getAttrDesc(attrName, attrNum)
attrNum = GFunc.getAttrShowValue(attrName, attrNum, true)
return I18N:getTextWithOtherKey("attr", "name", attrName, "desc", attrNum)
end
-- 获取属性用于显示的数值
function GFunc.getAttrShowValue(attrType, attrNum, notPercentSign)
if table.containValue(GConst.MATCH_ATTACK_ADD_NAME, attrType) or
table.containValue(GConst.MATCH_HP_ADD_NAME, attrType) or
table.containValue(GConst.MATCH_NORMAL_HURTP_NAME, attrType) or
table.containValue(GConst.MATCH_SKILL_HURTP_NAME, attrType) or
table.containValue(GConst.MATCH_CRIT_NAME, attrType) or
table.containValue(GConst.MATCH_CRIT_TIME_NAME, attrType) or
table.containValue(GConst.MATCH_CURED_NAME, attrType) or
table.containValue(GConst.MATCH_ALL_ATKP_NAME, attrType) or
table.containValue(GConst.MATCH_ALL_HURTP_NAME, attrType)
then
local str = notPercentSign and "" or "%"
return attrNum // GConst.BattleConst.PERCENT_FACTOR .. str
else
return attrNum // GConst.BattleConst.DEFAULT_FACTOR
end
end
-- 属性id转属性名
function GFunc.getAttrNameById(id)
local cfg = ConfigManager:getConfig("attr")[id]
if cfg then
return cfg.name
end
if EDITOR_MODE then
Logger.logError("没有找到属性id:" .. tostring(id))
end
return nil
end
-- 属性名转属性id
function GFunc.getAttrIdByName(type)
for id, info in pairs(ConfigManager:getConfig("attr")) do
if info.name == type then
return id
end
end
if EDITOR_MODE then
Logger.logError("没有找到属性名:" .. tostring(type))
end
return nil
end
function GFunc.getAttrNameByType(type)
local key = GFunc.getAttrIdByName(type)
return I18N:getText("attr", key, "desc")
end
--@endregion
return GFunc

View File

@ -28,33 +28,26 @@ function EquipCell:refresh(entity, slotId, showMask, showCheck, showLock)
return
end
self:_refreshShow(entity:getQlt(), entity:getIconRes(), entity:getPartLv(slotId), showMask, showCheck, showLock)
end
local qlt = entity:getQlt()
local icon = entity:getIconRes()
local lv = entity:getPartLv(slotId)
self.imgQlt:setSprite(GConst.ATLAS_PATH.ICON_EQUIP, "frame_" .. qlt)
self.imgIcon:setActive(true)
self.imgIcon:setSprite(GConst.ATLAS_PATH.ICON_EQUIP, icon)
function EquipCell:refreshByUid(uid)
self:refresh(DataManager.EquipData:getEntityByUid(uid))
end
-- if lv then
-- self.levelNode:setActive(true)
-- self.txLv:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_DESC_2, lv))
-- else
-- self.levelNode:setActive(false)
-- end
-- message Equip {
-- int64 uid = 1; // 唯一 id
-- int32 cfg_id = 2; // 配置 id
-- int32 init_id = 3; // 初始配置 id (升品前)
-- repeated Attr purity_attrs = 4; // 洗炼属性
-- repeated Attr new_purity_attrs = 5; // 未应用的洗炼属性
-- }
function EquipCell:refreshByServer(equip)
local id = equip.cfg_id
self:_refreshShow(DataManager.EquipData:getQlt(id), DataManager.EquipData:getIconRes(id))
end
-- message EquipInfo {
-- int32 cfg_id = 1; // 配置 ID
-- int32 level = 2; // 槽位等级
-- repeated Attr purity_attrs = 3; // 洗炼属性
-- }
function EquipCell:refreshByServer2(equip)
local id = equip.cfg_id
local lv = equip.level
self:_refreshShow(DataManager.EquipData:getQlt(id), DataManager.EquipData:getIconRes(id), lv)
self:showMask(showMask)
self:showCheck(showCheck)
self:showLock(showLock)
self:showSelect(false)
self:showLight(false)
self:setShowUp(false)
end
function EquipCell:refreshByCfg(id, showMask, showCheck, showLock)
@ -66,33 +59,7 @@ function EquipCell:refreshByCustom(qlt, icon, lv, showMask, showCheck, showLock)
end
function EquipCell:_refreshShow(qlt, icon, lv, showMask, showCheck, showLock)
if qlt then
self.imgQlt:setSprite(GConst.ATLAS_PATH.ICON_EQUIP, "frame_" .. qlt)
else
self.imgQlt:setSprite(GConst.ATLAS_PATH.ICON_EQUIP, "frame_0")
end
if icon then
self.imgIcon:setActive(true)
Logger.logHighlight("icon: %s", icon)
self.imgIcon:setSprite(GConst.ATLAS_PATH.ICON_EQUIP, icon)
else
self.imgIcon:setActive(false)
end
if lv then
self.levelNode:setActive(true)
self.txLv:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_DESC_2, lv))
else
self.levelNode:setActive(false)
end
self:showMask(showMask)
self:showCheck(showCheck)
self:showLock(showLock)
self:showSelect(false)
self:showLight(false)
self:setShowUp(false)
end
function EquipCell:refreshEmpty(part, showSelect)

View File

@ -19,7 +19,7 @@ function EquipListCell:refresh(equipEntity, slotId, equipPart)
self.equipEntity = equipEntity
self.slotId = slotId
self.equipPart = equipPart
self.nameTx:setText(equipEntity:getName())
self.nameTx:setText(equipEntity:getNameQltColor())
self.powerTx:setText(equipEntity:getPower())
self.equipCell:refresh(equipEntity, slotId)

View File

@ -143,7 +143,7 @@ function EquipGrowthUI:onLoadRootComplete()
self.pageBtns[i] = uiMap["equip_growth_ui.bg.page_btn_" .. i]
self.pageBtnTxs[i] = uiMap["equip_growth_ui.bg.page_btn_" .. i .. ".text"]
self.pageBtns[i] :addClickListener(function()
if not self:getIsOpen(i) or self.equipPart == i then
if self.equipPart == i then
return
end
self.equipPart = i
@ -159,7 +159,7 @@ function EquipGrowthUI:onLoadRootComplete()
end
function EquipGrowthUI:onRefresh()
self:initList()
-- self:initList()
self:refreshPageBtn()
self:refreshPageInfo()
self:refreshEquipCell()
@ -173,6 +173,16 @@ function EquipGrowthUI:refreshEquipCell()
else
self.equipCell:refreshEmpty(self.equipPart)
end
for part = 1, 6 do
local eid = DataManager.EquipData:getPartEquipUid(self.slotId, part)
if eid and eid > 0 then
local equipEntity = DataManager.EquipData:getEquipByUid(eid)
self.equipCells[part]:refresh(equipEntity, part)
else
self.equipCells[part]:refreshEmpty(part)
end
end
end
function EquipGrowthUI:refreshPageBtn()
@ -202,6 +212,7 @@ function EquipGrowthUI:refreshPageUp()
local lv = DataManager.EquipData:getPartLv(self.slotId, self.equipPart)
local eid = DataManager.EquipData:getPartEquipUid(self.slotId, self.equipPart)
local equipEntity = DataManager.EquipData:getEquipByUid(eid)
local isLvMax = equipEntity:getIsLvMax(self.slotId)
-- if eid and eid > 0 then
-- local equipEntity = DataManager.EquipData:getEquipByUid(eid)
-- self.equipCell:refresh(equipEntity, self.equipPart)
@ -210,14 +221,32 @@ function EquipGrowthUI:refreshPageUp()
-- end
self.upCurrLvTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_1, lv))
self.upNextLvTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_1, lv + 1))
self.upDescTx:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_DESC_14))
self.upAttrNameTx:setText(equipEntity:getName())
local lv = DataManager.EquipData:getResonateLevel(GConst.EquipConst.RESONATE_PAGE.LV_UP, self.equipPart)
self.upDescTx1:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_HERO_ACTIVATION_1, lv))
self.upMaxDescTx:setActive(isLvMax)
self.upAttrCurrTx:setText(equipEntity:getBaseAttrWithLv(lv))
self.upAttrNextTx:setText(equipEntity:getBaseAttrWithLv(lv + 1))
self.upDescTx1:setText("adasd")
self.upCostTx:setText("1323")
local _, _, resonateAttrNum = DataManager.EquipData:getResonateLevel(GConst.EquipConst.RESONATE_PAGE.LV_UP, self.equipPart)
local currAttr = equipEntity:getBaseAttrWithLv(lv)
self.upAttrNameTx:setText(GFunc.getAttrNameByType(currAttr.type))
local currAttrNum = GFunc.getFinalAttrValue(currAttr.type, currAttr.num + resonateAttrNum)
self.upAttrCurrTx:setText(currAttrNum)
if not isLvMax then
self.upNextLvTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_1, lv + 1))
local nextAttr = equipEntity:getBaseAttrWithLv(lv + 1)
local nextAttrNum = GFunc.getFinalAttrValue(nextAttr.type, nextAttr.num + resonateAttrNum)
self.upAttrNextTx:setText(nextAttrNum)
local itemCost = DataManager.EquipData:getLevelCost(lv + 1)
local costId = GFunc.getRewardId(itemCost)
local costNum = GFunc.getRewardNum(itemCost)
local count = DataManager.BagData.ItemData:getItemNumById(costId)
self.upCostIcon:setSprite(ModuleManager.ItemManager:getItemIcon(costId))
if costNum > count then
self.upCostTx:setText("<color=#FF0000>" .. count .. "</color>/"..costNum)
else
self.upCostTx:setText(count .. "/" .. costNum)
end
end
end
--@endregion

View File

@ -17,9 +17,11 @@ function EquipInfoUI:ctor(params)
if params.showType then
self.showType = params.showType
end
self.id = params and params.id --配置id
self.uid = params and params.uid --唯一id
self.slotId = params and params.slotId --上阵槽位
params = params or {}
self.heroEntity = params.heroEntity
self.id = params.id --配置id
self.uid = params.uid --唯一id
self.slotId = params.slotId --上阵槽位
end
function EquipInfoUI:onLoadRootComplete()
@ -65,10 +67,10 @@ function EquipInfoUI:onLoadRootComplete()
GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.EQUIP_HERO_DESC_17))
return
end
ModuleManager.EquipManager:showReplaceUI(self.slotId, self.part)
ModuleManager.EquipManager:showEquipListUI(self.heroEntity, self.part)
end)
self.upBtn:addClickListener(function()
ModuleManager.EquipManager:showGrowthUI(self.slotId, self.part)
ModuleManager.EquipManager:showEquipGrowthUI(self.slotId, self.part)
end)
self:bind(DataManager.EquipData, "isDirty", function()
self:closeUI()
@ -91,7 +93,7 @@ function EquipInfoUI:refreshInfo()
self.partTx:setText(self.entity:getPartName())
self.powerTx:setText(self.entity:getPower())
local attr = self.entity:getBaseAttr()
self.attrNameTx:setText(GFunc.getAttrName(GFunc.getAttrIdByName(attr.type)))
self.attrNameTx:setText(GFunc.getAttrDesc(attr.type, attr.num))
self.attrValueTx:setText(attr.num // GConst.DEFAULT_FACTOR)
local txW = self.attrValueTx:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO).preferredWidth
@ -105,15 +107,15 @@ function EquipInfoUI:refreshPreview()
return
end
self.entity = DataManager.EquipData:createEquipEntity({cfg_id = self.id})
self.equipCell:refreshById(self.id)
self.equipCell:refreshByCfg(self.id)
self.attrValueAddTx:setText(GConst.EMPTY_STRING)
for i,cell in ipairs(self.attrExtraCells) do
cell.attrExtraCell:setActive(true)
local extraAttr = DataManager.EquipData:getExtraAttr(self.id, i)
cell.attrNameTx:setText(GFunc.getAttrName(GFunc.getAttrIdByName(extraAttr.type)))
cell.attrNameTx:setText(GFunc.getAttrDesc(extraAttr.type, extraAttr.minnum))
cell.attrValueTx:setText(GConst.EMPTY_STRING)
cell.attrValueAddTx:setActive(true)
-- cell.attrValueAddTx:setText("<color=#FFFFFF>".. DataManager.EquipData:getFinalAttr(extraAttr.type, extraAttr.minnum) .. "-".. DataManager.EquipData:getFinalAttr(extraAttr.type, extraAttr.maxnum) .."</color>")
cell.attrValueAddTx:setText("<color=#FFFFFF>".. GFunc.getFinalAttrValue(extraAttr.type, extraAttr.minnum) .. "-".. GFunc.getFinalAttrValue(extraAttr.type, extraAttr.maxnum) .."</color>")
end
self.replaceBtn:setActive(false)
self.upBtn:setActive(false)
@ -121,15 +123,15 @@ end
function EquipInfoUI:refreshBaseAttr()
self.entity = DataManager.EquipData:getEquipByUid(self.uid)
self.equipCell:refreshById(self.entity:getId())
local attrs = self.entity:getExtraMap()
self.equipCell:refreshByCfg(self.entity:getId())
local attrs = self.entity:getExtraList()
local count = #attrs
for i, cell in ipairs(self.attrExtraCells) do
if count >= i then
cell.attrExtraCell:setActive(true)
local extraAttr = attrs[i]
cell.attrNameTx:setText(GFunc.getAttrName(extraAttr.id))
-- cell.attrValueTx:setText(DataManager.EquipData:getFinalAttr(GFunc.getAttrNameById(extraAttr.id), extraAttr.value))
cell.attrNameTx:setText(GFunc.getAttrDesc(extraAttr.type, extraAttr.num))
cell.attrValueTx:setText(GFunc.getFinalAttrValue(extraAttr.type, extraAttr.num))
cell.attrValueTx:setAnchoredPositionX(-10)
cell.attrValueAddTx:setActive(false)
else
@ -155,28 +157,29 @@ function EquipInfoUI:refreshAllAttr()
self.level = DataManager.EquipData:getPartLv(self.slotId, self.part)
self.refine = DataManager.EquipData:getPartRefine(self.slotId, self.part)
local resonateLv, resonateNextLv, resonateAttrNum, resonateAttrNextNum = DataManager.EquipData:getResonateLevel(GConst.EquipConst.RESONATE_PAGE.LV_UP, self.slotId)
local baseValueAdd = DataManager.EquipData:getBaseAttrLvAdd(self.level) + resonateAttrNum
local baseValueAdd = DataManager.EquipData:getBaseAttrLvAdd(self.entity:getBaseAttr().type, self.level) + resonateAttrNum
if baseValueAdd <= 0 then
self.attrValueAddTx:setText(GConst.EMPTY_STRING)
else
self.attrValueAddTx:setText("<color=#09FF00>(+".. math.floor(baseValueAdd) ..")</color>")
end
local attrs = self.entity:getExtraMap()
local count = table.nums(attrs)
local attrs = self.entity:getExtraList()
local count = #attrs
for i, cell in ipairs(self.attrExtraCells) do
if count >= i then
cell.attrExtraCell:setActive(true)
local extraAttr = attrs[i]
cell.attrNameTx:setText(GFunc.getAttrName(extraAttr.id))
-- cell.attrValueTx:setText(DataManager.EquipData:getFinalAttr(GFunc.getAttrNameById(extraAttr.id), extraAttr.value))
local attrAdd = DataManager.EquipData:getRefineAttrAdd(self.refine, extraAttr.id)
local extraAttrId = GFunc.getAttrIdByName(extraAttr.type)
cell.attrNameTx:setText(GFunc.getAttrDesc(extraAttr.type, extraAttr.num))
cell.attrValueTx:setText(GFunc.getFinalAttrValue(extraAttr.type, extraAttr.num))
local attrAdd = DataManager.EquipData:getRefineAttrAdd(self.refine, extraAttrId)
local anchorX = -3
if attrAdd.num <= 0 then
cell.attrValueAddTx:setActive(false)
else
cell.attrValueAddTx:setActive(true)
-- cell.attrValueAddTx:setText("<color=#09FF00>(+".. DataManager.EquipData:getFinalAttr(attrAdd.type, attrAdd.num) ..")</color>")
cell.attrValueAddTx:setText("<color=#09FF00>(+".. GFunc.getFinalAttrValue(attrAdd.type, attrAdd.num) ..")</color>")
local meshProCompNext = cell.attrValueAddTx:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO)
local nowTipsNextX = meshProCompNext.preferredWidth
cell.attrValueAddTx:setSizeDeltaX(nowTipsNextX)

View File

@ -32,13 +32,15 @@ function EquipInfoComp:init()
self.equipCells[i]:addClickListener(function()
local eid = DataManager.EquipData:getPartEquipUid(self.heroEntity:getMatchType(), i)
if eid and eid > 0 then
-- local equipEntity = DataManager.EquipData:getEquipByUid(eid)
local equipEntity = DataManager.EquipData:getEquipByUid(eid)
-- self.equipCells[part]:refresh(equipEntity, part)
-- EquipManager:showEquipGrowthUI(slotId)
local parmas = {}
parmas.heroEntity = self.heroEntity
parmas.slotId = self.heroEntity:getMatchType()
parmas.part = i
parmas.uid = eid
parmas.id = equipEntity:getId()
parmas.showType = GConst.EquipConst.INFO_SHOW_TYPE.ALL_ATTR
ModuleManager.EquipManager:showEquipInfoUI(parmas)
else
@ -129,7 +131,6 @@ function EquipInfoComp:refreshEquip()
local equipEntity = DataManager.EquipData:getEquipByUid(eid)
self.equipCells[part]:refresh(equipEntity, part)
else
-- self.equipCells[part]:refreshByCustom(nil, part)
self.equipCells[part]:refreshEmpty(part)
end
end

View File

@ -296,11 +296,20 @@ function EquipData:getPartLv(slotId, part)
return 0
end
function EquipData:isPartLvMax(slotId, part)
local lv = self:getPartLv(slotId, part)
return lv >= #self:getLevelConfig()
end
--基础属性额外强化值
function EquipData:getBaseAttrLvAdd(lv)
function EquipData:getBaseAttrLvAdd(attrType, lv)
local baseAttrAdd = 0
for i = 1, lv do
baseAttrAdd = baseAttrAdd + self:getLevelConfig(i).base_attr_add.num
if attrType == "attr_atk" then
baseAttrAdd = baseAttrAdd + self:getLevelConfig(i).base_attr_add[1]
else
baseAttrAdd = baseAttrAdd + self:getLevelConfig(i).base_attr_add[2]
end
end
return baseAttrAdd
end

View File

@ -72,7 +72,7 @@ end
--@region 属性
function EquipEntity:initBaseAttr()
self.baseAttr = self.config.base_attr
self.baseAttrs = self.config.base_attr
end
function EquipEntity:setExtraAttr(attr)
@ -80,10 +80,9 @@ function EquipEntity:setExtraAttr(attr)
self.extraMap = attr
if attr and #attr > 0 then
for i, data in pairs(attr) do
if self.extraAttrs[GFunc.getAttrNameById(data.id)] then
self.extraAttrs[GFunc.getAttrNameById(data.id)] = self.extraAttrs[GFunc.getAttrNameById(data.id)] + data.value
else
self.extraAttrs[GFunc.getAttrNameById(data.id)] = data.value
local attrType = GFunc.getAttrNameById(data.id)
if attrType then
self.extraAttrs[attrType] = (self.extraAttrs[attrType] or 0) + data.value
end
end
end
@ -91,13 +90,13 @@ function EquipEntity:setExtraAttr(attr)
end
function EquipEntity:getBaseAttr()
return self.baseAttr
return self.baseAttrs
end
function EquipEntity:getBaseAttrWithLv(lv)
local attr = {}
attr.type = self.baseAttr.type
attr.num = self.baseAttr.num + DataManager.EquipData:getBaseAttrLvAdd(lv)
attr.type = self.baseAttrs.type
attr.num = self.baseAttrs.num + DataManager.EquipData:getBaseAttrLvAdd(self.baseAttrs.type, lv)
return attr
end
@ -105,6 +104,14 @@ function EquipEntity:getExtraMap()
return self.extraMap
end
function EquipEntity:getExtraList()
local list = {}
for k,v in pairs(self.extraAttrs) do
table.insert(list, {type = k, num = v})
end
return list
end
function EquipEntity:getExtraAttrs()
return self.extraAttrs
end
@ -116,7 +123,7 @@ function EquipEntity:getAllAttr()
-- for attrName, attrNum in pairs(self:getBaseAttr()) do
-- self.allAttrs[attrName] = (self.allAttrs[attrName] or 0) + attrNum
-- end
self.allAttrs[self.baseAttr.type] = (self.allAttrs[self.baseAttr.type] or 0) + self.baseAttr.num
self.allAttrs[self.baseAttrs.type] = (self.allAttrs[self.baseAttrs.type] or 0) + self.baseAttrs.num
-- 额外属性
for attrName, attrNum in pairs(self:getExtraAttrs()) do
self.allAttrs[attrName] = (self.allAttrs[attrName] or 0) + attrNum
@ -180,12 +187,12 @@ function EquipEntity:getPartLv(slotId)
return DataManager.EquipData:getPartLv(slotId, self:getPart())
end
function EquipEntity:getMaxLv(slotId)
function EquipEntity:getMaxLv()
return #DataManager.EquipData:getLevelConfig()
end
function EquipEntity:getIsLvMax()
local lv = self:getPartLv()
function EquipEntity:getIsLvMax(slotId)
local lv = self:getPartLv(slotId)
return lv >= self:getMaxLv()
end
--@endregion