1. Are you planning to upload your awesome map to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still haven't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. Ride into the sunset with the 32nd Modeling Contest. The contest is optionally paired. Best of luck, people!
    Dismiss Notice
  5. This adventure has come to an end. Congratulate our heroes in the 16th Mini Mapping Contest Results.
    Dismiss Notice
  6. From the gates of hell, the 5th Special Effect Contest Results have emerged.
    Dismiss Notice
  7. Race against the odds and Reforge, Don't Refund. The 14th Techtree Contest has begun!
    Dismiss Notice
  8. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Trigger Viewer

BDPmap16v0.018.w3x
Variables
Initialization
Initial Settings Cin
Explosion Test
Test spells
Explosion Test Copy
Music trigs
Music Open Portal INITIAL
Music Open portal trigger
Music war trigger
Music Legion trigger
Cinematic
Delete Units Portal
Sent to Delete
Start Cin
Scene One
Scene Two
Scene Three
Scene Four
Scene Five
Scene Six
Alternate Altar
Human
Horde Unit Spells
Shredder
Rexxar
Rexxar Spells Earth Fury
Earth Fury
Grom
Grom Spells Agile
ReadMe
AgileConfig
AgileAbilityCast
AgileTime
Teron
Dentarg
Fenris
Tagar
Danath
Danath Spells Battle Focus
Init Copy 2
Battle Focus
Battle Focus Loop
Kurdan
Kurdan Spells Lightning Field
Preload SF
Static Field
Lightning Fade
Turalyon
Turalyon Spells Hammer of Thor
|ZZZZZZZZZZZZZZZZZZZZZZ|
|ZZZZZZZ| README |ZZZZZZZ|
Hammer of Thor
Hammer of Thor Move Up Down
Hammer of Thor Lightning Move
Hammer of Thor Slam
Hammer of Thor Up
Hammer of Thor Stun
|ZZZZZZZZZZZZZZZZZZZZZZ|
Hammer of Thor Hash
Melee Initialization Copy
Unit Indexer System ( Bribe )
---------------------------
Unit Indexer
---------------------------
Khadgar
Khadgar Spells Telekinesis
Initial Telekinesis GUI
Telekinesis GUI
Antonidas
Extra
Rexxar Spells Assassin Aura
AA Preload
AA Effect
system
init
event
prepare
Enter map-specific custom script code below. This text will be included in the map script after variables are declared and before any trigger code.

		
Name Type Is Array Initial Value
A_AoE real No
A_Bool boolean No
A_Damage real No
A_Duration real No
A_Int integer No
A_Real real No
A_Real2 real No
A_Speed real No
A_UType unitcode No
AA_A_Group group No
AA_Cstr_Group group No
AA_E_HP real No
AA_HPcount real No
AA_Loc location Yes
AA_Percent real Yes
AA_PreLoop integervar No
Absolaoe real No
AbsolBoolean1 boolean No
AbsolBoolean2 boolean No
AbsolBoolean3 boolean No
AbsolBoolean4 boolean No
AbsolCast unit No
AbsolCnt integer No
AbsolCol real No
AbsolDamg real No
AbsolDestroy boolean No
AbsolDummy unit No
AbsolDummy2 unit No
AbsolGroup group No
AbsolGroupTARGET group No
AbsolId integer No
AbsolINTEGER integer No
AbsolLightningId integer No
AbsolLoop integervar No
AbsolMax integer No
AbsolMaxBound integer No
AbsolPlayer player No
AbsolREAL real No
AbsolRealHeightUp real No
AbsolTrigger integer No
AbsolUnitInteger integer No
Agile_AoE real No
AgileAbility abilcode No
AgileAmount integer Yes
AgileCasters unit Yes
AgileCasterSE effect Yes
AgileDamage integer No
AgileDamageArea location No
AgileDamageEnemy group No
AgileDamagePercent real No
AgileDamageSize integer No
AgileEnemies unit No
Agileindex integer Yes
Agileindex_max_size integer No
Agileindex_size integer No
AgileInteger integer No
AgileLevel integer No
AgileLoop integervar No
AgileRAmount integer No
AgileRTime integer No
AgileSFX1 string No
AgileSFX1_AP string No
AgileSFX2 string No
AgileSFX2_AP string No
AgileSFX3 string No
AgileSFX3_Ap string No
AgileTime integer Yes
AH1 real No
AH2 real No
AH3 real No
AL lightning No
ALT lightningtype No
Amount real No
Angle_setter real No
AP location No
AP2 location No
AP3 location No
Aqua_Burst_Ability_Level integer No
Aqua_Burst_Area_of_Effect real No
Aqua_Burst_Base_Damage real No
Aqua_Burst_Caster unit No
Aqua_Burst_Damage_Group group No
Aqua_Burst_Location location No
Aqua_Burst_Total_Damage real No
AR_Point location No
AS integervar No
AS_Angle real Yes
AS_Animation real No
AS_Defense_fake integer Yes
AS_Distance real Yes
AS_Equation real Yes
AS_FLY real Yes
AS_Formula real Yes
AS_Group group Yes
AS_Hero unit Yes
AS_Max_Height real Yes
AS_Off boolean Yes
AS_Point location Yes
AS_Skip integer No
AS_Special effect Yes
AS_Speed real Yes
AS_Stable_Distance real Yes
AS_Times integer No
AS_X_Special effect Yes
ASAOE real No
ASCaster unit No
ASCasterGroup group No
ASCasterPoint location No
ASDamage real No
ASDamageGroup group No
ASExplosion unit No
ASHashtable hashtable No
ASPlayer player No
ASRandomGroup group No
ASRay unit No
ASRayFly real No
ASTarget unit No
ASTargetPoint location No
ASTime real No
BB integervar No
BB2 integervar No
BB_Angle real Yes
BB_Attacked unit No
BB_Caster unit Yes
BB_Casting unit Yes
BB_CastNumber integer No
BB_Chance integer No
BB_Damage real Yes
BB_Distance real Yes
BB_Expire integer Yes
BB_Group group No
BB_Height real Yes
BB_LEVEL integer No
BB_Loop integervar No
BB_Missile unit Yes
BB_Off boolean Yes
BB_Point location Yes
BB_Real_Damage_Spam integer Yes
BB_Skip integer No
BB_Speed real Yes
BB_Switch integer No
BB_Targ unit Yes
BB_Times integer No
BB_Up boolean Yes
Beast_Attack_Ability_Level integer No
Beast_Attack_Atribute integer No
Beast_Attack_Atribute_Damage real No
Beast_Attack_Caster unit No
Beast_Attack_Damage_Splitter integer No
Beast_Attack_Life_Damage real No
Beast_Attack_Location location No
Beast_Attack_Location2 location No
Beast_Attack_Max_Life real No
Beast_Attack_Target unit No
Beast_Attack_Total_Damage real No
BFAbility abilcode Yes
BFAura unit Yes
BFAura2 unit Yes
BFAura3 unit Yes
BFCaster unit Yes
BFCasterAbility abilcode Yes
BFCount integer No
BFGroup group Yes
BFHas boolean Yes
BFIndex integer No
BFInteger integervar No
BFLastRecycled integer No
BFMax integer No
BFRecycledList integer Yes
BFTimer real Yes
BlazeCaster unit Yes
BlazeDuration real Yes
BlazeIndexsize integer No
BlazeInteger integer Yes
BlazeLoop integervar No
BlazeMaxsize integer No
BlazePoint location No
BlazeTemp integer No
browngroup group No
Caster unit No
CE_Ability_Level integer No
CE_Area_of_Effect real No
CE_Base_Damage real No
CE_Caster unit No
CE_Damage_Group group No
CE_Destroy_Trees boolean No
CE_Knock_Angle real No
CE_Knock_Distance real No
CE_Knock_Group group No
CE_Knock_Loc1 location No
CE_Knock_Loc2 location No
CE_Knock_Speed real No
CE_Knocktable hashtable No
CE_Location location No
CE_Location2 location No
CE_Pathing_On boolean No
CE_Special_Effect effect No
CE_Special_Effect1 effect No
CE_Total_Damage real No
Currant_intstances integer No
DDS_Detect group No
Debug integervar No
Degrees_set real No
DSB_Ability_ID abilcode No
DSB_Ability_Level integer Yes
DSB_Angle real Yes
DSB_Animation_Speed real No
DSB_AoE real No
DSB_Caster unit Yes
DSB_Conditions boolean Yes
DSB_Current_Index integervar No
DSB_Damage real Yes
DSB_Damage_Group group No
DSB_Destroy_Tree boolean No
DSB_Destroyer unit No
DSB_Distance real No
DSB_Dummy unit Yes
DSB_Dummy2 unit Yes
DSB_Dummy2_Animation string No
DSB_Dummy2_BLUE real No
DSB_Dummy2_GREEN real No
DSB_Dummy2_Lifetime real No
DSB_Dummy2_RED real No
DSB_Dummy2_Transparency real No
DSB_Dummy_Type unitcode No
DSB_Dummy_Type2 unitcode No
DSB_Max_Index integer No
DSB_Owner player Yes
DSB_Shadow boolean No
DSB_Shdow boolean Yes
DSB_SoundEffect sound No
DSB_Special_Effect string No
DSB_Special_Effect_Location string No
DSB_Stage integer Yes
DSB_Start_Range real No
DSB_UnDamage_Group group Yes
Earth_Fury_Ability_Level integer No
Earth_Fury_AoE_Bouns real No
Earth_Fury_Base_Area_of_Effect real No
Earth_Fury_Base_Damage real No
Earth_Fury_Bonus_Damage real No
Earth_Fury_Caster unit No
Earth_Fury_Chance real No
Earth_Fury_Damage_Group group No
Earth_Fury_Dummy_Ability abilcode No
Earth_Fury_Dummy_Ability_2 abilcode No
Earth_Fury_Location location No
Earth_Fury_Owner player No
Earth_Fury_Total_Area_of_Effec real No
Earth_Fury_Total_Damage real No
EP integervar No
EP_Angle real Yes
EP_Caster unit Yes
EP_CastNumber integer No
EP_ConstDistance real Yes
EP_Distance real Yes
EP_Height real Yes
EP_Integer integervar No
EP_Missile unit Yes
EP_Off boolean Yes
EP_Point location Yes
EP_Speed real Yes
EP_Switch integer No
ES_Caster unit No
ES_Group group No
ES_Integer integervar No
ES_Point location Yes
ES_Target unit No
explosiontauren unit No
F_Integers integer Yes
F_ReachedFading real Yes
F_Time real Yes
F_Unit unit Yes
FA_Time real No
FA_Unit unit No
FB_Blast unit Yes
FB_Caster unit Yes
FB_Dummy unit Yes
FB_Explosion integervar Yes
FB_Indexsize integer No
FB_Integer integer Yes
FB_Loop integervar No
FB_Maxindexsize integer No
FB_Point location Yes
FB_Real real Yes
FB_Temp integer No
Flck_Ability abilcode No
Flck_CaptureDistance real No
Flck_CaptureRadius real No
Flck_Caster unit No
Flck_CasterPoint location No
Flck_Facing real No
Flck_SpecialEffectWarpInCaster string No
Flck_SpecialEffectWarpOutCast string No
Flck_TargetPoint location No
Flck_Tempangle real No
Flck_Tempgroup group No
Flck_Temppoint location No
Flck_Temppoint2 location No
Flck_Temppoint3 location No
Flck_Victim unit No
FP_Point location No
FSCaster unit Yes
FSCasterPoint location Yes
FSCount integer No
FSDistance real Yes
FSDummy unit Yes
FSDummyGroup group Yes
FSFace real Yes
FSFade real Yes
FSFadeC real Yes
FSHas boolean Yes
FSIndex integer No
FSInteger integervar No
FSLastRecycled integer No
FSMax integer No
FSMaxDistance real Yes
FSMove real Yes
FSRecycledList integer Yes
FSTime real No
GDD__Integers integer Yes
GDD__LeftMapGroup group No
GDD__TriggerArray trigger Yes
GDD__UnitArray unit Yes
GDD_Damage real No
GDD_DamagedUnit unit No
GDD_DamageSource unit No
GDD_Event real No
Gravity_unit unit No
Gravity_Unit_ID handle No
greenunitgroup group No
greygroup group No
Handle_Absol integer No
HashAbsol hashtable No
Hashtable hashtable No
HJ_Ability abilcode No
HJ_AbilityMaxLevel integer No
HJ_AttackType attacktype No
HJ_Caster unit Yes
HJ_CasterPlayer player Yes
HJ_CollisionRange real No
HJ_CustomBoolean boolean Yes
HJ_CustomInteger integervar No
HJ_CustomReal real Yes
HJ_CustomReal2 real Yes
HJ_CustomReal3 real Yes
HJ_CustomReal4 real Yes
HJ_DamageType damagetype No
HJ_DummyType unitcode No
HJ_Effect string Yes
HJ_EffectCount integer No
HJ_EnemySoulModelHandler effect Yes
HJ_EnemySoulUnit unit Yes
HJ_FriendlySoulModelHandler effect Yes
HJ_FriendlySoulUnit unit Yes
HJ_Group group No
HJ_ID integer No
HJ_JudgeDuration real Yes
HJ_JudgeDurationCounter real Yes
HJ_Level integer Yes
HJ_LevitateSpeedCalculation real Yes
HJ_LoopInterval real No
HJ_ModelHandler effect Yes
HJ_Pause boolean No
HJ_PauseAbility abilcode No
HJ_PauseEnemyEffectAttach string No
HJ_PauseEnemyEffectHandler effect Yes
HJ_PauseFriendlyEffectAttach string No
HJ_PauseFriendlyEffectHandler effect Yes
HJ_PauseOrder string No
HJ_PickedUnit unit No
HJ_Radius real Yes
HJ_RadiusEffectAngle real No
HJ_RadiusEffectCount integer Yes
HJ_ReturnHeightCalculation real Yes
HJ_SoulDamage real Yes
HJ_SoulDistance real Yes
HJ_SoulDistanceCounter real Yes
HJ_SoulEnemyExitAttach string No
HJ_SoulEnemyModelAttach string No
HJ_SoulFriendlyExitAttach string No
HJ_SoulFriendlyModelAttach string No
HJ_SoulHeal real Yes
HJ_SoulInitialHeight real Yes
HJ_SoulLevitateTime real Yes
HJ_SoulLevitateTravel boolean No
HJ_SoulLevitateTravelAngle real Yes
HJ_SoulMaxHeight real Yes
HJ_SoulMotionEffect string Yes
HJ_SoulMotionEffectAttach string Yes
HJ_SoulMotionEffectChance integer No
HJ_SoulReturnDamageAttach string No
HJ_SoulReturnHealAttach string No
HJ_SoulSize real Yes
HJ_SoulUnit unit Yes
HJ_TravelSpeedCalculation real Yes
HJ_Unit unit No
HoT_Const_AoE real No
HoT_Const_Dmg_Base real No
HoT_Const_Dmg_Bonus real No
HoT_Const_Dmg_Burn real No
HoT_Const_Dmg_Stun real No
HoT_Const_Dmg_Stun_Bonus real No
HoT_Const_Duration real No
HoT_Const_Range real No
HoT_Const_Stun_Duration real No
HoT_Group group No
HoT_Hash hashtable No
HoT_Lightning_Group group No
HoT_Slam_Group group No
HoT_Stun_Group group No
HoT_Targets group No
HoT_Up_Group group No
HS_ability abilcode No
HS_animation string No
HS_attack_type attacktype No
HS_caster unit No
HS_caster_loc location No
HS_charge_counter integer No
HS_charges integer Yes
HS_cone real No
HS_counter real No
HS_damage real Yes
HS_damageType damagetype No
HS_destroy_dest boolean No
HS_detect_area real No
HS_direction real No
HS_effect string No
HS_effect2 string No
HS_explosion_count integer No
HS_facing real No
HS_group group No
HS_hash hashtable No
HS_height real No
HS_knockup boolean No
HS_knockup_animation string No
HS_knockup_effect string No
HS_knockup_speed real No
HS_level integer No
HS_loop_speed real No
HS_speed real Yes
HS_temp_loc location No
HS_time real No
HS_trigger trigger No
HS_trigger2 trigger No
HydroJetCasters group No
HydroJetProjectiles group No
Intervals timer No
ISD_boolean boolean No
ISD_d destructable No
ISD_dummy unit No
ISD_loc location No
ISD_p location No
KoS_Angle real Yes
KOS_BackstabEffect string No
KUS_animation string No
KUS_effect modelfile No
KUS_group group No
KUS_hash hashtable No
KUS_height real No
KUS_knockup boolean No
KUS_speed real No
KUS_target unit No
KUS_temp_loc location No
KUS_temp_speed real No
Leak_Point location No
LF_A_Decrease real Yes
LF_Alpha real Yes
LF_B real Yes
LF_CountInteger integer Yes
LF_Debug boolean Yes
LF_G real Yes
LF_Lightning lightning Yes
LF_R real Yes
LiquidElementals group No
MA_Chance integer No
MA_Chance2 real No
MA_Nova integervar No
MA_Point location Yes
MA_Real real No
pb_angle_1 real Yes
pb_angle_2 real Yes
pb_caster unit Yes
pb_caster_loc location Yes
pb_counter real Yes
pb_distance_1 real Yes
pb_distance_2 real Yes
pb_effect_1 unit Yes
pb_effect_2 unit Yes
pb_effect_3 unit Yes
pb_index1 integer No
pb_index2 integer No
pb_index3 integervar No
pb_light_1 lightning Yes
pb_light_2 lightning Yes
pb_loopon boolean Yes
pb_segment_1 location Yes
pb_segment_2 location Yes
pb_segment_3 location Yes
pb_target_loc location Yes
PD_Angle real Yes
PD_Distances real Yes
PD_Integers integer Yes
PD_ReachedDistance real Yes
PD_RealTimer real Yes
PD_SpeedUnits real Yes
PD_TempPoint location Yes
PD_TestGroup group No
PD_TreesDestroy boolean Yes
PD_Unit unit Yes
pinkdeathanimationgroup group No
pinkrun group No
pinkunitgroup group No
PLAYERREDANDPURPLE force No
Power_Slam_Ability_Level integer No
Power_Slam_Base_Chance real No
Power_Slam_Caster unit No
Power_Slam_Damage real No
Power_Slam_Damage_Multiplier real No
Power_Slam_Dummy_Ability abilcode No
Power_Slam_Location location No
Power_Slam_Owner player No
Power_Slam_Strength integer No
Power_Slam_Target unit No
Power_Slam_Total_Chance real No
PR_Ability_Level integer No
PR_Atribute integer No
PR_Caster unit No
PR_Caster_Loc location No
PR_Damage real No
PR_Damage_Factor real No
PR_Dummy_Ability abilcode No
PR_Target unit No
PR_Target_Loc location No
PR_Target_Mana real No
Reflect_Users group No
removebluetealdg group No
Returning_to_normal_fly_height group No
RS_Angle real Yes
RS_Boolean boolean Yes
RS_Caster unit Yes
RS_CurDis real Yes
RS_Damage real Yes
RS_Index integer Yes
RS_LevelA integer Yes
RS_Loc location Yes
RS_MaxD real Yes
RS_MaxH real Yes
RS_Player player Yes
RS_Real real Yes
RS_Speed real Yes
RS_Target unit Yes
S_caster unit Yes
S_dummy unit Yes
S_dummypoint location No
S_index1 integer Yes
S_index2 integer No
S_index3 integervar No
S_index_max integer No
S_index_size integer No
S_pause boolean Yes
S_speed real Yes
S_stopduration real Yes
S_stopgroup group Yes
S_targetpoint location No
salvespecialeffect effect No
SandStorm group No
SD_Caster unit Yes
SD_Damage real Yes
SD_DamageEffect string Yes
SD_Index integer Yes
SD_LightningEffect lightning Yes
SD_MaxDistance real Yes
SD_Off boolean Yes
SD_TargetedUnit unit Yes
SD_Timer real Yes
SD_TimeToDoDamage real Yes
Sepharic_Star_Hashtable hashtable No
Sepharic_Star_Speed integer No
SES_Index integer Yes
SES_Off boolean Yes
SES_SpecialEffect effect Yes
SES_Timer real Yes
SF integervar No
SF_AoE real No
SF_Caster unit No
SF_CastNumber integer No
SF_ChainProc integer No
SF_Hero unit Yes
SF_Integer integervar Yes
SF_Loc location Yes
SF_Loc1 location Yes
SF_Off boolean Yes
SF_Real real No
SF_Switch integer No
SF_Time real Yes
Sinister_Strike_Ability_Level integer No
Sinister_Strike_Atribute integer No
Sinister_Strike_Base_Chance real No
Sinister_Strike_Bonus_Armor integer No
Sinister_Strike_Caster unit No
Sinister_Strike_Damage_Factor real No
Sinister_Strike_Dummy_Ability abilcode No
Sinister_Strike_Dummy_Ability2 abilcode No
Sinister_Strike_Location location No
Sinister_Strike_Normal_Armor integer No
Sinister_Strike_Owner player No
Sinister_Strike_Target unit No
Sinister_Strike_Total_Chance real No
Sinister_Strike_Total_Damage real No
Spell__Ability abilcode No
Spell__Caster unit No
Spell__CasterOwner player No
Spell__CastPoint location No
Spell__Channeling boolean No
Spell__Completed boolean No
Spell__DummyOwner player No
Spell__DummyType unitcode No
Spell__Duration real No
Spell__Expired boolean No
Spell__Filter_AllowAlly boolean No
Spell__Filter_AllowDead boolean No
Spell__Filter_AllowEnemy boolean No
Spell__Filter_AllowFlying boolean No
Spell__Filter_AllowHero boolean No
Spell__Filter_AllowLiving boolean No
Spell__Filter_AllowMagicImmune boolean No
Spell__Filter_AllowMechanical boolean No
Spell__Filter_AllowNonHero boolean No
Spell__Filter_AllowStructure boolean No
Spell__Hash hashtable No
Spell__Index integer No
Spell__InRange real No
Spell__InRangeCount integer No
Spell__InRangeGroup group No
Spell__InRangePoint location No
Spell__InRangeUnits unit Yes
Spell__Interval real No
Spell__Level integer No
Spell__LevelMultiplier real No
Spell__Running boolean No
Spell__Target unit No
Spell__TargetGroup group No
Spell__TargetPoint location No
Spell__Time real No
Spell__Trigger_OnCast trigger No
Spell__Trigger_OnChannel trigger No
Spell__Trigger_OnEffect trigger No
Spell__Trigger_OnFinish trigger No
Spell__Trigger_OnLoop trigger No
Spell__UseTargetGroup boolean No
Spell__WakeTargets boolean No
Spell_i_AllowAlly boolean Yes
Spell_i_AllowDead boolean Yes
Spell_i_AllowEnemy boolean Yes
Spell_i_AllowFlying boolean Yes
Spell_i_AllowHero boolean Yes
Spell_i_AllowLiving boolean Yes
Spell_i_AllowMagicImmune boolean Yes
Spell_i_AllowMechanical boolean Yes
Spell_i_AllowNonHero boolean Yes
Spell_i_AllowStructure boolean Yes
Spell_i_Caster unit Yes
Spell_i_Channeling boolean Yes
Spell_i_Completed boolean Yes
Spell_i_Duration real Yes
Spell_i_EventType integer Yes
Spell_i_GroupN integer No
Spell_i_GroupStack group Yes
Spell_i_Head integer Yes
Spell_i_Instances integer No
Spell_i_LastTime real Yes
Spell_i_Level integer Yes
Spell_i_Linked boolean Yes
Spell_i_OnCastStack trigger Yes
Spell_i_OnChannelStack trigger Yes
Spell_i_OnEffectStack trigger Yes
Spell_i_OnFinishStack trigger Yes
Spell_i_OnLoopStack trigger Yes
Spell_i_PreloadDummy unit No
Spell_i_Recycle integer No
Spell_i_RecycleList integer Yes
Spell_i_Stack integer Yes
Spell_i_StackN integer No
Spell_i_StackRef integer Yes
Spell_i_Target unit Yes
Spell_i_TargetGroup group Yes
Spell_i_TargetX real Yes
Spell_i_TargetY real Yes
Spell_i_Time real Yes
Spell_i_Timer timer No
Spell_i_UseTG boolean Yes
SpellLevel integer No
SR_Angle real Yes
SR_Boolean boolean Yes
SR_Caster unit Yes
SR_Duration real Yes
SR_Group group Yes
SR_Index integer Yes
SR_Loc location Yes
SR_Projectile unit Yes
SR_WaitCounter real Yes
ST_Angle real No
ST_Aoe real Yes
ST_AoeBase real No
ST_AoePerLevel real No
ST_BarrierModel string No
ST_BarrierSpaceTaken real No
ST_Core unit Yes
ST_CurrentLightningEffect lightning Yes
ST_DissappearenceSFX string No
ST_DummyType unitcode No
ST_EffectScalingSpawn real No
ST_HealthPenaltyPerSecond real No
ST_Index integervar No
ST_LightningBlue real No
ST_LightningEffect string No
ST_LightningGreen real No
ST_LightningRed real No
ST_LightningZ real No
ST_MaxIndex integer No
ST_OriginalCaster unit Yes
ST_SecondaryIndex integervar No
ST_SpawnSFX string No
ST_SpecialEffect effect Yes
ST_Spell abilcode No
ST_StageID integer Yes
ST_TempGroup group No
ST_TempInteger integer No
ST_TempPoint location No
ST_TempPoint2 location No
ST_TempReal real No
ST_TempUnit unit No
ST_TempUnit2 unit No
ST_TempUnit3 unit No
ST_TempX real No
ST_TempX2 real No
ST_TempY real No
ST_TempY2 real No
ST_TempZ real No
ST_TempZ2 real No
ST_TetherDurationBase real No
ST_TetherDurationPerLevel real No
ST_TetherModel string No
ST_TriggeringHealthPercent real No
ST_UndeadDuration real Yes
ST_UndeadDurationBase real No
ST_UndeadDurationPerLevel real No
ST_UnitIDStorage unit No
ST_UnitIndex unit Yes
ST_UnitTransparency real No
Surging_Pulse_Caster_Loc location No
Surging_Pulse_Formula real No
Surging_Pulse_Location location No
Surging_Pulse_Loop integer No
Surging_Pulse_Loop_Location location No
Surging_Pulse_Owner player No
SystemPoint location Yes
SystemUnitGroup group Yes
TA_BaseChance integer No
TA_BaseDamage real No
TA_ChanceGrowth integer No
TA_DamageGrowth real No
TA_Levels integer No
TA_SFX string No
TA_ThornEffect location No
TA_ThornSpawn location No
Target_Dummy unit No
Temp_Group group No
Temp_Group_1 group No
Temp_Group_2 group No
Temp_Lightning lightning No
Temp_Loc_1 location No
Temp_Loc_2 location No
Temp_Loc_3 location No
Temp_Point location No
Temp_Point_2 location No
Temp_Real_1 real No
Temp_Real_2 real No
Temp_Real_3 real No
Temp_Unit_1 unit No
Temp_Unit_2 unit No
Temp_Unit_3 unit No
Temp_Unit_4 unit No
TempDest destructable No
TempGroup group No
TempHandle handle No
TempInteger integer No
TempLoc location No
TempPoint location No
TempPoint2 location No
TempPoint3 location No
temppointnature location No
tempSESSpecialEffect effect No
tempSESTimer real No
TempUnit unit No
TempUnit2 unit No
Thorn_Dummy unit No
TK_AttackType attacktype No
TK_DamageType damagetype No
TK_FlyingUnits group No
TK_FSpeed real Yes
TK_HDmgInPercIncreasement real No
TK_HDmgInPercStart real No
TK_Hero unit Yes
TK_ImpactDmgIncreasement real No
TK_ImpactDmgStart real No
TK_ImpactSFX string No
TK_Integers integer Yes
TK_Interval real Yes
TK_Level integer Yes
TK_LiftSFX string No
TK_LiftSFXTimer real No
TK_LsfxT real Yes
TK_MaxHeight real Yes
TK_MaxHeightIncreasement real No
TK_MaxHeightStart real No
TK_MinHeightIncreasement real No
TK_MinHeightStart real No
TK_Pause boolean No
TK_Speed real No
TK_SpeedVariationPerc real No
TK_SpellAoEIncreasement real No
TK_SpellAoEStart real No
TK_StartSFX string No
TK_TempPoint location Yes
TK_Unit unit Yes
TK_UnitGroup group No
TP_A_down_height_min real No
TP_A_infinity_longs boolean Yes
TP_A_Only_Top boolean No
TP_A_Only_Top_ex boolean Yes
TP_A_Pan_Camera boolean No
TP_A_Pan_Camera_ex boolean Yes
TP_A_Pan_Camera_Time real No
TP_A_Pan_Camera_Time_ex real Yes
TP_A_player player No
TP_A_point_create location No
TP_A_point_destination location No
TP_A_size real No
TP_A_time_before_created real No
TP_A_time_closing real No
TP_A_time_life real No
TP_A_time_opening real No
TP_A_top_height_max real No
TP_A_top_height_min real No
TP_A_two_directions boolean No
TP_accelerate real No
TP_accelerate_ex real Yes
TP_angle real No
TP_angle_ex real Yes
TP_distance real No
TP_distance_current real Yes
TP_distance_max real Yes
TP_DOWN_1_effect effect Yes
TP_DOWN_2_effect effect Yes
TP_down_height_min_ex real Yes
TP_dummy_down_model string No
TP_dummy_down_model_ex string Yes
TP_dummy_down_size real No
TP_dummy_down_size_ex real Yes
TP_dummy_top_model string No
TP_dummy_top_model_ex string Yes
TP_dummy_top_size real No
TP_dummy_top_size_ex real Yes
TP_dummy_type unitcode No
TP_E_eff_constant string No
TP_E_eff_constant_ex effect Yes
TP_E_eff_constant_ex2 effect Yes
TP_E_eff_create_finish string No
TP_E_eff_create_finish_ex string Yes
TP_E_eff_create_start string No
TP_E_eff_create_start_ex string Yes
TP_E_eff_dissapear_finish string No
TP_E_eff_dissapear_finish_ex string Yes
TP_E_eff_dissapear_start string No
TP_E_eff_dissapear_start_ex string Yes
TP_E_eff_unit_move string No
TP_E_eff_unit_move2 string No
TP_E_eff_unit_move2_ex string Yes
TP_E_eff_unit_move_ex string Yes
TP_fly_height real No
TP_fly_heights real Yes
TP_get_X real Yes
TP_get_Y real Yes
TP_Go_go_missile boolean No
TP_Go_go_missile_ex boolean Yes
TP_go_X real Yes
TP_go_Y real Yes
TP_i integer Yes
TP_i_last integer No
TP_index integer No
TP_life_timer_is_expired boolean Yes
TP_loop_interval real No
TP_Max_Size integer No
TP_missile unit Yes
TP_missile_eff effect Yes
TP_missile_gfx string No
TP_missile_gfx_ex string Yes
TP_missile_scale real No
TP_missile_scale_ex real Yes
TP_move_units_now boolean Yes
TP_move_units_now_2 boolean Yes
TP_Movement_type integer No
TP_player_ex player Yes
TP_point_temp location No
TP_point_temp2 location No
TP_portal_created_ex boolean Yes
TP_Potral_Index integer Yes
TP_Potral_Number integer Yes
TP_real real No
TP_Recently_Teleported group No
TP_Recently_Teleported_time real Yes
TP_seconds_to_reach real No
TP_size_ex real Yes
TP_slow_time_factor real No
TP_slow_time_factor_ex real Yes
TP_slow_time_finished_ex boolean Yes
TP_slow_time_place real No
TP_slow_time_place_ex real Yes
TP_slow_time_started_ex boolean Yes
TP_slow_time_width real No
TP_slow_time_width_ex real Yes
TP_speed real No
TP_speed_ex real Yes
TP_speed_up real No
TP_t_activated boolean Yes
TP_t_activated_2 boolean Yes
TP_t_down unit Yes
TP_t_down2 unit Yes
TP_t_is_busy1 boolean Yes
TP_t_is_busy2 boolean Yes
TP_t_top unit Yes
TP_t_top2 unit Yes
TP_t_unbusy1 boolean Yes
TP_t_unbusy2 boolean Yes
TP_t_unbusy_timer1 real Yes
TP_t_unbusy_timer2 real Yes
TP_teleported_unit unit Yes
TP_TEMP_LOOP integer No
TP_TEMP_POINT_0 location No
TP_TEMP_POINT_1 location No
TP_TEMP_POINT_2 location No
TP_this_is_not_portal boolean Yes
TP_time_before_create_ex real Yes
TP_time_closing_ex real Yes
TP_time_life_ex real Yes
TP_time_opening_ex real Yes
TP_time_to_move real Yes
TP_time_to_move_2 real Yes
TP_TOP_1_effect effect Yes
TP_TOP_2_effect effect Yes
TP_top_height_max_ex real Yes
TP_top_height_min_ex real Yes
TP_Transparecy_down real No
TP_Transparecy_down_ex real Yes
TP_Transparecy_top real No
TP_Transparecy_top_ex real Yes
TP_turn_on boolean Yes
TP_turn_on_2 boolean Yes
TP_two_directions_ex boolean Yes
TP_x1 real Yes
TP_x2 real Yes
TP_y1 real Yes
TP_y2 real Yes
UC_Counter integer Yes
UC_Groups group Yes
UC_Inv boolean Yes
UC_SETTINGS_AreaOfEffect real Yes
UC_SETTINGS_Collosion boolean No
UC_SETTINGS_DestroyTrees_Dash boolean No
UC_SETTINGS_Invulnerable boolean No
UC_SETTINGS_Speed real No
UC_Target unit No
UC_TempPoint location Yes
UDex integer No
UDexGen integer No
UDexNext integer Yes
UDexPrev integer Yes
UDexRecycle integer No
UDexUnits unit Yes
UDexWasted integer No
UnitIndexerEnabled boolean No
UnitIndexEvent real No
VL_Ability abilcode No
VL_AbilityCurse abilcode No
VL_AbilityHeal abilcode No
VL_AoE real Yes
VL_Buff buffcode No
VL_C_Amount integer No
VL_C_Even real No
VL_C_GrowRate real Yes
VL_C_GrowTime real No
VL_C_MoveRate real Yes
VL_C_SFX string No
VL_C_Speed real No
VL_CurrentAoE real Yes
VL_Debuff buffcode No
VL_Degree real No
VL_DummyCaster unit No
VL_Duration real Yes
VL_L lightning Yes
VL_L_Amount integer No
VL_L_CheckSFX boolean Yes
VL_L_Counter real Yes
VL_L_Direction real No
VL_L_Distance real No
VL_L_Duration real No
VL_L_Height real No
VL_L_ID integer No
VL_L_SFX lightningtype No
VL_L_SFX_EndPoint string No
VL_MaxLevel integer No
VL_SFX string No
VL_TempInt integervar No
VL_TempLoc location No
VL_TempReal real No
VL_TempUnit unit No
WaterWaves group No
weatherformap weathereffect No
WhirlPools group No
WoS_Angle real Yes
WoS_AttackEffect string Yes
WoS_AttackRange real Yes
WoS_AttackTimer real Yes
WoS_Caster unit Yes
WoS_Damage real Yes
WoS_Index integer Yes
WoS_MaxSpeed real Yes
WoS_Off boolean Yes
WoS_OnAttackSpeedDecrease real Yes
WoS_ShadowEffect string Yes
WoS_ShadowEffectCreatingDelay real Yes
WoS_ShadowEffectDuration real Yes
WoS_ShadowEffectTimer real Yes
WoS_Speed real Yes
WoS_SpeedIncreasement real Yes
WoS_SpellDuration real Yes
WoS_TargetedUnit unit Yes
WS integervar No
WS_Angle real Yes
WS_Caster unit Yes
WS_CastNumber integer No
WS_Chance integer No
WS_Distance real Yes
WS_Dummie unit Yes
WS_Effect1 unit Yes
WS_Effect2 unit Yes
WS_Effect3 unit Yes
WS_Off boolean Yes
WS_Point location Yes
WS_Speed real Yes
WS_Switch integer No
yellowunitgroup group No
zzTestReal real No
Initial Settings Cin
  Events
    Map initialization
  Conditions
  Actions
    -------- INVULNERABLE --------
    Unit - Make Mok'Nathal Warrior 0232 <gen> Invulnerable
    Unit - Make Haratha 0233 <gen> Invulnerable
    -------- Pink hide --------
    Unit Group - Add all units of (Units owned by Player 8 (Pink) matching (((Matching unit) is hidden) Equal to False).) to pinkunitgroup
    Unit Group - Pick every unit in pinkunitgroup and do (Change color of (Picked unit) to Red)
    Unit Group - Pick every unit in pinkunitgroup and do (Hide (Picked unit))
    -------- Grey hide --------
    Unit Group - Add all units of (Units owned by Player 9 (Gray) matching (((Matching unit) is hidden) Equal to False).) to greygroup
    Unit Group - Pick every unit in greygroup and do (Hide (Picked unit))
    -------- Brown hide --------
    Unit Group - Add all units of (Units owned by Player 12 (Brown) matching (((Matching unit) is hidden) Equal to False).) to browngroup
    Unit Group - Pick every unit in browngroup and do (Hide (Picked unit))
    Player - Make Player 1 (Red) treat Player 10 (Light Blue) as an Ally with shared vision
    Player - Make Player 10 (Light Blue) treat Player 1 (Red) as an Ally with shared vision
    Unit - Change color of Mok'Nathal Warrior 0224 <gen> to Red
    Player - Make Player 2 (Blue) treat Player 8 (Pink) as an Neutral
    Player - Make Player 3 (Teal) treat Player 8 (Pink) as an Neutral
    Player - Make Player 11 (Dark Green) treat Player 8 (Pink) as an Neutral
    Player - Make Player 8 (Pink) treat Player 2 (Blue) as an Neutral
    Player - Make Player 8 (Pink) treat Player 3 (Teal) as an Neutral
    Player - Make Player 8 (Pink) treat Player 11 (Dark Green) as an Neutral
    -------- Grey Allies --------
    Player - Make Player 1 (Red) treat Player 9 (Gray) as an Neutral
    Player - Make Player 4 (Purple) treat Player 9 (Gray) as an Neutral
    Player - Make Player 5 (Yellow) treat Player 9 (Gray) as an Neutral
    Player - Make Player 7 (Green) treat Player 9 (Gray) as an Neutral
    Player - Make Player 8 (Pink) treat Player 9 (Gray) as an Neutral
    Player - Make Player 9 (Gray) treat Player 1 (Red) as an Neutral
    Player - Make Player 9 (Gray) treat Player 4 (Purple) as an Neutral
    Player - Make Player 9 (Gray) treat Player 5 (Yellow) as an Neutral
    Player - Make Player 9 (Gray) treat Player 7 (Green) as an Neutral
    Player - Make Player 9 (Gray) treat Player 8 (Pink) as an Neutral
    -------- Brown Allies --------
    Player - Make Player 1 (Red) treat Player 12 (Brown) as an Neutral
    Player - Make Player 4 (Purple) treat Player 12 (Brown) as an Neutral
    Player - Make Player 5 (Yellow) treat Player 12 (Brown) as an Neutral
    Player - Make Player 7 (Green) treat Player 12 (Brown) as an Neutral
    Player - Make Player 8 (Pink) treat Player 12 (Brown) as an Neutral
    Player - Make Player 12 (Brown) treat Player 1 (Red) as an Neutral
    Player - Make Player 12 (Brown) treat Player 4 (Purple) as an Neutral
    Player - Make Player 12 (Brown) treat Player 5 (Yellow) as an Neutral
    Player - Make Player 12 (Brown) treat Player 7 (Green) as an Neutral
    Player - Make Player 12 (Brown) treat Player 8 (Pink) as an Neutral
    Sound - Set Animation and Spell Sounds to 70.00%
    Sound - Set Combat Sounds to 40.00%
Explosion Test
  Events
    Player - Player 1 (Red) types a chat message containing bomb (stringnoformat) as An exact match
  Conditions
  Actions
    Special Effect - Create a special effect at (Center of explosion_bomb <gen>) using war3mapImported\NuclearExplosion.mdx
Test spells
  Events
    Player - Player 1 (Red) types a chat message containing spell (stringnoformat) as An exact match
  Conditions
  Actions
    Trigger - Run Scene_Three <gen> (checking conditions)
Explosion Test Copy
  Events
    Player - Player 1 (Red) types a chat message containing unit (stringnoformat) as An exact match
  Conditions
  Actions
    Unit - Create 1.Explosion Tauren for Player 1 (Red) at (Center of explosion_bomb <gen>) facing Default building facing degrees
Music Open Portal INITIAL
  Events
    Time - Elapsed game time is 0.01 seconds
  Conditions
  Actions
    Sound - Clear the music list
    Sound - Stop music After fading
    Sound - Play 16_Caverns_of_Time__Opening_of_the_D <gen>
Music Open portal trigger
  Events
    Time - Every 138.00 seconds of game time
  Conditions
  Actions
    Sound - Clear the music list
    Sound - Stop music After fading
    Wait 1.00 seconds
    Sound - Play 16_Caverns_of_Time__Opening_of_the_D <gen>
Music war trigger
  Events
    Time - Every 41.00 seconds of game time
  Conditions
  Actions
    Sound - Clear the music list
    Sound - Stop music After fading
    Wait 1.00 seconds
    Sound - Play 30_War <gen>
Music Legion trigger
  Events
    Time - Every 239.00 seconds of game time
  Conditions
  Actions
    Sound - Clear the music list
    Sound - Stop music After fading
    Wait 1.00 seconds
    Sound - Play 01_The_Burning_Legion__Main_Title_u <gen>
Delete Units Portal
  Events
    Unit - A unit enters dark_portal_disappear <gen>
  Conditions
  Actions
    Unit - Remove (Entering unit) from the game
Sent to Delete
  Events
    Unit - A unit enters half_way_infront_portal <gen>
  Conditions
    ((Owner of (Entering unit)) Equal to Player 1 (Red)) or ((Owner of (Entering unit)) Equal to Player 4 (Purple))
  Actions
    Unit - Order (Entering unit) to Move To.(Center of dark_portal_disappear <gen>)
Start Cin
  Events
    Map initialization
  Conditions
  Actions
    Cinematic - Turn cinematic mode On for (All players)
    Cinematic - Turn subtitle display override On
    Cinematic - Disable user control for (All players).
    Sound - Set Ambient Sounds to 40.00%
    Sound - Set Animation and Spell Sounds to 30.00%
    Sound - Set Combat Sounds to 20.00%
    Sound - Set Fire Sounds to 100.00%
    Player Group - Add Player 1 (Red) to PLAYERREDANDPURPLE
    Player Group - Add Player 4 (Purple) to PLAYERREDANDPURPLE
    Cinematic - Fade out over 0.00 seconds using texture Black Mask and color (0%, 0%, 0%) with 0% transparency
    Trigger - Run Scene_One <gen> (checking conditions)
Scene One
  Events
  Conditions
  Actions
    Sound - Set music volume to 100%
    Environment - Set sky to Lordaeron Fall Sky
    Environment - Create at (Playable map area) the weather effect Dungeon White Fog (Light)
    Set VariableSet weatherformap = (Last created weather effect)
    Environment - Turn weatherformap On
    Environment - Reset fog to default values
    Environment - Set fog to style Linear, z-start 300.00, z-end 11000.00, density 0.50 and color (100.00%, 100.00%, 100.00%)
    Wait 2.00 seconds
    Cinematic - Clear the screen of text messages for (All players).
    Game - Display to (All players) for 9.00 seconds the text: Dark Portal, Southern Azeroth.
    Game - Display to (All players) for 9.00 seconds the text:
    Game - Display to (All players) for 9.00 seconds the text:
    Game - Display to (All players) for 9.00 seconds the text:
    Game - Display to (All players) for 9.00 seconds the text:
    Wait 5.00 seconds
    -------- Cinematic can be skipped --------
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_001 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_002 for (Picked player) over 19.00 seconds)
    Cinematic - Fade in over 4.00 seconds using texture Black Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 3.00 seconds
    Cinematic - Send transmission to (All players) from Black Dragon Despot 0292 <gen> named Katrana Prestor: Play No sound and display Only a few more carts left. But that scent... Dammit! The humans' vanguard force has already arrived!. Modify duration: Set to 15.00 seconds and Don't wait
    Wait 7.00 seconds
    Unit - Make Black Dragon Despot 0292 <gen> face (Center of Katrana_face_alliance <gen>) over 1.00 seconds
    Wait 8.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_003 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_004 for (Picked player) over 27.00 seconds)
    Cinematic - Send transmission to (All players) from Shadow Master 0037 <gen> named Teron Gorefiend: Play No sound and display Everyone! Be ready to rush through the portal as soon as the dragons' carts are all through. If the humans catch us in the open ground here with our backs to them, they will slaughter us to the last warrior! Prepare yourselves!. Modify duration: Set to 26.00 seconds and Don't wait
    Unit - Order Acolyte- Eggs 0140 <gen> to Move To.(Center of dark_portal_disappear <gen>)
    Wait 5.00 seconds
    Unit - Order Acolyte- Eggs 0139 <gen> to Move To.(Center of dark_portal_disappear <gen>)
    Wait 5.00 seconds
    Unit - Order Acolyte- Eggs 0007 <gen> to Move To.(Center of dark_portal_disappear <gen>)
    Wait 5.00 seconds
    Unit - Order Acolyte- Eggs 0141 <gen> to Move To.(Center of dark_portal_disappear <gen>)
    Wait 5.00 seconds
    Unit - Order Acolyte- Eggs 0144 <gen> to Move To.(Center of dark_portal_disappear <gen>)
    Wait 5.00 seconds
    Unit - Order Acolyte- Eggs 0145 <gen> to Move To.(Center of dark_portal_disappear <gen>)
    Wait 1.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_006 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_005 for (Picked player) over 59.00 seconds)
    Cinematic - Send transmission to (All players) from Mok'Nathal Warrior 0030 <gen> named Rexxar: Play No sound and display They come.. Modify duration: Set to 3.00 seconds and Don't wait
    Wait 3.00 seconds
    Cinematic - Send transmission to (All players) from Blademaster 0001 <gen> named Grom Hellscream: Play No sound and display So they do. Warsong! Steady your axes and your nerves! We are the last line of defence for the horde! Once everyone else has safely evacuated back to Draenor, we will make a run for the portal!. Modify duration: Set to 24.00 seconds and Don't wait
    Wait 24.00 seconds
    Cinematic - Send transmission to (All players) from Blademaster 0001 <gen> named Grom Hellscream: Play No sound and display Once I give the signal, I expect you to sprint like your lives depend on it, and get yourselves back to the safety of our motherland. Make no mistake--- it is my responsibility to ensure our clan members all make it back home--- and I will never forgive anyone here who chooses to sacrifice their lives here just to slaughter a few extra Pinkskins! Have I made myself clear?. Modify duration: Set to 32.00 seconds and Don't wait
    Wait 32.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_007 for (Picked player) over 0 seconds)
    Cinematic - Send transmission to (All players) from Orc Mage 0073 <gen> named Orc Mage: Play No sound and display Yes!. Modify duration: Set to 2.00 seconds and Don't wait
    Wait 2.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_008 for (Picked player) over 0 seconds)
    Cinematic - Send transmission to (All players) from Ogre Spellbinder 0049 <gen> named Ogre Spellbinder: Play No sound and display Yes!. Modify duration: Set to 2.00 seconds and Don't wait
    Wait 2.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_009 for (Picked player) over 0 seconds)
    Cinematic - Send transmission to (All players) from Goblin Inventor 0062 <gen> named Goblin Inventor: Play No sound and display Yes!. Modify duration: Set to 2.00 seconds and Don't wait
    Wait 2.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_010 for (Picked player) over 0 seconds)
    Cinematic - Send transmission to (All players) from Haratha 0098 <gen> named Haratha: Play No sound and display Aaah-oooooooh!. Modify duration: Set to 4.00 seconds and Don't wait
    Sound - Attach GnollArcherPissed1 <gen> to Haratha 0098 <gen>
    Sound - Play GnollArcherPissed1 <gen> at 100% volume, attached to Haratha 0098 <gen>
    Trigger - Turn off Music_Open_portal_trigger <gen>
    Sound - Clear the music list
    Sound - Stop music After fading
    Wait 4.00 seconds
    Sound - Play 30_War <gen>
    Trigger - Turn on Music_war_trigger <gen>
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_011 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_012 for (Picked player) over 26.00 seconds)
    Cinematic - Send transmission to (All players) from Lord Wizard 0031 <gen> named Khadgar: Play No sound and display They are trying to flee through the portal!. Modify duration: Set to 6.00 seconds and Don't wait
    Wait 6.00 seconds
    Cinematic - Send transmission to (All players) from High Commander 0032 <gen> named Turalyon: Play No sound and display We cannot allow the horde to slip out of our grasp. Countless innocent worlds will be snuffed out if we do not thwart their plot. For the alliance! All units, forward!. Modify duration: Set to 20.00 seconds and Don't wait
    Wait 20.00 seconds
    Trigger - Run Scene_Two <gen> (checking conditions)
Scene Two
  Events
  Conditions
  Actions
    -------- HEROES --------
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_013 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_014 for (Picked player) over 10.00 seconds)
    Unit - Order Gryphon Rider 0121 <gen> to Attack-Move To.(Center of kurdran_attack <gen>)
    Unit - Order Alliance Lieutenant 0048 <gen> to Attack-Move To.(Center of danath_attack <gen>)
    Unit - Order Lord Wizard 0031 <gen> to Attack-Move To.(Center of khadgar_attack <gen>)
    Unit - Order High Commander 0032 <gen> to Attack-Move To.(Center of turalyon_attack <gen>)
    Unit - Order Bandit Paladin 0087 <gen> to Attack-Move To.(Center of bandit_lord_attack <gen>)
    Wait 3.00 seconds
    -------- Far left Blue --------
    Unit - Order Gryphon Knight (Air) 0003 <gen> to Attack-Move To.(Center of blue_left_attack <gen>)
    Unit - Order Recruit 0154 <gen> to Attack-Move To.(Center of blue_left_attack <gen>)
    Unit - Order Gryphon Knight (Air) 0003 <gen> to Attack-Move To.(Center of blue_left_attack <gen>)
    Unit - Order Gryphon Knight (Air) 0185 <gen> to Attack-Move To.(Center of blue_left_attack <gen>)
    Unit - Order Sharpshooter 0184 <gen> to Attack-Move To.(Center of blue_left_attack <gen>)
    Unit - Order Magician 0168 <gen> to Attack-Move To.(Center of blue_left_attack <gen>)
    Unit - Order Magician 0167 <gen> to Attack-Move To.(Center of blue_left_attack <gen>)
    Unit - Order Monk 0157 <gen> to Attack-Move To.(Center of blue_left_attack <gen>)
    Unit - Order Manticore 0177 <gen> to Attack-Move To.(Center of blue_left_attack <gen>)
    Unit - Order Manticore 0176 <gen> to Attack-Move To.(Center of blue_left_attack <gen>)
    -------- Mid left Blue --------
    Unit - Order Gryphon Knight 0005 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Gryphon Knight 0006 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Recruit 0153 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Recruit 0152 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Recruit 0107 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Recruit 0108 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Sharpshooter 0183 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Sharpshooter 0182 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Sharpshooter 0207 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Magician 0161 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Magician 0160 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Magician 0114 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Gryphon Knight (Air) 0186 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Gryphon Knight (Air) 0187 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Monk 0156 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Monk 0155 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Monk 0113 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Manticore 0175 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Manticore 0116 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    Unit - Order Manticore 0178 <gen> to Attack-Move To.(Center of blue_mid_attack <gen>)
    -------- Mid right DG --------
    Unit - Order Sinister Hound 0088 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    Unit - Order Sinister Hound 0188 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    Unit - Order Dark Knight 0170 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    Unit - Order Swindler 0194 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    Unit - Order Sinister Hound 0189 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    Unit - Order Sinister Hound 0190 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    Unit - Order Mounted Brigand 0158 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    Unit - Order Swindler 0193 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    Unit - Order Swindler 0151 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    Unit - Order Swindler 0192 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    Unit - Order Bandit Axe Thrower 0084 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    Unit - Order Bandit Axe Thrower 0147 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    Unit - Order Spear-Throwing Marauder 0197 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    Unit - Order Spear-Throwing Marauder 0196 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    Unit - Order Spear-Throwing Marauder 0195 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    Unit - Order Rogue Mortar Team 0181 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    Unit - Order Rogue Mortar Team 0179 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    Unit - Order Rogue Mortar Team 0089 <gen> to Attack-Move To.(Center of bandit_mid_right_attack <gen>)
    -------- Far Right Dg --------
    Unit - Order Dark Knight 0137 <gen> to Attack-Move To.(Center of bandit_right_attack <gen>)
    Unit - Order Dark Knight 0071 <gen> to Attack-Move To.(Center of bandit_right_attack <gen>)
    Unit - Order Mounted Brigand 0082 <gen> to Attack-Move To.(Center of bandit_right_attack <gen>)
    Unit - Order Mounted Brigand 0159 <gen> to Attack-Move To.(Center of bandit_right_attack <gen>)
    Unit - Order Bandit Axe Thrower 0171 <gen> to Attack-Move To.(Center of bandit_right_attack <gen>)
    Unit - Order Bandit Axe Thrower 0172 <gen> to Attack-Move To.(Center of bandit_right_attack <gen>)
    Unit - Order Spear-Throwing Marauder 0195 <gen> to Attack-Move To.(Center of bandit_right_attack <gen>)
    Unit - Order Spear-Throwing Marauder 0083 <gen> to Attack-Move To.(Center of bandit_right_attack <gen>)
    Unit - Order Trickster 0136 <gen> to Attack-Move To.(Center of bandit_right_attack <gen>)
    Unit - Order Trickster 0000 <gen> to Attack-Move To.(Center of bandit_right_attack <gen>)
    Unit - Order Trickster 0110 <gen> to Attack-Move To.(Center of bandit_right_attack <gen>)
    Unit - Order Trickster 0072 <gen> to Attack-Move To.(Center of bandit_right_attack <gen>)
    Unit - Order Rogue Mortar Team 0173 <gen> to Attack-Move To.(Center of bandit_right_attack <gen>)
    Unit - Order Rogue Mortar Team 0174 <gen> to Attack-Move To.(Center of bandit_right_attack <gen>)
    Wait 7.00 seconds
    Trigger - Run Scene_Three <gen> (checking conditions)
Scene Three
  Events
  Conditions
  Actions
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_015 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_016 for (Picked player) over 25.00 seconds)
    Hero - Learn skill for Blademaster 0001 <gen>: Agile
    Unit - Order Blademaster 0001 <gen> to Special Rexxar - Battle Roar.
    Wait 2.00 seconds
    Hero - Learn skill for Mok'Nathal Warrior 0030 <gen>: Earth Fury
    Unit - Order Mok'Nathal Warrior 0030 <gen> to Human Mountain King - Thunder Clap.
    Wait 2.00 seconds
    Hero - Learn skill for Alliance Lieutenant 0048 <gen>: Battle Focus
    Unit - Order Alliance Lieutenant 0048 <gen> to Special Rexxar - Battle Roar.
    Wait 2.00 seconds
    Hero - Learn skill for Gryphon Rider 0121 <gen>: Lightning Field
    Unit - Order Gryphon Rider 0121 <gen> to Orc Tauren Chieftain - Shockwave.(Center of kurdran_spell <gen>)
    Wait 2.00 seconds
    Hero - Learn skill for Lord Wizard 0031 <gen>: Telekinesis (GUI)
    Unit - Order Lord Wizard 0031 <gen> to Human Archmage - Blizzard.(Center of telekenisis <gen>)
    Wait 2.00 seconds
    Hero - Learn skill for High Commander 0032 <gen>: Hammer of Truth
    Unit - Order High Commander 0032 <gen> to Neutral Alchemist - Chemical Rage.
    Wait 15.00 seconds
    Unit - Remove Acolyte- Eggs 0143 <gen> from the game
    Unit - Remove Acolyte- Eggs 0146 <gen> from the game
    Unit - Remove Acolyte- Eggs 0148 <gen> from the game
    Unit - Remove Acolyte- Eggs 0149 <gen> from the game
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_017 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_018 for (Picked player) over 21.00 seconds)
    Unit - Order Acolyte- Eggs 0142 <gen> to Move To.(Center of half_way_infront_portal <gen>)
    Cinematic - Send transmission to (All players) from Deathwing 0293 <gen> named Deathwing: Play No sound and display The last cart... Katrana, it is time to take our leave! The humans are none of our concern--- let the orcs deal with them!. Modify duration: Set to 17.00 seconds and Don't wait
    Wait 8.00 seconds
    Unit - Order Black Dragon Despot 0292 <gen> to Move To.(Center of half_way_infront_portal <gen>)
    Wait 8.00 seconds
    Unit - Order Deathwing 0293 <gen> to Move To.(Center of half_way_infront_portal <gen>)
    Wait 5.00 seconds
    Trigger - Turn off Delete_Units_Portal <gen>
    Trigger - Turn off Sent_to_Delete <gen>
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_019 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_020 for (Picked player) over 5.00 seconds)
    Cinematic - Send transmission to (All players) from Shadowmoon Archmagi 0097 <gen> named Dentarg: Play No sound and display To the portal!. Modify duration: Set to 5.00 seconds and Don't wait
    Wait 5.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_021 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_022 for (Picked player) over 5.00 seconds)
    Unit Group - Add all units of (Units owned by Player 7 (Green) matching (((Matching unit) is hidden) Equal to False).) to greenunitgroup
    Unit Group - Remove Ragnok 0231 <gen> from greenunitgroup.
    Unit Group - Pick every unit in greenunitgroup and do (Order (Picked unit) to Move To.(Center of half_way_infront_portal <gen>))
    Unit - Order Shadow Master 0037 <gen> to Move To.(Center of half_way_infront_portal <gen>)
    Unit - Order Shadowmoon Archmagi 0097 <gen> to Move To.(Center of half_way_infront_portal <gen>)
    Wait 5.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_023 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_024 for (Picked player) over 5.00 seconds)
    Unit Group - Add all units of (Units owned by Player 5 (Yellow) matching (((Matching unit) is hidden) Equal to False).) to yellowunitgroup
    Unit Group - Pick every unit in yellowunitgroup and do (Order (Picked unit) to Move To.(Center of half_way_infront_portal <gen>))
    Unit - Order Water Lord 0046 <gen> to Move To.(Center of half_way_infront_portal <gen>)
    Unit - Order Bonechewer Berserker 0038 <gen> to Move To.(Center of half_way_infront_portal <gen>)
    Wait 5.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_025 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_026 for (Picked player) over 31.00 seconds)
    Cinematic - Send transmission to (All players) from Blademaster 0001 <gen> named Grom Hellscream: Play No sound and display The others are through. Warsong, commence a full retreat! Huddle close to the shield! It will protect us from the alliance!. Modify duration: Set to 17.00 seconds and Don't wait
    Wait 17.00 seconds
    Cinematic - Send transmission to (All players) from Mok'Nathal Warrior 0030 <gen> named Rexxar: Play No sound and display The shield... The person who I heard talking with Ragnok... I have heard that voice before.... Modify duration: Set to 13.00 seconds and Don't wait
    Wait 13.00 seconds
    Cinematic - Fade out over 1.00 seconds using texture Black Mask and color (0%, 0%, 0%) with 0% transparency
    Sound - Set volume of FlashBack1Second <gen> to 60.00%
    Sound - Play FlashBack1Second <gen>
    Wait 1.00 seconds
    Environment - Turn weatherformap Off
    Unit - Pause all units
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_027 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_028 for (Picked player) over 22.70 seconds)
    Cinematic - Apply a filter over 1.00 seconds using Normal blending on texture Dream, starting with color (100%, 100%, 100%) and 100% transparency and ending with color (100.00%, 20.00%, 30.00%) and 0% transparency
    Trigger - Turn off Music_war_trigger <gen>
    Sound - Clear the music list
    Sound - Stop music After fading
    Wait 2.00 seconds
    Sound - Play 16_Caverns_of_Time__Opening_of_the_D <gen>
    Cinematic - Send transmission to (All players) from Goblin Sapper 0221 <gen> named Neeloc Greedytoes: Play No sound and display I will give you both of my Pong Catapults! But do not think that I will forget this blackmail attempt. Once stung, twice as deadly. You and your clan have not seen the last of me.. Modify duration: Set to 22.00 seconds and Don't wait
    Wait 20.00 seconds
    Cinematic - Apply a filter over 0.70 seconds using Normal blending on texture Black Mask, starting with color (30.00%, 20.00%, 10.00%) and 65.00% transparency and ending with color (100.00%, 100.00%, 100.00%) and 0% transparency
    Sound - Set volume of FlashBackHalfSecondSecond <gen> to 60.00%
    Sound - Play FlashBackHalfSecondSecond <gen>
    Wait 1.70 seconds
    Cinematic - Send transmission to (All players) from Mok'Nathal Warrior 0224 <gen> named Rexxar: Play No sound and display Of course! It was Neeloc Greedytoes who I saw! He swore revenge on the Warsong clan... but I do not see how could he achieve this by talking with Ragnok, unless... Oh no! The shield!. Modify duration: Set to 23.00 seconds and Don't wait
    Wait 23.00 seconds
    Unit - Remove Bomb 0004 <gen> from the game
    Unit - Remove Shadow Master 0037 <gen> from the game
    Unit - Remove Shadowmoon Archmagi 0097 <gen> from the game
    Unit - Remove Water Lord 0046 <gen> from the game
    Unit - Remove Bonechewer Berserker 0038 <gen> from the game
    Unit Group - Pick every unit in yellowunitgroup and do (Remove (Picked unit) from the game)
    Unit Group - Pick every unit in greenunitgroup and do (Remove (Picked unit) from the game)
    Unit Group - Pick every unit in pinkunitgroup and do (Unhide (Picked unit))
    Unit - Change color of (Picked unit) to Red
    Unit - Change ownership of Ragnok 0231 <gen> to Player 7 (Green) and Change color
    Unit - Change ownership of Blademaster 0226 <gen> to Player 4 (Purple) and Change color
    Environment - Turn weatherformap On
    Trigger - Run Scene_Four <gen> (checking conditions)
Scene Four
  Events
  Conditions
  Actions
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_029 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_030 for (Picked player) over 5.00 seconds)
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Unit - Unpause all units
    Cinematic - Send transmission to (All players) from Blademaster 0226 <gen> named Grom Hellscream: Play No sound and display To the shield!. Modify duration: Set to 3.00 seconds and Don't wait
    Unit Group - Add all units of (Units owned by Player 8 (Pink) matching (((Matching unit) is hidden) Equal to False).) to pinkrun
    Unit Group - Remove Bomb 0210 <gen> from pinkrun.
    Unit Group - Remove Haratha 0233 <gen> from pinkrun.
    Unit Group - Remove Mok'Nathal Warrior 0232 <gen> from pinkrun.
    Unit Group - Pick every unit in pinkrun and do (Order (Picked unit) to Move To.(Center of pink_units_run_to <gen>))
    Wait 5.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_031 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_032 for (Picked player) over 15.00 seconds)
    Cinematic - Send transmission to (All players) from Ragnok 0231 <gen> named Ragnok: Play No sound and display You halfwit workers! You are obstructing my path! I need to get to the portal before the shield activates!. Modify duration: Set to 15.00 seconds and Don't wait
    Unit - Make Ragnok 0231 <gen> face Weakling 0229 <gen> over 0.00 seconds
    Wait 1.00 seconds
    Unit - Make Ragnok 0231 <gen> face Weakling 0230 <gen> over 0.00 seconds
    Wait 1.00 seconds
    Unit - Make Ragnok 0231 <gen> face Weakling 0227 <gen> over 0.00 seconds
    Wait 1.00 seconds
    Unit - Make Ragnok 0231 <gen> face Weakling 0228 <gen> over 0.00 seconds
    Wait 1.00 seconds
    Unit - Make Ragnok 0231 <gen> face Weakling 0229 <gen> over 0.00 seconds
    Wait 1.00 seconds
    Unit - Make Ragnok 0231 <gen> face Weakling 0230 <gen> over 0.00 seconds
    Wait 1.00 seconds
    Unit - Make Ragnok 0231 <gen> face Weakling 0227 <gen> over 0.00 seconds
    Wait 1.00 seconds
    Unit - Make Ragnok 0231 <gen> face Weakling 0228 <gen> over 0.00 seconds
    Wait 1.00 seconds
    Unit - Make Ragnok 0231 <gen> face Weakling 0229 <gen> over 0.00 seconds
    Wait 1.00 seconds
    Unit - Make Ragnok 0231 <gen> face Weakling 0230 <gen> over 0.00 seconds
    Wait 1.00 seconds
    Unit - Move Fighter 0208 <gen> instantly to (Center of grunt_1_pink <gen>), facing (Position of Bomb 0210 <gen>)
    Unit - Move Fighter 0209 <gen> instantly to (Center of grunt_2_pink <gen>), facing (Position of Bomb 0210 <gen>)
    Unit - Move Orc Mage 0205 <gen> instantly to (Center of orc_warlock_1_pink <gen>), facing (Position of Bomb 0210 <gen>)
    Unit - Move Orc Mage 0216 <gen> instantly to (Center of warlock_2_pink <gen>), facing (Position of Bomb 0210 <gen>)
    Unit - Move Orc Mage 0217 <gen> instantly to (Center of warlock_3_pink <gen>), facing (Position of Bomb 0210 <gen>)
    Unit - Move Spear Thrower 0204 <gen> instantly to (Center of spear_1_pink <gen>), facing (Position of Bomb 0210 <gen>)
    Unit - Move Spear Thrower 0218 <gen> instantly to (Center of spear_2_pink <gen>), facing (Position of Bomb 0210 <gen>)
    Unit - Move Spear Thrower 0219 <gen> instantly to (Center of spear_3_pink <gen>), facing (Position of Bomb 0210 <gen>)
    Unit - Move Ogre Spellbinder 0211 <gen> instantly to (Center of ogre_1_pink <gen>), facing (Position of Bomb 0210 <gen>)
    Unit - Move Ogre Spellbinder 0213 <gen> instantly to (Center of ogre_2_pink <gen>), facing (Position of Bomb 0210 <gen>)
    Unit - Move Goblin Inventor 0200 <gen> instantly to (Center of goblin_1_pink <gen>), facing (Position of Bomb 0210 <gen>)
    Unit - Move Goblin Inventor 0212 <gen> instantly to (Center of goblin_2_pink <gen>), facing (Position of Bomb 0210 <gen>)
    Unit - Move Dragonspawn Hound 0203 <gen> instantly to (Center of hound_1_pink <gen>), facing (Position of Bomb 0210 <gen>)
    Unit - Move Dragonspawn Hound 0215 <gen> instantly to (Center of hound__2_pink <gen>), facing (Position of Bomb 0210 <gen>)
    Unit - Move Demonic Beast 0214 <gen> instantly to (Center of fel_1_pink <gen>), facing (Position of Bomb 0210 <gen>)
    Unit - Move Demonic Beast 0206 <gen> instantly to (Center of fel_2_pink <gen>), facing (Position of Bomb 0210 <gen>)
    Unit - Make Ragnok 0231 <gen> face Weakling 0227 <gen> over 0.00 seconds
    Wait 1.00 seconds
    Unit - Make Ragnok 0231 <gen> face Weakling 0228 <gen> over 0.00 seconds
    Wait 1.00 seconds
    Unit - Make Ragnok 0231 <gen> face Weakling 0229 <gen> over 0.00 seconds
    Wait 1.00 seconds
    Unit - Make Ragnok 0231 <gen> face Weakling 0230 <gen> over 0.00 seconds
    Wait 1.00 seconds
    Unit - Make Ragnok 0231 <gen> face Weakling 0227 <gen> over 0.00 seconds
    Wait 1.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_033 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_034 for (Picked player) over 7.00 seconds)
    Cinematic - Send transmission to (All players) from Mok'Nathal Warrior 0224 <gen> named Rexxar: Play No sound and display Grom! Get away from that device! It's a.... Modify duration: Set to 7.00 seconds and Don't wait
    Cinematic - Flash a speech indicator for Mok'Nathal Warrior 0232 <gen> of color (100%, 100%, 100%) with 0% transparency
    Wait 7.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_035 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_036 for (Picked player) over 7.00 seconds)
    Unit - Make Blademaster 0226 <gen> face (Center of ogre_1_pink <gen>) over 1.00 seconds
    Cinematic - Send transmission to (All players) from Blademaster 0226 <gen> named Grom Hellscream: Play No sound and display ?. Modify duration: Set to 3.00 seconds and Don't wait
    Wait 3.00 seconds
    Sound - Attach HeroTinkerPissed2 <gen> to Bomb 0210 <gen>
    Sound - Play HeroTinkerPissed2 <gen> at 100% volume, attached to Bomb 0210 <gen>
    Unit - Make Blademaster 0226 <gen> face Bomb 0210 <gen> over 2.00 seconds
    Cinematic - Send transmission to (All players) from Blademaster 0226 <gen> named Grom Hellscream: Play No sound and display !. Modify duration: Set to 2.50 seconds and Don't wait
    Sound - Clear the music list
    Wait 2.50 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_037 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_038 for (Picked player) over 1.00 seconds)
    Animation - Play Bomb 0210 <gen>'s death (animationname) animation
    Wait 1.00 seconds
    Unit - Create 1.Explosion Tauren for Player 1 (Red) at (Center of bomb_explosion_point <gen>) facing Default building facing degrees
    Set VariableSet explosiontauren = (Last created unit)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_039 for (Picked player) over 2.00 seconds)
    Wait 1.00 seconds
    Sound - Stop music Immediately
    Unit Group - Add all units of (Units owned by Player 8 (Pink) matching (((Matching unit) is hidden) Equal to False).) to pinkdeathanimationgroup
    Unit Group - Remove Blademaster 0226 <gen> from pinkdeathanimationgroup.
    Unit Group - Remove Mok'Nathal Warrior 0232 <gen> from pinkdeathanimationgroup.
    Unit Group - Remove Haratha 0233 <gen> from pinkdeathanimationgroup.
    Unit Group - Pick every unit in pinkdeathanimationgroup and do (Play (Picked unit)'s death (animationname) animation)
    Animation - Play Blademaster 0226 <gen>'s death (animationname) animation
    -------- Red + alliance --------
    Player - Make Player 2 (Blue) treat Player 1 (Red) as an Neutral
    Player - Make Player 3 (Teal) treat Player 1 (Red) as an Neutral
    Player - Make Player 11 (Dark Green) treat Player 1 (Red) as an Neutral
    Player - Make Player 1 (Red) treat Player 2 (Blue) as an Neutral
    Player - Make Player 1 (Red) treat Player 3 (Teal) as an Neutral
    Player - Make Player 1 (Red) treat Player 11 (Dark Green) as an Neutral
    -------- Purple + alliance --------
    Player - Make Player 2 (Blue) treat Player 4 (Purple) as an Neutral
    Player - Make Player 3 (Teal) treat Player 4 (Purple) as an Neutral
    Player - Make Player 11 (Dark Green) treat Player 4 (Purple) as an Neutral
    Player - Make Player 4 (Purple) treat Player 2 (Blue) as an Neutral
    Player - Make Player 4 (Purple) treat Player 3 (Teal) as an Neutral
    Player - Make Player 4 (Purple) treat Player 11 (Dark Green) as an Neutral
    Wait 1.00 seconds
    -------- Remove blue teal dg --------
    Unit Group - Add all units of (Units owned by Player 2 (Blue) matching (((Matching unit) is hidden) Equal to False).) to removebluetealdg
    Unit Group - Add all units of (Units owned by Player 3 (Teal) matching (((Matching unit) is hidden) Equal to False).) to removebluetealdg
    Unit Group - Add all units of (Units owned by Player 11 (Dark Green) matching (((Matching unit) is hidden) Equal to False).) to removebluetealdg
    Unit Group - Pick every unit in removebluetealdg and do (Remove (Picked unit) from the game)
    Cinematic - Fade out over 0.00 seconds using texture Black Mask and color (0%, 0%, 0%) with 0% transparency
    Trigger - Run Scene_Five <gen> (checking conditions)
Scene Five
  Events
  Conditions
  Actions
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_027 for (Picked player) over 0 seconds)
    Wait 2.00 seconds
    Sound - Set Animation and Spell Sounds to 0.00%
    Unit - Remove Blademaster 0001 <gen> from the game
    Unit - Remove Bomb 0210 <gen> from the game
    Unit - Change ownership of Mok'Nathal Warrior 0232 <gen> to Player 1 (Red) and Change color
    Unit - Change ownership of Haratha 0233 <gen> to Player 1 (Red) and Change color
    Unit - Move Blademaster 0226 <gen> instantly to (Center of grom_lying_explode <gen>), facing (Center of rexxar_explode <gen>)
    Unit - Move Mok'Nathal Warrior 0232 <gen> instantly to (Center of rexxar_explode <gen>), facing (Center of grom_lying_explode <gen>)
    Unit - Move Haratha 0233 <gen> instantly to (Center of harathe_explode <gen>), facing (Center of grom_lying_explode <gen>)
    Wait 2.00 seconds
    Animation - Play Blademaster 0226 <gen>'s death (animationname) animation
    Unit - Remove explosiontauren from the game
    Sound - Play 16_Caverns_of_Time__Opening_of_the_D <gen>
    Trigger - Turn on Music_Open_portal_trigger <gen>
    Cinematic - Send transmission to (All players) from Mok'Nathal Warrior 0232 <gen> named Rexxar: Play No sound and display Grom! Can you hear me? Grom!. Modify duration: Set to 6.00 seconds and Don't wait
    Wait 6.00 seconds
    Sound - Set Animation and Spell Sounds to 30.00%
    Cinematic - Send transmission to (All players) from Mok'Nathal Warrior 0232 <gen> named Rexxar: Play No sound and display Haratha, bring me that healing salve that is conveniently lying over there for the purpose of allowing Grom to survive this explosion so the plot of this book can develop further!. Modify duration: Set to 21.00 seconds and Don't wait
    Wait 21.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_040 for (Picked player) over 0 seconds)
    Cinematic - Send transmission to (All players) from Haratha 0233 <gen> named Haratha: Play No sound and display Aaah-oooooooh!. Modify duration: Set to 4.00 seconds and Don't wait
    Sound - Attach GnollArcherPissed1 <gen> to Haratha 0098 <gen>
    Sound - Play GnollArcherPissed1 <gen> at 100% volume, attached to Haratha 0098 <gen>
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_041 for (Picked player) over 40.00 seconds)
    Cinematic - Fade in over 2 seconds using texture Black Mask and color (0%, 0%, 0%) with 0% transparency
    Special Effect - Create a special effect attached to the overhead (attachpoint) of Blademaster 0226 <gen> using Abilities\Spells\Items\HealingSalve\HealingSalveTarget.mdl
    Set VariableSet salvespecialeffect = (Last created special effect)
    Wait 2.00 seconds
    Cinematic - Send transmission to (All players) from Blademaster 0226 <gen> named Grom Hellscream: Play No sound and display My head.... Modify duration: Set to 4.00 seconds and Don't wait
    Wait 4.00 seconds
    Animation - Play Blademaster 0226 <gen>'s stand (animationname) animation
    Wait 2.00 seconds
    Special Effect - Destroy salvespecialeffect
    Cinematic - Send transmission to (All players) from Blademaster 0226 <gen> named Grom Hellscream: Play No sound and display The shield.... Modify duration: Set to 4.00 seconds and Don't wait
    Wait 4.00 seconds
    Cinematic - Send transmission to (All players) from Mok'Nathal Warrior 0232 <gen> named Rexxar: Play No sound and display It was never meant to protect us while we retreated through the portal. I suspect it was an explosive that was designed to destroy the portal so the alliance could not follow the horde to Draenor... and we were chosen as the unknowing sacrifices for this plan.... Modify duration: Set to 28.00 seconds and Don't wait
    Wait 28.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_068 for (Picked player) over 0.00 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_069 for (Picked player) over 14.00 seconds)
    Cinematic - Send transmission to (All players) from Mok'Nathal Warrior 0232 <gen> named Rexxar: Play No sound and display Our brothers were not as lucky as you, Grom. The Warsong clan was completely decimated by that device.. Modify duration: Set to 14.00 seconds and Don't wait
    Wait 14.00 seconds
    Unit Group - Pick every unit in pinkdeathanimationgroup and do (Remove (Picked unit) from the game)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_042 for (Picked player) over 0.00 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_043 for (Picked player) over 25.00 seconds)
    Cinematic - Send transmission to (All players) from Blademaster 0226 <gen> named Grom Hellscream: Play No sound and display Ragnok, that traitorous cur! He dare use our clan as pawns? Our warriors now lie dead on a foreign world, with no one to remember their passing. Not even the most despicable of foes deserve such a fate!. Modify duration: Set to 24.00 seconds and Don't wait
    Wait 24.00 seconds
    Animation - Play Weakling 0228 <gen>'s death (animationname) animation
    Unit - Move Ragnok 0231 <gen> instantly to (Center of ragnok_tp_peon <gen>), facing (Center of grom_lying_explode <gen>)
    Unit - Make Blademaster 0226 <gen> face (Center of ragnok_tp_peon <gen>) over 1.00 seconds
    Unit - Make Mok'Nathal Warrior 0232 <gen> face (Center of ragnok_tp_peon <gen>) over 1.00 seconds
    Unit - Make Haratha 0233 <gen> face (Center of ragnok_tp_peon <gen>) over 1.00 seconds
    Unit - Make Weakling 0229 <gen> face (Center of ragnok_tp_peon <gen>) over 1.00 seconds
    Unit - Make Weakling 0230 <gen> face (Center of ragnok_tp_peon <gen>) over 1.00 seconds
    Unit - Make Weakling 0227 <gen> face (Center of ragnok_tp_peon <gen>) over 1.00 seconds
    Wait 1.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_044 for (Picked player) over 0.00 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_045 for (Picked player) over 17.00 seconds)
    Cinematic - Send transmission to (All players) from Ragnok 0231 <gen> named Ragnok: Play No sound and display No... Look what you have done, fools! The alliance has cut us off from the Dark Portal. We are trapped in this forsaken place, doomed to be hunted down like animals.. Modify duration: Set to 21.00 seconds and Don't wait
    Wait 17.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_046 for (Picked player) over 0.00 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_047 for (Picked player) over 4.00 seconds)
    -------- Mid left run portal --------
    Unit - Move Gryphon Knight 0109 <gen> instantly to (Center of blue_knight_left_1_portal <gen>), facing 90.00 degrees
    Unit - Order Gryphon Knight 0109 <gen> to Move To.(Center of blue_mid_left_portal_run <gen>)
    Unit - Move Bandit Axe Thrower 0084 <gen> instantly to (Center of dg_axe_throw_left_portal <gen>), facing 90.00 degrees
    Unit - Order Bandit Axe Thrower 0084 <gen> to Move To.(Center of blue_mid_left_portal_run <gen>)
    Unit - Move Trickster 0136 <gen> instantly to (Center of dg_trickster_left_portal <gen>), facing 90.00 degrees
    Unit - Order Trickster 0136 <gen> to Move To.(Center of blue_mid_left_portal_run <gen>)
    -------- Left run portal --------
    Unit - Move Dark Knight 0170 <gen> instantly to (Center of dg_left_knight_portal_1 <gen>), facing 90.00 degrees
    Unit - Order Dark Knight 0170 <gen> to Move To.(Center of blue_far_left_portal_run <gen>)
    Unit - Move Recruit 0154 <gen> instantly to (Center of blue_footman_portal_left <gen>), facing 90.00 degrees
    Unit - Order Recruit 0154 <gen> to Move To.(Center of blue_far_left_portal_run <gen>)
    Unit - Move Sharpshooter 0184 <gen> instantly to (Center of blue_crossow_left_portal <gen>), facing 90.00 degrees
    Unit - Order Sharpshooter 0184 <gen> to Move To.(Center of blue_far_left_portal_run <gen>)
    -------- Mid right run portal --------
    Unit - Move Gryphon Knight 0005 <gen> instantly to (Center of blueknight_portal_right_1 <gen>), facing 90.00 degrees
    Unit - Order Gryphon Knight 0005 <gen> to Move To.(Center of blue_mid_right_portal_run <gen>)
    Unit - Move Bandit Axe Thrower 0147 <gen> instantly to (Center of dg_axe_throw_portal_right <gen>), facing 90.00 degrees
    Unit - Order Bandit Axe Thrower 0147 <gen> to Move To.(Center of blue_mid_right_portal_run <gen>)
    Unit - Move Trickster 0000 <gen> instantly to (Center of dg_right_tricker_portal <gen>), facing 90.00 degrees
    Unit - Order Trickster 0000 <gen> to Move To.(Center of blue_mid_right_portal_run <gen>)
    -------- Right run portal --------
    Unit - Move Dark Knight 0137 <gen> instantly to (Center of dg_knight_portal_right <gen>), facing 90.00 degrees
    Unit - Order Dark Knight 0137 <gen> to Move To.(Center of blue_far_right_portal_run <gen>)
    Unit - Move Recruit 0153 <gen> instantly to (Center of blue_footman_portal_right <gen>), facing 90.00 degrees
    Unit - Order Recruit 0153 <gen> to Move To.(Center of blue_far_right_portal_run <gen>)
    Unit - Move Sharpshooter 0183 <gen> instantly to (Center of blue_right_portal_crossbow <gen>), facing 90.00 degrees
    Unit - Order Sharpshooter 0183 <gen> to Move To.(Center of blue_far_right_portal_run <gen>)
    Wait 4.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_048 for (Picked player) over 0.00 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_049 for (Picked player) over 11.00 seconds)
    Cinematic - Send transmission to (All players) from Blademaster 0226 <gen> named Grom Hellscream: Play No sound and display It is not the alliance you should be worried about right now.... Modify duration: Set to 11.00 seconds and Don't wait
    Wait 11.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_050 for (Picked player) over 0.00 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_051 for (Picked player) over 29.00 seconds)
    Cinematic - Send transmission to (All players) from Ragnok 0231 <gen> named Ragnok: Play No sound and display Is that a threat? Ha! You fail to realize that when Gul'dan created the Death Knights, we ascended to a state of godhood, little orc. Soulripper only fell due to his own carelessness--- Should you try to contend with me, I will crush you and your motley, ragtag group!. Modify duration: Set to 27.00 seconds and Don't wait
    Wait 25.00 seconds
    Unit - Order Ragnok 0231 <gen> to Move To.(Center of run_ragnok <gen>)
    Wait 4.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_080 for (Picked player) over 0.00 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_081 for (Picked player) over 26.00 seconds)
    Unit - Make Blademaster 0226 <gen> face (Center of rexxar_explode <gen>) over 0 seconds
    Cinematic - Send transmission to (All players) from Mok'Nathal Warrior 0232 <gen> named Rexxar: Play No sound and display Grom... I thirst for vengeance just as much as you do, but we cannot possibly take on Ragnok in our current state--- He can summon armies of the dead with the click of his fingers, while we are only two in number- three if you count Haratha.. Modify duration: Set to 26.00 seconds and Don't wait
    Wait 26.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_054 for (Picked player) over 0.00 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_055 for (Picked player) over 62.00 seconds)
    Wait 22.00 seconds
    Cinematic - Send transmission to (All players) from Mok'Nathal Warrior 0232 <gen> named Rexxar: Play No sound and display Additionally, the alliance will begin sending search groups after us soon. Our best option is to flee into the woods and reconsider how we will get home.... Modify duration: Set to 20.00 seconds and Don't wait
    Wait 20.00 seconds
    Unit - Make Blademaster 0226 <gen> face (Center of ragnok_tp_peon_face <gen>) over 1.00 seconds
    Cinematic - Send transmission to (All players) from Blademaster 0226 <gen> named Grom Hellscream: Play No sound and display You forget one thing Rexxar--- In the Warcraft universe, we can make buildings that create 100 food limit armies out of thin air as long as we have builders.. Modify duration: Set to 20.00 seconds and Don't wait
    Wait 20.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_056 for (Picked player) over 0.00 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_057 for (Picked player) over 27.00 seconds)
    Cinematic - Send transmission to (All players) from Mok'Nathal Warrior 0232 <gen> named Rexxar: Play No sound and display Even with a 100 food limit army, we could not fight Ragnok's risen armies and hold off the alliance. It is not the suicidal nature of your plan that deters me--- I am perfectly willing to die for a cause--- It is the fact that we will not be able to kill Ragnok regardless!. Modify duration: Set to 27.00 seconds and Don't wait
    Wait 27.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_058 for (Picked player) over 0.00 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_059 for (Picked player) over 29.00 seconds)
    Cinematic - Send transmission to (All players) from Blademaster 0226 <gen> named Grom Hellscream: Play No sound and display Then we will break the game contraints on the World Editor and reach a 200 food limit. Anything is possible if one's spirit is strong enough. The question that remains is--- Are you and Haratha willing to accompany on this journey, to challenge the contraints of the World Editor, keep the alliance at bay, and execute that rotting deceiver?. Modify duration: Set to 29.00 seconds and Don't wait
    Wait 19.00 seconds
    Unit - Make Blademaster 0226 <gen> face (Center of rexxar_explode <gen>) over 0 seconds
    Wait 10.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_060 for (Picked player) over 0.00 seconds)
    Cinematic - Send transmission to (All players) from Haratha 0233 <gen> named Haratha: Play No sound and display Aaah-oooooooh!. Modify duration: Set to 4.00 seconds and Don't wait
    Sound - Attach GnollArcherPissed1 <gen> to Haratha 0098 <gen>
    Sound - Play GnollArcherPissed1 <gen> at 100% volume, attached to Haratha 0098 <gen>
    Wait 4.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_061 for (Picked player) over 0.00 seconds)
    Cinematic - Send transmission to (All players) from Mok'Nathal Warrior 0232 <gen> named Rexxar: Play No sound and display ...Of course, Grom. We will follow you wherever you go, no matter what the odds.. Modify duration: Set to 12.00 seconds and Don't wait
    Unit - Make Weakling 0229 <gen> face (Center of grom_lying_explode <gen>) over 1.00 seconds
    Unit - Make Weakling 0230 <gen> face (Center of grom_lying_explode <gen>) over 1.00 seconds
    Unit - Make Weakling 0227 <gen> face (Center of grom_lying_explode <gen>) over 1.00 seconds
    Wait 12.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_062 for (Picked player) over 0.00 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_063 for (Picked player) over 5.00 seconds)
    Cinematic - Send transmission to (All players) from Weakling 0229 <gen> named Weakling: Play No sound and display Me busy. Leave me alone.. Modify duration: Set to 5.00 seconds and Don't wait
    Sound - Attach PeonPissed2 <gen> to Weakling 0229 <gen>
    Sound - Play PeonPissed2 <gen> at 100% volume, attached to Weakling 0229 <gen>
    Unit - Make Haratha 0233 <gen> face (Center of ragnok_tp_peon_face <gen>) over 1.00 seconds
    Unit - Make Mok'Nathal Warrior 0232 <gen> face (Center of ragnok_tp_peon_face <gen>) over 1.00 seconds
    Unit - Make Blademaster 0226 <gen> face (Center of ragnok_tp_peon_face <gen>) over 1.00 seconds
    Wait 5.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_064 for (Picked player) over 0.00 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_065 for (Picked player) over 21.00 seconds)
    Cinematic - Send transmission to (All players) from Blademaster 0226 <gen> named Grom Hellscream: Play No sound and display No one asked for your opinion, weakling. You are coming with us whether you want to or not. Let's move out, before the alliance picks up our trail! We cannot let Ragnok get too much of a lead on us!. Modify duration: Set to 23.00 seconds and Don't wait
    Wait 21.00 seconds
    Unit - Order Weakling 0230 <gen> to Move To.(Center of run_ragnok <gen>)
    Unit - Order Weakling 0229 <gen> to Move To.(Center of run_ragnok <gen>)
    Unit - Order Weakling 0227 <gen> to Move To.(Center of run_ragnok <gen>)
    Unit - Order Haratha 0233 <gen> to Move To.(Center of run_ragnok <gen>)
    Unit - Order Mok'Nathal Warrior 0232 <gen> to Move To.(Center of run_ragnok <gen>)
    Unit - Order Blademaster 0226 <gen> to Move To.(Center of run_ragnok <gen>)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_066 for (Picked player) over 0.00 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_067 for (Picked player) over 7.00 seconds)
    Wait 4.00 seconds
    Cinematic - Fade out over 3.00 seconds using texture Black Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 3.00 seconds
    Trigger - Run Scene_Six <gen> (checking conditions)
Scene Six
  Events
  Conditions
  Actions
    -------- Reveal grey Brown --------
    Unit Group - Pick every unit in greygroup and do (Unhide (Picked unit))
    Unit Group - Pick every unit in greygroup and do (Change ownership of (Picked unit) to Player 2 (Blue) and Change color)
    Unit - Change ownership of Lord Wizard 0261 <gen> to Player 3 (Teal) and Change color
    Unit - Change ownership of Alliance Lieutenant 0263 <gen> to Player 3 (Teal) and Change color
    Unit Group - Pick every unit in browngroup and do (Unhide (Picked unit))
    Unit Group - Pick every unit in browngroup and do (Change ownership of (Picked unit) to Player 11 (Dark Green) and Change color)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_070 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_071 for (Picked player) over 36.00 seconds)
    Cinematic - Fade in over 2 seconds using texture Black Mask and color (0%, 0%, 0%) with 0% transparency
    Cinematic - Send transmission to (All players) from Lord Wizard 0261 <gen> named Khadgar: Play No sound and display We believe that they were trying to blow up the Dark Portal behind them, but something must have gone wrong.. Modify duration: Set to 16.00 seconds and Don't wait
    Wait 16.00 seconds
    Cinematic - Send transmission to (All players) from Slow Tura 0262 <gen> named Turalyon: Play No sound and display We are fortunate they did not succeed in their plan. Without the Book of Medivh, we would be unable to recreate the portal even if that were an available option.. Modify duration: Set to 20.00 seconds and Don't wait
    Wait 20.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_072 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_073 for (Picked player) over 58.00 seconds)
    Cinematic - Send transmission to (All players) from Alleria 0273 <gen> named Alleria Windrunner: Play No sound and display Those remaining orcs who did not cross through the Dark Portal are running in the direction of the southern valley. There are no other exits to that region besides the entrance. They have effectively trapped themselves--- There is no escape for those wretched creatures.. Modify duration: Set to 29.00 seconds and Don't wait
    Unit - Order Alleria 0273 <gen> to Move To.(Center of alleria_run_to_end <gen>)
    Unit - Make Slow Tura 0262 <gen> face (Center of alleria_run_to_end <gen>) over 1.00 seconds
    Unit - Make Lord Wizard 0261 <gen> face (Center of alleria_run_to_end <gen>) over 1.00 seconds
    Unit - Make Bandit Paladin 0264 <gen> face (Center of alleria_run_to_end <gen>) over 1.00 seconds
    Unit - Make Alliance Lieutenant 0263 <gen> face (Center of alleria_run_to_end <gen>) over 1.00 seconds
    Unit - Make Gryphon Rider 0252 <gen> face (Center of alleria_run_to_end <gen>) over 1.00 seconds
    Wait 29.00 seconds
    Cinematic - Send transmission to (All players) from Slow Tura 0262 <gen> named Turalyon: Play No sound and display While I am curious why they would choose such a course of action, they are not our immediate concern. I will station a regiment at the mouth of the valley to keep them trapped until we can afford to send more soldiers into that region to end the threat they constitute--- Right now, we need our available troops with us on our expedition through the Portal.. Modify duration: Set to 29.00 seconds and Don't wait
    Wait 29.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_074 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_075 for (Picked player) over 26.00 seconds)
    Cinematic - Send transmission to (All players) from Slow Tura 0262 <gen> named Turalyon: Play No sound and display Sons of Lothar!. Modify duration: Set to 4.00 seconds and Don't wait
    Unit - Make Slow Tura 0262 <gen> face (Center of dark_portal_disappear <gen>) over 1.00 seconds
    Unit - Make Lord Wizard 0261 <gen> face Slow Tura 0262 <gen> over 1.00 seconds
    Unit - Make Bandit Paladin 0264 <gen> face Slow Tura 0262 <gen> over 1.00 seconds
    Unit - Make Gryphon Rider 0252 <gen> face Slow Tura 0262 <gen> over 1.00 seconds
    Unit - Make Alliance Lieutenant 0263 <gen> face Slow Tura 0262 <gen> over 1.00 seconds
    Unit - Make Alleria 0273 <gen> face Slow Tura 0262 <gen> over 1.00 seconds
    Trigger - Turn off Music_Open_portal_trigger <gen>
    Sound - Clear the music list
    Sound - Stop music After fading
    Wait 4.00 seconds
    Sound - Play 01_The_Burning_Legion__Main_Title_u <gen>
    Cinematic - Send transmission to (All players) from Slow Tura 0262 <gen> named Turalyon: Play No sound and display We have faced battle before. We have faced loss and defeat, and known victory. Now we face the unknown.. Modify duration: Set to 16.00 seconds and Don't wait
    Wait 16.00 seconds
    Cinematic - Send transmission to (All players) from Slow Tura 0262 <gen> named Turalyon: Play No sound and display For the alliance! For the Light!. Modify duration: Set to 6.00 seconds and Don't wait
    Wait 6.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_076 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_077 for (Picked player) over 26.00 seconds)
    Animation - Play Slow Tura 0262 <gen>'s stand channel (animationname) animation
    Cinematic - Send transmission to (All players) from No unit named Christie Golden/Aaron Rosenberg: Play No sound and display Turalyon lifted his hammer and a cheer rose up as it began to glow with a sharp, clear white radiance.. Modify duration: Set to 16.00 seconds and Don't wait
    Wait 16.00 seconds
    Animation - Reset Slow Tura 0262 <gen>'s animation
    Cinematic - Send transmission to (All players) from No unit named Christie Golden/Aaron Rosenberg: Play No sound and display Turalyon turned his horse and spurred it up the stone ramp toward the Dark Portal. The swirling light beckoned, and he passed through it, its greenish glow overpowering his own white light for an instant before he vanished completely between the columns.. Modify duration: Set to 28.00 seconds and Don't wait
    Wait 10.00 seconds
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_078 for (Picked player) over 0 seconds)
    Player Group - Pick every player in PLAYERREDANDPURPLE and do (.Apply. gg_cam_Camera_079 for (Picked player) over 8.00 seconds)
    Unit - Order Slow Tura 0262 <gen> to Move To.(Center of dark_portal_disappear <gen>)
    Unit - Make Gryphon Rider 0252 <gen> face (Center of dark_portal_disappear <gen>) over 2.00 seconds
    Unit - Make Alliance Lieutenant 0263 <gen> face (Center of dark_portal_disappear <gen>) over 2.00 seconds
    Unit - Make Alleria 0273 <gen> face (Center of dark_portal_disappear <gen>) over 2.00 seconds
    Unit - Make Lord Wizard 0261 <gen> face (Center of dark_portal_disappear <gen>) over 2.00 seconds
    Unit - Make Bandit Paladin 0264 <gen> face (Center of dark_portal_disappear <gen>) over 2.00 seconds
    Wait 6.00 seconds
    Cinematic - Fade out over 2 seconds using texture Black Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 14.00 seconds
    Game - Victory Player 1 (Red) (Show dialogs, Skip scores)
    Game - Victory Player 4 (Purple) (Show dialogs, Skip scores)
Human
  Events
    Unit - A unit Finishes an upgrade
  Conditions
    (Unit-type of (Triggering unit)) Equal to Alternate Altar of Unity
  Actions
    Unit - Change ownership of (Triggering unit) to Player 3 (Teal) and Change color
Shredder
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Self-Destruct (Goblin Sapper)
  Actions
    Special Effect - Create a special effect attached to the overhead (attachpoint) of (Triggering unit) using Objects\Spawnmodels\Other\NeutralBuildingExplosion\NeutralBuildingExplosion.mdl
    Wait 3.00 seconds
    Special Effect - Destroy (Last created special effect)
Earth Fury
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Earth Fury
  Actions
    -------- ------------------------------------------------------------------------------------------------- --------
    -------- Getting the Spell constants --------
    -------- ------------------------------------------------------------------------------------------------- --------
    Set VariableSet Earth_Fury_Caster = (Triggering unit)
    Set VariableSet Earth_Fury_Owner = (Owner of Earth_Fury_Caster)
    Set VariableSet Earth_Fury_Location = (Position of Earth_Fury_Caster)
    Set VariableSet Earth_Fury_Ability_Level = (Level of (Ability being cast) for Earth_Fury_Caster)
    -------- ------------------------------------------------------------------------------------------------- --------
    -------- Setting the Spell values --------
    -------- ------------------------------------------------------------------------------------------------- --------
    Set VariableSet Earth_Fury_Dummy_Ability = Earth Fury(dummy)
    Set VariableSet Earth_Fury_Dummy_Ability_2 = Earth Fury(dummy frenzy)
    Set VariableSet Earth_Fury_Chance = 45.00
    Set VariableSet Earth_Fury_Base_Damage = 50.00
    Set VariableSet Earth_Fury_Bonus_Damage = 75.00
    Set VariableSet Earth_Fury_Total_Damage = (Earth_Fury_Base_Damage + (Earth_Fury_Bonus_Damage x (Real(Earth_Fury_Ability_Level))))
    Set VariableSet Earth_Fury_Base_Area_of_Effect = 125.00
    Set VariableSet Earth_Fury_AoE_Bouns = 75.00
    Set VariableSet Earth_Fury_Total_Area_of_Effec = (Earth_Fury_Base_Area_of_Effect + (Earth_Fury_AoE_Bouns x (Real(Earth_Fury_Ability_Level))))
    Set VariableSet Earth_Fury_Damage_Group = (Units within Earth_Fury_Total_Area_of_Effec of Earth_Fury_Location matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Owner of (Matching unit)) is an enemy of Earth_Fury_Owner.) Equal to True))).)
    -------- ------------------------------------------------------------------------------------------------- --------
    -------- If/Then/Else checks for a chance --------
    -------- ------------------------------------------------------------------------------------------------- --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Random real number between 1.00 and 100.00) Less than or equal to Earth_Fury_Chance
      Then - Actions
        -------- ------------------------------------------------------------------------------------------------- --------
        -------- Creating and setting the dummy unit --------
        -------- ------------------------------------------------------------------------------------------------- --------
        Unit - Create 1.Dummy for Earth_Fury_Owner at Earth_Fury_Location facing Default building facing degrees
        Unit - Add a 1.50 second Generic expiration timer to (Last created unit)
        Unit - Add Earth_Fury_Dummy_Ability to (Last created unit)
        Unit - Set level of Earth_Fury_Dummy_Ability for (Last created unit) to Earth_Fury_Ability_Level
        Unit - Order (Last created unit) to Night Elf Warden - Fan Of Knives.
        -------- ------------------------------------------------------------------------------------------------- --------
        -------- Creating and setting the dummy unit --------
        -------- ------------------------------------------------------------------------------------------------- --------
        Unit - Create 1.Dummy(Earth Fury) for Earth_Fury_Owner at Earth_Fury_Location facing Default building facing degrees
        Unit - Add a 1.50 second Generic expiration timer to (Last created unit)
        Unit - Add Earth_Fury_Dummy_Ability_2 to (Last created unit)
        Unit - Set level of Earth_Fury_Dummy_Ability_2 for (Last created unit) to Earth_Fury_Ability_Level
        Unit - Order (Last created unit) to Undead Necromancer - Unholy Frenzy.Earth_Fury_Caster
      Else - Actions
    Unit Group - Pick every unit in Earth_Fury_Damage_Group and do (Actions)
      Loop - Actions
        -------- ------------------------------------------------------------------------------------------------- --------
        -------- Damaging the Arera and creating special effect --------
        -------- ------------------------------------------------------------------------------------------------- --------
        Unit - Cause Earth_Fury_Caster to damage (Picked unit), dealing Earth_Fury_Total_Damage damage of attack type Spells and damage type Unknown
        Special Effect - Create a special effect attached to the origin (attachpoint) of (Picked unit) using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
        Special Effect - Destroy (Last created special effect)
    -------- ------------------------------------------------------------------------------------------------- --------
    -------- Creating nice special effect --------
    -------- ------------------------------------------------------------------------------------------------- --------
    Special Effect - Create a special effect at Earth_Fury_Location using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
    Special Effect - Destroy (Last created special effect)
    Special Effect - Create a special effect at Earth_Fury_Location using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
    Special Effect - Destroy (Last created special effect)
    Special Effect - Create a special effect at Earth_Fury_Location using Doodads\LordaeronSummer\Terrain\LoardaeronRockChunks\LoardaeronRockChunks0.mdl
    Special Effect - Destroy (Last created special effect)
    -------- ------------------------------------------------------------------------------------------------- --------
    -------- Clearing leaks --------
    -------- ------------------------------------------------------------------------------------------------- --------
    Custom script: call RemoveLocation(udg_Earth_Fury_Location)
    Custom script: call DestroyGroup(udg_Earth_Fury_Damage_Group)
===========================================================================
Hello,
Here's a simple MUI spell for everyone. This increases the agility of a hero for a period of time.
At the start of the spell, a percentage of the given amount of agility damages the sorounding melee units around the casting hero.
Copy the triggers and the variables into your map.
Do not forget to give credits to me if you use this in your map.

Thanks you,

eubz.
============================================================================
Set these:
AgileConfig
  Events
    Map initialization
  Conditions
  Actions
    -------- //////////////////////////////////////////////////////////////////////// --------
    -------- You can modify the integers here --------
    -------- To get how much time is used for the spell, multiply RTime by the level of the ability. --------
    -------- Also, to get the amount of agility, multiply RAmount by the level of the ability. --------
    -------- It is simple: --------
    -------- Time = RTime x Level of the Ability being cast --------
    -------- Agility = RAmount x Level of the Ability being cast --------
    -------- //////////////////////////////////////////////////////////////////////// --------
    -------- ------------------------------------------------------------------------------------------------------------ --------
    Set VariableSet AgileAbility = Agile
    -------- ------------------------------------------------------------------------------------------------------------ --------
    Set VariableSet AgileRTime = 5
    Set VariableSet AgileRAmount = 25
    Set VariableSet AgileDamagePercent = 4.00
    Set VariableSet AgileDamageSize = 300
    -------- ------------------------------------------------------------------------------------------------------------ --------
    Set VariableSet AgileSFX1 = Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
    Set VariableSet AgileSFX1_AP = origin
    Set VariableSet AgileSFX2 = Abilities\Spells\Human\InnerFire\InnerFireTarget.mdl
    Set VariableSet AgileSFX2_AP = overhead
    Set VariableSet AgileSFX3 = Abilities\Weapons\GlaiveMissile\GlaiveMissileTarget.mdl
    Set VariableSet AgileSFX3_Ap = origin
    -------- //////////////////////////////////////////////////////////////////////// --------
    -------- Divide the given agility by the DamagePercent to get the damage dealt to the sorrounding melee units --------
    -------- Damage size is the Area of Effect multiplied by the level of the level of Agile --------
    -------- //////////////////////////////////////////////////////////////////////// --------

AgileAbilityCast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to AgileAbility
  Actions
    -------- //////////////////////////////////////////////////////////////////////// --------
    -------- Do not modify anything found below --------
    -------- //////////////////////////////////////////////////////////////////////// --------
    -------- ------------------------------------------------------------------------------------------------------------ --------
    -------- counting how many are using the ability --------
    Set VariableSet Agileindex_size = (Agileindex_size + 1)
    -------- ------------------------------------------------------------------------------------------------------------ --------
    -------- indexing --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Agileindex_size Greater than Agileindex_max_size
      Then - Actions
        Set VariableSet Agileindex[Agileindex_size] = Agileindex_size
        Set VariableSet Agileindex_max_size = Agileindex_size
      Else - Actions
    Set VariableSet AgileInteger = Agileindex[Agileindex_size]
    -------- done indexing --------
    -------- ------------------------------------------------------------------------------------------------------------ --------
    -------- setting for the arrays --------
    Set VariableSet AgileCasters[AgileInteger] = (Triggering unit)
    Set VariableSet AgileLevel = (Level of Agile for AgileCasters[AgileInteger])
    Set VariableSet AgileAmount[AgileInteger] = (AgileRAmount x AgileLevel)
    Set VariableSet AgileTime[AgileInteger] = (AgileRTime x AgileLevel)
    Set VariableSet AgileDamage = (AgileAmount[AgileInteger] / 4)
    Set VariableSet Agile_AoE = ((Real(AgileDamageSize)) x (Real((Level of Agile for AgileCasters[AgileInteger]))))
    Set VariableSet AgileDamageArea = (Position of AgileCasters[AgileInteger])
    Set VariableSet AgileDamageEnemy = (Units within Agile_AoE of AgileDamageArea matching ((((Matching unit) belongs to an enemy of (Owner of AgileCasters[AgileInteger]).) Equal to True) and (((Matching unit) is A melee attacker) Equal to True)).)
    -------- ------------------------------------------------------------------------------------------------------------ --------
    -------- The ability is given here --------
    Hero - Modify Agility of AgileCasters[AgileInteger]: Add AgileAmount[AgileInteger].
    -------- additional 1/4 damage take from the given agility. --------
    Unit Group - Pick every unit in AgileDamageEnemy and do (Actions)
      Loop - Actions
        Set VariableSet AgileEnemies = (Picked unit)
        Unit - Cause AgileCasters[AgileInteger] to damage AgileEnemies, dealing (Real(AgileDamage)) damage of attack type Spells and damage type Normal
        Special Effect - Create a special effect attached to the AgileSFX3_Ap of AgileEnemies using AgileSFX3
        Special Effect - Destroy (Last created special effect)
    -------- ------------------------------------------------------------------------------------------------------------ --------
    -------- Also giving some special effects --------
    Special Effect - Create a special effect attached to the AgileSFX1_AP of AgileCasters[AgileInteger] using AgileSFX1
    Special Effect - Destroy (Last created special effect)
    Special Effect - Create a special effect attached to the AgileSFX2_AP of AgileCasters[AgileInteger] using AgileSFX2
    Set VariableSet AgileCasterSE[AgileInteger] = (Last created special effect)
    -------- ------------------------------------------------------------------------------------------------------------ --------
    Custom script: call RemoveLocation(udg_AgileDamageArea)
    Custom script: call DestroyGroup(udg_AgileDamageEnemy)
    -------- turning on the cast time --------
    Trigger - Turn on AgileTime <gen>
    -------- ------------------------------------------------------------------------------------------------------------ --------
    -------- //////////////////////////////////////////////////////////////////////// --------
AgileTime
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    -------- //////////////////////////////////////////////////////////////////////// --------
    -------- Do not modify anything found below --------
    -------- //////////////////////////////////////////////////////////////////////// --------
    -------- ------------------------------------------------------------------------------------------------------------ --------
    For each (Integer AgileLoop) from 1 to Agileindex_size, do (Actions)
      Loop - Actions
        Set VariableSet AgileInteger = Agileindex[AgileLoop]
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            AgileTime[AgileInteger] Greater than 0
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (AgileCasters[AgileInteger] is dead) Equal to True
              Then - Actions
                Hero - Modify Agility of AgileCasters[AgileInteger]: Subtract AgileAmount[AgileInteger].
                Special Effect - Destroy AgileCasterSE[AgileInteger]
                Set VariableSet Agileindex[AgileLoop] = Agileindex[Agileindex_size]
                Set VariableSet Agileindex[Agileindex_size] = AgileInteger
                Set VariableSet Agileindex_size = (Agileindex_size - 1)
                Set VariableSet AgileLoop = (AgileLoop - 1)
                If (Agileindex_size Equal to 0) then do (Turn off (This trigger)) else do (Do nothing)
              Else - Actions
                Set VariableSet AgileTime[AgileInteger] = (AgileTime[AgileInteger] - 1)
          Else - Actions
            -------- giving back the original Agility to the caster --------
            Hero - Modify Agility of AgileCasters[AgileInteger]: Subtract AgileAmount[AgileInteger].
            -------- ------------------------------------------------------------------------------------------------------------ --------
            -------- needs to destroy its Special Effects --------
            Special Effect - Destroy AgileCasterSE[AgileInteger]
            -------- ------------------------------------------------------------------------------------------------------------ --------
            -------- recycling --------
            Set VariableSet Agileindex[AgileLoop] = Agileindex[Agileindex_size]
            Set VariableSet Agileindex[Agileindex_size] = AgileInteger
            Set VariableSet Agileindex_size = (Agileindex_size - 1)
            Set VariableSet AgileLoop = (AgileLoop - 1)
            -------- ------------------------------------------------------------------------------------------------------------ --------
            -------- trigger shut off --------
            If (Agileindex_size Equal to 0) then do (Turn off (This trigger)) else do (Do nothing)
            -------- ------------------------------------------------------------------------------------------------------------ --------
    -------- //////////////////////////////////////////////////////////////////////// --------
Init Copy 2
  Events
    Map initialization
  Conditions
  Actions
    For each (Integer A) from 1 to 12, do (Actions)
      Loop - Actions
        Player - Disable Battle Focus Book for (Player((Integer A)))
        Player - Disable Battle Focus Caster Book for (Player((Integer A)))
    -------- First copy the dummy units then the buffs and abilities. After that copy the triggers and make sure it automatically generate new variables. --------
    -------- After the copy the triggers may screw up sometimes. Check if the triggers you copied and the original triggers are the same. If not, fox the changes. --------
Battle Focus
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Battle Focus
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        BFHas[BFLastRecycled] Equal to True
      Then - Actions
        Set VariableSet BFMax = (BFMax + 1)
        Set VariableSet BFIndex = BFMax
      Else - Actions
        Set VariableSet BFIndex = BFLastRecycled
        Set VariableSet BFLastRecycled = BFRecycledList[BFLastRecycled]
    Set VariableSet BFCaster[BFIndex] = (Triggering unit)
    Set VariableSet BFHas[BFIndex] = True
    Set VariableSet BFCount = (BFCount + 1)
    Set VariableSet BFTimer[BFIndex] = (1.00 + (1.00 x (Real((Level of Battle Focus for BFCaster[BFIndex])))))
    Set VariableSet BFAbility[BFIndex] = Battle Focus Book
    Set VariableSet BFCasterAbility[BFIndex] = Battle Focus Caster Book
    Unit - Add BFCasterAbility[BFIndex] to BFCaster[BFIndex]
    Set VariableSet TempLoc = (Position of (Triggering unit))
    Unit - Create 1.Battle Focus Aura for (Triggering player) at TempLoc facing Default building facing degrees
    Set VariableSet BFAura[BFIndex] = (Last created unit)
    Animation - Change BFAura[BFIndex]'s vertex coloring to (0.00%, 100%, 100%) with 0.00% transparency
    Animation - Change BFAura[BFIndex]'s size to (350.00%, 350.00%, 350.00%) of its original size
    Unit - Create 1.Battle Focus Aura for (Triggering player) at TempLoc facing Default building facing degrees
    Set VariableSet BFAura2[BFIndex] = (Last created unit)
    Animation - Change BFAura2[BFIndex]'s vertex coloring to (0.00%, 100%, 100%) with 0.00% transparency
    Animation - Change BFAura[BFIndex]'s size to (250.00%, 250.00%, 250.00%) of its original size
    Animation - Change BFAura2[BFIndex]'s animation speed to 15.00% of its original speed
    Unit - Create 1.Battle Focus Aura for (Triggering player) at TempLoc facing Default building facing degrees
    Set VariableSet BFAura3[BFIndex] = (Last created unit)
    Animation - Change BFAura3[BFIndex]'s vertex coloring to (0.00%, 100%, 100%) with 0.00% transparency
    Animation - Change BFAura3[BFIndex]'s size to (175.00%, 175.00%, 175.00%) of its original size
    Animation - Change BFAura3[BFIndex]'s animation speed to 10.00% of its original speed
    Set VariableSet BFGroup[BFIndex] = (Units within 300.00 of TempLoc matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an ally of (Owner of BFCaster[BFIndex]).) Equal to True))).)
    Unit Group - Pick every unit in BFGroup[BFIndex] and do (Actions)
      Loop - Actions
        Unit - Add BFAbility[BFIndex] to (Picked unit)
    Custom script: call RemoveLocation (udg_TempLoc)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Battle_Focus_Loop <gen> is on) Equal to False
      Then - Actions
        Trigger - Turn on Battle_Focus_Loop <gen>
      Else - Actions
Battle Focus Loop
  Events
    Time - Every 0.03 seconds of game time
  Conditions
  Actions
    For each (Integer BFInteger) from 0 to BFMax, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            BFHas[BFInteger] Equal to True
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                BFTimer[BFInteger] Greater than 0.00
              Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (BFCaster[BFIndex] is dead) Equal to True
                  Then - Actions
                    Set VariableSet BFTimer[BFInteger] = 0.00
                  Else - Actions
                    Set VariableSet BFTimer[BFInteger] = (BFTimer[BFInteger] - 0.03)
                    Set VariableSet TempLoc = (Position of BFCaster[BFInteger])
                    Unit - Move BFAura[BFInteger] instantly to TempLoc
                    Unit - Move BFAura2[BFInteger] instantly to TempLoc
                    Unit - Move BFAura3[BFInteger] instantly to TempLoc
                    Set VariableSet TempGroup = (Units within 300.00 of TempLoc matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an ally of (Owner of BFCaster[BFInteger]).) Equal to True))).)
                    Unit Group - Pick every unit in TempGroup and do (Actions)
                      Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            ((Picked unit) is in BFGroup[BFInteger].) Equal to False
                          Then - Actions
                            Unit Group - Add (Picked unit) to BFGroup[BFInteger]
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              If - Conditions
                                (Level of Battle Focus Critical for (Picked unit)) Greater than 0
                              Then - Actions
                              Else - Actions
                                Unit - Add BFAbility[BFInteger] to (Picked unit)
                          Else - Actions
                    Unit Group - Pick every unit in BFGroup[BFInteger] and do (Actions)
                      Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            ((Picked unit) is in TempGroup.) Equal to False
                          Then - Actions
                            Unit Group - Remove (Picked unit) from BFGroup[BFInteger].
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              If - Conditions
                                (Level of Battle Focus Critical for (Picked unit)) Greater than 0
                              Then - Actions
                                Unit - Remove BFAbility[BFInteger] from (Picked unit)
                              Else - Actions
                          Else - Actions
                    Custom script: call RemoveLocation (udg_TempLoc)
                    Custom script: call DestroyGroup (udg_TempGroup)
              Else - Actions
                Unit - Remove BFCasterAbility[BFInteger] from BFCaster[BFInteger]
                Unit Group - Pick every unit in BFGroup[BFInteger] and do (Remove BFAbility[BFInteger] from (Picked unit))
                Unit Group - Pick every unit in BFGroup[BFInteger] and do (Remove Fury Peak: Buff buff from (Picked unit))
                Unit - Remove BFAura[BFInteger] from the game
                Unit - Remove BFAura2[BFInteger] from the game
                Unit - Remove BFAura3[BFInteger] from the game
                Custom script: call DestroyGroup (udg_BFGroup[udg_BFInteger])
                Set VariableSet BFCount = (BFCount - 1)
                Set VariableSet BFHas[BFInteger] = False
                Set VariableSet BFRecycledList[BFInteger] = BFLastRecycled
                Set VariableSet BFLastRecycled = BFInteger
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    BFCount Equal to 0
                  Then - Actions
                    Trigger - Turn off (This trigger)
                    For each (Integer A) from 0 to BFMax, do (Set VariableSet BFRecycledList[(Integer A)] = 0)
                    Set VariableSet BFLastRecycled = 0
                    Set VariableSet BFMax = 0
                  Else - Actions
          Else - Actions
Preloading the stuff. Change the special effects to whatever special effects you use on your spell.
Preload SF
  Events
    Map initialization
  Conditions
  Actions
    Set VariableSet Leak_Point = (Center of (Playable map area))
    Unit - Create 1.Dummy(lightningkurdan) for Player 1 (Red) at Leak_Point facing Default building facing degrees
    Unit - Add Lightning Field to (Last created unit)
    Unit - Remove (Last created unit) from the game
    Special Effect - Create a special effect at Leak_Point using Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
    Special Effect - Destroy (Last created special effect)
    Special Effect - Create a special effect at Leak_Point using Abilities\Spells\Other\Monsoon\MonsoonBoltTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Custom script: call RemoveLocation(udg_Leak_Point)
This is the init Trigger of Lightning Field. It creates two lightning pentagrams, purging every enemy unit in the AoE and sometimes chanlightning them.
Thanks to palaslayer for fighting my dumbness.
Static Field
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Lightning Field
  Actions
    Set VariableSet SF_Caster = (Casting unit)
    Set VariableSet SF_Loc[0] = (Target point of ability being cast)
    Set VariableSet SF_AoE = (((Real((Level of (Ability being cast) for (Triggering unit)))) x 125.00) + 125.00)
    Set VariableSet SF_ChainProc = 20
    -------- Stylish effect in the center. --------
    Unit - Create 1.Dummy(lightningkurdan) for (Owner of SF_Caster) at SF_Loc[0] facing Default building facing degrees
    -------- Change SFX if you want --------
    Special Effect - Create a special effect attached to the origin (attachpoint) of (Last created unit) using Abilities\Spells\Other\Monsoon\MonsoonBoltTarget.mdl
    Animation - Change (Last created unit)'s size to (300.00%, 300.00%, 300.00%) of its original size
    Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
    Custom script: set bj_wantDestroyGroup=true
    Unit Group - Pick every unit in (Units within SF_AoE of SF_Loc[0] matching (((((Matching unit) is A structure) Not equal to True) and (((Matching unit) belongs to an enemy of (Owner of SF_Caster).) Equal to True)) and (((Matching unit) is Magic Immune) Not equal to True)).) and do (Actions)
      Loop - Actions
        -------- Purging. --------
        Set VariableSet SF_Loc[1] = (Position of (Picked unit))
        Unit - Create 1.Dummy(lightningkurdan) for (Owner of SF_Caster) at SF_Loc[1] facing Default building facing degrees
        Unit - Turn collision for (Last created unit) Off.
        Unit - Add Lightning Field (dummypurge) to (Last created unit)
        Unit - Set level of Lightning Field (dummypurge) for (Last created unit) to (Level of Lightning Field for SF_Caster)
        Unit - Order (Last created unit) to Orc Shaman - Purge.(Picked unit)
        Unit - Add a 0.33 second Generic expiration timer to (Last created unit)
        -------- Chainlightning proc. --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Random integer number between 1 and 100) Less than or equal to SF_ChainProc
          Then - Actions
            Unit - Create 1.Dummy(lightningkurdan) for (Owner of SF_Caster) at SF_Loc[0] facing Default building facing degrees
            Unit - Turn collision for (Last created unit) Off.
            Unit - Add Lightning Field (dummychainlightning) to (Last created unit)
            Unit - Set level of Lightning Field (dummychainlightning) for (Last created unit) to (Level of Lightning Field for SF_Caster)
            Unit - Order (Last created unit) to Orc Far Seer - Chain Lightning.(Picked unit)
            Unit - Add a 0.33 second Generic expiration timer to (Last created unit)
          Else - Actions
        Custom script: call RemoveLocation(udg_SF_Loc[1])
    -------- Now we do the pentagram stuff. It gets really complicated here. --------
    For each (Integer SF_Integer[0]) from 1 to 2, do (Actions)
      Loop - Actions
        Set VariableSet SF_Real = (360.00 / (Real(SF_Integer[0])))
        -------- Setting the actual locations and adding a stylish ball. --------
        For each (Integer SF_Integer[1]) from 1 to 5, do (Actions)
          Loop - Actions
            Set VariableSet SF_Loc1[SF_Integer[1]] = (SF_Loc[0] offset by SF_AoE towards SF_Real degrees.)
            Unit - Create 1.Dummy(lightningkurdan) for (Owner of SF_Caster) at SF_Loc1[SF_Integer[1]] facing (Angle from SF_Loc1[SF_Integer[1]] to SF_Loc[0]) degrees
            -------- Change SFX if you want --------
            Special Effect - Create a special effect attached to the origin (attachpoint) of (Last created unit) using Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
            Animation - Change (Last created unit)'s size to (300.00%, 300.00%, 300.00%) of its original size
            Unit - Add a 1.70 second Generic expiration timer to (Last created unit)
            Set VariableSet SF_Real = (SF_Real + 216.00)
        -------- Creating the lightnings and adding them to my fade system. --------
        For each (Integer SF_Integer[2]) from 1 to 5, do (Actions)
          Loop - Actions
            Set VariableSet LF_CountInteger[1] = (LF_CountInteger[1] + 1)
            Set VariableSet LF_Alpha[LF_CountInteger[1]] = 1.00
            Set VariableSet LF_A_Decrease[LF_CountInteger[1]] = 0.02
            Set VariableSet LF_R[LF_CountInteger[1]] = 0.50
            Set VariableSet LF_G[LF_CountInteger[1]] = 0.50
            Set VariableSet LF_B[LF_CountInteger[1]] = 1.00
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                SF_Integer[2] Not equal to 5
              Then - Actions
                Custom script: set udg_LF_Lightning[udg_LF_CountInteger[1]]=AddLightningLoc( "FORK", udg_SF_Loc1[udg_SF_Integer[2]], udg_SF_Loc1[udg_SF_Integer[2]+1] )
              Else - Actions
                Custom script: set udg_LF_Lightning[udg_LF_CountInteger[1]]=AddLightningLoc( "FORK", udg_SF_Loc1[udg_SF_Integer[2]], udg_SF_Loc1[udg_SF_Integer[2]-4] )
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Lightning_Fade <gen> is on) Not equal to True
              Then - Actions
                Trigger - Turn on Lightning_Fade <gen>
              Else - Actions
        -------- Last but not least, we clear up leaks. --------
        For each (Integer SF_Integer[3]) from 1 to 5, do (Actions)
          Loop - Actions
            Custom script: call RemoveLocation(udg_SF_Loc1[udg_SF_Integer[3]])
    Custom script: call RemoveLocation(udg_SF_Loc[0])
This decreases visibilty of lightnings every 0.02 secs and destroys them if they have faded.
Lightning Fade
  Events
    Time - Every 0.02 seconds of game time
  Conditions
  Actions
    -------- indexing --------
    For each (Integer LF_CountInteger[2]) from 1 to LF_CountInteger[1], do (Actions)
      Loop - Actions
        -------- Decreasing Alpha --------
        Set VariableSet LF_Alpha[LF_CountInteger[2]] = (LF_Alpha[LF_CountInteger[2]] - LF_A_Decrease[LF_CountInteger[2]])
        Lightning - Change color of LF_Lightning[LF_CountInteger[2]] to (LF_R[LF_CountInteger[2]] LF_G[LF_CountInteger[2]] LF_B[LF_CountInteger[2]]) with LF_Alpha[LF_CountInteger[2]] alpha
        -------- Checking if alpha is 0 then destroying lightning. --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            LF_Alpha[LF_CountInteger[2]] Less than or equal to 0.00
          Then - Actions
            Lightning - Destroy LF_Lightning[LF_CountInteger[2]]
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                LF_CountInteger[2] Less than LF_CountInteger[1]
              Then - Actions
                -------- Recycling --------
                Set VariableSet LF_Lightning[LF_CountInteger[2]] = LF_Lightning[LF_CountInteger[1]]
                Set VariableSet LF_Alpha[LF_CountInteger[2]] = LF_Alpha[LF_CountInteger[1]]
                Set VariableSet LF_Debug[LF_CountInteger[1]] = False
                Set VariableSet LF_R[LF_CountInteger[2]] = LF_R[LF_CountInteger[1]]
                Set VariableSet LF_G[LF_CountInteger[2]] = LF_G[LF_CountInteger[1]]
                Set VariableSet LF_B[LF_CountInteger[2]] = LF_B[LF_CountInteger[1]]
                Set VariableSet LF_A_Decrease[LF_CountInteger[2]] = LF_A_Decrease[LF_CountInteger[1]]
              Else - Actions
            Set VariableSet LF_CountInteger[1] = (LF_CountInteger[1] - 1)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                LF_CountInteger[1] Equal to 0
              Then - Actions
                Trigger - Turn off (This trigger)
              Else - Actions
          Else - Actions
Hammer of Thor by Maker v1.08

You can edit the abiltity with the following variables. Use variable editor.

HoT_Const_AoE = Area inside which units get stunned and burned when the hammer slams down.

HoT_Const_Dmg_Base = The base damage of a projectile.
HoT_Const_Dmg_Bonus = Bonus damage per ability level.

The spell does
HoT_Const_Dmg_Base + HoT_Const_Dmg_Bonus * Ability_Level damage per projectile

HoT_Const_Dmg_Burn = Burn damage per second.

HoT_Const_Dmg_Stun = Base damage done when the hammer slams down.
HoT_Const_Dmg_Stun_Bonus = Bonus damage of the slam per ability level.

The spell does
HoT_Const_Dmg_Stunse + HoT_Const_Dmg_Stun_Bonus * Ability_Level damage with the slam.

HoT_Const_Duration = For how long the hammer shoots projectiles.
Hot_Const_Range = How far the projectiles will shoot.
Hot_Const_Stun_Duration = For how long the targets will get stunned and burned.
Hammer of Thor
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Hammer of Truth
  Actions
    Set VariableSet HoT_Const_Duration = 8.00
    Set VariableSet HoT_Const_Stun_Duration = 3.00
    Set VariableSet HoT_Const_AoE = 600.00
    Set VariableSet HoT_Const_Range = 600.00
    Set VariableSet HoT_Const_Dmg_Burn = 24.00
    Set VariableSet HoT_Const_Dmg_Base = 50.00
    Set VariableSet HoT_Const_Dmg_Bonus = 25.00
    Set VariableSet HoT_Const_Dmg_Stun = 75.00
    Set VariableSet HoT_Const_Dmg_Stun_Bonus = 25.00
    -------- -------------------- --------
    Set VariableSet Temp_Unit_1 = (Triggering unit)
    -------- -------------------- --------
    Set VariableSet Temp_Loc_1 = (Position of Temp_Unit_1)
    -------- -------------------- --------
    Unit - Create 1.Hammer_of_Thor_Dummy for Neutral Passive at Temp_Loc_1 facing (Random angle) degrees
    Set VariableSet Temp_Unit_2 = (Last created unit)
    Custom script: call UnitAddAbility(udg_Temp_Unit_2, 'Aloc')
    -------- -------------------- --------
    Animation - Change Temp_Unit_2 flying height to 1500.00 at 0.00
    -------- -------------------- --------
    Special Effect - Create a special effect attached to the chest (attachpoint) of Temp_Unit_2 using Hammer_of_Thor.mdx
    Hashtable - Save Handle Of(Last created special effect) as (Key eff1.) of (Key (Last created unit).) in HoT_Hash.
    Special Effect - Create a special effect attached to the chest (attachpoint) of Temp_Unit_2 using Abilities\Spells\Other\ImmolationRed\ImmolationRedTarget.mdl
    Hashtable - Save Handle Of(Last created special effect) as (Key eff3.) of (Key (Last created unit).) in HoT_Hash.
    Special Effect - Create a special effect attached to the origin (attachpoint) of Temp_Unit_2 using Abilities\Spells\Human\Banish\BanishTarget.mdl
    Hashtable - Save Handle Of(Last created special effect) as (Key eff4.) of (Key (Last created unit).) in HoT_Hash.
    Special Effect - Create a special effect attached to the chest (attachpoint) of Temp_Unit_2 using Abilities\Spells\Items\AIob\AIobTarget.mdl
    Hashtable - Save Handle Of(Last created special effect) as (Key eff5.) of (Key (Last created unit).) in HoT_Hash.
    -------- -------------------- --------
    Hashtable - Save -0.99 as (Key time.) of (Key (Last created unit).) in HoT_Hash.
    Hashtable - Save 0.00 as (Key loop.) of (Key (Last created unit).) in HoT_Hash.
    Hashtable - Save Handle OfTemp_Unit_1 as (Key caster.) of (Key (Last created unit).) in HoT_Hash.
    Hashtable - Save Handle Of(Last created unit) as (Key hammer.) of (Key (Triggering unit).) in HoT_Hash.
    -------- -------------------- --------
    Unit Group - Add Temp_Unit_2 to HoT_Group
    -------- -------------------- --------
    Custom script: call RemoveLocation(udg_Temp_Loc_1)
    Custom script: call RemoveLocation(udg_Temp_Loc_2)
    -------- -------------------- --------
    Animation - Change Temp_Unit_2 flying height to 350.00 at 1000.00
    -------- -------------------- --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Hammer_of_Thor_Move_Up_Down <gen> is on) Equal to False
      Then - Actions
        Trigger - Turn on Hammer_of_Thor_Move_Up_Down <gen>
      Else - Actions
Hammer of Thor Move Up Down
  Events
    Time - Every 0.03 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in HoT_Group and do (Actions)
      Loop - Actions
        Set VariableSet Temp_Unit_1 = (Picked unit)
        Set VariableSet Temp_Unit_2 = (Load (Key caster.) of (Key (Picked unit).) in HoT_Hash.)
        -------- -------------------- --------
        Set VariableSet Temp_Real_1 = (Load (Key time.) of (Key (Picked unit).) from HoT_Hash.)
        -------- -------------------- --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Temp_Real_1 Less than HoT_Const_Duration
            (Current order of Temp_Unit_2) Equal to (Order(chemicalrage))
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Temp_Real_1 Less than 0.00
              Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    Temp_Real_1 Equal to -0.99
                  Then - Actions
                    Set VariableSet Temp_Loc_1 = (Position of Temp_Unit_1)
                    -------- -------------------- --------
                    Unit - Create 1.Hammer_of_Thor_Dummy for Neutral Passive at Temp_Loc_1 facing (Random angle) degrees
                    Set VariableSet Temp_Unit_2 = (Last created unit)
                    -------- -------------------- --------
                    Animation - Change Temp_Unit_2 flying height to 1500.00 at 0.00
                    Animation - Change Temp_Unit_2 flying height to 350.00 at 1000.00
                    -------- -------------------- --------
                    Special Effect - Create a special effect attached to the origin (attachpoint) of Temp_Unit_2 using Abilities\Spells\Human\ManaShield\ManaShieldCaster.mdl
                    Hashtable - Save Handle Of(Last created special effect) as (Key eff2.) of (Key (Picked unit).) in HoT_Hash.
                    -------- -------------------- --------
                    Hashtable - Save Handle Of(Last created unit) as (Key dummy.) of (Key (Picked unit).) in HoT_Hash.
                    -------- -------------------- --------
                    Custom script: call RemoveLocation(udg_Temp_Loc_1)
                  Else - Actions
                Hashtable - Save (Temp_Real_1 + 0.03) as (Key time.) of (Key (Picked unit).) in HoT_Hash.
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    Temp_Real_1 Less than HoT_Const_Duration
                  Then - Actions
                    Set VariableSet Temp_Real_2 = (Load (Key loop.) of (Key (Picked unit).) from HoT_Hash.)
                    -------- -------------------- --------
                    Animation - Change Temp_Unit_1 flying height to (350.00 + (30.00 x (Sin(Temp_Real_2)))) at 0.00
                    Animation - Change (Load (Key dummy.) of (Key (Picked unit).) in HoT_Hash.) flying height to (Current flying height of Temp_Unit_1) at 0.00
                    -------- -------------------- --------
                    Hashtable - Save (Temp_Real_1 + 0.03) as (Key time.) of (Key (Picked unit).) in HoT_Hash.
                    Hashtable - Save (Temp_Real_2 + 3.00) as (Key loop.) of (Key (Picked unit).) in HoT_Hash.
                    -------- -------------------- --------
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        Or - Any (Conditions) are true
                          Conditions
                            And - All (Conditions) are true
                              Conditions
                                (Abs((Sin(Temp_Real_2)))) Greater than 0.68
                                (Abs((Sin(Temp_Real_2)))) Less than 0.72
                            And - All (Conditions) are true
                              Conditions
                                (Abs((Sin(Temp_Real_2)))) Less than 0.02
                      Then - Actions
                        -------- -------------------- --------
                        Set VariableSet Temp_Loc_1 = (Position of Temp_Unit_1)
                        -------- -------------------- --------
                        Set VariableSet Temp_Group_1 = (Units within HoT_Const_Range of Temp_Loc_1 matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is in HoT_Targets.) Equal to False)) and (((Owner of (Matching unit)) is an enemy of (Owner of Temp_Unit_2).) Equal to True)).)
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            (Temp_Group_1 is empty) Equal to False
                          Then - Actions
                            Set VariableSet Temp_Unit_3 = (Random unit from Temp_Group_1)
                            -------- -------------------- --------
                            Set VariableSet Temp_Loc_2 = (Position of Temp_Unit_3)
                            -------- -------------------- --------
                            Unit - Create 1.Hammer_of_Thor_Dummy for Neutral Passive at Temp_Loc_1 facing Default building facing degrees
                            Custom script: call UnitAddAbility(GetLastCreatedUnit(), 'Aloc')
                            Animation - Change (Last created unit) flying height to 350.00 at 0.00
                            -------- -------------------- --------
                            Special Effect - Create a special effect attached to the chest (attachpoint) of (Last created unit) using Abilities\Weapons\PhoenixMissile\Phoenix_Missile.mdl
                            Hashtable - Save Handle Of(Last created special effect) as (Key eff1.) of (Key (Last created unit).) in HoT_Hash.
                            -------- -------------------- --------
                            Hashtable - Save Handle OfTemp_Unit_2 as (Key caster.) of (Key (Last created unit).) in HoT_Hash.
                            Hashtable - Save Handle OfTemp_Unit_3 as (Key target.) of (Key (Last created unit).) in HoT_Hash.
                            -------- -------------------- --------
                            Unit Group - Add Temp_Unit_3 to HoT_Targets
                            Unit Group - Add (Last created unit) to HoT_Lightning_Group
                            -------- -------------------- --------
                            Custom script: call RemoveLocation(udg_Temp_Loc_2)
                            -------- -------------------- --------
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              If - Conditions
                                (Hammer_of_Thor_Lightning_Move <gen> is on) Equal to False
                              Then - Actions
                                Trigger - Turn on Hammer_of_Thor_Lightning_Move <gen>
                              Else - Actions
                          Else - Actions
                        -------- -------------------- --------
                        Custom script: call DestroyGroup(udg_Temp_Group_1)
                        Custom script: call RemoveLocation(udg_Temp_Loc_1)
                      Else - Actions
                  Else - Actions
          Else - Actions
            Unit Group - Remove Temp_Unit_1 from HoT_Group.
            Unit Group - Add Temp_Unit_1 to HoT_Slam_Group
            -------- -------------------- --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Hammer_of_Thor_Slam <gen> is on) Equal to False
              Then - Actions
                Trigger - Turn on Hammer_of_Thor_Slam <gen>
              Else - Actions
            -------- -------------------- --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Number of units in HoT_Group) Equal to 0
              Then - Actions
                Trigger - Turn off (This trigger)
              Else - Actions
Hammer of Thor Lightning Move
  Events
    Time - Every 0.03 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in HoT_Lightning_Group and do (Actions)
      Loop - Actions
        Set VariableSet Temp_Unit_1 = (Picked unit)
        Set VariableSet Temp_Unit_2 = (Load (Key target.) of (Key (Picked unit).) in HoT_Hash.)
        -------- -------------------- --------
        Set VariableSet Temp_Loc_1 = (Position of Temp_Unit_1)
        Set VariableSet Temp_Loc_2 = (Position of Temp_Unit_2)
        -------- -------------------- --------
        Set VariableSet Temp_Real_1 = (Distance between Temp_Loc_1 and Temp_Loc_2)
        -------- -------------------- --------
        Set VariableSet Temp_Lightning = (Load (Key lightning.) of (Key (Picked unit).) in HoT_Hash.)
        Custom script: call DestroyLightning (udg_Temp_Lightning)
        -------- -------------------- --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Temp_Unit_2 is alive) Equal to True
            Temp_Real_1 Greater than or equal to 16.00
          Then - Actions
            -------- -------------------- --------
            Set VariableSet Temp_Loc_3 = (Temp_Loc_1 offset by 25.00 towards (Angle from Temp_Loc_1 to Temp_Loc_2) degrees.)
            -------- -------------------- --------
            Unit - Move Temp_Unit_1 instantly to Temp_Loc_3
            Animation - Change Temp_Unit_1 flying height to ((Current flying height of Temp_Unit_1) - ((Current flying height of Temp_Unit_1) / (Temp_Real_1 / 25.00))) at 0.00
            Set VariableSet Temp_Real_1 = (Current flying height of Temp_Unit_1)
            -------- -------------------- --------
            Custom script: set udg_Temp_Real_2 = (GetLocationZ(udg_Temp_Loc_3) + udg_Temp_Real_1 + 60)
            Custom script: set udg_Temp_Real_3 = GetLocationZ(udg_Temp_Loc_2) + 60
            Custom script: set udg_Temp_Lightning = AddLightningEx( "AFOD" , true, GetLocationX(udg_Temp_Loc_3), GetLocationY(udg_Temp_Loc_3), udg_Temp_Real_2, GetLocationX(udg_Temp_Loc_2), GetLocationY(udg_Temp_Loc_2), udg_Temp_Real_3)
            -------- -------------------- --------
            Hashtable - Save Handle OfTemp_Lightning as (Key lightning.) of (Key (Picked unit).) in HoT_Hash.
            -------- -------------------- --------
            Custom script: call RemoveLocation(udg_Temp_Loc_3)
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Temp_Unit_2 is alive) Equal to True
              Then - Actions
                Set VariableSet Temp_Unit_3 = (Load (Key caster.) of (Key (Picked unit).) in HoT_Hash.)
                -------- -------------------- --------
                Unit - Cause Temp_Unit_3 to damage Temp_Unit_2, dealing (HoT_Const_Dmg_Base + (HoT_Const_Dmg_Bonus x (Real((Level of Hammer of Truth for Temp_Unit_3))))) damage of attack type Spells and damage type Normal
                -------- -------------------- --------
                Special Effect - Create a special effect attached to the origin (attachpoint) of Temp_Unit_2 using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
                Special Effect - Destroy (Last created special effect)
              Else - Actions
            Special Effect - Destroy (Load (Key eff1.) of (Key (Picked unit).) in HoT_Hash.)
            -------- -------------------- --------
            Hashtable - Clear all child hashtables of child (Key (Picked unit).) in HoT_Hash.
            -------- -------------------- --------
            Unit Group - Remove Temp_Unit_2 from HoT_Targets.
            Unit Group - Remove (Picked unit) from HoT_Lightning_Group.
            -------- -------------------- --------
            Unit - Add a 1.00 second Generic expiration timer to Temp_Unit_1
            -------- -------------------- --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Number of units in HoT_Lightning_Group) Equal to 0
              Then - Actions
                Trigger - Turn off (This trigger)
              Else - Actions
        -------- -------------------- --------
        Custom script: call RemoveLocation(udg_Temp_Loc_1)
        Custom script: call RemoveLocation(udg_Temp_Loc_2)
Hammer of Thor Slam
  Events
    Time - Every 0.03 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in HoT_Slam_Group and do (Actions)
      Loop - Actions
        Set VariableSet Temp_Unit_1 = (Picked unit)
        -------- -------------------- --------
        Set VariableSet Temp_Loc_1 = (Position of Temp_Unit_1)
        -------- -------------------- --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Current flying height of Temp_Unit_1) Greater than 10.00
          Then - Actions
            Animation - Change Temp_Unit_1 flying height to ((Current flying height of Temp_Unit_1) - ((400.00 - (Current flying height of Temp_Unit_1)) / 10.00)) at 0.00
            Animation - Change (Load (Key dummy.) of (Key (Picked unit).) in HoT_Hash.) flying height to (Current flying height of Temp_Unit_1) at 0.00
          Else - Actions
            Set VariableSet Temp_Unit_2 = (Load (Key caster.) of (Key (Picked unit).) in HoT_Hash.)
            -------- -------------------- --------
            Unit - Create 1.Hammer_of_Thor_Dummy for Neutral Passive at Temp_Loc_1 facing Default building facing degrees
            Set VariableSet Temp_Unit_3 = (Last created unit)
            Unit - Add a 2.00 second Generic expiration timer to Temp_Unit_3
            Animation - Change Temp_Unit_3's size to (200.00%, 200.00%, 200.00%) of its original size
            -------- -------------------- --------
            Special Effect - Create a special effect attached to the origin (attachpoint) of Temp_Unit_3 using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
            Special Effect - Destroy (Last created special effect)
            Special Effect - Create a special effect attached to the origin (attachpoint) of Temp_Unit_3 using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
            Special Effect - Destroy (Last created special effect)
            -------- -------------------- --------
            Special Effect - Destroy (Load (Key eff2.) of (Key (Picked unit).) in HoT_Hash.)
            Special Effect - Destroy (Load (Key eff3.) of (Key (Picked unit).) in HoT_Hash.)
            -------- -------------------- --------
            Animation - Change (Load (Key dummy.) of (Key (Picked unit).) in HoT_Hash.) flying height to 5000.00 at 0.00
            Unit - Add a 3.00 second Generic expiration timer to (Load (Key dummy.) of (Key (Picked unit).) in HoT_Hash.)
            -------- -------------------- --------
            Set VariableSet Temp_Group_1 = (Units within HoT_Const_AoE of Temp_Loc_1 matching ((((Matching unit) is alive) Equal to True) and (((Owner of (Matching unit)) is an enemy of (Owner of Temp_Unit_2).) Equal to True)).)
            Unit Group - Pick every unit in Temp_Group_1 and do (Actions)
              Loop - Actions
                Set VariableSet Temp_Unit_4 = (Picked unit)
                Set VariableSet Temp_Loc_2 = (Position of Temp_Unit_4)
                -------- -------------------- --------
                Unit - Cause Temp_Unit_2 to damage Temp_Unit_4, dealing (HoT_Const_Dmg_Stun + (HoT_Const_Dmg_Stun_Bonus x (Real((Level of Hammer of Truth for Temp_Unit_2))))) damage of attack type Spells and damage type Normal
                -------- -------------------- --------
                Unit - Create 1.Hammer_of_Thor_Dummy for Neutral Passive at Temp_Loc_2 facing Default building facing degrees
                Unit - Order (Last created unit) to Human Mountain King - Storm Bolt.Temp_Unit_4
                Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                -------- -------------------- --------
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Temp_Unit_4 is in HoT_Stun_Group.) Equal to False
                  Then - Actions
                    Special Effect - Create a special effect attached to the chest (attachpoint) of Temp_Unit_4 using Abilities\Spells\Human\FlameStrike\FlameStrikeEmbers.mdl
                    Hashtable - Save Handle Of(Last created special effect) as (Key eff2.) of (Key (Picked unit).) in HoT_Hash.
                    Special Effect - Create a special effect attached to the chest (attachpoint) of Temp_Unit_4 using Abilities\Spells\Human\FlameStrike\FlameStrikeDamageTarget.mdl
                    Hashtable - Save Handle Of(Last created special effect) as (Key eff3.) of (Key (Picked unit).) in HoT_Hash.
                  Else - Actions
                -------- -------------------- --------
                Unit Group - Add Temp_Unit_4 to HoT_Stun_Group
                -------- -------------------- --------
                Hashtable - Save HoT_Const_Stun_Duration as (Key time.) of (Key (Picked unit).) in HoT_Hash.
            -------- -------------------- --------
            Environment - Create a 1.00 second Normal ripple deformation at Temp_Loc_1 with starting radius 0.00, ending radius 600.00, and depth 64, using 1 second ripples spaced 256.00 apart
            -------- -------------------- --------
            Unit Group - Remove Temp_Unit_1 from HoT_Slam_Group.
            Unit Group - Add Temp_Unit_1 to HoT_Up_Group
            -------- -------------------- --------
            Animation - Change Temp_Unit_1 flying height to 10.00 at 0.00
            -------- -------------------- --------
            Custom script: call DestroyGroup(udg_Temp_Group_1)
            -------- -------------------- --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Hammer_of_Thor_Stun <gen> is on) Equal to False
              Then - Actions
                Trigger - Turn on Hammer_of_Thor_Stun <gen>
              Else - Actions
            -------- -------------------- --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Hammer_of_Thor_Up <gen> is on) Equal to False
              Then - Actions
                Trigger - Turn on Hammer_of_Thor_Up <gen>
              Else - Actions
            -------- -------------------- --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Number of units in HoT_Slam_Group) Equal to 0
              Then - Actions
                Trigger - Turn off (This trigger)
              Else - Actions
        -------- -------------------- --------
        Custom script: call RemoveLocation(udg_Temp_Loc_1)
Hammer of Thor Up
  Events
    Time - Every 0.03 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in HoT_Up_Group and do (Actions)
      Loop - Actions
        Set VariableSet Temp_Unit_1 = (Picked unit)
        -------- -------------------- --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Current flying height of Temp_Unit_1) Less than 1500.00
          Then - Actions
            Animation - Change Temp_Unit_1 flying height to ((Current flying height of Temp_Unit_1) x 1.10) at 0.00
          Else - Actions
            Unit Group - Remove Temp_Unit_1 from HoT_Up_Group.
            -------- -------------------- --------
            Special Effect - Destroy (Load (Key eff1.) of (Key (Picked unit).) in HoT_Hash.)
            Special Effect - Destroy (Load (Key eff4.) of (Key (Picked unit).) in HoT_Hash.)
            Special Effect - Destroy (Load (Key eff5.) of (Key (Picked unit).) in HoT_Hash.)
            -------- -------------------- --------
            Hashtable - Clear all child hashtables of child (Key (Picked unit).) in HoT_Hash.
            Hashtable - Clear all child hashtables of child (Key (Load (Key caster.) of (Key (Picked unit).) in HoT_Hash.).) in HoT_Hash.
            -------- -------------------- --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Number of units in HoT_Up_Group) Equal to 0
              Then - Actions
                Trigger - Turn off (This trigger)
              Else - Actions
Hammer of Thor Stun
  Events
    Time - Every 0.25 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in HoT_Stun_Group and do (Actions)
      Loop - Actions
        Set VariableSet Temp_Unit_1 = (Picked unit)
        -------- -------------------- --------
        Set VariableSet Temp_Real_1 = (Load (Key time.) of (Key (Picked unit).) from HoT_Hash.)
        -------- -------------------- --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Temp_Real_1 Greater than 0.00
            (Temp_Unit_1 is dead) Equal to False
          Then - Actions
            Unit - Set life of Temp_Unit_1 to ((Life of Temp_Unit_1) - (HoT_Const_Dmg_Burn / 4.00))
            Hashtable - Save (Temp_Real_1 - 0.25) as (Key time.) of (Key (Picked unit).) in HoT_Hash.
          Else - Actions
            Unit - Remove Stunned (Pause) buff from Temp_Unit_1
            -------- -------------------- --------
            Special Effect - Destroy (Load (Key eff2.) of (Key (Picked unit).) in HoT_Hash.)
            Special Effect - Destroy (Load (Key eff3.) of (Key (Picked unit).) in HoT_Hash.)
            -------- -------------------- --------
            Hashtable - Clear all child hashtables of child (Key (Picked unit).) in HoT_Hash.
            -------- -------------------- --------
            Unit Group - Remove Temp_Unit_1 from HoT_Stun_Group.
            -------- -------------------- --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Number of units in HoT_Stun_Group) Equal to 0
              Then - Actions
                Trigger - Turn off (This trigger)
              Else - Actions
Default melee game initialization for all players
Melee Initialization Copy
  Events
    Map initialization
  Conditions
  Actions
    Hashtable - Create a hashtable
    Set VariableSet HoT_Hash = (Last created hashtable)
This trigger works in two key phases:

1) During map initialization, enumerate all units of all players to give them an index.
2) Adds a second event to itself to index new units as they enter the map.

As a unit enters the map, check for any old units that may have been removed at some point in order to free their index.
Unit Indexer
  Events
    Map initialization
  Conditions
  Actions
    Custom script: call ExecuteFunc("InitializeUnitIndexer")
    Custom script: endfunction
    -------- --------
    -------- This is the most important function - it provides an index for units as they enter the map --------
    -------- --------
    Custom script: function IndexUnit takes nothing returns boolean
    Custom script: local integer pdex = udg_UDex
    -------- --------
    -------- You can use the boolean UnitIndexerEnabled to protect some of your undesirable units from being indexed --------
    -------- - Example: --------
    -------- -- Set UnitIndexerEnabled = False --------
    -------- -- Unit - Create 1 Dummy for (Triggering player) at TempLoc facing 0.00 degrees --------
    -------- -- Set UnitIndexerEnabled = True --------
    -------- --------
    -------- You can also customize the following block - if conditions are false the (Matching unit) won't be indexed. --------
    -------- --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        UnitIndexerEnabled Equal to True
      Then - Actions
        -------- --------
        -------- Generate a unique integer index for this unit --------
        -------- --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            UDexRecycle Equal to 0
          Then - Actions
            Set VariableSet UDex = (UDexGen + 1)
            Set VariableSet UDexGen = UDex
          Else - Actions
            Set VariableSet UDex = UDexRecycle
            Set VariableSet UDexRecycle = UDexNext[UDex]
        -------- --------
        -------- Link index to unit, unit to index --------
        -------- --------
        Set VariableSet UDexUnits[UDex] = (Matching unit)
        Unit - Set the custom value of UDexUnits[UDex] to UDex
        -------- --------
        -------- Use a doubly-linked list to store all active indexes --------
        -------- --------
        Set VariableSet UDexPrev[UDexNext[0]] = UDex
        Set VariableSet UDexNext[UDex] = UDexNext[0]
        Set VariableSet UDexNext[0] = UDex
        -------- --------
        -------- Fire index event for UDex --------
        -------- --------
        Set VariableSet UnitIndexEvent = 0.00
        Set VariableSet UnitIndexEvent = 1.00
        Set VariableSet UnitIndexEvent = 0.00
        Custom script: set udg_UDex = pdex
      Else - Actions
    Custom script: return false
    Custom script: endfunction
    -------- --------
    -------- The next function is called each time a unit enters the map --------
    -------- --------
    Custom script: function IndexNewUnit takes nothing returns boolean
    Custom script: local integer pdex = udg_UDex
    Custom script: local integer ndex
    -------- --------
    -------- Recycle indices of units no longer in-play every (15) units created --------
    -------- --------
    Set VariableSet UDexWasted = (UDexWasted + 1)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        UDexWasted Equal to 15
      Then - Actions
        Set VariableSet UDexWasted = 0
        Set VariableSet UDex = UDexNext[0]
        Custom script: loop
        Custom script: exitwhen udg_UDex == 0
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Custom value of UDexUnits[UDex]) Equal to 0
          Then - Actions
            -------- --------
            -------- Remove index from linked list --------
            -------- --------
            Custom script: set ndex = udg_UDexNext[udg_UDex]
            Custom script: set udg_UDexNext[udg_UDexPrev[udg_UDex]] = ndex
            Custom script: set udg_UDexPrev[ndex] = udg_UDexPrev[udg_UDex]
            Set VariableSet UDexPrev[UDex] = 0
            -------- --------
            -------- Fire deindex event for UDex --------
            -------- --------
            Set VariableSet UnitIndexEvent = 2.00
            Set VariableSet UnitIndexEvent = 0.00
            -------- --------
            -------- Recycle the index for later use --------
            -------- --------
            Set VariableSet UDexUnits[UDex] = No unit
            Set VariableSet UDexNext[UDex] = UDexRecycle
            Set VariableSet UDexRecycle = UDex
            Custom script: set udg_UDex = ndex
          Else - Actions
            Set VariableSet UDex = UDexNext[UDex]
        Custom script: endloop
        Custom script: set udg_UDex = pdex
      Else - Actions
    -------- --------
    -------- Handle the entering unit (Matching unit) --------
    -------- --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Custom value of (Matching unit)) Equal to 0
      Then - Actions
        Custom script: call IndexUnit()
      Else - Actions
    Custom script: return false
    Custom script: endfunction
    -------- --------
    -------- The next function initializes the core of the system --------
    -------- --------
    Custom script: function InitializeUnitIndexer takes nothing returns nothing
    Custom script: local integer i = 0
    Custom script: local region re = CreateRegion()
    Custom script: local rect r = GetWorldBounds()
    Set VariableSet UnitIndexerEnabled = True
    Custom script: call RegionAddRect(re, r)
    Custom script: call TriggerRegisterEnterRegion(CreateTrigger(), re, Filter(function IndexNewUnit))
    Custom script: call RemoveRect(r)
    Custom script: set re = null
    Custom script: set r = null
    Custom script: loop
    Custom script: call GroupEnumUnitsOfPlayer(bj_lastCreatedGroup, Player(i), Filter(function IndexUnit))
    Custom script: set i = i + 1
    Custom script: exitwhen i == 16
    Custom script: endloop
    -------- --------
    -------- This is the "Unit Indexer Initialized" event, use it instead of "Map Initialization" for best results --------
    -------- --------
    Set VariableSet UnitIndexEvent = 3.00
    Set VariableSet UnitIndexEvent = 0.00
Initial Telekinesis GUI
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Telekinesis (GUI)
  Actions
    -------- General Spell Settings --------
    Set VariableSet TK_SpellAoEStart = 200.00
    -------- Returns the initial area in which the enemied units are affected by this spell. --------
    Set VariableSet TK_SpellAoEIncreasement = 50.00
    -------- Returns the increasement per level of the previous area. --------
    Set VariableSet TK_MinHeightStart = 100.00
    -------- Returns the initial minimal reachable height. --------
    Set VariableSet TK_MinHeightIncreasement = 100.00
    -------- Returns the increasement of the minimal reachable height per level. --------
    Set VariableSet TK_MaxHeightStart = 200.00
    -------- Returns the initial maximal reachable height. --------
    Set VariableSet TK_MaxHeightIncreasement = 200.00
    -------- Returns the increasement of the maximal reachable height per level. --------
    Set VariableSet TK_Speed = 1.45
    -------- Returns the time in seconds in which the affected units are in the air. --------
    Set VariableSet TK_SpeedVariationPerc = 0.20
    -------- Returns the percentage of the variation between each unit's lifting speed. Default is 0.20 which means 20% variation. --------
    Set VariableSet TK_LiftSFX = Abilities\Spells\Undead\OrbOfDeath\OrbOfDeathMissile.mdl
    -------- Returns the path of the special effect displayed periodically at the chest of the lifted targets. --------
    Set VariableSet TK_LiftSFXTimer = 0.30
    -------- Returns the interval in seconds in which the previous effect is displayed. --------
    Set VariableSet TK_StartSFX = Abilities\Spells\Items\AIil\AIilTarget.mdl
    -------- Returns the path of the special effect displayed at the targets upon casting this spell. --------
    Set VariableSet TK_ImpactSFX = Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
    -------- Returns the path of the special effect displayed upon impact on earth. --------
    Set VariableSet TK_HDmgInPercStart = 0.08
    -------- Returns the percentage of the height dealt in damage. Default is 0.08 for 8% height dealt in damage to the lifted unit upon impact. --------
    Set VariableSet TK_HDmgInPercIncreasement = 0.02
    -------- Returns increasement per level of the previous value. Default is 0.02 for 2% increasement per level. --------
    Set VariableSet TK_ImpactDmgStart = 20.00
    -------- Returns the direct damage dealt to the target upon impact. --------
    Set VariableSet TK_ImpactDmgIncreasement = 20.00
    -------- Returns increasement per level of the previous value. --------
    Set VariableSet TK_AttackType = Normal
    -------- Returns the attack type in which the damage is dealt. There's actually no need to adjust this value. --------
    Set VariableSet TK_DamageType = Normal
    -------- Returns the damage type in which the damage is dealt. There's actually no need to adjust this value. --------
    Set VariableSet TK_Pause = True
    -------- Returns whether the flying unit should be paused. --------
    -------- End of Settings --------
    Set VariableSet TK_TempPoint[1] = (Target point of ability being cast)
    Set VariableSet TK_UnitGroup = (Units within (TK_SpellAoEStart + (TK_SpellAoEIncreasement x ((Real((Level of (Ability being cast) for (Triggering unit)))) - 1))) of TK_TempPoint[1] 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) is in TK_FlyingUnits.) Equal to False)) and (((Matching unit) belongs to an enemy of (Owner of (Triggering unit)).) Equal to True)))).)
    Unit Group - Pick every unit in TK_UnitGroup and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TK_Integers[1] Equal to 0
          Then - Actions
            Trigger - Turn on Telekinesis_GUI <gen>
          Else - Actions
        Set VariableSet TK_Integers[1] = (TK_Integers[1] + 1)
        Set VariableSet TK_Integers[2] = (TK_Integers[2] + 1)
        Set VariableSet TK_Unit[TK_Integers[2]] = (Picked unit)
        Set VariableSet TK_Hero[TK_Integers[2]] = (Triggering unit)
        Set VariableSet TK_Level[TK_Integers[2]] = (Level of (Ability being cast) for (Triggering unit))
        Set VariableSet TK_Interval[TK_Integers[2]] = 0.00
        Set VariableSet TK_LsfxT[TK_Integers[2]] = 0.00
        Set VariableSet TK_MaxHeight[TK_Integers[2]] = (Random real number between (TK_MinHeightStart + (TK_MinHeightIncreasement x ((Real(TK_Level[TK_Integers[2]])) - 1))) and (TK_MaxHeightStart + (TK_MaxHeightIncreasement x ((Real(TK_Level[TK_Integers[2]])) - 1))))
        Set VariableSet TK_FSpeed[TK_Integers[2]] = (1.80 / (Random real number between (TK_Speed x (1 + TK_SpeedVariationPerc)) and (TK_Speed x (1.00 - TK_SpeedVariationPerc))))
        Unit Group - Add TK_Unit[TK_Integers[2]] to TK_FlyingUnits
        Unit - Add Storm Crow Form to TK_Unit[TK_Integers[2]]
        Unit - Remove Storm Crow Form from TK_Unit[TK_Integers[2]]
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TK_Pause Equal to True
          Then - Actions
            Unit - Pause TK_Unit[TK_Integers[2]]
          Else - Actions
        Set VariableSet TK_TempPoint[2] = (Position of TK_Unit[TK_Integers[2]])
        Special Effect - Create a special effect at TK_TempPoint[2] using TK_StartSFX
        Special Effect - Destroy (Last created special effect)
        Custom script: call RemoveLocation (udg_TK_TempPoint[2])
    Custom script: call RemoveLocation (udg_TK_TempPoint[1])
    Custom script: call DestroyGroup (udg_TK_UnitGroup)
Telekinesis GUI
  Events
    Time - Every 0.01 seconds of game time
  Conditions
  Actions
    For each (Integer TK_Integers[3]) from 1 to TK_Integers[2], do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TK_Unit[TK_Integers[3]] Not equal to No unit
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                TK_Interval[TK_Integers[3]] Less than 180.00
              Then - Actions
                Set VariableSet TK_Interval[TK_Integers[3]] = (TK_Interval[TK_Integers[3]] + TK_FSpeed[TK_Integers[3]])
                Set VariableSet TK_LsfxT[TK_Integers[3]] = (TK_LsfxT[TK_Integers[3]] + 0.01)
                Animation - Change TK_Unit[TK_Integers[3]] flying height to (((Sin(TK_Interval[TK_Integers[3]])) x TK_MaxHeight[TK_Integers[3]]) + (Default flying height of TK_Unit[TK_Integers[3]])) at 0.00
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    TK_LsfxT[TK_Integers[3]] Greater than or equal to TK_LiftSFXTimer
                  Then - Actions
                    Special Effect - Create a special effect attached to the chest (attachpoint) of TK_Unit[TK_Integers[3]] using TK_LiftSFX
                    Special Effect - Destroy (Last created special effect)
                    Set VariableSet TK_LsfxT[TK_Integers[3]] = 0.00
                  Else - Actions
              Else - Actions
                Set VariableSet TK_TempPoint[1] = (Position of TK_Unit[TK_Integers[3]])
                Unit Group - Remove TK_Unit[TK_Integers[3]] from TK_FlyingUnits.
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    TK_Pause Equal to True
                  Then - Actions
                    Unit - Unpause TK_Unit[TK_Integers[3]]
                  Else - Actions
                Special Effect - Create a special effect at TK_TempPoint[1] using TK_ImpactSFX
                Special Effect - Destroy (Last created special effect)
                Animation - Change TK_Unit[TK_Integers[3]] flying height to (Default flying height of TK_Unit[TK_Integers[3]]) at 0.00
                Unit - Cause TK_Hero[TK_Integers[3]] to damage TK_Unit[TK_Integers[3]], dealing ((TK_HDmgInPercStart + (TK_HDmgInPercIncreasement x ((Real(TK_Level[TK_Integers[3]])) - 1))) + (TK_ImpactDmgStart + (TK_ImpactDmgIncreasement x ((Real(TK_Level[TK_Integers[3]])) - 1)))) damage of attack type TK_AttackType and damage type TK_DamageType
                Custom script: call RemoveLocation (udg_TK_TempPoint[1])
                Set VariableSet TK_Unit[TK_Integers[3]] = No unit
                Set VariableSet TK_Integers[1] = (TK_Integers[1] - 1)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    TK_Integers[1] Equal to 0
                  Then - Actions
                    Set VariableSet TK_Integers[2] = 0
                    Trigger - Turn off (This trigger)
                  Else - Actions
          Else - Actions
AA Preload
  Events
    Map initialization
  Conditions
  Actions
    For each (Integer AA_PreLoop) from 1 to 4, do (Actions)
      Loop - Actions
        Set VariableSet AA_Percent[AA_PreLoop] = (5.00 + (3.00 x (Real(AA_PreLoop))))
AA Effect
  Events
    Unit - A unit Dies
  Conditions
  Actions
    Set VariableSet AA_Loc[1] = (Position of (Triggering unit))
    Set VariableSet AA_Cstr_Group = (Units within 700.00 of AA_Loc[1] matching (((Level of Life Force Dispersion for (Matching unit)) Greater than 0) and (((Matching unit) is alive) Equal to True)).)
    Unit Group - Pick every unit in AA_Cstr_Group and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (AA_Cstr_Group is empty) Equal to False
          Then - Actions
            Set VariableSet AA_E_HP = (Max life of (Triggering unit))
            Special Effect - Create a special effect attached to the origin (attachpoint) of (Triggering unit) using Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Set VariableSet AA_Loc[2] = (Position of (Picked unit))
            Set VariableSet AA_A_Group = (Units within 700.00 of AA_Loc[2] matching ((((Matching unit) belongs to an ally of (Owner of (Picked unit)).) Equal to True) and (((Matching unit) is alive) Equal to True)).)
            Set VariableSet AA_HPcount = ((AA_E_HP / AA_Percent[(Level of Life Force Dispersion for (Picked unit))]) / (Real((Number of units in AA_A_Group))))
            Unit Group - Pick every unit in AA_A_Group and do (Actions)
              Loop - Actions
                Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + AA_HPcount)
                Special Effect - Create a special effect attached to the overhead (attachpoint) of (Picked unit) using Abilities\Spells\Undead\VampiricAura\VampiricAuraTarget.mdl
                Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation (udg_AA_Loc[2])
            Custom script: call DestroyGroup (udg_AA_A_Group)
          Else - Actions
    Custom script: call RemoveLocation (udg_AA_Loc[1])
    Custom script: call DestroyGroup (udg_AA_Cstr_Group)
init
  Events
    Map initialization
  Conditions
  Actions
    Hashtable - Create a hashtable
    Set VariableSet KUS_hash = (Last created hashtable)
event
  Events
    Time - Every 0.03 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in KUS_group and do (Actions)
      Loop - Actions
        Custom script: local integer h
        Set VariableSet KUS_target = (Picked unit)
        Custom script: set h = GetHandleId(udg_KUS_target)
        Custom script: set udg_KUS_knockup = LoadBoolean(udg_KUS_hash, h, 0)
        Custom script: set udg_KUS_height = LoadReal(udg_KUS_hash, h, 1)
        Custom script: set udg_KUS_speed = LoadReal(udg_KUS_hash, h, 2)