Skip to content

Commit 1db5caa

Browse files
github-actions[bot]ibabdeLocalIdentity
authored
Add support for more reservation efficiency and non-minion skill parsing (#9474)
* Apply changes from PathOfBuildingCommunity/PathOfBuilding-PoE2#1761 * Fix merge --------- Co-authored-by: ibabde <ibabde@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
1 parent 636e7cb commit 1db5caa

3 files changed

Lines changed: 7 additions & 2 deletions

File tree

src/Classes/CalcBreakdownControl.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ function CalcBreakdownClass:AddBreakdownSection(sectionData)
183183
{ label = "More/less", key = "more" },
184184
{ label = "Inc/red", key = "inc" },
185185
{ label = "Efficiency", key = "efficiency" },
186+
{ label = "Efficiency More/less", key = "efficiencyMore" },
186187
{ label = "Reservation", key = "total" },
187188
}
188189
}

src/Modules/CalcPerform.lua

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1843,6 +1843,7 @@ function calcs.perform(env, skipEHP)
18431843
values.more = skillModList:More(skillCfg, name.."Reserved", "Reserved")
18441844
values.inc = skillModList:Sum("INC", skillCfg, name.."Reserved", "Reserved")
18451845
values.efficiency = m_max(skillModList:Sum("INC", skillCfg, name.."ReservationEfficiency", "ReservationEfficiency"), -100)
1846+
values.efficiencyMore = skillModList:More(skillCfg, name.."ReservationEfficiency", "ReservationEfficiency")
18461847
-- used for Arcane Cloak calculations in ModStore.GetStat
18471848
env.player[name.."Efficiency"] = values.efficiency
18481849
if activeSkill.skillData[name.."ReservationFlatForced"] then
@@ -1851,7 +1852,7 @@ function calcs.perform(env, skipEHP)
18511852
local baseFlatVal = m_floor(values.baseFlat * mult)
18521853
values.reservedFlat = 0
18531854
if values.more > 0 and values.inc > -100 and baseFlatVal ~= 0 then
1854-
values.reservedFlat = m_max(round(baseFlatVal * (100 + values.inc) / 100 * values.more / (1 + values.efficiency / 100), 0), 0)
1855+
values.reservedFlat = m_max(round(baseFlatVal * (100 + values.inc) / 100 * values.more / (1 + values.efficiency / 100) / values.efficiencyMore, 0), 0)
18551856
end
18561857
end
18571858
if activeSkill.skillData[name.."ReservationPercentForced"] then
@@ -1860,7 +1861,7 @@ function calcs.perform(env, skipEHP)
18601861
local basePercentVal = values.basePercent * mult
18611862
values.reservedPercent = 0
18621863
if values.more > 0 and values.inc > -100 and basePercentVal ~= 0 then
1863-
values.reservedPercent = m_max(round(basePercentVal * (100 + values.inc) / 100 * values.more / (1 + values.efficiency / 100), 2), 0)
1864+
values.reservedPercent = m_max(round(basePercentVal * (100 + values.inc) / 100 * values.more / (1 + values.efficiency / 100) / values.efficiencyMore, 2), 0)
18641865
end
18651866
end
18661867
if activeSkill.activeMineCount then
@@ -1883,6 +1884,7 @@ function calcs.perform(env, skipEHP)
18831884
more = values.more ~= 1 and ("x "..values.more),
18841885
inc = values.inc ~= 0 and ("x "..(1 + values.inc / 100)),
18851886
efficiency = values.efficiency ~= 0 and ("x " .. round(100 / (100 + values.efficiency), 4)),
1887+
efficiencyMore = values.efficiencyMore ~= 1 and ("x "..values.efficiencyMore),
18861888
total = values.reservedFlat,
18871889
})
18881890
end
@@ -1899,6 +1901,7 @@ function calcs.perform(env, skipEHP)
18991901
more = values.more ~= 1 and ("x "..values.more),
19001902
inc = values.inc ~= 0 and ("x "..(1 + values.inc / 100)),
19011903
efficiency = values.efficiency ~= 0 and ("x " .. round(100 / (100 + values.efficiency), 4)),
1904+
efficiencyMore = values.efficiencyMore ~= 1 and ("x "..values.efficiencyMore),
19021905
total = values.reservedPercent .. "%",
19031906
})
19041907
end

src/Modules/ModParser.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1096,6 +1096,7 @@ local preFlagList = {
10961096
["^golems [hd][ae][va][el] "] = { addToMinion = true, addToMinionTag = { type = "SkillType", skillType = SkillType.Golem } },
10971097
["^summoned golems [hd][ae][va][el] "] = { addToMinion = true, addToMinionTag = { type = "SkillType", skillType = SkillType.Golem } },
10981098
["^golem skills have "] = { tag = { type = "SkillType", skillType = SkillType.Golem } },
1099+
["^non%-minion skills have "] = { tag = { type = "SkillType", skillType = SkillType.Minion, neg = true } },
10991100
["^zombies [hd][ae][va][el] "] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Raise Zombie", includeTransfigured = true } },
11001101
["^raised zombies [hd][ae][va][el] "] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Raise Zombie", includeTransfigured = true } },
11011102
["^skeletons [hd][ae][va][el] "] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Summon Skeletons", includeTransfigured = true } },

0 commit comments

Comments
 (0)