Saturday, April 18, 2009

OMG troll shaman macros

So shaman talents are all about the 3 minute cooldown of the "buff this tree". Using these effectively is augmentedcomplicated by playing a Troll with the Berserking racial, which is right on up there with "combat regen" as the best racial in the original game.

Elemental.
Blizzard has chosen, again, to rework Elemental Mastery. Pre 3.1, it gave a 30-second or so buff to Critical Spell chance with a 3 minute cooldown. As such I macro'd it along with Berserking (which is also a 3-minute cooldown) in to Lightning Bolt and Chain Lightning:
#showtooltip Lightning Bolt
/script UIErrorsFrame:UnregisterEvent("UI_ERROR_MESSAGE");
/cast Elemental Mastery
/cast Berserking
/script UIErrorsFrame:RegisterEvent("UI_ERROR_MESSAGE");
/cast Lightning Bolt

But now in 3.1, Ele Mastery has been changed to a pure Elemental perversion of Nature's Swiftness (NS), a spell for restoration Druids and Shaman to insta-cast the next Nature spell. The new Ele Mastery does that for Shaman damage spells, with a 15-second crit buff. So first of all, it needs to go in front of Lava Burst. Or does it? Back to that in a minute.

Just because the spell is now insta-cast doesn't mean it's off the 1.5 second GCD. And Berserking is only a 10-second haste buff. I for one am really not feeling like sitting here watching the spell button spinners count down the GCD for 15% of the time Berserking is up. So that macro up there, which is guaranteed to waste 15% of the Berserking buff, has got to go.

So. Thinking about it, one way to make sure I'm not doing that, is to use a cast sequence:
#showtooltip Lightning Bolt
/script UIErrorsFrame:UnregisterEvent("UI_ERROR_MESSAGE");
/castsequence Elemental Mastery, Berserking
/script UIErrorsFrame:RegisterEvent("UI_ERROR_MESSAGE");
/cast Lightning Bolt

Even if I do this with multiple macros, like Lava Burst and Lightning Bolt, this is what will happen (not counting any haste, lag, or spell travel time):
Ele Mastery (0) -> LvB (0) -> LB (2.0) -> Berserk (2.0) -> LB (4.0) -> LB (6.0) -> LvB
(ok, lag will mean I can't get more than 3 LBs in there although IN theory more can fit.)

Let's go back to the question of adding the Ele Mastery in front of Lava Burst. What will this do? It will mean the damage is dealt at the beginning of the GCD for the spell, instead of at the end, which will make a difference once every 3 minutes under two possible conditions:
  • Flame Shock almost expiring
  • boss is about to die in 2 seconds and I want an extra 10K damage in my WWS!!!
Other than that, it means I've possibly used 10% of the crit chance buff time (the GCD, again) casting a spell that's going to crit anyhow. ("Possibly?" well during the 15 seconds of the Ele Mastery buff there will be one Lava Burst and maybe two. If Ele Master procs off a Lava Burst macro, I will always have two.) OTOH if all the macros don't have a castsequence I could get into some sort of mess.

Hmm, "some sort of mess" isn't very quantitative. My thought is that such a "mess" is possible anyhow since they are cast sequences across multiple macros. Anyhow here they are, and I can either mull over whether to use the Lava Burst macro, or try it against a target dummy, or get four tolerant friends to hit some dungeons with me. Kuan has been mostly hanging out in the target dummy area all week.
#showtooltip Lava Burst
/stopmacro [nocombat,noharm]
/script UIErrorsFrame:UnregisterEvent("UI_ERROR_MESSAGE");
/castsequence reset=15 Elemental Mastery, Berserking
/script UIErrorsFrame:RegisterEvent("UI_ERROR_MESSAGE");
/cast Lava Burst

#showtooltip Lightning Bolt
/stopmacro [nocombat,noharm]
/script UIErrorsFrame:UnregisterEvent("UI_ERROR_MESSAGE");
/castsequence reset=15 Elemental Mastery, Berserking
/script UIErrorsFrame:RegisterEvent("UI_ERROR_MESSAGE");
/cast Lightning Bolt

#showtooltip Chain Lightning
/stopmacro [nocombat,noharm]
/castsequence reset=15 Elemental Mastery, Berserking
/castsequence reset=4 Chain Lightning, Lightning Bolt, Lightning Bolt

I am sad that I lose nuking the error message spam off this last one. But it's too long otherwise, and getting this to do the right thing is more important than nuking all the red spam I don't read until I'm trying to figure out why the spells stopped coming and glance at it to see a stun/silence/oom message.

Restoration.
Since I haven't played with a lot of points in the Restoration tree in many many months, and never enough to Main Heal Heroics at level, I needed to evaluate everything for the macros. Actually I went resto first, when messing with them.

The macros follow a lot of this same reasoning above, but here in healer-land the considerations are slightly different, since the effects of Ele Mastery from a Resto perspective are split between NS and Tidal Force (TF). However TF is a 20 second buff, and I want it to proc whenever it can. The problem to solve is that I still don't want Berserking wasted, waiting for an NS 1.5 second GCD.

Anyhow here they are.
#showtooltip Healing Wave
/stopmacro [nocombat]
/script UIErrorsFrame:UnregisterEvent("UI_ERROR_MESSAGE");
/cast Tidal Force
/castsequence Nature's Swiftness, Berserking
/script UIErrorsFrame:RegisterEvent("UI_ERROR_MESSAGE");
/cast Healing Wave

#showtooltip Chain Heal
/stopmacro [nocombat]
/script UIErrorsFrame:UnregisterEvent("UI_ERROR_MESSAGE");
/cast Tidal Force
/castsequence Nature's Swiftness, Berserking
/script UIErrorsFrame:RegisterEvent("UI_ERROR_MESSAGE");
/cast Chain Heal

#showtooltip Lesser Healing Wave
/stopmacro [nocombat]
/script UIErrorsFrame:UnregisterEvent("UI_ERROR_MESSAGE");
/cast Tidal Force
/script UIErrorsFrame:RegisterEvent("UI_ERROR_MESSAGE");
/cast Lesser Healing Wave

I'll be popping these into Kuan's macros when I log in next, and moving buttons around. These will only be testable by running instances, as there isn't much damage the training dummies do back.

1 comment:

Anonymous said...

I just wanted to say- Thanks for spilling it on this page- I threw in a /use potion of speed into the mix as well.

Thanks again