Skip to content

Commit be49b8b

Browse files
github-actions[bot]ibabdeLocalIdentity
authored andcommitted
Add support for more reservation efficiency and non-minion skill parsing (PathOfBuildingCommunity#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 bfba390 commit be49b8b

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
@@ -1844,6 +1844,7 @@ function calcs.perform(env, skipEHP)
18441844
values.more = skillModList:More(skillCfg, name.."Reserved", "Reserved")
18451845
values.inc = skillModList:Sum("INC", skillCfg, name.."Reserved", "Reserved")
18461846
values.efficiency = m_max(skillModList:Sum("INC", skillCfg, name.."ReservationEfficiency", "ReservationEfficiency"), -100)
1847+
values.efficiencyMore = skillModList:More(skillCfg, name.."ReservationEfficiency", "ReservationEfficiency")
18471848
-- used for Arcane Cloak calculations in ModStore.GetStat
18481849
env.player[name.."Efficiency"] = values.efficiency
18491850
if activeSkill.skillData[name.."ReservationFlatForced"] then
@@ -1852,7 +1853,7 @@ function calcs.perform(env, skipEHP)
18521853
local baseFlatVal = m_floor(values.baseFlat * mult)
18531854
values.reservedFlat = 0
18541855
if values.more > 0 and values.inc > -100 and baseFlatVal ~= 0 then
1855-
values.reservedFlat = m_max(round(baseFlatVal * (100 + values.inc) / 100 * values.more / (1 + values.efficiency / 100), 0), 0)
1856+
values.reservedFlat = m_max(round(baseFlatVal * (100 + values.inc) / 100 * values.more / (1 + values.efficiency / 100) / values.efficiencyMore, 0), 0)
18561857
end
18571858
end
18581859
if activeSkill.skillData[name.."ReservationPercentForced"] then
@@ -1861,7 +1862,7 @@ function calcs.perform(env, skipEHP)
18611862
local basePercentVal = values.basePercent * mult
18621863
values.reservedPercent = 0
18631864
if values.more > 0 and values.inc > -100 and basePercentVal ~= 0 then
1864-
values.reservedPercent = m_max(round(basePercentVal * (100 + values.inc) / 100 * values.more / (1 + values.efficiency / 100), 2), 0)
1865+
values.reservedPercent = m_max(round(basePercentVal * (100 + values.inc) / 100 * values.more / (1 + values.efficiency / 100) / values.efficiencyMore, 2), 0)
18651866
end
18661867
end
18671868
if activeSkill.activeMineCount then
@@ -1884,6 +1885,7 @@ function calcs.perform(env, skipEHP)
18841885
more = values.more ~= 1 and ("x "..values.more),
18851886
inc = values.inc ~= 0 and ("x "..(1 + values.inc / 100)),
18861887
efficiency = values.efficiency ~= 0 and ("x " .. round(100 / (100 + values.efficiency), 4)),
1888+
efficiencyMore = values.efficiencyMore ~= 1 and ("x "..values.efficiencyMore),
18871889
total = values.reservedFlat,
18881890
})
18891891
end
@@ -1900,6 +1902,7 @@ function calcs.perform(env, skipEHP)
19001902
more = values.more ~= 1 and ("x "..values.more),
19011903
inc = values.inc ~= 0 and ("x "..(1 + values.inc / 100)),
19021904
efficiency = values.efficiency ~= 0 and ("x " .. round(100 / (100 + values.efficiency), 4)),
1905+
efficiencyMore = values.efficiencyMore ~= 1 and ("x "..values.efficiencyMore),
19031906
total = values.reservedPercent .. "%",
19041907
})
19051908
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)