Originally Posted by
Albedo
I've read up on Affliction warlocks on Elitistjerks and as far as I know this should be a PERFECT rotation. They say on EJ that you should clip Drain Soul if a dot is missing so I've set it to do that.
2 macros. Spam Gnu.
In addition to what you wrote it also checks if you have the Life Tap buff from the glyph and checks your mana.
The priority in dots and stuff is also from EJ. Have fun
(THIS ONLY CLIPS DRAIN SOUL IF YOUR TARGET IS MISSING A BUFF, OTHERWISE IT DOESN'T CLIP )
Code:
Gnu
#showtooltip Haunt
/run if not UnitDebuff("target", "Haunt",unitCaster~="player") then (GetSpellCooldown("Haunt") == 0) (RunMacroText("/castsequence reset=2 Haunt, Corruption")) end
/run if not UnitDebuff("target", "Corruption",unitCaster~="player") then RunMacroText("/castsequence reset=2 Corruption, Unstable Affliction") end
/run if not UnitDebuff("target", "Unstable Affliction",unitCaster~="player") then RunMacroText("/castsequence reset=2 Unstable Affliction, Curse of Agony") end
/run if not UnitDebuff("target", "Curse of Agony",unitCaster~="player") then RunMacroText("/castsequence reset=2 Curse of Agony, Shadow Bolt") end
/run local s,_,_,_,_,_,_,_=UnitChannelInfo("player"); if( s~="Drain Soul" ) then RunMacro("Julegoder") end
Julegoder
#showtooltip Haunt
/run if not UnitBuff("player", "Life Tap") then CastSpellByName("Life Tap") end
/run if UnitPower("Player") < 3000 then CastSpellByName("Life Tap") end
/run if not UnitDebuff("target", "Haunt",unitCaster~="player") then (GetSpellCooldown("Haunt") == 0) (RunMacroText("/castsequence reset=2 Haunt, Corruption")) end
/run if not UnitDebuff("target", "Corruption",unitCaster~="player") then RunMacroText("/castsequence reset=2 Corruption, Unstable Affliction") end
/run if not UnitDebuff("target", "Unstable Affliction",unitCaster~="player") then RunMacroText("/castsequence reset=2 Unstable Affliction, Curse of Agony") end
/run if not UnitDebuff("target", "Curse of Agony",unitCaster~="player") then RunMacroText("/castsequence reset=2 Curse of Agony, Shadow Bolt") end
/run if (UnitHealth("target")/UnitHealthMax("target")<0.25) then CastSpellByName("Drain Soul") else CastSpellByName("Shadow Bolt") end