- Joined
- Feb 8, 2015
- Messages
- 93
I've made a trigger that, when a unit instant cast ability, will spawn wave after wave of outwards expanding circles from the point, much like rings formed after dropping something in water... Except with cool fiery explosions.
The trigger works without a fault, but to give it the slow, outwards ripple effect I use Waits in the looping. Now even if it's Wait Game-Time seconds, I've heard that the Wait action is best avoided altogether.
So my question is; is there a neat way to make this effect, but without waits?
The trigger works without a fault, but to give it the slow, outwards ripple effect I use Waits in the looping. Now even if it's Wait Game-Time seconds, I've heard that the Wait action is best avoided altogether.
So my question is; is there a neat way to make this effect, but without waits?
-
DBHero APOCALYPSE
-
Events
- Unit - A unit Starts the effect of an ability
-
Conditions
- (Ability being cast) Equal to Dragonblood: APOCALYPSE! (RedDraconR - Channel)
-
Actions
- Set Apoca_cast = (Triggering unit)
- Set Apoca_centerLoc = (Position of Apoca_cast)
- Set Apoca_dmg = ((25.00 + ((Real((Level of (Ability being cast) for Apoca_cast))) x 25.00)) + 0.00)
- Set Apoca_ang = 0.00
- Set Apoca_wavei = 8
- Set Apoca_dist = (1000.00 / (Real(Apoca_wavei)))
- -------- Wave Loop --------
-
For each (Integer A) from 1 to Apoca_wavei, do (Actions)
-
Loop - Actions
- Wait 0.35 game-time seconds
- Set Apoca_HitsPerWave = ((Integer A) x 5)
-
For each (Integer B) from 1 to Apoca_HitsPerWave, do (Actions)
-
Loop - Actions
- Set Apoca_ang = (Apoca_ang + (360.00 / (Real(Apoca_HitsPerWave))))
- Set Apoca_Tempp1 = (Apoca_centerLoc offset by (Apoca_dist x (Real((Integer A)))) towards Apoca_ang degrees)
- Special Effect - Create a special effect at Apoca_Tempp1 using Abilities\Spells\Human\MarkOfChaos\MarkOfChaosTarget.mdl
- Special Effect - Destroy (Last created special effect)
- Set Apoca_Tempug = (Units within 150.00 of Apoca_Tempp1 matching ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is dead) Equal to False) and ((((Matching unit) is An Ancient) Equal to False) and ((((Matching unit) is being transported) Equal to False
-
Unit Group - Pick every unit in Apoca_Tempug and do (Actions)
-
Loop - Actions
- Set Apoca_picked = (Picked unit)
- Unit - Cause Apoca_cast to damage Apoca_picked, dealing Apoca_dmg damage of attack type Spells and damage type Normal
-
Loop - Actions
- Custom script: call DestroyGroup(udg_Apoca_Tempug)
-
Loop - Actions
-
Loop - Actions
- -------- Cleaning --------
- Custom script: call RemoveLocation(udg_Apoca_Tempp1)
- Custom script: call RemoveLocation(udg_Apoca_centerLoc)
-
Events