@@ -1026,14 +1026,8 @@ function PassiveSpecClass:BuildAllDependsAndPaths()
1026
1026
1027
1027
-- FIXME - continue implementing
1028
1028
local jewelType = 5
1029
- if conqueredBy .conqueror .type == " vaal " then
1029
+ if conqueredBy .conqueror .type == " kalguur " then
1030
1030
jewelType = 1
1031
- elseif conqueredBy .conqueror .type == " karui" then
1032
- jewelType = 2
1033
- elseif conqueredBy .conqueror .type == " maraketh" then
1034
- jewelType = 3
1035
- elseif conqueredBy .conqueror .type == " templar" then
1036
- jewelType = 4
1037
1031
end
1038
1032
local seed = conqueredBy .id
1039
1033
if jewelType == 5 then
@@ -1060,92 +1054,93 @@ function PassiveSpecClass:BuildAllDependsAndPaths()
1060
1054
end
1061
1055
1062
1056
if node .type == " Notable" then
1063
- local jewelDataTbl = { }
1064
- if seed ~= m_max (m_min (seed , data .timelessJewelSeedMax [jewelType ]), data .timelessJewelSeedMin [jewelType ]) then
1065
- ConPrintf (" ERROR: Seed " .. seed .. " is outside of valid range [" .. data .timelessJewelSeedMin [jewelType ] .. " - " .. data .timelessJewelSeedMax [jewelType ] .. " ] for jewel type: " .. data .timelessJewelTypes [jewelType ])
1066
- else
1067
- jewelDataTbl = data .readLUT (conqueredBy .id , node .id , jewelType )
1068
- end
1069
- -- print("Need to Update: " .. node.id .. " [" .. node.dn .. "]")
1070
- if not next (jewelDataTbl ) then
1071
- ConPrintf (" Missing LUT: " .. data .timelessJewelTypes [jewelType ])
1072
- else
1073
- if jewelType == 1 then
1074
- local headerSize = # jewelDataTbl
1075
- -- FIXME: complete implementation of this. Need to set roll values for stats
1076
- -- based on their `fmt` specification
1077
- if headerSize == 2 or headerSize == 3 then
1078
- self :ReplaceNode (node , legionNodes [jewelDataTbl [1 ] + 1 - data .timelessJewelAdditions ])
1079
-
1080
- for i , repStat in ipairs (legionNodes [jewelDataTbl [1 ] + 1 - data .timelessJewelAdditions ].sd ) do
1081
- local statKey = legionNodes [jewelDataTbl [1 ] + 1 - data .timelessJewelAdditions ].sortedStats [i ]
1082
- local statMod = legionNodes [jewelDataTbl [1 ] + 1 - data .timelessJewelAdditions ].stats [statKey ]
1083
- repStat = replaceHelperFunc (repStat , statKey , statMod , jewelDataTbl [statMod .index + 1 ])
1084
- self :NodeAdditionOrReplacementFromString (node , repStat , i == 1 ) -- wipe mods on first run
1085
- end
1086
- -- should fix the stat values here (note headerSize == 3 has 2 values)
1087
- elseif headerSize == 6 or headerSize == 8 then
1088
- local bias = 0
1089
- for i ,val in ipairs (jewelDataTbl ) do
1090
- if i > (headerSize / 2 ) then
1091
- break
1092
- elseif val <= 21 then
1093
- bias = bias + 1
1094
- else
1095
- bias = bias - 1
1096
- end
1097
- end
1098
- if bias >= 0 then
1099
- self :ReplaceNode (node , legionNodes [77 ]) -- might of the vaal
1100
- else
1101
- self :ReplaceNode (node , legionNodes [78 ]) -- legacy of the vaal
1102
- end
1103
- local additions = {}
1104
- for i ,val in ipairs (jewelDataTbl ) do
1105
- if i <= (headerSize / 2 ) then
1106
- local roll = jewelDataTbl [i + headerSize / 2 ]
1107
- if not additions [val ] then
1108
- additions [val ] = roll
1109
- else
1110
- additions [val ] = additions [val ] + roll
1111
- end
1112
- else
1113
- break
1114
- end
1115
- end
1116
- for add , val in pairs (additions ) do
1117
- local addition = legionAdditions [add + 1 ]
1118
- for _ , addStat in ipairs (addition .sd ) do
1119
- for k ,statMod in pairs (addition .stats ) do -- should only be 1 big, these didn't get changed so can't just grab index
1120
- addStat = replaceHelperFunc (addStat , k , statMod , val )
1121
- end
1122
- self :NodeAdditionOrReplacementFromString (node , addStat )
1123
- end
1124
- end
1125
- else
1126
- ConPrintf (" Unhandled Glorious Vanity headerSize: " .. headerSize )
1127
- end
1128
- else
1129
- for _ , jewelData in ipairs (jewelDataTbl ) do
1130
- if jewelData >= data .timelessJewelAdditions then -- replace
1131
- jewelData = jewelData + 1 - data .timelessJewelAdditions
1132
- local legionNode = legionNodes [jewelData ]
1133
- if legionNode then
1134
- self :ReplaceNode (node , legionNode )
1135
- else
1136
- ConPrintf (" Unhandled 'replace' ID: " .. jewelData )
1137
- end
1138
- elseif jewelData then -- add
1139
- local addition = legionAdditions [jewelData + 1 ]
1140
- for _ , addStat in ipairs (addition .sd ) do
1141
- self :NodeAdditionOrReplacementFromString (node , " \n " .. addStat )
1142
- end
1143
- elseif next (jewelData ) then
1144
- ConPrintf (" Unhandled OP: " .. jewelData + 1 )
1145
- end
1146
- end
1147
- end
1148
- end
1057
+ -- todo: update once we get seed data
1058
+ -- local jewelDataTbl = { }
1059
+ -- if seed ~= m_max(m_min(seed, data.timelessJewelSeedMax[jewelType]), data.timelessJewelSeedMin[jewelType]) then
1060
+ -- ConPrintf("ERROR: Seed " .. seed .. " is outside of valid range [" .. data.timelessJewelSeedMin[jewelType] .. " - " .. data.timelessJewelSeedMax[jewelType] .. "] for jewel type: " .. data.timelessJewelTypes[jewelType])
1061
+ -- else
1062
+ -- jewelDataTbl = data.readLUT(conqueredBy.id, node.id, jewelType)
1063
+ -- end
1064
+ ---- print("Need to Update: " .. node.id .. " [" .. node.dn .. "]")
1065
+ -- if not next(jewelDataTbl) then
1066
+ -- ConPrintf("Missing LUT: " .. data.timelessJewelTypes[jewelType])
1067
+ -- else
1068
+ -- if jewelType == 1 then
1069
+ -- local headerSize = #jewelDataTbl
1070
+ -- -- FIXME: complete implementation of this. Need to set roll values for stats
1071
+ -- -- based on their `fmt` specification
1072
+ -- if headerSize == 2 or headerSize == 3 then
1073
+ -- self:ReplaceNode(node, legionNodes[jewelDataTbl[1] + 1 - data.timelessJewelAdditions])
1074
+ --
1075
+ -- for i, repStat in ipairs(legionNodes[jewelDataTbl[1] + 1 - data.timelessJewelAdditions].sd) do
1076
+ -- local statKey = legionNodes[jewelDataTbl[1] + 1 - data.timelessJewelAdditions].sortedStats[i]
1077
+ -- local statMod = legionNodes[jewelDataTbl[1] + 1 - data.timelessJewelAdditions].stats[statKey]
1078
+ -- repStat = replaceHelperFunc(repStat, statKey, statMod, jewelDataTbl[statMod.index + 1])
1079
+ -- self:NodeAdditionOrReplacementFromString(node, repStat, i == 1) -- wipe mods on first run
1080
+ -- end
1081
+ -- -- should fix the stat values here (note headerSize == 3 has 2 values)
1082
+ -- elseif headerSize == 6 or headerSize == 8 then
1083
+ -- local bias = 0
1084
+ -- for i,val in ipairs(jewelDataTbl) do
1085
+ -- if i > (headerSize / 2) then
1086
+ -- break
1087
+ -- elseif val <= 21 then
1088
+ -- bias = bias + 1
1089
+ -- else
1090
+ -- bias = bias - 1
1091
+ -- end
1092
+ -- end
1093
+ -- if bias >= 0 then
1094
+ -- self:ReplaceNode(node, legionNodes[77]) -- might of the vaal
1095
+ -- else
1096
+ -- self:ReplaceNode(node, legionNodes[78]) -- legacy of the vaal
1097
+ -- end
1098
+ -- local additions = {}
1099
+ -- for i,val in ipairs(jewelDataTbl) do
1100
+ -- if i <= (headerSize / 2) then
1101
+ -- local roll = jewelDataTbl[i + headerSize / 2]
1102
+ -- if not additions[val] then
1103
+ -- additions[val] = roll
1104
+ -- else
1105
+ -- additions[val] = additions[val] + roll
1106
+ -- end
1107
+ -- else
1108
+ -- break
1109
+ -- end
1110
+ -- end
1111
+ -- for add, val in pairs(additions) do
1112
+ -- local addition = legionAdditions[add + 1]
1113
+ -- for _, addStat in ipairs(addition.sd) do
1114
+ -- for k,statMod in pairs(addition.stats) do -- should only be 1 big, these didn't get changed so can't just grab index
1115
+ -- addStat = replaceHelperFunc(addStat, k, statMod, val)
1116
+ -- end
1117
+ -- self:NodeAdditionOrReplacementFromString(node, addStat)
1118
+ -- end
1119
+ -- end
1120
+ -- else
1121
+ -- ConPrintf("Unhandled Glorious Vanity headerSize: " .. headerSize)
1122
+ -- end
1123
+ -- else
1124
+ -- for _, jewelData in ipairs(jewelDataTbl) do
1125
+ -- if jewelData >= data.timelessJewelAdditions then -- replace
1126
+ -- jewelData = jewelData + 1 - data.timelessJewelAdditions
1127
+ -- local legionNode = legionNodes[jewelData]
1128
+ -- if legionNode then
1129
+ -- self:ReplaceNode(node, legionNode)
1130
+ -- else
1131
+ -- ConPrintf("Unhandled 'replace' ID: " .. jewelData)
1132
+ -- end
1133
+ -- elseif jewelData then -- add
1134
+ -- local addition = legionAdditions[jewelData + 1]
1135
+ -- for _, addStat in ipairs(addition.sd) do
1136
+ -- self:NodeAdditionOrReplacementFromString(node, " \n" .. addStat)
1137
+ -- end
1138
+ -- elseif next(jewelData) then
1139
+ -- ConPrintf("Unhandled OP: " .. jewelData + 1)
1140
+ -- end
1141
+ -- end
1142
+ -- end
1143
+ -- end
1149
1144
elseif node .type == " Keystone" then
1150
1145
local matchStr = conqueredBy .conqueror .type .. " _keystone_" .. conqueredBy .conqueror .id
1151
1146
for _ , legionNode in ipairs (legionNodes ) do
@@ -1155,42 +1150,43 @@ function PassiveSpecClass:BuildAllDependsAndPaths()
1155
1150
end
1156
1151
end
1157
1152
elseif node .type == " Normal" then
1158
- if conqueredBy .conqueror .type == " vaal" then
1159
- local jewelDataTbl = { }
1160
- if seed ~= m_max (m_min (seed , data .timelessJewelSeedMax [jewelType ]), data .timelessJewelSeedMin [jewelType ]) then
1161
- ConPrintf (" ERROR: Seed " .. seed .. " is outside of valid range [" .. data .timelessJewelSeedMin [jewelType ] .. " - " .. data .timelessJewelSeedMax [jewelType ] .. " ] for jewel type: " .. data .timelessJewelTypes [jewelType ])
1162
- else
1163
- jewelDataTbl = data .readLUT (conqueredBy .id , node .id , jewelType )
1164
- end
1165
- -- print("Need to Update: " .. node.id .. " [" .. node.dn .. "]")
1166
- if not next (jewelDataTbl ) then
1167
- ConPrintf (" Missing LUT: " .. data .timelessJewelTypes [jewelType ])
1168
- else
1169
- self :ReplaceNode (node , legionNodes [jewelDataTbl [1 ] + 1 - data .timelessJewelAdditions ])
1170
- for i , repStat in ipairs (node .sd ) do
1171
- local statKey = legionNodes [jewelDataTbl [1 ] + 1 - data .timelessJewelAdditions ].sortedStats [i ]
1172
- local statMod = legionNodes [jewelDataTbl [1 ] + 1 - data .timelessJewelAdditions ].stats [statKey ]
1173
- repStat = replaceHelperFunc (repStat , statKey , statMod , jewelDataTbl [2 ])
1174
- self :NodeAdditionOrReplacementFromString (node , repStat , true )
1175
- end
1176
- end
1177
- elseif conqueredBy .conqueror .type == " karui" then
1178
- local str = isValueInArray (attributes , node .dn ) and " 2" or " 4"
1179
- self :NodeAdditionOrReplacementFromString (node , " \n +" .. str .. " to Strength" )
1180
- elseif conqueredBy .conqueror .type == " maraketh" then
1181
- local dex = isValueInArray (attributes , node .dn ) and " 2" or " 4"
1182
- self :NodeAdditionOrReplacementFromString (node , " \n +" .. dex .. " to Dexterity" )
1183
- elseif conqueredBy .conqueror .type == " templar" then
1184
- if isValueInArray (attributes , node .dn ) then
1185
- local legionNode = legionNodes [91 ] -- templar_devotion_node
1186
- self :ReplaceNode (node , legionNode )
1187
- else
1188
- self :NodeAdditionOrReplacementFromString (node , " \n +5 to Devotion" )
1189
- end
1190
- elseif conqueredBy .conqueror .type == " eternal" then
1191
- local legionNode = legionNodes [110 ] -- eternal_small_blank
1192
- self :ReplaceNode (node , legionNode )
1193
- end
1153
+ -- todo: update once we get seed data
1154
+ -- if conqueredBy.conqueror.type == "vaal" then
1155
+ -- local jewelDataTbl = { }
1156
+ -- if seed ~= m_max(m_min(seed, data.timelessJewelSeedMax[jewelType]), data.timelessJewelSeedMin[jewelType]) then
1157
+ -- ConPrintf("ERROR: Seed " .. seed .. " is outside of valid range [" .. data.timelessJewelSeedMin[jewelType] .. " - " .. data.timelessJewelSeedMax[jewelType] .. "] for jewel type: " .. data.timelessJewelTypes[jewelType])
1158
+ -- else
1159
+ -- jewelDataTbl = data.readLUT(conqueredBy.id, node.id, jewelType)
1160
+ -- end
1161
+ -- --print("Need to Update: " .. node.id .. " [" .. node.dn .. "]")
1162
+ -- if not next(jewelDataTbl) then
1163
+ -- ConPrintf("Missing LUT: " .. data.timelessJewelTypes[jewelType])
1164
+ -- else
1165
+ -- self:ReplaceNode(node, legionNodes[jewelDataTbl[1] + 1 - data.timelessJewelAdditions])
1166
+ -- for i, repStat in ipairs(node.sd) do
1167
+ -- local statKey = legionNodes[jewelDataTbl[1] + 1 - data.timelessJewelAdditions].sortedStats[i]
1168
+ -- local statMod = legionNodes[jewelDataTbl[1] + 1 - data.timelessJewelAdditions].stats[statKey]
1169
+ -- repStat = replaceHelperFunc(repStat, statKey, statMod, jewelDataTbl[2])
1170
+ -- self:NodeAdditionOrReplacementFromString(node, repStat, true)
1171
+ -- end
1172
+ -- end
1173
+ -- elseif conqueredBy.conqueror.type == "karui" then
1174
+ -- local str = isValueInArray(attributes, node.dn) and "2" or "4"
1175
+ -- self:NodeAdditionOrReplacementFromString(node, " \n+" .. str .. " to Strength")
1176
+ -- elseif conqueredBy.conqueror.type == "maraketh" then
1177
+ -- local dex = isValueInArray(attributes, node.dn) and "2" or "4"
1178
+ -- self:NodeAdditionOrReplacementFromString(node, " \n+" .. dex .. " to Dexterity")
1179
+ -- elseif conqueredBy.conqueror.type == "templar" then
1180
+ -- if isValueInArray(attributes, node.dn) then
1181
+ -- local legionNode = legionNodes[91] -- templar_devotion_node
1182
+ -- self:ReplaceNode(node, legionNode)
1183
+ -- else
1184
+ -- self:NodeAdditionOrReplacementFromString(node, " \n+5 to Devotion")
1185
+ -- end
1186
+ -- elseif conqueredBy.conqueror.type == "eternal" then
1187
+ -- local legionNode = legionNodes[110] -- eternal_small_blank
1188
+ -- self:ReplaceNode(node, legionNode)
1189
+ -- end
1194
1190
end
1195
1191
self :ReconnectNodeToClassStart (node )
1196
1192
end
0 commit comments