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
17 changes: 15 additions & 2 deletions src/Classes/GemSelectControl.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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 ",
Expand Down Expand Up @@ -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
Expand All @@ -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)
Expand Down Expand Up @@ -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
Expand All @@ -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,
Expand Down
13 changes: 11 additions & 2 deletions src/Classes/SkillsTab.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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")
Expand Down Expand Up @@ -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]
Expand Down