Skip to content

Commit 9132caf

Browse files
committed
Add warning for going over augment limits
1 parent 7d8d5f2 commit 9132caf

3 files changed

Lines changed: 26 additions & 1 deletion

File tree

src/Classes/Item.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality)
545545
local runeData = data.itemMods.Runes[specVal]
546546
if runeData then
547547
for _, slotData in pairs(runeData) do
548-
runeLevel = math.max(runeLevel, slotData.rank[1])
548+
runeLevel = m_max(runeLevel, slotData.rank)
549549
end
550550
end
551551
if runeLevel > 0 and (not self.requirements.runeLevel or runeLevel > self.requirements.runeLevel) then

src/Modules/Build.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2189,6 +2189,11 @@ function buildMode:InsertItemWarnings()
21892189
InsertIfNew(self.controls.warnings.lines, "You are exceeding jewel limit with the jewel "..warning)
21902190
end
21912191
end
2192+
if self.calcsTab.mainEnv.itemWarnings.augmentLimitWarning then
2193+
for _, warning in ipairs(self.calcsTab.mainEnv.itemWarnings.augmentLimitWarning) do
2194+
InsertIfNew(self.controls.warnings.lines, "You are exceeding augment limit with: "..warning)
2195+
end
2196+
end
21922197
if self.calcsTab.mainEnv.itemWarnings.socketLimitWarning then
21932198
for _, warning in ipairs(self.calcsTab.mainEnv.itemWarnings.socketLimitWarning) do
21942199
InsertIfNew(self.controls.warnings.lines, "You have too many gems in your "..warning.." socket group")

src/Modules/CalcSetup.lua

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -807,11 +807,16 @@ function calcs.initEnv(build, mode, override, specEnv)
807807

808808
-- Build and merge item modifiers, and create list of radius jewels
809809
if not accelerate.requirementsItems then
810+
-- save augment counts so we can track going over count limits
811+
local augmentCounts = {}
810812
for runeSlotName, slot in pairs(build.itemsTab.runeSlots) do
811813
local rune = slot:GetSelValue()
812814
if runeSlotName == override.repSlotName then
813815
rune = override.repItem
814816
end
817+
if rune.name then
818+
augmentCounts[rune.name] = (augmentCounts[rune.name] or 0) + 1
819+
end
815820
for _, mod in ipairs(rune.mods) do
816821
env.itemModDB:AddMod(mod)
817822
end
@@ -1099,6 +1104,7 @@ function calcs.initEnv(build, mode, override, specEnv)
10991104
for i = 1, item.itemSocketCount do
11001105
if item.runes[i] ~= "None" then
11011106
socketed = socketed + 1
1107+
augmentCounts[item.runes[i]] = (augmentCounts[item.runes[i]] or 0) + 1
11021108
end
11031109
end
11041110
env.itemModDB.multipliers["RunesSocketedIn"..slotName] = socketed
@@ -1317,6 +1323,20 @@ function calcs.initEnv(build, mode, override, specEnv)
13171323
env.charms[override.toggleCharm] = true
13181324
end
13191325
end
1326+
1327+
for augmentName, count in pairs(augmentCounts) do
1328+
local dbAugment = data.itemMods.Runes[augmentName]
1329+
local _, dbMod = next(dbAugment)
1330+
if dbMod and dbMod.limit and count > dbMod.limit then
1331+
-- warn for going over augment limits
1332+
if env.build.calcsTab.mainEnv then
1333+
env.build.calcsTab.mainEnv.itemWarnings.augmentLimitWarning = env.build.calcsTab.mainEnv.itemWarnings.augmentLimitWarning or { }
1334+
t_insert(env.build.calcsTab.mainEnv.itemWarnings.augmentLimitWarning, augmentName)
1335+
end
1336+
end
1337+
end
1338+
1339+
13201340
end
13211341

13221342
-- Merge env.itemModDB with env.ModDB

0 commit comments

Comments
 (0)