Charge macro help

There’s a macro jesus out here that has helped me plenty of times before. So I’m putting out the batsignal for him once again.

In SoD with warbringer you can charge/intercept/intervene from any stance. I like them all on the same hotkey in each stance, but in SoD that doesn’t really work. So I’ve settled for a shift modifier for intercept.

Got it mostly working, just wondering if the last use-case is possible, and also wondering if there is a cleaner way to make this macro.

/cast [mod:shift,harm,nodead] Intercept;[harm,nodead,nomod] Charge;[@mouseover,exist,help] Intervene; [@target,help,nodead] Intervene

It does everything I want it to - except when I have an enemy target and I want to intervene their friendly target and/or intervene my mouseover target if they are friendly.
I’m pretty sure it’s impossible since the first functions will conflict. I’m trying to settle for the first functions failing because they are on CD or reading the macro in order and trying that last - but I know logic that checks for CDs is TOS.

Just move the intervenes to the front of the cast list. Also, the conditional is exists and not exist, and is unnecessary if you’re also using harm/help in the same conditional.

Elvenbane might make this better

/cast [@mouseover,help,nodead][help] Intervene; [mod:shift,harm] Intercept; Charge

though I guess we can move intercept first, since if you’re holding shift and targeting an enemy you probably want to intercept. in case you have a friendly moused over on accident.

/cast [mod:shift,harm] Intercept; [@mouseover,help,nodead][help] Intervene; Charge

k, i’ll try that, ty.
Currently if im holding shift or not it will still intervene a friendly target or a friendly mouseover if no enemy is targetted. Is there any problems you’d see with that? (just still tryna find a friend to test on with enemies nearby).

Edit*
ok. this works slightly differently, but I think it’s better than what I had.

Can drop the harm from Intercept so it shows when you hit shift regardless of your target.

#showtooltip
/cast [mod:shift] Intercept; [@mouseover,help,nodead] [help] Intervene; Charge