Skip to content

Commit 8a2fc6b

Browse files
author
LocalIdentity
committed
Merge branch 'dev' into flavour-text-3.28
2 parents 44f1131 + 2df591a commit 8a2fc6b

98 files changed

Lines changed: 70849 additions & 51267 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

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: 8 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
@@ -1237,6 +1242,7 @@ function PassiveSpecClass:BuildAllDependsAndPaths()
12371242
-- Add selected mastery effect mods to mastery nodes
12381243
self.allocatedMasteryCount = 0
12391244
self.allocatedNotableCount = 0
1245+
self.allocatedKeystoneCount = 0
12401246
self.allocatedMasteryTypes = { }
12411247
self.allocatedMasteryTypeCount = 0
12421248
self.allocatedTattooTypes = { }
@@ -1279,6 +1285,8 @@ function PassiveSpecClass:BuildAllDependsAndPaths()
12791285
self:AddMasteryEffectOptionsToNode(node)
12801286
elseif node.type == "Notable" and node.alloc then
12811287
self.allocatedNotableCount = self.allocatedNotableCount + 1
1288+
elseif node.type == "Keystone" and node.alloc then
1289+
self.allocatedKeystoneCount = self.allocatedKeystoneCount + 1
12821290
end
12831291
if node.isTattoo and node.alloc and node.overrideType then
12841292
if not self.allocatedTattooTypes[node.overrideType] then

src/Classes/PassiveTree.lua

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,9 @@ local PassiveTreeClass = newClass("PassiveTree", function(self, treeVersion)
117117
classId = classId,
118118
class = class,
119119
ascendClassId = ascendClassId,
120-
ascendClass = ascendClass
120+
ascendClass = ascendClass,
121+
flavourText = ascendClass.flavourText,
122+
flavourTextRect = ascendClass.flavourTextRect,
121123
}
122124
end
123125
end
@@ -179,7 +181,9 @@ local PassiveTreeClass = newClass("PassiveTree", function(self, treeVersion)
179181
classId = "alternate_ascendancies",
180182
class = alternate_ascendancies_class,
181183
ascendClassId = ascendClassId,
182-
ascendClass = ascendClass
184+
ascendClass = ascendClass,
185+
flavourText = ascendClass.flavourText,
186+
flavourTextRect = ascendClass.flavourTextRect,
183187
}
184188
self.secondaryAscendNameMap[ascendClass.id] = self.ascendNameMap[ascendClass.id]
185189
end

src/Classes/PassiveTreeView.lua

Lines changed: 47 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

@@ -464,6 +468,46 @@ function PassiveTreeViewClass:Draw(build, viewPort, inputEvents)
464468
SetDrawColor(1, 1, 1, 0.25)
465469
end
466470
self:DrawAsset(tree.assets["Classes"..group.ascendancyName], scrX, scrY, scale)
471+
472+
if tree.classes[1].ascendancies then
473+
local ascendancyData
474+
local isAlternateAscendancy = false
475+
-- Search normal ascendancies
476+
for _, class in ipairs(tree.classes) do
477+
for _, ascendancy in ipairs(class.ascendancies) do
478+
if ascendancy.id == group.ascendancyName then
479+
ascendancyData = ascendancy
480+
break
481+
end
482+
end
483+
if ascendancyData then break end
484+
end
485+
486+
-- Search alternate ascendancies if not found
487+
if not ascendancyData and tree.alternate_ascendancies then
488+
for _, ascendancy in pairs(tree.alternate_ascendancies) do
489+
if ascendancy.id == group.ascendancyName then
490+
ascendancyData = ascendancy
491+
isAlternateAscendancy = true
492+
break
493+
end
494+
end
495+
end
496+
if ascendancyData and ascendancyData.flavourTextRect then
497+
local rect = ascendancyData.flavourTextRect
498+
local textColor = "^x" .. ascendancyData.flavourTextColour
499+
500+
-- Normal ascendancy images are 1300x1300, bloodline appears to be 1488x1412
501+
local offsetX = rect.x - (isAlternateAscendancy and 744 or 650)
502+
local offsetY = rect.y - (isAlternateAscendancy and 706 or 650)
503+
504+
local textX, textY = treeToScreen(group.x + offsetX, group.y + offsetY)
505+
506+
DrawString(textX, textY, "LEFT", 52 * scale, "FONTIN ITALIC", textColor .. ascendancyData.flavourText)
507+
end
508+
else
509+
ConPrintTable(tree.classes)
510+
end
467511
SetDrawColor(1, 1, 1)
468512
end
469513
elseif group.oo[3] then
@@ -934,6 +978,9 @@ function PassiveTreeViewClass:Draw(build, viewPort, inputEvents)
934978
elseif jewel.title:match("^Militant Faith") then
935979
self:DrawImageRotated(self.templar1, scrX, scrY, outerSize * 2, outerSize * 2, -0.7)
936980
self:DrawImageRotated(self.templar2, scrX, scrY, outerSize * 2, outerSize * 2, 0.7)
981+
elseif jewel.title:match("^Heroic Tragedy") then
982+
self:DrawImageRotated(self.kalguur1, scrX, scrY, outerSize * 2, outerSize * 2, -0.7)
983+
self:DrawImageRotated(self.kalguur2, scrX, scrY, outerSize * 2, outerSize * 2, 0.7)
937984
else
938985
self:DrawImageRotated(self.jewelShadedOuterRing, scrX, scrY, outerSize * 2, outerSize * 2, -0.7)
939986
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

0 commit comments

Comments
 (0)