From 5318f153a0fc3ffbe648b1ddd881865f42d5dcf5 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Mon, 20 Apr 2026 20:36:18 +1000 Subject: [PATCH 1/3] Fix some buffs applying incorrectly to the player PR #9676 added code to allow the support gem to grant a global effect but this had the effect of scaling other global effects by the number of skills in the build and was ignoring their effect conditions e.g. Ancient Skull 50% inc damage was applying 20 times to player skills in a build --- src/Data/Skills/sup_str.lua | 2 +- src/Export/Skills/sup_str.txt | 2 +- src/Modules/CalcPerform.lua | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Data/Skills/sup_str.lua b/src/Data/Skills/sup_str.lua index a9743c31f8..d5212d3810 100644 --- a/src/Data/Skills/sup_str.lua +++ b/src/Data/Skills/sup_str.lua @@ -2838,7 +2838,7 @@ skills["SupportHallow"] = { mod("HallowingFlameMagnitude", "INC", nil) }, ["support_hallow_inflict_hallowing_flame_on_melee_hit"] = { - flag("Condition:CanInflictHallowingFlame", { type = "GlobalEffect", effectType = "Global" }) + flag("Condition:CanInflictHallowingFlame", { type = "GlobalEffect", effectType = "GlobalDB" }) } }, qualityStats = { diff --git a/src/Export/Skills/sup_str.txt b/src/Export/Skills/sup_str.txt index b7313ca961..8da4bbd886 100644 --- a/src/Export/Skills/sup_str.txt +++ b/src/Export/Skills/sup_str.txt @@ -425,7 +425,7 @@ local skills, mod, flag, skill = ... mod("HallowingFlameMagnitude", "INC", nil) }, ["support_hallow_inflict_hallowing_flame_on_melee_hit"] = { - flag("Condition:CanInflictHallowingFlame", { type = "GlobalEffect", effectType = "Global" }) + flag("Condition:CanInflictHallowingFlame", { type = "GlobalEffect", effectType = "GlobalDB" }) } }, #mods diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index 654a2e280b..491b0df719 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -2147,7 +2147,7 @@ function calcs.perform(env, skipEHP) -- Nothing! elseif buff.enemyCond and not enemyDB:GetCondition(buff.enemyCond) then -- Also nothing :/ - elseif buff.type == "Global" then + elseif buff.type == "GlobalDB" then modDB:AddList(buff.modList) -- Allows a skill mod to affect other skills through modDB elseif buff.type == "Buff" and not skillModList:Flag(skillCfg, "DisableBuff") then if env.mode_buffs and (not activeSkill.skillFlags.totem or buff.allowTotemBuff) then From f15efccb1decb82d29b87f1ec06f0709d16d356e Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Mon, 20 Apr 2026 20:52:26 +1000 Subject: [PATCH 2/3] Farrul beast aura's now count as ally auras Stops Ichimonjji from blocking their effect --- src/Data/ModCache.lua | 6 +++--- src/Modules/CalcPerform.lua | 4 ++-- src/Modules/ModParser.lua | 18 +++++++++--------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index c73cd79b0f..07bfa2e95c 100755 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -10418,9 +10418,9 @@ c["Rage grants Spell Damage instead of Attack Damage"]={{[1]={flags=0,keywordFla c["Raise Zombie does not require a corpse"]={nil,"does not require a corpse "} c["Raise Zombie does not require a corpse Your Raised Zombies count as corpses"]={nil,"does not require a corpse Your Raised Zombies count as corpses "} c["Raised Beast Spectres have 3 additional modifiers randomly chosen in each Area"]={nil,"Raised Beast Spectres have 3 additional modifiers randomly chosen in each Area "} -c["Raised Beast Spectres have Farrul's Farric Presence"]={{[1]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={mod={flags=0,keywordFlags=0,name="Accuracy",type="INC",value=80}}},[2]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={mod={flags=0,keywordFlags=0,name="CritChance",type="INC",value=120}}},[3]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={mod={flags=0,keywordFlags=0,name="ReduceCritExtraDamage",type="BASE",value=100}}}},nil} -c["Raised Beast Spectres have Farrul's Fertile Presence"]={{[1]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={mod={flags=0,keywordFlags=0,name="Damage",type="INC",value=100}}},[2]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={mod={flags=0,keywordFlags=0,name="LifeRegenPercent",type="BASE",value=3}}},[3]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={mod={flags=0,keywordFlags=0,name="StunImmune",type="FLAG",value=true}}}},nil} -c["Raised Beast Spectres have Farrul's Wild Presence"]={{[1]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={mod={flags=0,keywordFlags=0,name="Speed",type="INC",value=20}}},[2]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={mod={flags=0,keywordFlags=0,name="MovementSpeed",type="INC",value=20}}},[3]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={mod={flags=0,keywordFlags=0,name="MinimumActionSpeed",type="MAX",value=100}}}},nil} +c["Raised Beast Spectres have Farrul's Farric Presence"]={{[1]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={fromAllies=true,mod={flags=0,keywordFlags=0,name="Accuracy",type="INC",value=80}}},[2]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={fromAllies=true,mod={flags=0,keywordFlags=0,name="CritChance",type="INC",value=120}}},[3]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={fromAllies=true,mod={flags=0,keywordFlags=0,name="ReduceCritExtraDamage",type="BASE",value=100}}}},nil} +c["Raised Beast Spectres have Farrul's Fertile Presence"]={{[1]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={fromAllies=true,mod={flags=0,keywordFlags=0,name="Damage",type="INC",value=100}}},[2]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={fromAllies=true,mod={flags=0,keywordFlags=0,name="LifeRegenPercent",type="BASE",value=3}}},[3]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={fromAllies=true,mod={flags=0,keywordFlags=0,name="StunImmune",type="FLAG",value=true}}}},nil} +c["Raised Beast Spectres have Farrul's Wild Presence"]={{[1]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={fromAllies=true,mod={flags=0,keywordFlags=0,name="Speed",type="INC",value=20}}},[2]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={fromAllies=true,mod={flags=0,keywordFlags=0,name="MovementSpeed",type="INC",value=20}}},[3]={[1]={type="Condition",var="HaveBeastSpectre"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={fromAllies=true,mod={flags=0,keywordFlags=0,name="MinimumActionSpeed",type="MAX",value=100}}}},nil} c["Raised Spectres fire 2 additional Projectiles"]={{[1]={[1]={includeTransfigured=true,skillName="Raise Spectre",type="SkillName"},flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="ProjectileCount",type="BASE",value=2}}}},nil} c["Raised Spectres have +10% to all maximum Resistances"]={{[1]={[1]={includeTransfigured=true,skillName="Raise Spectre",type="SkillName"},flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="ElementalResistMax",type="BASE",value=10}}},[2]={[1]={includeTransfigured=true,skillName="Raise Spectre",type="SkillName"},flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="ChaosResistMax",type="BASE",value=10}}}},nil} c["Raised Spectres have +5% to Critical Strike Chance"]={{[1]={[1]={includeTransfigured=true,skillName="Raise Spectre",type="SkillName"},flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="CritChance",type="BASE",value=5}}}},nil} diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index 491b0df719..e92bb405a1 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -3252,7 +3252,7 @@ function calcs.perform(env, skipEHP) buffExports["Aura"]["extraAura"] = { effectMult = 1, modList = new("ModList") } for _, value in ipairs(modDB:List(nil, "ExtraAura")) do local modList = { value.mod } - if not value.onlyAllies then + if not value.onlyAllies and not (value.fromAllies and modDB:Flag(nil, "AlliesAurasCannotAffectSelf")) then local inc = modDB:Sum("INC", nil, "BuffEffectOnSelf", "AuraEffectOnSelf") local more = modDB:More(nil, "BuffEffectOnSelf", "AuraEffectOnSelf") modDB:ScaleAddList(modList, (1 + inc / 100) * more) @@ -3260,7 +3260,7 @@ function calcs.perform(env, skipEHP) modDB.multipliers["BuffOnSelf"] = (modDB.multipliers["BuffOnSelf"] or 0) + 1 end end - if not modDB:Flag(nil, "SelfAurasCannotAffectAllies") then + if value.fromAllies or not modDB:Flag(nil, "SelfAurasCannotAffectAllies") then if env.minion then local inc = env.minion.modDB:Sum("INC", nil, "BuffEffectOnSelf", "AuraEffectOnSelf") local more = env.minion.modDB:More(nil, "BuffEffectOnSelf", "AuraEffectOnSelf") diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index ae6db4bc41..72690640f4 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -4934,19 +4934,19 @@ local specialModList = { ["profane ground you create inflicts malediction on enemies"] = { mod("EnemyModifier", "LIST", { mod = flag("HasMalediction", { type = "Condition", var = "OnProfaneGround" }) }) }, ["profane ground you create also affects you and your allies, granting chaotic might"] = { mod("ExtraAura", "LIST", { mod = flag("Condition:ChaoticMight", { type = "Condition", var = "OnProfaneGround" }) }) }, ["raised beast spectres have farrul's farric presence"] = { - mod("ExtraAura", "LIST", { mod = mod("Accuracy", "INC", 80) }, { type = "Condition", var = "HaveBeastSpectre" }), - mod("ExtraAura", "LIST", { mod = mod("CritChance", "INC", 120) }, { type = "Condition", var = "HaveBeastSpectre" }), - mod("ExtraAura", "LIST", { mod = mod("ReduceCritExtraDamage", "BASE", 100) }, { type = "Condition", var = "HaveBeastSpectre" }), + mod("ExtraAura", "LIST", { fromAllies = true, mod = mod("Accuracy", "INC", 80) }, { type = "Condition", var = "HaveBeastSpectre" }), + mod("ExtraAura", "LIST", { fromAllies = true, mod = mod("CritChance", "INC", 120) }, { type = "Condition", var = "HaveBeastSpectre" }), + mod("ExtraAura", "LIST", { fromAllies = true, mod = mod("ReduceCritExtraDamage", "BASE", 100) }, { type = "Condition", var = "HaveBeastSpectre" }), }, ["raised beast spectres have farrul's fertile presence"] = { - mod("ExtraAura", "LIST", { mod = mod("Damage", "INC", 100) }, { type = "Condition", var = "HaveBeastSpectre" }), - mod("ExtraAura", "LIST", { mod = mod("LifeRegenPercent", "BASE", 3) }, { type = "Condition", var = "HaveBeastSpectre" }), - mod("ExtraAura", "LIST", { mod = flag("StunImmune") }, { type = "Condition", var = "HaveBeastSpectre" }), + mod("ExtraAura", "LIST", { fromAllies = true, mod = mod("Damage", "INC", 100) }, { type = "Condition", var = "HaveBeastSpectre" }), + mod("ExtraAura", "LIST", { fromAllies = true, mod = mod("LifeRegenPercent", "BASE", 3) }, { type = "Condition", var = "HaveBeastSpectre" }), + mod("ExtraAura", "LIST", { fromAllies = true, mod = flag("StunImmune") }, { type = "Condition", var = "HaveBeastSpectre" }), }, ["raised beast spectres have farrul's wild presence"] = { - mod("ExtraAura", "LIST", { mod = mod("Speed", "INC", 20) }, { type = "Condition", var = "HaveBeastSpectre" }), - mod("ExtraAura", "LIST", { mod = mod("MovementSpeed", "INC", 20) }, { type = "Condition", var = "HaveBeastSpectre" }), - mod("ExtraAura", "LIST", { mod = mod("MinimumActionSpeed", "MAX", 100) }, { type = "Condition", var = "HaveBeastSpectre" }), + mod("ExtraAura", "LIST", { fromAllies = true, mod = mod("Speed", "INC", 20) }, { type = "Condition", var = "HaveBeastSpectre" }), + mod("ExtraAura", "LIST", { fromAllies = true, mod = mod("MovementSpeed", "INC", 20) }, { type = "Condition", var = "HaveBeastSpectre" }), + mod("ExtraAura", "LIST", { fromAllies = true, mod = mod("MinimumActionSpeed", "MAX", 100) }, { type = "Condition", var = "HaveBeastSpectre" }), }, ["gain alchemist's genius when you use a flask"] = { flag("Condition:CanHaveAlchemistGenius"), From 263886a7cee5d9526b920e14132599a1ed61afbd Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Mon, 20 Apr 2026 20:54:03 +1000 Subject: [PATCH 3/3] Stop Flicker strike buff stacking --- src/Data/Skills/act_dex.lua | 4 ++-- src/Export/Skills/act_dex.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Data/Skills/act_dex.lua b/src/Data/Skills/act_dex.lua index 5b782e6f76..16787b918d 100644 --- a/src/Data/Skills/act_dex.lua +++ b/src/Data/Skills/act_dex.lua @@ -7937,7 +7937,7 @@ skills["FlickerStrike"] = { ["base_skill_show_average_damage_instead_of_dps"] = { }, ["flicker_strike_buff_movement_speed_+%"] = { - mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff" }), + mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Flick Strike" }), }, }, baseFlags = { @@ -8028,7 +8028,7 @@ skills["FlickerStrikeAltX"] = { ["base_skill_show_average_damage_instead_of_dps"] = { }, ["flicker_strike_buff_movement_speed_+%"] = { - mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff" }), + mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Flick Strike" }), }, }, baseFlags = { diff --git a/src/Export/Skills/act_dex.txt b/src/Export/Skills/act_dex.txt index 8208edb4c5..38c0db316d 100644 --- a/src/Export/Skills/act_dex.txt +++ b/src/Export/Skills/act_dex.txt @@ -1701,7 +1701,7 @@ local skills, mod, flag, skill = ... ["base_skill_show_average_damage_instead_of_dps"] = { }, ["flicker_strike_buff_movement_speed_+%"] = { - mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff" }), + mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Flick Strike" }), }, }, #mods @@ -1712,7 +1712,7 @@ local skills, mod, flag, skill = ... ["base_skill_show_average_damage_instead_of_dps"] = { }, ["flicker_strike_buff_movement_speed_+%"] = { - mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff" }), + mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Flick Strike" }), }, }, #mods