Skip to content

Commit 3bb8c4b

Browse files
committed
Merge branch 'dev' into issue-9451-loadout-management
2 parents 58bb928 + 92bc0df commit 3bb8c4b

39 files changed

Lines changed: 42202 additions & 42013 deletions

.editorconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
[*.lua]
22
trim_trailing_whitespace = false
33
indent_style = tab
4-
max_line_length = 120
4+
max_line_length = 360

.github/workflows/spellcheck.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
CONFIG_URL: https://raw.githubusercontent.com/Nightblade/pob-dict/main
2020
steps:
2121
- name: Checkout
22-
uses: actions/checkout@v5
22+
uses: actions/checkout@v6
2323
with:
2424
ref: ${{ inputs.ref }}
2525

@@ -34,7 +34,7 @@ jobs:
3434
${{ env.CONFIG_URL }}/contribs-dict.txt
3535

3636
- name: Run cspell
37-
uses: streetsidesoftware/cspell-action@v7
37+
uses: streetsidesoftware/cspell-action@v8
3838
with:
3939
files: '**' # needed as workaround for non-incremental runs (overrides in config still work ok)
4040
config: "cspell.json"

src/Classes/CompareTab.lua

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2660,7 +2660,7 @@ function CompareTabClass:ComparePowerBuilder(compareEntry, powerStat, categories
26602660

26612661
-- if our comparison has abyssal jewels, but the primary build
26622662
-- doesn't, add those temporarily to the build to work around
2663-
-- calcfunc not being able to take in multiple items
2663+
-- calcFunc not being able to take in multiple items
26642664
local cmpJewels = {}
26652665
local oldEquipped = {}
26662666
if newItem.abyssalSocketCount > 0 then
@@ -3423,12 +3423,12 @@ function CompareTabClass:DrawItemExpanded(item, x, startY, colWidth, otherModMap
34233423
local fontSize = 14
34243424
local drawY = startY
34253425
local maxLineW = 0
3426-
local function emit(lx, ly, align, fs, fstyle, str)
3426+
local function emit(lx, ly, align, fs, fStyle, str)
34273427
if measureMode then
3428-
local w = DrawStringWidth(fs, fstyle, str)
3428+
local w = DrawStringWidth(fs, fStyle, str)
34293429
if w > maxLineW then maxLineW = w end
34303430
else
3431-
DrawString(lx, ly, align, fs, fstyle, str)
3431+
DrawString(lx, ly, align, fs, fStyle, str)
34323432
end
34333433
end
34343434

src/Classes/ImportTab.lua

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1082,6 +1082,23 @@ function ImportTabClass:ImportItem(itemData, slotName)
10821082
for _, property in pairs(itemData.properties) do
10831083
if property.name == "Quality" then
10841084
item.quality = tonumber(property.values[1][1]:match("%d+"))
1085+
elseif property.name:match("Quality %(") then
1086+
local catalystMap = {
1087+
["Attack"] = 1,
1088+
["Speed"] = 2,
1089+
["Suffix"] = 3,
1090+
["Life and Mana"] = 4,
1091+
["Caster"] = 5,
1092+
["Attribute"] = 6,
1093+
["Physical and Chaos Damage"] = 7,
1094+
["Resistance"] = 8,
1095+
["Prefix"] = 9,
1096+
["Defense"] = 10,
1097+
["Elemental Damage"] = 11,
1098+
["Critical"] = 12,
1099+
}
1100+
item.catalyst = catalystMap[property.name:match("Quality %((.*) Modifiers%)")]
1101+
item.catalystQuality = tonumber(property.values[1][1]:match("%d+"))
10851102
elseif property.name == "Radius" then
10861103
item.jewelRadiusLabel = property.values[1][1]
10871104
elseif property.name == "Limited to" then

src/Classes/Item.lua

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality)
465465
elseif fullModName:match("(.*)Enhancement.*") then
466466
linePostfix = " (enchant)"
467467
end
468-
local possibleLineFlags = fullModName:match("(.*)Modifier.*")
468+
local possibleLineFlags = fullModName:gsub("Foulborn", "Mutated"):match("(.*)Modifier.*")
469469
if possibleLineFlags then
470470
for flag in possibleLineFlags:gmatch("%a+") do
471471
if lineFlags[flag:lower()] then
@@ -827,12 +827,17 @@ function ItemClass:ParseRaw(raw, rarity, highQuality)
827827
end
828828
if self.pendingAffixList and #self.pendingAffixList > 0 then
829829
if #self.pendingAffixList > 1 then
830-
-- Probably a conqueror mod since the mod name is the same for all of them
830+
-- Probably a conqueror or essence mod since the mod name is the same for all of them
831831
-- Try to match the line against one of the mods there
832832
local valueStrippedLine = line:gsub("%-?%d+%.?%d*%(", "("):gsub("%-?%d+%.?%d*", "#")
833833
for _, pendingAffix in ipairs(self.pendingAffixList) do
834834
local modData = self.affixes[pendingAffix.modId]
835835
for _, modDataLine in ipairs(modData) do
836+
-- Prefer the exact match
837+
if line == modDataLine then
838+
self.pendingAffixList = { pendingAffix }
839+
break
840+
end
836841
if valueStrippedLine == modDataLine:gsub("%-?%d+%.?%d*", "#") then
837842
self.pendingAffixList = { pendingAffix }
838843
break
@@ -855,7 +860,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality)
855860
end
856861
t_insert(self.pendingAffixList[1].table, {
857862
modId = self.pendingAffixList[1].modId,
858-
range = tonumber(bestPrecisionRange),
863+
range = bestPrecisionRange >= 0 and bestPrecisionRange <= 1 and bestPrecisionRange or 0.5,
859864
})
860865
self.pendingAffixList = {}
861866
else
@@ -880,7 +885,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality)
880885
end
881886
end
882887
if bestPrecisionRange <= 1 and bestPrecisionRange >= 0 then
883-
modLine.range = tonumber(bestPrecisionRange)
888+
modLine.range = bestPrecisionRange
884889
end
885890
end
886891
local rangedLine = itemLib.applyRange(line, 1, catalystScalar)

src/Classes/PartyTab.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ local PartyTabClass = newClass("PartyTab", "ControlHost", "Control", function(se
371371
self:ParseBuffs(self.enemyModList, self.controls.enemyMods.buf, "EnemyMods", self.controls.simpleEnemyMods)
372372
self.build.buildFlag = true
373373
end)
374-
self.controls.rebuild.tooltipText = "^7Reparse all the inputs incase they have been disabled or they have changed since loading the build or importing"
374+
self.controls.rebuild.tooltipText = "^7Reparse all the inputs in case they have been disabled or they have changed since loading the build or importing"
375375
self.controls.rebuild.x = function()
376376
return (self.width > theme.widthThreshold1) and 8 or (-328)
377377
end

src/Data/BeastCraft.lua

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
-- Item data (c) Grinding Gear Games
33

44
return {
5-
["GrantsCatAspectCrafted"] = { type = "Suffix", affix = "of Farrul", "Grants Level 20 Aspect of the Cat Skill", statOrder = { 700 }, level = 20, group = "GrantsCatAspect", weightKey = { "default", }, weightVal = { 0 }, modTags = { "skill" }, tradeHashes = { [1265282021] = { "Grants Level 20 Aspect of the Cat Skill" }, } },
6-
["GrantsBirdAspectCrafted"] = { type = "Suffix", affix = "of Saqawal", "Grants Level 20 Aspect of the Avian Skill", statOrder = { 695 }, level = 20, group = "GrantsBirdAspect", weightKey = { "default", }, weightVal = { 0 }, modTags = { "skill" }, tradeHashes = { [3914740665] = { "Grants Level 20 Aspect of the Avian Skill" }, } },
7-
["GrantsSpiderAspectCrafted"] = { type = "Suffix", affix = "of Fenumus", "Grants Level 20 Aspect of the Spider Skill", statOrder = { 725 }, level = 20, group = "GrantsSpiderAspect", weightKey = { "default", }, weightVal = { 0 }, modTags = { "skill" }, tradeHashes = { [956546305] = { "Grants Level 20 Aspect of the Spider Skill" }, } },
8-
["GrantsCrabAspectCrafted"] = { type = "Suffix", affix = "of Craiceann", "Grants Level 20 Aspect of the Crab Skill", statOrder = { 702 }, level = 20, group = "GrantsCrabAspect", weightKey = { "default", }, weightVal = { 0 }, modTags = { "blue_herring", "skill" }, tradeHashes = { [4102318278] = { "Grants Level 20 Aspect of the Crab Skill" }, } },
9-
["GrantsCatAspectCrafted30"] = { type = "Suffix", affix = "of Farrul", "Grants Level 30 Aspect of the Cat Skill", statOrder = { 700 }, level = 20, group = "GrantsCatAspect", weightKey = { "default", }, weightVal = { 0 }, modTags = { "skill" }, tradeHashes = { [1265282021] = { "Grants Level 30 Aspect of the Cat Skill" }, } },
10-
["GrantsBirdAspectCrafted30"] = { type = "Suffix", affix = "of Saqawal", "Grants Level 30 Aspect of the Avian Skill", statOrder = { 695 }, level = 20, group = "GrantsBirdAspect", weightKey = { "default", }, weightVal = { 0 }, modTags = { "skill" }, tradeHashes = { [3914740665] = { "Grants Level 30 Aspect of the Avian Skill" }, } },
11-
["GrantsSpiderAspectCrafted30"] = { type = "Suffix", affix = "of Fenumus", "Grants Level 30 Aspect of the Spider Skill", statOrder = { 725 }, level = 20, group = "GrantsSpiderAspect", weightKey = { "default", }, weightVal = { 0 }, modTags = { "skill" }, tradeHashes = { [956546305] = { "Grants Level 30 Aspect of the Spider Skill" }, } },
12-
["GrantsCrabAspectCrafted30"] = { type = "Suffix", affix = "of Craiceann", "Grants Level 30 Aspect of the Crab Skill", statOrder = { 702 }, level = 20, group = "GrantsCrabAspect", weightKey = { "default", }, weightVal = { 0 }, modTags = { "blue_herring", "skill" }, tradeHashes = { [4102318278] = { "Grants Level 30 Aspect of the Crab Skill" }, } },
5+
["GrantsCatAspectCrafted"] = { type = "Suffix", affix = "of Farrul", "Grants Level 20 Aspect of the Cat Skill", statOrder = { 695 }, level = 20, group = "GrantsCatAspect", weightKey = { "default", }, weightVal = { 0 }, modTags = { "skill" }, tradeHashes = { [1265282021] = { "Grants Level 20 Aspect of the Cat Skill" }, } },
6+
["GrantsBirdAspectCrafted"] = { type = "Suffix", affix = "of Saqawal", "Grants Level 20 Aspect of the Avian Skill", statOrder = { 690 }, level = 20, group = "GrantsBirdAspect", weightKey = { "default", }, weightVal = { 0 }, modTags = { "skill" }, tradeHashes = { [3914740665] = { "Grants Level 20 Aspect of the Avian Skill" }, } },
7+
["GrantsSpiderAspectCrafted"] = { type = "Suffix", affix = "of Fenumus", "Grants Level 20 Aspect of the Spider Skill", statOrder = { 720 }, level = 20, group = "GrantsSpiderAspect", weightKey = { "default", }, weightVal = { 0 }, modTags = { "skill" }, tradeHashes = { [956546305] = { "Grants Level 20 Aspect of the Spider Skill" }, } },
8+
["GrantsCrabAspectCrafted"] = { type = "Suffix", affix = "of Craiceann", "Grants Level 20 Aspect of the Crab Skill", statOrder = { 697 }, level = 20, group = "GrantsCrabAspect", weightKey = { "default", }, weightVal = { 0 }, modTags = { "blue_herring", "skill" }, tradeHashes = { [4102318278] = { "Grants Level 20 Aspect of the Crab Skill" }, } },
9+
["GrantsCatAspectCrafted30"] = { type = "Suffix", affix = "of Farrul", "Grants Level 30 Aspect of the Cat Skill", statOrder = { 695 }, level = 20, group = "GrantsCatAspect", weightKey = { "default", }, weightVal = { 0 }, modTags = { "skill" }, tradeHashes = { [1265282021] = { "Grants Level 30 Aspect of the Cat Skill" }, } },
10+
["GrantsBirdAspectCrafted30"] = { type = "Suffix", affix = "of Saqawal", "Grants Level 30 Aspect of the Avian Skill", statOrder = { 690 }, level = 20, group = "GrantsBirdAspect", weightKey = { "default", }, weightVal = { 0 }, modTags = { "skill" }, tradeHashes = { [3914740665] = { "Grants Level 30 Aspect of the Avian Skill" }, } },
11+
["GrantsSpiderAspectCrafted30"] = { type = "Suffix", affix = "of Fenumus", "Grants Level 30 Aspect of the Spider Skill", statOrder = { 720 }, level = 20, group = "GrantsSpiderAspect", weightKey = { "default", }, weightVal = { 0 }, modTags = { "skill" }, tradeHashes = { [956546305] = { "Grants Level 30 Aspect of the Spider Skill" }, } },
12+
["GrantsCrabAspectCrafted30"] = { type = "Suffix", affix = "of Craiceann", "Grants Level 30 Aspect of the Crab Skill", statOrder = { 697 }, level = 20, group = "GrantsCrabAspect", weightKey = { "default", }, weightVal = { 0 }, modTags = { "blue_herring", "skill" }, tradeHashes = { [4102318278] = { "Grants Level 30 Aspect of the Crab Skill" }, } },
1313
}

0 commit comments

Comments
 (0)