Skip to content

Commit a02ddd0

Browse files
PaliakLocalIdentity
andauthored
Add config option for hallowing flame magnitude (#9676)
* FIX: add config for magnitude of hallowing flame Signed-off-by: Paliak <91493239+Paliak@users.noreply.github.com> * Spelling --------- Signed-off-by: Paliak <91493239+Paliak@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
1 parent 2fb1b93 commit a02ddd0

File tree

6 files changed

+42
-11
lines changed

6 files changed

+42
-11
lines changed

src/Data/ModCache.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12956,7 +12956,7 @@ c["Your Skills deal you 400% of Mana Spent on Upfront Skill Mana Costs as Physic
1295612956
c["Your Spells are disabled"]={{[1]={[1]={skillType=2,type="SkillType"},flags=0,keywordFlags=0,name="DisableSkill",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="ForceEnableCurseApplication",type="FLAG",value=true}},nil}
1295712957
c["Your Spells have Culling Strike"]={{[1]={flags=2,keywordFlags=0,name="CullPercent",type="MAX",value=10}},nil}
1295812958
c["Your Warcries do not grant Buffs or Charges to You"]={{[1]={flags=0,keywordFlags=0,name="CannotGainWarcryBuffs",type="FLAG",value=true}},nil}
12959-
c["Your Warcries inflict Hallowing Flame"]={{[1]={flags=0,keywordFlags=0,name="Condition:CanInflictHallowingFlame",type="FLAG",value=true}},nil}
12959+
c["Your Warcries inflict Hallowing Flame"]={{[1]={[1]={type="Condition",var="UsedWarcryRecently"},flags=0,keywordFlags=0,name="Condition:CanInflictHallowingFlame",type="FLAG",value=true}},nil}
1296012960
c["Your hits can't be Evaded"]={{[1]={flags=0,keywordFlags=0,name="CannotBeEvaded",type="FLAG",value=true}},nil}
1296112961
c["Your nearby party members maximum Endurance Charges is equal to yours"]={{[1]={flags=0,keywordFlags=0,name="PartyMemberMaximumEnduranceChargesEqualToYours",type="FLAG",value=true}},nil}
1296212962
c["Your spells have 100% chance to Shock against Frozen enemies"]={nil,"Your spells have 100% chance to Shock against Frozen enemies "}

src/Data/Skills/sup_str.lua

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2929,6 +2929,14 @@ skills["SupportHallow"] = {
29292929
excludeSkillTypes = { SkillType.SummonsTotem, SkillType.RemoteMined, SkillType.OtherThingUsesSkill, SkillType.Trapped, },
29302930
ignoreMinionTypes = true,
29312931
statDescriptionScope = "gem_stat_descriptions",
2932+
statMap = {
2933+
["hallowing_flame_magnitude_+%"] = {
2934+
mod("HallowingFlameMagnitude", "INC", nil)
2935+
},
2936+
["support_hallow_inflict_hallowing_flame_on_melee_hit"] = {
2937+
flag("Condition:CanInflictHallowingFlame", { type = "GlobalEffect", effectType = "Global" })
2938+
}
2939+
},
29322940
qualityStats = {
29332941
Default = {
29342942
{ "hallowing_flame_magnitude_+%", 0.5 },

src/Export/Skills/sup_str.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,14 @@ local skills, mod, flag, skill = ...
420420
#mods
421421

422422
#skill SupportHallow
423+
statMap = {
424+
["hallowing_flame_magnitude_+%"] = {
425+
mod("HallowingFlameMagnitude", "INC", nil)
426+
},
427+
["support_hallow_inflict_hallowing_flame_on_melee_hit"] = {
428+
flag("Condition:CanInflictHallowingFlame", { type = "GlobalEffect", effectType = "Global" })
429+
}
430+
},
423431
#mods
424432

425433
#skill SupportMoreDuration

src/Modules/CalcPerform.lua

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1425,13 +1425,6 @@ function calcs.perform(env, skipEHP)
14251425
end
14261426
end
14271427

1428-
if modDB:Flag(env.player.mainSkill.skillCfg, "Condition:CanInflictHallowingFlame") then
1429-
local magnitude = 1 + modDB:Sum("INC", nil, "HallowingFlameMagnitude") / 100
1430-
local val = m_floor(25 * magnitude) -- Hallowing flame grants Attack Hits against you gain 25% of Physical Damage as Extra Fire Damage
1431-
modDB:NewMod("Multiplier:HallowingFlameMax", "BASE", 1, "Base")
1432-
modDB:NewMod("ExtraAura", "LIST", { onlyAllies = true, mod = modLib.createMod("PhysicalDamageGainAsLightning", "BASE", val, "Hallowing Flame", { type = "GlobalEffect", effectType = "Global", unscalable = true }, { type = "ActorCondition", actor = "enemy", var = "HallowingFlame" }, { type = "Multiplier", var = "HallowingFlame", actor = "enemy", limitActor = "parent", limitVar = "HallowingFlameMax" }) })
1433-
end
1434-
14351428
-- Special handling of Mageblood
14361429
local maxLeftActiveMagicUtilityCount = modDB:Sum("BASE", nil, "LeftActiveMagicUtilityFlasks")
14371430
local maxRightActiveMagicUtilityCount = modDB:Sum("BASE", nil, "RightActiveMagicUtilityFlasks")
@@ -2127,6 +2120,8 @@ function calcs.perform(env, skipEHP)
21272120
-- Nothing!
21282121
elseif buff.enemyCond and not enemyDB:GetCondition(buff.enemyCond) then
21292122
-- Also nothing :/
2123+
elseif buff.type == "Global" then
2124+
modDB:AddList(buff.modList) -- Allows a skill mod to affect other skills through modDB
21302125
elseif buff.type == "Buff" and not skillModList:Flag(skillCfg, "DisableBuff") then
21312126
if env.mode_buffs and (not activeSkill.skillFlags.totem or buff.allowTotemBuff) then
21322127
local skillCfg = buff.activeSkillBuff and skillCfg
@@ -3201,6 +3196,23 @@ function calcs.perform(env, skipEHP)
32013196
doActorLifeManaReservation(env.player, true)
32023197
end
32033198

3199+
if not env.minion and modDB:Flag(env.player.mainSkill.skillCfg, "Condition:CanInflictHallowingFlame") then
3200+
local magnitude = modDB:Override(nil, "HallowingFlameMagnitude")
3201+
3202+
if env.mode == "MAIN" or not magnitude then
3203+
local magnitudeInc = modDB:Sum("INC", nil, "HallowingFlameMagnitude")
3204+
magnitude = magnitude or magnitudeInc
3205+
if env.mode == "MAIN" then
3206+
env.build.configTab.varControls['conditionHallowingFlameMagnitude']:SetPlaceholder(magnitudeInc, true)
3207+
end
3208+
end
3209+
3210+
local val = m_floor(25 * (1 + magnitude / 100)) -- Hallowing flame grants Attack Hits against you gain 25% of Physical Damage as Extra Fire Damage
3211+
modDB:NewMod("Multiplier:HallowingFlameMax", "BASE", 1, "Base")
3212+
modDB:NewMod("ExtraAura", "LIST", { onlyAllies = true, mod = modLib.createMod("PhysicalDamageGainAsLightning", "BASE", val, "Hallowing Flame", { type = "GlobalEffect", effectType = "Global", unscalable = true }, { type = "ActorCondition", actor = "enemy", var = "HallowingFlame" }, { type = "Multiplier", var = "HallowingFlame", actor = "enemy", limitActor = "parent", limitVar = "HallowingFlameMax" }) })
3213+
end
3214+
3215+
32043216
-- Check for extra auras
32053217
buffExports["Aura"]["extraAura"] = { effectMult = 1, modList = new("ModList") }
32063218
for _, value in ipairs(modDB:List(nil, "ExtraAura")) do

src/Modules/ConfigOptions.lua

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1920,15 +1920,18 @@ Huge sets the radius to 11.
19201920
{ var = "conditionEnemyCrushed", type = "check", label = "Is the enemy Crushed?", tooltip = "Crushed enemies have 15% reduced Physical Damage Reduction.", apply = function(val, modList, enemyModList)
19211921
enemyModList:NewMod("Condition:Crushed", "FLAG", true, "Config", { type = "Condition", var = "Effective" })
19221922
end },
1923-
{ var = "conditionEnemyHallowingFlame", type = "check", label = "Is enemy affected by Hallowing Flame?", ifFlag = "Condition:CanInflictHallowingFlame", apply = function(val, modList, enemyModList)
1923+
{ var = "conditionEnemyHallowingFlame", type = "check", label = "Is enemy affected by Hallowing Flame?", ifFlag = "Condition:CanInflictHallowingFlame", apply = function(val, modList, enemyModList, build)
19241924
enemyModList:NewMod("Condition:HallowingFlame", "FLAG", true, "Config", { type = "Condition", var = "Effective" })
19251925
end },
1926-
{ var = "multiplierEnemyHallowingFlame", type = "count", label = "Hallowing Flame Stacks", ifOption = "conditionEnemyHallowingFlame", ifMod = "Multiplier:HallowingFlameMax", defaultPlaceholderState = 1, tooltip = "Amount of Hallowing Flame stacks applied to the enemy.", apply = function(val, modList, enemyModList)
1926+
{ var = "multiplierEnemyHallowingFlame", type = "count", label = "Hallowing Flame stacks", ifOption = "conditionEnemyHallowingFlame", defaultPlaceholderState = 1, tooltip = "Amount of Hallowing Flame stacks applied to the enemy.", apply = function(val, modList, enemyModList)
19271927
enemyModList:NewMod("Multiplier:HallowingFlame", "BASE", val, "Config", { type = "Condition", var = "Effective" })
19281928
end },
19291929
{ var = "multiplierHallowingFlameStacksRemovedByAlly", type = "countAllowZero", label = "Hallowing Flames removed by an ally recently", ifOption = "conditionEnemyHallowingFlame", ifMult = "HallowingFlameStacksRemovedByAlly", defaultPlaceholderState = 1, tooltip = "Amount of Hallowing Flame stacks removed from enemies by allies recently.", apply = function(val, modList, enemyModList)
19301930
modList:NewMod("Multiplier:HallowingFlameStacksRemovedByAlly", "BASE", val, "Config")
19311931
end },
1932+
{ var = "conditionHallowingFlameMagnitude", type = "countAllowZero", label = "Inc. magnitude of Hallowing Flame stacks", ifOption = "conditionEnemyHallowingFlame", tooltip = "The magnitude of Hallowing Flame stacks applied to the enemy", apply = function(val, modList, enemyModList)
1933+
modList:NewMod("HallowingFlameMagnitude", "OVERRIDE", val, "Config")
1934+
end },
19321935
{ var = "conditionNearLinkedTarget", type = "check", label = "Is the enemy near you Linked target?", ifEnemyCond = "NearLinkedTarget", apply = function(val, modList, enemyModList)
19331936
enemyModList:NewMod("Condition:NearLinkedTarget", "FLAG", true, "Config", { type = "Condition", var = "Effective" })
19341937
end },

src/Modules/ModParser.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4165,7 +4165,7 @@ local specialModList = {
41654165
["non%-curse auras from your skills only apply to you and linked targets"] = { flag("SelfAurasAffectYouAndLinkedTarget", { type = "SkillType", skillType = SkillType.Aura }, { type = "SkillType", skillType = SkillType.AppliesCurse, neg = true }) },
41664166
["linked targets always count as in range of non%-curse auras from your skills"] = { },
41674167
["gain unholy might on block for (%d) seconds"] = { flag("Condition:UnholyMight", { type = "Condition", var = "BlockedRecently"}), flag("Condition:CanWither", { type = "Condition", var = "BlockedRecently"}), },
4168-
["your warcries inflict hallowing flame"] = { flag("Condition:CanInflictHallowingFlame") },
4168+
["your warcries inflict hallowing flame"] = { flag("Condition:CanInflictHallowingFlame", { type = "Condition", var = "UsedWarcryRecently" }) },
41694169
["attacks with this weapon inflict hallowing flame on hit"] = { flag("Condition:CanInflictHallowingFlame") },
41704170
["inflict hallowing flame on hit while on consecrated ground"] = { flag("Condition:CanInflictHallowingFlame", { type = "Condition", var = "OnConsecratedGround" }) },
41714171
["inflict hallowing flame on melee hit"] = { flag("Condition:CanInflictHallowingFlame") },

0 commit comments

Comments
 (0)