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
2 changes: 1 addition & 1 deletion src/Classes/BuildListControl.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
--
local ipairs = ipairs
local s_format = string.format
local buildListHelpers = LoadModule("Modules/BuildListHelpers")
local buildListHelpers = require("Modules.BuildListHelpers")

---@class BuildListControl: ListControl
local BuildListClass = newClass("BuildListControl", "ListControl")
Expand Down
2 changes: 1 addition & 1 deletion src/Classes/CalcsTab.lua
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ function CalcsTabClass:CalcsTab(build)

self.build = build

self.calcs = LoadModule("Modules/Calcs")
self.calcs = require("Modules.Calcs")

self.input = { }
self.input.skill_number = 1
Expand Down
21 changes: 13 additions & 8 deletions src/Classes/CompareBuySimilar.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,19 @@
local t_insert = table.insert
local m_floor = math.floor
local dkjson = require "dkjson"
local tradeHelpers = LoadModule("Classes/TradeHelpers")
local tradeStats = tradeHelpers.getTradeStats()

-- used to check what stats actually exist on the trade site.
local existingStats = {}
for _, cat in ipairs(tradeStats or {}) do
for _, entry in ipairs(cat.entries) do
existingStats[entry.id] = true
local tradeHelpers = require("Classes.TradeHelpers")

-- used to check what stats actually exist on the trade site
local _existingStats
local function getStats()
if _existingStats then return _existingStats end
_existingStats = {}
for _, cat in ipairs(tradeHelpers.getTradeStats() or {}) do
for _, entry in ipairs(cat.entries) do
_existingStats[entry.id] = true
end
end
return _existingStats
end

local M = {}
Expand Down Expand Up @@ -257,6 +261,7 @@ function M.addModEntries(item, modTypeSources)
-- convert hashes to string ids
local resultIds = {}
if resultHashes then
local existingStats = getStats()
for idx = 1, #resultHashes do
local id = string.format("%s.stat_%s", source.type, resultHashes[idx])
if existingStats[id] then
Expand Down
2 changes: 1 addition & 1 deletion src/Classes/CompareEntry.lua
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ function CompareEntryClass:CompareEntry(xmlText, label)
self.outputRevision = 1

-- Display stats (same as primary build uses)
local displayStatsModule = LoadModule("Modules/BuildDisplayStats")
local displayStatsModule = require("Modules.BuildDisplayStats")
self.displayStats = displayStatsModule.displayStats
self.minionDisplayStats = displayStatsModule.minionDisplayStats
self.extraSaveStats = displayStatsModule.extraSaveStats
Expand Down
16 changes: 8 additions & 8 deletions src/Classes/CompareTab.lua
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ local m_min = math.min
local m_max = math.max
local m_floor = math.floor
local s_format = string.format
local tradeHelpers = LoadModule("Classes/TradeHelpers")
local buySimilar = LoadModule("Classes/CompareBuySimilar")
local calcsHelpers = LoadModule("Classes/CompareCalcsHelpers")
local buildListHelpers = LoadModule("Modules/BuildListHelpers")
local itemSlotHelper = LoadModule("Modules/ItemSlotHelper")
local configVisibility = LoadModule("Modules/ConfigVisibility")
local tradeHelpers = require("Classes.TradeHelpers")
local buySimilar = require("Classes.CompareBuySimilar")
local calcsHelpers = require("Classes.CompareCalcsHelpers")
local buildListHelpers = require("Modules.BuildListHelpers")
local itemSlotHelper = require("Modules.ItemSlotHelper")
local configVisibility = require("Modules.ConfigVisibility")

-- Node IDs below this value are normal passive tree nodes; IDs at or above are cluster jewel nodes
local CLUSTER_NODE_OFFSET = 65536
Expand Down Expand Up @@ -188,9 +188,9 @@ function CompareTabClass:CompareTab(primaryBuild)
self.comparePowerCompareId = nil -- track which compare entry was calculated

-- Pre-load static module data
self.configOptions = LoadModule("Modules/ConfigOptions")
self.configOptions = require("Modules.ConfigOptions")
self.calcSections = LoadModule("Modules/CalcSections")
self.calcs = LoadModule("Modules/Calcs")
self.calcs = require("Modules.Calcs")

-- Controls for the comparison screen
self:InitControls()
Expand Down
4 changes: 2 additions & 2 deletions src/Classes/ConfigTab.lua
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ local m_max = math.max
local m_floor = math.floor
local s_upper = string.upper

local varList = LoadModule("Modules/ConfigOptions")
local configVisibility = LoadModule("Modules/ConfigVisibility")
local varList = require("Modules.ConfigOptions")
local configVisibility = require("Modules.ConfigVisibility")

---@class CustomModBlock: ControlHost, Control
local CustomModBlockClass = newClass("CustomModBlockControl", "ControlHost", "Control")
Expand Down
2 changes: 1 addition & 1 deletion src/Classes/GemSelectControl.lua
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ local m_min = math.min
local m_max = math.max
local m_floor = math.floor

local gemTooltip = LoadModule("Classes/GemTooltip")
local gemTooltip = require("Classes.GemTooltip")
local toolTipText = "Prefix tag searches with a colon and exclude tags with a dash. e.g. :fire:lightning:-cold:area"
local imbuedTooltipText = "\"Socketed in\" item must be set in order to add an imbued support.\nOnly one imbued support is allowed per item."

Expand Down
2 changes: 1 addition & 1 deletion src/Classes/ItemSlotControl.lua
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ local pairs = pairs
local t_insert = table.insert
local m_min = math.min

local itemSlotHelper = LoadModule("Modules/ItemSlotHelper")
local itemSlotHelper = require("Modules.ItemSlotHelper")
---@class ItemSlotControl
local ItemSlotClass = newClass("ItemSlotControl", "DropDownControl")

Expand Down
4 changes: 2 additions & 2 deletions src/Classes/ItemsTab.lua
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ local m_min = math.min
local m_ceil = math.ceil
local m_floor = math.floor
local m_modf = math.modf
local buySimilar = LoadModule("Classes/CompareBuySimilar")
local buySimilar = require("Classes.CompareBuySimilar")

local gemTooltip = LoadModule("Classes/GemTooltip")
local gemTooltip = require("Classes.GemTooltip")
local rarityDropList = {
{ label = colorCodes.NORMAL.."Normal", rarity = "NORMAL" },
{ label = colorCodes.MAGIC.."Magic", rarity = "MAGIC" },
Expand Down
8 changes: 4 additions & 4 deletions src/Classes/PassiveTree.lua
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ function PassiveTreeClass:PassiveTree(treeVersion)
self.treeVersion = treeVersion
local versionNum = treeVersions[treeVersion].num

self.legion = LoadModule("Data/TimelessJewelData/LegionPassives")
self.tattoo = LoadModule("Data/TattooPassives")
self.legion = require("Data.TimelessJewelData.LegionPassives")
self.tattoo = require("Data.TattooPassives")

MakeDir("TreeData")

Expand Down Expand Up @@ -231,7 +231,7 @@ function PassiveTreeClass:PassiveTree(treeVersion)
end

if not self.assets then
self.assets = LoadModule("TreeData/3_19/Assets.lua")
self.assets = require("TreeData.3_19.Assets")
self.assets = self.assets.assets
if self.alternate_ascendancies then
-- backgrounds
Expand Down Expand Up @@ -386,7 +386,7 @@ function PassiveTreeClass:PassiveTree(treeVersion)
end

-- Load legion sprite sheets and build sprite map
local legionSprites = LoadModule("TreeData/legion/tree-legion.lua")
local legionSprites = require("TreeData.legion.tree-legion")
local function loadLegionSheet(data)
local sheet = spriteSheets[data.filename]
if not sheet then
Expand Down
2 changes: 1 addition & 1 deletion src/Classes/PassiveTreeView.lua
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ local JEWEL_RADIUS_TINT_NEUTRAL = { 1, 1, 1, 0.7 }
local JEWEL_RADIUS_TINT_PRIMARY_ONLY = { 1, 0, 0, 0.7 }
local JEWEL_RADIUS_TINT_COMPARE_ONLY = { 0, 1, 0, 0.7 }

local gemTooltip = LoadModule("Classes/GemTooltip")
local gemTooltip = require("Classes.GemTooltip")

local function isAbyssConquered(node)
local conqueror = node and node.conqueredBy and node.conqueredBy.conqueror
Expand Down
64 changes: 33 additions & 31 deletions src/Classes/TradeHelpers.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,40 @@
-- Stateless trade mod lookup/matching and item display helper functions
--
local m_floor = math.floor
local statDescData = require("Data.StatDescriptions.stat_descriptions")

-- precalculate patterns used for matching stat lines
-- The stat description data is big and is only needed once a trade lookup actually runs,
-- so it and its precalculated patterns are built lazily
local numberPattern = "%%d%+%%.%?%%d*"
for _, statDescEntry in ipairs(statDescData) do
for _, desc in ipairs(statDescEntry[1] or {}) do
-- pob doesn't parse this as a part of other mods
desc.text = desc.text:gsub("\nPassage", "")
desc.pat = desc.text
-- ignore uppercase letters to help custom items match
:lower()
-- remove minus and plus signs
:gsub("%-{", "{")
:gsub("%+{", "{")
-- escape existing characters
:gsub("([%(%)%.%%%+%-%*%?%[%]%^%$])", "%%%1")
-- match # to # as one block since the trade site uses the midpoint. these don't seem to
-- ever have plus or minus signs, and can't be negative as even flat damage turns into
-- flat damage against you instead of being negative
:gsub("{.-} to {.-}", string.format("(%s to %s)", numberPattern, numberPattern))

-- match number variables like {}, {0}, {0:-d}, {0:+d}, or {:d}
:gsub("{.-}",
-- and add optional plus and number signs. this is not necessarily correct as some
-- stats do require the plus sign to parse, but this simplifies handling reflected
-- mods
"%%%+%?(%%%-%?" .. numberPattern .. ")")
local statDescData
local function getStatDescData()
if statDescData then return statDescData end
statDescData = LoadModule("Data/StatDescriptions/stat_descriptions")
for _, statDescEntry in ipairs(statDescData) do
for _, desc in ipairs(statDescEntry[1] or {}) do
-- pob doesn't parse this as a part of other mods
desc.text = desc.text:gsub("\nPassage", "")
desc.pat = desc.text
-- ignore uppercase letters to help custom items match
:lower()
-- remove minus and plus signs
:gsub("%-{", "{")
:gsub("%+{", "{")
-- escape existing characters
:gsub("([%(%)%.%%%+%-%*%?%[%]%^%$])", "%%%1")
-- match # to # as one block since the trade site uses the midpoint. these don't seem to
-- ever have plus or minus signs, and can't be negative as even flat damage turns into
-- flat damage against you instead of being negative
:gsub("{.-} to {.-}", string.format("(%s to %s)", numberPattern, numberPattern))

-- match number variables like {}, {0}, {0:-d}, {0:+d}, or {:d}
:gsub("{.-}",
-- and add optional plus and number signs. this is not necessarily correct as some
-- stats do require the plus sign to parse, but this simplifies handling reflected
-- mods
"%%%+%?(%%%-%?" .. numberPattern .. ")")
end
end
return statDescData
end

local M = {}
Expand Down Expand Up @@ -68,13 +74,9 @@ function M.modLineValue(line, onlyFromTo)
return tonumber(line:match("%-?[%d]+%.?[%d]*"))
end

local _tradeStats

---@return table? tradeStats
function M.getTradeStats()
if _tradeStats then return _tradeStats end
_tradeStats = LoadModule("Data/TradeSiteStats")
return _tradeStats
return require("Data.TradeSiteStats")
end

local _optionTradeStatMap
Expand Down Expand Up @@ -216,7 +218,7 @@ function M.findTradeHash(modLine)
break
end
end
for _, statDescEntry in ipairs(statDescData) do
for _, statDescEntry in ipairs(getStatDescData()) do
local statDescriptions = statDescEntry[1]
if not statDescriptions then
goto continue
Expand Down
2 changes: 1 addition & 1 deletion src/Classes/TradeQuery.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@


local dkjson = require "dkjson"
local itemSlotHelper = LoadModule("Modules/ItemSlotHelper")
local itemSlotHelper = require("Modules.ItemSlotHelper")

local get_time = os.time
local t_insert = table.insert
Expand Down
6 changes: 3 additions & 3 deletions src/Classes/TradeQueryGenerator.lua
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ local curl = require("lcurl.safe")
local m_max = math.max
local s_format = string.format
local t_insert = table.insert
local tradeHelpers = LoadModule("Classes/TradeHelpers")
local utils = LoadModule("Modules/Utils")
local tradeHelpers = require("Classes.TradeHelpers")
local utils = require("Modules.Utils")

-- a table which tells us what subtypes each category we can search for
-- contains. the commented out lines are type-subtype combinations which don't
Expand Down Expand Up @@ -378,7 +378,7 @@ function TradeQueryGeneratorClass:InitMods()
if file then
file:close()
---@module "src.Data.QueryMods"
self.modData = LoadModule(queryModFilePath)
self.modData = require(queryModFilePath:gsub("%.lua$", ""))
return
end

Expand Down
2 changes: 1 addition & 1 deletion src/Classes/TradeQueryRequests.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
--

local dkjson = require "dkjson"
local utils = LoadModule("Modules/Utils")
local utils = require("Modules.Utils")

---@class TradeQueryRequests
local TradeQueryRequestsClass = newClass("TradeQueryRequests")
Expand Down
2 changes: 1 addition & 1 deletion src/Data/Uniques/Special/Generated.lua
Original file line number Diff line number Diff line change
Expand Up @@ -948,7 +948,7 @@ table.insert(data.uniques.generated, table.concat(thatWhichWasTaken, "\n"))

local replicaDragonfangsFlightMods = {}

LoadModule("Modules/CalcTools")
require("Modules.CalcTools")
for _, gem in pairs(data.gems) do
if not string.match(gem.grantedEffectId, "Alt[XY]$") and calcLib.gemIsType(gem, "active skill", false) and calcLib.gemIsType(gem, "non-vaal", false) then
replicaDragonfangsFlightMods[gem.name] = "+3 to Level of all "..gem.name.." Gems"
Expand Down
2 changes: 1 addition & 1 deletion src/Modules/Build.lua
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,7 @@ function buildMode:Init(dbFileName, buildName, buildXML, convertBuild, importLin
end

-- List of display stats
local displayStatsModule = LoadModule("Modules/BuildDisplayStats")
local displayStatsModule = require("Modules.BuildDisplayStats")
self.displayStats = displayStatsModule.displayStats
self.minionDisplayStats = displayStatsModule.minionDisplayStats
self.extraSaveStats = displayStatsModule.extraSaveStats
Expand Down
2 changes: 1 addition & 1 deletion src/Modules/BuildList.lua
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ local pairs = pairs
local ipairs = ipairs
local t_insert = table.insert

local buildListHelpers = LoadModule("Modules/BuildListHelpers")
local buildListHelpers = require("Modules.BuildListHelpers")
local buildSortDropList = buildListHelpers.buildSortDropList

local listMode = new("ControlHost"):ControlHost()
Expand Down
4 changes: 2 additions & 2 deletions src/Modules/CalcOffence.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1940,7 +1940,7 @@ function calcs.offence(env, actor, activeSkill)
local critOverride = skillModList:Override(skillCfg, "WeaponBaseCritChance")
if skillFlags.weapon1Attack then
if breakdown then
breakdown.MainHand = LoadModule(calcs.breakdownModule)(skillModList, output.MainHand)
breakdown.MainHand = require(calcs.breakdownModule)(skillModList, output.MainHand)
end
activeSkill.weapon1Cfg.skillStats = output.MainHand
local source = copyTable(actor.weaponData1)
Expand All @@ -1957,7 +1957,7 @@ function calcs.offence(env, actor, activeSkill)
end
if skillFlags.weapon2Attack then
if breakdown then
breakdown.OffHand = LoadModule(calcs.breakdownModule)(skillModList, output.OffHand)
breakdown.OffHand = require(calcs.breakdownModule)(skillModList, output.OffHand)
end
activeSkill.weapon2Cfg.skillStats = output.OffHand
local source = copyTable(actor.weaponData2)
Expand Down
4 changes: 2 additions & 2 deletions src/Modules/CalcPerform.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1480,10 +1480,10 @@ function calcs.perform(env, skipEHP)
local breakdown = nil
if env.mode == "CALCS" then
-- Initialise breakdown module
breakdown = LoadModule(calcs.breakdownModule)(modDB, output, env.player)
breakdown = require(calcs.breakdownModule)(modDB, output, env.player)
env.player.breakdown = breakdown
if env.minion then
env.minion.breakdown = LoadModule(calcs.breakdownModule)(env.minion.modDB, env.minion.output, env.minion)
env.minion.breakdown = require(calcs.breakdownModule)(env.minion.modDB, env.minion.output, env.minion)
end
end

Expand Down
2 changes: 1 addition & 1 deletion src/Modules/Calcs.lua
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ local m_ceil = math.ceil

---@class Calcs
local calcs = require("Modules.CalcBase")
calcs.breakdownModule = "Modules/CalcBreakdown"
calcs.breakdownModule = "Modules.CalcBreakdown"
require("Modules.CalcSetup")
require("Modules.CalcPerform")
require("Modules.CalcActiveSkill")
Expand Down
2 changes: 1 addition & 1 deletion src/Modules/DataAbyssJewelLookUpTableHelper.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
--
local s_byte = string.byte
local s_sub = string.sub
local loadJewelFile = LoadModule("Modules/DataJewelFileLoader")
local loadJewelFile = require("Modules.DataJewelFileLoader")

local function readUInt16(jewelData, offset)
return bytesToUShort(jewelData, offset), offset + 2
Expand Down
2 changes: 1 addition & 1 deletion src/Modules/DataLegionLookUpTableHelper.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
-- Module: Data Legion Look Up Table Helper
-- Contains functions for managing the LUTs for the data module
--
local loadJewelFile = LoadModule("Modules/DataJewelFileLoader")
local loadJewelFile = require("Modules.DataJewelFileLoader")

-- lazy load a specific timeless jewel type
-- valid values: "Glorious Vanity", "Lethal Pride", "Brutal Restraint", "Militant Faith", "Elegant Hubris"
Expand Down
4 changes: 2 additions & 2 deletions src/Modules/Main.lua
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ LoadModule("Modules/Common")
LoadModule("Modules/CalcFormat")
LoadModule("Modules/Data")
LoadModule("Modules/ModTools")
LoadModule("Modules/ItemTools")
LoadModule("Modules/CalcTools")
require("Modules.ItemTools")
require("Modules.CalcTools")
LoadModule("Modules/PantheonTools")
LoadModule("Modules/BuildSiteTools")

Expand Down
Loading
Loading