One of the bigger headaches I've had is having to queue up maul while doing attacks. Maul is a huge part of the bear threat component - over 60% - so it's required when doing most tanking duties assuming you have enough rage. But it's not really useful to just press it separately from the other attacks. Most of the time I maul/swipe, maul/lacerate, and maul/mangle.
Except, of course, when I don't. When I absolutely need to not do this for whatever reason, such as me not wanting to do a lot of threat. In that case, most of the time I don't want to use maul at all, or I'll want to use it selectively.
I could add the following to make sure that I cast maul whenever I cast an attack:
/cast !maulThe exclamation is there to make sure you don't toggle it off if it's already on, so you can spam it. But then, I don't get the choice of doing maul or not. It'll always maul.
Okay, I can add modifiers:
/cast [modifier:shift] !maulor
/cast [nomodifier] !maulBut then I have to hold down a shift key while spamming the button anyway, which still involves two buttons. Bleh. Or hold down a button when I don't want to use it. Again, bleh.
What I'd like is to turn maul off for a duration of a fight, if I want. So that for some fight I could just maul to my heart's content, but for another I could choose to do it if I wanted. The problem here is that there's no capslock type of system. I can't just press a button and have it 'held' without programmable keyboards. What to do?
Well, if you're sarf from EJ, you hack the bastard instead and you write a macro that rewrites another macro. Which is a brilliant idea. I had to modify his initial crack at it and mine's not nearly as elegant, but it does work.
/run if not InCombatLockdown() then local i=GetMacroIndexByName ("Ma") local mt=GetMacroBody(i) local a=strlen(mt) local v="/cast Mangle" if a < 15 then mt=v.."\n/cast !Maul" else mt=v end local n,t,_,l=GetMacroInfo(i) EditMacro(i,n,t,mt,l,1) end
With the other macro called 'Ma' being this:
What this does is the following:
- checks to see whether you're in combat. (you can't modify macros in combat).
- Gets the macro that's called 'Ma'. This looks for a macro called Ma and grabs info about it. It's important that you have this macro already.
- gets the length of that macro
- if the length is smaller than the extended version, make the macro's text be:
- Otherwise, make it be:
- Then edit the macro 'Ma' to say whatever you said above.
Then, I had three sets of macros (Ma, La and Sw) and set up an associated modifier macro to change them for mangle, lacerate and swipe. So I can toggle all three of these abilities as I need to. Just change the parts above in bold from Ma and Mangle to La and Lacerate or Sw and Swipe. It's a total of 6 macros, which is not great. But it does work for exactly what I want it.
In practice I don't find myself toggling them all that much. For more threat-sensitive fights, I'll likely take lacerate off the automaul but not swipe and mangle. If it's imperative that I don't maul at all or I only maul when it's safe because of CC, I can take them all off and do it manually as before.
Sarf has said that if there's interest, he'd clean it up and make an addon that could toggle these things more easily and get around the 255 character limit, which would be ideal. But even so, this removes about half of the keystrokes I use normally, and makes me a happy druid. I don't know whether this will work precisely as well for warriors given that their swing speed is close to their GCD speed, but it might help some.