My approach to this would be as follows:
- Have an ability through which you would change the auras
- Create X non-hero aura abilities. Anytime you use the 'Change Aura' ability, it would cycle through one of these non-hero aura abilities
- Create an Ability Code array in the trigger editor
- Create trigger that fires on map initialization and populates the array from previous step with the non-hero aura abilities
- Create integer variables that keep track of current active aura (CurrentAuraIndex) and the other that contains the total number of auras you populated the array with (MaxAuraIndex)
- Create a trigger that detects when 'Change Aura' ability has been cast. In that trigger, increase the number of CurrentAuraIndex
- Finally, in the trigger, remove the previous ability, add the new ability and set the new ability as enabled, but hidden in UI
Here is an example with 3 auras:
-
Map Initialization
-

Events
-

Conditions
-

Actions
-


Set VariableSet ChangeAuraSpells[1] = Command Aura (Custom)
-


Set VariableSet ChangeAuraSpells[2] = Devotion Aura (Custom)
-


Set VariableSet ChangeAuraSpells[3] = Thorns Aura (Custom)
-


Set VariableSet CurrentAuraIndex = 0
-


Set VariableSet MaxAuraIndex = 3
-
Change Aura
-

Events
-


Unit - A unit Starts the effect of an ability
-

Conditions
-


(Ability being cast) Equal to Change Aura
-

Actions
-


Unit - Remove ChangeAuraSpells[CurrentAuraIndex] from (Triggering unit)
-


Set VariableSet CurrentAuraIndex = ((CurrentAuraIndex mod MaxAuraIndex) + 1)
-


Unit - Add ChangeAuraSpells[CurrentAuraIndex] to (Triggering unit)
-


Unit - For (Triggering unit), Ability ChangeAuraSpells[CurrentAuraIndex], Disable ability: False, Hide UI: True
Note that the 'Math - Modulo' operation is used here to cycle the value between 1 and 3 (= matching the index range in ChangeAuraSpells[] array)
Variables:
- ChangeAuraSpells: Ability Code (with Array checkbox ticked)
- CurrentAuraIndex: integer
- MaxAuraIndex: integer
Note2: The example I posted will work fine only if there is a single unit using this spell. If you want more units to use it, you would need to change the CurrentAuraIndex variable into array or use a unit indexer or hashtable to keep track of the current aura index for each unit