Getting to this a little late, but here is some info.
Whirlwind is an AbilityStatus so either AbilityStatus('Primary') or AbiliatyStatus('Secondary'). Here are a couple snippets i use for working with special abilities.
function have_ability(name){
return Orion.Contains(Orion.GetCurrentAbilityNames(), name);
}
function ability_status(name){
const abilities = Orion.GetCurrentAbilityNames();
if(Orion.AbilityStatus('Primary') && abilities[0].match(new RegExp(name, 'i')))
return true;
else if(Orion.AbilityStatus('Secondary') && abilities[1].match(new RegExp(name, 'i')))
return true;
else
return false;
}
function use_ability(name){
const abilities = Orion.GetCurrentAbilityNames();
const primary = Orion.AbilityStatus('Primary');
const secondary = Orion.AbilityStatus('Secondary');
const regex = new RegExp(name, 'i');
if(abilities[0].match(regex) && !primary){
Orion.SetTimer('ability', 500);
Orion.UseAbility('Primary', true);
Orion.Wait(200);
} else if(abilities[1].match(regex) && !secondary){
Orion.SetTimer('ability', 500);
Orion.UseAbility('Secondary', true);
Orion.Wait(200);
} else {
return false;
}
}
I set a timer when using an ability so i can calculate the mana cost of abilities, since if you use an ability within 3 seconds of another ability, the cost is doubled.