Skip to content

Commit f238d97

Browse files
LocalIdentityLocalIdentity
andauthored
Fix Brand Damage and Crit nodes not affecting Arcanist Brand skills (#8685)
Increased brand damage / crit chance / crit multi mods should be affecting skills triggered by Arcanist brand but they were broken in #7188. Made a few changes to check for the skill types now instead of the skill flag so we don't show brand mods on arcanist triggered skills Calc triggers was using the skill cfg of the triggered skill instead of Arcanist brand which is why "Cast speed with brand skills" wasn't increasing the trigger rate Co-authored-by: LocalIdentity <localidentity2@gmail.com>
1 parent cb0a1b8 commit f238d97

8 files changed

Lines changed: 32 additions & 26 deletions

File tree

src/Data/ModCache.lua

Lines changed: 17 additions & 17 deletions
Large diffs are not rendered by default.

src/Data/Skills/act_int.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -620,6 +620,9 @@ skills["SupportBrandSupport"] = {
620620
isTrigger = true,
621621
ignoreMinionTypes = true,
622622
statDescriptionScope = "gem_stat_descriptions",
623+
addFlags = {
624+
brand = true,
625+
},
623626
statMap = {
624627
["support_brand_damage_+%_final"] = {
625628
mod("TriggeredDamage", "MORE", nil),

src/Export/Skills/act_int.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@ local skills, mod, flag, skill = ...
7676
#mods
7777

7878
#skill SupportBrandSupport
79+
addFlags = {
80+
brand = true,
81+
},
7982
statMap = {
8083
["support_brand_damage_+%_final"] = {
8184
mod("TriggeredDamage", "MORE", nil),

src/Modules/CalcOffence.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1358,7 +1358,7 @@ function calcs.offence(env, actor, activeSkill)
13581358
breakdown.TotemArmour = breakdown.mod(skillModList, skillCfg, "TotemArmour")
13591359
end
13601360
end
1361-
if skillFlags.brand then
1361+
if activeSkill.skillTypes[SkillType.Brand] then
13621362
output.BrandAttachmentRange = data.misc.BrandAttachmentRangeBase * calcLib.mod(skillModList, skillCfg, "BrandAttachmentRange")
13631363
output.BrandAttachmentRangeMetre = output.BrandAttachmentRange / 10
13641364
output.ActiveBrandLimit = skillModList:Sum("BASE", skillCfg, "ActiveBrandLimit")
@@ -2296,7 +2296,7 @@ function calcs.offence(env, actor, activeSkill)
22962296
output.HitTime = skillData.hitTimeOverride
22972297
output.HitSpeed = 1 / output.HitTime
22982298
--Brands always have hitTimeOverride
2299-
if skillFlags.brand and not skillModList:Flag(nil, "UnlimitedBrandDuration") then
2299+
if activeSkill.skillTypes[SkillType.Brand] and not skillModList:Flag(nil, "UnlimitedBrandDuration") then
23002300
output.BrandTicks = m_floor(output.Duration * output.HitSpeed)
23012301
end
23022302
elseif skillData.hitTimeMultiplier and output.Time and not skillData.triggeredOnDeath then

src/Modules/CalcPerform.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1172,7 +1172,7 @@ function calcs.perform(env, skipEHP)
11721172
modDB.multipliers["WarcryPower"] = output.WarcryPower
11731173

11741174
for _, activeSkill in ipairs(env.player.activeSkillList) do
1175-
if activeSkill.skillFlags.brand then
1175+
if activeSkill.skillTypes[SkillType.Brand] then
11761176
local attachLimit = activeSkill.skillModList:Sum("BASE", activeSkill.skillCfg, "BrandsAttachedLimit")
11771177
local attached = modDB:Sum("BASE", nil, "Multiplier:ConfigBrandsAttachedToEnemy")
11781178
local activeBrands = modDB:Sum("BASE", nil, "Multiplier:ConfigActiveBrands")

src/Modules/CalcSections.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -708,7 +708,7 @@ return {
708708
{ breakdown = "StrikeTargets" },
709709
{ modName = "AdditionalStrikeTarget", cfg = "skill" }
710710
}, },
711-
{ label = "Attachment Range", flag = "brand", { format = "{1:output:BrandAttachmentRangeMetre}m",
711+
{ label = "Attachment Range", haveOutput = "BrandAttachmentRangeMetre", { format = "{1:output:BrandAttachmentRangeMetre}m",
712712
{ breakdown = "BrandAttachmentRange" },
713713
{ modName = "BrandAttachmentRange", cfg = "skill"},
714714
}, },
@@ -790,7 +790,7 @@ return {
790790
{ breakdown = "TotemArmour" },
791791
{ modName = "TotemArmour", cfg = "skill" },
792792
}, },
793-
{ label = "Active Brand Limit", flag = "brand", { format = "{0:output:ActiveBrandLimit}", { modName = "ActiveBrandLimit", cfg = "skill" }, }, },
793+
{ label = "Active Brand Limit", haveOutput = "ActiveBrandLimit", { format = "{0:output:ActiveBrandLimit}", { modName = "ActiveBrandLimit", cfg = "skill" }, }, },
794794
{ label = "Totem Fire Res", flag = "totem", notFlag = "triggered",{ format = "{0:output:TotemFireResist}% (+{0:output:TotemFireResistOverCap}%)",
795795
{ breakdown = "TotemFireResist" },
796796
{ modName = { "TotemFireResistMax", "TotemElementalResistMax", "TotemFireResist", "TotemElementalResist" }, },

src/Modules/CalcTriggers.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1275,8 +1275,8 @@ local configTable = {
12751275
end
12761276
end
12771277

1278-
local activationFreqInc = (100 + env.player.mainSkill.triggeredBy.mainSkill.skillModList:Sum("INC", env.player.mainSkill.skillCfg, "Speed", "BrandActivationFrequency")) / 100
1279-
local activationFreqMore = env.player.mainSkill.triggeredBy.mainSkill.skillModList:More(env.player.mainSkill.skillCfg, "BrandActivationFrequency")
1278+
local activationFreqInc = (100 + env.player.mainSkill.triggeredBy.mainSkill.skillModList:Sum("INC", env.player.mainSkill.triggeredBy.mainSkill.skillCfg, "Speed", "BrandActivationFrequency")) / 100
1279+
local activationFreqMore = env.player.mainSkill.triggeredBy.mainSkill.skillModList:More(env.player.mainSkill.triggeredBy.mainSkill.skillCfg, "BrandActivationFrequency")
12801280
env.player.mainSkill.triggeredBy.activationFreqInc = activationFreqInc
12811281
env.player.mainSkill.triggeredBy.activationFreqMore = activationFreqMore
12821282
env.player.mainSkill.triggeredBy.ignoresTickRate = true

src/Modules/ModParser.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -927,7 +927,7 @@ local modFlagList = {
927927
["that place mines or throw traps"] = { keywordFlags = bor(KeywordFlag.Mine, KeywordFlag.Trap) },
928928
["that throw mines"] = { keywordFlags = KeywordFlag.Mine },
929929
["that throw traps"] = { keywordFlags = KeywordFlag.Trap },
930-
["brand"] = { tag = { type = "SkillType", skillType = SkillType.Brand } },
930+
["brand"] = { keywordFlags = KeywordFlag.Brand },
931931
["totem"] = { keywordFlags = KeywordFlag.Totem },
932932
["with totem skills"] = { keywordFlags = KeywordFlag.Totem },
933933
["for skills used by totems"] = { keywordFlags = KeywordFlag.Totem },
@@ -1120,7 +1120,7 @@ local preFlagList = {
11201120
["^fire spells [hd][ae][va][el] a? ?"] = { keywordFlags = KeywordFlag.Fire, flags = ModFlag.Spell },
11211121
["^chaos skills [hd][ae][va][el] a? ?"] = { keywordFlags = KeywordFlag.Chaos },
11221122
["^vaal skills [hd][ae][va][el] "] = { keywordFlags = KeywordFlag.Vaal },
1123-
["^brand skills [hd][ae][va][el] "] = { keywordFlags = KeywordFlag.Brand },
1123+
["^brand skills [hd][ae][va][el] "] = { tag = { type = "SkillType", skillType = SkillType.Brand } },
11241124
["^channelling skills [hd][ae][va][el] "] = { tag = { type = "SkillType", skillType = SkillType.Channel } },
11251125
["^curse skills [hd][ae][va][el] "] = { keywordFlags = KeywordFlag.Curse },
11261126
["^hex skills [hd][ae][va][el] "] = { tag = { type = "SkillType", skillType = SkillType.Hex } },

0 commit comments

Comments
 (0)