Some abilities in game have started to have a 2nd state of the spell after it is used once or certain conditions are met. Examples for Paladin:
Wake of Ashes → Hammer of Light
Templar Strike → Templar Slash
I have been trying to figure out macro commands to cast only the 2nd state of these abilities. For example
/cast Templar Slash
That particular example works as I would expect it and will in fact use Templar Slash, and will do nothing at all if it is not available. In fact the macro icon #showtooltip will just have the red ? until you do use Strike and Slash becomes available and then will have the correct icon visible. However the macro:
/cast Hammer of Light
Does not work, it never is useable even if you have used Wake of Ashes, you have 5 holy power, and it has been less than 12 seconds since you used Wake. I have tried a few other methods of trying to get this to work such as
/cast [known:Hammer of Light]
/cast [known:427453]
/cast [known:427453] Hammer of Light
/cast [SpellID:427453]
I have also used IDs 427441, 429826 just in case as those had the same tooltips for Hammer of Light.
Another example of this with a slightly different symptom is Shaman with Tempest
Lightning Bolt → Tempest
/cast Tempest
This “does” work, but only in the outside world, it does not work in an instance. Instead the macro tries to cast a version of the spell Tempest that no longer exists in the game but did exist years ago. I think it is trying to cast 157375 but want it to cast 454015.
Any tips on where I can look for solutions to these, or macro commands I may not be familiar with? Or is this something that the way these abilities are designed in game macros can not deal with them?
IsPlayerSpell() is the function that is closest to what the known conditional is used for.
Per the wiki:
Spells can be permanently or temporarily overridden by other spells as a result of procs, talents, or other spell mechanics, e.g.
Querying the base (replaced) spell will also return true if any of its overrides are currently active.
Querying an overriding spell may or may not return true even if that spell is currently known, depending on the particular spell.
Hammer of Light is likely one of the overrides that will return false even while it is currently active.
The problem with this one is actually the storm elemental talent, works fine in instances with fire elemental talented. Coincidentally, that spellid its trying to cast is the storm elementals tempest.
Was trying to look in to IsPlayerSpell() as I had never used that in a macro before. And looking in to it I think it might be an API command for a check, but I don’t think it can be used in a macro.
For tempest it looks like you are correct. Went to a target dummy (outside) and the macro was working just fine, but as soon as I summoned my storm elemental the macro tooltip changed to the elementals spell, and never went back… ever. So the macro stopped working from that point on. Even Reloadui would not make it go back, had to logout and back in.
I think both of these would be fixed if it was just allowed to /cast 427453 and that was it, but that isn’t recognized by macros. Just in case I also tried to do /use instead of /cast for all the previous versions I put in and none of those worked either. I wonder why Templar Slash works but Hammer of Light does not. I’m guessing it has to do with on the back end Templar’s was always an ability with 2 stages to it, and Hammer is a Hero talent that is added on to Wake of Ashes and so they are 2 different abilities rather than a single ability.
You can use the above function to test if the spell is being mutated but you can’t use that knowledge to change what spell you’re casting.
The actual spell for Tempest (Ele, Enh might be different) is 452201 and the correct implementation would be the following but the known condition doesn’t update in combat like that.
/cast [known:452201] Lighting Bolt; DEFAULT_SPELL
TLDR what you’re trying to accomplish isn’t possible afaik.
I had not thought of using the original spell name at the end of the command. For Hammer of Light that is working as I would expect it to. Thanks for that, will have to keep that in mind.
Tempest one is not working for me either. It just casts Lightning Bolt instead where as the macro for Templar Strike, and Hammer of Light, just does nothing when those spells are currently invalid. Which is what I would expect.
Gonna keep trying a few modifications if I can find or think of any why it might not be working for Tempest.
That one keeps the same storm elemental problem as before in that if you ever summon storm elemental, it will flag the known conditional as true. I also only tested it as elemental and not enhancement.