Skip to content

Commit 85f6fa0

Browse files
Wires77LocalIdentity
andauthored
Add 3.29 skill trees (#9973)
* Add 3.29 skill trees * Fix data error and restore position of Saresh Bloodline * Fix trees Moves the bloodlines to have the Necromantic one off to the side Fixes the issue with the new sprite tables for positions Moves the Luminary position to below the existing Reliquarian as otherwise its in the way of cluster jewels * ModCache --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
1 parent 8dd3de8 commit 85f6fa0

42 files changed

Lines changed: 219967 additions & 78 deletions

Some content is hidden

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

fix_ascendancy_positions.py

100644100755
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#!/usr/bin/env python3
12
from __future__ import annotations
23

34
import dataclasses
@@ -40,6 +41,7 @@ def __sub__(self, other: Point2D) -> Point2D:
4041
"Saboteur": Point2D(10200, -2200),
4142
"Ascendant": Point2D(-7800, 7200),
4243
"Reliquarian": Point2D(-7800, 8900),
44+
"Luminary": Point2D(-7800, 10600),
4345
"Warden": Point2D(8250, 8350),
4446
"Primalist": Point2D(7200, 9400),
4547
"Warlock": Point2D(9300, 7300),
@@ -53,7 +55,9 @@ def __sub__(self, other: Point2D) -> Point2D:
5355
"KingInTheMists": Point2D(3750, 12000),
5456
"Olroth": Point2D(5250, 12000),
5557
"Oshabi": Point2D(6750, 12000),
56-
"Necromantic": Point2D(8250, 12000),
58+
"Necromantic": Point2D(9750, 12000),
59+
"Abyssal": Point2D(-750, 13600),
60+
"Brinerot": Point2D(750, 13600)
5761
}
5862
EXTRA_NODES = {
5963
"Necromancer": [{"Node": {"name": "Nine Lives", "icon": "Art/2DArt/SkillIcons/passives/Ascendants/Int.png", "isNotable": True, "skill" : 27602},

src/Classes/ImportTab.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1049,7 +1049,8 @@ function ImportTabClass:BuildCharacterList(realm, league, characters, control)
10491049
elseif (charClass == "Juggernaut" or charClass == "Berserker" or charClass == "Chieftain" or
10501050
charClass == "Antiquarian" or charClass == "Behemoth" or charClass == "Ancestral Commander") then
10511051
classColor = colorCodes["MARAUDER"]
1052-
elseif (charClass == "Ascendant" or charClass == "Reliquarian" or charClass == "Scavenger") then
1052+
elseif (charClass == "Ascendant" or charClass == "Reliquarian" or charClass == "Luminary" or
1053+
charClass == "Scavenger") then
10531054
classColor = colorCodes["SCION"]
10541055
end
10551056
end

src/Classes/PassiveTree.lua

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ local PassiveTreeClass = newClass("PassiveTree", function(self, treeVersion)
267267
end
268268
self.skillSprites = self.sprites
269269
end
270-
for type, data in pairs(self.skillSprites) do
270+
for spriteType, data in pairs(self.skillSprites) do
271271
local maxZoom
272272
if not self.imageZoomLevels then
273273
maxZoom = data
@@ -286,14 +286,18 @@ local PassiveTreeClass = newClass("PassiveTree", function(self, treeVersion)
286286
if not self.spriteMap[name] then
287287
self.spriteMap[name] = { }
288288
end
289-
self.spriteMap[name][type] = {
289+
local x = type(coords.x) == "table" and coords.x[#coords.x] or coords.x
290+
local y = type(coords.y) == "table" and coords.y[#coords.y] or coords.y
291+
local w = type(coords.w) == "table" and coords.w[#coords.w] or coords.w
292+
local h = type(coords.h) == "table" and coords.h[#coords.h] or coords.h
293+
self.spriteMap[name][spriteType] = {
290294
handle = sheet.handle,
291-
width = coords.w,
292-
height = coords.h,
293-
[1] = coords.x / sheet.width,
294-
[2] = coords.y / sheet.height,
295-
[3] = (coords.x + coords.w) / sheet.width,
296-
[4] = (coords.y + coords.h) / sheet.height
295+
width = w,
296+
height = h,
297+
[1] = x / sheet.width,
298+
[2] = y / sheet.height,
299+
[3] = (x + w) / sheet.width,
300+
[4] = (y + h) / sheet.height
297301
}
298302
end
299303
end
@@ -546,7 +550,7 @@ local PassiveTreeClass = newClass("PassiveTree", function(self, treeVersion)
546550
node.type = "Normal"
547551
if ((node.ascendancyName == "Ascendant" and not node.isMultipleChoiceOption and not node.dn:find("Dexterity")
548552
and not node.dn:find("Intelligence") and not node.dn:find("Strength") and not node.dn:find("Passive"))
549-
or (node.isMultipleChoiceOption and node.ascendancyName)) and node.ascendancyName ~= "Reliquarian" then
553+
or (node.isMultipleChoiceOption and node.ascendancyName)) and node.ascendancyName ~= "Reliquarian" and node.ascendancyName ~= "Luminary" then
550554
local className = self.ascendNameMap[node.ascendancyName].class.name
551555
self.ascendancyMap[node.dn:lower()] = node
552556
if not self.classNotables[className] then

src/Data/ModCache.lua

Lines changed: 187 additions & 66 deletions
Large diffs are not rendered by default.

src/Export/spec.lua

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11085,6 +11085,13 @@ return {
1108511085
refTo="PassiveSkills",
1108611086
type="Key",
1108711087
width=150
11088+
},
11089+
[14]={
11090+
list=true,
11091+
name="BlockingPassive",
11092+
refTo="PassiveSkills",
11093+
type="Key",
11094+
width=280
1108811095
}
1108911096
},
1109011097
passiveskilloverridetypes={

src/GameVersions.lua

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ liveTargetVersion = "3_0"
99
---@type string[]
1010
treeVersionList = { "2_6", "3_6", "3_7", "3_8", "3_9", "3_10", "3_11", "3_12", "3_13", "3_14", "3_15", "3_16", "3_17", "3_18", "3_19", "3_20", "3_21",
1111
"3_22_ruthless", "3_22", "3_23_ruthless", "3_23", "3_24_ruthless", "3_24", "3_25_ruthless", "3_25_ruthless_alternate", "3_25_alternate", "3_25",
12-
"3_26_ruthless", "3_26_ruthless_alternate", "3_26_alternate", "3_26", "3_27_ruthless", "3_27_ruthless_alternate", "3_27_alternate", "3_27", "3_28_ruthless", "3_28_ruthless_alternate", "3_28_alternate", "3_28" }
12+
"3_26_ruthless", "3_26_ruthless_alternate", "3_26_alternate", "3_26", "3_27_ruthless", "3_27_ruthless_alternate", "3_27_alternate", "3_27", "3_28_ruthless", "3_28_ruthless_alternate", "3_28_alternate", "3_28", "3_29_ruthless", "3_29" }
1313
--- Always points to the latest skill tree version.
1414
latestTreeVersion = treeVersionList[#treeVersionList]
1515
---Tree version where multiple skill trees per build were introduced to PoBC.
@@ -212,10 +212,28 @@ treeVersions = {
212212
num = 3.28,
213213
url = "https://www.pathofexile.com/passive-skill-tree/3.28.0/",
214214
},
215+
["3_29_ruthless"] = {
216+
display = "3.29 (ruthless)",
217+
num = 3.29,
218+
url = "https://www.pathofexile.com/passive-skill-tree/ruthless/",
219+
},
220+
["3_29"] = {
221+
display = "3.29",
222+
num = 3.29,
223+
url = "https://www.pathofexile.com/passive-skill-tree/3.29.0/",
224+
},
215225
}
216226

217227
---Mapping PoEPlanner.com version when importing trees from there (https://cdn.poeplanner.com/json/versions.json)
218228
poePlannerVersions = {
229+
[51] = "3_29",
230+
[50] = "3_29_ruthless",
231+
-- [49] = "3_29_alternate",
232+
-- [48] = "3_29_ruthless_alternate",
233+
[47] = "3_28",
234+
[46] = "3_28_ruthless",
235+
[45] = "3_28_alternate",
236+
[44] = "3_28_ruthless_alternate",
219237
[43] = "3_27",
220238
[42] = "3_27_ruthless",
221239
[37] = "3_26",
445 KB
Loading

src/TreeData/3_29/background-3.png

7.12 KB
Loading

src/TreeData/3_29/bloodline-3.webp

562 KB
Loading

src/TreeData/3_29/frame-3.png

154 KB
Loading

0 commit comments

Comments
 (0)