Skip to content

Commit 9b54d98

Browse files
LocalIdentityLocalIdentityWires77
authored
Add new Heroic Tragedy Timeless Jewel (#9560)
* Handle new Timeless jewel Adds support across the codebase to support the new timeless jewel with a new index and ring assets * Add new LuTs + changing loading to work with new format Had to change the loading as the generator changed to now use local ids for each of the jewels instead of global ids so we can stick to using 1 byte * Add Kalguuran timeless jewel images * Fixes Fix jewel offset and node images Fix jewel search not working Update inactive node saturation to better match game * Fix trade search --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com> Co-authored-by: Wires77 <Wires77@users.noreply.github.com>
1 parent 78f0de1 commit 9b54d98

28 files changed

Lines changed: 2261 additions & 1866 deletions

manifest.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ exclude-directories =
1111
[program]
1212
path = src
1313
exclude-files = HeadlessWrapper.lua,LaunchInstall.lua,Settings.xml
14-
exclude-directories = src/Export,src/TreeData,src/Builds,src/luacov.stats.out,src/Data/TimelessJewelData/BrutalRestraint.bin,src/Data/TimelessJewelData/ElegantHubris.bin,src/Data/TimelessJewelData/GloriousVanity.bin,src/Data/TimelessJewelData/LethalPride.bin,src/Data/TimelessJewelData/MilitantFaith.bin
14+
exclude-directories = src/Export,src/TreeData,src/Builds,src/luacov.stats.out,src/Data/TimelessJewelData/BrutalRestraint.bin,src/Data/TimelessJewelData/ElegantHubris.bin,src/Data/TimelessJewelData/GloriousVanity.bin,src/Data/TimelessJewelData/LethalPride.bin,src/Data/TimelessJewelData/MilitantFaith.bin,src/Data/TimelessJewelData/HeroicTragedy.bin
1515

1616
[tree]
1717
path = src

src/Classes/PassiveSpec.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1072,6 +1072,8 @@ function PassiveSpecClass:BuildAllDependsAndPaths()
10721072
jewelType = 3
10731073
elseif conqueredBy.conqueror.type == "templar" then
10741074
jewelType = 4
1075+
elseif conqueredBy.conqueror.type == "kalguur" then
1076+
jewelType = 6
10751077
end
10761078
local seed = conqueredBy.id
10771079
if jewelType == 5 then
@@ -1218,6 +1220,9 @@ function PassiveSpecClass:BuildAllDependsAndPaths()
12181220
elseif conqueredBy.conqueror.type == "maraketh" then
12191221
local dex = (isValueInArray(attributes, node.dn) or node.isTattoo) and "2" or "4"
12201222
self:NodeAdditionOrReplacementFromString(node, " \n+" .. dex .. " to Dexterity")
1223+
elseif conqueredBy.conqueror.type == "kalguur" then
1224+
local ward = (isValueInArray(attributes, node.dn) or node.isTattoo) and "1" or "2"
1225+
self:NodeAdditionOrReplacementFromString(node, " \n" .. ward .. "% increased Ward")
12211226
elseif conqueredBy.conqueror.type == "templar" then
12221227
if (isValueInArray(attributes, node.dn) or node.isTattoo) then
12231228
local legionNode = legionNodes[91] -- templar_devotion_node

src/Classes/PassiveTreeView.lua

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ local PassiveTreeViewClass = newClass("PassiveTreeView", function(self)
4848
self.vaal1:Load("TreeData/PassiveSkillScreenVaalJewelCircle1.png", "CLAMP")
4949
self.vaal2 = NewImageHandle()
5050
self.vaal2:Load("TreeData/PassiveSkillScreenVaalJewelCircle2.png", "CLAMP")
51+
self.kalguur1 = NewImageHandle()
52+
self.kalguur1:Load("TreeData/PassiveSkillScreenKalguuranJewelCircle1.png", "CLAMP")
53+
self.kalguur2 = NewImageHandle()
54+
self.kalguur2:Load("TreeData/PassiveSkillScreenKalguuranJewelCircle2.png", "CLAMP")
5155

5256
self.tooltip = new("Tooltip")
5357

@@ -934,6 +938,9 @@ function PassiveTreeViewClass:Draw(build, viewPort, inputEvents)
934938
elseif jewel.title:match("^Militant Faith") then
935939
self:DrawImageRotated(self.templar1, scrX, scrY, outerSize * 2, outerSize * 2, -0.7)
936940
self:DrawImageRotated(self.templar2, scrX, scrY, outerSize * 2, outerSize * 2, 0.7)
941+
elseif jewel.title:match("^Heroic Tragedy") then
942+
self:DrawImageRotated(self.kalguur1, scrX, scrY, outerSize * 2, outerSize * 2, -0.7)
943+
self:DrawImageRotated(self.kalguur2, scrX, scrY, outerSize * 2, outerSize * 2, 0.7)
937944
else
938945
self:DrawImageRotated(self.jewelShadedOuterRing, scrX, scrY, outerSize * 2, outerSize * 2, -0.7)
939946
self:DrawImageRotated(self.jewelShadedOuterRingFlipped, scrX, scrY, outerSize * 2, outerSize * 2, 0.7)

src/Classes/TimelessJewelListControl.lua

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -94,30 +94,28 @@ function TimelessJewelListControlClass:OnSelClick(index, data, doubleClick)
9494
local label = "[" .. data.seed .. "; " .. data.total.. "; " .. self.sharedList.socket.keystone .. "]\n"
9595
local variant = self.sharedList.conqueror.id == 1 and 1 or (self.sharedList.conqueror.id - 1) .. "\n"
9696
local itemData = [[
97-
Elegant Hubris ]] .. label .. [[
97+
Heroic Tragedy ]] .. label .. [[
9898
Timeless Jewel
9999
League: Legion
100-
Requires Level: 20
101-
Limited to: 1
102-
Variant: Cadiro (Supreme Decadence)
103-
Variant: Victario (Supreme Grandstanding)
104-
Variant: Caspiro (Supreme Ostentation)
100+
Limited to: 1 Historic
101+
Variant: Vorana (Black Scythe Training)
102+
Variant: Uhtred (The Unbreaking Circle)
103+
Variant: Medved (Celestial Mathematics)
105104
Selected Variant: ]] .. variant .. "\n" .. [[
106105
Radius: Large
107106
Implicits: 0
108-
{variant:1}Commissioned ]] .. data.seed .. [[ coins to commemorate Cadiro
109-
{variant:2}Commissioned ]] .. data.seed .. [[ coins to commemorate Victario
110-
{variant:3}Commissioned ]] .. data.seed .. [[ coins to commemorate Caspiro
111-
Passives in radius are Conquered by the Eternal Empire
107+
{variant:1}Remembrancing ]] .. data.seed .. [[ songworthy deeds by the line of Vorana
108+
{variant:2}Remembrancing ]] .. data.seed .. [[ songworthy deeds by the line of Uhtred
109+
{variant:3}Remembrancing ]] .. data.seed .. [[ songworthy deeds by the line of Medved
110+
Passives in radius are Conquered by the Kalguur
112111
Historic
113112
]]
114113
if self.sharedList.type.id == 1 then
115114
itemData = [[
116115
Glorious Vanity ]] .. label .. [[
117116
Timeless Jewel
118117
League: Legion
119-
Requires Level: 20
120-
Limited to: 1
118+
Limited to: 1 Historic
121119
Variant: Doryani (Corrupted Soul)
122120
Variant: Xibaqua (Divine Flesh)
123121
Variant: Ahuana (Immortal Ambition)
@@ -135,8 +133,7 @@ Historic
135133
Lethal Pride ]] .. label .. [[
136134
Timeless Jewel
137135
League: Legion
138-
Requires Level: 20
139-
Limited to: 1
136+
Limited to: 1 Historic
140137
Variant: Kaom (Strength of Blood)
141138
Variant: Rakiata (Tempered by War)
142139
Variant: Akoya (Chainbreaker)
@@ -154,8 +151,7 @@ Historic
154151
Brutal Restraint ]] .. label .. [[
155152
Timeless Jewel
156153
League: Legion
157-
Requires Level: 20
158-
Limited to: 1
154+
Limited to: 1 Historic
159155
Variant: Asenath (Dance with Death)
160156
Variant: Nasima (Second Sight)
161157
Variant: Balbala (The Traitor)
@@ -178,8 +174,7 @@ Historic
178174
Militant Faith ]] .. label .. [[
179175
Timeless Jewel
180176
League: Legion
181-
Requires Level: 20
182-
Limited to: 1
177+
Limited to: 1 Historic
183178
Has Alt Variant: true
184179
Has Alt Variant Two: true
185180
Variant: Avarius (Power of Purpose)
@@ -225,6 +220,24 @@ Implicits: 0
225220
{variant:18}3% increased Defences from Equipped Shield per 10 Devotion
226221
Passives in radius are Conquered by the Templars
227222
Historic
223+
]]
224+
elseif self.sharedList.type.id == 5 then
225+
itemData = [[
226+
Elegant Hubris ]] .. label .. [[
227+
Timeless Jewel
228+
League: Legion
229+
Limited to: 1 Historic
230+
Variant: Cadiro (Supreme Decadence)
231+
Variant: Victario (Supreme Grandstanding)
232+
Variant: Caspiro (Supreme Ostentation)
233+
Selected Variant: ]] .. variant .. "\n" .. [[
234+
Radius: Large
235+
Implicits: 0
236+
{variant:1}Commissioned ]] .. data.seed .. [[ coins to commemorate Cadiro
237+
{variant:2}Commissioned ]] .. data.seed .. [[ coins to commemorate Victario
238+
{variant:3}Commissioned ]] .. data.seed .. [[ coins to commemorate Caspiro
239+
Passives in radius are Conquered by the Eternal Empire
240+
Historic
228241
]]
229242
end
230243
local item = new("Item", itemData)

src/Classes/TreeTab.lua

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1155,7 +1155,7 @@ function TreeTabClass:FindTimelessJewel()
11551155
local timelessData = self.build.timelessData
11561156
local controls = { }
11571157
local modData = { }
1158-
local ignoredMods = { "Might of the Vaal", "Legacy of the Vaal", "Strength", "Add Strength", "Dex", "Add Dexterity", "Devotion", "Price of Glory" }
1158+
local ignoredMods = { "Might of the Vaal", "Legacy of the Vaal", "Strength", "Add Strength", "Dex", "Add Dexterity", "Devotion", "Price of Glory", "Ward" }
11591159
local totalMods = { [2] = "Strength", [3] = "Dexterity", [4] = "Devotion" }
11601160
local totalModIDs = {
11611161
["total_strength"] = { ["karui_notable_add_strength"] = true, ["karui_attribute_strength"] = true, ["karui_small_strength"] = true },
@@ -1178,7 +1178,8 @@ function TreeTabClass:FindTimelessJewel()
11781178
{ label = "Lethal Pride", name = "karui", id = 2 },
11791179
{ label = "Brutal Restraint", name = "maraketh", id = 3 },
11801180
{ label = "Militant Faith", name = "templar", id = 4 },
1181-
{ label = "Elegant Hubris", name = "eternal", id = 5 }
1181+
{ label = "Elegant Hubris", name = "eternal", id = 5 },
1182+
{ label = "Heroic Tragedy", name = "kalguur", id = 6 }
11821183
}
11831184
-- rebuild `timelessData.jewelType` as we only store the minimum amount of `jewelType` data in build XML
11841185
if next(timelessData.jewelType) then
@@ -1221,6 +1222,12 @@ function TreeTabClass:FindTimelessJewel()
12211222
{ label = "Cadiro (Supreme Decadence)", id = 2 },
12221223
{ label = "Victario (Supreme Grandstanding)", id = 3 },
12231224
{ label = "Caspiro (Supreme Ostentation)", id = 4 }
1225+
},
1226+
[6] = {
1227+
{ label = "Any", id = 1 },
1228+
{ label = "Vorana (Black Scythe Training)", id = 2 },
1229+
{ label = "Uhtred (The Unbreaking Circle)", id = 3 },
1230+
{ label = "Medved (Celestial Mathematics)", id = 4 }
12241231
}
12251232
}
12261233
-- rebuild `timelessData.conquerorType` as we only store the minimum amount of `conquerorType` data in build XML

src/Data/ModCache.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10390,6 +10390,7 @@ c["Passives granting Fire Resistance or all Elemental Resistances in Radius also
1039010390
c["Passives granting Lightning Resistance or all Elemental Resistances in Radius"]={nil,"Passives granting Lightning Resistance or all Elemental Resistances in Radius "}
1039110391
c["Passives granting Lightning Resistance or all Elemental Resistances in Radius also grant an equal chance to gain a Power Charge on Kill"]={nil,"Passives granting Lightning Resistance or all Elemental Resistances in Radius also grant an equal chance to gain a Power Charge on Kill "}
1039210392
c["Passives in radius are Conquered by the Eternal Empire"]={{},nil}
10393+
c["Passives in radius are Conquered by the Kalguur"]={{},nil}
1039310394
c["Passives in radius are Conquered by the Karui"]={{},nil}
1039410395
c["Passives in radius are Conquered by the Maraketh"]={{},nil}
1039510396
c["Passives in radius are Conquered by the Templars"]={{},nil}
@@ -10862,6 +10863,10 @@ c["Regenerate 8% of Energy Shield over 2 seconds when you Consume a corpse"]={{[
1086210863
c["Regenerate 80 Energy Shield per Second per Poison on you, up to 400 per second"]={{[1]={[1]={limit=400,limitTotal=true,type="Multiplier",var="PoisonStack"},flags=0,keywordFlags=0,name="EnergyShieldRegen",type="BASE",value=80}},nil}
1086310864
c["Regenerate 9 Mana per second"]={{[1]={flags=0,keywordFlags=0,name="ManaRegen",type="BASE",value=9}},nil}
1086410865
c["Regenerate 90 Energy Shield per second"]={{[1]={flags=0,keywordFlags=0,name="EnergyShieldRegen",type="BASE",value=90}},nil}
10866+
c["Remembrancing 4050 songworthy deeds by the line of Medved"]={{[1]={flags=0,keywordFlags=0,name="JewelData",type="LIST",value={key="conqueredBy",value={conqueror={id=3,type="kalguur"},id=4050}}}},nil}
10867+
c["Remembrancing 8000 songworthy deeds by the line of Medved"]={{[1]={flags=0,keywordFlags=0,name="JewelData",type="LIST",value={key="conqueredBy",value={conqueror={id=3,type="kalguur"},id=8000}}}},nil}
10868+
c["Remembrancing 8000 songworthy deeds by the line of Uhtred"]={{[1]={flags=0,keywordFlags=0,name="JewelData",type="LIST",value={key="conqueredBy",value={conqueror={id=2,type="kalguur"},id=8000}}}},nil}
10869+
c["Remembrancing 8000 songworthy deeds by the line of Vorana"]={{[1]={flags=0,keywordFlags=0,name="JewelData",type="LIST",value={key="conqueredBy",value={conqueror={id=1,type="kalguur"},id=8000}}}},nil}
1086510870
c["Remove Bleeding when you use a Guard Skill"]={nil,"Remove Bleeding when you use a Guard Skill "}
1086610871
c["Remove Bleeding when you use a Guard Skill Remove Corrupted Blood when you use a Guard Skill"]={nil,"Remove Bleeding when you use a Guard Skill Remove Corrupted Blood when you use a Guard Skill "}
1086710872
c["Remove Bleeding when you use a Guard Skill Remove Corrupted Blood when you use a Guard Skill Guard Skills have 25% increased Duration"]={nil,"Remove Bleeding when you use a Guard Skill Remove Corrupted Blood when you use a Guard Skill Guard Skills have 25% increased Duration "}
9.14 KB
Binary file not shown.
10.8 KB
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)