Squeekems
S
Squeekems
I have tried looking up an ability like this. I figured it was a common idea, but the closest ability I can find is a Slide ability.
Edit: What the ability does: Deal damage to all enemies in a circle and slide them away
This is working. I am posting it here because I am awful at optimizing hashtables. I am hoping someone can look over the triggers real quick and give me some tips on how to do things more efficiently.
Also, I am not entirely convinced I made it MUI, but I think I did? Haha.
Edit: What the ability does: Deal damage to all enemies in a circle and slide them away
This is working. I am posting it here because I am awful at optimizing hashtables. I am hoping someone can look over the triggers real quick and give me some tips on how to do things more efficiently.
Also, I am not entirely convinced I made it MUI, but I think I did? Haha.
-
Explosive Wave
-

Events
-


Unit - A unit Starts the effect of an ability
-
-

Conditions
-


(Ability being cast) Equal to Explosive Wave
-
-

Actions
-


Set VariableSet intCastedExplosiveWave = (intCastedExplosiveWave + 1)
-


Set VariableSet keyCastedExplosiveWave[intCastedExplosiveWave] = (Key (Triggering unit).)
-


Hashtable - Save Handle Of(Position of (Triggering unit)) as 0 of keyCastedExplosiveWave[intCastedExplosiveWave] in hashExplosiveWave.
-


Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius 300.00 at (Load 0 of keyCastedExplosiveWave[intCastedExplosiveWave] in hashExplosiveWave.), dealing (25.00 + ((Real((Level of Explosive Wave for (Triggering unit)))) x 50.00)) damage of attack type Spells and damage type Normal
-


Hashtable - Save Handle Of(Units within 300.00 of (Load 0 of keyCastedExplosiveWave[intCastedExplosiveWave] in hashExplosiveWave.) matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of (Triggering unit)).) Equal to True)).) as 1 of keyCastedExplosiveWave[intCastedExplosiveWave] in hashExplosiveWave.
-


Unit Group - Pick every unit in (Load 0 of keyCastedExplosiveWave[intCastedExplosiveWave] in hashExplosiveWave.) and do (Actions)
-



Loop - Actions
-




Unit - Pause (Picked unit)
-
-
-


Trigger - Turn on Explosive Wave Effect <gen>
-
-
-
Explosive Wave Effect
-

Events
-


Time - Every 0.03 seconds of game time
-
-

Conditions
-

Actions
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




intCastedExplosiveWave Less than or equal to 0
-
-



Then - Actions
-




Trigger - Turn off (This trigger)
-
-



Else - Actions
-




For each (Integer A) from 1 to intCastedExplosiveWave, do (Actions)
-





Loop - Actions
-






Set VariableSet intExplosiveWaveClock[(Integer A)] = (intExplosiveWaveClock[(Integer A)] + 1)
-






Unit Group - Pick every unit in (Load 1 of keyCastedExplosiveWave[(Integer A)] in hashExplosiveWave.) and do (Actions)
-







Loop - Actions
-








Set VariableSet tempLocation[0] = (Position of (Picked unit))
-








Set VariableSet tempLocation[0] = (tempLocation[0] offset by 16.00 towards (Angle from (Load 0 of keyCastedExplosiveWave[(Integer A)] in hashExplosiveWave.) to (Position of (Picked unit))) degrees.)
-








Unit - Move (Picked unit) instantly to tempLocation[0]
-
-
-






If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-







If - Conditions
-








intExplosiveWaveClock[(Integer A)] Equal to 18
-
-







Then - Actions
-








Unit Group - Pick every unit in (Load 1 of keyCastedExplosiveWave[(Integer A)] in hashExplosiveWave.) and do (Actions)
-









Loop - Actions
-










Unit - Unpause (Picked unit)
-
-
-








Set VariableSet tempLocation[0] = (Load 0 of keyCastedExplosiveWave[(Integer A)] in hashExplosiveWave.)
-








Set VariableSet tempGroup = (Load 1 of keyCastedExplosiveWave[(Integer A)] in hashExplosiveWave.)
-








Hashtable - Clear all child hashtables of child keyCastedExplosiveWave[(Integer A)] in hashExplosiveWave.
-








For each (Integer B) from 2 to intCastedExplosiveWave, do (Actions)
-









Loop - Actions
-










Set VariableSet keyCastedExplosiveWave[(Integer A)] = keyCastedExplosiveWave[(Integer B)]
-










Set VariableSet intExplosiveWaveClock[(Integer A)] = intExplosiveWaveClock[(Integer B)]
-
-
-








Set VariableSet intExplosiveWaveClock[(Integer A)] = 0
-








Set VariableSet intCastedExplosiveWave = (intCastedExplosiveWave - 1)
-
-







Else - Actions
-
-
-
-
-
-


Custom script: call RemoveLocation(udg_tempLocation[0])
-


Custom script: call DestroyGroup(udg_tempGroup)
-
-

