Plasma Grenade
-
Grenade Cast
-

Events
-


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

Conditions
-


(Ability being cast) Equal to Plasma Grenade
-
-

Actions
-


Sound - Play mm_incoming <gen> at 100.00% volume, attached to (Casting unit)
-


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



If - Conditions
-




G_Skip Equal to 0
-
-



Then - Actions
-




Trigger - Turn on Grenade Loop <gen>
-
-



Else - Actions
-
-


Set G_Times = (G_Times + 1)
-


Set G_Skip = (G_Skip + 1)
-


Set G_Off[G_Times] = True
-


-------- Caster/Point Configuration --------
-


Set G_Caster[G_Times] = (Casting unit)
-


Set G_Level[G_Times] = (Level of Plasma Grenade for G_Caster[G_Times])
-


Set G_Damage[G_Times] = 7000.00
-


Set G_Point[0] = (Position of G_Caster[G_Times])
-


Set G_Point[1] = (Target point of ability being cast)
-


-------- Grenade Stats Configuration --------
-


Set G_Angle[G_Times] = (Angle from G_Point[0] to G_Point[1])
-


Set G_AoeSelect[G_Times] = 120.00
-


Set G_AoeFinal[G_Times] = 350.00
-


Set G_Distance[G_Times] = 1500.00
-


Set G_Fly[G_Times] = 0
-


Set G_Height[G_Times] = 200.00
-


Set G_Speed[G_Times] = 20.00
-


-------- Grenade Creation --------
-


Unit - Create 1 Grenade Dummy for (Owner of G_Caster[G_Times]) at G_Point[0] facing G_Angle[G_Times] degrees
-


Set G_Dummy[G_Times] = (Last created unit)
-


Unit - Add Crow Form to G_Dummy[G_Times]
-


Unit - Remove Crow Form from G_Dummy[G_Times]
-


-------- Leak Cleanup --------
-


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


Custom script: call RemoveLocation(udg_G_Point[1])
-
-
-
Grenade Loop
-

Events
-


Time - Every 0.02 seconds of game time
-
-

Conditions
-

Actions
-


For each (Integer G) from 1 to G_Times, do (Actions)
-



Loop - Actions
-




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





If - Conditions
-






G_Off[G] Equal to True
-
-





Then - Actions
-






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







If - Conditions
-








G_Distance[G] Less than or equal to 0.00
-
-







Then - Actions
-








Set G_Point[2] = (Position of G_Dummy[G])
-








Special Effect - Create a special effect at G_Point[2] using war3mapImported\NewMassiveEX.mdx
-








Special Effect - Destroy (Last created special effect)
-








Special Effect - Create a special effect at G_Point[2] using war3mapImported\NewGroundEX.mdx
-








Special Effect - Destroy (Last created special effect)
-








Unit - Remove G_Dummy[G] from the game
-








Set G_Group[G] = (Units within G_AoeFinal[G] of G_Point[2] matching ((((Matching unit) belongs to an ally of (Owner of G_Caster[G])) Equal to False) and ((((Matching unit) is dead) Equal to False) and (((Matching unit) is Magic Immune) Equal to False))))
-








Unit Group - Pick every unit in G_Group[G] and do (Actions)
-









Loop - Actions
-










Unit - Cause G_Caster[G] to damage (Picked unit), dealing G_Damage[G] damage of attack type Siege and damage type Demolition
-
-
-








Set G_Skip = (G_Skip - 1)
-








Set G_Off[G] = False
-








Custom script: call DestroyGroup(udg_G_Group[udg_G])
-








Custom script: call RemoveLocation(udg_G_Point[2])
-








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









If - Conditions
-










G_Skip Equal to 0
-
-









Then - Actions
-










Set G_Times = 0
-










Trigger - Turn off Grenade Loop <gen>
-
-









Else - Actions
-
-
-







Else - Actions
-








Set G_Distance[G] = (G_Distance[G] - G_Speed[G])
-








Set G_Point[3] = (Position of G_Dummy[G])
-








Set G_Point[4] = (G_Point[3] offset by G_Speed[G] towards G_Angle[G] degrees)
-








Unit - Move G_Dummy[G] instantly to G_Point[4]
-








Set G_ExGroup[G] = (Units within G_AoeSelect[G] of G_Point[4] matching ((((Matching unit) belongs to an ally of (Owner of G_Caster[G])) Equal to False) and ((((Matching unit) is dead) Equal to False) and (((Matching unit) is Magic Immune) Equal to False))))
-








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









If - Conditions
-










Or - Any (Conditions) are true
-











Conditions
-












(Terrain pathing at G_Point[4] of type Walkability is off) Equal to True
-












(Number of units in G_ExGroup[G]) Greater than 0
-
-
-
-









Then - Actions
-










Set G_Distance[G] = 0.00
-
-









Else - Actions
-
-








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









If - Conditions
-










G_Fly[G] Equal to 0
-
-









Then - Actions
-










Set G_Height[G] = (G_Height[G] - 10.00)
-










Animation - Change G_Dummy[G] flying height to G_Height[G] at 0.00
-
-









Else - Actions
-










Set G_Height[G] = (G_Height[G] + 10.00)
-










Animation - Change G_Dummy[G] flying height to G_Height[G] at 0.00
-
-
-








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









If - Conditions
-










G_Height[G] Less than or equal to 0.00
-
-









Then - Actions
-










Set G_Fly[G] = 1
-










Special Effect - Create a special effect at G_Point[4] using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
-










Special Effect - Destroy (Last created special effect)
-
-









Else - Actions
-
-








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









If - Conditions
-










G_Height[G] Greater than or equal to 150.00
-
-









Then - Actions
-










Set G_Fly[G] = 0
-
-









Else - Actions
-
-








Custom script: call RemoveLocation(udg_G_Point[3])
-








Custom script: call RemoveLocation(udg_G_Point[4])
-








Custom script: call DestroyGroup(udg_G_ExGroup[udg_G])
-
-
-
-





Else - Actions
-
-
-
-
-
