Skip to content

Commit af39d58

Browse files
LocalIdentityLocalIdentity
andauthored
Fix "Farewell to Flesh" not applying to Agony Crawler ailment damage (#9162)
The `GetStat` code relied on using `cfg.summonSkillName` to match names for the skills but when we handle the ailments we were not including summonSkillName in the cfg so it would fail to match and not grant Ailment damage to Agony Crawler Also added a floor to the returned value as it was a float before Co-authored-by: LocalIdentity <localidentity2@gmail.com>
1 parent 20018a0 commit af39d58

3 files changed

Lines changed: 8 additions & 3 deletions

File tree

src/Classes/ModStore.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ function ModStoreClass:GetStat(stat, cfg)
251251
for _, activeSkill in ipairs(self.actor.activeSkillList) do
252252
if (activeSkill.skillTypes[SkillType.HasReservation] and not activeSkill.skillFlags.disable and activeSkill.buffList and activeSkill.buffList[1] and cfg and (isNameInBuffList(activeSkill.buffList, cfg.skillName) or isNameInBuffList(activeSkill.buffList, cfg.summonSkillName)) ) then
253253
local manaBase = activeSkill.skillData["ManaReservedBase"] or 0
254-
reservedPercentMana = manaBase / totalMana * 100
254+
reservedPercentMana = m_floor(manaBase / totalMana * 100)
255255
break
256256
end
257257
end
@@ -265,7 +265,7 @@ function ModStoreClass:GetStat(stat, cfg)
265265
for _, activeSkill in ipairs(self.actor.activeSkillList) do
266266
if (activeSkill.skillTypes[SkillType.HasReservation] and not activeSkill.skillFlags.disable and activeSkill.buffList and activeSkill.buffList[1] and cfg and (isNameInBuffList(activeSkill.buffList, cfg.skillName) or isNameInBuffList(activeSkill.buffList, cfg.summonSkillName)) ) then
267267
local lifeBase = activeSkill.skillData["LifeReservedBase"] or 0
268-
reservedPercentLife = lifeBase / totalLife * 100
268+
reservedPercentLife = m_floor(lifeBase / totalLife * 100)
269269
break
270270
end
271271
end

src/Modules/CalcOffence.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4003,6 +4003,7 @@ function calcs.offence(env, actor, activeSkill)
40034003
skillName = skillCfg.skillName,
40044004
skillPart = skillCfg.skillPart,
40054005
skillTypes = skillCfg.skillTypes,
4006+
summonSkillName = skillCfg.summonSkillName,
40064007
slotName = skillCfg.slotName,
40074008
flags = bor(ModFlag.Dot, ModFlag.Ailment, band(cfg.flags, ModFlag.WeaponMask), band(cfg.flags, ModFlag.Melee) ~= 0 and ModFlag.MeleeHit or 0),
40084009
keywordFlags = bor(band(cfg.keywordFlags, bnot(KeywordFlag.Hit)), KeywordFlag.Bleed, KeywordFlag.Ailment, KeywordFlag.PhysicalDot),
@@ -4275,6 +4276,7 @@ function calcs.offence(env, actor, activeSkill)
42754276
skillName = skillCfg.skillName,
42764277
skillPart = skillCfg.skillPart,
42774278
skillTypes = skillCfg.skillTypes,
4279+
summonSkillName = skillCfg.summonSkillName,
42784280
slotName = skillCfg.slotName,
42794281
flags = bor(ModFlag.Dot, ModFlag.Ailment, band(cfg.flags, ModFlag.WeaponMask), band(cfg.flags, ModFlag.Melee) ~= 0 and ModFlag.MeleeHit or 0),
42804282
keywordFlags = bor(band(cfg.keywordFlags, bnot(KeywordFlag.Hit)), KeywordFlag.Poison, KeywordFlag.Ailment, KeywordFlag.ChaosDot),
@@ -4552,6 +4554,7 @@ function calcs.offence(env, actor, activeSkill)
45524554
skillName = skillCfg.skillName,
45534555
skillPart = skillCfg.skillPart,
45544556
skillTypes = skillCfg.skillTypes,
4557+
summonSkillName = skillCfg.summonSkillName,
45554558
slotName = skillCfg.slotName,
45564559
flags = bor(ModFlag.Dot, ModFlag.Ailment, band(cfg.flags, ModFlag.WeaponMask), band(cfg.flags, ModFlag.Melee) ~= 0 and ModFlag.MeleeHit or 0),
45574560
keywordFlags = bor(band(cfg.keywordFlags, bnot(KeywordFlag.Hit)), KeywordFlag.Ignite, KeywordFlag.Ailment, KeywordFlag.FireDot),
@@ -5258,6 +5261,7 @@ function calcs.offence(env, actor, activeSkill)
52585261
skillName = skillCfg.skillName,
52595262
skillPart = skillCfg.skillPart,
52605263
skillTypes = skillCfg.skillTypes,
5264+
summonSkillName = skillCfg.summonSkillName,
52615265
slotName = skillCfg.slotName,
52625266
flags = ModFlag.Dot,
52635267
keywordFlags = bor(band(skillCfg.keywordFlags, bnot(KeywordFlag.Hit)), KeywordFlag.ChaosDot),
@@ -5328,6 +5332,7 @@ function calcs.offence(env, actor, activeSkill)
53285332
skillName = skillCfg.skillName,
53295333
skillPart = skillCfg.skillPart,
53305334
skillTypes = skillCfg.skillTypes,
5335+
summonSkillName = skillCfg.summonSkillName,
53315336
slotName = skillCfg.slotName,
53325337
flags = bor(ModFlag.Dot, skillCfg.flags),
53335338
keywordFlags = band(skillCfg.keywordFlags, bnot(KeywordFlag.Hit)),

src/Modules/ModParser.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2858,7 +2858,7 @@ local specialModList = {
28582858
["herald skills and minions from herald skills deal (%d+)%% more damage for every (%d+)%% of maximum life those skills reserve"] = function(_, num1, num2) return {
28592859
mod("MinionModifier", "LIST", { mod = mod("Damage", "MORE", tonumber(num1), { type = "PerStat", stat = "LifeReservedPercent", div = tonumber(num2), actor = "parent" })}, { type = "SkillType", skillType = SkillType.Herald }),
28602860
mod("Damage", "MORE", tonumber(num1), { type = "PerStat", stat = "LifeReservedPercent", div = tonumber(num2) }, { type = "SkillType", skillType = SkillType.Herald }),
2861-
} end,
2861+
} end,
28622862
-- Oshabi Bloodline
28632863
["unsealed spells gain (%d+)%% more damage each time their effects reoccur"] = function(num) return { mod("MaxSealDamage", "MORE", num) } end,
28642864
["skills gain added chaos damage equal to (%d+)%% of life cost, if life cost is not higher than the maximum you could spend"] = function(num) return {

0 commit comments

Comments
 (0)