Skip to content

Commit 0afacf1

Browse files
committed
Change tradehash exports to export a map of hash to stat description for each mod
1 parent 3283e06 commit 0afacf1

10 files changed

Lines changed: 7601 additions & 7596 deletions

File tree

src/Classes/CompareTradeHelpers.lua

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -92,25 +92,19 @@ function M.findTradeHash(item, modLine, modType)
9292
-- the data export splits some mods into different parts, even though they
9393
-- are technically just one stat. we handle that here
9494
function findStat(dbMod)
95-
local lineIdx = 1
96-
local statIdx = 1
97-
while dbMod.statOrder[lineIdx] do
98-
local skipped = false
99-
while dbMod.statOrder[lineIdx] == m_floor(dbMod.statOrder[lineIdx + 1] or -1) do
100-
-- some stats are split, skip those for now
101-
lineIdx = lineIdx + 1
102-
skipped = true
103-
end
104-
if not skipped and dbMod[lineIdx] then
105-
local dbFormatted = M.formatDatabaseText(dbMod[lineIdx])
106-
if formattedLine == dbFormatted and item:GetModSpawnWeight(dbMod, nil, {default = true}) then
107-
return dbMod.tradeHashes[statIdx]
95+
if not item:GetModSpawnWeight(dbMod, nil, { default = true }) then
96+
return nil
97+
end
98+
for tradeHash, description in pairs(dbMod.tradeHashes) do
99+
for _, line in ipairs(description) do
100+
local dbFormatted = M.formatDatabaseText(line)
101+
if formattedLine == dbFormatted then
102+
return tradeHash
108103
end
109104
end
110-
lineIdx = lineIdx + 1
111-
statIdx = statIdx + 1
112105
end
113106
end
107+
114108
-- corruptions
115109
if modType == "enchant" then
116110
for _, dbMod in pairs(data.itemMods.Corruption) do
@@ -119,24 +113,23 @@ function M.findTradeHash(item, modLine, modType)
119113
return tradeHashMaybe
120114
end
121115
end
122-
-- explicit
116+
-- explicit
123117
elseif modType ~= "implicit" then
124118
for _, dbMod in pairs(data.itemMods.Item) do
125119
local tradeHashMaybe = findStat(dbMod)
126-
if tradeHashMaybe then
127-
return tradeHashMaybe
128-
end
120+
if tradeHashMaybe then
121+
return tradeHashMaybe
122+
end
129123
end
130124
end
131125
-- implicit, and special explicit (e.g. unique and essence)
132126
for _, dbMod in pairs(data.itemMods.Exclusive) do
133127
local tradeHashMaybe = findStat(dbMod)
134-
if tradeHashMaybe then
135-
return tradeHashMaybe
136-
end
128+
if tradeHashMaybe then
129+
return tradeHashMaybe
130+
end
137131
end
138132
end
139-
140133
-- Map slot name + item type to (trade API category string, itemCategoryTags key).
141134
-- queryStr: e.g. "armour.shield", "weapon.onemace"
142135
-- categoryLabel: e.g. "Shield", "1HMace", "1HWeapon" (nil for flask / generic jewel / unsupported)

src/Data/ModCharm.lua

Lines changed: 51 additions & 51 deletions
Large diffs are not rendered by default.

src/Data/ModCorrupted.lua

Lines changed: 127 additions & 127 deletions
Large diffs are not rendered by default.

src/Data/ModFlask.lua

Lines changed: 78 additions & 78 deletions
Large diffs are not rendered by default.

src/Data/ModIncursionLimb.lua

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

44
return {
5-
["IncursionLeg1"] = { affix = "", "(20-30)% increased Evasion Rating", statOrder = { 866 }, level = 0, group = "GlobalEvasionRatingPercent", weightKey = { }, weightVal = { }, modTags = { "evasion", "defences" }, tradeHashes = { 2106365538 }, },
6-
["IncursionLeg2"] = { affix = "", "(6-10)% increased Movement Speed while Sprinting", statOrder = { 9465 }, level = 0, group = "MovementVelocityWhileSprinting", weightKey = { }, weightVal = { }, modTags = { }, tradeHashes = { 3107707789 }, },
7-
["IncursionLeg3"] = { affix = "", "(15-25)% increased Stun Threshold", statOrder = { 2878 }, level = 0, group = "IncreasedStunThreshold", weightKey = { }, weightVal = { }, modTags = { }, tradeHashes = { 680068163 }, },
8-
["IncursionLeg4"] = { affix = "", "(5-10)% reduced Movement Speed Penalty from using Skills while moving", statOrder = { 8594 }, level = 0, group = "MovementVelocityPenaltyWhilePerformingAction", weightKey = { }, weightVal = { }, modTags = { "speed" }, tradeHashes = { 2590797182 }, },
9-
["IncursionLeg5"] = { affix = "", "(20-30)% increased Mana Regeneration Rate while moving", statOrder = { 7532 }, level = 0, group = "ManaRegenerationRateWhileMoving", weightKey = { }, weightVal = { }, modTags = { "resource", "mana" }, tradeHashes = { 1327522346 }, },
10-
["IncursionLeg6"] = { affix = "", "(6-10)% of Damage taken Recouped as Life", statOrder = { 970 }, level = 0, group = "DamageTakenGainedAsLife", weightKey = { }, weightVal = { }, modTags = { "resource", "life" }, tradeHashes = { 1444556985 }, },
11-
["IncursionArm1"] = { affix = "", "(8-12)% increased Block chance", statOrder = { 1064 }, level = 0, group = "IncreasedBlockChance", weightKey = { }, weightVal = { }, modTags = { "block" }, tradeHashes = { 4147897060 }, },
12-
["IncursionArm2"] = { affix = "", "(6-10)% increased Attack Speed", statOrder = { 941 }, level = 0, group = "IncreasedAttackSpeed", weightKey = { }, weightVal = { }, modTags = { "attack", "speed" }, tradeHashes = { 681332047 }, },
13-
["IncursionArm3"] = { affix = "", "(6-10)% increased Cast Speed", statOrder = { 942 }, level = 0, group = "IncreasedCastSpeed", weightKey = { }, weightVal = { }, modTags = { "caster", "speed" }, tradeHashes = { 2891184298 }, },
14-
["IncursionArm4"] = { affix = "", "(12-16)% increased Curse Magnitudes", statOrder = { 2266 }, level = 0, group = "CurseEffectiveness", weightKey = { }, weightVal = { }, modTags = { "caster", "curse" }, tradeHashes = { 2353576063 }, },
15-
["IncursionArm5"] = { affix = "", "(6-10)% increased Deflection Rating", statOrder = { 5721 }, level = 0, group = "GlobalDeflectionRating", weightKey = { }, weightVal = { }, modTags = { "evasion", "defences" }, tradeHashes = { 3040571529 }, },
16-
["IncursionArm6"] = { affix = "", "(15-25)% increased Presence Area of Effect", statOrder = { 1002 }, level = 0, group = "PresenceRadius", weightKey = { }, weightVal = { }, modTags = { }, tradeHashes = { 101878827 }, },
5+
["IncursionLeg1"] = { affix = "", "(20-30)% increased Evasion Rating", statOrder = { 866 }, level = 0, group = "GlobalEvasionRatingPercent", weightKey = { }, weightVal = { }, modTags = { "evasion", "defences" }, tradeHashes = { [2106365538] = { "(20-30)% increased Evasion Rating" }, } },
6+
["IncursionLeg2"] = { affix = "", "(6-10)% increased Movement Speed while Sprinting", statOrder = { 9465 }, level = 0, group = "MovementVelocityWhileSprinting", weightKey = { }, weightVal = { }, modTags = { }, tradeHashes = { [3107707789] = { "(6-10)% increased Movement Speed while Sprinting" }, } },
7+
["IncursionLeg3"] = { affix = "", "(15-25)% increased Stun Threshold", statOrder = { 2878 }, level = 0, group = "IncreasedStunThreshold", weightKey = { }, weightVal = { }, modTags = { }, tradeHashes = { [680068163] = { "(15-25)% increased Stun Threshold" }, } },
8+
["IncursionLeg4"] = { affix = "", "(5-10)% reduced Movement Speed Penalty from using Skills while moving", statOrder = { 8594 }, level = 0, group = "MovementVelocityPenaltyWhilePerformingAction", weightKey = { }, weightVal = { }, modTags = { "speed" }, tradeHashes = { [2590797182] = { "(5-10)% reduced Movement Speed Penalty from using Skills while moving" }, } },
9+
["IncursionLeg5"] = { affix = "", "(20-30)% increased Mana Regeneration Rate while moving", statOrder = { 7532 }, level = 0, group = "ManaRegenerationRateWhileMoving", weightKey = { }, weightVal = { }, modTags = { "resource", "mana" }, tradeHashes = { [1327522346] = { "(20-30)% increased Mana Regeneration Rate while moving" }, } },
10+
["IncursionLeg6"] = { affix = "", "(6-10)% of Damage taken Recouped as Life", statOrder = { 970 }, level = 0, group = "DamageTakenGainedAsLife", weightKey = { }, weightVal = { }, modTags = { "resource", "life" }, tradeHashes = { [1444556985] = { "(6-10)% of Damage taken Recouped as Life" }, } },
11+
["IncursionArm1"] = { affix = "", "(8-12)% increased Block chance", statOrder = { 1064 }, level = 0, group = "IncreasedBlockChance", weightKey = { }, weightVal = { }, modTags = { "block" }, tradeHashes = { [4147897060] = { "(8-12)% increased Block chance" }, } },
12+
["IncursionArm2"] = { affix = "", "(6-10)% increased Attack Speed", statOrder = { 941 }, level = 0, group = "IncreasedAttackSpeed", weightKey = { }, weightVal = { }, modTags = { "attack", "speed" }, tradeHashes = { [681332047] = { "(6-10)% increased Attack Speed" }, } },
13+
["IncursionArm3"] = { affix = "", "(6-10)% increased Cast Speed", statOrder = { 942 }, level = 0, group = "IncreasedCastSpeed", weightKey = { }, weightVal = { }, modTags = { "caster", "speed" }, tradeHashes = { [2891184298] = { "(6-10)% increased Cast Speed" }, } },
14+
["IncursionArm4"] = { affix = "", "(12-16)% increased Curse Magnitudes", statOrder = { 2266 }, level = 0, group = "CurseEffectiveness", weightKey = { }, weightVal = { }, modTags = { "caster", "curse" }, tradeHashes = { [2353576063] = { "(12-16)% increased Curse Magnitudes" }, } },
15+
["IncursionArm5"] = { affix = "", "(6-10)% increased Deflection Rating", statOrder = { 5721 }, level = 0, group = "GlobalDeflectionRating", weightKey = { }, weightVal = { }, modTags = { "evasion", "defences" }, tradeHashes = { [3040571529] = { "(6-10)% increased Deflection Rating" }, } },
16+
["IncursionArm6"] = { affix = "", "(15-25)% increased Presence Area of Effect", statOrder = { 1002 }, level = 0, group = "PresenceRadius", weightKey = { }, weightVal = { }, modTags = { }, tradeHashes = { [101878827] = { "(15-25)% increased Presence Area of Effect" }, } },
1717
}

0 commit comments

Comments
 (0)