From 3c0f6f4848194c91a4d8a90dda197e92075f8820 Mon Sep 17 00:00:00 2001 From: EtherealCarnivore <42915554+EtherealCarnivore@users.noreply.github.com> Date: Mon, 2 Mar 2026 13:14:46 +0200 Subject: [PATCH] Hide legacy awakened gems from dropdown by default Most awakened support gems were discontinued in 3.28. They're now hidden from the gem dropdown unless "Show legacy gems" is checked. Awakened Empower, Enlighten, and Enhance are still shown since they're still obtainable. Existing builds with legacy awakened gems load and calculate fine - this only affects the picker. --- src/Classes/GemSelectControl.lua | 17 +++++++++++++++-- src/Classes/SkillsTab.lua | 13 +++++++++++-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/Classes/GemSelectControl.lua b/src/Classes/GemSelectControl.lua index 28c9ae5817..78ec767f42 100644 --- a/src/Classes/GemSelectControl.lua +++ b/src/Classes/GemSelectControl.lua @@ -12,6 +12,11 @@ local m_max = math.max local m_floor = math.floor local toolTipText = "Prefix tag searches with a colon and exclude tags with a dash. e.g. :fire:lightning:-cold:area" +local nonLegacyAwakened = { + ["SupportAwakenedEmpower"] = true, + ["SupportAwakenedEnlighten"] = true, + ["SupportAwakenedEnhance"] = true, +} local altQualMap = { ["Default"] = "", ["Alternate1"] = "Anomalous ", @@ -116,7 +121,9 @@ function GemSelectClass:PopulateGemList() local levelRequirement = gemData.grantedEffect.levels[1].levelRequirement or 1 if characterLevel >= levelRequirement or not matchLevel then if (showAwakened or showAll) and gemData.grantedEffect.plusVersionOf then - self.gems["Default:" .. gemId] = gemData + if self.skillsTab.showLegacyGems or nonLegacyAwakened[gemData.grantedEffectId] then + self.gems["Default:" .. gemId] = gemData + end elseif showNormal or showAll then if self.skillsTab.showAltQualityGems and (self.skillsTab.defaultGemQuality or 0) > 0 then for _, altQual in ipairs(self.skillsTab:getGemAltQualityList(gemData)) do @@ -137,6 +144,9 @@ end function GemSelectClass:FilterSupport(gemId, gemData) local showSupportTypes = self.skillsTab.showSupportGemTypes + if gemData.grantedEffect.plusVersionOf and not self.skillsTab.showLegacyGems and not nonLegacyAwakened[gemData.grantedEffectId] then + return false + end return (not gemData.grantedEffect.support or showSupportTypes == "ALL" or (showSupportTypes == "NORMAL" and not gemData.grantedEffect.plusVersionOf) @@ -253,11 +263,13 @@ function GemSelectClass:UpdateSortCache() and sortCache.outputRevision == self.skillsTab.build.outputRevision and sortCache.defaultLevel == self.skillsTab.defaultGemLevel and (sortCache.characterLevel == self.skillsTab.build.characterLevel or self.skillsTab.defaultGemLevel ~= "characterLevel") and sortCache.defaultQuality == self.skillsTab.defaultGemQuality and sortCache.sortType == self.skillsTab.sortGemsByDPSField - and sortCache.considerAlternates == self.skillsTab.showAltQualityGems and sortCache.considerGemType == self.skillsTab.showSupportGemTypes then + and sortCache.considerAlternates == self.skillsTab.showAltQualityGems and sortCache.considerGemType == self.skillsTab.showSupportGemTypes + and sortCache.showLegacyGems == self.skillsTab.showLegacyGems then return end if not sameSortBy or not sortCache or (sortCache.considerAlternates ~= self.skillsTab.showAltQualityGems or sortCache.considerGemType ~= self.skillsTab.showSupportGemTypes + or sortCache.showLegacyGems ~= self.skillsTab.showLegacyGems or sortCache.defaultQuality ~= self.skillsTab.defaultGemQuality or sortCache.defaultLevel ~= self.skillsTab.defaultGemLevel or (sortCache.characterLevel ~= self.skillsTab.build.characterLevel and self.skillsTab.defaultGemLevel == "characterLevel")) then @@ -269,6 +281,7 @@ function GemSelectClass:UpdateSortCache() sortCache = { considerGemType = self.skillsTab.showSupportGemTypes, considerAlternates = self.skillsTab.showAltQualityGems, + showLegacyGems = self.skillsTab.showLegacyGems, socketGroup = self.skillsTab.displayGroup, gemInstance = self.skillsTab.displayGroup.gemList[self.index], outputRevision = self.skillsTab.build.outputRevision, diff --git a/src/Classes/SkillsTab.lua b/src/Classes/SkillsTab.lua index 65a7e498f6..f6cc48048e 100644 --- a/src/Classes/SkillsTab.lua +++ b/src/Classes/SkillsTab.lua @@ -90,6 +90,7 @@ local SkillsTabClass = newClass("SkillsTab", "UndoHandler", "ControlHost", "Cont self.sortGemsByDPSField = "CombinedDPS" self.showSupportGemTypes = "ALL" self.showAltQualityGems = false + self.showLegacyGems = false self.defaultGemLevel = "normalMaximum" self.defaultGemQuality = main.defaultGemQuality @@ -122,7 +123,7 @@ local SkillsTabClass = newClass("SkillsTab", "UndoHandler", "ControlHost", "Cont -- Gem options local optionInputsX = 170 local optionInputsY = 45 - self.controls.optionSection = new("SectionControl", { "TOPLEFT", self.controls.groupList, "BOTTOMLEFT" }, { 0, optionInputsY + 50, 360, 156 }, "Gem Options") + self.controls.optionSection = new("SectionControl", { "TOPLEFT", self.controls.groupList, "BOTTOMLEFT" }, { 0, optionInputsY + 50, 360, 180 }, "Gem Options") self.controls.sortGemsByDPS = new("CheckBoxControl", { "TOPLEFT", self.controls.groupList, "BOTTOMLEFT" }, { optionInputsX, optionInputsY + 70, 20 }, "Sort gems by DPS:", function(state) self.sortGemsByDPS = state end, nil, true) @@ -150,6 +151,9 @@ local SkillsTabClass = newClass("SkillsTab", "UndoHandler", "ControlHost", "Cont self.controls.showAltQualityGems = new("CheckBoxControl", { "TOPLEFT", self.controls.groupList, "BOTTOMLEFT" }, { optionInputsX, optionInputsY + 166, 20 }, "^7Show quality variants:", function(state) self.showAltQualityGems = state end) + self.controls.showLegacyGems = new("CheckBoxControl", { "TOPLEFT", self.controls.groupList, "BOTTOMLEFT" }, { optionInputsX, optionInputsY + 190, 20 }, "^7Show legacy gems:", function(state) + self.showLegacyGems = state + end) -- Socket group details if main.portraitMode then @@ -397,6 +401,10 @@ function SkillsTabClass:Load(xml, fileName) self.showAltQualityGems = xml.attrib.showAltQualityGems == "true" end self.controls.showAltQualityGems.state = self.showAltQualityGems + if xml.attrib.showLegacyGems then + self.showLegacyGems = xml.attrib.showLegacyGems == "true" + end + self.controls.showLegacyGems.state = self.showLegacyGems self.controls.showSupportGemTypes:SelByValue(xml.attrib.showSupportGemTypes or "ALL", "show") self.controls.sortGemsByDPSFieldControl:SelByValue(xml.attrib.sortGemsByDPSField or "CombinedDPS", "type") self.showSupportGemTypes = self.controls.showSupportGemTypes:GetSelValueByKey("show") @@ -432,7 +440,8 @@ function SkillsTabClass:Save(xml) sortGemsByDPS = tostring(self.sortGemsByDPS), showSupportGemTypes = self.showSupportGemTypes, sortGemsByDPSField = self.sortGemsByDPSField, - showAltQualityGems = tostring(self.showAltQualityGems) + showAltQualityGems = tostring(self.showAltQualityGems), + showLegacyGems = tostring(self.showLegacyGems) } for _, skillSetId in ipairs(self.skillSetOrderList) do local skillSet = self.skillSets[skillSetId]