Skip to content

Commit f52d3cd

Browse files
LocalIdentityLocalIdentity
andauthored
Fix some buffs applying incorrectly to the player and minions (#9789)
* 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 * Farrul beast aura's now count as ally auras Stops Ichimonjji from blocking their effect * Stop Flicker strike buff stacking --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
1 parent 766a6ac commit f52d3cd

7 files changed

Lines changed: 21 additions & 21 deletions

File tree

src/Data/ModCache.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10418,9 +10418,9 @@ c["Rage grants Spell Damage instead of Attack Damage"]={{[1]={flags=0,keywordFla
1041810418
c["Raise Zombie does not require a corpse"]={nil,"does not require a corpse "}
1041910419
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 "}
1042010420
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 "}
10421-
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}
10422-
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}
10423-
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}
10421+
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}
10422+
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}
10423+
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}
1042410424
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}
1042510425
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}
1042610426
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}

src/Data/Skills/act_dex.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7937,7 +7937,7 @@ skills["FlickerStrike"] = {
79377937
["base_skill_show_average_damage_instead_of_dps"] = {
79387938
},
79397939
["flicker_strike_buff_movement_speed_+%"] = {
7940-
mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff" }),
7940+
mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Flick Strike" }),
79417941
},
79427942
},
79437943
baseFlags = {
@@ -8028,7 +8028,7 @@ skills["FlickerStrikeAltX"] = {
80288028
["base_skill_show_average_damage_instead_of_dps"] = {
80298029
},
80308030
["flicker_strike_buff_movement_speed_+%"] = {
8031-
mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff" }),
8031+
mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Flick Strike" }),
80328032
},
80338033
},
80348034
baseFlags = {

src/Data/Skills/sup_str.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2838,7 +2838,7 @@ skills["SupportHallow"] = {
28382838
mod("HallowingFlameMagnitude", "INC", nil)
28392839
},
28402840
["support_hallow_inflict_hallowing_flame_on_melee_hit"] = {
2841-
flag("Condition:CanInflictHallowingFlame", { type = "GlobalEffect", effectType = "Global" })
2841+
flag("Condition:CanInflictHallowingFlame", { type = "GlobalEffect", effectType = "GlobalDB" })
28422842
}
28432843
},
28442844
qualityStats = {

src/Export/Skills/act_dex.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1701,7 +1701,7 @@ local skills, mod, flag, skill = ...
17011701
["base_skill_show_average_damage_instead_of_dps"] = {
17021702
},
17031703
["flicker_strike_buff_movement_speed_+%"] = {
1704-
mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff" }),
1704+
mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Flick Strike" }),
17051705
},
17061706
},
17071707
#mods
@@ -1712,7 +1712,7 @@ local skills, mod, flag, skill = ...
17121712
["base_skill_show_average_damage_instead_of_dps"] = {
17131713
},
17141714
["flicker_strike_buff_movement_speed_+%"] = {
1715-
mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff" }),
1715+
mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Flick Strike" }),
17161716
},
17171717
},
17181718
#mods

src/Export/Skills/sup_str.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ local skills, mod, flag, skill = ...
425425
mod("HallowingFlameMagnitude", "INC", nil)
426426
},
427427
["support_hallow_inflict_hallowing_flame_on_melee_hit"] = {
428-
flag("Condition:CanInflictHallowingFlame", { type = "GlobalEffect", effectType = "Global" })
428+
flag("Condition:CanInflictHallowingFlame", { type = "GlobalEffect", effectType = "GlobalDB" })
429429
}
430430
},
431431
#mods

src/Modules/CalcPerform.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2147,7 +2147,7 @@ function calcs.perform(env, skipEHP)
21472147
-- Nothing!
21482148
elseif buff.enemyCond and not enemyDB:GetCondition(buff.enemyCond) then
21492149
-- Also nothing :/
2150-
elseif buff.type == "Global" then
2150+
elseif buff.type == "GlobalDB" then
21512151
modDB:AddList(buff.modList) -- Allows a skill mod to affect other skills through modDB
21522152
elseif buff.type == "Buff" and not skillModList:Flag(skillCfg, "DisableBuff") then
21532153
if env.mode_buffs and (not activeSkill.skillFlags.totem or buff.allowTotemBuff) then
@@ -3252,15 +3252,15 @@ function calcs.perform(env, skipEHP)
32523252
buffExports["Aura"]["extraAura"] = { effectMult = 1, modList = new("ModList") }
32533253
for _, value in ipairs(modDB:List(nil, "ExtraAura")) do
32543254
local modList = { value.mod }
3255-
if not value.onlyAllies then
3255+
if not value.onlyAllies and not (value.fromAllies and modDB:Flag(nil, "AlliesAurasCannotAffectSelf")) then
32563256
local inc = modDB:Sum("INC", nil, "BuffEffectOnSelf", "AuraEffectOnSelf")
32573257
local more = modDB:More(nil, "BuffEffectOnSelf", "AuraEffectOnSelf")
32583258
modDB:ScaleAddList(modList, (1 + inc / 100) * more)
32593259
if not value.notBuff then
32603260
modDB.multipliers["BuffOnSelf"] = (modDB.multipliers["BuffOnSelf"] or 0) + 1
32613261
end
32623262
end
3263-
if not modDB:Flag(nil, "SelfAurasCannotAffectAllies") then
3263+
if value.fromAllies or not modDB:Flag(nil, "SelfAurasCannotAffectAllies") then
32643264
if env.minion then
32653265
local inc = env.minion.modDB:Sum("INC", nil, "BuffEffectOnSelf", "AuraEffectOnSelf")
32663266
local more = env.minion.modDB:More(nil, "BuffEffectOnSelf", "AuraEffectOnSelf")

src/Modules/ModParser.lua

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4934,19 +4934,19 @@ local specialModList = {
49344934
["profane ground you create inflicts malediction on enemies"] = { mod("EnemyModifier", "LIST", { mod = flag("HasMalediction", { type = "Condition", var = "OnProfaneGround" }) }) },
49354935
["profane ground you create also affects you and your allies, granting chaotic might"] = { mod("ExtraAura", "LIST", { mod = flag("Condition:ChaoticMight", { type = "Condition", var = "OnProfaneGround" }) }) },
49364936
["raised beast spectres have farrul's farric presence"] = {
4937-
mod("ExtraAura", "LIST", { mod = mod("Accuracy", "INC", 80) }, { type = "Condition", var = "HaveBeastSpectre" }),
4938-
mod("ExtraAura", "LIST", { mod = mod("CritChance", "INC", 120) }, { type = "Condition", var = "HaveBeastSpectre" }),
4939-
mod("ExtraAura", "LIST", { mod = mod("ReduceCritExtraDamage", "BASE", 100) }, { type = "Condition", var = "HaveBeastSpectre" }),
4937+
mod("ExtraAura", "LIST", { fromAllies = true, mod = mod("Accuracy", "INC", 80) }, { type = "Condition", var = "HaveBeastSpectre" }),
4938+
mod("ExtraAura", "LIST", { fromAllies = true, mod = mod("CritChance", "INC", 120) }, { type = "Condition", var = "HaveBeastSpectre" }),
4939+
mod("ExtraAura", "LIST", { fromAllies = true, mod = mod("ReduceCritExtraDamage", "BASE", 100) }, { type = "Condition", var = "HaveBeastSpectre" }),
49404940
},
49414941
["raised beast spectres have farrul's fertile presence"] = {
4942-
mod("ExtraAura", "LIST", { mod = mod("Damage", "INC", 100) }, { type = "Condition", var = "HaveBeastSpectre" }),
4943-
mod("ExtraAura", "LIST", { mod = mod("LifeRegenPercent", "BASE", 3) }, { type = "Condition", var = "HaveBeastSpectre" }),
4944-
mod("ExtraAura", "LIST", { mod = flag("StunImmune") }, { type = "Condition", var = "HaveBeastSpectre" }),
4942+
mod("ExtraAura", "LIST", { fromAllies = true, mod = mod("Damage", "INC", 100) }, { type = "Condition", var = "HaveBeastSpectre" }),
4943+
mod("ExtraAura", "LIST", { fromAllies = true, mod = mod("LifeRegenPercent", "BASE", 3) }, { type = "Condition", var = "HaveBeastSpectre" }),
4944+
mod("ExtraAura", "LIST", { fromAllies = true, mod = flag("StunImmune") }, { type = "Condition", var = "HaveBeastSpectre" }),
49454945
},
49464946
["raised beast spectres have farrul's wild presence"] = {
4947-
mod("ExtraAura", "LIST", { mod = mod("Speed", "INC", 20) }, { type = "Condition", var = "HaveBeastSpectre" }),
4948-
mod("ExtraAura", "LIST", { mod = mod("MovementSpeed", "INC", 20) }, { type = "Condition", var = "HaveBeastSpectre" }),
4949-
mod("ExtraAura", "LIST", { mod = mod("MinimumActionSpeed", "MAX", 100) }, { type = "Condition", var = "HaveBeastSpectre" }),
4947+
mod("ExtraAura", "LIST", { fromAllies = true, mod = mod("Speed", "INC", 20) }, { type = "Condition", var = "HaveBeastSpectre" }),
4948+
mod("ExtraAura", "LIST", { fromAllies = true, mod = mod("MovementSpeed", "INC", 20) }, { type = "Condition", var = "HaveBeastSpectre" }),
4949+
mod("ExtraAura", "LIST", { fromAllies = true, mod = mod("MinimumActionSpeed", "MAX", 100) }, { type = "Condition", var = "HaveBeastSpectre" }),
49504950
},
49514951
["gain alchemist's genius when you use a flask"] = {
49524952
flag("Condition:CanHaveAlchemistGenius"),

0 commit comments

Comments
 (0)