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 havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. The Lich King demands your service! We've reached the 19th edition of the Icon Contest. Come along and make some chilling servants for the one true king.
    Dismiss Notice
  5. The 4th SFX Contest has started. Be sure to participate and have a fun factor in it.
    Dismiss Notice
  6. The poll for the 21st Terraining Contest is LIVE. Be sure to check out the entries and vote for one.
    Dismiss Notice
  7. The results are out! Check them out.
    Dismiss Notice
  8. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  9. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  10. 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

Hour of the Scourge Andorhal v20170307.w3x
Variables
Hash - 26
Game
Initialization
Dialogs
Pick Alliance
Victory
Commands Hint
Command C
Command U
Command A
Command O
Enable Observer
--------------------------------Mechanics
General
Serenity Aura
SA Add
Argent Crusade
Judicator
JD Ready
Elven Funeral
EF Enable
Kirin'tor
Ranger General
RG Ready
Scourge
Lich
LC Ready
Necrolord
NL Ready
Frost Ymirjar
FY Enable
Zigurat
ZG Work
ZG Idle
Relicary
RL Replace
Loadout
LO Add
Scourge Path
SP Research Begins
SP Research Finishes
SP Cancel
WL Research
Blood Queen
BQ Set
BQ Mana Freeze
Forsaken
Fanatic
FN Death
Lighthouse
LH Replace
Dreadguard
DG Enable
Hollow Shrine
HS Work
HS Idle
Synthetic Blight
SB Research
SB Add
--------------------------------Spells
General
Argent Crusade
---------------------------Units
Meditation
Meditation Cast
Meditation Loop
Sacrifice
SF Cast
Guardian of Ancient Kings
GAK Cast
GAK Loop
Lightbolt
LB Cast
LB Teleport
Elven Funeral
EF Effect
---------------------------Heroes
Holy Purpose
HP Add
HP Remove
Avenging Wrath
AW Cast
AW Timer
Divine Storm
DS Cast
DS Effect
Righteous Sentence
RSe Cast
Beacon of Hope
BH Cast
Flash of Light
FL Cast
Smite
ST Cast
Hand of Protection
HP Cast
HP Loop
Mount Hyppogriph
MH Cast
Kirin'tor
---------------------------Units
Summon Construct
SCo Cast
SCo Dies
Negate
NT Cast
Induce Magic
IM Cast
IM Loop
Radiate Mana
RM Cast
RM Cancel or Finishes
RM Effect
---------------------------Heroes
Arcane Projection
AP Cast
AP Timer
AP Penalty
Draw Attention
DAt Cast
Overpower
OP Cast
Summon
SM New Unit
Chant of Flames
CF Cast
CF Cancel
Scourge
---------------------------Units
Raise Dead
RD Cast
RD Dies
Equip Bow
EBo Cast
EBo Replace
Zombie Plague
ZP Turn On
ZP Cast
ZP Remove
Blight Fungus
BF Effect
Mind Bleed
EBo Cast Copy
Soul Shatter
SS Cast
SS Effect
SS Remove
Curse of Repent
CR Cast
Maiden Kiss
MK Cast
Morph
MP Cast
Varghulf Form
VF Cast
VF Effect
Vampirism
VP Cast
VP Loop
Injected Locust
IL Cast
Night Curse
NC Research
NC On
NC Off
Dissiminate Blight
DB Cast
DB Effect
Blood Embers
BE Count
BS Cast
EV Cast
Summon Geist
SG Cast
Soul Sacrifice
SSa Cast
Blight Boil
BB Cast
Tunneling Strain
TS Enable
Toxic Blight
TB Enable
TB Effect
Spawn Broodling
SB Cast
SB Death
Spawn Eggs
SE Cast
Create Corpse
CP Enable
Undergate
UG Spawn
UG Loop
Bone Runes
BR Remove
Death's Touch
DT Cast
DT Cast Loop
DT Attack Loop
DT Removal Loop
---------------------------Heroes
Soul Feast
SF Casts
SF Finishes
SF Stops
SF Heal
Necrotic Inffection
NI Cast
NI Ghouls
Blood Plague
BP Cast
BP Timer
BP Minion Heal
Soul Pact
SP Cast
SP Finishes
SP Ressurect
Raise Skeleton
RS Cast
Unholy Infusion
UI Cast
UI Decrease
Carrion Tide
CT Cast
CT Loop
CT Timer
Consume
CS Cast
CS Effect
CS Cancel or Finishes
Vampiric Cuse
VC Cast
Wrath Storm
WS Cast
WS Loop
Soul Vampirism
SV Attack Cast
SV Death Cast
Phylactery Binding
PB Setup
PB Cast
PB Effect
PB Dies
Forsaken
---------------------------Units
Heavy Dose
HD Add
HD Remove
Unstable Concoction
UC Cast
Summon Spider
SSp Cast
Dark Veil
DV Cast
DV Remove
Slime
SM Death
Vile Launcher
VL Death
Carcinogenic Bind
CB Cast
CB Effect
CB Cancel
Curse of the Banshee
CBa Cast
Quell Rage
QR Cast
Last Song
LS Cast
Anxiety
AT Cast
AT Loop
---------------------------Heroes
Wailing Arrow
WA Cast
WA Effect
Haunting Wave
HW Cast
Butch
BT Cast
BT Loop
Dizzying Concoction
DC Cast
Vial of Blight
VB Cast
VB Effect
Finger of Death
FD Cast
FD Effect
--------------------------------Test
Esc
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
AllianceDialog dialog No
AllianceDialogButton0 button No
AllianceDialogButton1 button No
AllianceDialogButton2 button No
AllianceDialogButtonAI1 button No
AllianceDialogButtonAI2 button No
AllianceDialogButtonAI3 button No
AllianceDialogButtonAI4 button No
AlliancesSet integer No
AllPlayers force No
APLocation location No
ArcaneProjection unit No
ArcaneProjectionHeal real No
ArcaneProjectionTimer timer No
ArcaneProjectionTimerWindow timerdialog No
ATTargets group No
AvengingWrathTimer timer No
AvengingWrathTimerWindow timerdialog No
BBLocation location No
BeaconLocation location No
BeaconofHopeRemovedUnit unit No
BeaconofHopeTargets group No
BleedingStrikeTarget unit No
BlightFungusUnits group No
BloodEmberCount integer No
BloodEmbersBoard leaderboard No
BloodPlagueDuration timer No
BloodPlagueHealTargets group No
BloodPlagueSFX effect No
BloodQueenMana real No
BPLocation location No
BPLocation2 location No
ButchDummy unit No
ButchDummyLocation location No
ButchLocation location No
ButchRange real No
ButchTarget unit No
ButchTargets group No
CancerDamage real No
CancerHost handle No
CancerTarget unit No
CarrionTideDummy unit No
CarrionTideLoopTimer timer No
CarrionTideTimer timer No
CFCasterLocation location No
CFLocation location No
ChantofFlamesFX effect No
ChantofFlamesUnit unit No
ConsumeFX effect Yes
ConsumeTarget unit No
ConsumeTickTimer timer No
ConsumeTimer timer No
ConsumeUp boolean No
ConsumptionDummy unit Yes
ConsumptionDummyTarget unit Yes
ConsumptionUnits group No
CTDummyLocation location No
CTLocation location No
DarkVeilTargets group No
DAtLocation location No
DCLocation location No
DivineStorm location No
DizzyingConcoctionTarget unit No
DTUnits group No
EF_Units group No
ElvenFuneralLocation location No
EquipBowUnits group No
FactionDialog dialog No
FactionDialog_Pink button No
FactionDialog_Purple button No
FactionDialog_Yellow button No
FDDummyLocation location No
FDLocation location No
FingerofDeathDummy unit No
FingerofDeathTarget unit No
FrenzyTimer timer No
FrenzyTimerWindow timerdialog No
GuardianDuration integer No
GuardianRandom integer No
GuardianUnits group No
HandofProtectionTarget unit No
HandofProtectionTargets group No
Hashtable hashtable No
HauntingWavePoint location No
HauntingWaveTeleport location No
HeavyDoseTargets group No
Hero_Archmage unit No
Hero_Banshee unit No
Hero_BQ unit No
Hero_DK unit No
Hero_Dreadlord unit No
Hero_Lich unit No
Hero_Necromancer unit No
Hero_Paladin unit No
Hero_SH unit No
Hero_Thing unit No
Hero_Warrior unit No
HeroHealth real No
HolyPurposeTimer timer No
HolyPurposeTimerWindow timerdialog No
HWLocation location No
IL_Units group No
ILLocation location No
IllusionWardTimer timer No
InducedMagicCount integer No
InduceMagicTargets group No
KB_Angle real No
KB_Distance real No
KB_Duration real No
KB_Units group No
LightboltCaster unit No
LightboltFXLocation location No
LightboltLocation location No
LightboltTarget handle No
LightboltTargets group No
LSLocation location No
MaidenKissLifeTarget real No
MeditationDuration integer No
MeditationTargets group No
MorphCount integer No
MorphPoint location No
MorphUnits group No
MPLocation location No
NCLocation location No
NecroticInffectionMadness integer No
NightCurseDummy unit No
ObserverDialog dialog No
ObserverDialog_No button No
ObserverDialog_Yes button No
OPLocation location No
OPProjLocation location No
OPTargetLocation location No
OverpowerProjection unit Yes
OverpowerProjections group No
OverpowerTarget unit No
PBHeroLocation location No
PBLocation location No
Phylactery unit No
PhylacteryCooldown timer No
PhylacteryTimer timer No
PhylacteryTimerWindow timerdialog No
PhylacteryUp boolean No
PlaguedUnits group No
Player player No
Player_Crusade player No
Player_Crusade_Enemies_Count force No
Player_Forsaken player No
Player_Forsaken_Enemies_Count force No
Player_Kirintor_Enemies_Count force No
Player_Scourge player No
Player_Scourge_Enemies_Count force No
RadiateManaCaster handle No
RadiateManaCasters group No
RadiateManaPoint location No
RadiateManaValue real No
RadiateManaValueTotal real No
RDFXLocation location No
RDLocation location No
RSeLocation location No
RSLocation location No
SBLocation location No
SCoLocation location No
ScourgePathType integer No
ScourgePathUnit unit No
SELocation location No
ShadowHuntSpawn unit No
ShadowHuntTimer timer No
SlimeLocation location No
SmiteTarget unit No
SoulFeastHeal real No
SoulFeastTargets integer No
SoulFeastUp boolean No
SoulPactTimer timer No
SoulPactTimerWindow timerdialog No
SoulShatterOwner player No
SoulShatterTarget unit No
SoulShatterUnits group No
SPLocation location No
SPTimer timer No
Stormcaller unit No
StormcallerTimer timer No
Summon unit No
SummonConstructPenalty boolean No
SummonConstructSummonerHandle handle No
SummonLocation location No
SVLocation location No
Team0 force No
Team1 force No
Team2 force No
ThunderingWardCounter integer No
ThunderingWardTimer timer Yes
UGTime integer No
UGUnits group No
UnholyInfusionCount integer No
UnholyInfusionTarget unit No
VampirismHeal real No
VampirismUnits group No
VBLocation location No
VFLocation location No
VialofBlightDummy unit No
VialofBlightTarget unit No
VialofBlightTargets group No
VLLocation location No
WailingArrowTarget group No
WrathStormCount integer No
WrathStormDummy unit No
WrathStormLoop timer No
WrathStormTarget unit No
WSHeroLocation location No
WSLocation location No
ZPLocation location No
Initialization
  Events
    Map initialization
  Conditions
  Actions
    Hashtable - Create a hashtable
    Set Hashtable = (Last created hashtable)
    Set AllPlayers = (All players)
    Player Group - Pick every player in AllPlayers and do (Actions)
      Loop - Actions
        Player - Limit training of Highlord to 1 for (Picked player)
        Player - Limit training of Paladin to 1 for (Picked player)
        Player - Limit training of Grand Crusader to 1 for (Picked player)
        Player - Limit training of Lord Commander to 1 for (Picked player)
        Player - Limit training of Archmage to 1 for (Picked player)
        Player - Limit training of Grand Enchanter to 1 for (Picked player)
        Player - Limit training of High Priest to 1 for (Picked player)
        Player - Limit training of Ranger General to 1 for (Picked player)
        Player - Limit training of Death Knight to 1 for (Picked player)
        Player - Limit training of Necrolord to 1 for (Picked player)
        Player - Limit training of Blood Queen to 1 for (Picked player)
        Player - Limit training of Crypt Lord to 1 for (Picked player)
        Player - Limit training of Lich to 1 for (Picked player)
        Player - Limit training of Dreadlord to 1 for (Picked player)
        Player - Limit training of Banshee Maiden to 1 for (Picked player)
        Player - Limit training of Grand Apothecary to 1 for (Picked player)
        Player - Limit training of Thing to 1 for (Picked player)
        Player - Set the max research level of R60G (techcode) to 0 for (Picked player)
        Player - Set the max research level of R60F (techcode) to 0 for (Picked player)
        Player - Set the max research level of R60J (techcode) to 0 for (Picked player)
        Player - Disable Path of Blood 2 for (Picked player)
        Player - Disable Path of Darkness 2 for (Picked player)
        Player - Disable Path of Death 2 for (Picked player)
        Player - Disable Pick up Strider (2) for (Picked player)
        Player - Disable Dismount (Silver Hand 2) for (Picked player)
        Player - Disable Burrow (Tunneling Beetle) for (Picked player)
        Player - Disable Burrow (Tunneling Weaver) for (Picked player)
        Player - Disable Create Corpse (Zigurat) for (Picked player)
        Player - Disable Battle Stations (Silver Hand 2) for (Picked player)
        Player - Make Dreadguard Unavailable for training/construction by (Picked player)
        Player - Make Frost Ymirjar Champion Unavailable for training/construction by (Picked player)
        Player - Make Conscript (No Decay) Unavailable for training/construction by (Picked player)
        Player - Make Argent Hawk (No Decay) Unavailable for training/construction by (Picked player)
        Player - Make Crusader (No Decay) Unavailable for training/construction by (Picked player)
        Player - Make Judicator (No Decay) Unavailable for training/construction by (Picked player)
        Player - Make Templar (No Decay) Unavailable for training/construction by (Picked player)
        Player - Make Cleric (No Decay) Unavailable for training/construction by (Picked player)
        Player - Make Priest (No Decay) Unavailable for training/construction by (Picked player)
        Player - Make Golden Strider (No Decay) Unavailable for training/construction by (Picked player)
        Player - Make Squire (No Decay) Unavailable for training/construction by (Picked player)
        Player - Make Hippogryph (No Decay) Unavailable for training/construction by (Picked player)
    Custom script: call DestroyForce(udg_AllPlayers)
    Melee Game - Use melee time of day (for all players)
    Melee Game - Limit Heroes to 1 per Hero-type (for all players)
    Melee Game - Give trained Heroes a Scroll of Town Portal (for all players)
    Melee Game - Set starting resources (for all players)
    Melee Game - Remove creeps and critters from used start locations (for all players)
    Melee Game - Create starting units (for all players)
    Melee Game - Run melee AI scripts (for computer players)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        And - All (Conditions) are true
          Conditions
            (Player 5 (Yellow) slot status) Equal to Is playing
            (Player 5 (Yellow) controller) Equal to User
      Then - Actions
        Custom script: set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units owned by Player 5 (Yellow) of type Town Hall) and do (Actions)
          Loop - Actions
            Unit - Replace (Picked unit) with a Town Hall (Silver Hand) using The old unit's relative life and mana
        Custom script: set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units owned by Player 5 (Yellow) of type Peasant) and do (Actions)
          Loop - Actions
            Unit - Replace (Picked unit) with a Conscript using The old unit's relative life and mana
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        And - All (Conditions) are true
          Conditions
            (Player 4 (Purple) slot status) Equal to Is playing
            (Player 4 (Purple) controller) Equal to User
      Then - Actions
        Custom script: set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units owned by Player 4 (Purple) of type Necropolis) and do (Actions)
          Loop - Actions
            Unit - Replace (Picked unit) with a Necropolis (Scourge) using The old unit's relative life and mana
        Custom script: set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units owned by Player 4 (Purple) of type Acolyte) and do (Actions)
          Loop - Actions
            Unit - Replace (Picked unit) with a Acolyte (Scourge) using The old unit's relative life and mana
        Custom script: set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units owned by Player 4 (Purple) of type Ghoul) and do (Actions)
          Loop - Actions
            Unit - Replace (Picked unit) with a Ghoul (Scourge) using The old unit's relative life and mana
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        And - All (Conditions) are true
          Conditions
            (Player 8 (Pink) slot status) Equal to Is playing
            (Player 8 (Pink) controller) Equal to User
      Then - Actions
        Custom script: set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units owned by Player 8 (Pink) of type Town Hall) and do (Actions)
          Loop - Actions
            Unit - Replace (Picked unit) with a Plaza using The old unit's relative life and mana
        Custom script: set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units owned by Player 8 (Pink) of type Peasant) and do (Actions)
          Loop - Actions
            Unit - Replace (Picked unit) with a Engineer using The old unit's relative life and mana
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        And - All (Conditions) are true
          Conditions
            (Player 2 (Blue) slot status) Equal to Is playing
            (Player 2 (Blue) controller) Equal to User
      Then - Actions
        Custom script: set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units owned by Player 2 (Blue) of type Necropolis) and do (Actions)
          Loop - Actions
            Unit - Replace (Picked unit) with a Ghost Hall using The old unit's relative life and mana
            Unit - Add Blight Dispel Large to (Last replaced unit)
        Custom script: set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units owned by Player 2 (Blue) of type Acolyte) and do (Actions)
          Loop - Actions
            Unit - Replace (Picked unit) with a Damned using The old unit's relative life and mana
        Custom script: set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units owned by Player 2 (Blue) of type Ghoul) and do (Actions)
          Loop - Actions
            Unit - Replace (Picked unit) with a Damned using The old unit's relative life and mana
        Custom script: set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units owned by Player 2 (Blue) of type Haunted Gold Mine) and do (Actions)
          Loop - Actions
            Unit - Replace (Picked unit) with a Gold Mine using The old unit's relative life and mana
            Unit - Remove (Last replaced unit) from the game
      Else - Actions
    Dialog - Change the title of ObserverDialog to Are you sure you want to only observe?
    Dialog - Create a dialog button for ObserverDialog labelled Yes
    Set ObserverDialog_Yes = (Last created dialog Button)
    Dialog - Create a dialog button for ObserverDialog labelled No
    Set ObserverDialog_No = (Last created dialog Button)
Dialogs
  Events
    Time - Elapsed game time is 1.00 seconds
  Conditions
  Actions
    Set AllPlayers = (All players controlled by a User player)
    Dialog - Change the title of AllianceDialog to Choose your Alliance
    Dialog - Create a dialog button for AllianceDialog labelled Team 1
    Set AllianceDialogButton1 = (Last created dialog Button)
    Dialog - Create a dialog button for AllianceDialog labelled Team 2
    Set AllianceDialogButton2 = (Last created dialog Button)
    Dialog - Create a dialog button for AllianceDialog labelled No Alliance
    Set AllianceDialogButton0 = (Last created dialog Button)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        And - All (Conditions) are true
          Conditions
            (Player 2 (Blue) controller) Equal to Computer
            (Player 2 (Blue) slot status) Equal to Is playing
      Then - Actions
        Dialog - Create a dialog button for AllianceDialog labelled AI Player Blue
        Set AllianceDialogButtonAI1 = (Last created dialog Button)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        And - All (Conditions) are true
          Conditions
            (Player 4 (Purple) controller) Equal to Computer
            (Player 4 (Purple) slot status) Equal to Is playing
      Then - Actions
        Dialog - Create a dialog button for AllianceDialog labelled AI Player Purple
        Set AllianceDialogButtonAI2 = (Last created dialog Button)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        And - All (Conditions) are true
          Conditions
            (Player 5 (Yellow) controller) Equal to Computer
            (Player 5 (Yellow) slot status) Equal to Is playing
      Then - Actions
        Dialog - Create a dialog button for AllianceDialog labelled AI Player Yellow
        Set AllianceDialogButtonAI3 = (Last created dialog Button)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        And - All (Conditions) are true
          Conditions
            (Player 8 (Pink) controller) Equal to Computer
            (Player 8 (Pink) slot status) Equal to Is playing
      Then - Actions
        Dialog - Create a dialog button for AllianceDialog labelled AI Player Pink
        Set AllianceDialogButtonAI4 = (Last created dialog Button)
      Else - Actions
    Player Group - Pick every player in AllPlayers and do (Actions)
      Loop - Actions
        Dialog - Show AllianceDialog for (Picked player)
    Custom script: call DestroyForce(udg_AllPlayers)
    Dialog - Change the title of ObserverDialog to Are you sure you want to only observe?
    Dialog - Create a dialog button for ObserverDialog labelled Yes
    Set ObserverDialog_Yes = (Last created dialog Button)
    Dialog - Create a dialog button for ObserverDialog labelled No
    Set ObserverDialog_No = (Last created dialog Button)
Pick Alliance
  Events
    Dialog - A dialog button is clicked for AllianceDialog
  Conditions
  Actions
    Set AllPlayers = (All players controlled by a User player)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Clicked dialog button) Equal to AllianceDialogButton0
      Then - Actions
        Player Group - Add (Triggering player) to Team0
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Clicked dialog button) Equal to AllianceDialogButton1
      Then - Actions
        Player Group - Add (Triggering player) to Team1
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Clicked dialog button) Equal to AllianceDialogButton2
      Then - Actions
        Player Group - Add (Triggering player) to Team2
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Clicked dialog button) Equal to AllianceDialogButtonAI1
      Then - Actions
        Player - Make (Triggering player) treat Player 2 (Blue) as an Ally with shared vision
        Player - Make Player 2 (Blue) treat (Triggering player) as an Ally with shared vision
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Clicked dialog button) Equal to AllianceDialogButtonAI2
      Then - Actions
        Player - Make (Triggering player) treat Player 4 (Purple) as an Ally with shared vision
        Player - Make Player 4 (Purple) treat (Triggering player) as an Ally with shared vision
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Clicked dialog button) Equal to AllianceDialogButtonAI3
      Then - Actions
        Player - Make (Triggering player) treat Player 5 (Yellow) as an Ally with shared vision
        Player - Make Player 5 (Yellow) treat (Triggering player) as an Ally with shared vision
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Clicked dialog button) Equal to AllianceDialogButtonAI4
      Then - Actions
        Player - Make (Triggering player) treat Player 8 (Pink) as an Ally with shared vision
        Player - Make Player 8 (Pink) treat (Triggering player) as an Ally with shared vision
      Else - Actions
    Dialog - Hide AllianceDialog for (Triggering player)
    Set AlliancesSet = (AlliancesSet + 1)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        AlliancesSet Equal to (Number of players in AllPlayers)
      Then - Actions
        Dialog - Clear AllianceDialog
      Else - Actions
    Player Group - Make Team0 treat (All players) as an Enemy
    Player Group - Make Team0 treat Player Group - Neutral Passive as an Ally
    Player Group - Make Team1 treat Team1 as an Ally with shared vision
    Player Group - Make Team2 treat Team2 as an Ally with shared vision
    Custom script: call DestroyForce(udg_AllPlayers)
Victory
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    Player Group - Pick every player in (All enemies of Player 2 (Blue)) and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Count structures controlled by (Picked player) (Include incomplete structures)) Equal to 0
          Then - Actions
            Game - Display to (All players) the text: (Player + ((Name of (Picked player)) + defeated!))
            Game - Defeat (Picked player) with the message: Defeat!
            Player Group - Add (Picked player) to Player_Forsaken_Enemies_Count
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Number of players in Player_Forsaken_Enemies_Count) Equal to (Number of players in (All enemies of Player 2 (Blue)))
              Then - Actions
                Player Group - Pick every player in (All allies of Player 2 (Blue)) and do (Actions)
                  Loop - Actions
                    Game - Victory (Picked player) (Show dialogs, Show scores)
              Else - Actions
          Else - Actions
    Player Group - Pick every player in (All enemies of Player 4 (Purple)) and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Count structures controlled by (Picked player) (Include incomplete structures)) Equal to 0
          Then - Actions
            Game - Display to (All players) the text: (Player + ((Name of (Picked player)) + defeated!))
            Game - Defeat (Picked player) with the message: Defeat!
            Player Group - Add (Picked player) to Player_Scourge_Enemies_Count
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Number of players in Player_Scourge_Enemies_Count) Equal to (Number of players in (All enemies of Player 4 (Purple)))
              Then - Actions
                Player Group - Pick every player in (All allies of Player 4 (Purple)) and do (Actions)
                  Loop - Actions
                    Game - Victory (Picked player) (Show dialogs, Show scores)
              Else - Actions
          Else - Actions
    Player Group - Pick every player in (All enemies of Player 5 (Yellow)) and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Count structures controlled by (Picked player) (Include incomplete structures)) Equal to 0
          Then - Actions
            Game - Display to (All players) the text: (Player + ((Name of (Picked player)) + defeated!))
            Game - Defeat (Picked player) with the message: Defeat!
            Player Group - Add (Picked player) to Player_Crusade_Enemies_Count
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Number of players in Player_Crusade_Enemies_Count) Equal to (Number of players in (All enemies of Player 5 (Yellow)))
              Then - Actions
                Player Group - Pick every player in (All allies of Player 5 (Yellow)) and do (Actions)
                  Loop - Actions
                    Game - Victory (Picked player) (Show dialogs, Show scores)
              Else - Actions
          Else - Actions
    Player Group - Pick every player in (All enemies of Player 8 (Pink)) and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Count structures controlled by (Picked player) (Include incomplete structures)) Equal to 0
          Then - Actions
            Game - Display to (All players) the text: (Player + ((Name of (Picked player)) + defeated!))
            Game - Defeat (Picked player) with the message: Defeat!
            Player Group - Add (Picked player) to Player_Kirintor_Enemies_Count
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Number of players in Player_Kirintor_Enemies_Count) Equal to (Number of players in Player_Kirintor_Enemies_Count)
              Then - Actions
                Player Group - Pick every player in (All allies of Player 8 (Pink)) and do (Actions)
                  Loop - Actions
                    Game - Victory (Picked player) (Show dialogs, Show scores)
              Else - Actions
          Else - Actions
Commands Hint
  Events
    Time - Elapsed game time is 10.00 seconds
  Conditions
  Actions
    Game - Display to (All players) the text: Commands:-c to show commands-o to become an observer-u [color] to remove alliance from that player-a [color] to ally yourself with that playerColors: red - lightblue - yellow - purple - pink - blue
Command C
  Events
    Player - Player 1 (Red) types a chat message containing -c as An exact match
    Player - Player 2 (Blue) types a chat message containing -c as An exact match
    Player - Player 10 (Light Blue) types a chat message containing -c as An exact match
    Player - Player 4 (Purple) types a chat message containing -c as An exact match
    Player - Player 5 (Yellow) types a chat message containing -c as An exact match
    Player - Player 8 (Pink) types a chat message containing -c as An exact match
  Conditions
  Actions
    Game - Display to (All players matching ((Matching player) Equal to (Triggering player))) the text: Commands:-c to show commands-o to become an observer-u [color] to remove alliance from that player-a [color] to ally yourself with that playerColors: red - lightblue - yellow - purple - pink - blue
Command U
  Events
    Player - Player 1 (Red) types a chat message containing -u as A substring
    Player - Player 2 (Blue) types a chat message containing -u as A substring
    Player - Player 10 (Light Blue) types a chat message containing -u as A substring
    Player - Player 4 (Purple) types a chat message containing -u as A substring
    Player - Player 5 (Yellow) types a chat message containing -u as A substring
    Player - Player 8 (Pink) types a chat message containing -u as A substring
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Entered chat string) Equal to -u red
      Then - Actions
        Player - Make (Triggering player) treat Player 1 (Red) as an Enemy
        Player - Make Player 1 (Red) treat (Triggering player) as an Enemy
        Game - Display to Player Group - Player 1 (Red) the text: ((Player + (Name of (Triggering player))) + has undone its alliance towards you)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Entered chat string) Equal to -u blue
      Then - Actions
        Player - Make (Triggering player) treat Player 2 (Blue) as an Enemy
        Player - Make Player 2 (Blue) treat (Triggering player) as an Enemy
        Game - Display to Player Group - Player 2 (Blue) the text: ((Player + (Name of (Triggering player))) + has undone its alliance towards you)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Entered chat string) Equal to -u lightblue
      Then - Actions
        Player - Make (Triggering player) treat Player 10 (Light Blue) as an Enemy
        Player - Make Player 10 (Light Blue) treat (Triggering player) as an Enemy
        Game - Display to Player Group - Player 10 (Light Blue) the text: ((Player + (Name of (Triggering player))) + has undone its alliance towards you)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Entered chat string) Equal to -u purple
      Then - Actions
        Player - Make (Triggering player) treat Player 4 (Purple) as an Enemy
        Player - Make Player 4 (Purple) treat (Triggering player) as an Enemy
        Game - Display to Player Group - Player 4 (Purple) the text: ((Player + (Name of (Triggering player))) + has undone its alliance towards you)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Entered chat string) Equal to -u yellow
      Then - Actions
        Player - Make (Triggering player) treat Player 5 (Yellow) as an Enemy
        Player - Make Player 5 (Yellow) treat (Triggering player) as an Enemy
        Game - Display to Player Group - Player 5 (Yellow) the text: ((Player + (Name of (Triggering player))) + has undone its alliance towards you)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Entered chat string) Equal to -u pink
      Then - Actions
        Player - Make (Triggering player) treat Player 8 (Pink) as an Enemy
        Player - Make Player 8 (Pink) treat (Triggering player) as an Enemy
        Game - Display to Player Group - Player 8 (Pink) the text: ((Player + (Name of (Triggering player))) + has undone its alliance towards you)
      Else - Actions
Command A
  Events
    Player - Player 1 (Red) types a chat message containing -a as A substring
    Player - Player 2 (Blue) types a chat message containing -a as A substring
    Player - Player 4 (Purple) types a chat message containing -a as A substring
    Player - Player 5 (Yellow) types a chat message containing -a as A substring
    Player - Player 8 (Pink) types a chat message containing -a as A substring
    Player - Player 10 (Light Blue) types a chat message containing -a as A substring
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Entered chat string) Equal to -a red
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Player 1 (Red) controller) Equal to Computer
          Then - Actions
            Player - Make (Triggering player) treat Player 1 (Red) as an Ally with shared vision
            Player - Make Player 1 (Red) treat (Triggering player) as an Ally with shared vision
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Player 1 (Red) is an ally of (Triggering player)) Equal to True
              Then - Actions
                Player - Make (Triggering player) treat Player 1 (Red) as an Ally with shared vision
              Else - Actions
                Player - Make (Triggering player) treat Player 1 (Red) as an Ally
        Game - Display to Player Group - Player 1 (Red) the text: ((Player + (Name of (Triggering player))) + is now your ally)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Entered chat string) Equal to -a blue
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Player 2 (Blue) controller) Equal to Computer
          Then - Actions
            Player - Make (Triggering player) treat Player 2 (Blue) as an Ally with shared vision
            Player - Make Player 2 (Blue) treat (Triggering player) as an Ally with shared vision
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Player 2 (Blue) is an ally of (Triggering player)) Equal to True
              Then - Actions
                Player - Make (Triggering player) treat Player 2 (Blue) as an Ally with shared vision
              Else - Actions
                Player - Make (Triggering player) treat Player 2 (Blue) as an Ally
        Game - Display to Player Group - Player 2 (Blue) the text: ((Player + (Name of (Triggering player))) + is now your ally)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Entered chat string) Equal to -a purple
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Player 4 (Purple) controller) Equal to Computer
          Then - Actions
            Player - Make (Triggering player) treat Player 4 (Purple) as an Ally with shared vision
            Player - Make Player 4 (Purple) treat (Triggering player) as an Ally with shared vision
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Player 4 (Purple) is an ally of (Triggering player)) Equal to True
              Then - Actions
                Player - Make (Triggering player) treat Player 4 (Purple) as an Ally with shared vision
              Else - Actions
                Player - Make (Triggering player) treat Player 4 (Purple) as an Ally
        Game - Display to Player Group - Player 4 (Purple) the text: ((Player + (Name of (Triggering player))) + is now your ally)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Entered chat string) Equal to -a yellow
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Player 5 (Yellow) controller) Equal to Computer
          Then - Actions
            Player - Make (Triggering player) treat Player 5 (Yellow) as an Ally with shared vision
            Player - Make Player 5 (Yellow) treat (Triggering player) as an Ally with shared vision
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Player 5 (Yellow) is an ally of (Triggering player)) Equal to True
              Then - Actions
                Player - Make (Triggering player) treat Player 5 (Yellow) as an Ally with shared vision
              Else - Actions
                Player - Make (Triggering player) treat Player 5 (Yellow) as an Ally
        Game - Display to Player Group - Player 5 (Yellow) the text: ((Player + (Name of (Triggering player))) + is now your ally)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Entered chat string) Equal to -a pink
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Player 8 (Pink) controller) Equal to Computer
          Then - Actions
            Player - Make (Triggering player) treat Player 8 (Pink) as an Ally with shared vision
            Player - Make Player 8 (Pink) treat (Triggering player) as an Ally with shared vision
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Player 8 (Pink) is an ally of (Triggering player)) Equal to True
              Then - Actions
                Player - Make (Triggering player) treat Player 8 (Pink) as an Ally with shared vision
              Else - Actions
                Player - Make (Triggering player) treat Player 8 (Pink) as an Ally
        Game - Display to Player Group - Player 8 (Pink) the text: ((Player + (Name of (Triggering player))) + is now your ally)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Entered chat string) Equal to -a lightblue
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Player 10 (Light Blue) controller) Equal to Computer
          Then - Actions
            Player - Make (Triggering player) treat Player 10 (Light Blue) as an Ally with shared vision
            Player - Make Player 10 (Light Blue) treat (Triggering player) as an Ally with shared vision
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Player 10 (Light Blue) is an ally of (Triggering player)) Equal to True
              Then - Actions
                Player - Make (Triggering player) treat Player 10 (Light Blue) as an Ally with shared vision
              Else - Actions
                Player - Make (Triggering player) treat Player 10 (Light Blue) as an Ally
        Game - Display to Player Group - Player 10 (Light Blue) the text: ((Player + (Name of (Triggering player))) + is now your ally)
      Else - Actions
Command O
  Events
    Player - Player 1 (Red) types a chat message containing -o as An exact match
    Player - Player 2 (Blue) types a chat message containing -o as An exact match
    Player - Player 4 (Purple) types a chat message containing -o as An exact match
    Player - Player 5 (Yellow) types a chat message containing -o as An exact match
    Player - Player 8 (Pink) types a chat message containing -o as An exact match
    Player - Player 10 (Light Blue) types a chat message containing -o as An exact match
  Conditions
  Actions
    Dialog - Show ObserverDialog for (Triggering player)
Enable Observer
  Events
    Dialog - A dialog button is clicked for ObserverDialog
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Clicked dialog button) Equal to ObserverDialog_Yes
      Then - Actions
        Player Group - Pick every player in (All players) and do (Actions)
          Loop - Actions
            Player - Make (Picked player) treat (Triggering player) as an Ally with shared vision
            Player - Make (Triggering player) treat (Picked player) as an Ally with shared vision
        Unit Group - Pick every unit in (Units owned by (Triggering player)) and do (Actions)
          Loop - Actions
            Unit - Remove (Picked unit) from the game
        Game - Display to (All players) the text: (Player + ((Name of (Triggering player)) + has become an observer))
      Else - Actions
        Dialog - Hide ObserverDialog for (Triggering player)
SA Add
  Events
    Unit - A unit Finishes construction
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Unit-type of (Constructed structure)) Equal to Altar of the Light
      Then - Actions
        Unit - Add Serenity Aura to (Constructed structure)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Unit-type of (Constructed structure)) Equal to Leyline Altar
      Then - Actions
        Unit - Add Serenity Aura (Kirin'Tor) to (Constructed structure)
      Else - Actions
JD Ready
  Events
    Unit - A unit Finishes training a unit
  Conditions
    (Unit-type of (Trained unit)) Equal to Judicator
  Actions
    Cinematic - Send transmission to (All players matching ((Matching player) Equal to (Owner of (Trained unit)))) from No unit named : Play JudicatorReady <gen> and display . Modify duration: Add 0 seconds and Don't wait
EF Enable
  Events
    Unit - A unit Finishes research
  Conditions
    (Researched tech-type) Equal to R01L (techcode)
  Actions
    Player - Make Conscript (No Decay) Available for training/construction by (Owner of (Researching unit))
    Player - Make Argent Hawk (No Decay) Available for training/construction by (Owner of (Researching unit))
    Player - Make Crusader (No Decay) Available for training/construction by (Owner of (Researching unit))
    Player - Make Judicator (No Decay) Available for training/construction by (Owner of (Researching unit))
    Player - Make Templar (No Decay) Available for training/construction by (Owner of (Researching unit))
    Player - Make Cleric (No Decay) Available for training/construction by (Owner of (Researching unit))
    Player - Make Priest (No Decay) Available for training/construction by (Owner of (Researching unit))
    Player - Make Golden Strider (No Decay) Available for training/construction by (Owner of (Researching unit))
    Player - Make Squire (No Decay) Available for training/construction by (Owner of (Researching unit))
    Player - Make Hippogryph (No Decay) Available for training/construction by (Owner of (Researching unit))
    Player - Make Conscript Unavailable for training/construction by (Owner of (Researching unit))
    Player - Make Argent Hawk Unavailable for training/construction by (Owner of (Researching unit))
    Player - Make Crusader Unavailable for training/construction by (Owner of (Researching unit))
    Player - Make Judicator Unavailable for training/construction by (Owner of (Researching unit))
    Player - Make Templar Unavailable for training/construction by (Owner of (Researching unit))
    Player - Make Cleric Unavailable for training/construction by (Owner of (Researching unit))
    Player - Make Priest Unavailable for training/construction by (Owner of (Researching unit))
    Player - Make Golden Strider Unavailable for training/construction by (Owner of (Researching unit))
    Player - Make Squire Unavailable for training/construction by (Owner of (Researching unit))
    Player - Make Hippogryph Unavailable for training/construction by (Owner of (Researching unit))
    Player - Disable Pick up Strider for (Owner of (Researching unit))
    Player - Disable Dismount (Silver Hand) for (Owner of (Researching unit))
    Player - Enable Pick up Strider (2) for (Owner of (Researching unit))
    Player - Enable Dismount (Silver Hand 2) for (Owner of (Researching unit))
    Player - Enable Battle Stations (Silver Hand 2) for (Owner of (Researching unit))
    Player - Disable Battle Stations (Silver Hand) for (Owner of (Researching unit))
RG Ready
  Events
    Unit - A unit Finishes training a unit
  Conditions
    (Unit-type of (Trained unit)) Equal to Ranger General
  Actions
    Cinematic - Send transmission to (All players matching ((Matching player) Equal to (Owner of (Trained unit)))) from No unit named : Play RangerReady <gen> and display . Modify duration: Add 0 seconds and Don't wait
LC Ready
  Events
    Unit - A unit Finishes training a unit
  Conditions
    (Unit-type of (Trained unit)) Equal to Lich
  Actions
    Cinematic - Send transmission to (All players matching ((Matching player) Equal to (Owner of (Trained unit)))) from No unit named : Play LichReady <gen> and display . Modify duration: Add 0 seconds and Don't wait
NL Ready
  Events
    Unit - A unit Finishes training a unit
  Conditions
    (Unit-type of (Trained unit)) Equal to Necrolord
  Actions
    Cinematic - Send transmission to (All players matching ((Matching player) Equal to (Owner of (Trained unit)))) from No unit named : Play NecrolordReady <gen> and display . Modify duration: Add 0 seconds and Don't wait
FY Enable
  Events
    Unit - A unit Finishes research
  Conditions
    (Researched tech-type) Equal to R01K (techcode)
  Actions
    Player - Make Frost Ymirjar Champion Available for training/construction by (Owner of (Researching unit))
ZG Work
  Events
    Unit - A unit Begins training a unit
    Unit - A unit Begins research
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Triggering unit)) Equal to Ziggurat (Scourge)
        (Unit-type of (Triggering unit)) Equal to Spirit Tower (Scourge)
  Actions
    Special Effect - Create a special effect attached to the overhead of (Triggering unit) using Abilities\Weapons\ZigguratMissile\ZigguratMissile.mdl
    Hashtable - Save Handle Of(Last created special effect) as 12 of (Key (Triggering unit)) in Hashtable
ZG Idle
  Events
    Unit - A unit Cancels training a unit
    Unit - A unit Finishes training a unit
    Unit - A unit Cancels research
    Unit - A unit Finishes research
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Triggering unit)) Equal to Ziggurat (Scourge)
        (Unit-type of (Triggering unit)) Equal to Spirit Tower (Scourge)
  Actions
    Special Effect - Destroy (Load 12 of (Key (Triggering unit)) in Hashtable)
RL Replace
  Events
    Unit - A unit Finishes an upgrade
  Conditions
    (Unit-type of (Triggering unit)) Equal to Nerubian Reliquary
  Actions
    Unit - Replace (Triggering unit) with a Nerubian Reliquary using The old unit's relative life and mana
LO Add
  Events
    Unit - A unit Finishes construction
  Conditions
    And - All (Conditions) are true
      Conditions
        (Unit-type of (Constructed structure)) Equal to Graveyard (Scourge)
        (Current research level of Rusm (techcode) for (Owner of (Constructed structure))) Greater than or equal to 1
  Actions
    Unit - Add Loadout to (Constructed structure)
SP Research Begins
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Ability being cast) Equal to Path of Blood
        (Ability being cast) Equal to Path of Blood 2
        (Ability being cast) Equal to Path of Darkness
        (Ability being cast) Equal to Path of Darkness 2
        (Ability being cast) Equal to Path of Death
        (Ability being cast) Equal to Path of Death 2
  Actions
    Set ScourgePathUnit = (Casting unit)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Or - Any (Conditions) are true
          Conditions
            (Ability being cast) Equal to Path of Blood
            (Ability being cast) Equal to Path of Blood 2
      Then - Actions
        Player - Disable Path of Darkness for (Owner of ScourgePathUnit)
        Player - Disable Path of Death for (Owner of ScourgePathUnit)
        Player - Enable Path of Darkness 2 for (Owner of ScourgePathUnit)
        Player - Enable Path of Death 2 for (Owner of ScourgePathUnit)
        Player - Set the max research level of R60J (techcode) to 1 for (Owner of ScourgePathUnit)
        Unit - Order ScourgePathUnit to research R60J (techcode)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Or - Any (Conditions) are true
          Conditions
            (Ability being cast) Equal to Path of Darkness
            (Ability being cast) Equal to Path of Darkness 2
      Then - Actions
        Player - Disable Path of Blood for (Owner of ScourgePathUnit)
        Player - Disable Path of Death for (Owner of ScourgePathUnit)
        Player - Enable Path of Blood 2 for (Owner of ScourgePathUnit)
        Player - Enable Path of Death 2 for (Owner of ScourgePathUnit)
        Player - Set the max research level of R60G (techcode) to 1 for (Owner of ScourgePathUnit)
        Unit - Order ScourgePathUnit to research R60G (techcode)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Or - Any (Conditions) are true
          Conditions
            (Ability being cast) Equal to Path of Death
            (Ability being cast) Equal to Path of Death 2
      Then - Actions
        Player - Disable Path of Darkness for (Owner of ScourgePathUnit)
        Player - Disable Path of Blood for (Owner of ScourgePathUnit)
        Player - Enable Path of Darkness 2 for (Owner of ScourgePathUnit)
        Player - Enable Path of Blood 2 for (Owner of ScourgePathUnit)
        Player - Set the max research level of R60F (techcode) to 1 for (Owner of ScourgePathUnit)
        Unit - Order ScourgePathUnit to research R60F (techcode)
      Else - Actions
SP Research Finishes
  Events
    Unit - A unit Finishes research
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Researched tech-type) Equal to R60J (techcode)
        (Researched tech-type) Equal to R60F (techcode)
        (Researched tech-type) Equal to R60G (techcode)
  Actions
    Player - Disable Path of Darkness for (Owner of ScourgePathUnit)
    Player - Disable Path of Death for (Owner of ScourgePathUnit)
    Player - Disable Path of Blood for (Owner of ScourgePathUnit)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Researched tech-type) Equal to R60F (techcode)
      Then - Actions
        Custom script: set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units owned by (Owner of (Researching unit)) matching ((Unit-type of (Matching unit)) Equal to Graveyard)) and do (Actions)
          Loop - Actions
            Unit - Add Loadout to (Picked unit)
      Else - Actions
SP Cancel
  Events
    Unit - A unit Cancels research
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Researched tech-type) Equal to R60J (techcode)
        (Researched tech-type) Equal to R60F (techcode)
        (Researched tech-type) Equal to R60G (techcode)
  Actions
    Player - Set the max research level of R60G (techcode) to 0 for (Owner of ScourgePathUnit)
    Player - Set the max research level of R60F (techcode) to 0 for (Owner of ScourgePathUnit)
    Player - Set the max research level of R60J (techcode) to 0 for (Owner of ScourgePathUnit)
    Player - Enable Path of Darkness for (Owner of ScourgePathUnit)
    Player - Enable Path of Death for (Owner of ScourgePathUnit)
    Player - Enable Path of Blood for (Owner of ScourgePathUnit)
    Player - Disable Path of Blood 2 for (Picked player)
    Player - Disable Path of Darkness 2 for (Picked player)
    Player - Disable Path of Death 2 for (Picked player)
WL Research
  Events
    Unit - A unit Finishes research
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Researched tech-type) Equal to R60I (techcode)
      Then - Actions
        Player - Disable Path of Blood 2 for (Owner of (Researching unit))
        Player - Disable Path of Darkness 2 for (Owner of (Researching unit))
        Player - Disable Path of Death 2 for (Owner of (Researching unit))
        Player - Set the max research level of R60F (techcode) to 1 for (Owner of (Researching unit))
        Player - Set the max research level of R60J (techcode) to 1 for (Owner of (Researching unit))
        Player - Set the max research level of R60G (techcode) to 1 for (Owner of (Researching unit))
        Trigger - Turn off SP_Cancel <gen>
        Trigger - Turn off SP_Research_Begins <gen>
      Else - Actions
BQ Set
  Events
    Unit - A unit Finishes training a unit
  Conditions
    (Unit-type of (Trained unit)) Equal to Blood Queen
  Actions
    Set Hero_BQ = (Trained unit)
    Unit - Set mana of Hero_BQ to 0.00%
    Set BloodQueenMana = (Mana of Hero_BQ)
    Trigger - Turn on SV_Death_Cast <gen>
    Trigger - Turn on BQ_Mana_Freeze <gen>
    Trigger - Turn off (This trigger)
BQ Mana Freeze
  Events
    Time - Every 0.50 seconds of game time
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        BloodQueenMana Greater than (Mana of Hero_BQ)
      Then - Actions
        Set BloodQueenMana = (Mana of Hero_BQ)
        Unit - Set mana of Hero_BQ to BloodQueenMana
      Else - Actions
        Unit - Set mana of Hero_BQ to BloodQueenMana
FN Death
  Events
    Unit - A unit Dies
  Conditions
    (Unit-type of (Dying unit)) Equal to Fanatic
  Actions
    Unit - Remove (Casting unit) from the game
    Special Effect - Create a special effect at (Position of (Casting unit)) using Objects\Spawnmodels\Demon\DemonLargeDeathExplode\DemonLargeDeathExplode.mdl
    Special Effect - Destroy (Last created special effect)
    Special Effect - Create a special effect at (Position of (Casting unit)) using war3mapImported\Poisen Explosion.mdx
    Special Effect - Destroy (Last created special effect)
    Special Effect - Create a special effect at (Position of (Casting unit)) using war3mapImported\SteamTankImpact.mdx
    Special Effect - Destroy (Last created special effect)
LH Replace
  Events
    Unit - A unit Finishes an upgrade
  Conditions
    (Unit-type of (Triggering unit)) Equal to Lighthouse
  Actions
    Unit - Replace (Triggering unit) with a Lighthouse using The old unit's relative life and mana
DG Enable
  Events
    Unit - A unit Finishes research
  Conditions
    (Researched tech-type) Equal to R012 (techcode)
  Actions
    Player - Make Dreadguard Available for training/construction by (Owner of (Researching unit))
HS Work
  Events
    Unit - A unit Begins training a unit
    Unit - A unit Begins research
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Triggering unit)) Equal to Hollow Shrine
  Actions
    Special Effect - Create a special effect attached to the overhead of (Triggering unit) using Abilities\Spells\Other\HowlOfTerror\HowlTarget.mdl
    Hashtable - Save Handle Of(Last created special effect) as 12 of (Key (Triggering unit)) in Hashtable
HS Idle
  Events
    Unit - A unit Cancels training a unit
    Unit - A unit Finishes training a unit
    Unit - A unit Cancels research
    Unit - A unit Finishes research
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Triggering unit)) Equal to Hollow Shrine
  Actions
    Special Effect - Destroy (Load 12 of (Key (Triggering unit)) in Hashtable)
SB Research
  Events
    Unit - A unit Finishes research
  Conditions
    (Researched tech-type) Equal to R01I (techcode)
  Actions
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units owned by (Owner of (Researching unit)) of type Garden of Sorrows) and do (Actions)
      Loop - Actions
        Unit - Add Blight Growth Small (Forsaken) to (Triggering unit)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units owned by (Owner of (Researching unit)) of type Apothecarium) and do (Actions)
      Loop - Actions
        Unit - Add Blight Growth Small (Forsaken) to (Triggering unit)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units owned by (Owner of (Researching unit)) of type Plagueatorium) and do (Actions)
      Loop - Actions
        Unit - Add Blight Growth Small (Forsaken) to (Triggering unit)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units owned by (Owner of (Researching unit)) of type Virulent Tower) and do (Actions)
      Loop - Actions
        Unit - Add Blight Growth Small (Forsaken) to (Triggering unit)
SB Add
  Events
    Unit - A unit Finishes construction
  Conditions
    And - All (Conditions) are true
      Conditions
        Or - Any (Conditions) are true
          Conditions
            (Unit-type of (Constructed structure)) Equal to Garden of Sorrows
            (Unit-type of (Constructed structure)) Equal to Apothecarium
            (Unit-type of (Constructed structure)) Equal to Plagueatorium
            (Unit-type of (Constructed structure)) Equal to Virulent Tower
        (Current research level of R01I (techcode) for (Owner of (Constructed structure))) Equal to 1
  Actions
    Unit - Add Blight Growth Small (Forsaken) to (Constructed structure)
Meditation Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Meditation
  Actions
    Unit Group - Add (Target unit of ability being cast) to MeditationTargets
Meditation Loop
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in MeditationTargets and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            And - All (Conditions) are true
              Conditions
                ((Picked unit) has buff Meditation) Equal to True
          Then - Actions
            Unit - Set mana of (Picked unit) to ((Mana of (Picked unit)) + 5.00)
          Else - Actions
            Unit Group - Remove (Picked unit) from MeditationTargets
SF Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Sacrifice
  Actions
    Unit - Add a 1.50 second Generic expiration timer to (Casting unit)
GAK Cast
  Events
    Unit - A unit Is attacked
  Conditions
    And - All (Conditions) are true
      Conditions
        (Percentage life of (Attacked unit)) Less than 10
        ((Attacked unit) has buff Guardian of Ancient Kings) Equal to True
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Load 7 of (Key (Attacked unit)) from Hashtable) Greater than 0
      Then - Actions
      Else - Actions
        Set GuardianRandom = (Random integer number between 1 and 100)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            GuardianRandom Less than or equal to 100
          Then - Actions
            Unit - Set life of (Attacked unit) to 75.00%
            Unit Group - Add (Attacked unit) to GuardianUnits
            Special Effect - Create a special effect attached to the origin of (Attacked unit) using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
            Special Effect - Destroy (Last created special effect)
            Hashtable - Save 300 as 7 of (Key (Attacked unit)) in Hashtable
          Else - Actions
GAK Loop
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in GuardianUnits and do (Actions)
      Loop - Actions
        Set GuardianDuration = (Load 7 of (Key (Picked unit)) from Hashtable)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            GuardianDuration Greater than 0
          Then - Actions
            Hashtable - Save (GuardianDuration - 1) as 7 of (Key (Picked unit)) in Hashtable
          Else - Actions
            Unit Group - Remove (Picked unit) from GuardianUnits
LB Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Lightbolt
  Actions
    Set LightboltCaster = (Casting unit)
    Hashtable - Save Handle OfLightboltCaster as 14 of (Key (Target unit of ability being cast)) in Hashtable
    Unit Group - Add (Target unit of ability being cast) to LightboltTargets
LB Teleport
  Events
    Time - Every 0.50 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in LightboltTargets and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Picked unit) has buff Stunned (Lightbolt)) Equal to True
          Then - Actions
            Set LightboltTarget = (Picked unit)
            Set LightboltLocation = (Position of (Picked unit))
            Unit - Move (Load 14 of (Key (Picked unit)) in Hashtable) instantly to LightboltLocation, facing LightboltLocation
            Set LightboltFXLocation = (Position of (Load 14 of (Key LightboltTarget) in Hashtable))
            Special Effect - Create a special effect at LightboltFXLocation using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
            Special Effect - Destroy (Last created special effect)
            Unit Group - Remove (Picked unit) from LightboltTargets
            Unit - Cause (Load 14 of (Key (Picked unit)) in Hashtable) to damage (Picked unit), dealing 25.00 damage of attack type Spells and damage type Normal
            Custom script: call RemoveLocation(udg_LightboltLocation)
            Custom script: call RemoveLocation(udg_LightboltFXLocation)
          Else - Actions
EF Effect
  Events
    Unit - A unit Dies
  Conditions
    And - All (Conditions) are true
      Conditions
        (Current research level of R01L (techcode) for (Owner of (Dying unit))) Equal to 1
        ((Unit-type of (Dying unit)) is A flying unit) Equal to False
        ((Dying unit) is in EF_Units) Equal to False
  Actions
    Set ElvenFuneralLocation = (Position of (Dying unit))
    Special Effect - Create a special effect at ElvenFuneralLocation using Abilities\Spells\Items\AIlm\AIlmTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Special Effect - Create a special effect at ElvenFuneralLocation using Abilities\Spells\Items\ResourceItems\ResourceEffectTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Custom script: call RemoveLocation(udg_ElvenFuneralLocation)
HP Add
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Unit-type of (Casting unit)) Equal to Highlord
  Actions
    Set Hero_Paladin = (Casting unit)
    Countdown Timer - Hide HolyPurposeTimerWindow
    Countdown Timer - Destroy HolyPurposeTimerWindow
    Unit - Remove Holy Purpose from Hero_Paladin
    Unit - Add Holy Purpose to Hero_Paladin
    Countdown Timer - Start HolyPurposeTimer as a One-shot timer that will expire in 5.00 seconds
    Countdown Timer - Create a timer window for HolyPurposeTimer with title Holy Purpose
    Set HolyPurposeTimerWindow = (Last created timer window)
    Countdown Timer - Hide HolyPurposeTimerWindow
    Countdown Timer - Show HolyPurposeTimerWindow for (Owner of Hero_Paladin)
HP Remove
  Events
    Time - HolyPurposeTimer expires
  Conditions
  Actions
    Unit - Remove Holy Purpose from Hero_Paladin
    Countdown Timer - Hide HolyPurposeTimerWindow
    Countdown Timer - Destroy HolyPurposeTimerWindow
AW Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Avenging Wrath
  Actions
    Countdown Timer - Hide HolyPurposeTimerWindow
    Countdown Timer - Destroy HolyPurposeTimerWindow
    Trigger - Turn off HP_Add <gen>
    Set Hero_Paladin = (Casting unit)
    Unit - Remove Holy Purpose from Hero_Paladin
    Unit - Add Holy Fury to Hero_Paladin
    Countdown Timer - Start AvengingWrathTimer as a One-shot timer that will expire in (10.00 + ((Real((Level of Avenging Wrath for Hero_Paladin))) x 5.00)) seconds
    Countdown Timer - Create a timer window for AvengingWrathTimer with title Holy Fury
    Set AvengingWrathTimerWindow = (Last created timer window)
    Countdown Timer - Hide AvengingWrathTimerWindow
    Countdown Timer - Show AvengingWrathTimerWindow for (Owner of Hero_Paladin)
AW Timer
  Events
    Time - AvengingWrathTimer expires
  Conditions
  Actions
    Unit - Remove Holy Fury from Hero_Paladin
    Countdown Timer - Hide AvengingWrathTimerWindow
    Countdown Timer - Destroy AvengingWrathTimerWindow
    Trigger - Turn on HP_Add <gen>
DS Cast
  Events
    Unit - A unit Begins casting an ability
  Conditions
    (Ability being cast) Equal to Divine Storm
  Actions
    Set Hero_Paladin = (Casting unit)
    Set DivineStorm = (Target point of ability being cast)
DS Effect
  Events
    Unit - A unit Finishes casting an ability
  Conditions
    (Ability being cast) Equal to Divine Storm
  Actions
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units within (200.00 + ((Real((Level of Divine Storm for (Casting unit)))) x 25.00)) of DivineStorm) and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Owner of (Picked unit)) Equal to (Owner of Hero_Paladin)
          Then - Actions
            Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + ((Real((Level of Divine Storm for Hero_Paladin))) x 100.00))
            Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Undead\VampiricAura\VampiricAuraTarget.mdl
            Special Effect - Destroy (Last created special effect)
          Else - Actions
    Custom script: call RemoveLocation(udg_DivineStorm)
RSe Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Righteous Sentence
  Actions
    Set Hero_Paladin = (Casting unit)
    Set RSeLocation = (Position of (Target unit of ability being cast))
    Unit - Create 1 Righteous Sentence Dummy for (Owner of Hero_Paladin) at RSeLocation facing Default building facing degrees
    Unit - Order (Last created unit) to Neutral Dark Ranger - Silence RSeLocation
    Unit - Remove (Last created unit) from the game
    Custom script: call RemoveLocation(udg_RSeLocation)
BH Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Beacon of Hope
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in BeaconofHopeTargets) Equal to (1 + ((Level of Beacon of Hope for (Casting unit)) x 2))
      Then - Actions
        Set BeaconofHopeRemovedUnit = (Random unit from BeaconofHopeTargets)
        Unit - Remove Beacon of Hope buff from BeaconofHopeRemovedUnit
        Unit Group - Remove BeaconofHopeRemovedUnit from BeaconofHopeTargets
      Else - Actions
    Unit Group - Add (Target unit of ability being cast) to BeaconofHopeTargets
FL Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Flash of Light
  Actions
    Set BeaconLocation = (Position of (Target unit of ability being cast))
    Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) + ((Real((Level of Flash of Light for (Casting unit)))) x 150.00))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Target unit of ability being cast) has buff Beacon of Hope) Equal to True
      Then - Actions
        Custom script: set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units within (256.00 + ((Real((Level of Beacon of Hope for (Casting unit)))) x 256.00)) of BeaconLocation matching (((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to False)) and do (Actions)
          Loop - Actions
            Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + ((Real((Level of Flash of Light for (Casting unit)))) x 50.00))
            Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Undead\VampiricAura\VampiricAuraTarget.mdl
            Special Effect - Destroy (Last created special effect)
      Else - Actions
    Custom script: call RemoveLocation(udg_BeaconLocation)
ST Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Smite
  Actions
    Set SmiteTarget = (Target unit of ability being cast)
    Wait until (((Target unit of ability being cast) has buff Stunned (Smite)) Equal to True), checking every 0.50 seconds
    Unit - Remove Positive buffs from (Target unit of ability being cast)
    Special Effect - Create a special effect attached to the chest of SmiteTarget using Abilities\Spells\Items\ResourceItems\ResourceEffectTarget.mdl
    Special Effect - Destroy (Last created special effect)
HP Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Hand of Protection
  Actions
    Set HandofProtectionTarget = (Target unit of ability being cast)
    Unit Group - Add HandofProtectionTarget to HandofProtectionTargets
    Unit - Make HandofProtectionTarget Invulnerable
HP Loop
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in HandofProtectionTargets and do (Actions)
      Loop - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Picked unit) has buff Hand of Protection) Equal to False
      Then - Actions
        Unit - Make (Picked unit) Vulnerable
        Unit Group - Remove (Picked unit) from HandofProtectionTargets
      Else - Actions
MH Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Mount Hippogryph (New 2)
    (Ability being cast) Equal to Mount Hippogryph (New)
  Actions
    Unit Group - Add (Casting unit) to EF_Units
SCo Cast
  Events
    Unit - A unit Spawns a summoned unit
  Conditions
    (Unit-type of (Summoned unit)) Equal to Construct
  Actions
    Set SCoLocation = (Position of (Summoned unit))
    Special Effect - Create a special effect at SCoLocation using Abilities\Spells\Human\MassTeleport\MassTeleportCaster.mdl
    Special Effect - Destroy (Last created special effect)
    Custom script: call RemoveLocation(udg_SCoLocation)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Load 8 of (Key (Summoning unit)) in Hashtable) Not equal to No unit
      Then - Actions
        Hashtable - Save True as 10 of (Key (Summoning unit)) in Hashtable
        Unit - Kill (Load 8 of (Key (Summoning unit)) in Hashtable)
        Hashtable - Save Handle OfNo unit as 8 of (Key (Summoning unit)) in Hashtable
      Else - Actions
    Hashtable - Save Handle Of(Summoned unit) as 8 of (Key (Summoning unit)) in Hashtable
    Hashtable - Save Handle Of(Summoning unit) as 8 of (Key (Summoned unit)) in Hashtable
    Special Effect - Destroy (Load 9 of (Key (Summoning unit)) in Hashtable)
    Special Effect - Create a special effect attached to the weapon of (Summoning unit) using Abilities\Spells\NightElf\SpiritOfVengeance\SpiritOfVengeanceOrbs1.mdl
    Hashtable - Save Handle Of(Last created special effect) as 9 of (Key (Summoning unit)) in Hashtable
SCo Dies
  Events
    Unit - A unit Dies
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Dying unit)) Equal to Construct
        (Unit-type of (Dying unit)) Equal to Battlemage
  Actions
    Set SummonConstructSummonerHandle = (Load 8 of (Key (Dying unit)) in Hashtable)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        And - All (Conditions) are true
          Conditions
            (Unit-type of (Dying unit)) Equal to Construct
            (Load 10 of (Key SummonConstructSummonerHandle) from Hashtable) Equal to False
      Then - Actions
        Hashtable - Save Handle OfNo unit as 8 of (Key SummonConstructSummonerHandle) in Hashtable
        Special Effect - Destroy (Load 9 of (Key SummonConstructSummonerHandle) in Hashtable)
        Special Effect - Create a special effect attached to the overhead of (Load 8 of (Key (Dying unit)) in Hashtable) using Abilities\Spells\Human\DispelMagic\DispelMagicTarget.mdl
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Unit-type of (Dying unit)) Equal to Battlemage
      Then - Actions
        Unit - Add Malfunction to (Load 8 of (Key (Dying unit)) in Hashtable)
        Special Effect - Destroy (Load 9 of (Key (Dying unit)) in Hashtable)
        Unit - Add a 20.00 second Generic expiration timer to (Load 8 of (Key (Dying unit)) in Hashtable)
      Else - Actions
NT Cast
  Events
    Unit - A unit Begins channeling an ability
  Conditions
    (Ability being cast) Equal to Negate
  Actions
    Special Effect - Create a special effect attached to the overhead of (Casting unit) using Abilities\Spells\Items\AIvi\AIviTarget.mdl
    Special Effect - Destroy (Last created special effect)
IM Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Induce Magic
  Actions
    Hashtable - Save 12 as 16 of (Key (Target unit of ability being cast)) in Hashtable
    Unit Group - Add (Target unit of ability being cast) to InduceMagicTargets
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Max mana of (Target unit of ability being cast)) Not equal to 0.00
      Then - Actions
        Unit - Add Induced Magic to (Target unit of ability being cast)
      Else - Actions
        Unit - Add Induced Magic (No mana) to (Target unit of ability being cast)
    Unit - Set mana of (Target unit of ability being cast) to ((Mana of (Target unit of ability being cast)) + 50.00)
    Unit - Order (Target unit of ability being cast) to Special - Channel
IM Loop
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in InduceMagicTargets and do (Actions)
      Loop - Actions
        Set InducedMagicCount = (Load 16 of (Key (Picked unit)) from Hashtable)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            InducedMagicCount Greater than 0
          Then - Actions
            Unit - Set mana of (Picked unit) to ((Mana of (Picked unit)) + 50.00)
            Unit - Order (Picked unit) to Special - Channel
            Hashtable - Save (InducedMagicCount - 1) as 16 of (Key (Picked unit)) in Hashtable
          Else - Actions
            Unit Group - Remove (Picked unit) from InduceMagicTargets
            Unit - Remove Induced Magic from (Picked unit)
            Unit - Remove Induced Magic (No mana) from (Picked unit)
RM Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Radiate Mana
  Actions
    Unit Group - Add (Casting unit) to RadiateManaCasters
    Set RadiateManaPoint = (Target point of ability being cast)
    Hashtable - Save Handle OfRadiateManaPoint as 17 of (Key (Casting unit)) in Hashtable
RM Cancel or Finishes
  Events
    Unit - A unit Finishes casting an ability
    Unit - A unit Stops casting an ability
  Conditions
    (Ability being cast) Equal to Radiate Mana
  Actions
    Unit Group - Remove (Triggering unit) from RadiateManaCasters
RM Effect
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
  Actions
    Unit Group - Pick every unit in RadiateManaCasters and do (Actions)
      Loop - Actions
        Set RadiateManaCaster = (Picked unit)
        Custom script: set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units within 512.00 of (Load 17 of (Key RadiateManaCaster) in Hashtable) matching (((Matching unit) Equal to (Casting unit)) and (((Matching unit) belongs to an enemy of (Owner of (Picked unit))) Equal to True))) and do (Actions)
          Loop - Actions
            Set RadiateManaValue = ((Mana of (Picked unit)) x 0.02)
            Set RadiateManaValueTotal = (RadiateManaValueTotal + RadiateManaValue)
            Unit - Set mana of (Picked unit) to ((Mana of (Picked unit)) - RadiateManaValue)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            RadiateManaValueTotal Greater than 0.00
          Then - Actions
            Special Effect - Create a special effect attached to the overhead of (Picked unit) using Abilities\Spells\Items\AItb\AItbTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: set bj_wantDestroyGroup = true
            Unit Group - Pick every unit in (Units within 512 of (Position of (Picked unit)) matching ((Owner of (Matching unit)) Equal to (Owner of (Picked unit)))) and do (Actions)
              Loop - Actions
                Unit - Set mana of (Picked unit) to ((Mana of (Picked unit)) + RadiateManaValueTotal)
                Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Items\AIma\AImaTarget.mdl
                Special Effect - Destroy (Last created special effect)
          Else - Actions
        Set RadiateManaValueTotal = 0.00
AP Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Arcane Projection
  Actions
    Set Hero_Archmage = (Casting unit)
    Set APLocation = (Position of Hero_Archmage)
    Unit - Pause Hero_Archmage
    Animation - Play Hero_Archmage's spell animation
    Wait 1.00 game-time seconds
    Countdown Timer - Start ArcaneProjectionTimer as a One-shot timer that will expire in 30.00 seconds
    Countdown Timer - Create a timer window for ArcaneProjectionTimer with title Arcane Projection
    Set ArcaneProjectionTimerWindow = (Last created timer window)
    Countdown Timer - Hide ArcaneProjectionTimerWindow
    Countdown Timer - Show ArcaneProjectionTimerWindow for (Owner of Hero_Archmage)
    Special Effect - Create a special effect at APLocation using Abilities\Spells\Human\MassTeleport\MassTeleportTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Wait 1.00 game-time seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Hero_Archmage is alive) Equal to True
      Then - Actions
        Unit - Add Invulnerable (Neutral) to Hero_Archmage
        Unit - Hide Hero_Archmage
        Special Effect - Create a special effect at APLocation using Abilities\Spells\Human\Invisibility\InvisibilityTarget.mdl
        Special Effect - Destroy (Last created special effect)
        Unit - Create 1 Arcane Projection (Ward) for (Owner of Hero_Archmage) at APLocation facing Default building facing degrees
        Set ArcaneProjection = (Last created unit)
        Animation - Change ArcaneProjection's vertex coloring to (25.00%, 25.00%, 100%) with 50.00% transparency
      Else - Actions
AP Timer
  Events
    Time - ArcaneProjectionTimer expires
  Conditions
  Actions
    Countdown Timer - Hide ArcaneProjectionTimerWindow
    Countdown Timer - Destroy ArcaneProjectionTimerWindow
    Set ArcaneProjectionHeal = ((Max life of ArcaneProjection) - (Life of ArcaneProjection))
    Special Effect - Create a special effect at APLocation using Abilities\Spells\Human\Invisibility\InvisibilityTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Unit - Remove ArcaneProjection from the game
    Special Effect - Create a special effect at APLocation using Abilities\Spells\Human\MassTeleport\MassTeleportTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Unit - Unhide Hero_Archmage
    Animation - Reset Hero_Archmage's animation
    Wait 1.00 game-time seconds
    Unit - Remove Invulnerable (Neutral) from Hero_Archmage
    Unit - Unpause Hero_Archmage
    Unit - Set life of Hero_Archmage to ((Life of Hero_Paladin) + ArcaneProjectionHeal)
    Unit - Set mana of Hero_Archmage to ((Mana of Hero_Paladin) + ArcaneProjectionHeal)
    Special Effect - Create a special effect attached to the origin of Hero_Archmage using Abilities\Spells\Items\AIre\AIreTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Custom script: call RemoveLocation(udg_APLocation)
AP Penalty
  Events
    Unit - A unit Dies
  Conditions
    (Dying unit) Equal to ArcaneProjection
  Actions
    Countdown Timer - Pause ArcaneProjectionTimer
    Countdown Timer - Hide ArcaneProjectionTimerWindow
    Countdown Timer - Destroy ArcaneProjectionTimerWindow
    Special Effect - Create a special effect at APLocation using Abilities\Spells\Human\MassTeleport\MassTeleportTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Unit - Unhide Hero_Archmage
    Animation - Reset Hero_Archmage's animation
    Unit - Remove Invulnerable (Neutral) from Hero_Archmage
    Unit - Unpause Hero_Archmage
    Unit - Set mana of Hero_Archmage to 5.00%
    Unit - Set mana of Hero_Archmage to 5.00%
    Special Effect - Create a special effect attached to the chest of Hero_Archmage using Abilities\Spells\Human\ManaFlare\ManaFlareBoltImpact.mdl
    Special Effect - Destroy (Last created special effect)
    Custom script: call RemoveLocation(udg_APLocation)
DAt Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Draw Attention
  Actions
    Set DAtLocation = (Position of (Casting unit))
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units within 600.00 of DAtLocation) and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Picked unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True
          Then - Actions
            Unit - Order (Picked unit) to Attack (Casting unit)
          Else - Actions
    Custom script: call RemoveLocation(udg_DAtLocation)
OP Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Overpower
  Actions
    Set OverpowerTarget = (Target unit of ability being cast)
    Set Hero_Archmage = (Casting unit)
    Set OPLocation = (Position of Hero_Archmage)
    Wait 0.50 game-time seconds
    Set OPTargetLocation = (Position of OverpowerTarget)
    Unit - Pause Hero_Archmage
    Unit - Add Invulnerable (Neutral) to Hero_Archmage
    Special Effect - Create a special effect at OPLocation using Abilities\Spells\Human\MassTeleport\MassTeleportTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Unit - Grant shared vision of OverpowerTarget to (Owner of Hero_Archmage)
    Unit - Hide Hero_Archmage
    Wait 1.00 game-time seconds
    Special Effect - Create a special effect at (OPTargetLocation offset by (0.00, 150.00)) using Abilities\Spells\Human\Invisibility\InvisibilityTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Unit - Create 1 Arcane Projection for (Owner of Hero_Archmage) at (OPTargetLocation offset by (0, 150.00)) facing OPTargetLocation
    Set OverpowerProjection[1] = (Last created unit)
    Special Effect - Create a special effect at (OPTargetLocation offset by (150.00, 0.00)) using Abilities\Spells\Human\Invisibility\InvisibilityTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Unit - Create 1 Arcane Projection for (Owner of Hero_Archmage) at (OPTargetLocation offset by (150.00, 0.00)) facing OPTargetLocation
    Set OverpowerProjection[2] = (Last created unit)
    Special Effect - Create a special effect at (OPTargetLocation offset by (-150.00, 0.00)) using Abilities\Spells\Human\Invisibility\InvisibilityTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Unit - Create 1 Arcane Projection for (Owner of Hero_Archmage) at (OPTargetLocation offset by (-150.00, 0.00)) facing OPTargetLocation
    Set OverpowerProjection[3] = (Last created unit)
    Special Effect - Create a special effect at (OPTargetLocation offset by (0.00, -150.00)) using Abilities\Spells\Human\Invisibility\InvisibilityTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Unit - Create 1 Arcane Projection for (Owner of Hero_Archmage) at (OPTargetLocation offset by (0.00, -150.00)) facing OPTargetLocation
    Set OverpowerProjection[4] = (Last created unit)
    For each (Integer A) from 1 to 4, do (Actions)
      Loop - Actions
        Unit Group - Add OverpowerProjection[(Integer A)] to OverpowerProjections
    Unit Group - Pick every unit in OverpowerProjections and do (Actions)
      Loop - Actions
        Animation - Play (Picked unit)'s spell animation
    Wait 0.50 game-time seconds
    Special Effect - Create a special effect at OPTargetLocation using Abilities\Spells\Human\ManaFlare\ManaFlareBoltImpact.mdl
    Special Effect - Destroy (Last created special effect)
    Special Effect - Create a special effect at OPTargetLocation using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
    Special Effect - Destroy (Last created special effect)
    Unit - Cause Hero_Archmage to damage OverpowerTarget, dealing (100.00 x (Real((Level of Overpower for Hero_Paladin)))) damage of attack type Spells and damage type Magic
    Unit - Cause Hero_Archmage to damage circular area after 0 seconds of radius 150.00 at OPTargetLocation, dealing (100.00 x (Real((Level of Overpower for Hero_Paladin)))) damage of attack type Spells and damage type Magic
    Wait 1.00 game-time seconds
    For each (Integer B) from 1 to 4, do (Actions)
      Loop - Actions
        Set OPProjLocation = (Position of OverpowerProjection[(Integer B)])
        Special Effect - Create a special effect at OPProjLocation using Abilities\Spells\Human\Invisibility\InvisibilityTarget.mdl
        Special Effect - Destroy (Last created special effect)
        Unit - Remove OverpowerProjection[(Integer B)] from the game
    Special Effect - Create a special effect at OPLocation using Abilities\Spells\Human\MassTeleport\MassTeleportTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Unit - Unhide Hero_Archmage
    Unit - Remove Invulnerable (Neutral) from Hero_Archmage
    Unit - Unpause Hero_Archmage
    Selection - Add Hero_Archmage to selection
    Unit - Deny shared vision of OverpowerTarget to (Owner of Hero_Archmage)
    Custom script: call RemoveLocation(udg_OPLocation)
    Custom script: call RemoveLocation(udg_OPTargetLocation)
    Custom script: call RemoveLocation(udg_OPProjLocation)
SM New Unit
  Events
    Unit - A unit enters (Playable map area)
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Entering unit)) Equal to Golem 1
        (Unit-type of (Entering unit)) Equal to Golem 2
        (Unit-type of (Entering unit)) Equal to Golem 3
        (Unit-type of (Entering unit)) Equal to Lava Spawn (Level 1)
        (Unit-type of (Entering unit)) Equal to Lava Spawn (Level 2)
        (Unit-type of (Entering unit)) Equal to Lava Spawn (Level 3)
        (Unit-type of (Entering unit)) Equal to Water Elemental (Level 1)
        (Unit-type of (Entering unit)) Equal to Water Elemental (Level 2)
        (Unit-type of (Entering unit)) Equal to Water Elemental (Level 3)
  Actions
    Unit - Kill Summon
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Unit-type of Summon) Equal to Golem 1
        (Unit-type of Summon) Equal to Golem 2
        (Unit-type of Summon) Equal to Golem 3
      Then - Actions
        Set SummonLocation = (Position of Summon)
        Special Effect - Create a special effect at SummonLocation using Abilities\Weapons\SteamTank\SteamTankImpact.mdl
        Special Effect - Destroy (Last created special effect)
        Custom script: call RemoveLocation(udg_SummonLocation)
      Else - Actions
    Set Summon = (Entering unit)
CF Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Chant of Flames
  Actions
    Set CFLocation = (Target point of ability being cast)
    Set CFCasterLocation = (Position of (Casting unit))
    Special Effect - Create a special effect at CFCasterLocation using war3mapImported\s_RunningFlame Aura.mdx
    Set ChantofFlamesFX = (Last created special effect)
    Wait 1.00 seconds
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units within 200.00 of CFLocation matching (((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True)) and do (Actions)
      Loop - Actions
        Unit - Cause (Casting unit) to damage (Picked unit), dealing ((Real((Level of Chant of Flames for (Casting unit)))) x 50.00) damage of attack type Spells and damage type Fire
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Level of Chant of Flames for (Casting unit)) Equal to 1
      Then - Actions
        Unit - Create 1 Singing Flame 1 for (Owner of (Casting unit)) at CFLocation facing Default building facing degrees
        Set ChantofFlamesUnit = (Last created unit)
        Unit - Add a 39.00 second Generic expiration timer to ChantofFlamesUnit
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Level of Chant of Flames for (Casting unit)) Equal to 2
          Then - Actions
            Unit - Create 1 Singing Flame 2 for (Owner of (Casting unit)) at CFLocation facing Default building facing degrees
            Set ChantofFlamesUnit = (Last created unit)
            Unit - Add a 39.00 second Generic expiration timer to ChantofFlamesUnit
          Else - Actions
            Unit - Create 1 Singing Flame 3 for (Owner of (Casting unit)) at CFLocation facing Default building facing degrees
            Set ChantofFlamesUnit = (Last created unit)
            Unit - Add a 39.00 second Generic expiration timer to ChantofFlamesUnit
    Custom script: call RemoveLocation(udg_CFLocation)
    Custom script: call RemoveLocation(udg_CFCasterLocation)
CF Cancel
  Events
    Unit - A unit Stops casting an ability
  Conditions
    (Ability being cast) Equal to Chant of Flames
  Actions
    Unit - Kill ChantofFlamesUnit
    Special Effect - Destroy ChantofFlamesFX
RD Cast
  Events
    Unit - A unit Spawns a summoned unit
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Summoned unit)) Equal to Skeleton Warrior (Basic)
        (Unit-type of (Summoned unit)) Equal to Skeleton Warrior (Raise Dead)
  Actions
    Set RDLocation = (Position of (Summoned unit))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Unit-type of (Summoned unit)) Equal to Skeleton Warrior (Raise Dead)
      Then - Actions
        Special Effect - Create a special effect attached to the chest of (Summoned unit) using Abilities\Spells\Other\AcidBomb\BottleImpact.mdl
        Hashtable - Save Handle Of(Last created special effect) as 11 of (Key (Summoned unit)) in Hashtable
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        And - All (Conditions) are true
          Conditions
            (Unit-type of (Summoned unit)) Equal to Skeleton Warrior (Basic)
            ((Owner of (Summoning unit)) Food used) Greater than ((Owner of (Summoning unit)) Food cap)
      Then - Actions
        Unit - Kill (Summoned unit)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        And - All (Conditions) are true
          Conditions
            (Current research level of Rusm (techcode) for (Owner of (Summoning unit))) Equal to 2
            ((Owner of (Summoning unit)) Food used) Less than ((Owner of (Summoning unit)) Food cap)
      Then - Actions
        Unit - Create 1 Skeletal Mage (Basic) for (Owner of (Summoning unit)) at RDLocation facing Default building facing degrees
        Unit - Add a 20.00 second Raise Dead expiration timer to (Last created unit)
        Set RDFXLocation = (Position of (Last created unit))
        Special Effect - Create a special effect at RDFXLocation using Abilities\Spells\Undead\RaiseSkeletonWarrior\RaiseSkeleton.mdl
        Special Effect - Destroy (Last created special effect)
      Else - Actions
    Custom script: call RemoveLocation(udg_RDLocation)
    Custom script: call RemoveLocation(udg_RDFXLocation)
RD Dies
  Events
    Unit - A unit Dies
  Conditions
    (Unit-type of (Dying unit)) Equal to Skeleton Warrior (Raise Dead)
  Actions
    Special Effect - Destroy (Load 11 of (Key (Dying unit)) in Hashtable)
EBo Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Equip Bow
  Actions
    Set Player_Scourge = (Owner of (Casting unit))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Casting unit) has buff Loadout) Equal to True
      Then - Actions
        Unit Group - Add (Casting unit) to EquipBowUnits
      Else - Actions
        Unit - Remove Equiping buff from (Casting unit)
        Unit - Reset ability cooldowns for (Casting unit)
EBo Replace
  Events
    Time - Every 0.50 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in EquipBowUnits and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Casting unit) has buff Equiping) Equal to False
          Then - Actions
            Unit Group - Remove (Picked unit) from EquipBowUnits
            Unit - Replace (Picked unit) with a Skeleton Archer (Basic) using The old unit's relative life and mana
            Selection - Add (Last replaced unit) to selection for Player_Scourge
          Else - Actions
ZP Turn On
  Events
    Unit - A unit Finishes research
  Conditions
    (Researched tech-type) Equal to R00Q (techcode)
  Actions
    Set Player_Scourge = (Owner of (Researching unit))
    Trigger - Turn on ZP_Cast <gen>
    Trigger - Turn on ZP_Remove <gen>
    Trigger - Turn off (This trigger)
ZP Cast
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            And - All (Conditions) are true
              Conditions
                ((Picked unit) is in PlaguedUnits) Equal to False
                ((Picked unit) has buff Disease) Equal to True
          Then - Actions
            Set ZPLocation = (Position of (Picked unit))
            Unit - Create 1 Undead Dummy for Player_Scourge at ZPLocation facing Default building facing degrees
            Unit - Order (Last created unit) to Neutral - Parasite (Picked unit)
            Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
            Unit Group - Add (Picked unit) to PlaguedUnits
            Custom script: call RemoveLocation(udg_ZPLocation)
          Else - Actions
ZP Remove
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in PlaguedUnits and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Picked unit) has buff Disease) Equal to False
          Then - Actions
            Unit - Remove Plagued buff from (Picked unit)
            Unit Group - Remove (Picked unit) from PlaguedUnits
          Else - Actions
BF Effect
  Events
    Unit - A unit Is attacked
  Conditions
    And - All (Conditions) are true
      Conditions
        ((Triggering unit) has buff Blight Fungus) Equal to True
        (Owner of (Attacking unit)) Equal to Player 4 (Purple)
  Actions
    Unit - Set life of (Attacking unit) to ((Life of (Attacking unit)) + 15.00)
    Special Effect - Create a special effect attached to the chest of (Attacking unit) using Abilities\Spells\NightElf\ManaBurn\ManaBurnTarget.mdl
    Special Effect - Destroy (Last created special effect)
EBo Cast Copy
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Mind Bleed
  Actions
    Unit - Set mana of (Target unit of ability being cast) to ((Mana of (Target unit of ability being cast)) - 25.00)
SS Cast
  Events
    Unit - A unit Begins casting an ability
  Conditions
    (Ability being cast) Equal to Soul Shatter
  Actions
    Special Effect - Create a special effect attached to the overhead of (Triggering unit) using war3campImported\Poltergeist.mdx
    Hashtable - Save Handle Of(Last created special effect) as 13 of (Key (Casting unit)) in Hashtable
SS Effect
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Soul Shatter
  Actions
    Set SoulShatterTarget = (Target unit of ability being cast)
    Unit - Change ownership of SoulShatterTarget to Neutral Passive and Change color
    Unit Group - Add SoulShatterTarget to SoulShatterUnits
    Hashtable - Save Handle Of(Owner of SoulShatterTarget) as 12 of (Key (Target unit of ability being cast)) in Hashtable
    Special Effect - Destroy (Load 13 of (Key (Casting unit)) in Hashtable)
SS Remove
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in SoulShatterUnits and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Picked unit) has buff Soul Shatter) Equal to False
          Then - Actions
            Set SoulShatterOwner = (Load 12 of (Key (Picked unit)) in Hashtable)
            Unit - Change ownership of (Picked unit) to SoulShatterOwner and Change color
            Unit Group - Remove (Picked unit) from SoulShatterUnits
          Else - Actions
CR Cast
  Events
    Unit - A unit Is attacked
  Conditions
    ((Attacking unit) has buff Curse of Repent) Equal to True
  Actions
    Unit - Set life of (Attacking unit) to ((Life of (Attacking unit)) - ((Max life of (Attacking unit)) x 0.20))
    Special Effect - Create a special effect attached to the head of (Attacking unit) using Abilities\Spells\Undead\DeathPact\DeathPactCaster.mdl
    Special Effect - Destroy (Last created special effect)
MK Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Maiden Kiss
  Actions
    Set MaidenKissLifeTarget = (Percentage life of (Target unit of ability being cast))
    Unit - Set life of (Target unit of ability being cast) to (Percentage life of (Triggering unit))%
    Unit - Set life of (Triggering unit) to MaidenKissLifeTarget%
MP Cast
  Events
    Unit - A unit Begins casting an ability
  Conditions
    (Ability being cast) Equal to Morph
  Actions
    Set MPLocation = (Position of (Casting unit))
    Special Effect - Create a special effect at MPLocation using Objects\Spawnmodels\Demon\DemonSmallDeathExplode\DemonSmallDeathExplode.mdl
    Special Effect - Destroy (Last created special effect)
    Special Effect - Create a special effect at MPLocation using war3mapImported\Poisen Explosion.mdx
    Special Effect - Destroy (Last created special effect)
    Custom script: call RemoveLocation(udg_MPLocation)
VF Cast
  Events
    Unit - A unit Begins casting an ability
  Conditions
    And - All (Conditions) are true
      Conditions
        (Ability being cast) Equal to Varghulf Form
        (Unit-type of (Casting unit)) Equal to Crypt Maiden
  Actions
    Set VFLocation = (Position of (Casting unit))
    Special Effect - Create a special effect at (Position of (Casting unit)) using Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Custom script: call RemoveLocation(udg_VFLocation)
VF Effect
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Varghulf Form
  Actions
    Animation - Remove the alternate animation tag to (Casting unit)
    Animation - Reset (Casting unit)'s animation
VP Cast
  Events
    Unit - A unit Is attacked
  Conditions
    And - All (Conditions) are true
      Conditions
        ((Attacked unit) is A structure) Equal to False
        ((Attacked unit) is Mechanical) Equal to False
        Or - Any (Conditions) are true
          Conditions
            (Unit-type of (Attacking unit)) Equal to San'layn Priest
            (Unit-type of (Attacking unit)) Equal to San'layn Sorceress
            (Unit-type of (Attacking unit)) Equal to San'layn Ranger
            (Unit-type of (Attacking unit)) Equal to Varghulf
  Actions
    Set VampirismHeal = (20.00 + ((Real((Current research level of R00R (techcode) for (Owner of (Attacking unit))))) x 20.00))
    Hashtable - Save VampirismHeal as 23 of (Key (Attacking unit)) in Hashtable
    Hashtable - Save 1.00 as 24 of (Key (Attacking unit)) in Hashtable
    Unit Group - Add (Attacking unit) to VampirismUnits
VP Loop
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in VampirismUnits and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Load 24 of (Key (Picked unit)) from Hashtable) Equal to 0.00
          Then - Actions
            Unit - Set life of (Picked unit) to ((Percentage life of (Picked unit)) + (Load 23 of (Key (Picked unit)) from Hashtable))%
            Special Effect - Create a special effect attached to the origin of (Attacking unit) using Abilities\Spells\Undead\VampiricAura\VampiricAuraTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Unit Group - Remove (Picked unit) from VampirismUnits
          Else - Actions
            Hashtable - Save 0.00 as 24 of (Key (Picked unit)) in Hashtable
IL Cast
  Events
    Unit - A unit Dies
  Conditions
    And - All (Conditions) are true
      Conditions
        (Current research level of R00S (techcode) for (Owner of (Dying unit))) Equal to 1
        Or - Any (Conditions) are true
          Conditions
            (Unit-type of (Dying unit)) Equal to Weaver
            (Unit-type of (Dying unit)) Equal to Depths Knight
            (Unit-type of (Dying unit)) Equal to Carrion Beetle (Basic)
            (Unit-type of (Dying unit)) Equal to Mind Disruptor
            (Unit-type of (Dying unit)) Equal to Crypt Lord
            (Unit-type of (Dying unit)) Equal to Burrowed Carrion Beetle
            (Unit-type of (Dying unit)) Equal to Burrowed Carrion Beetle (Tunneling)
            (Unit-type of (Dying unit)) Equal to Thing That Should Not Be
            (Unit-type of (Dying unit)) Equal to Burrowed Weaver
            (Unit-type of (Dying unit)) Equal to Burrowed Weaver (Tunneling)
  Actions
    Set ILLocation = (Position of (Dying unit))
    Unit - Create 1 Undead Dummy for (Owner of (Dying unit)) at ILLocation facing Default building facing degrees
    Unit - Add a 30.00 second Generic expiration timer to (Last created unit)
    Unit - Order (Last created unit) to Undead Crypt Lord - Locust Swarm
    Custom script: call RemoveLocation(udg_ILLocation)
NC Research
  Events
    Unit - A unit Finishes research
  Conditions
    (Researched tech-type) Equal to R00V (techcode)
  Actions
    Set NCLocation = (Center of (Playable map area))
    Set Player_Scourge = (Owner of (Researching unit))
    Trigger - Turn on NC_On <gen>
    Trigger - Turn on NC_Off <gen>
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (In-game time of day) Greater than or equal to 18.00
      Then - Actions
        Unit - Remove NightCurseDummy from the game
        Unit - Create 1 Night Curse for Player_Scourge at NCLocation facing Default building facing degrees
        Set NightCurseDummy = (Last created unit)
      Else - Actions
    Custom script: call RemoveLocation(udg_NCLocation)
NC On
  Events
    Game - The in-game time of day becomes Equal to 18.00
  Conditions
  Actions
    Set NCLocation = (Center of (Playable map area))
    Unit - Remove NightCurseDummy from the game
    Unit - Create 1 Night Curse for Player_Scourge at NCLocation facing Default building facing degrees
    Set NightCurseDummy = (Last created unit)
    Custom script: call RemoveLocation(udg_NCLocation)
NC Off
  Events
    Game - The in-game time of day becomes Equal to 6.00
  Conditions
  Actions
    Unit - Remove NightCurseDummy from the game
DB Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Dissiminate Blight
  Actions
    Hashtable - Save Handle Of(Target point of ability being cast) as 18 of (Key (Casting unit)) in Hashtable
DB Effect
  Events
    Unit - A unit Finishes casting an ability
  Conditions
    (Ability being cast) Equal to Dissiminate Blight
  Actions
    Environment - Create Blight for (Owner of (Casting unit)) from (Load 18 of (Key (Casting unit)) in Hashtable) to a radius of 400.00
BE Count
  Events
    Unit - A unit Finishes research
  Conditions
    (Researched tech-type) Equal to R01M (techcode)
  Actions
    Hashtable - Save 0 as 1 of (Key (Owner of (Summoned unit))) in Hashtable
BS Cast
  Events
    Unit - A unit Spawns a summoned unit
  Conditions
    (Unit-type of (Summoned unit)) Equal to Blood Ember
  Actions
    Set BloodEmberCount = (Load 1 of (Key (Owner of (Summoned unit))) from Hashtable)
    Hashtable - Save (BloodEmberCount + 1) as 1 of (Key (Owner of (Summoned unit))) in Hashtable
EV Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Ember of Vitality
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Load 1 of (Key (Owner of (Casting unit))) from Hashtable) Greater than 0
      Then - Actions
        Set BloodEmberCount = (Load 1 of (Key (Owner of (Casting unit))) from Hashtable)
        Hashtable - Save (BloodEmberCount - 1) as 1 of (Key (Owner of (Casting unit))) in Hashtable
        Unit - Kill (Random unit from (Units owned by (Owner of (Casting unit)) of type Blood Ember))
        Unit - Set life of (Casting unit) to 100%
        Special Effect - Create a special effect attached to the origin of (Casting unit) using Abilities\Spells\Demon\DarkPortal\DarkPortalTarget.mdl
        Special Effect - Destroy (Last created special effect)
      Else - Actions
        Quest - Display to (All players) the Warning message: [|cffffcc00No Embers available|r]
SG Cast
  Events
    Unit - A unit Spawns a summoned unit
  Conditions
    (Unit-type of (Summoned unit)) Equal to Geist
  Actions
    Special Effect - Create a special effect attached to the origin of (Summoned unit) using Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
    Special Effect - Destroy (Last created special effect)
SSa Cast
  Events
    Unit - A unit Finishes casting an ability
  Conditions
    (Ability being cast) Equal to Soul Sacrifice
  Actions
    Unit - Kill (Casting unit)
BB Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    And - All (Conditions) are true
      Conditions
        (Ability being cast) Equal to Blight Boil
  Actions
    Set BBLocation = (Position of (Target unit of ability being cast))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Target unit of ability being cast) is Undead) Equal to True
      Then - Actions
        Special Effect - Create a special effect at BBLocation using Objects\Spawnmodels\Demon\DemonSmallDeathExplode\DemonSmallDeathExplode.mdl
        Special Effect - Destroy (Last created special effect)
        Special Effect - Create a special effect at BBLocation using Objects\Spawnmodels\Undead\UCancelDeath\UCancelDeath.mdl
        Special Effect - Destroy (Last created special effect)
        Custom script: set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units within 400.00 of (Position of (Target unit of ability being cast)) matching (((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True)) and do (Actions)
          Loop - Actions
            Unit - Cause (Casting unit) to damage (Picked unit), dealing (Life of (Target unit of ability being cast)) damage of attack type Chaos and damage type Death
        Unit - Explode (Target unit of ability being cast)
      Else - Actions
        Quest - Display to (All players matching ((Matching player) Equal to (Owner of (Casting unit)))) the Warning message: [|cffffcc00Must target an undead|r]
    Custom script: call RemoveLocation(udg_BBLocation)
TS Enable
  Events
    Unit - A unit Finishes research
  Conditions
    (Researched tech-type) Equal to R021 (techcode)
  Actions
    Player - Disable Burrow (Weaver) for (Owner of (Researching unit))
    Player - Disable Burrow (Carrion Beetle) for (Owner of (Researching unit))
    Player - Enable Burrow (Tunneling Beetle) for (Owner of (Researching unit))
    Player - Enable Burrow (Tunneling Weaver) for (Owner of (Researching unit))
TB Enable
  Events
    Unit - A unit Finishes research
  Conditions
    (Researched tech-type) Equal to R022 (techcode)
  Actions
    Set Player_Scourge = (Owner of (Researching unit))
    Trigger - Turn on TB_Effect <gen>
TB Effect
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in (Playable map area) matching (((Matching unit) belongs to an enemy of Player_Scourge) Equal to True)) and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            And - All (Conditions) are true
              Conditions
                ((Position of (Picked unit)) is blighted) Equal to True
                ((Picked unit) is Magic Immune) Equal to False
                ((Picked unit) is Undead) Equal to False
          Then - Actions
            Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Undead\CarrionSwarm\CarrionSwarmDamage.mdl
            Special Effect - Destroy (Last created special effect)
            Unit - Set life of (Picked unit) to ((Percentage life of (Picked unit)) - 1.00)%
          Else - Actions
SB Cast
  Events
    Unit - A unit Spawns a summoned unit
  Conditions
    (Unit-type of (Summoned unit)) Equal to Broodling
  Actions
    Special Effect - Create a special effect attached to the origin of (Summoned unit) using Objects\Spawnmodels\Demon\DemonSmallDeathExplode\DemonSmallDeathExplode.mdl
    Special Effect - Destroy (Last created special effect)
SB Death
  Events
    Unit - A unit Dies
  Conditions
    (Unit-type of (Dying unit)) Equal to Broodling
  Actions
    Set SBLocation = (Position of (Dying unit))
    Special Effect - Create a special effect at SBLocation using war3mapImported\Poisen Explosion.mdx
    Special Effect - Destroy (Last created special effect)
    Special Effect - Create a special effect at SBLocation using Objects\Spawnmodels\Demon\DemonSmallDeathExplode\DemonSmallDeathExplode.mdl
    Special Effect - Destroy (Last created special effect)
    Custom script: call RemoveLocation(udg_SBLocation)
SE Cast
  Events
    Unit - A unit Spawns a summoned unit
  Conditions
    (Unit-type of (Summoned unit)) Equal to Necrotic Egg
  Actions
    Set SELocation = (Position of (Summoned unit))
    Special Effect - Create a special effect at SELocation using Objects\Spawnmodels\Demon\DemonSmallDeathExplode\DemonSmallDeathExplode.mdl
    Special Effect - Destroy (Last created special effect)
    Special Effect - Create a special effect at SELocation using Abilities\Spells\Undead\RaiseSkeletonWarrior\RaiseSkeleton.mdl
    Special Effect - Destroy (Last created special effect)
    Custom script: call RemoveLocation(udg_SELocation)
    Unit - Replace (Summoned unit) with a Necrotic Egg using The old unit's relative life and mana
CP Enable
  Events
    Unit - A unit Finishes research
  Conditions
    (Researched tech-type) Equal to R024 (techcode)
  Actions
    Player - Enable Create Corpse (Zigurat) for (Owner of (Researching unit))
UG Spawn
  Events
    Unit - A unit enters (Playable map area)
  Conditions
    (Unit-type of (Entering unit)) Equal to Undergate
  Actions
    Unit - Pause (Entering unit)
    Unit Group - Add (Entering unit) to UGUnits
    Hashtable - Save 60 as 26 of (Key (Entering unit)) in Hashtable
UG Loop
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in UGUnits and do (Actions)
      Loop - Actions
        Set UGTime = (Load 26 of (Key (Picked unit)) from Hashtable)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            UGTime Equal to 0
          Then - Actions
            Unit - Unpause (Picked unit)
            Unit Group - Remove (Picked unit) from UGUnits
          Else - Actions
            Hashtable - Save (UGTime - 1) as 26 of (Key (Picked unit)) in Hashtable
BR Remove
  Events
    Unit - A unit Spawns a summoned unit
  Conditions
    And - All (Conditions) are true
      Conditions
        (Current research level of R00T (techcode) for (Owner of (Summoning unit))) Equal to 0
        Or - Any (Conditions) are true
          Conditions
            (Unit-type of (Summoned unit)) Equal to Skeleton Warrior
            (Unit-type of (Summoned unit)) Equal to Skeletal Mage
            (Unit-type of (Summoned unit)) Equal to Skeletal Minion 1
            (Unit-type of (Summoned unit)) Equal to Skeletal Minion 3
            (Unit-type of (Summoned unit)) Equal to Skeleton Warrior
            (Unit-type of (Summoned unit)) Equal to Skeleton Warrior (Basic)
            (Unit-type of (Summoned unit)) Equal to Skeleton Warrior (Raise Dead)
            (Unit-type of (Summoned unit)) Equal to Skeletal Mage
            (Unit-type of (Summoned unit)) Equal to Skeletal Mage (Basic)
            (Unit-type of (Summoned unit)) Equal to Skeleton Archer (Basic)
  Actions
    Unit - Remove Spell Immunity (Scourge) from (Summoned unit)
DT Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Death's Touch
  Actions
    Unit Group - Add (Target unit of ability being cast) to DTUnits
DT Cast Loop
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    ((Casting unit) is in DTUnits) Equal to True
  Actions
    Unit - Set life of (Casting unit) to ((Percentage life of (Casting unit)) - 2.00)%
    Special Effect - Create a special effect attached to the chest of (Casting unit) using Abilities\Spells\Human\Feedback\ArcaneTowerAttack.mdl
    Special Effect - Destroy (Last created special effect)
DT Attack Loop
  Events
    Unit - A unit Is attacked
  Conditions
    ((Attacking unit) is in DTUnits) Equal to True
  Actions
    Unit - Set life of (Attacking unit) to ((Percentage life of (Attacking unit)) - 0.50)%
    Special Effect - Create a special effect attached to the chest of (Attacking unit) using Abilities\Spells\Human\Feedback\ArcaneTowerAttack.mdl
    Special Effect - Destroy (Last created special effect)
DT Removal Loop
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in DTUnits and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Picked unit) has buff Death's Touch) Equal to False
          Then - Actions
            Unit Group - Remove (Picked unit) from DTUnits
          Else - Actions
SF Casts
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Soul Feast
  Actions
    Set Hero_DK = (Casting unit)
    Set SoulFeastUp = True
SF Finishes
  Events
    Unit - A unit Finishes casting an ability
  Conditions
    (Ability being cast) Equal to Soul Feast
  Actions
    Set SoulFeastUp = False
SF Stops
  Events
    Unit - A unit Stops casting an ability
  Conditions
    (Ability being cast) Equal to Soul Feast
  Actions
    Set SoulFeastUp = False
SF Heal
  Events
    Time - Every 1.00 seconds of game time
  Conditions
    SoulFeastUp Equal to True
  Actions
    Set SoulFeastTargets = (Number of units in (Units within 800.00 of (Position of Hero_DK) matching (((Picked unit) belongs to an enemy of (Owner of Hero_DK)) Equal to True)))
    Set SoulFeastHeal = ((Real(SoulFeastTargets)) x (50.00 + (Real((Level of Soul Feast for Hero_DK)))))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        SoulFeastTargets Greater than 0
      Then - Actions
        Special Effect - Create a special effect attached to the origin of Hero_DK using Abilities\Spells\Undead\VampiricAura\VampiricAuraTarget.mdl
        Special Effect - Destroy (Last created special effect)
        Unit - Set life of Hero_DK to ((Life of Hero_DK) + SoulFeastHeal)
      Else - Actions
NI Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Necrotic Inffection
  Actions
    Set Hero_DK = (Casting unit)
    Set NecroticInffectionMadness = (Random integer number between 1 and 100)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        NecroticInffectionMadness Less than or equal to (5 + ((Level of Necrotic Inffection for (Casting unit)) x 15))
      Then - Actions
        Special Effect - Create a special effect attached to the head of (Target unit of ability being cast) using Abilities\Spells\Orc\FeralSpirit\feralspirittarget.mdl
        Special Effect - Destroy (Last created special effect)
        Unit - Change ownership of (Target unit of ability being cast) to Neutral Hostile and Change color
        Unit - Order (Target unit of ability being cast) to Stop
      Else - Actions
NI Ghouls
  Events
    Unit - A unit enters (Playable map area)
  Conditions
    And - All (Conditions) are true
      Conditions
        (Unit-type of (Entering unit)) Equal to Necrotic Ghoul
        (Number of living Necrotic Ghoul units owned by (Owner of Hero_DK)) Greater than 6
  Actions
    Unit - Make (Entering unit) Explode on death
    Unit - Add a 60.00 second Animate Dead expiration timer to (Entering unit)
BP Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Blood Plague
  Actions
    Set BPLocation = (Target point of ability being cast)
    Set Hero_DK = (Casting unit)
    Special Effect - Create a special effect at BPLocation using Abilities\Spells\Demon\DarkPortal\DarkPortalTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Special Effect - Create a special effect at BPLocation using Abilities\Spells\Items\VampiricPotion\VampPotionCaster.mdl
    Set BloodPlagueSFX = (Last created special effect)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Level of Blood Plague for (Casting unit)) Equal to 1
      Then - Actions
        Unit - Create 1 Blood Plague 1 for (Owner of Hero_DK) at BPLocation facing Default building facing degrees
        Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
        Unit - Create 1 Blood Plague 1 for (Owner of Hero_DK) at BPLocation facing Default building facing degrees
        Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Level of Blood Plague for (Casting unit)) Equal to 2
          Then - Actions
            Unit - Create 1 Blood Plague 2 for (Owner of Hero_DK) at BPLocation facing Default building facing degrees
            Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
            Unit - Create 1 Blood Plague 2 for (Owner of Hero_DK) at BPLocation facing Default building facing degrees
            Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
          Else - Actions
            Unit - Create 1 Blood Plague 3 for (Owner of Hero_DK) at BPLocation facing Default building facing degrees
            Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
            Unit - Create 1 Blood Plague 3 for (Owner of Hero_DK) at BPLocation facing Default building facing degrees
            Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
    Countdown Timer - Start BloodPlagueDuration as a One-shot timer that will expire in 10.00 seconds
    Custom script: call RemoveLocation(udg_BPLocation)
BP Timer
  Events
    Time - BloodPlagueDuration expires
  Conditions
  Actions