Here's another revision.
1) Blizzard's "flyable" boolean isn't working properly in some areas. For example, it tries to use my flying mount in Dalaran's "no fly" zones. So I changed the condition so that:
"no target + shift + click" = ground mount
"no target + click" = flying mount
That way I can manually choose. Note that it will only mount if you have no target. This is slightly more restrictive than the previous version which would mount with a friendly target as well.
2) I added a decurse line so I can just select a friendly and click the same macro to decurse them.
3) Added mirror image since it's not on the GCD. It goes nicely with this macro.
Code:
/dismount [mounted]
/cast [help] Remove Curse
/use [noexists, modifier:shift] Amani War Bear; [noexists] Swift Blue Gryphon
/stopmacro [noharm]
/use [modifier:shift] 13
/cast [modifier:shift] Icy Veins
/cast [modifier:shift] Mirror Image
/cast Frostbolt
It's not entirely obvious, but there are three types of targets in this macro:
- friendly (help)
- no target (noexists)
- hostile (the only other possibility if the first two conditions aren't true)
The stuff above "/stopmacro [noharm]" is for friendlies and no target. The [noharm] condition is true if and only if the target is friendly or there is no target, so that condition correctly stops the macro in both cases where you don't need to attack.