@@ -3,6 +3,9 @@ local name = ...
33ResearchViewer = {}
44local LibDBIcon = LibStub (" LibDBIcon-1.0" )
55
6+ local LEMIX_SEASON = 2
7+ local LEGION_ARTIFACT_TREE = 1161
8+
69local playerClass = UnitClassBase (" player" )
710local orderHalls = {
811 [" WARRIOR" ] = 122 ,
@@ -24,6 +27,7 @@ local increment = CreateCounter();
2427ResearchViewer .talentTrees = {
2528 [" The War Within" ] = {
2629 order = increment (),
30+ { isTraitTree = true , id = LEGION_ARTIFACT_TREE , name = " Legion Remix Artifact Traits" },
2731 { isTraitTree = true , id = 1115 , name = GENERIC_TRAIT_FRAME_RESHII_WRAPS_TITLE },
2832 { isTraitTree = true , id = 672 , name = GENERIC_TRAIT_FRAME_DRAGONRIDING_TITLE },
2933 { isTraitTree = true , id = 1151 , name = " Brann Delve Season 3" },
@@ -195,6 +199,12 @@ f:SetScript("OnEvent", function(_, _, addonName)
195199 ResearchViewer .selectedTreeInfo = nil
196200 end )
197201 end
202+ if addonName == " Blizzard_RemixArtifactUI" then
203+ ResearchViewer :MakeDropDownButton (RemixArtifactFrame )
204+ RemixArtifactFrame :HookScript (" OnHide" , function ()
205+ ResearchViewer .selectedTreeInfo = nil
206+ end )
207+ end
198208end )
199209
200210function ResearchViewer :OnInitialize ()
@@ -352,7 +362,7 @@ function ResearchViewer:AlreadyAdded(textLine, tooltip)
352362 end
353363end
354364
355- --- @param parent GenericTraitFrame | OrderHallTalentFrame
365+ --- @param parent GenericTraitFrame | OrderHallTalentFrame | RemixArtifactFrame
356366function ResearchViewer :MakeDropDownButton (parent )
357367 local dropdown = CreateFrame (" DropdownButton" , nil , parent , " WowStyle1DropdownTemplate" );
358368
@@ -421,7 +431,9 @@ function ResearchViewer:ToggleUI()
421431 end
422432 end
423433 if self .selectedTreeInfo .isTraitTree then
424- if GenericTraitFrame and GenericTraitFrame :IsShown () then
434+ if RemixArtifactFrame and RemixArtifactFrame :IsShown () and self .selectedTreeInfo .id == LEGION_ARTIFACT_TREE then
435+ HideUIPanel (RemixArtifactFrame )
436+ elseif GenericTraitFrame and GenericTraitFrame :IsShown () then
425437 HideUIPanel (GenericTraitFrame )
426438 else
427439 if not self :OpenGenericTalentTree (self .selectedTreeInfo .id ) then
@@ -439,9 +451,29 @@ function ResearchViewer:ToggleUI()
439451end
440452
441453function ResearchViewer :OpenGenericTalentTree (treeID )
442- if not self :TraitTreeExists (treeID ) then
443- return false ;
454+ if LEGION_ARTIFACT_TREE == treeID then
455+ if PlayerGetTimerunningSeasonID () ~= LEMIX_SEASON then return false ; end
456+ RemixArtifactUI_LoadUI ();
457+ RemixArtifactFrame :UpdateLayout ();
458+
459+ local itemID = C_RemixArtifactUI .GetCurrArtifactItemID ();
460+ if itemID then
461+ RemixArtifactFrame :SetArtifactItem (itemID );
462+ end
463+
464+ local configID = C_Traits .GetConfigIDByTreeID (treeID );
465+ RemixArtifactFrame :SetConfigID (configID );
466+ ShowUIPanel (RemixArtifactFrame );
467+ if RemixArtifactFrame :GetNumPoints () == 0 then
468+ RemixArtifactFrame :SetPoint (' TOPLEFT' , 16 , - 116 ); -- roughly where it would normally open
469+ end
470+ if not tIndexOf (UISpecialFrames , ' RemixArtifactFrame' ) then
471+ table.insert (UISpecialFrames , ' RemixArtifactFrame' );
472+ end
473+
474+ return true ;
444475 end
476+ if not self :TraitTreeExists (treeID ) then return false ; end
445477
446478 self .charDb .lastSelected = self .selectedTreeInfo
447479 local systemID = C_Traits .GetSystemIDByTreeID (treeID )
@@ -486,6 +518,10 @@ function ResearchViewer:TreeExists(treeId)
486518end
487519
488520function ResearchViewer :TraitTreeExists (treeID )
521+ if LEGION_ARTIFACT_TREE == treeID then
522+ return PlayerGetTimerunningSeasonID () == LEMIX_SEASON ;
523+ end
524+
489525 return not not C_Traits .GetConfigIDByTreeID (treeID )
490526end
491527
@@ -501,7 +537,11 @@ function ResearchViewer:GenerateMenu(rootDescription, owner)
501537
502538 self .selectedTreeInfo = data
503539 if data .isTraitTree then
504- HideUIPanel (GenericTraitFrame )
540+ if data .id == LEGION_ARTIFACT_TREE then
541+ HideUIPanel (RemixArtifactFrame )
542+ else
543+ HideUIPanel (GenericTraitFrame )
544+ end
505545
506546 self :OpenGenericTalentTree (data .id )
507547 else
@@ -524,6 +564,12 @@ function ResearchViewer:GenerateMenu(rootDescription, owner)
524564 or (
525565 data [' T' .. GenericTraitFrame :GetTalentTreeID ()]
526566 )
567+ elseif owner == RemixArtifactFrame then
568+ return
569+ data .isTraitTree and data .id == LEGION_ARTIFACT_TREE
570+ or (
571+ data [' T' .. LEGION_ARTIFACT_TREE ]
572+ )
527573 end
528574
529575 return false
0 commit comments