Add Gold Respec Prices to Tooltip (#9175)

This commit is contained in:
Blitz54
2025-11-14 21:23:47 -06:00
committed by GitHub
parent 0561312c7e
commit ae2200a402
6 changed files with 85 additions and 4 deletions

View File

@@ -1230,9 +1230,17 @@ function PassiveTreeViewClass:AddNodeTooltip(tooltip, node, build)
end
end
end
local goldCost = data.goldRespecPrices[build.characterLevel]
if node.ascendancyName then
goldCost = goldCost * 5
end
if node.depends and #node.depends > 1 then
tooltip:AddSeparator(14)
tooltip:AddLine(14, "^7"..#node.depends .. " points gained from unallocating these nodes")
tooltip:AddLine(14, "^xFFD700"..formatNumSep(#node.depends * goldCost) .. " Gold ^7required to unallocate these nodes")
tooltip:AddLine(14, colorCodes.TIP)
elseif node.alloc then
tooltip:AddLine(14, "^xFFD700"..formatNumSep(#node.depends * goldCost) .. " Gold ^7required to unallocate this node")
tooltip:AddLine(14, colorCodes.TIP)
end
if node.type == "Socket" then

View File

@@ -68,24 +68,36 @@ local TreeTabClass = newClass("TreeTab", "ControlHost", function(self, build)
end
if spec.curClassId == self.build.spec.curClassId then
local respec = 0
local respecAscendancy = 0
for nodeId, node in pairs(self.build.spec.allocNodes) do
-- Assumption: Nodes >= 65536 are small cluster passives.
if node.type ~= "ClassStart" and node.type ~= "AscendClassStart"
and (self.build.spec.tree.clusterNodeMap[node.dn] == nil or node.isKeystone or node.isJewelSocket) and nodeId < 65536
and not spec.allocNodes[nodeId] then
if node.ascendancyName then
respec = respec + 5
respecAscendancy = respecAscendancy + 1
else
respec = respec + 1
end
end
end
if respec > 0 then
tooltip:AddLine(16, "^7Switching to this tree requires "..respec.." refund points.")
if respec > 0 or respecAscendancy > 0 then
local goldCost = data.goldRespecPrices[build.characterLevel]
local totalGold = (respec * goldCost) + (respecAscendancy * goldCost * 5)
local goldStr = formatNumSep(tostring(totalGold))
tooltip:AddLine(16, "^xFFD700" .. goldStr .. " Gold ^7required to switch to this tree.")
if respec > 0 then
local nodeWord = respec == 1 and "Passive node to be refunded" or "Passive nodes to be refunded"
tooltip:AddLine(16, s_format("^7\t%d %s.", respec, nodeWord))
end
if respecAscendancy > 0 then
local ascendWord = respecAscendancy == 1 and "Ascendancy node to be refunded" or "Ascendancy nodes to be refunded"
tooltip:AddLine(16, s_format("^7\t%d %s.", respecAscendancy, ascendWord))
end
end
end
end
tooltip:AddLine(16, "Game Version: "..treeVersions[spec.treeVersion].display)
tooltip:AddLine(16, "^7Game Version: "..treeVersions[spec.treeVersion].display)
end
end
end

View File

@@ -316,3 +316,5 @@ data.mapLevelLifeMult = { [66] = 1.01, [67] = 1.03, [68] = 1.05, [69] = 1.09, [7
-- From MonsterMapBossDifficulty.dat
data.mapLevelBossLifeMult = { [1] = 1.5, [2] = 1.52, [3] = 1.54, [4] = 1.56, [5] = 1.58, [6] = 1.6, [7] = 1.62, [8] = 1.64, [9] = 1.66, [10] = 1.68, [11] = 1.7, [12] = 1.72, [13] = 1.74, [14] = 1.76, [15] = 1.78, [16] = 1.8, [17] = 1.82, [18] = 1.84, [19] = 1.86, [20] = 1.88, [21] = 1.9, [22] = 1.92, [23] = 1.94, [24] = 1.96, [25] = 1.98, [26] = 2, [27] = 2.02, [28] = 2.04, [29] = 2.06, [30] = 2.08, [31] = 2.1, [32] = 2.12, [33] = 2.14, [34] = 2.16, [35] = 2.18, [36] = 2.2, [37] = 2.22, [38] = 2.24, [39] = 2.26, [40] = 2.28, [41] = 2.3, [42] = 2.32, [43] = 2.34, [44] = 2.36, [45] = 2.38, [46] = 2.4, [47] = 2.42, [48] = 2.44, [49] = 2.46, [50] = 2.48, [51] = 2.5, [52] = 2.52, [53] = 2.54, [54] = 2.56, [55] = 2.58, [56] = 2.6, [57] = 2.62, [58] = 2.64, [59] = 2.66, [60] = 2.68, [61] = 2.7, [62] = 2.72, [63] = 2.74, [64] = 2.76, [65] = 2.78, [66] = 2.8, [67] = 2.8, [68] = 2.8, [69] = 3.03, [70] = 3.16, [71] = 3.32, [72] = 3.48, [73] = 5.63, [74] = 5.97, [75] = 6.32, [76] = 6.66, [77] = 6.99, [78] = 10.46, [79] = 11.32, [80] = 13.01, [81] = 15.43, [82] = 17.2, [83] = 19.64, [84] = 21.46, [85] = 21.46, [86] = 21.46, [87] = 21.46, [88] = 21.46, [89] = 21.46, [90] = 21.46, }
data.mapLevelBossAilmentMult = { [1] = 0.81, [2] = 0.81, [3] = 0.81, [4] = 0.81, [5] = 0.81, [6] = 0.81, [7] = 0.81, [8] = 0.81, [9] = 0.81, [10] = 0.81, [11] = 0.81, [12] = 0.81, [13] = 0.81, [14] = 0.81, [15] = 0.81, [16] = 0.81, [17] = 0.81, [18] = 0.81, [19] = 0.81, [20] = 0.81, [21] = 0.81, [22] = 0.81, [23] = 0.81, [24] = 0.81, [25] = 0.81, [26] = 0.81, [27] = 0.81, [28] = 0.81, [29] = 0.81, [30] = 0.81, [31] = 0.81, [32] = 0.81, [33] = 0.81, [34] = 0.81, [35] = 0.81, [36] = 0.81, [37] = 0.81, [38] = 0.81, [39] = 0.81, [40] = 0.81, [41] = 0.81, [42] = 0.81, [43] = 0.81, [44] = 0.81, [45] = 0.81, [46] = 0.81, [47] = 0.81, [48] = 0.81, [49] = 0.81, [50] = 0.81, [51] = 0.8, [52] = 0.79, [53] = 0.78, [54] = 0.77, [55] = 0.76, [56] = 0.75, [57] = 0.74, [58] = 0.73, [59] = 0.72, [60] = 0.71, [61] = 0.7, [62] = 0.69, [63] = 0.68, [64] = 0.67, [65] = 0.66, [66] = 0.65, [67] = 0.64, [68] = 0.63, [69] = 0.59, [70] = 0.58, [71] = 0.57, [72] = 0.56, [73] = 0.55, [74] = 0.53, [75] = 0.52, [76] = 0.51, [77] = 0.5, [78] = 0.49, [79] = 0.48, [80] = 0.48, [81] = 0.47, [82] = 0.47, [83] = 0.47, [84] = 0.47, [85] = 0.47, [86] = 0.47, [87] = 0.47, [88] = 0.47, [89] = 0.47, [90] = 0.47, }
-- From VillageBalancePerLevelShared.dat
data.goldRespecPrices = { 4, 4, 4, 5, 5, 6, 6, 7, 8, 8, 9, 11, 12, 14, 15, 17, 18, 20, 22, 24, 26, 28, 31, 34, 36, 39, 43, 46, 50, 54, 58, 62, 67, 72, 83, 90, 97, 105, 113, 121, 130, 151, 161, 171, 182, 209, 222, 237, 252, 267, 295, 313, 333, 354, 376, 427, 452, 482, 513, 546, 618, 656, 694, 733, 773, 816, 860, 892, 921, 1055, 1203, 1365, 1541, 1748, 1974, 2221, 2490, 2770, 3073, 3400, 3752, 4131, 4538, 4976, 5444, 5967, 6526, 7126, 7766, 8450, 9851, 11380, 13042, 14847, 16801, 18914, 21192, 23647, 26286, 29119, }

View File

@@ -278,6 +278,7 @@ function GGPKClass:GetNeededFiles()
"Data/BrequelGraftTypes.dat",
"Data/BrequelGraftSkillStats.dat",
"Data/BrequelGraftGrantedSkillLevels.dat",
"Data/VillageBalancePerLevelShared.dat",
}
local txtFiles = {
"Metadata/StatDescriptions/passive_skill_aura_stat_descriptions.txt",

View File

@@ -90,6 +90,13 @@ out:write('-- From MonsterMapBossDifficulty.dat\n')
out:write('data.mapLevelBossLifeMult = { '..mapBossLifeMult..'}\n')
out:write('data.mapLevelBossAilmentMult = { '..mapBossAilmentMult..'}\n')
out:write('-- From VillageBalancePerLevelShared.dat\n')
out:write('data.goldRespecPrices = { ')
for row in dat("VillageBalancePerLevelShared"):Rows() do
out:write(row.GoldRespec .. ', ')
end
out:write('}\n')
out:close()
print("Misc data exported.")

View File

@@ -13461,6 +13461,57 @@ return {
},
userinterfacemodecondition={
},
villagebalanceperlevelshared={
[1]={
list=false,
name="Level",
refTo="",
type="Int",
width=150
},
[2]={
list=false,
name="",
refTo="",
type="Int",
width=150
},
[3]={
list=false,
name="",
refTo="",
type="Int",
width=150
},
[4]={
list=false,
name="GoldRespec",
refTo="",
type="Int",
width=150
},
[5]={
list=false,
name="",
refTo="",
type="Int",
width=150
},
[6]={
list=false,
name="",
refTo="",
type="Int",
width=150
},
[7]={
list=false,
name="",
refTo="",
type="Int",
width=150
}
},
villageuniquedisenchantvalues={
[1]={
list=false,