disc priest holy fire-smite macro

UI and Macro
Yo, I'm lookin for a macro to combine holy fire and smite- cast holy fire when it's up and smite when it's NOT up.

#showtooltip Holy Fire
/use [harm][@focustarget]Holy Fire

That's an example of my current macro- identical one for smite.

Macros can't cast one spell if it's available and default to another if not.
You can pull this off with a /castsequence macro, if memory serves. Something like:

/castsequence [harm,nodead][@focustarget] reset=10 Holy Fire, Smite, Smite, Smite, Smite, Smite, Smite, Smite
That will not work. Every time you use a macro, the reset timer resets. Consequently; if you spam a macro with a reset=N condition, it will run through its entire sequence instead of resetting. The macro system is deliberately designed to prevent this type of macro (one that automatically accounts for spell cooldowns) from being possible.

You CAN use the reset trick to toggle between two spells based on the first spell's CD, but it only works with a single instance of the second spell. For example:

/castsequence reset=10 Holy Fire, Smite

Will cast Holy fire and then wait 10 seconds. If the macro is used again within that time, it will cast smite and the sequence will reset (because it is complete). If you do not use the macro again within that time, however; the sequence will reset so you can use HF again when it is off CD.

/castsequence reset=10 Holy Fire, Smite, Smite

OTOH, will wait 10 seconds after you cast HF and reset if you do not use the macro again (just like the other version). However, if you then cast smite the reset timer will start over, counting a new 10 seconds starting from the first Smite cast.
If it's just for 5mans you can easily get away with a castsequence macro to spam Atonement healing. Here's the macro I use on my Disc. I always have the tank targeted so I use targettarget instead of focus. I've found it's much easier to keep the tank targeted so you can easily cast a heal or shield when needed. You're also always attacking the tanks target with this method.
/castsequence [@target,harm][@targettarget,harm] reset=9 Holy Fire, Smite, Smite, Smite, Smite, Smite

Since Disc goes for minimal haste Smite won't be much faster than the default 1.5 sec cast time. Putting five Smite after Holy Fire accounts for 7.5 seconds of the cooldown. Penance is a 2 second cast that should also be cast on cooldown and has 10 second cooldown just like Holy Fire. Prayer of Mending and Divine Shield are also good to cast in the gap if those are needed.

For raiding I'd suggest using a modifier macro instead so you always have access to Holy Fire.
There is no use for a reset=N condition in a macro that is intended to be spammed (because the reset timer will be continually reset). Reset=combat is more likely to be useful.

reset=target would possibly be a little better.
No, then it would reset during combat when you switch targets and the CD on HF might not be up yet. If combat drops, you are likely to see the end of the HF CD before you are in combat again (on average there will be 5 seconds left).
I'm not a fan of reset=combat because even during 5mans there can be "oh $%@#" moments when you switch from Atonement to direct healing and shielding the party. There's also movement and other things that can come up. You'll want the macro to reset after a time limit so Holy Fire is first when go back to Atonement. It also lets you use Holy Fire on cooldown in case you're not able to do pure Atonement, but want to build or maintain Archangel stacks.
12/10/2012 02:08 AMPosted by Mitimem
even during 5mans there can be "oh $%@#" moments when you switch from Atonement to direct healing and shielding the party.
And reset=N will not help you with these moments, either. There is no such thing as an emergency during which you can wait 10 seconds to for the spell you want to become available.

If you find that you sometimes want to explicitly reset the sequence, then reset=shift (or another mod) will allow you to reset the sequence by mod-clicking it.

The only time reset=N is actually useful is in 2-spell sequences; because if you press the macro a second time before the reset timer elapses, it resets the timer. This only makes them useful if you might use the macro one (and only one) additional time during the reset timer.

Let's look at some situations using your example macro:

I want to use HF on Cooldown, but do not want to cast smite at all.
The macro will work as desired. You press it once, you cast HF; you do not press it again for 10 seconds and the macro resets. This is the ONLY possible situation in which your reset=N condition will bring HF up when its CD runs out.

I cast HF, then 3 seconds later I cast smite, then I do not touch the macro again until it resets.
The macro will reset 14.5 seconds (plus latency) after you cast your first HF. That is 4.5 seconds during which you could have cast HF, but you can't because your macro still says Smite. If you jump the gun a little (say you hit it at 13 seconds), you will then delay AGAIN the ability to cast HF for an additional 10 seconds (plus Smite cast time, plus latency), causing you to wait until 24.5 seconds after your first HF cast (in fact, if you use smite more frequently than every 10 seconds, the reset condition will never be met at all and you will cast all 5 smites before seeing HF again, possibly as much as 50 seconds later).

I spam the macro
After 5 smite casts (plus latency), almost 10 seconds will have passed. HF will come up on the macro shortly before its CD has expired, and the reset condition is never met; because the sequence completes while there is still 8.5 (minus latency) seconds left in the reset timer

So, we have 3 different situations; one of which will never see the reset condition at all, one of which will probably never see it and one (likely the rarest one in practice) that will make ideal use of it. The fact of the matter is you cannot accommodate that degree of variance in playstyle AT ALL with sequence macros; but if you are going to try; reset=N (by itself) is probably the worst possible reset condition to use. The ideal would be reset=combat/shift/N (someone verify my syntax for multiple reset conditions, please), which would automatically reset the sequence when you enter or leave combat, or after N seconds, or manually via the shift (or other) modifier.
In an emergency you'd want to pop Archangel, consuming the stacks. You'll be doing direct healing and shielding and won't be concerned about Atonement. If you use reset=9 the sequence will reset by the time you can go back to Atonement.

Reset=modifier is the only useful conditional you've suggested. Reset=combat is useless. As I said above, if you want to always have access to a spell then a modifier is the best choice.
#showtooltip Holy Fire
/castsequence reset=8 Shadow Word: Pain, Holy Fire, Smite, Smite, Smite, Penance
/cast Power Infusion

or, depending on your pref.

#showtooltip Holy Fire
/castsequence reset=8 Holy Fire, Smite, Smite, Smite, Smite, Penance
/cast Power Infusion

Should have glyp of Smite and glype of Holy Fire

Join the Conversation

Return to Forum