feat(mythicplus): add the Mythic+ Tools module - #1238
Open
wanghwplus wants to merge 1 commit into
Open
Conversation
A Group Finder companion built as one child addon with five independent, self-gating features: a dungeon score overlay drawn onto each Group Finder dungeon icon, one-click teleports on those same icons with an optional party announce, a weekly/season run panel docked to the window, a floating party keystone list, and an in-dungeon keystone owner banner. Every feature registers no events, builds no frames and hooks nothing while it is off. Season data is deliberately not duplicated. The current dungeons come from C_ChallengeMode.GetMapTable() and abbreviations plus teleport spells resolve out of EllesmereUI.SEASON_PORTALS by localized dungeon name, so the module follows a season rollover with no code change. Great Vault reward item levels ask C_MythicPlus.GetRewardLevelForDifficultyLevel first and fall back to a per-season table only when that data has not landed. Announce Teleports defaults OFF: it is the only thing here that speaks to other players, and installing an addon should not start broadcasting to the group. Also records the full SEASON_PORTALS consumer list at its definition, and the constraint that season entries must be replaced rather than appended -- the portal flyouts and the travel tooltip render that list whole.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Adds Mythic+ Tools (
EllesmereUIMythicPlus), a new child addon that turns the GroupFinder into a Mythic+ dashboard. It is one addon with five independent features, each with
its own switch:
Both keystone displays are placed through the shared Unlock Mode, and the module registers
its own page group (Dungeon Icons / Weekly Panel / Keystones), profile storage, global
search aliases and first-install entry alongside every other module.
/empopens itdirectly.
Season maintenance is deliberately near-zero. The module duplicates no season data: the
current dungeon set comes from
C_ChallengeMode.GetMapTable(), and abbreviations plusteleport spells resolve out of the existing
EllesmereUI.SEASON_PORTALSby localizeddungeon name. A season rollover therefore needs no change here at all. Great Vault reward
item levels ask
C_MythicPlus.GetRewardLevelForDifficultyLevelfirst and only fall back toa hardcoded per-season table when that data has not landed yet.
This PR also records the complete
SEASON_PORTALSconsumer list at its definition, plus theconstraint that season entries must be replaced rather than appended -- the two portal
flyouts and the DataBars travel tooltip render that list whole, so an entry committed early
for a future season would show up as a dead portal button.
How was it tested?
Live retail, 12.0 client. All five features were run against a real character and a real
group -- the screenshots below are from that session, on live season data (season score,
full run history, a five-player group each holding a keystone).
Covered in game: all three options pages, the score overlay and teleport buttons on the
Group Finder dungeon list, the weekly panel in both its weekly and Shift season-best views,
the party keystone list with a full group, and the owner banner on entering a Mythic
dungeon.
Not exercised on the 12.1 PTR client. The module uses no 12.1-only API and is not gated on
IS_121, but it has not been loaded there.Screenshots
Options -- Dungeon Icons (score overlay + teleports):
Options -- Weekly Panel:
Options -- Keystones:
In game -- score overlay on the dungeon icons (left) and the weekly panel docked to the
Group Finder, here in its Shift season-best view (right):
In game -- the party keystone list (left) and the keystone owner banner (right):
This is a new module, so there is no "before" state to show.
Checklist
Applied where it matters: Announce Teleports defaults OFF, since it is the
only feature that speaks to other players. The module and its display features
default ON, matching how every sibling child addon ships (Mythic+ Timer, Quest
Tracker, ...) -- installing and enabling the addon is itself the opt-in.
Each feature is a
ns.RegisterFeatureentry whoseStartruns only on firstenable; a disabled feature registers no events, builds no frames and installs no
hooks.
C_MythicPlus.RequestMapInfo()is likewise only requested fromStart.Purely event-driven (
PLAYER_ENTERING_WORLD,CHALLENGE_MODE_COMPLETED,MODIFIER_STATE_CHANGEDand friends), with the modifier event subscribed only whilethe panel is actually up. Tooltip and panel row buffers are allocated once and reused.
No OnUpdate anywhere.
HookScript/hooksecurefunconly, neverSetScripton Blizzard framesPVEFrameis only everHookScripted. The weekly panel parents toUIParentand anchors to
PVEFramerather than re-parenting into its tree.Live retail: yes, see above. 12.1 PTR: not verified -- the module uses no
12.1-only API, but I have not loaded it on that client. Happy to test if you would
like that confirmed before merge.