Rewriting your order of operations into the order you want it to execute in:
- Cast Cleanse Spirit on my current ally target
- Cast Cleanse Spirit on me if I don’t have any target - You can’t test against a different unit than the one you’re attempting to cast on. Also,
@player
always exists therefore the macro will never advance past this point. - Cast Wind Shear on my current enemy focus if I have one
- Cast Wind Shear on my current enemy target
In general for help/harm macros you’ll want to use this as your starting point:
TLDR: Tink’s macro is as close as you can get to desired behavior. Personally I’d drop the nodead
from the non-focus condition sets; you’ve gone out of your way to target them, if they’re dead let it error rather than casting on a random target, especially for a critical ability with a CD like Cleanse Spirit.