Skip to content

ABR: Configurable, spec-agnostic Warlock wrong-demon reminder - #1909

Merged
EllesmereGaming merged 4 commits into
EllesmereGaming:mainfrom
Barbiero:feat/warlock-wrong-demon-reminder
Sep 2, 2026
Merged

ABR: Configurable, spec-agnostic Warlock wrong-demon reminder#1909
EllesmereGaming merged 4 commits into
EllesmereGaming:mainfrom
Barbiero:feat/warlock-wrong-demon-reminder

Conversation

@Barbiero

@Barbiero Barbiero commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Reworks the Warlock "wrong pet" reminder in Aura/Buff Reminders:

  • No longer hardcoded to Demonology + Felguard. Any Warlock spec can now
    pick, from a new Allowed Demons dropdown (Warlock Demons section),
    which demons count as "correct" for their active pet.
  • A demon only counts while its summon spell is actually known -- so an
    untalented Summon Felguard silently drops out of the check instead of
    nagging for a pet you cannot summon. The dropdown greys out Felguard
    with an explanatory tooltip in that case, and reads "All" whether
    nothing or everything is picked (both mean "never fires").
  • Cosmetic Grimoire-of-* pet reskins (Wrathguard, Voidlord, Fel Imp,
    Observer, Shivarra/Incubus) no longer trigger a false "Wrong Demon".
  • The Missing Pet reminder can now be left-clicked to summon the chosen
    demon directly. When more than one demon is allowed, right-click
    previews/cycles through them without casting anything.
  • ptBR translations added for all new strings.

Reasoning

Demonology Warlocks are using Sayaad/Felhunter in certain situations nowadays, so Felguard isn't always the right choice. Expanding this behavior for more specs felt the natural thing to do.

How was it tested?

Tested in-game on live and confirmed working as expected. Also checked
with luac -p and read through every changed code path by hand;
creature-family and spell IDs were cross-checked against Wowhead and
the official CreatureFamily data table rather than guessed.

Screenshots

New warlock demons section
New Warlock Demons section

image
Select allowed demons granularly

image
Summon Felguard is disabled when it is not learned(either due to talent or due to not being a demonology warlock)

image
Summon pet for warlocks will now match "allowed pets" - right click to cycle between allowed demons

image
Having the wrong demon summoned shows a "Wrong Demon" string. Right click to cycle between allowed demons.

Checklist

  • New settings default OFF (no behavior change without opt-in) -- default config ({felguard=true}) reproduces the old Demonology-only behavior for existing users; Affliction/Destruction get no reminder by default since they won't have Summon Felguard known.
  • Zero cost while disabled: no events registered, no polling, no hooks doing work, no frames built -- the pet-cycle click handling reuses the existing pooled reminder-icon frames; nothing new is created or registered when the reminder itself is off.
  • Cheap while enabled: event-driven (no polling, no timer-based logic, no per-frame allocations) -- rides the existing throttled refresh cycle; the added work is a fixed 5-entry loop of cheap, combat-safe lookups.
  • No writes onto Blizzard-owned frames (weak-table pattern used); HookScript/hooksecurefunc only, never SetScript on Blizzard frames -- only the addon's own pooled SecureActionButtons are touched.
  • Tested in-game on live; no version gates or pre-Midnight APIs added

Lets any Warlock spec pick which demons count as correct for the
active-pet reminder instead of hardcoding Felguard for Demonology only.
A demon only counts while its summon spell is actually known, so an
untalented Summon Felguard silently drops out rather than nagging for
an unobtainable pet, and cosmetic Grimoire-of-* reskins (Wrathguard,
Voidlord, Fel Imp, Observer, Shivarra/Incubus) no longer trip a false
positive. The Missing Pet reminder can now be clicked to summon the
chosen demon directly, or right-click to preview/cycle between several
allowed demons without casting.
New literal L()/Lf() keys from the wrong-demon reminder work; Felguard
drops off the static list since its only literal call site is now a
variable lookup (still reachable at runtime through the pet table).
Covers the new Wrong Demon / Allowed Demons options and the Imp,
Voidwalker, Felhunter, and Sayaad pet names (looked up officially by
spell id; Felguard already had a translation). Drops the now-dead
"Wrong Pet (Demo Lock)" entry the reminder no longer uses.
@Barbiero Barbiero changed the title Configurable, spec-agnostic Warlock wrong-demon reminder ABR: Configurable, spec-agnostic Warlock wrong-demon reminder Sep 1, 2026
Reuses the same pet-cycle logic as Missing Pet: left-click on a Wrong
Demon reminder attempts to summon a correct demon, right-click
previews/cycles through the allowed ones without casting. Both
reminders share one cycle index, so cycling on either advances the
same pointer.
@EllesmereGaming
EllesmereGaming merged commit 2e285bb into EllesmereGaming:main Sep 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants