Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/Modules/Build.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1701,6 +1701,9 @@ function buildMode:InsertItemWarnings()
InsertIfNew(self.controls.warnings.lines, "You have too many gems in your "..warning.." slot")
end
end
if self.calcsTab.mainEnv.itemWarnings.missingAnointWarning then
InsertIfNew(self.controls.warnings.lines, "You have eligible items missing an anoint: "..table.concat(self.calcsTab.mainEnv.itemWarnings.missingAnointWarning, ", "))
end
end

-- Build list of side bar stats
Expand Down
23 changes: 23 additions & 0 deletions src/Modules/CalcSetup.lua
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,21 @@ local m_max = math.max

local tempTable1 = { }

local function isAnointableItem(item)
return item and item.base and (item.canBeAnointed or item.base.type == "Amulet")
end

local function itemHasAnoint(item)
for _, modList in ipairs({ item.enchantModLines, item.scourgeModLines, item.implicitModLines, item.explicitModLines, item.crucibleModLines }) do
for _, mod in ipairs(modList or {}) do
if mod.line and mod.line:find("Allocates ", 1, true) then
return true
end
end
end
return false
end

-- Initialise modifier database with stats and conditions common to all actors
function calcs.initModDB(env, modDB)
modDB:NewMod("FireResistMax", "BASE", data.characterConstants["base_maximum_all_resistances_%"], "Base")
Expand Down Expand Up @@ -878,6 +893,14 @@ function calcs.initEnv(build, mode, override, specEnv)
end
end

for _, slot in ipairs(build.itemsTab.orderedSlots) do
local item = items[slot.slotName]
if isAnointableItem(item) and not itemHasAnoint(item) then
env.itemWarnings.missingAnointWarning = env.itemWarnings.missingAnointWarning or { }
t_insert(env.itemWarnings.missingAnointWarning, slot.label)
end
end

-- Track which flask slot (1-5) each flask is in, for adjacency checks
env.flaskSlotMap = { }
env.flaskSlotOccupied = { }
Expand Down