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
4 changes: 3 additions & 1 deletion src/Classes/ItemDBControl.lua
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ local ItemDBClass = newClass("ItemDBControl", "ListControl", function(self, anch
self.controls.requirement = new("DropDownControl", {"LEFT",self.controls.sort,"BOTTOMLEFT"}, {0, 11, 179, 18}, { "Any requirements", "Current level", "Current attributes", "Current useable" }, function(index, value)
self.listBuildFlag = true
end)
self.controls.obtainable = new("DropDownControl", {"LEFT",self.controls.requirement,"RIGHT"}, {2, 0, 179, 18}, { "Obtainable", "Any source", "Unobtainable", "Vendor Recipe", "Upgraded", "Boss Item", "Corruption"}, function(index, value)
self.controls.obtainable = new("DropDownControl", { "LEFT", self.controls.requirement, "RIGHT" }, { 2, 0, 179, 18 }, { "Obtainable", "Any source", "Unobtainable", "Vendor Recipe", "Upgraded", "Boss Item", "Corruption", "Core Drop Pool" }, function(index, value)
self.listBuildFlag = true
end)
end
Expand Down Expand Up @@ -122,6 +122,8 @@ function ItemDBClass:DoesItemMatchFilters(item)
return false
elseif (self.controls.obtainable.selIndex == 7 and not (string.match(source, "Vaal Orb"))) then
return false
elseif (self.controls.obtainable.selIndex == 8) and item.source then
return false
end
end
if self.dbType == "UNIQUE" and self.controls.requirement.selIndex > 1 then
Expand Down
75 changes: 71 additions & 4 deletions src/Classes/ItemsTab.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2252,7 +2252,10 @@ function ItemsTabClass:UpdateAffixControl(control, item, affixType, outputTable,
if (#testSubject.modMagnitudeMods > 0) or (testSubject.catalyst and testSubject.catalyst > 0) then
local originalItem = testSubject:BuildRaw()
for _, subMod in ipairs(mod) do
local modLine = { line = subMod, modTags = mod.modTags, [mod.type] = true }
local modLine = { line = subMod, modTags = mod.modTags }
if mod.type then
modLine[mod.type] = true
end
t_insert(testSubject.explicitModLines, modLine)
end
testSubject:BuildAndParseRaw()
Expand All @@ -2265,7 +2268,10 @@ function ItemsTabClass:UpdateAffixControl(control, item, affixType, outputTable,
for _, line in ipairs(mod) do
local rangedLine = itemLib.applyRange(line, main.defaultItemAffixQuality or 0.5, 1, 1)
local modList, extra = modLib.parseMod(rangedLine)
local modLine = { line = line, modList = modList, extra = extra, modTags = mod.modTags, [mod.type] = true }
local modLine = { line = line, modList = modList, extra = extra, modTags = mod.modTags }
if mod.type then
modLine[mod.type] = true
end
t_insert(testSubject.explicitModLines, modLine)
end

Expand Down Expand Up @@ -2410,7 +2416,11 @@ function ItemsTabClass:AddModComparisonTooltip(tooltip, mod)
local newItem = new("Item", self.displayItem:BuildRaw())

for _, subMod in ipairs(mod) do
t_insert(newItem.explicitModLines, { line = checkLineForAllocates(subMod, self.build.spec.nodes), modTags = mod.modTags, [mod.type] = true })
local modLine = { line = checkLineForAllocates(subMod, self.build.spec.nodes), modTags = mod.modTags }
if mod.type then
modLine[mod.type] = true
end
t_insert(newItem.explicitModLines, modLine)
end

newItem:BuildAndParseRaw()
Expand Down Expand Up @@ -3914,9 +3924,54 @@ function ItemsTabClass:AddImplicitToDisplayItem()
return a.defaultOrder < b.defaultOrder
end)
end
elseif sourceId == "VESTIGIAL" then
for id, uniqueTitle in pairs(data.vestigialModMappings) do
local titleLower = uniqueTitle:lower()
local unique = main.uniqueDB.byTitle[titleLower]
if not unique
-- vestigial implicits can only end up on the same item type
or (unique.base.type ~= self.displayItem.type)
-- avoid adding the item's own mods as vestigial
or (self.displayItem.title:lower() == titleLower) then
goto vestigialContinue
end
local mod = copyTable(data.itemMods.Vestigial[id])
local modLabel = colorCodes.VESTIGIAL .. table.concat(mod, "/")
if not groupIndexes[mod.group] then
t_insert(modList, {})
t_insert(modGroups, {
label = modLabel,
mod = mod,
modListIndex = #modList,
defaultOrder = id,
uniqueTitle = uniqueTitle,
})
groupIndexes[mod.group] = #modGroups
end
t_insert(modList[groupIndexes[mod.group]], {
label = modLabel,
mod = mod,
type = "vestigial",
defaultOrder = id,
uniqueTitle = uniqueTitle,
})
::vestigialContinue::
end
for i, _ in pairs(modList) do
table.sort(modList[i], function(a, b)
return a.defaultOrder < b.defaultOrder
end)
end
end
setDefaultSortOrder()
end
local displayDBUnique = main.uniqueDB.byTitle[self.displayItem.title:lower()]
if self.displayItem.rarity == "UNIQUE" and data.vestigialUniqueBaseTypes[self.displayItem.base.type]
-- the source field should mean that the item comes from a specific
-- mechanic, which usually means it is not in the core drop pool
and not displayDBUnique.source then
t_insert(sourceList, { label = "Vestigial", sourceId = "VESTIGIAL" })
end
if (self.displayItem.rarity ~= "UNIQUE" and self.displayItem.rarity ~= "RELIC") and (self.displayItem.type == "Helmet" or self.displayItem.type == "Body Armour" or self.displayItem.type == "Gloves" or self.displayItem.type == "Boots") then
if self.displayItem.cleansing then
t_insert(sourceList, { label = "Searing Exarch", sourceId = "EXARCH" })
Expand Down Expand Up @@ -3949,9 +4004,15 @@ function ItemsTabClass:AddImplicitToDisplayItem()
end
return
end
elseif listMod.type == "vestigial" then
item.implicitModLines = {}
end
for _, line in ipairs(listMod.mod) do
t_insert(item.implicitModLines, { line = line, modTags = listMod.mod.modTags, [listMod.type] = true })
local modLine = { line = line, modTags = listMod.mod.modTags }
if listMod.type then
modLine[listMod.type] = true
end
t_insert(item.implicitModLines, modLine)
end
end
local function getSortValue(listMod, stat, calcFunc, slotName, useFullDPS)
Expand Down Expand Up @@ -4100,6 +4161,9 @@ function ItemsTabClass:AddImplicitToDisplayItem()
for _, line in ipairs(value.mod) do
tooltip:AddLine(16, "^7"..line)
end
if value.uniqueTitle then
tooltip:AddLine(16, "^7Source: " .. colorCodes.UNIQUE .. value.uniqueTitle .. "^7")
end
self:AddModComparisonTooltip(tooltip, value.mod)
end
end
Expand All @@ -4114,6 +4178,9 @@ function ItemsTabClass:AddImplicitToDisplayItem()
for _, line in ipairs(value.mod) do
tooltip:AddLine(16, "^7"..line)
end
if value.uniqueTitle then
tooltip:AddLine(16, "^7Source: " .. colorCodes.UNIQUE .. value.uniqueTitle .. "^7")
end
self:AddModComparisonTooltip(tooltip, value.mod)
end
end
Expand Down
2 changes: 2 additions & 0 deletions src/Data/Uniques/boots.lua
Original file line number Diff line number Diff line change
Expand Up @@ -784,6 +784,7 @@ Lose Adrenaline when you cease to be Flame-Touched
Gamblesprint
Hydrascale Boots
League: Affliction
Source: Reward from Ultimatum encounters
Requires Level 59, 56 Str, 56 Dex
+(30-40) to Dexterity
(100-150)% increased Armour and Evasion
Expand Down Expand Up @@ -1170,6 +1171,7 @@ Celestial Footprints
Olroth's Charge
Runic Sollerets
League: Expedition
Source: Drops from Expedition monsters
Requires Level 48, 37 Str, 37 Dex, 37 Int
(50-80)% increased Ward
(30-50)% slower Restoration of Ward
Expand Down
1 change: 1 addition & 0 deletions src/Data/Uniques/fishing.lua
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ Glows while in an Area containing a Unique Fish
Song of the Sirens
Fishing Rod
Requires 8 Str, 8 Dex
Source: Fishing
Implicits: 0
Siren Worm Bait
(50-60)% increased Rarity of Fish Caught
Expand Down
3 changes: 3 additions & 0 deletions src/Data/Uniques/gloves.lua
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,7 @@ Slink Gloves
League: Heist
Variant: Pre 3.26.0
Variant: Current
Source: Reward from a mercenary duel
Requires Level 70, 95 Dex
+(80-120) to Evasion Rating
(5-8)% increased Attack and Cast Speed
Expand Down Expand Up @@ -1147,6 +1148,7 @@ Medved's Challenge
Runic Gauntlets
Requires Level 69, 38 Str, 38 Dex, 38 Int
League: Expedition
Source: Drops from Expedition monsters
800% increased Attribute Requirements
(30-50)% increased Ward
+(15-25)% to all Elemental Resistances
Expand All @@ -1159,6 +1161,7 @@ Variant: Pre 3.16.0
Variant: Pre 3.25.0
Variant: Current
League: Expedition
Source: Drops from Expedition monsters
Requires Level 48, 31 Str, 31 Dex, 31 Int
(33-48)% increased Ward
+(17-23)% to Chaos Resistance
Expand Down
4 changes: 3 additions & 1 deletion src/Data/Uniques/helmet.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1028,6 +1028,7 @@ Requires Level 36, 42 Str, 42 Dex
El'Abin's Visage
Fencer Helm
League: Crucible
Source: Drops from Crucible monsters
+(20-30) to Strength
+(20-30) to Dexterity
(80-120)% increased Armour and Evasion
Expand Down Expand Up @@ -1511,7 +1512,7 @@ Gorgon's Gaze
Regicide Mask
Requires Level 52, 58 Dex, 58 Int
Implicits: 0
Grants Level 20 Summon Petrification Statue Skill
Grants Level 20 Petrification Statue Skill
(200-250)% increased Energy Shield
+(60-80) to maximum Life
(5-10)% increased Attack and Cast Speed
Expand Down Expand Up @@ -1714,6 +1715,7 @@ Lose all Power Charges when you Block
Faithguard
Runic Helm
League: Expedition
Source: Drops from Expedition monsters
Variant: Pre 3.19.0
Variant: Current
+(20-30) to Intelligence
Expand Down
4 changes: 4 additions & 0 deletions src/Data/Uniques/jewel.lua
Original file line number Diff line number Diff line change
Expand Up @@ -857,18 +857,21 @@ Radius: Medium
[[
Amanamu's Gaze
Ghastly Eye Jewel
Source: Drops from unique{Abyssal Liches} in normal{Abyssal Depths}
+(5-10) to all Attributes
Minions have +6% to Damage over Time Multiplier per
Ghastly Eye Jewel affecting you, up to a maximum of +30%
]],[[
Kurgal's Gaze
Hypnotic Eye Jewel
Source: Drops from unique{Abyssal Liches} in normal{Abyssal Depths}
+(10-20) to Intelligence
8% increased Effect of Arcane Surge on you per
Hypnotic Eye Jewel affecting you, up to a maximum of 40%
]],[[
Tecrod's Gaze
Murderous Eye Jewel
Source: Drops from unique{Abyssal Liches} in normal{Abyssal Depths}
Variant: Pre 3.21.0
Variant: Current
Requires Level 40
Expand All @@ -884,6 +887,7 @@ Requires Level 40
]],[[
Ulaman's Gaze
Searching Eye Jewel
Source: Drops from unique{Abyssal Liches} in normal{Abyssal Depths}
Requires Level 40
+(10-20) to Dexterity
Projectiles have 4% chance to be able to Chain when colliding with terrain per
Expand Down
1 change: 1 addition & 0 deletions src/Data/Uniques/quiver.lua
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,7 @@ Broadhead Arrow Quiver
Variant: Pre 3.17.0
Variant: Current
LevelReq: 52
Source: Labyrinth
Implicits: 2
{variant:2}(8-10)% increased Attack Speed
{variant:1}6 to 12 Added Physical Damage with Bow Attacks
Expand Down
1 change: 1 addition & 0 deletions src/Data/Uniques/shield.lua
Original file line number Diff line number Diff line change
Expand Up @@ -749,6 +749,7 @@ Implicits: 0
]],[[
The Scales of Justice
Chiming Spirit Shield
Source: Labyrinth
Implicits: 1
(10-15)% increased Spell Damage
Has no Energy Shield
Expand Down
1 change: 1 addition & 0 deletions src/Data/Uniques/staff.lua
Original file line number Diff line number Diff line change
Expand Up @@ -780,6 +780,7 @@ Highborn Staff
Variant: Pre 3.25.0
Variant: Current
League: Crucible
Source: Drops from Crucible monsters
Implicits: 2
{variant:1}+18% Chance to Block Attack Damage
{variant:2}+22% Chance to Block Attack Damage
Expand Down
1 change: 1 addition & 0 deletions src/Data/Uniques/sword.lua
Original file line number Diff line number Diff line change
Expand Up @@ -494,6 +494,7 @@ Adds (75-92) to (125-154) Physical Damage
The Redblade
Gladius
League: Crucible
Source: Drops from Crucible monsters
Implicits: 1
40% increased Global Accuracy Rating
(150-180)% increased Physical Damage
Expand Down
Loading
Loading