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
-
If - Conditions
- 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])
-
Events
-
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
-
Loop - Actions
- 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
-
If - Conditions
-
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
-
Conditions
-
Or - Any (Conditions) are true
-
Then - Actions
- Set G_Distance[G] = 0.00
- Else - Actions
-
If - Conditions
-
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 - Conditions
-
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 - Conditions
-
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
-
If - Conditions
- 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])
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
For each (Integer G) from 1 to G_Times, do (Actions)
-
Events