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
-
-
-
-
-