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]