Skip to content

Commit 28608e8

Browse files
github-actions[bot]LocalIdentityLocalIdentity
authored
[pob1-port] Fix "Farewell to Flesh" not applying to Agony Crawler ailment damage (#1601)
* Apply changes from PathOfBuildingCommunity/PathOfBuilding#9162 * Fix merge conflicts --------- Co-authored-by: LocalIdentity <[email protected]> Co-authored-by: LocalIdentity <[email protected]>
1 parent 8667f5d commit 28608e8

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/Classes/ModStore.lua

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,13 +267,28 @@ function ModStoreClass:GetStat(stat, cfg)
267267
-- currently only checks main statSet for skill flags. rework if required
268268
if (activeSkill.skillTypes[SkillType.Aura] and not activeSkill.activeEffect.statSet.skillFlags.disable and activeSkill.buffList and activeSkill.buffList[1] and activeSkill.buffList[1].name == cfg.skillName) then
269269
local manaBase = activeSkill.skillData["ManaReservedBase"] or 0
270-
reservedPercentMana = manaBase / totalMana * 100
270+
reservedPercentMana = m_floor(manaBase / totalMana * 100)
271271
break
272272
end
273273
end
274274
return m_min(reservedPercentMana, 100) --Don't let people get more than 100% reservation for aura effect.
275275
end
276276
end
277+
if stat == "LifeReservedPercent" then
278+
local reservedPercentLife = 0
279+
local totalLife = self.actor.output["Life"]
280+
if totalLife == 0 then return 0 else
281+
for _, activeSkill in ipairs(self.actor.activeSkillList) do
282+
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
283+
local lifeBase = activeSkill.skillData["LifeReservedBase"] or 0
284+
reservedPercentLife = lifeBase / totalLife * 100
285+
reservedPercentLife = m_floor(lifeBase / totalLife * 100)
286+
break
287+
end
288+
end
289+
return m_min(reservedPercentLife, 100) --Don't let people get more than 100% reservation for aura effect.
290+
end
291+
end
277292
-- if ReservationEfficiency is -100, ManaUnreserved is nan which breaks everything if Arcane Cloak is enabled
278293
if stat == "ManaUnreserved" and self.actor.output[stat] ~= self.actor.output[stat] then
279294
-- 0% reserved = total mana

src/Modules/CalcOffence.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4632,6 +4632,7 @@ function calcs.offence(env, actor, activeSkill)
46324632
skillName = skillCfg.skillName,
46334633
skillPart = skillCfg.skillPart,
46344634
skillTypes = skillCfg.skillTypes,
4635+
summonSkillName = skillCfg.summonSkillName,
46354636
slotName = skillCfg.slotName,
46364637
flags = bor(ModFlag.Dot, ModFlag.Ailment, band(cfg.flags, ModFlag.WeaponMask), band(cfg.flags, ModFlag.Melee) ~= 0 and ModFlag.MeleeHit or 0),
46374638
keywordFlags = bor(band(cfg.keywordFlags, bnot(KeywordFlag.Hit)), KeywordFlag[ailment], KeywordFlag.Ailment, KeywordFlag[ailmentDamageType .. "Dot"]),
@@ -5374,6 +5375,7 @@ function calcs.offence(env, actor, activeSkill)
53745375
skillName = skillCfg.skillName,
53755376
skillPart = skillCfg.skillPart,
53765377
skillTypes = skillCfg.skillTypes,
5378+
summonSkillName = skillCfg.summonSkillName,
53775379
slotName = skillCfg.slotName,
53785380
flags = ModFlag.Dot,
53795381
keywordFlags = bor(band(skillCfg.keywordFlags, bnot(KeywordFlag.Hit)), KeywordFlag.ChaosDot),
@@ -5444,6 +5446,7 @@ function calcs.offence(env, actor, activeSkill)
54445446
skillName = skillCfg.skillName,
54455447
skillPart = skillCfg.skillPart,
54465448
skillTypes = skillCfg.skillTypes,
5449+
summonSkillName = skillCfg.summonSkillName,
54475450
slotName = skillCfg.slotName,
54485451
flags = bor(ModFlag.Dot, skillCfg.flags),
54495452
keywordFlags = band(skillCfg.keywordFlags, bnot(KeywordFlag.Hit)),

0 commit comments

Comments
 (0)