diff --git a/src/Classes/CalcBreakdownControl.lua b/src/Classes/CalcBreakdownControl.lua index 7326ebf326..c93ff9f84c 100644 --- a/src/Classes/CalcBreakdownControl.lua +++ b/src/Classes/CalcBreakdownControl.lua @@ -183,6 +183,7 @@ function CalcBreakdownClass:AddBreakdownSection(sectionData) { label = "More/less", key = "more" }, { label = "Inc/red", key = "inc" }, { label = "Efficiency", key = "efficiency" }, + { label = "Efficiency More/less", key = "efficiencyMore" }, { label = "Reservation", key = "total" }, } } diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index 05b2d161b5..b32138f713 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -1800,6 +1800,7 @@ function calcs.perform(env, skipEHP) values.more = skillModList:More(skillCfg, name.."Reserved", "Reserved") values.inc = skillModList:Sum("INC", skillCfg, name.."Reserved", "Reserved") values.efficiency = m_max(skillModList:Sum("INC", skillCfg, name.."ReservationEfficiency", "ReservationEfficiency"), -100) + values.efficiencyMore = skillModList:More(skillCfg, name.."ReservationEfficiency", "ReservationEfficiency") -- used for Arcane Cloak calculations in ModStore.GetStat env.player[name.."Efficiency"] = values.efficiency if activeSkill.skillData[name.."ReservationFlatForced"] then @@ -1808,7 +1809,7 @@ function calcs.perform(env, skipEHP) local baseFlatVal = m_floor(values.baseFlat * mult) values.reservedFlat = 0 if values.more > 0 and values.inc > -100 and baseFlatVal ~= 0 then - values.reservedFlat = m_max(round(baseFlatVal * (100 + values.inc) / 100 * values.more / (1 + values.efficiency / 100), 0), 0) + values.reservedFlat = m_max(round(baseFlatVal * (100 + values.inc) / 100 * values.more / (1 + values.efficiency / 100) / values.efficiencyMore, 0), 0) end end if activeSkill.skillData[name.."ReservationPercentForced"] then @@ -1817,7 +1818,7 @@ function calcs.perform(env, skipEHP) local basePercentVal = values.basePercent * mult values.reservedPercent = 0 if values.more > 0 and values.inc > -100 and basePercentVal ~= 0 then - values.reservedPercent = m_max(round(basePercentVal * (100 + values.inc) / 100 * values.more / (1 + values.efficiency / 100), 2), 0) + values.reservedPercent = m_max(round(basePercentVal * (100 + values.inc) / 100 * values.more / (1 + values.efficiency / 100) / values.efficiencyMore, 2), 0) end end if activeSkill.activeMineCount then @@ -1840,6 +1841,7 @@ function calcs.perform(env, skipEHP) more = values.more ~= 1 and ("x "..values.more), inc = values.inc ~= 0 and ("x "..(1 + values.inc / 100)), efficiency = values.efficiency ~= 0 and ("x " .. round(100 / (100 + values.efficiency), 4)), + efficiencyMore = values.efficiencyMore ~= 1 and ("x "..values.efficiencyMore), total = values.reservedFlat, }) end @@ -1856,6 +1858,7 @@ function calcs.perform(env, skipEHP) more = values.more ~= 1 and ("x "..values.more), inc = values.inc ~= 0 and ("x "..(1 + values.inc / 100)), efficiency = values.efficiency ~= 0 and ("x " .. round(100 / (100 + values.efficiency), 4)), + efficiencyMore = values.efficiencyMore ~= 1 and ("x "..values.efficiencyMore), total = values.reservedPercent .. "%", }) end diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index efd496cbfc..5050c0422a 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -1074,6 +1074,7 @@ local preFlagList = { ["^golems [hd][ae][va][el] "] = { addToMinion = true, addToMinionTag = { type = "SkillType", skillType = SkillType.Golem } }, ["^summoned golems [hd][ae][va][el] "] = { addToMinion = true, addToMinionTag = { type = "SkillType", skillType = SkillType.Golem } }, ["^golem skills have "] = { tag = { type = "SkillType", skillType = SkillType.Golem } }, + ["^non%-minion skills have "] = { tag = { type = "SkillType", skillType = SkillType.Minion, neg = true } }, ["^zombies [hd][ae][va][el] "] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Raise Zombie", includeTransfigured = true } }, ["^raised zombies [hd][ae][va][el] "] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Raise Zombie", includeTransfigured = true } }, ["^skeletons [hd][ae][va][el] "] = { addToMinion = true, addToMinionTag = { type = "SkillName", skillName = "Summon Skeletons", includeTransfigured = true } },