MacroDSL — extended macro conditionals
Ours. It adds health, resource, cooldown, aura and target-predicate conditions to the macro language, so a full DPS priority list fits inside one ordinary macro and the stock 255-character limit.
The grammar is Blizzard's, unchanged — /cast [c1] A; [c2] B; C
already means "first clause that passes wins", which is a priority list. This only adds
condition tokens. You type /mcast instead of /cast; ordinary
macros are untouched.
What it looks like
A complete feral cat rotation — cooldowns, bleeds, Clearcasting procs and energy pooling — fits in one macro with room over. So do the AoE rotations and a full bear-weaving setup.
The worked examples live with the project, where they are kept correct against the engine and its test suite: the feral rotations and simpler patterns.
Source, syntax reference and the full condition list: github.com/dakriy/wotlk-macro-conditionals.
Installing
This one is not an addon and cannot be. It ships as FrameXML,
because an addon is tainted and may not pick a spell from live game state and then cast
it — that restriction is exactly what the protected-function rule exists to
enforce. Code loaded through FrameXML.toc is untainted and may. So it
changes the client itself, which means a one-time patch to Wow.exe.
The project's own README covers it, for Windows and Linux, and is the copy that stays current: github.com/dakriy/wotlk-macro-conditionals.
No Blizzard file is modified in place, and it uninstalls as cleanly as it installs.