Reno Macro Patcher
Reno is a slash-command that can patch (silently edit) predefined options in a macro to change which abilities will be chosen. More specifically, when given a slash command like this:
/reno "macro name" enabled_option
...Reno searches the chosen macro for all occurances of the base macro option of the provided "enabled" option, and edits the macro so that the next occurance of the option is enabled. Most simply: Reno adds and removes "no" from the front of the relevant macro options. Murky enough?
Let's try some examples...
Assuming you have a macro named "curse" that looks like:
/cast [noflying] Curse of Weakness /cast [flying] Curse of Tongues /cast [flying] Curse of Exhaustion
By using a Reno command like:
/reno "curse" noflying
...you would patch the curse macro to look like:
/cast [flying] Curse of Weakness /cast [noflying] Curse of Tongues /cast [flying] Curse of Exhaustion
...which (assuming you were in a non-flying situation) would disable casting Curse of Weakness and enable casting Curse of Tongues.
Reno observes macro options, so you can even do:
/reno [button:3] "curse" noflying /stopmacro [button:3] /cast [noflying] Curse of Weakness /cast [flying] Curse of Tongues /cast [flying] Curse of Exhaustion
...to have a macro patch itself(!)
Be advised! If you try this macro-patching-itself trick, make absolutely certain that the Reno slash-command is the first line of the macro, and that you use macro options to make it mutually-exclusive from the rest of your macro or else your results will be unpredictable.
With successive calls, Reno will rotate through the relevant options in a round-robin fashion, with the enabled option being moved later in the macro with each call. With only two appearances of the option Reno will alternate which option would be enabled. With more than two appearances Reno will move the enabled option from earlier appearances to later, and then "wrap around" to enabling the first again.
Note that what option would be enabled is highly situational, but still can be chosen with confidence for most macros. As in the example above, I generally use noflying for the enabled option for raid-duty macros, since there's no combat flying in any of the raids I attend. group/nogroup should also be an excellent enabled/disabled option pair for raid macros.
- Reno works by editing macros, and macros can't be edited in combat.
- The default WoW macro editing window doesn't understand anything about Reno, so if you run Reno commands with the WoW macro window open you won't see any changes to your macro and WoW will overwrite any of Reno's changes when the window closes.
- Reno outputs what it sees to be the enabled macro command based on the enabled option you give it, but understand that it's your environment at macro use-time that determines which commands are truly enabled.
- Reno does no checking to verify the options that you provide are valid WoW macro options.
What would I use this for?
Reno permits you to have macros with multiple spells defined and, at the start of the raid or between combats, change which of those spells is active on the simple click of the bound key or action button.
Why wouldn't I use modifier keys for this purpose?
You absolutely can use modifier keys to alter your macro's behavior, but Reno frees you to use them for some other purpose in your macro.
I chose the name "Reno" because it REpositions occurances of NO in your macros.