Skip to content

Commit 84a92a8

Browse files
authored
Add support for generic DamageGainAs (#154)
From tree (essence of the mountain, pure chaos) etc Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
1 parent 88c0f46 commit 84a92a8

File tree

4 files changed

+14
-37
lines changed

4 files changed

+14
-37
lines changed

src/Data/SkillStatMap.lua

Lines changed: 6 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -897,46 +897,22 @@ return {
897897
mod("LightningDamageGainAsChaos", "BASE", nil),
898898
},
899899
["non_skill_base_all_damage_%_to_gain_as_lightning_with_attacks"] = {
900-
mod("PhysicalDamageGainAsLightning", "BASE", nil, ModFlag.Attack),
901-
mod("LightningDamageGainAsLightning", "BASE", nil, ModFlag.Attack),
902-
mod("ColdDamageGainAsLightning", "BASE", nil, ModFlag.Attack),
903-
mod("FireDamageGainAsLightning", "BASE", nil, ModFlag.Attack),
904-
mod("ChaosDamageGainAsLightning", "BASE", nil, ModFlag.Attack),
900+
mod("DamageGainAsLightning", "BASE", nil, ModFlag.Attack),
905901
},
906902
["non_skill_base_all_damage_%_to_gain_as_cold_with_attacks"] = {
907-
mod("PhysicalDamageGainAsCold", "BASE", nil, ModFlag.Attack),
908-
mod("LightningDamageGainAsCold", "BASE", nil, ModFlag.Attack),
909-
mod("ColdDamageGainAsCold", "BASE", nil, ModFlag.Attack),
910-
mod("FireDamageGainAsCold", "BASE", nil, ModFlag.Attack),
911-
mod("ChaosDamageGainAsCold", "BASE", nil, ModFlag.Attack),
903+
mod("DamageGainAsCold", "BASE", nil, ModFlag.Attack),
912904
},
913905
["non_skill_base_all_damage_%_to_gain_as_fire_with_attacks"] = {
914-
mod("PhysicalDamageGainAsFire", "BASE", nil, ModFlag.Attack),
915-
mod("LightningDamageGainAsFire", "BASE", nil, ModFlag.Attack),
916-
mod("ColdDamageGainAsFire", "BASE", nil, ModFlag.Attack),
917-
mod("FireDamageGainAsFire", "BASE", nil, ModFlag.Attack),
918-
mod("ChaosDamageGainAsFire", "BASE", nil, ModFlag.Attack),
906+
mod("DamageGainAsFire", "BASE", nil, ModFlag.Attack),
919907
},
920908
["non_skill_base_all_damage_%_to_gain_as_chaos_with_attacks"] = {
921-
mod("PhysicalDamageGainAsChaos", "BASE", nil, ModFlag.Attack),
922-
mod("LightningDamageGainAsChaos", "BASE", nil, ModFlag.Attack),
923-
mod("ColdDamageGainAsChaos", "BASE", nil, ModFlag.Attack),
924-
mod("FireDamageGainAsChaos", "BASE", nil, ModFlag.Attack),
925-
mod("ChaosDamageGainAsChaos", "BASE", nil, ModFlag.Attack),
909+
mod("DamageGainAsChaos", "BASE", nil, ModFlag.Attack),
926910
},
927911
["non_skill_base_all_damage_%_to_gain_as_fire_with_attacks_vs_burning_enemies"] = {
928-
mod("PhysicalDamageGainAsFire", "BASE", nil, 0, 0, { type = "ActorCondition", actor = "enemy", var = "Burning" }),
929-
mod("LightningDamageGainAsFire", "BASE", nil, 0, 0, { type = "ActorCondition", actor = "enemy", var = "Burning" }),
930-
mod("ColdDamageGainAsFire", "BASE", nil, 0, 0, { type = "ActorCondition", actor = "enemy", var = "Burning" }),
931-
mod("FireDamageGainAsFire", "BASE", nil, 0, 0, { type = "ActorCondition", actor = "enemy", var = "Burning" }),
932-
mod("ChaosDamageGainAsFire", "BASE", nil, 0, 0, { type = "ActorCondition", actor = "enemy", var = "Burning" }),
912+
mod("DamageGainAsFire", "BASE", nil, 0, 0, { type = "ActorCondition", actor = "enemy", var = "Burning" }),
933913
},
934914
["support_innervate_buff_grant_%_added_lightning_attack_damage"] = {
935-
mod("PhysicalDamageGainAsLightning", "BASE", nil, ModFlag.Attack, 0, { type = "Condition", var = "KilledShockedLast3Seconds" }),
936-
mod("LightningDamageGainAsLightning", "BASE", nil, ModFlag.Attack, 0, { type = "Condition", var = "KilledShockedLast3Seconds" }),
937-
mod("ColdDamageGainAsLightning", "BASE", nil, ModFlag.Attack, 0, { type = "Condition", var = "KilledShockedLast3Seconds" }),
938-
mod("FireDamageGainAsLightning", "BASE", nil, ModFlag.Attack, 0, { type = "Condition", var = "KilledShockedLast3Seconds" }),
939-
mod("ChaosDamageGainAsLightning", "BASE", nil, ModFlag.Attack, 0, { type = "Condition", var = "KilledShockedLast3Seconds" }),
915+
mod("DamageGainAsLightning", "BASE", nil, ModFlag.Attack, 0, { type = "Condition", var = "KilledShockedLast3Seconds" }),
940916
},
941917
["base_physical_damage_%_to_convert_to_lightning"] = {
942918
mod("PhysicalDamageConvertToLightning", "BASE", nil),

src/Modules/CalcOffence.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1883,10 +1883,12 @@ function calcs.offence(env, actor, activeSkill)
18831883
activeSkill.gainTable[damageType] = {}
18841884
for _, toType in ipairs(dmgTypeList) do
18851885
local globalGain = m_max(skillModList:Sum("BASE", skillCfg,
1886+
"DamageGainAs"..toType,
18861887
damageType.."DamageGainAs"..toType,
18871888
isElemental[damageType] and "ElementalDamageGainAs"..toType or nil,
18881889
damageType ~= "Chaos" and "NonChaosDamageGainAs"..toType or nil), 0)
18891890
local skillGain = m_max(skillModList:Sum("BASE", skillCfg,
1891+
"SkillDamageGainAs"..toType,
18901892
"Skill"..damageType.."DamageGainAs"..toType,
18911893
isElemental[damageType] and "SkillElementalDamageGainAs"..toType or nil,
18921894
damageType ~= "Chaos" and "SkillNonChaosDamageGainAs"..toType or nil), 0)

src/Modules/CalcSections.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,10 @@ local function fillConvert(damageType)
2525
local convert = {}
2626
for _, type in ipairs({ "Physical", "Lightning", "Cold", "Fire", "Chaos" }) do
2727
table.insert(convert, "Skill"..damageType.."DamageConvertTo"..type)
28+
table.insert(convert, "SkillDamageGainAs"..type)
29+
table.insert(convert, "Skill"..damageType.."DamageGainAs"..type)
2830
table.insert(convert, damageType.."DamageConvertTo"..type)
31+
table.insert(convert, "DamageGainAs"..type)
2932
table.insert(convert, damageType.."DamageGainAs"..type)
3033

3134
if type ~= "Chaos" and type ~= "Physical" then

src/Modules/ModParser.lua

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2349,13 +2349,6 @@ local specialModList = {
23492349
["warcries exert twice as many attacks"] = { mod("ExtraExertedAttacks", "MORE", 100) },
23502350
--Blood Mage
23512351
["skills gain a base life cost equal to base mana cost"] = { mod("ManaCostAsLifeCost", "BASE", 100) },
2352-
["gain (%d+)%% of damage as extra physical damage"] = function(num) return {
2353-
mod("PhysicalDamageGainAsPhysical", "BASE", num),
2354-
mod("ColdDamageGainAsPhysical", "BASE", num),
2355-
mod("LightningDamageGainAsPhysical", "BASE", num),
2356-
mod("FireDamageGainAsPhysical", "BASE", num),
2357-
mod("ChaosDamageGainAsPhysical", "BASE", num),
2358-
} end,
23592352
["gain energy shield from equipped body armour as extra maximum life"] = {
23602353
mod("Life", "BASE", 1, { type = "PerStat", stat = "EnergyShieldOnBody Armour", div = 1 }),
23612354
},
@@ -5148,6 +5141,9 @@ local unsupportedModList = {
51485141

51495142
-- Special lookups used for various modifier forms
51505143
local suffixTypes = {
5144+
["as extra physical damage"] = "GainAsPhysical",
5145+
["added as physical damage"] = "GainAsPhysical",
5146+
["gained as extra physical damage"] = "GainAsPhysical",
51515147
["as extra lightning damage"] = "GainAsLightning",
51525148
["added as lightning damage"] = "GainAsLightning",
51535149
["gained as extra lightning damage"] = "GainAsLightning",

0 commit comments

Comments
 (0)