@@ -745,7 +745,7 @@ function TalentViewerUIMixin:UpdateLevelingBuildHighlights()
745745 end
746746end
747747
748- --- @return nil | TalentViewer_LevelingBuildEntry[]
748+ --- @return nil | table<number , TalentViewer_LevelingBuildEntry> # [level] = entry
749749function TalentViewerUIMixin :GetLevelingBuildInfo (buildID )
750750 return TalentViewer :GetLevelingBuild (buildID );
751751end
@@ -754,9 +754,10 @@ function TalentViewerUIMixin:GetNextLevelingBuildPurchase(buildID)
754754 local info = self :GetLevelingBuildInfo (buildID );
755755 if not info then return ; end
756756
757- for _ , entryInfo in ipairs (info ) do
758- local nodeInfo = self :GetAndCacheNodeInfo (entryInfo .nodeID );
759- if nodeInfo .ranksPurchased < entryInfo .targetRank then
757+ for i = 10 , ns .MAX_LEVEL do
758+ local entryInfo = info [i ];
759+ local nodeInfo = entryInfo and self :GetAndCacheNodeInfo (entryInfo .nodeID );
760+ if nodeInfo and nodeInfo .ranksPurchased < entryInfo .targetRank then
760761 return entryInfo .nodeID , entryInfo .entryID ;
761762 end
762763 end
@@ -802,14 +803,16 @@ function TalentViewerUIMixin:ApplyLevelingBuild(level, lockLevelingBuild)
802803 end
803804 end
804805
805- --- @type table<number , number[]>
806- local byNodes = {};
807- for index , entry in ipairs (info ) do
808- byNodes [entry .nodeID ] = byNodes [entry .nodeID ] or {};
809- table.insert (byNodes [entry .nodeID ], index );
810- end
811806 for _ , button in ipairs (self .levelingOrderButtons ) do
812- button :SetOrder (byNodes [button :GetParent ():GetNodeID ()] or {});
807+ button :SetOrder ({});
808+ end
809+ for entryLevel = 10 , ns .MAX_LEVEL do
810+ local entryInfo = info [entryLevel ];
811+ if entryInfo then
812+ local nodeID = entryInfo .nodeID ;
813+ local button = self :GetTalentButtonByNodeID (nodeID );
814+ button .LevelingOrder :AppendToOrder (entryLevel );
815+ end
813816 end
814817
815818 self :UpdateTreeCurrencyInfo ();
0 commit comments