[B]Swirl Count[/B]
Events
Time - Every 0.01 seconds of game time
Conditions
Actions
For each (Integer Swirl) from 1 to 12, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
SwirlSlide[Swirl] Greater than 0
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
SwirlSlide[Swirl] Greater than 1
Then - Actions
Set SwirlLevel = SwirlLevel2[Swirl]
Set TempReal = (175.00 + (25.00 x (Real(SwirlLevel))))
Set SwirlGroup = (Units within (TempReal + 20.00) of SwirlPoint[Swirl] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy
Unit Group - Pick every unit in SwirlGroup and do (Actions)
Loop - Actions
Unit Group - Add (Picked unit) to EffectGroup[Swirl]
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Level of Lazer Attachment (+1) for (Picked unit)) Equal to 0
Then - Actions
Unit - Add Lazer Attachment (+1) to (Picked unit)
Else - Actions
Unit Group - Pick every unit in SwirlGroup and do (Actions)
Loop - Actions
Set TempLoc = (Position of (Picked unit))
Set TempAngle = ((Angle from SwirlPoint[Swirl] to TempLoc) - 5.00)
Set TempReal2 = (Distance between SwirlPoint[Swirl] and TempLoc)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
TempReal2 Greater than or equal to (TempReal - 10.00)
Then - Actions
Set TempLoc2 = (SwirlPoint[Swirl] offset by TempReal towards TempAngle degrees)
Else - Actions
Set TempLoc2 = (SwirlPoint[Swirl] offset by (TempReal2 + 10.00) towards TempAngle degrees)
Unit - Move (Picked unit) instantly to TempLoc2
Unit - Cause SwirlCaster[Swirl] to damage (Picked unit), dealing ((Real(SwirlLevel)) x (TempReal2 / 125.00)) damage of attack type Spells and damage type Magic
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Picked unit) has buff Slow) Equal to True
Then - Actions
Unit - Cause SwirlCaster[Swirl] to damage (Picked unit), dealing ((Real(SwirlLevel)) x (TempReal2 / 250.00)) damage of attack type Spells and damage type Magic
Else - Actions
Unit Group - Remove (Picked unit) from SwirlGroup
Custom script: call RemoveLocation (udg_TempLoc)
Custom script: call RemoveLocation (udg_TempLoc2)
Set SwirlSlide[Swirl] = (SwirlSlide[Swirl] - 1)
Custom script: call DestroyGroup( udg_SwirlGroup )
Else - Actions
[I]If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
And - All (Conditions) are true
Conditions
(SwirlCaster[Swirl] is alive) Equal to True
(Level of Focus Magic for SwirlCaster[Swirl]) Greater than 0
(ArcaneOrb[Swirl] is dead) Equal to True
Then - Actions
Set TempPoint = (Position of SwirlCaster[Swirl])
Set Integer = (Random integer number between 1 and 5)
Set TempInt = (Number of units in EffectGroup[Swirl])
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Integer Less than or equal to TempInt
Then - Actions
Unit Group - Add SwirlCaster[Swirl] to SpellProcGroup
Set ArcaneCooldown[Swirl] = 0
Unit - Create 1 Arcane Orb1 for (Owner of SwirlCaster[Swirl]) at TempPoint facing Default building facing degrees
Set ArcaneOrb[(Player number of (Owner of SwirlCaster[Swirl]))] = (Last created unit)
Unit - Add a 15.00 second Generic expiration timer to ArcaneOrb[(Player number of (Owner of SwirlCaster[Swirl]))]
Floating Text - Create floating text that reads Focus Magic! at TempPoint with Z offset 10.00, using font size 10.00, color (70.00%, 0.00%, 30.00%), and 0.00% transparency
Floating Text - Hide (Last created floating text) for (All players matching ((Matching player) Not equal to (Owner of SwirlCaster[Swirl])))
Floating Text - Change (Last created floating text): Disable permanence
Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
Floating Text - Change the fading age of (Last created floating text) to 0.00 seconds
Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees[/I]
Else - Actions
Custom script: call RemoveLocation (udg_TempPoint)
Else - Actions
Unit Group - Pick every unit in EffectGroup[Swirl] and do (Actions)
Loop - Actions
Unit - Cause SwirlCaster[Swirl] to damage (Picked unit), dealing 4.00 damage of attack type Spells and damage type Normal
Unit - Remove Lazer Attachment (+1) from (Picked unit)
Unit Group - Remove (Picked unit) from EffectGroup[Swirl]
Custom script: call DestroyGroup(udg_EffectGroup[udg_Swirl])
Custom script: call RemoveLocation (udg_SwirlPoint[udg_Swirl])
Set SwirlSlide[Swirl] = 0
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
And - All (Conditions) are true
Conditions
SwirlSlide[1] Equal to 0
SwirlSlide[2] Equal to 0
SwirlSlide[3] Equal to 0
SwirlSlide[4] Equal to 0
SwirlSlide[5] Equal to 0
SwirlSlide[6] Equal to 0
SwirlSlide[7] Equal to 0
SwirlSlide[8] Equal to 0
SwirlSlide[9] Equal to 0
SwirlSlide[10] Equal to 0
SwirlSlide[11] Equal to 0
SwirlSlide[12] Equal to 0
Then - Actions
Trigger - Turn off (This trigger)
Game - Display to (All players) the text: off
Skip remaining actions
Else - Actions