Fix Forbidden Flesh / Flame jewels not working with Assassins new nodes (#9300)

The jewels didn't work for Ascendancy nodes that are multiple choice. Had to make sure that the scion nodes were still excluded though
Also changed the jewels to be sorted alphabetically now so it's easier to look through the variants list

Co-authored-by: LocalIdentity <localidentity2@gmail.com>
This commit is contained in:
LocalIdentity
2025-11-21 14:21:14 +11:00
committed by GitHub
parent 265a2b45bc
commit 119ba2be6c
3 changed files with 49 additions and 22 deletions

View File

@@ -521,22 +521,34 @@ local PassiveTreeClass = newClass("PassiveTree", function(self, treeVersion)
end
else
self.ascendancyMap[node.dn:lower()] = node
if not self.classNotables[self.ascendNameMap[node.ascendancyName].class.name] then
self.classNotables[self.ascendNameMap[node.ascendancyName].class.name] = { }
local className = self.ascendNameMap[node.ascendancyName].class.name
if not self.classNotables[className] then
self.classNotables[className] = { }
end
if self.ascendNameMap[node.ascendancyName].class.name ~= "Scion" then
t_insert(self.classNotables[self.ascendNameMap[node.ascendancyName].class.name], node.dn)
if className ~= "Scion" then
t_insert(self.classNotables[className], node.dn)
end
end
else
node.type = "Normal"
if node.ascendancyName == "Ascendant" and not node.dn:find("Dexterity") and not node.dn:find("Intelligence") and
not node.dn:find("Strength") and not node.dn:find("Passive") then
if node.ascendancyName == "Ascendant" and not node.isMultipleChoiceOption and not node.dn:find("Dexterity")
and not node.dn:find("Intelligence") and not node.dn:find("Strength") and not node.dn:find("Passive") then
local className = self.ascendNameMap[node.ascendancyName].class.name
self.ascendancyMap[node.dn:lower()] = node
if not self.classNotables[self.ascendNameMap[node.ascendancyName].class.name] then
self.classNotables[self.ascendNameMap[node.ascendancyName].class.name] = { }
if not self.classNotables[className] then
self.classNotables[className] = { }
end
t_insert(self.classNotables[className], node.dn)
end
if node.isMultipleChoiceOption and node.ascendancyName then
local className = self.ascendNameMap[node.ascendancyName].class.name
if className ~= "Scion" then
self.ascendancyMap[node.dn:lower()] = node
if not self.classNotables[className] then
self.classNotables[className] = { }
end
t_insert(self.classNotables[className], node.dn)
end
t_insert(self.classNotables[self.ascendNameMap[node.ascendancyName].class.name], node.dn)
end
end

View File

@@ -7290,6 +7290,8 @@ c["Allocates First to Strike, Last to Fall if you have the matching modifier on
c["Allocates First to Strike, Last to Fall if you have the matching modifier on Forbidden Flesh"]={{[1]={flags=0,keywordFlags=0,name="GrantedAscendancyNode",type="LIST",value={name="first to strike, last to fall",side="flesh"}}},nil}
c["Allocates Focal Point if you have the matching modifier on Forbidden Flame"]={{[1]={flags=0,keywordFlags=0,name="GrantedAscendancyNode",type="LIST",value={name="focal point",side="flame"}}},nil}
c["Allocates Focal Point if you have the matching modifier on Forbidden Flesh"]={{[1]={flags=0,keywordFlags=0,name="GrantedAscendancyNode",type="LIST",value={name="focal point",side="flesh"}}},nil}
c["Allocates For the Jugular if you have the matching modifier on Forbidden Flame"]={{[1]={flags=0,keywordFlags=0,name="GrantedAscendancyNode",type="LIST",value={name="for the jugular",side="flame"}}},nil}
c["Allocates For the Jugular if you have the matching modifier on Forbidden Flesh"]={{[1]={flags=0,keywordFlags=0,name="GrantedAscendancyNode",type="LIST",value={name="for the jugular",side="flesh"}}},nil}
c["Allocates Forbidden Power if you have the matching modifier on Forbidden Flame"]={{[1]={flags=0,keywordFlags=0,name="GrantedAscendancyNode",type="LIST",value={name="forbidden power",side="flame"}}},nil}
c["Allocates Forbidden Power if you have the matching modifier on Forbidden Flesh"]={{[1]={flags=0,keywordFlags=0,name="GrantedAscendancyNode",type="LIST",value={name="forbidden power",side="flesh"}}},nil}
c["Allocates Fortitude if you have the matching modifier on Forbidden Flame"]={{[1]={flags=0,keywordFlags=0,name="GrantedAscendancyNode",type="LIST",value={name="fortitude",side="flame"}}},nil}
@@ -7344,6 +7346,8 @@ c["Allocates Jagged Technique if you have the matching modifier on Forbidden Fla
c["Allocates Jagged Technique if you have the matching modifier on Forbidden Flesh"]={{[1]={flags=0,keywordFlags=0,name="GrantedAscendancyNode",type="LIST",value={name="jagged technique",side="flesh"}}},nil}
c["Allocates Juggernaut if you have the matching modifier on Forbidden Flame"]={{[1]={flags=0,keywordFlags=0,name="GrantedAscendancyNode",type="LIST",value={name="juggernaut",side="flame"}}},nil}
c["Allocates Juggernaut if you have the matching modifier on Forbidden Flesh"]={{[1]={flags=0,keywordFlags=0,name="GrantedAscendancyNode",type="LIST",value={name="juggernaut",side="flesh"}}},nil}
c["Allocates Knife in the Back if you have the matching modifier on Forbidden Flame"]={{[1]={flags=0,keywordFlags=0,name="GrantedAscendancyNode",type="LIST",value={name="knife in the back",side="flame"}}},nil}
c["Allocates Knife in the Back if you have the matching modifier on Forbidden Flesh"]={{[1]={flags=0,keywordFlags=0,name="GrantedAscendancyNode",type="LIST",value={name="knife in the back",side="flesh"}}},nil}
c["Allocates Lesson of the Seasons if you have the matching modifier on Forbidden Flame"]={{[1]={flags=0,keywordFlags=0,name="GrantedAscendancyNode",type="LIST",value={name="lesson of the seasons",side="flame"}}},nil}
c["Allocates Lesson of the Seasons if you have the matching modifier on Forbidden Flesh"]={{[1]={flags=0,keywordFlags=0,name="GrantedAscendancyNode",type="LIST",value={name="lesson of the seasons",side="flesh"}}},nil}
c["Allocates Liege of the Primordial if you have the matching modifier on Forbidden Flame"]={{[1]={flags=0,keywordFlags=0,name="GrantedAscendancyNode",type="LIST",value={name="liege of the primordial",side="flame"}}},nil}
@@ -10939,12 +10943,16 @@ c["Requires Class Shadow Allocates Demolitions Specialist if you have the matchi
c["Requires Class Shadow Allocates Demolitions Specialist if you have the matching modifier on Forbidden Flesh"]={nil,"Requires Class Shadow Allocates Demolitions Specialist if you have the matching modifier on Forbidden Flesh "}
c["Requires Class Shadow Allocates Escape Artist if you have the matching modifier on Forbidden Flame"]={nil,"Requires Class Shadow Allocates Escape Artist if you have the matching modifier on Forbidden Flame "}
c["Requires Class Shadow Allocates Escape Artist if you have the matching modifier on Forbidden Flesh"]={nil,"Requires Class Shadow Allocates Escape Artist if you have the matching modifier on Forbidden Flesh "}
c["Requires Class Shadow Allocates For the Jugular if you have the matching modifier on Forbidden Flame"]={nil,"Requires Class Shadow Allocates For the Jugular if you have the matching modifier on Forbidden Flame "}
c["Requires Class Shadow Allocates For the Jugular if you have the matching modifier on Forbidden Flesh"]={nil,"Requires Class Shadow Allocates For the Jugular if you have the matching modifier on Forbidden Flesh "}
c["Requires Class Shadow Allocates Harness the Void if you have the matching modifier on Forbidden Flame"]={nil,"Requires Class Shadow Allocates Harness the Void if you have the matching modifier on Forbidden Flame "}
c["Requires Class Shadow Allocates Harness the Void if you have the matching modifier on Forbidden Flesh"]={nil,"Requires Class Shadow Allocates Harness the Void if you have the matching modifier on Forbidden Flesh "}
c["Requires Class Shadow Allocates Heartstopper if you have the matching modifier on Forbidden Flame"]={nil,"Requires Class Shadow Allocates Heartstopper if you have the matching modifier on Forbidden Flame "}
c["Requires Class Shadow Allocates Heartstopper if you have the matching modifier on Forbidden Flesh"]={nil,"Requires Class Shadow Allocates Heartstopper if you have the matching modifier on Forbidden Flesh "}
c["Requires Class Shadow Allocates Infused Toxins if you have the matching modifier on Forbidden Flame"]={nil,"Requires Class Shadow Allocates Infused Toxins if you have the matching modifier on Forbidden Flame "}
c["Requires Class Shadow Allocates Infused Toxins if you have the matching modifier on Forbidden Flesh"]={nil,"Requires Class Shadow Allocates Infused Toxins if you have the matching modifier on Forbidden Flesh "}
c["Requires Class Shadow Allocates Knife in the Back if you have the matching modifier on Forbidden Flame"]={nil,"Requires Class Shadow Allocates Knife in the Back if you have the matching modifier on Forbidden Flame "}
c["Requires Class Shadow Allocates Knife in the Back if you have the matching modifier on Forbidden Flesh"]={nil,"Requires Class Shadow Allocates Knife in the Back if you have the matching modifier on Forbidden Flesh "}
c["Requires Class Shadow Allocates Like Clockwork if you have the matching modifier on Forbidden Flame"]={nil,"Requires Class Shadow Allocates Like Clockwork if you have the matching modifier on Forbidden Flame "}
c["Requires Class Shadow Allocates Like Clockwork if you have the matching modifier on Forbidden Flesh"]={nil,"Requires Class Shadow Allocates Like Clockwork if you have the matching modifier on Forbidden Flesh "}
c["Requires Class Shadow Allocates Mistwalker if you have the matching modifier on Forbidden Flame"]={nil,"Requires Class Shadow Allocates Mistwalker if you have the matching modifier on Forbidden Flame "}

View File

@@ -734,13 +734,20 @@ function buildForbidden(classNotables)
table.insert(forbidden[name], "Rarity: UNIQUE")
table.insert(forbidden[name], "Forbidden " .. name)
table.insert(forbidden[name], (name == "Flame" and "Crimson" or "Cobalt") .. " Jewel")
local classList = { }
for className in pairs(classNotables) do
if className ~= "alternate_ascendancies" then
table.insert(classList, className)
end
end
table.sort(classList)
local index = 1
for className, notableTable in pairs(classNotables) do
if className ~= "alternate_ascendancies" then --Remove Affliction Ascendancy's
for _, notableName in ipairs(notableTable) do
table.insert(forbidden[name], "Variant: (" .. className .. ") " .. notableName)
index = index + 1
end
for _, className in ipairs(classList) do
local notableTable = classNotables[className]
table.sort(notableTable)
for _, notableName in ipairs(notableTable) do
table.insert(forbidden[name], "Variant: (" .. className .. ") " .. notableName)
index = index + 1
end
end
if name == "Flame" then
@@ -751,13 +758,13 @@ function buildForbidden(classNotables)
table.insert(forbidden[name], "Limited to: 1")
table.insert(forbidden[name], "Item Level: 83")
index = 1
for className, notableTable in pairs(classNotables) do
if className ~= "alternate_ascendancies" then --Remove Affliction Ascendancy's
for _, notableName in ipairs(notableTable) do
table.insert(forbidden[name], "{variant:" .. index .. "}" .. "Requires Class " .. className)
table.insert(forbidden[name], "{variant:" .. index .. "}" .. "Allocates ".. notableName .. " if you have the matching modifier on Forbidden " .. (name == "Flame" and "Flesh" or "Flame"))
index = index + 1
end
for _, className in ipairs(classList) do
local notableTable = classNotables[className]
table.sort(notableTable)
for _, notableName in ipairs(notableTable) do
table.insert(forbidden[name], "{variant:" .. index .. "}" .. "Requires Class " .. className)
table.insert(forbidden[name], "{variant:" .. index .. "}" .. "Allocates ".. notableName .. " if you have the matching modifier on Forbidden " .. (name == "Flame" and "Flesh" or "Flame"))
index = index + 1
end
end
table.insert(forbidden[name], "Corrupted")