-
Lightning Link
-

Events
-


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

Conditions
-


(Ability being cast) Equal to Lightning Link
-
-

Actions
-


Set VariableSet LL_Index = (LL_Index + 1)
-


Unit Group - Add LL_Caster to LL_CastGroup
-


Set VariableSet LL_Caster = (Triggering unit)
-


Hashtable - Save Handle OfLL_Caster as 0 of (Key (Triggering unit).) in LL_Hash.
-


Set VariableSet LL_Loc1 = (Position of LL_Caster)
-


Hashtable - Save Handle OfLL_Loc1 as 1 of (Key (Triggering unit).) in LL_Hash.
-


Set VariableSet LL_Time = 100.00
-


Hashtable - Save LL_Time as 2 of (Key (Triggering unit).) in LL_Hash.
-


Set VariableSet LL_Damage = (Real((Level of Lightning Link for LL_Caster)))
-


Hashtable - Save LL_Damage as 3 of (Key (Triggering unit).) in LL_Hash.
-


Set VariableSet LL_UG = (Units within 625.00 of LL_Loc1 matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of LL_Caster).) Equal to True)).)
-


Unit Group - Pick every unit in LL_UG and do (Actions)
-



Loop - Actions
-




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





If - Conditions
-






((Picked unit) is A structure) Equal to False
-






((Picked unit) is Mechanical) Equal to False
-






((Picked unit) is Magic Immune) Equal to False
-






((Picked unit) is dead) Equal to False
-
-





Then - Actions
-






Hashtable - Save Handle OfLL_UG as 4 of (Key (Triggering unit).) in LL_Hash.
-






Set VariableSet LL_Target = (Picked unit)
-






Hashtable - Save Handle OfLL_Target as 5 of (Key (Triggering unit).) in LL_Hash.
-






Set VariableSet LL_Loc2 = (Position of LL_Target)
-






Hashtable - Save Handle OfLL_Loc2 as 6 of (Key (Triggering unit).) in LL_Hash.
-






Custom script: set udg_LL_Lightning = AddLightningEx("FORK", true , GetLocationX(udg_LL_Loc1), GetLocationY(udg_LL_Loc1), GetLocationZ(udg_LL_Loc1) + 70, GetLocationX(udg_LL_Loc2), GetLocationY(udg_LL_Loc2), GetLocationZ(udg_LL_Loc2) + 70)
-






Set VariableSet LL_Lightning = (Last created lightning effect)
-






Set VariableSet LL_Distance = (Distance between LL_Loc1 and LL_Loc2)
-






Hashtable - Save LL_Distance as 8 of (Key (Triggering unit).) in LL_Hash.
-






Hashtable - Save Handle OfLL_Lightning as 7 of (Key (Triggering unit).) in LL_Hash.
-






Lightning - Change color of LL_Lightning to (0.75 0.75 0.00) with 0.66 alpha
-






Custom script: call DestroyLightning (udg_LL_Lightning)
-
-





Else - Actions
-
-
-
-


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



If - Conditions
-




LL_Index Equal to 1
-
-



Then - Actions
-




Trigger - Turn on LL Loop <gen>
-
-



Else - Actions
-
-
-
-
LL Loop
-

Events
-


Time - Every 0.03 seconds of game time
-
-

Conditions
-

Actions
-


Unit Group - Pick every unit in LL_CastGroup and do (Actions)
-



Loop - Actions
-




Set VariableSet LL_Time = (Load 2 of (Key (Picked unit).) from LL_Hash.)
-




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





If - Conditions
-






LL_Time Greater than 0.00
-
-





Then - Actions
-






Hashtable - Save (LL_Time - 1.00) as 2 of (Key (Picked unit).) in LL_Hash.
-






Set VariableSet LL_Caster = (Load 0 of (Key (Picked unit).) in LL_Hash.)
-






Set VariableSet LL_Target = (Load 5 of (Key (Picked unit).) in LL_Hash.)
-






Set VariableSet LL_UG = (Load 4 of (Key (Picked unit).) in LL_Hash.)
-






Set VariableSet LL_Loc1 = (Load 1 of (Key (Picked unit).) in LL_Hash.)
-






Set VariableSet LL_Loc2 = (Load 6 of (Key (Picked unit).) in LL_Hash.)
-






Set VariableSet LL_Distance = (Load 8 of (Key (Picked unit).) from LL_Hash.)
-






Set VariableSet LL_Damage = (Load 3 of (Key (Picked unit).) from LL_Hash.)
-






Set VariableSet LL_Lightning = (Load 7 of (Key (Picked unit).) in LL_Hash.)
-






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







If - Conditions
-








LL_Distance Greater than 625.00
-
-







Then - Actions
-








Unit Group - Remove LL_Target from LL_UG.
-
-







Else - Actions
-
-






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







If - Conditions
-








(LL_Caster is dead) Equal to True
-
-







Then - Actions
-








Set VariableSet LL_Index = (LL_Index - 1)
-








Custom script: call DestroyLightning (udg_LL_Lightning)
-








Custom script: call DestroyGroup (udg_LL_UG)
-








Custom script: call RemoveLocation (udg_LL_Loc2)
-








Custom script: call RemoveLocation (udg_LL_Loc1)
-
-







Else - Actions
-
-






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







If - Conditions
-








(LL_Target is dead) Equal to True
-
-







Then - Actions
-








Unit Group - Remove LL_Target from LL_UG.
-








Game - Display to (All players) the text: (String((Number of units in LL_UG)))
-
-







Else - Actions
-
-






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







If - Conditions
-








(Number of units in LL_UG) Equal to 0
-
-







Then - Actions
-








Set VariableSet LL_Index = (LL_Index - 1)
-








Custom script: call DestroyGroup (udg_LL_UG)
-








Custom script: call DestroyLightning (udg_LL_Lightning)
-








Custom script: call RemoveLocation (udg_LL_Loc1)
-








Custom script: call RemoveLocation (udg_LL_Loc2)
-
-







Else - Actions
-
-






Unit Group - Pick every unit in LL_UG and do (Actions)
-







Loop - Actions
-








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









If - Conditions
-










((Picked unit) is A structure) Equal to False
-










((Picked unit) is Mechanical) Equal to False
-










((Picked unit) is Magic Immune) Equal to False
-










((Picked unit) is dead) Equal to False
-
-









Then - Actions
-










Set VariableSet LL_Loc1 = (Position of LL_Caster)
-










Set VariableSet LL_Target = (Picked unit)
-










Set VariableSet LL_Loc2 = (Position of LL_Target)
-










Unit - Cause LL_Caster to damage LL_Target, dealing LL_Damage damage of attack type Spells and damage type Magic
-










Custom script: set udg_LL_Lightning = AddLightningEx("FORK", true , GetLocationX(udg_LL_Loc1), GetLocationY(udg_LL_Loc1), GetLocationZ(udg_LL_Loc1) + 70, GetLocationX(udg_LL_Loc2), GetLocationY(udg_LL_Loc2), GetLocationZ(udg_LL_Loc2) + 70)
-










Set VariableSet LL_Lightning = (Last created lightning effect)
-










Lightning - Change color of LL_Lightning to (0.75 0.75 0.00) with 0.66 alpha
-










Custom script: call MoveLightningEx(udg_LL_Lightning , true, GetLocationX(udg_LL_Loc1), GetLocationY(udg_LL_Loc1), GetLocationZ(udg_LL_Loc1) + 70, GetLocationX(udg_LL_Loc2), GetLocationY(udg_LL_Loc2), GetLocationZ(udg_LL_Loc2) + 70)
-










Set VariableSet LL_Distance = (Distance between LL_Loc1 and LL_Loc2)
-
-









Else - Actions
-
-
-
-
-





Else - Actions
-






Custom script: call DestroyGroup (udg_LL_UG)
-






Custom script: call RemoveLocation (udg_LL_Loc1)
-






Custom script: call RemoveLocation (udg_LL_Loc2)
-






Custom script: call DestroyLightning (udg_LL_Lightning)
-






Set VariableSet LL_Index = (LL_Index - 1)
-
-
-
-
-


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



If - Conditions
-




LL_Index Equal to 0
-
-



Then - Actions
-




Trigger - Turn off (This trigger)
-
-



Else - Actions
-
-
-
I'm just gonna put my whole map here since it's in the very early days of progress.

