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. We have recently started the 16th edition of the Mini Mapping Contest. The theme is mini RPG. Do check it out and have fun.
    Dismiss Notice
  5. Dismiss Notice
  6. The Highway to Hell has been laid open. Come along and participate in the 5th Special Effect Contest.
    Dismiss Notice
  7. 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

UndeadX07c.w3x
Variables
Initialization
Initialization
Init 01 Players
Init 02 Units
Init 03 Destructibles
Init 04 Music and Sounds
Init 05 Environment
Init 06 Quests
Init 07a Hard
Init 07b Normal
Init 08 Form Unit Groups
Init 09 Regions to Points
Load Heroes
Load Heroes
Load Arthas
Load Anubarak
Load Default Arthas
Load Default Anubarak
Experience Cap Anubarak
Level Data
Next Level Run
IZZZZZZZZZZZZI
***** Cinematics *****
Intro Cinematic
Intro Cinematic Q
Crypt 01 Facing
Crypt 02 Facing
Crypt 03 Facing
Crypt 04 Facing
Anubarak Facing
Intro Skipped
Intro Setup
Intro Cleanup
Gameplay
Rejoin Cinematic
Rejoin Init 01
Rejoin Init 02
Rejoin Cinematic Q
Rejoin Skipped
Rejoin Setup
Rejoin Cleanup
Victory Cinematic
Victory Cinematic Q
Victory Skipped
Victory Setup
***** Dialogue *****
VoiceOvers
Voiceover Damned Exit Q
Voiceover Whole Place Crumbling Q
Voiceover Another Quake Q
Voiceover More Blasted Mechanisms
Voiceover More Blasted Mechanisms Q
Voiceover Strange Obstacle
Voiceover Strange Obstacle Q
Voiceover Blocking the Way
Voiceover Blocking the Way Q
Voiceover Running Out of Time Q
Voiceover Another Quake Hurry Q
Voiceover Breaking Through Q
Voiceover Singed
Voiceover Singed Q
Custom Voice Overs
Voiceover Anub Quake Q
Voiceover Anub Singed Q
Voiceover Encountered Boss Q
***** Puzzles and Traps *****
Blue Side Flame
Start Timers
Damage Line 01
Damage Line 02
Damage Line 03
Damage Line 04
Damage Line 05
Damage Line 06
Timing Trap Line 01
Timing Trap Line 02
Timing Trap Line 03
Timing Trap Line 04
Timing Trap Line 05
Timing Trap Line 06
Blue Side Flame Damage
Blue Side Flame Floaty Normal
Blue Side Flame Plate Off
Blue Flame Geyser Grid
Blue Flame Geyser Setup
Plate 01 Area Death Animation
Plate 01 Area Stand Animation
Plate 02 Area Death Animation
Plate 02 Area Stand Animation
Plate 03 Area Death Animation
Plate 03 Area Stand Animation
Plate 04 Area Death Animation
Plate 04 Area Stand Animation
Damage Plate 01 Pulsating Area
Damage Plate 01 Sustained Area
Damage Plate 02 Pulsating Area
Damage Plate 02 Sustained Area
Damage Plate 03 Pulsating Area
Damage Plate 03 Sustained Area
Damage Plate 04 Pulsating Area
Sustained Cells
Damage Flame Sustained
Sustained Sound
Blue Flame Geyser Damage
Blue Flame Geyser Damage
Blue Flame Geyser Floaty
Blue Flame Geyser Pressure Plates
Plate 01
Plate 02
Plate 03
Plate 04
Turn Off Geyser Trap and Open Door
Blizzard Spiral Trap
Blizzard Strike Setup
Area 01 Wall Down
Area 02 Wall Down
Area Arch Mage
Blizzard 01 Area
Blizzard 02 Area
Blizzard 03 Area
Activate 04
Blizzard 04 Area
Last Power Generator Dies
Moving Elevator Puzzle
-------- Setup --------
Elevators Init
Elevators Update
Elevator Sound
Ele AI help for units
Elevator Baddie Dies
Elevator Secret off Lever
Elevator Secret off Lever Q
-------- Action --------
Elevators Update Heights
Elevator Walls Begin Vertical
Elevator Walls Begin Vertical One
Elevator Walls Begin Horizontal
Elevator Walls Begin Horizontal One
Elevator Walls Finish Vertical
Elevator Walls Finish Vertical One
Elevator Walls Finish Horizontal
Elevator Walls Finish Horizontal One
Cripple
Cripple 01
Cripple 02
Two Plate Puzzle
Two Plate Setup
Plate 01 Unit Enters
Plate 01 Unit Leaves
Plate 02 Unit Enters
Plate 02 Unit Leaves
Two Plate Check
Plate 01 Pushed
Plate 01 Released
Plate 02 Pushed
Plate 02 Released
Two Plate Solution Check
Ensnare
Ensnare
Break Through Attack
Break Through Attack
Curse Attack
Curse Attack
Curse Attacker Dies
Final Area
Final Area Earthquake Start
Kill Final Guardians To Open Gate
Foot Switch Puzzle
Plate 05 Activated
Plate 06 Activated
Plate 07 Unit Enters
RevealerSmallElevator
RevealerGroupAddSmallElevator
RevealerGroupSubtractSmallElevator
RevealerCheckSmallElevator
RevealerSideSmallElevatorSafety
Faceless Ones Ambush
Faceless Ones Attack 01
Faceless Ones Attack 02
Faceless Ones Attack 03
Faceless One Drops Tome
Boss Power Generator Dies
Anub'arak Secret Puzzles
Plate 08 Unit Enters
Rock Chunk Destroyed
Force Wall Lever Secret
***** Revealers *****
Revealer Blue Flame Side Area
RevealerSideFlame01
RevealerGroupAddSideFlame01
RevealerGroupSubtractSideFlame01
RevealerCheckSideFlame01
RevealerSideFlameSafety01
Revealer Blue Flame Geyser
RevealerSideGeyserFlame
RevealerGroupAddGeyserFlame
RevealerGroupSubtractGeyserFlame
RevealerCheckGeyserFlame
RevealerSideGeyserFlameSafety
Revealer Moving Elevator
RevealerBigElevator
RevealerGroupAddBigElevator
RevealerGroupSubtractBigElevator
RevealerCheckBigElevator
RevealerSideBigElevatorSafety
Revealer Two Plates
RevealerTwoPlates
RevealerGroupAddTwoPlates
RevealerGroupSubtractTwoPlates
RevealerCheckTwoPlates
RevealerSideTwoPlatesSafty
Revealer Mage Area
RevealerMage
RevealerGroupAddMage
RevealerGroupSubtractMage
RevealerCheckMage
RevealerSideMageSafety
Revealer Blue Flame Orb Area
RevealerSideFlame02
RevealerGroupAddSideFlame02
RevealerGroupSubtractSideFlame02
RevealerCheckSideFlame02
RevealerSideFlameSafety02
Revealer Boss Area
RevealerBoss
RevealerGroupAddBoss
RevealerGroupSubtractBoss
RevealerCheckBoss
RevealerSideBossSafety
***** Miscellaneous Destructibles *****
Dust Effects
-------- Effects --------
Dust FX Intro
Dust FX Fountain of Health
Dust FX Cave Exit
Dust FX Curse
Dust FX Final Area
Dust FX Anubarak 01
Dust FX Anubarak 02
Activating Misc Elevators and Doors
Lever Flame Trap Enter
Lever Flame Trap Monster
Lever Flame Strike
Lever Anubarak Scene Enter
Lever Boss Trap Enter
Quakes
Quake Shake
Quake 01 Fountain
Quake 02 Cave Exit
Quake 03 Curse
Quake 04 Final Area
Quake 05 Anubarak
Quake 06 Anubarak
***** Quests *****
Gold Quest
Gold Coin Found
First Coin Found Q
Second Coin Found Q
Third Coin Found Q
Quests
----- Escape Quest -----
Quest Escape Create
Quest Escape Discover
Quest Escape Completed
----- Gold Quest -----
Quest Gold Create
Quest Gold Discover
Quest Gold Completed
----- Gold Quest Update -----
Gold 02 Found
Gold 03 Found
Gold 04 Found
Quest Failed
Mission Failed Anubarak Dead
Mission Failed Arthas Dead
Mission Failed Timer Expired
Hints
Escape Caverns Hint
Five Minute Warning
Two Minute Warning
Coins Invulnerable
Coins 01 and 02
Coins 03
***** Cave Timer *****
Timer Main Quest
Timer Main Quest
Timer Yellow
Timer Red
***********************
Victory Defeat
Victory Exit
Defeat Timer Expires
Defeat Arthas Dead
Defeat Anubarak Dead
Player Sharing Triggers
SetDifficulty
DifficultySelected
ConvertPlayerUnits
UpdateFoodUsage
UpdateResourcesGold
UpdateResourcesLumber
TomeStrengthUsed
TomeAgilityUsed
TomeIntelligenceUsed
PlayerLeavesGame
Game Cache Triggers
SetCacheVariables
LoadHeroesText
PreplaceItemsLoad
PreplaceItemsSave
SaveCodeEtc
StartGame
LoadGame
NewGame
Satchet Triggers
MoveSatchets
BackpackDropItems
SatchetLevelGain
SatchetHeroDies
function SaveLoad_InitialSetup takes nothing returns nothing
    local integer i = 0
    local integer j = 0

    loop
        set udg_SaveLoad_Compress[i + 48] = j
        set udg_SaveLoad_Uncompress[i] = i + 48
        set j = j + 1
        set i = i + 1
        exitwhen i >= 10
    endloop
    set i = 0
    loop
        set udg_SaveLoad_Compress[i + 97] = j
        set udg_SaveLoad_Compress[i + 65] = j + 26
        set udg_SaveLoad_Uncompress[i + 10] = i + 97
        set udg_SaveLoad_Uncompress[i + 26 + 10] = i + 65
        set j = j + 1
        set i = i + 1
        exitwhen i >= 26
    endloop
endfunction

function SaveLoad_Id2CId takes integer n returns integer
    local integer i = n / (256 * 256 * 256)
    local integer r
    set n = n - i * (256 * 256 * 256)
    set r = udg_SaveLoad_Compress[i]
    set i = n / (256 * 256)
    set n = n - i * (256 * 256)
    set r = r * 64 + udg_SaveLoad_Compress[i]
    set i = n / 256
    set r = r * 64 + udg_SaveLoad_Compress[i]
    return r * 64 + udg_SaveLoad_Compress[n - i * 256]
endfunction

function SaveLoad_CId2Id takes integer n returns integer
    local integer i = n / (64 * 64 * 64)
    local integer r
    set n = n - i * (64 * 64 * 64)
    set r = udg_SaveLoad_Uncompress[i]
    set i = n / (64 * 64)
    set n = n - i * (64 * 64)
    set r = r * 256 + udg_SaveLoad_Uncompress[i]
    set i = n / 64
    set r = r * 256 + udg_SaveLoad_Uncompress[i]
    return r * 256 + udg_SaveLoad_Uncompress[n - i * 64]
endfunction

function SaveLoad_Unit2Integer takes unit u returns integer
    local integer i = 0
    local integer n = GetUnitTypeId(u)
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    loop
        set i = i + 1
        exitwhen i > udg_SaveLoad_Heroes_LastIndex
        if udg_SaveLoad_Heroes[i] == n then
            return i
        endif
    endloop
    return SaveLoad_Id2CId(n)
endfunction
function SaveLoad_Integer2Unit takes integer i returns integer
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    if i <= udg_SaveLoad_Heroes_LastIndex then
        return udg_SaveLoad_Heroes[i]
    endif
    return SaveLoad_CId2Id(i)
endfunction

function SaveLoad_Item2Integer takes item t returns integer
    local integer i = 0
    local integer n = GetItemTypeId(t)
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    loop
        set i = i + 1
        exitwhen i > udg_SaveLoad_Items_LastIndex
        if udg_SaveLoad_Items[i] == n then
            return i
        endif
    endloop
    return SaveLoad_Id2CId(n)
endfunction
function SaveLoad_Integer2Item takes integer i returns integer
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    if i <= udg_SaveLoad_Items_LastIndex then
        return udg_SaveLoad_Items[i]
    endif
    return SaveLoad_CId2Id(i)
endfunction

function SaveLoad_Ability2Integer takes integer a returns integer
    local integer i = 0
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    loop
        set i = i + 1
        exitwhen i > udg_SaveLoad_Abilities_LastIndex
        if udg_SaveLoad_Abilities[i] == a then
            return i
        endif
    endloop
    return SaveLoad_Id2CId(a)
endfunction
function SaveLoad_Integer2Ability takes integer i returns integer
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    if i <= udg_SaveLoad_Abilities_LastIndex then
        return udg_SaveLoad_Abilities[i]
    endif
    return SaveLoad_CId2Id(i)
endfunction

function SaveLoad_EncodeChar takes string n returns integer
    local integer i = 0
    local string s1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    local string s2 = "abcdefghijklmnopqrstuvwxyz"
    local string s3 = "0123456789"

    loop
        if SubString(s1,i,i + 1) == n then
            return i
        endif
        if SubString(s2,i,i + 1) == n then
            return i
        endif
        set i = i + 1
        exitwhen i >= 26
    endloop
    set i = 0
    loop
        if SubString(s3,i,i + 1) == n then
            return i
        endif
        set i = i + 1
        exitwhen i >= 10
    endloop
    return 0
endfunction

function SaveLoad_EncodeVerify takes string buffer returns integer
    local integer i = 0
    local integer j = 0
    local string name = GetPlayerName(GetTriggerPlayer())
    if udg_SaveLoad_UsePlayername == true then
        loop
            set j = j + SaveLoad_EncodeChar(SubString(name,i,i + 1))
            set i = i + 1
            exitwhen i >= StringLength(name)
        endloop
    endif
    set i = 0
    loop
        set j = j + SaveLoad_EncodeChar(SubString(buffer,i,i + 1))
        set i = i + 1
        exitwhen i >= StringLength(buffer)
    endloop
    return j
endfunction

function SaveLoad_EncodeValues takes nothing returns string
    local integer i
    local integer j
    local integer k
    local integer l
    local integer m
    local integer CodeLength = StringLength(udg_SaveLoad_Alphabet)
    local integer array a
    local string buffer = ""
    local string c = ""
    local integer skip = 0
    local integer CONST = 1000000
    local string abc = "0123456789"

    set i = 0
    loop
        set i = i + 1
        exitwhen i > udg_SaveCount
        set buffer = buffer + I2S(udg_Save[i]) + "-"
    endloop
    set buffer = buffer + I2S(SaveLoad_EncodeVerify(buffer))
    if udg_Save[1] == 0 then
        set buffer = "-" + buffer
    endif

    set i = 0
    loop
        set a[i] = 0
        set i = i + 1
        exitwhen i >= 100
    endloop

    set m = 0
    set i = 0
    loop
        set j = 0
        loop
            set a[j] = a[j] * 11
            set j = j + 1
            exitwhen j > m
        endloop

        set l = 0
        set c = SubString(buffer,i,i + 1)
        loop
            exitwhen SubString(abc,l,l + 1) == c
            set l = l + 1
            exitwhen l > 9
        endloop
        set a[0] = a[0] + l

        set j = 0
        loop
            set k = a[j] / CONST
            set a[j] = a[j] - k * CONST
            set a[j + 1] = a[j + 1] + k
            set j = j + 1
            exitwhen j > m
        endloop
        if k > 0 then
            set m = m + 1
        endif
        set i = i + 1
        exitwhen i >= StringLength(buffer)
    endloop

    set buffer = ""
    loop
        exitwhen m < 0
        set j = m
        loop
            exitwhen j <= 0
            set k = a[j] / CodeLength
            set a[j - 1] = a[j - 1] + (a[j] - k * CodeLength) * CONST
            set a[j] = k
            set j = j - 1
        endloop
        set k = a[j] / CodeLength
        set i = a[j] - k * CodeLength
        set buffer = buffer + SubString(udg_SaveLoad_Alphabet,i,i + 1)
        set a[j] = k
        if a[m] == 0 then
            set m = m - 1
        endif
    endloop

    set i = StringLength(buffer)
    set skip = 0
    set c = ""
    loop
        set i = i - 1
        set c = c + SubString(buffer,i,i + 1)
        set skip = skip + 1
        if skip == 4 and i > 0 then
            set c = c + "-"
            set skip = 0
        endif
        exitwhen i <= 0
    endloop
    return c
endfunction

function SaveLoad_DecodeValues takes string s returns boolean
    local integer i
    local integer j
    local integer k
    local integer l
    local integer SaveCode = 0
    local integer m
    local integer array a
    local string buffer = ""
    local integer CodeLength = StringLength(udg_SaveLoad_Alphabet)
    local integer skip = -1
    local integer CONST = 1000000
    local string abc = "0123456789-"
    local string c

    set i = 0
    loop
        set a[i] = 0
        set i = i + 1
        exitwhen i >= 100
    endloop

    set m = 0

    set i = 0
    loop
        set j = 0
        loop
            set a[j] = a[j] * CodeLength
            set j = j + 1
            exitwhen j > m
        endloop

        set skip = skip + 1
        if skip == 4 then
            set skip = 0
            set i = i + 1
        endif

        set l = CodeLength
        set c = SubString(s,i,i + 1)
        loop
            set l = l - 1
            exitwhen l < 1
            exitwhen SubString(udg_SaveLoad_Alphabet,l,l + 1) == c
        endloop
        set a[0] = a[0] + l

        set j = 0
        loop
            set k = a[j] / CONST
            set a[j] = a[j] - k * CONST
            set a[j + 1] = a[j + 1] + k
            set j = j + 1
            exitwhen j > m
        endloop
        if k > 0 then
            set m = m + 1
        endif
        set i = i + 1
        exitwhen i >= StringLength(s)
    endloop

    loop
        exitwhen m < 0
        set j = m
        loop
            exitwhen j <= 0
            set k = a[j] / 11
            set a[j - 1] = a[j - 1] + (a[j] - k * 11) * CONST
            set a[j] = k
            set j = j - 1
        endloop
        set k = a[j] / 11
        set i = a[j] - k * 11
        set buffer = SubString(abc,i,i + 1) + buffer
        set a[j] = k
        if a[m] == 0 then
            set m = m - 1
        endif
    endloop

    set i = 0
    set j = 0
    loop
        loop
            exitwhen i >= StringLength(buffer)
            exitwhen i > 0 and SubString(buffer,i,i + 1) == "-" and SubString(buffer,i - 1,i) != "-"
            set i = i + 1
        endloop
        if i < StringLength(buffer) then
            set k = i
        endif
        set SaveCode = SaveCode + 1
        set udg_Save[SaveCode] = S2I(SubString(buffer,j,i))
        set j = i + 1
        set i = i + 1
        exitwhen i >= StringLength(buffer)
    endloop

    set j = SaveLoad_EncodeVerify(SubString(buffer,0,k))
    set udg_SaveCount = SaveCode - 1
    if j == udg_Save[SaveCode]then
        return true
    endif
    return false
endfunction

function SaveLoad_Encode takes nothing returns string
    if udg_SaveLoad_CaseSensitive == false then
        set udg_SaveLoad_Alphabet = StringCase(udg_SaveLoad_Alphabet,true)
    endif
    return SaveLoad_EncodeValues()
endfunction

function SaveLoad_Decode takes string s returns boolean
    if udg_SaveLoad_CaseSensitive == false then
        set udg_SaveLoad_Alphabet = StringCase(udg_SaveLoad_Alphabet,true)
        set s = StringCase(s,true)
    endif
    if SaveLoad_DecodeValues(s) then
        call DisplayTextToPlayer(GetTriggerPlayer(),0,0,"Decoding sucessful")
        return true
    endif
    call DisplayTextToPlayer(GetTriggerPlayer(),0,0,"Decoding failed")
    return false
endfunction

function CreateTextFile takes string Code returns nothing
    call PreloadGenClear()
    call PreloadGenStart()
    
    // The line below creates the log
    call Preload("load " + Code)
    
    // The line below creates the file at the specified location
    call PreloadGenEnd(udg_TextFileName + ".txt")
endfunction
Name Type Is Array Initial Value
Anubarak unit No
AP04_Arthas player No Player03
AP11_SharedPlayer player No Player05
AP12_Anubarak player No Player11
AP2_UnbrokenOnes player No Player01
AP3_Nerubians player No
APG1_Player force No
Arthas unit No
BigElevatorRevealerGroup group No
BlizzardStriker unit No
BlueSideFlameDamage real No
BossRevealerGroup group No
CameraReturnPoint location No
CaveCollapseTimer timer No
CaveCollapseTimer02 timer No
ChooseDifficulty dialog No
Code string No
CodeError boolean No
Crypt01 unit No
Crypt02 unit No
Crypt03 unit No
Crypt04 unit No
Crypt05 unit No
EleTimer timer No
ElevatorBaddies group No
ElevatorDisarmed boolean No
ElevatorsSound sound No
EndCineFiendA unit No
EndCineFiendB unit No
EndCineFiendC unit No
ExpDisabledForAnuburak boolean No
ExpDisabledForArthas boolean No
FacelessOne unit No
FakeAnubarak unit No
FinalGuardians group No
FlameGeyserSound01 sound No
FlameGeyserSound02 sound No
FlameGeyserSound03 sound No
FlameGeyserSound04 sound No
FlameSideSound01 sound No
FlameSideSound02 sound No
FlameSideSound03 sound No
FlameSideSound04 sound No
FlameSideSound05 sound No
FlameSideSound06 sound No
FlameSustained sound No
FlameVolume real No
FlameVolumeSustained real No
GameOver boolean No
GameSelection boolean No
GeyserFlameDamage real No
GeyserFlameRevealerGroup group No
GoldCoinsFound integer No
Hard boolean No
HardB button No
HiddenUnits group No
HiddenUnitsCreep group No
InCinematic boolean No
IntroSkipped boolean No
MageRevealerGroup group No
MidCinRejoinSkipped boolean No
NormalB button No
Plate01FlameOn boolean No
Plate01SustainedArea boolean No true
Plate02FlameOn boolean No
Plate02SustainedArea boolean No true
Plate03FlameOn boolean No
Plate03SustainedArea boolean No true
Plate04FlameOn boolean No
Plate04SustainedArea boolean No true
PlayerColor string Yes
PlayerOneTomesAgility integer No
PlayerOneTomesIntelligence integer No
PlayerOneTomesStrength integer No
PlayersRejoined boolean No
PlayerTwoTomesAgility integer No
PlayerTwoTomesIntelligence integer No
PlayerTwoTomesStrength integer No
PointFlameSide01 location No
PointFlameSide02 location No
PointFlameSide03 location No
PointFlameSide04 location No
PointFlameSide05 location No
PointFlameSide06 location No
QuestAnubarakSurviveReq questitem No
QuestArthasSurviveReq questitem No
QuestEscape quest No
QuestEscapeReq questitem No
QuestGold quest No
QuestGold0Req questitem No
RescuableGroup group No
RollingGateSound sound No
Satchet01 unit No
Satchet02 unit No
SatchetPosition location No
Save integer Yes
SaveCount integer No
SaveLoad_Abilities abilcode Yes
SaveLoad_Abilities_LastIndex integer No
SaveLoad_Alphabet string No
SaveLoad_CaseSensitive boolean No
SaveLoad_Compress integer Yes
SaveLoad_Heroes unitcode Yes
SaveLoad_Heroes_LastIndex integer No
SaveLoad_Initialized boolean No
SaveLoad_Items itemcode Yes
SaveLoad_Items_LastIndex integer No
SaveLoad_Uncompress integer Yes
SaveLoad_UsePlayername boolean No
SecretElevatorVisibility fogmodifier No
SelectedUnits group No
SideFlame01 boolean No
SideFlame01TimeDelay real No
SideFlame02 boolean No
SideFlame02TimeDelay real No
SideFlame03 boolean No
SideFlame03TimeDelay real No
SideFlame04 boolean No
SideFlame04TimeDelay real No
SideFlame05 boolean No
SideFlame05TimeDelay real No
SideFlame06 boolean No
SideFlame06TimeDelay real No
SideFlameDeactivated boolean No
SideFlameRevealerGroup01 group No
SideFlameRevealerGroup02 group No
SinglePlayer boolean No
SmalElevatorRevealerGroup group No
SoundCollapse sound No
SoundDoorOpening sound No
SoundEarthquake sound No
SoundPlates sound No
SpectralBridgeSound sound No
StartingUnits group No
SustainedFlamesSoundOn boolean No true
TempFloaty texttag No
TempHero unit No
TempInteger integer No
TempItem item No
TempItemType itemcode No
TempPoint location No
TempPointA location No
TempPointB location No
TempPointC location No
TempUnitGroup group No
TextFileName string No
TimerPlate01Death timer No
TimerPlate01Stand timer No
TimerPlate02Death timer No
TimerPlate02Stand timer No
TimerPlate03Death timer No
TimerPlate03Stand timer No
TimerPlate04Death timer No
TimerPlate04Stand timer No
TimerRed timer No
TimerYellow timer No
TimingTrap01Timer timer No
TimingTrap02Timer timer No
TimingTrap03Timer timer No
TimingTrap04Timer timer No
TimingTrap05Timer timer No
TimingTrap06Timer timer No
TwoPlate01Down boolean No
TwoPlate02Down boolean No
TwoPlateSolved boolean No
TwoPlatesRevealerGroup group No
Validate boolean No
VictorySkipped boolean No
VisibilityBigElevator fogmodifier No
VisibilityBlackMaskIntroCin fogmodifier No
VisibilityBoss fogmodifier No
VisibilityForceBridge fogmodifier No
VisibilityGeyserFlame fogmodifier No
VisibilityMage fogmodifier No
VisibilitySideFlame01 fogmodifier No
VisibilitySideFlame02 fogmodifier No
VisibilitySmallElevator fogmodifier No
VisibilityTwoPlates fogmodifier No
WhichElevatorA destructable No
WhichElevatorB destructable No
WhichHeightA integer No
WhichHeightB integer No
WhichNewDiff integer No
WhichOldDiff integer No
zElevatorsA destructable Yes DestructableNull
zElevatorsB destructable Yes DestructableNull
zElevatorsC destructable Yes DestructableNull
zElevatorsD destructable Yes DestructableNull
zHeightBottom integer Yes
zHeightTop integer Yes
zNewHeightsA integer Yes 0
zNewHeightsB integer Yes 0
zNewHeightsC integer Yes 0
zNewHeightsD integer Yes 0
zOldHeightsA integer Yes 0
zOldHeightsB integer Yes 0
zOldHeightsC integer Yes 0
zOldHeightsD integer Yes 0
Template version 1.03
Initialization
  Events
    Map initialization
  Conditions
  Actions
    Cinematic - Fade out over 0.00 seconds using texture Black Mask and color (0%, 0%, 0%) with 0% transparency
    Game - Set ally color filtering to 0
    Game - Disable ally color button and Disable creep camp button
    Game - Set Lock resource trading to On
    -------- ************ --------
    Game - Set the time of day to 15.00
    -------- ************ --------
    Trigger - Run Init_01_Players <gen> (checking conditions)
    Trigger - Run Init_02_Units <gen> (checking conditions)
    Trigger - Run Init_03_Destructibles <gen> (checking conditions)
    Trigger - Run Init_05_Environment <gen> (checking conditions)
    Trigger - Run Init_06_Quests <gen> (checking conditions)
    Trigger - Run Init_08_Form_Unit_Groups <gen> (checking conditions)
    Trigger - Run Init_09_Regions_to_Points <gen> (checking conditions)
    Trigger - Run SetDifficulty <gen> (checking conditions)
Init 01 Players
  Events
  Conditions
  Actions
    Player Group - Add AP04_Arthas to APG1_Player
    Player Group - Add AP12_Anubarak to APG1_Player
    Player Group - Add AP11_SharedPlayer to APG1_Player
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((AP04_Arthas slot status) Equal to Is unused) or ((AP04_Arthas controller) Equal to Computer)
      Then - Actions
        Set VariableSet SinglePlayer = True
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((AP12_Anubarak slot status) Equal to Is unused) or ((AP12_Anubarak controller) Equal to Computer)
      Then - Actions
        Set VariableSet SinglePlayer = True
      Else - Actions
    -------- Set User Player Alliances --------
    -------- Alliance Settings --------
    Player - Make AP04_Arthas treat AP12_Anubarak as an Ally with shared vision
    Player - Make AP12_Anubarak treat AP04_Arthas as an Ally with shared vision
    -------- Initial Resources --------
    -------- Player Colors --------
    Player - Change color of AP04_Arthas to (Color of Player 4 (Purple)), Changing color of existing units
    Player - Change color of AP11_SharedPlayer to (Color of Player 4 (Purple)), Changing color of existing units
    -------- Hide Excess Players --------
    Player - Hide Player 3 (Teal) in the post-game score screen
    Player - Hide AP11_SharedPlayer in the post-game score screen
    -------- Setup Rescuables --------
    Unit Group - Pick every unit in (Units owned by AP2_UnbrokenOnes.) and do (Add (Picked unit) to RescuableGroup)
Init 02 Units
  Events
  Conditions
  Actions
    -------- Heroes --------
    Trigger - Run Load_Heroes <gen> (checking conditions)
    Hero - Make AP04_Arthas Heroes gain 80.00% experience from future kills
    Hero - Make AP12_Anubarak Heroes gain 80.00% experience from future kills
    Set VariableSet BlizzardStriker = Faceless One Mage 0046 <gen>
    -------- NPCs --------
    Unit - Remove Ensnare (Neutral Hostile) from Unbroken Rager 0036 <gen>
    Unit - Remove Ensnare (Neutral Hostile) from Unbroken Rager 0015 <gen>
    Unit - Add Cripple (Neutral Hostile) to Unbroken Rager 0036 <gen>
    Unit - Add Cripple (Neutral Hostile) to Unbroken Rager 0015 <gen>
    Unit - Add Curse (Neutral Hostile) to Faceless One Terror 0040 <gen>
    Set VariableSet ElevatorBaddies = (Units in AggroBigElevatorArea <gen> owned by AP2_UnbrokenOnes)
    Unit Group - Add Spider Crab Shorecrawler 0060 <gen> to ElevatorBaddies
    Unit Group - Add Spider Crab Shorecrawler 0059 <gen> to ElevatorBaddies
    Unit Group - Remove Unbroken Rager 0036 <gen> from ElevatorBaddies.
    Unit Group - Remove Unbroken Rager 0015 <gen> from ElevatorBaddies.
    Unit Group - Pick every unit in ElevatorBaddies and do (Actions)
      Loop - Actions
        AI - Ignore (Picked unit)'s guard position
    -------- Creeps --------
    Player - Disable sleeping for all creeps
    Player - Turn Gives bounty Off for Neutral Hostile
    Unit - Hide Crystal Arachnathid 0063 <gen>
    -------- Cryptfiends --------
    Set VariableSet Crypt01 = Crypt Fiend 0000 <gen>
    Set VariableSet Crypt02 = Crypt Fiend 0001 <gen>
    Set VariableSet Crypt03 = Crypt Fiend 0002 <gen>
    Set VariableSet Crypt04 = Crypt Fiend 0031 <gen>
    Set VariableSet Crypt05 = Crypt Fiend 0032 <gen>
    -------- Side Flame --------
    Set VariableSet SideFlame01TimeDelay = 2.75
    Set VariableSet SideFlame02TimeDelay = 2.75
    Set VariableSet SideFlame03TimeDelay = 2.75
    Set VariableSet SideFlame04TimeDelay = 2.75
    Set VariableSet SideFlame05TimeDelay = 2.75
    Set VariableSet SideFlame06TimeDelay = 2.75
Init 03 Destructibles
  Events
  Conditions
  Actions
    -------- Geyser Flame Doors --------
    Destructible - Make Icy Gate 0002 <gen> Invulnerable
    Destructible - Make Rolling Stone Door 0192 <gen> Invulnerable
    Destructible - Make Rolling Stone Door 0785 <gen> Invulnerable
    -------- Flame Side Damage --------
    Set VariableSet BlueSideFlameDamage = 150.00
    -------- Flame Geyser Damage --------
    Set VariableSet GeyserFlameDamage = 200.00
    -------- Line of Sight --------
    Destructible - Kill Line of Sight Blocker (Large) 1040 <gen>
    Destructible - Kill Line of Sight Blocker (Large) 1041 <gen>
    Destructible - Kill Line of Sight Blocker (Large) 1042 <gen>
    Destructible - Kill Line of Sight Blocker (Large) 1043 <gen>
    Destructible - Kill Line of Sight Blocker (Large) 1044 <gen>
    Destructible - Kill Line of Sight Blocker (Large) 1045 <gen>
    Destructible - Kill Line of Sight Blocker (Large) 1046 <gen>
    Destructible - Kill Line of Sight Blocker (Large) 1047 <gen>
    Destructible - Kill Line of Sight Blocker (Large) 1048 <gen>
    Destructible - Kill Line of Sight Blocker (Large) 1049 <gen>
    -------- Dust --------
    Animation - Play the death (animationname) animation for all doodads of type ZZcd (doodadcode) within Dust_Fountain_Area <gen>.
    Animation - Play the death (animationname) animation for all doodads of type ZZcd (doodadcode) within Earthquake02Area <gen>.
    Animation - Play the death (animationname) animation for all doodads of type ZZcd (doodadcode) within Curse_Area <gen>.
    Animation - Play the death (animationname) animation for all doodads of type ZZcd (doodadcode) within Earthquake_Final_Area <gen>.
    Animation - Play the death (animationname) animation for all doodads of type ZZcd (doodadcode) within Dust_Effect_Area_03 <gen>.
    Animation - Play the death (animationname) animation for all doodads of type ZZcd (doodadcode) within Dust_Effect_Area_04 <gen>.
    -------- Ramp --------
    Destructible - Kill Stone Ramp 0039 <gen>
    -------- Victory Door --------
    Destructible - Open Icy Gate 0233 <gen>
    -------- Make Doors Indestructible --------
    Destructible - Make Icy Gate 0322 <gen> Invulnerable
    Destructible - Make Rolling Stone Door 0026 <gen> Invulnerable
    Destructible - Make Rolling Stone Door 0927 <gen> Invulnerable
    Destructible - Make Rock Chunks 0491 <gen> Invulnerable
    Destructible - Make Rock Chunks 0492 <gen> Invulnerable
    Destructible - Make Rock Chunks 0493 <gen> Invulnerable
    -------- Secret Elevator --------
    Destructible - Close All walls of Elevator 0679 <gen>
    Destructible - Open East wall of Elevator 0679 <gen>
    -------- Elevators --------
    Destructible - Open East wall of Elevator 0753 <gen>
    Destructible - Open West wall of Elevator 0754 <gen>
    Destructible - Open East wall of Elevator 0755 <gen>
    Destructible - Open West wall of Elevator 0756 <gen>
    -------- Rock Chunks --------
    Destructible - Hide Rock Chunks 1050 <gen>
    Destructible - Hide Rock Chunks 1051 <gen>
    Destructible - Hide Rock Chunks 1052 <gen>
    Destructible - Hide Rock Chunks 1053 <gen>
    Destructible - Hide Rock Chunks 1054 <gen>
    Destructible - Hide Rock Chunks 1055 <gen>
    Destructible - Hide Rock Chunks 1056 <gen>
    Destructible - Hide Rock Chunks 1057 <gen>
    Destructible - Hide Rock Chunks 1058 <gen>
    Destructible - Hide Rock Chunks 1059 <gen>
    Destructible - Hide Rock Chunks 1061 <gen>
    Destructible - Kill Rock Chunks 1050 <gen>
    Destructible - Kill Rock Chunks 1051 <gen>
    Destructible - Kill Rock Chunks 1052 <gen>
    Destructible - Kill Rock Chunks 1053 <gen>
    Destructible - Kill Rock Chunks 1054 <gen>
    Destructible - Kill Rock Chunks 1055 <gen>
    Destructible - Kill Rock Chunks 1056 <gen>
    Destructible - Kill Rock Chunks 1057 <gen>
    Destructible - Kill Rock Chunks 1058 <gen>
    Destructible - Kill Rock Chunks 1059 <gen>
    Destructible - Kill Rock Chunks 1061 <gen>
    -------- A --------
    Set VariableSet zElevatorsA[1] = Elevator 0220 <gen>
    Set VariableSet zElevatorsA[2] = Elevator 0011 <gen>
    Set VariableSet zElevatorsA[3] = Elevator 0009 <gen>
    Set VariableSet zElevatorsA[4] = Elevator 0166 <gen>
    Set VariableSet zElevatorsA[5] = Elevator 0168 <gen>
    Set VariableSet zElevatorsA[6] = Elevator 0190 <gen>
    -------- B --------
    Set VariableSet zElevatorsB[1] = Elevator 0029 <gen>
    Set VariableSet zElevatorsB[2] = Elevator 0004 <gen>
    Set VariableSet zElevatorsB[3] = Elevator 0003 <gen>
    Set VariableSet zElevatorsB[4] = Elevator 0010 <gen>
    Set VariableSet zElevatorsB[5] = Elevator 0164 <gen>
    Set VariableSet zElevatorsB[6] = Elevator 0171 <gen>
    -------- C --------
    Set VariableSet zElevatorsC[1] = Elevator 0031 <gen>
    Set VariableSet zElevatorsC[2] = No destructible
    Set VariableSet zElevatorsC[3] = Elevator 0007 <gen>
    Set VariableSet zElevatorsC[4] = Elevator 0154 <gen>
    Set VariableSet zElevatorsC[5] = Elevator 0165 <gen>
    Set VariableSet zElevatorsC[6] = Elevator 0186 <gen>
    -------- D --------
    Set VariableSet zElevatorsD[1] = Elevator 0206 <gen>
    Set VariableSet zElevatorsD[2] = Elevator 0006 <gen>
    Set VariableSet zElevatorsD[3] = Elevator 0008 <gen>
    Set VariableSet zElevatorsD[4] = Elevator 0155 <gen>
    Set VariableSet zElevatorsD[5] = No destructible
    Set VariableSet zElevatorsD[6] = Elevator 0187 <gen>
Init 04 Music and Sounds
  Events
  Conditions
  Actions
    Sound - Clear the music list
    Wait 0.01 seconds
    Sound - Play Arthas' Theme, skipping the first 6.00 seconds
    Sound - Set the music list to Music, starting with song 3
    -------- Sounds --------
    Set VariableSet SoundEarthquake = Earthquake <gen>
    Set VariableSet SoundPlates = Switch <gen>
    Set VariableSet SoundCollapse = BridgeDeath <gen>
    Set VariableSet SoundDoorOpening = LargeCityGateOpen1 <gen>
    Set VariableSet ElevatorsSound = Elevator <gen>
    Set VariableSet RollingGateSound = Elevator <gen>
    Set VariableSet SpectralBridgeSound = ReviveOrc <gen>
    -------- Flame Side Sounds --------
    Set VariableSet FlameSideSound01 = BlueFireBurst <gen>
    Set VariableSet FlameSideSound02 = BlueFireBurst01 <gen>
    Set VariableSet FlameSideSound03 = BlueFireBurst <gen>
    Set VariableSet FlameSideSound04 = BlueFireBurst01 <gen>
    Set VariableSet FlameSideSound05 = BlueFireBurst <gen>
    Set VariableSet FlameSideSound06 = BlueFireBurst01 <gen>
    -------- Flame Geyser Pulsating Sounds --------
    Set VariableSet FlameGeyserSound01 = BlueFireBurst <gen>
    Set VariableSet FlameGeyserSound02 = BlueFireBurst01 <gen>
    Set VariableSet FlameGeyserSound03 = BlueFireBurst <gen>
    Set VariableSet FlameGeyserSound04 = BlueFireBurst01 <gen>
    -------- Flame Geyser Sustained Sound --------
    Set VariableSet FlameSustained = BlueFireBurstLoop <gen>
    -------- Flame Sound Volume Percentage --------
    Set VariableSet FlameVolume = 70.00
    Set VariableSet FlameVolumeSustained = 70.00
Init 05 Environment
  Events
  Conditions
  Actions
    -------- Initial Time Of Day --------
    Game - Set the time of day to 19.00
    -------- Weather Effects --------
    -------- Fog --------
    -------- Initial Visibility --------
    -------- Bridges, Gates, etc. --------
    -------- Final Gate is Invulnerable Until Final Guardians Are Slain --------
    Destructible - Make Icy Gate 0265 <gen> Invulnerable
Init 06 Quests
  Events
  Conditions
  Actions
    -------- Create Quests --------
    Trigger - Run Quest_Escape_Create <gen> (checking conditions)
    Trigger - Run Quest_Gold_Create <gen> (checking conditions)
Init 07a Hard
  Events
  Conditions
    Hard Equal to True
  Actions
    Unit - Remove Unbroken Rager 0104 <gen> from the game
    Unit - Remove Unbroken Rager 0105 <gen> from the game
Init 07b Normal
  Events
  Conditions
    Hard Equal to False
  Actions
    -------- Remove Hard Difficulty Units --------
    Unit - Remove Unbroken Darkweaver 0097 <gen> from the game
    Unit - Remove Unbroken Darkweaver 0099 <gen> from the game
    Unit - Remove Animate Dead (Neutral Hostile) from Faceless One Deathbringer 0095 <gen>
    Unit - Remove (Random unit from (Units in HardDifficulty01 <gen>)) from the game
    Unit - Remove (Random unit from (Units in HardDifficulty02 <gen>)) from the game
    Unit - Remove (Random unit from (Units in HardDifficulty03 <gen>)) from the game
    Unit - Remove (Random unit from (Units in HardDifficulty04 <gen>)) from the game
    Unit - Remove (Random unit from (Units in HardDifficulty05 <gen>)) from the game
    Unit - Remove (Random unit from (Units in HardDifficulty06 <gen>)) from the game
    Unit - Remove (Random unit from (Units in HardDifficulty07 <gen>)) from the game
    Unit - Remove (Random unit from (Units in HardDifficulty08 <gen>)) from the game
    Unit - Remove (Random unit from (Units in HardDifficulty09 <gen>)) from the game
    Unit - Remove (Random unit from (Units in HardDifficulty10 <gen>)) from the game
    Unit - Remove (Random unit from (Units in HardDifficulty11 <gen>)) from the game
    Unit - Remove (Random unit from (Units in HardDifficulty12 <gen>)) from the game
Init 08 Form Unit Groups
  Events
  Conditions
  Actions
    Set VariableSet FinalGuardians = (Units in Run_from_Faceless_Horde <gen> owned by AP2_UnbrokenOnes)
Init 09 Regions to Points
  Events
  Conditions
  Actions
    Set VariableSet PointFlameSide01 = (Center of FlameSide01 <gen>)
    Set VariableSet PointFlameSide02 = (Center of FlameSide02 <gen>)
    Set VariableSet PointFlameSide03 = (Center of FlameSide03 <gen>)
    Set VariableSet PointFlameSide04 = (Center of FlameSide07 <gen>)
    Set VariableSet PointFlameSide05 = (Center of FlameSide08 <gen>)
    Set VariableSet PointFlameSide06 = (Center of FlameSide09 <gen>)
Load Heroes
  Events
  Conditions
  Actions
    -------- Load Each Hero --------
    Trigger - Run Load_Arthas <gen> (checking conditions)
    Trigger - Run Load_Anubarak <gen> (checking conditions)
Load Arthas
  Events
  Conditions
  Actions
    -------- Create Default Hero --------
    Unit - Create 1.Death Knight (Evil) for Neutral Passive at (Center of ArthasSpawn <gen>) facing 180.00 degrees
    Set VariableSet Arthas = (Last created unit)
    Hero - Set Arthas Hero-level to 3, Hide level-up graphics
    Hero - Learn skill for Arthas: Undead Death Knight - Death Coil
    Hero - Learn skill for Arthas: Undead Death Knight - Death Coil
    Hero - Learn skill for Arthas: Undead Death Knight - Unholy Aura
    -------- Create Satchet --------
    Unit - Create 1.Sachet for Neutral Passive at (Center of ArthasSpawn <gen>) facing 90.00 degrees
    Set VariableSet Satchet01 = (Last created unit)
Load Anubarak
  Events
  Conditions
  Actions
    -------- Create Default Hero --------
    Unit - Create 1.Crypt Lord for Neutral Passive at (Center of AnubarakSpawn <gen>) facing 180.00 degrees
    Set VariableSet Anubarak = (Last created unit)
    Hero - Set Anubarak Hero-level to 7, Hide level-up graphics
    -------- Create Satchet --------
    Unit - Create 1.Sachet for Neutral Passive at (Center of AnubarakSpawn <gen>) facing 90.00 degrees
    Set VariableSet Satchet02 = (Last created unit)
Load Default Arthas
  Events
  Conditions
  Actions
    -------- Add Items --------
    Hero - Create Orb of Frost and give it to Arthas
    Hero - Create Circlet of Nobility and give it to Arthas
    Hero - Create Sobi Mask and give it to Arthas
Load Default Anubarak
  Events
  Conditions
  Actions
    -------- Default Hero Data --------
    Hero - Learn skill for Anubarak: Undead Crypt Lord - Impale
    Hero - Learn skill for Anubarak: Undead Crypt Lord - Impale
    Hero - Learn skill for Anubarak: Undead Crypt Lord - Spiked Carapace
    Hero - Learn skill for Anubarak: Undead Crypt Lord - Spiked Carapace
    Hero - Learn skill for Anubarak: Undead Crypt Lord - Carrion Beetles
    Hero - Learn skill for Anubarak: Undead Crypt Lord - Carrion Beetles
    -------- Add Items --------
    Hero - Create Belt of Giant Strength +6 and give it to Anubarak
    Hero - Create Ring of Regeneration and give it to Anubarak
    Hero - Create Pendant of Energy and give it to Anubarak
Experience Cap Anubarak
  Events
    Unit - A unit owned by Player 4 (Purple).Gains a level
    Unit - A unit owned by Player 12 (Brown).Gains a level
  Conditions
    (Leveling Hero) Equal to Anubarak
    (Hero level of (Leveling Hero)) Greater than or equal to 8
  Actions
    Hero - Disable experience gain for Anubarak.
    Set VariableSet ExpDisabledForAnuburak = True
Next Level Run
  Events
  Conditions
  Actions
    -------- Set Next Level and Victory --------
    Game - Victory AP04_Arthas (Show dialogs, Show scores)
    Game - Victory AP12_Anubarak (Show dialogs, Show scores)
Intro Cinematic Q
  Events
  Conditions
  Actions
    Set VariableSet InCinematic = True
    -------- Fade Out --------
    Cinematic - Fade out over 0.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    -------- Set Up Scene --------
    Cinematic - Turn cinematic mode On for APG1_Player
    Wait 1.00 seconds
    Trigger - Run Intro_Setup <gen> (checking conditions)
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - .Apply. gg_cam_Intro_Cam_01 for (Picked player) over 0 seconds
        Camera - .Apply. gg_cam_Intro_Cam_02 for (Picked player) over 10.00 seconds
    -------- Fade In --------
    Cinematic - Fade in over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Unit - Order Arthas to Move To.(Center of ArthasIntroDest01 <gen>)
    Unit - Order Anubarak to Move To.(Center of AnubarakMoveDest <gen>)
    Wait 1.00 seconds
    Sound - Play HorseLoop1 <gen> at 70.00% volume, attached to Arthas
    Unit - Order Crypt Fiend 0000 <gen> to Move To.(Center of Crypt01IntroDest01 <gen>)
    Unit - Order Crypt Fiend 0001 <gen> to Move To.(Center of Crypt02IntroDest01 <gen>)
    Unit - Order Crypt Fiend 0002 <gen> to Move To.(Center of Crypt03IntroDest01 <gen>)
    Unit - Order Crypt Fiend 0032 <gen> to Move To.(Center of Crypt04IntroDest01 <gen>)
    Unit - Order Crypt Fiend 0031 <gen> to Move To.(Center of Crypt05IntroDest01 <gen>)
    Wait 1.00 seconds
    Trigger - Turn on Intro_Skipped <gen>
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC BEGINS - Cinematic Can Now Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - .Apply. gg_cam_Intro_Cam_02_trev for (Picked player) over 0 seconds
        Camera - .Apply. gg_cam_Intro_Cam_03_trev for (Picked player) over 20.00 seconds
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L07CArthas02 <gen> and display We're running out of time, Anub'arak. How far are we from the exit?. Modify duration: Add 0 seconds and Don't wait
    Wait for L07CArthas02 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Anubarak named Anub'arak: Play L07CAnubarak03 <gen> and display Not far. We have entered the Upper Kingdom. The exit should lead us to the base of the glacier itself. However, there are still hidden traps and pitfalls to account for.. Modify duration: Add 0 seconds and Don't wait
    Wait for L07CAnubarak03 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- Start Earthquake Sequence --------
    Trigger - Run Quake_Shake <gen> (checking conditions)
    Trigger - Run Dust_FX_Intro <gen> (checking conditions)
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Play BridgeDeath <gen> at 80.00% volume, located at (Target of current camera view) with Z offset 0
    Unit - Order Crypt Fiend 0000 <gen> to Move To.(Center of Crypt01IntroDest02 <gen>)
    Unit - Order Crypt Fiend 0031 <gen> to Move To.(Center of Crypt05IntroDest02 <gen>)
    Unit - Make Crypt02 face Arthas over 0 seconds
    Unit - Order Arthas to Move To.(Center of ArthasIntroDest02 <gen>)
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L07CArthas25 <gen> and display Take cover!. Modify duration: Add 0 seconds and Don't wait
    Wait for L07CArthas25 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Crypt Fiend 0002 <gen> to Move To.(Center of Crypt03IntroDest02 <gen>)
    Unit - Order Crypt Fiend 0032 <gen> to Move To.(Center of Crypt04IntroDest02 <gen>)
    Unit - Make Anubarak face Arthas over 0 seconds
    Cinematic - Send transmission to (All players) from Anubarak named Anub'arak: Play L07CAnubarak26 <gen> and display Arthas!. Modify duration: Add 0 seconds and Don't wait
    Wait for L07CAnubarak26 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Sound - Stop BridgeDeath <gen> After fading
    Sound - Stop Earthquake <gen> After fading
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Destructible - Show Rock Chunks 1050 <gen>
    Destructible - Show Rock Chunks 1051 <gen>
    Destructible - Show Rock Chunks 1052 <gen>
    Destructible - Show Rock Chunks 1053 <gen>
    Destructible - Show Rock Chunks 1054 <gen>
    Destructible - Show Rock Chunks 1055 <gen>
    Destructible - Show Rock Chunks 1056 <gen>
    Destructible - Show Rock Chunks 1057 <gen>
    Destructible - Show Rock Chunks 1058 <gen>
    Destructible - Show Rock Chunks 1059 <gen>
    Destructible - Show Rock Chunks 1061 <gen>
    Destructible - Resurrect Rock Chunks 1050 <gen> with (Max life of Rock Chunks 1050 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1051 <gen> with (Max life of Rock Chunks 1051 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1052 <gen> with (Max life of Rock Chunks 1052 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1053 <gen> with (Max life of Rock Chunks 1053 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1054 <gen> with (Max life of Rock Chunks 1054 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1055 <gen> with (Max life of Rock Chunks 1055 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1056 <gen> with (Max life of Rock Chunks 1056 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1057 <gen> with (Max life of Rock Chunks 1057 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1058 <gen> with (Max life of Rock Chunks 1058 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1059 <gen> with (Max life of Rock Chunks 1059 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1061 <gen> with (Max life of Rock Chunks 1061 <gen>) life and Hide birth animation
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run Dust_FX_Intro <gen> (checking conditions)
    Cinematic - Fade in over 0.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    -------- Arthas Alone --------
    Unit - Move Arthas instantly to (Center of ArthasIntroFinal <gen>), facing 90.00 degrees
    Camera - .Apply. gg_cam_Intro_Cam_04a_trev for AP04_Arthas over 0 seconds
    Camera - .Apply. gg_cam_Intro_Cam_04 for AP04_Arthas over ((Length of L07CArthas27 <gen>) + 2.00) seconds
    Cinematic - Send transmission to Player Group - Player 4 (Purple) from Arthas named King Arthas: Play L07CArthas27 <gen> and display The entire passage collapsed! There's no time to dig through this. I'll have to move quickly and find my own way out! Hopefully Anub'arak and the others survived.. Modify duration: Add 0 seconds and Don't wait
    -------- Anub'arak Alone --------
    Unit - Make Anubarak face 250.00 over 0 seconds
    Unit - Make Crypt01 face (Center of ArthasIntroDest02 <gen>) over 0 seconds
    Unit - Make Crypt02 face (Center of ArthasIntroDest02 <gen>) over 0 seconds
    Unit - Make Crypt03 face (Center of ArthasIntroDest02 <gen>) over 0 seconds
    Unit - Make Crypt04 face (Center of ArthasIntroDest02 <gen>) over 0 seconds
    Unit - Make Crypt05 face (Center of ArthasIntroDest02 <gen>) over 0 seconds
    Camera - .Apply. gg_cam_Intro_Anub_Scene for AP12_Anubarak over 0 seconds
    Camera - Set AP12_Anubarak's camera Distance to target to 1100.00 over ((Length of L07CArthas27 <gen>) + 2.00) seconds
    Cinematic - Send transmission to Player Group - Player 12 (Brown) from Anubarak named Anub'arak: Play No sound and display The passage ahead has collapsed! We must find a way out of these caverns! If Arthas survived, we will find him.. Modify duration: Set to (Length of L07CArthas27 <gen>) seconds and Don't wait
    Wait 9.41 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run Dust_FX_Intro <gen> (checking conditions)
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC ENDS - Cinematic Can No Longer Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    Trigger - Turn off Intro_Skipped <gen>
    -------- Fade Out --------
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    -------- Cleanup --------
    Trigger - Run Intro_Cleanup <gen> (checking conditions)
    Wait 1.00 seconds
    Cinematic - Turn cinematic mode Off for APG1_Player
    -------- Fade In --------
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    -------- Start Game --------
    Set VariableSet InCinematic = False
    Trigger - Remove (This trigger) from the trigger queue
    Trigger - Run Gameplay <gen> (checking conditions)
Crypt 01 Facing
  Events
    Unit - A unit enters Crypt01IntroDest01 <gen>
  Conditions
    (Entering unit) Equal to Crypt01
  Actions
    Trigger - Turn off (This trigger)
    Wait 0.50 seconds
    Unit - Make Crypt01 face 290.00 over 0 seconds
Crypt 02 Facing
  Events
    Unit - A unit enters Crypt04IntroDest01 <gen>
  Conditions
    (Entering unit) Equal to Crypt04
  Actions
    Trigger - Turn off (This trigger)
    Wait 0.50 seconds
    Unit - Make Crypt04 face 290.00 over 0 seconds
Crypt 03 Facing
  Events
    Unit - A unit enters Crypt03IntroDest01 <gen>
  Conditions
    (Entering unit) Equal to Crypt03
  Actions
    Trigger - Turn off (This trigger)
    Wait 0.50 seconds
    Unit - Make Crypt03 face 280.00 over 0 seconds
Crypt 04 Facing
  Events
    Unit - A unit enters Crypt04IntroDest01 <gen>
  Conditions
    (Entering unit) Equal to Crypt04
  Actions
    Trigger - Turn off (This trigger)
    Wait 0.50 seconds
    Unit - Make Crypt04 face 280.00 over 0 seconds
Anubarak Facing
  Events
    Unit - A unit enters AnubarakMoveDest <gen>
  Conditions
    (Entering unit) Equal to Anubarak
  Actions
    Trigger - Turn off (This trigger)
    Wait 0.50 seconds
    Unit - Make Anubarak face 240.00 over 0 seconds
Intro Skipped
  Events
    Player - Player 4 (Purple) skips a cinematic sequence
    Player - Player 6 (Orange) skips a cinematic sequence
    Player - Player 12 (Brown) skips a cinematic sequence
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet IntroSkipped = True
    Sound - Stop HorseLoop201 <gen> After fading
    -------- Fade Out --------
    Cinematic - Fade out over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.50 seconds
    -------- Cleanup --------
    Trigger - Run Intro_Cleanup <gen> (checking conditions)
    Wait 1.00 seconds
    Cinematic - Turn cinematic mode Off for APG1_Player
    -------- Fade In --------
    Cinematic - Fade in over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.50 seconds
    -------- Start Game --------
    Set VariableSet InCinematic = False
    Trigger - Remove Intro_Cinematic_Q <gen> from the trigger queue
    Trigger - Run Gameplay <gen> (checking conditions)
Intro Setup
  Events
  Conditions
  Actions
    -------- Set Sky --------
    -------- Disable XP Gain --------
    Hero - Disable experience gain for Arthas.
    Hero - Disable experience gain for Anubarak.
    -------- Pause Time Of Day --------
    Game - Turn the day/night cycle Off
    -------- Pause Units --------
    -------- Hide Units --------
    Unit Group - Remove Arthas from HiddenUnits.
    Unit Group - Remove Anubarak from HiddenUnits.
    Unit Group - Pick every unit in HiddenUnits and do (Hide (Picked unit))
    -------- Hide Items --------
    Item - Pick every item in (Playable map area) and do (Hide (Picked item))
    -------- Disable Abilities --------
    Player - Disable Unholy Aura for AP04_Arthas
    -------- Open Door --------
    -------- Visibility --------
    Visibility - Enable black mask
    Visibility - Create an initially Enabled visibility modifier for AP04_Arthas emitting Black mask across Black_Mask_Area <gen>
    Set VariableSet VisibilityBlackMaskIntroCin = (Last created visibility modifier)
    -------- Alliances --------
    Player - Make AP04_Arthas treat AP3_Nerubians as an Ally
    Player - Make AP3_Nerubians treat AP04_Arthas as an Ally
    -------- Dust --------
    Animation - Play the death (animationname) animation for all doodads of type ZZcd (doodadcode) within Dust_Effect_Area_01 <gen>.
    Animation - Play the death (animationname) animation for all doodads of type ZZcd (doodadcode) within Dust_Effect_Area_02 <gen>.
Intro Cleanup
  Events
  Conditions
  Actions
    -------- Restore Abilities --------
    Player - Enable Unholy Aura for AP04_Arthas
    -------- Reset Walk Speed --------
    Unit Group - Pick every unit in StartingUnits and do (Set (Picked unit) movement speed to (Default movement speed of (Picked unit)))
    -------- Move Units --------
    Unit - Set Arthas movement speed to (Default movement speed of Arthas)
    Unit - Set Anubarak movement speed to (Default movement speed of Anubarak)
    Unit - Move Arthas instantly to (Center of ArthasIntroFinal <gen>), facing 90.00 degrees
    -------- Unhide Items --------
    Item - Pick every item in (Playable map area) and do (Show (Picked item))
    -------- Unhide Units --------
    Unit Group - Pick every unit in HiddenUnits and do (Unhide (Picked unit))
    Unit - Hide Faceless One Terror 0083 <gen>
    Unit - Hide Unbroken Darkhunter 0092 <gen>
    Unit - Hide Unbroken Darkhunter 0094 <gen>
    -------- Anub'arak Units Setup --------
    Unit - Move Anubarak instantly to (Center of AnubarakMoveDest <gen>), facing 250.00 degrees
    Unit - Order Crypt Fiend 0000 <gen> to Move To.(Center of Crypt01IntroDest01 <gen>)
    Unit - Move Crypt Fiend 0000 <gen> instantly to (Center of Crypt01IntroDest01 <gen>), facing (Center of ArthasIntroDest02 <gen>)
    Unit - Order Crypt Fiend 0001 <gen> to Move To.(Center of Crypt02IntroDest01 <gen>)
    Unit - Move Crypt Fiend 0001 <gen> instantly to (Center of Crypt02IntroDest01 <gen>), facing (Center of ArthasIntroDest02 <gen>)
    Unit - Order Crypt Fiend 0002 <gen> to Move To.(Center of Crypt03IntroDest01 <gen>)
    Unit - Move Crypt Fiend 0002 <gen> instantly to (Center of Crypt03IntroDest01 <gen>), facing (Center of ArthasIntroDest02 <gen>)
    Unit - Order Crypt Fiend 0032 <gen> to Move To.(Center of Crypt04IntroDest01 <gen>)
    Unit - Move Crypt Fiend 0032 <gen> instantly to (Center of Crypt04IntroDest01 <gen>), facing (Center of ArthasIntroDest02 <gen>)
    Unit - Order Crypt Fiend 0031 <gen> to Move To.(Center of Crypt05IntroDest01 <gen>)
    Unit - Move Crypt Fiend 0031 <gen> instantly to (Center of Crypt05IntroDest01 <gen>), facing (Center of ArthasIntroDest02 <gen>)
    -------- Stop Sound --------
    Sound - Stop HorseLoop201 <gen> After fading
    -------- Unpause Units --------
    -------- Pause Time Of Day --------
    -------- Re-enable XP Gain --------
    If (ExpDisabledForAnuburak Equal to False) then do (Enable experience gain for Anubarak.) else do (Do nothing)
    -------- Restore Selection --------
    Selection - Select Arthas for AP04_Arthas
    Selection - Select Anubarak for AP12_Anubarak
    -------- Reset Sky --------
    Environment - Set sky to None
    Environment - Reset fog to default values
    -------- Reset Camera --------
    Camera - Reset camera smoothing factor
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - Reset camera for (Picked player) to standard game-view over 0 seconds
    Camera - Pan camera for AP04_Arthas to (Center of ArthasIntroFinal <gen>) over 0 seconds
    Camera - Pan camera for AP12_Anubarak to (Center of AnubarakMoveDest <gen>) over 0 seconds
    -------- Alliances --------
    Player - Make AP04_Arthas treat AP12_Anubarak as an Neutral
    Player - Make AP12_Anubarak treat AP04_Arthas as an Neutral
    Player - Make AP04_Arthas treat AP3_Nerubians as an Enemy
    Player - Make AP3_Nerubians treat AP04_Arthas as an Enemy
    -------- Anub'arak Path Block --------
    Destructible - Show Rock Chunks 1050 <gen>
    Destructible - Show Rock Chunks 1051 <gen>
    Destructible - Show Rock Chunks 1052 <gen>
    Destructible - Show Rock Chunks 1053 <gen>
    Destructible - Show Rock Chunks 1054 <gen>
    Destructible - Show Rock Chunks 1055 <gen>
    Destructible - Show Rock Chunks 1056 <gen>
    Destructible - Show Rock Chunks 1057 <gen>
    Destructible - Show Rock Chunks 1058 <gen>
    Destructible - Show Rock Chunks 1059 <gen>
    Destructible - Show Rock Chunks 1061 <gen>
    Destructible - Resurrect Rock Chunks 1050 <gen> with (Max life of Rock Chunks 1050 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1051 <gen> with (Max life of Rock Chunks 1051 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1052 <gen> with (Max life of Rock Chunks 1052 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1053 <gen> with (Max life of Rock Chunks 1053 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1054 <gen> with (Max life of Rock Chunks 1054 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1055 <gen> with (Max life of Rock Chunks 1055 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1056 <gen> with (Max life of Rock Chunks 1056 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1057 <gen> with (Max life of Rock Chunks 1057 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1058 <gen> with (Max life of Rock Chunks 1058 <gen>) life and Hide birth animation
    Destructible - Resurrect Rock Chunks 1061 <gen> with (Max life of Rock Chunks 1061 <gen>) life and Hide birth animation
    Destructible - Make Rock Chunks 1050 <gen> Invulnerable
    Destructible - Make Rock Chunks 1051 <gen> Invulnerable
    Destructible - Make Rock Chunks 1052 <gen> Invulnerable
    Destructible - Make Rock Chunks 1053 <gen> Invulnerable
    Destructible - Make Rock Chunks 1054 <gen> Invulnerable
    Destructible - Make Rock Chunks 1055 <gen> Invulnerable
    Destructible - Make Rock Chunks 1056 <gen> Invulnerable
    Destructible - Make Rock Chunks 1057 <gen> Invulnerable
    Destructible - Make Rock Chunks 1058 <gen> Invulnerable
    Destructible - Make Rock Chunks 1059 <gen> Invulnerable
    Destructible - Make Rock Chunks 1061 <gen> Invulnerable
    Destructible - Resurrect Line of Sight Blocker (Large) 1040 <gen> with (Max life of Line of Sight Blocker (Large) 1040 <gen>) life and Show birth animation
    Destructible - Resurrect Line of Sight Blocker (Large) 1041 <gen> with (Max life of Line of Sight Blocker (Large) 1041 <gen>) life and Show birth animation
    Destructible - Resurrect Line of Sight Blocker (Large) 1042 <gen> with (Max life of Line of Sight Blocker (Large) 1042 <gen>) life and Show birth animation
    Destructible - Resurrect Line of Sight Blocker (Large) 1043 <gen> with (Max life of Line of Sight Blocker (Large) 1043 <gen>) life and Show birth animation
    Destructible - Resurrect Line of Sight Blocker (Large) 1044 <gen> with (Max life of Line of Sight Blocker (Large) 1044 <gen>) life and Show birth animation
    Destructible - Resurrect Line of Sight Blocker (Large) 1045 <gen> with (Max life of Line of Sight Blocker (Large) 1045 <gen>) life and Show birth animation
    Destructible - Resurrect Line of Sight Blocker (Large) 1046 <gen> with (Max life of Line of Sight Blocker (Large) 1046 <gen>) life and Show birth animation
    Destructible - Resurrect Line of Sight Blocker (Large) 1047 <gen> with (Max life of Line of Sight Blocker (Large) 1047 <gen>) life and Show birth animation
    Destructible - Resurrect Line of Sight Blocker (Large) 1048 <gen> with (Max life of Line of Sight Blocker (Large) 1048 <gen>) life and Show birth animation
    Destructible - Resurrect Line of Sight Blocker (Large) 1049 <gen> with (Max life of Line of Sight Blocker (Large) 1049 <gen>) life and Show birth animation
    -------- Wipe Visibility --------
    Visibility - Create an initially Enabled visibility modifier for AP04_Arthas emitting Black mask across (Playable map area)
    Visibility - Destroy (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for AP12_Anubarak emitting Black mask across (Playable map area)
    Visibility - Destroy (Last created visibility modifier)
    -------- Flame Timers --------
    Trigger - Run Start_Timers <gen> (checking conditions)
Gameplay
  Events
  Conditions
  Actions
    -------- Do initial gameplay stuff, like quest messages and hints --------
    Wait 2.00 seconds
    -------- Quake --------
    Trigger - Run Quake_Shake <gen> (checking conditions)
    Trigger - Run Dust_FX_Intro <gen> (checking conditions)
    Wait 3.00 seconds
    Trigger - Run Quest_Escape_Discover <gen> (checking conditions)
    -------- Timer --------
    Trigger - Run Timer_Main_Quest <gen> (checking conditions)
    Wait 4.00 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        SinglePlayer Equal to False
      Then - Actions
        Trigger - Add Escape_Caverns_Hint <gen> to the trigger queue (Checking conditions)
      Else - Actions
Rowan you will probably need to adjust this to wait for Anub'arak
Rejoin Init 01
  Events
    Unit - A unit enters Mid_Game_Cin_Init <gen>
  Conditions
    GameOver Equal to False
    (Owner of (Entering unit)) Equal to AP04_Arthas
  Actions
    Trigger - Turn off (This trigger)
    Unit - Kill Circle of Power 0082 <gen>
    Sound - Play GoodJob <gen> at 100% volume, located at (Center of Mid_Game_Cin_Init <gen>) with Z offset 0
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Or - Any (Conditions) are true
          Conditions
            SinglePlayer Equal to True
            (Rejoin_Init_02 <gen> is on) Equal to False
      Then - Actions
        Trigger - Turn off Rejoin_Init_02 <gen>
        Cinematic - Clear the screen of text messages for (All players).
        Trigger - Add Rejoin_Cinematic_Q <gen> to the trigger queue (Checking conditions)
      Else - Actions
        Game - Display to Player Group - Player 4 (Purple) for 600.00 seconds the text: Waiting on other player...
Rowan you will probably need to adjust this to wait for Anub'arak
Rejoin Init 02
  Events
    Unit - A unit enters Anubarak_Scene_End <gen>
  Conditions
    GameOver Equal to False
    (Owner of (Entering unit)) Equal to AP12_Anubarak
  Actions
    Trigger - Turn off (This trigger)
    Unit - Kill Circle of Power 0081 <gen>
    Sound - Play GoodJob <gen> at 100% volume, located at (Center of Anubarak_Scene_End <gen>) with Z offset 0
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Or - Any (Conditions) are true
          Conditions
            SinglePlayer Equal to True
            (Rejoin_Init_01 <gen> is on) Equal to False
      Then - Actions
        Trigger - Turn off Rejoin_Init_01 <gen>
        Cinematic - Clear the screen of text messages for (All players).
        Trigger - Add Rejoin_Cinematic_Q <gen> to the trigger queue (Checking conditions)
      Else - Actions
        Game - Display to Player Group - Player 12 (Brown) for 600.00 seconds the text: Waiting on other player...
Rejoin Cinematic Q
  Events
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet InCinematic = True
    -------- Fade Out --------
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    -------- Set Up Scene --------
    Cinematic - Turn cinematic mode On for APG1_Player
    Wait 0.25 seconds
    Trigger - Run Rejoin_Setup <gen> (checking conditions)
    Wait 0.25 seconds
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - .Apply. gg_cam_Rejoin_Cam_01 for (Picked player) over 0 seconds
        Camera - .Apply. gg_cam_Rejoin_Cam_02 for (Picked player) over 20.00 seconds
    -------- Units --------
    -------- Fade In --------
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    Trigger - Turn on Rejoin_Skipped <gen>
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC BEGINS - Cinematic Can Now Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    Wait 1.00 seconds
    If (MidCinRejoinSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Destructible - Pick every destructible in Rocks_Destroy_Area <gen> and do (Kill (Picked destructible))
    Sound - Play BridgeDeath <gen> at 90.00% volume, located at (Center of Rocks_Destroy_Area <gen>) with Z offset 0
    Wait 1.00 seconds
    If (MidCinRejoinSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Stop BridgeDeath <gen> After fading
    Unit - Move FakeAnubarak instantly to (Center of RejoinAreaSpawn <gen>), facing 350.00 degrees
    Unit - Order FakeAnubarak to Move To.(Center of RejoinAnuDest <gen>)
    Wait 0.75 seconds
    If (MidCinRejoinSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L07CArthas34 <gen> and display Anub'arak! You made it!. Modify duration: Add 0 seconds and Don't wait
    Unit - Move Crypt01 instantly to (Center of RejoinAreaSpawn <gen>), facing 280.00 degrees
    Unit - Order Crypt01 to Move To.(Center of RejoinCrypt01Dest <gen>)
    Wait 0.75 seconds
    If (MidCinRejoinSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Move Crypt02 instantly to (Center of RejoinAreaSpawn <gen>), facing 280.00 degrees
    Unit - Order Crypt02 to Move To.(Center of RejoinCrypt02Dest <gen>)
    Wait 0.75 seconds
    If (MidCinRejoinSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Move Crypt03 instantly to (Center of RejoinAreaSpawn <gen>), facing 280.00 degrees
    Unit - Order Crypt03 to Move To.(Center of RejoinCrypt03Dest <gen>)
    Wait 0.75 seconds
    If (MidCinRejoinSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make FakeAnubarak face Arthas over 0 seconds
    Cinematic - Send transmission to (All players) from FakeAnubarak named Anub'arak: Play L07CAnubarak35 <gen> and display I see now why the Lich King chose you as his champion, death knight. Few men could have survived this labyrinth alone.. Modify duration: Add 0 seconds and Don't wait
    Unit - Move Crypt04 instantly to (Center of RejoinAreaSpawn <gen>), facing 280.00 degrees
    Unit - Order Crypt04 to Move To.(Center of RejoinCrypt04Dest <gen>)
    Wait 0.75 seconds
    If (MidCinRejoinSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Move Crypt05 instantly to (Center of RejoinAreaSpawn <gen>), facing 280.00 degrees
    Unit - Order Crypt05 to Move To.(Center of RejoinCrypt05Dest <gen>)
    Wait 0.75 seconds
    If (MidCinRejoinSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 7.50 seconds
    If (MidCinRejoinSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC ENDS - Cinematic Can No Longer Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    Trigger - Turn off Rejoin_Skipped <gen>
    -------- Fade Out --------
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    -------- Cleanup --------
    Trigger - Run Rejoin_Cleanup <gen> (checking conditions)
    Cinematic - Turn cinematic mode Off for APG1_Player
    -------- Fade In --------
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    -------- Quest update --------
    Wait Campaign quest delay seconds
    Set VariableSet InCinematic = False
    Trigger - Remove (This trigger) from the trigger queue
Rejoin Skipped
  Events
    Player - Player 4 (Purple) skips a cinematic sequence
    Player - Player 6 (Orange) skips a cinematic sequence
    Player - Player 12 (Brown) skips a cinematic sequence
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet MidCinRejoinSkipped = True
    -------- Fade Out --------
    Cinematic - Fade out over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.50 seconds
    -------- Cleanup --------
    Trigger - Run Rejoin_Cleanup <gen> (checking conditions)
    Cinematic - Turn cinematic mode Off for APG1_Player
    -------- Fade In --------
    Cinematic - Fade in over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.50 seconds
    -------- Quest Update --------
    Wait Campaign quest delay seconds
    Set VariableSet InCinematic = False
    Trigger - Remove Rejoin_Cinematic_Q <gen> from the trigger queue
Rejoin Setup
  Events
  Conditions
  Actions
    -------- Save Camera Position --------
    Set VariableSet CameraReturnPoint = (Target of current camera view)
    -------- Set Sky --------
    Environment - Set sky to Lordaeron Winter Sky (Red)
    -------- Disable Abilities --------
    Player - Disable Unholy Aura for AP04_Arthas
    -------- Save Selection --------
    Set VariableSet SelectedUnits = (Units currently selected by AP04_Arthas)
    Selection - Clear selection
    -------- Set Up Scene --------
    Unit - Create 1.Crypt Lord for Player 12 (Brown) at (Center of AnubarakMoveDest <gen>) facing 0.00 degrees
    Set VariableSet FakeAnubarak = (Last created unit)
    Hero - Learn skill for FakeAnubarak: Undead Crypt Lord - Spiked Carapace
    Unit - Kill Circle of Power 0081 <gen>
    Unit - Kill Circle of Power 0082 <gen>
    -------- Revive Hero --------
    Unit - Make Arthas face 0.00 over 0.00 seconds
    Unit - Make Anubarak face 0.00 over 0.00 seconds
    -------- Disable XP Gain --------
    Hero - Disable experience gain for Anubarak.
    -------- Setup Units --------
    -------- Setup Doodads --------
    -------- Disable Abilities --------
    Player - Disable Unholy Aura for AP04_Arthas
    -------- Pause Units --------
    Unit - Pause all units
    Unit - Unpause FakeAnubarak
    Unit - Unpause Crypt01
    Unit - Unpause Crypt02
    Unit - Unpause Crypt03
    Unit - Unpause Crypt04
    Unit - Unpause Crypt05
    -------- Countdown Timer --------
    Countdown Timer - Pause TimerYellow
    Countdown Timer - Pause TimerRed
    Countdown Timer - Pause CaveCollapseTimer
    Countdown Timer - Hide (Last created timer window) for AP04_Arthas
    Countdown Timer - Hide (Last created timer window) for AP12_Anubarak
    -------- Hide Units --------
    Unit Group - Pick every unit in (Units of type Locust) and do (Remove (Picked unit) from the game)
    Unit Group - Pick every unit in (Units of type Carrion Beetle (Level 1)) and do (Remove (Picked unit) from the game)
    Unit Group - Pick every unit in (Units of type Carrion Beetle (Level 2)) and do (Remove (Picked unit) from the game)
    Unit Group - Pick every unit in (Units of type Carrion Beetle (Level 3)) and do (Remove (Picked unit) from the game)
    Unit Group - Pick every unit in (Units of type Burrowed Carrion Beetle (Level 2)) and do (Remove (Picked unit) from the game)
    Unit Group - Pick every unit in (Units of type Burrowed Carrion Beetle (Level 3)) and do (Remove (Picked unit) from the game)
    Unit Group - Pick every unit in (Units owned by AP04_Arthas matching (((Picked unit) is hidden) Equal to True).) and do (Add (Picked unit) to HiddenUnits)
    Unit Group - Pick every unit in (Units in (Playable map area) owned by AP2_UnbrokenOnes) and do (Add (Picked unit) to HiddenUnits)
    Unit Group - Pick every unit in HiddenUnits and do (Hide (Picked unit))
    -------- Unhide Units --------
    Unit - Hide Anubarak
    Unit - Unhide Crypt01
    Unit - Unhide Crypt02
    Unit - Unhide Crypt03
    Unit - Unhide Crypt04
    Unit - Unhide Crypt05
    Unit - Change ownership of Crypt01 to AP11_SharedPlayer and Retain color
    Unit - Change ownership of Crypt02 to AP11_SharedPlayer and Retain color
    Unit - Change ownership of Crypt03 to AP11_SharedPlayer and Retain color
    Unit - Change ownership of Crypt04 to AP11_SharedPlayer and Retain color
    Unit - Change ownership of Crypt05 to AP11_SharedPlayer and Retain color
    -------- Set User Player Alliances --------
    Player - Make AP04_Arthas treat AP12_Anubarak as an Ally with shared vision
    Player - Make AP12_Anubarak treat AP04_Arthas as an Ally with shared vision
    Player - Make AP12_Anubarak treat AP11_SharedPlayer as an Ally with shared vision and full shared units
    Player - Make AP04_Arthas treat AP11_SharedPlayer as an Ally with shared vision and full shared units
    Player - Make AP11_SharedPlayer treat AP12_Anubarak as an Ally with shared vision and full shared units
    Player - Make AP11_SharedPlayer treat AP04_Arthas as an Ally with shared vision and full shared units
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        SinglePlayer Equal to True
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((AP12_Anubarak slot status) Equal to Is unused) or ((AP12_Anubarak controller) Equal to Computer)
          Then - Actions
            Player - Make AP12_Anubarak treat AP04_Arthas as an Ally with shared vision and full shared units
            Hero - Make AP12_Anubarak Heroes gain 200.00% experience from future kills
          Else - Actions
            Player - Make AP04_Arthas treat AP12_Anubarak as an Ally with shared vision and full shared units
      Else - Actions
    -------- Remove Buffs --------
    Unit Group - Pick every unit in (Units owned by AP04_Arthas.) and do (Remove All except expiration timer buffs from (Picked unit))
    Unit Group - Pick every unit in (Units owned by AP12_Anubarak.) and do (Remove All buffs from (Picked unit))
    Unit Group - Pick every unit in (Units owned by AP11_SharedPlayer.) and do (Remove All buffs from (Picked unit))
    -------- Music Theme --------
    Sound - Play Arthas' Theme, skipping the first 15.70 seconds
    -------- Alliances --------
Rejoin Cleanup
  Events
  Conditions
  Actions
    Set VariableSet PlayersRejoined = True
    Destructible - Kill ForceWall 0726 <gen>
    -------- Unhide Units --------
    Unit Group - Pick every unit in HiddenUnits and do (Unhide (Picked unit))
    Unit Group - Pick every unit in HiddenUnitsCreep and do (Unhide (Picked unit))
    -------- Unpause Units --------
    Unit - Unpause all units
    -------- Enable Abilities --------
    Player - Enable Unholy Aura for AP04_Arthas
    -------- Repause Arachnathids if necessary --------
    -------- Move units --------
    Unit - Remove FakeAnubarak from the game
    Unit - Unhide Anubarak
    Unit - Order Arthas to Move To.(Center of RejoinArthasDest <gen>)
    Unit - Move Arthas instantly to (Center of RejoinArthasDest <gen>), facing 45.00 degrees
    Unit - Order Anubarak to Move To.(Center of RejoinAnuDest <gen>)
    Unit - Move Anubarak instantly to (Center of RejoinAnuDest <gen>), facing 220.00 degrees
    Unit - Make Anubarak face Arthas over 0 seconds
    Unit - Move Crypt01 instantly to (Center of RejoinCrypt01Dest <gen>), facing 250.00 degrees
    Unit - Move Crypt02 instantly to (Center of RejoinCrypt02Dest <gen>), facing 250.00 degrees
    Unit - Move Crypt03 instantly to (Center of RejoinCrypt03Dest <gen>), facing 250.00 degrees
    Unit - Move Crypt04 instantly to (Center of RejoinCrypt04Dest <gen>), facing 250.00 degrees
    Unit - Move Crypt05 instantly to (Center of RejoinCrypt05Dest <gen>), facing 250.00 degrees
    -------- Pause Time Of Day --------
    -------- Re-enable XP Gain --------
    If (ExpDisabledForAnuburak Equal to False) then do (Enable experience gain for Anubarak.) else do (Do nothing)
    -------- Return Heroes --------
    -------- Restore Selection --------
    Selection - Select SelectedUnits
    -------- Reset Sky --------
    Environment - Set sky to None
    -------- Replace Building --------
    -------- Reset Camera --------
    Camera - Reset camera smoothing factor
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - Reset camera for (Picked player) to standard game-view over 0 seconds
        Camera - Stop swaying/shaking the camera for (Picked player).
    -------- Rocks --------
    Destructible - Pick every destructible in Rocks_Destroy_Area <gen> and do (Kill (Picked destructible))
    -------- Countdown Timer --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Remaining time for TimerYellow) Greater than 0.00
      Then - Actions
        Countdown Timer - Resume TimerYellow
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Remaining time for TimerRed) Greater than 0.00
      Then - Actions
        Countdown Timer - Resume TimerRed
      Else - Actions
    Countdown Timer - Resume CaveCollapseTimer
    Countdown Timer - Show (Last created timer window) for AP04_Arthas
    Countdown Timer - Show (Last created timer window) for AP12_Anubarak
    Wait 1.00 seconds
    -------- Quake --------
    Wait 2 seconds
    Trigger - Run Quake_02_Cave_Exit <gen> (checking conditions)
    -------- Alliances --------
Victory Cinematic Q
  Events
  Conditions
  Actions
    Set VariableSet InCinematic = True
    -------- Fade Out --------
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    Cinematic - Turn cinematic mode On for APG1_Player
    Wait 0.25 seconds
    Trigger - Run SaveCodeEtc <gen> (checking conditions)
    Trigger - Run Victory_Setup <gen> (checking conditions)
    Wait 0.25 seconds
    Sound - Set volume of Earthquake <gen> to 90.00%
    Unit - Order FakeAnubarak to Move To.(Center of AnubarakFinal_End_trev <gen>)
    Unit - Order Arthas to Move To.(Center of ArthasFinal_End_trev <gen>)
    Unit - Order EndCineFiendA to Move To.(Center of Fiends_End_Cine_Crypt_01_Dest <gen>)
    Unit - Order EndCineFiendB to Move To.(Center of Fiends_End_Cine_Crypt_02_Dest <gen>)
    Unit - Order EndCineFiendC to Move To.(Center of Fiends_End_Cine_Crypt_03_Dest <gen>)
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - .Apply. gg_cam_Victory_Cam_01 for (Picked player) over 0 seconds
        Camera - .Apply. gg_cam_Victory_Cam_02 for (Picked player) over 25.00 seconds
    -------- Fade In --------
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Sound - Play HorseLoop3 <gen> at 70.00% volume, attached to Arthas
    Wait 1.00 seconds
    Trigger - Turn on Victory_Skipped <gen>
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC BEGINS - Cinematic Can Now Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    Cinematic - Send transmission to (All players) from FakeAnubarak named Anub'arak: Play L07CAnubarak38 <gen> and display Now, quickly--head through that door! The exit to the surface lies just beyond!. Modify duration: Add 0 seconds and Don't wait
    Wait for L07CAnubarak38 <gen> to be 3.25 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Play HorseLoop2 <gen> at 70.00% volume, attached to Arthas
    Wait for L07CAnubarak38 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L07CArthas39 <gen> and display It'll be good to see the sun again.. Modify duration: Add 0 seconds and Wait
    Wait for L07CArthas39 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Arthas face (Center of AnubarakFinal_End_trev <gen>) over 0.20 seconds
    Animation - Lock Arthas's Head to face Anubarak, offset by (0, 0, 90)
    Unit - Make FakeAnubarak face (Center of ArthasFinal_End_trev <gen>) over 0.20 seconds
    Cinematic - Send transmission to (All players) from FakeAnubarak named Anub'arak: Play L07CAnubarak40 <gen> and display Remember--Illidan and the true battle still await us in the world above. Hopefully, our trek through the dark earth bought us the precious time we needed.. Modify duration: Add 0 seconds and Don't wait
    Wait for L07CAnubarak40 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order FakeAnubarak to Move To.(Center of AnubarakFinal_EndB_trev <gen>)
    Unit - Order Arthas to Move To.(Center of ArthasFinal_EndB_trev <gen>)
    Sound - Play HorseLoop1 <gen> at 70.00% volume, attached to Arthas
    Unit - Order EndCineFiendA to Move To.(Center of Fiends_End_Cine3 <gen>)
    Unit - Order EndCineFiendB to Move To.(Center of Fiends_End_Cine3 <gen>)
    Unit - Order EndCineFiendC to Move To.(Center of Fiends_End_Cine3 <gen>)
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC ENDS - Cinematic Can No Longer Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    Trigger - Turn off Victory_Skipped <gen>
    -------- Fade Out --------
    Cinematic - Fade out over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Sound - Stop Earthquake <gen> After fading
    Wait 2.00 seconds
    Unit - Remove FakeAnubarak from the game
    Trigger - Run Next_Level_Run <gen> (checking conditions)
Victory Skipped
  Events
    Player - Player 4 (Purple) skips a cinematic sequence
    Player - Player 12 (Brown) skips a cinematic sequence
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet VictorySkipped = True
    -------- Fade Out --------
    Cinematic - Fade out over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Sound - Stop HorseLoop1 <gen> After fading
    Wait 2.00 seconds
    Unit - Remove FakeAnubarak from the game
    Trigger - Run Next_Level_Run <gen> (checking conditions)
Victory Setup
  Events
  Conditions
  Actions
    -------- Set Sky --------
    Environment - Set sky to Blizzard Sky
    Environment - Set fog to style 0 (fogstyle), z-start 600.00, z-end 3500.00, density 500.00 and color (15.00%, 50.00%, 75.00%)
    -------- Clear Selection --------
    Selection - Clear selection
    -------- Set Up Scene --------
    Unit - Create 1.Crypt Lord for Player 12 (Brown) at (Center of AnubarakFinal_trev <gen>) facing 90.00 degrees
    Set VariableSet FakeAnubarak = (Last created unit)
    Hero - Learn skill for FakeAnubarak: Undead Crypt Lord - Spiked Carapace
    Unit - Move Arthas instantly to (Center of ArthasFinal_trev <gen>)
    -------- Hide Units --------
    Unit Group - Remove all units from HiddenUnits.
    Unit Group - Pick every unit in (Units in (Playable map area) owned by AP04_Arthas) and do (Add (Picked unit) to HiddenUnits)
    Unit Group - Pick every unit in (Units in (Playable map area) owned by AP12_Anubarak) and do (Add (Picked unit) to HiddenUnits)
    Unit Group - Pick every unit in (Units in (Playable map area) owned by AP11_SharedPlayer) and do (Add (Picked unit) to HiddenUnits)
    Unit Group - Pick every unit in (Units in (Playable map area) owned by AP2_UnbrokenOnes) and do (Add (Picked unit) to HiddenUnits)
    Unit Group - Pick every unit in (Units in (Playable map area) owned by AP3_Nerubians) and do (Add (Picked unit) to HiddenUnits)
    Unit Group - Pick every unit in (Units in (Playable map area) owned by Neutral Hostile) and do (Add (Picked unit) to HiddenUnits)
    Unit Group - Remove FakeAnubarak from HiddenUnits.
    Unit Group - Remove Arthas from HiddenUnits.
    Unit Group - Pick every unit in HiddenUnits and do (Hide (Picked unit))
    -------- Move Anubarak along with his flys --------
    Unit Group - Pick every unit in (Units of type Locust) and do (Remove (Picked unit) from the game)
    Unit - Move Anubarak instantly to (Center of DialogueBlockingWayArea <gen>)
    -------- Disable XP Gain --------
    Hero - Disable experience gain for Anubarak.
    -------- Pause Time Of Day --------
    Game - Turn the day/night cycle Off
    -------- Pause Timer --------
    Countdown Timer - Hide (Last created timer window) for AP04_Arthas
    Countdown Timer - Hide (Last created timer window) for AP12_Anubarak
    -------- Pause Units --------
    Unit - Pause all units
    Unit - Unpause Arthas
    Unit - Unpause EndCineFiendA
    Unit - Unpause EndCineFiendB
    Unit - Unpause EndCineFiendC
    Unit - Unpause FakeAnubarak
    -------- Create Crypts --------
    Unit - Create 1.Crypt Fiend for AP11_SharedPlayer at (Center of Fiends_End_Cine_01_Spawn <gen>) facing Default building facing degrees
    Set VariableSet EndCineFiendA = (Last created unit)
    Unit - Create 1.Crypt Fiend for AP11_SharedPlayer at (Center of Fiends_End_Cine_02_Spawn <gen>) facing Default building facing degrees
    Set VariableSet EndCineFiendB = (Last created unit)
    Unit - Create 1.Crypt Fiend for AP11_SharedPlayer at (Center of Fiends_End_Cine_03_Spawn <gen>) facing Default building facing degrees
    Set VariableSet EndCineFiendC = (Last created unit)
    Unit - Unhide EndCineFiendA
    Unit - Unhide EndCineFiendB
    Unit - Unhide EndCineFiendC
    -------- Hide Items --------
    Item - Pick every item in (Playable map area) and do (Hide (Picked item))
    -------- Remove Buffs --------
    Unit Group - Pick every unit in (Units owned by AP04_Arthas.) and do (Remove All buffs from (Picked unit))
    -------- Disable Abilities --------
    Player - Disable Unholy Aura for AP04_Arthas
    -------- Music Theme --------
    Sound - Play Heroic Victory.
Voiceover Damned Exit Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Wait 1.50 seconds
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L07CArthas05 <gen> and display Time is running out! Where is that damned exit?. Modify duration: Add 0 seconds and Wait
    Wait for L07CArthas05 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    -------- ----------- --------
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Whole Place Crumbling Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Wait 1.50 seconds
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L07CArthas06 <gen> and display This whole place is crumbling. We've got to move fast!. Modify duration: Add 0 seconds and Wait
    Wait for L07CArthas06 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    -------- ----------- --------
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Another Quake Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Wait 1.50 seconds
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to Player Group - Player 4 (Purple) from Arthas named King Arthas: Play L07CArthas22 <gen> and display Another quake!. Modify duration: Add 0 seconds and Wait
    Wait for L07CArthas22 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    -------- ----------- --------
    Trigger - Remove (This trigger) from the trigger queue
Voiceover More Blasted Mechanisms
  Events
    Unit - A unit enters Flame_Geyser_Puzzle_Area <gen>
  Conditions
    (Owner of (Entering unit)) Equal to AP04_Arthas
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_More_Blasted_Mechanisms_Q <gen> to the trigger queue (Checking conditions)
This one
Voiceover More Blasted Mechanisms Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Wait 1.50 seconds
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to Player Group - Player 4 (Purple) from Arthas named King Arthas: Play L07CArthas28 <gen> and display More of the nerubians' blasted mechanisms! I'll have to time this perfectly.. Modify duration: Add 0 seconds and Wait
    Wait for L07CArthas28 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    -------- ----------- --------
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Strange Obstacle
  Events
    Unit - A unit enters VisibilityBigElevatorArea <gen>
  Conditions
    (Owner of (Entering unit)) Equal to AP04_Arthas
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_Strange_Obstacle_Q <gen> to the trigger queue (Checking conditions)
This one
Voiceover Strange Obstacle Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Wait 1.50 seconds
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to Player Group - Player 4 (Purple) from Arthas named King Arthas: Play L07CArthas31 <gen> and display I must find a way across this strange obstacle.. Modify duration: Add 0 seconds and Wait
    Wait for L07CArthas31 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    -------- ----------- --------
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Blocking the Way
  Events
    Unit - A unit enters DialogueBlockingWayArea <gen>
  Conditions
    (Owner of (Entering unit)) Equal to AP04_Arthas
    (Unit-type of (Entering unit)) Not equal to Locust
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_Blocking_the_Way_Q <gen> to the trigger queue (Checking conditions)
Voiceover Blocking the Way Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Wait 1.50 seconds
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Anubarak named Anub'arak: Play L07CAnubarak37 <gen> and display They're blocking the way to the exit! We'll have to fight our way through them to reach it!. Modify duration: Add 0 seconds and Wait
    Wait for L07CAnubarak37 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    -------- ----------- --------
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Running Out of Time Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Wait 1.50 seconds
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Anubarak named Anub'arak: Play L07CAnubarak07 <gen> and display We're running out of time. We must find the exit!. Modify duration: Add 0 seconds and Wait
    Wait for L07CAnubarak07 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    -------- ----------- --------
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Another Quake Hurry Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Wait 1.50 seconds
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Anubarak named Anub'arak: Play L07CAnubarak20 <gen> and display Another earthquake. We must hurry, death knight.. Modify duration: Add 0 seconds and Wait
    Wait for L07CAnubarak20 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    -------- ----------- --------
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Breaking Through Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Wait 1.50 seconds
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L07CArthas36 <gen> and display Something's breaking through! Defensive positions!. Modify duration: Add 0 seconds and Wait
    Wait for L07CArthas36 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    -------- ----------- --------
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Singed
  Events
    Unit - A unit enters Dialogue_Singed_Area <gen>
  Conditions
    (Owner of (Entering unit)) Equal to AP04_Arthas
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_Singed_Q <gen> to the trigger queue (Checking conditions)
This one
Voiceover Singed Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Wait 1.50 seconds
    Camera - Set a spacebar-point for AP04_Arthas at (Center of Dialogue_Singed_Area <gen>)
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to Player Group - Player 4 (Purple) from Arthas named King Arthas: Play L07CArthas30 <gen> and display I'll be singed if I get too close to those flames.. Modify duration: Add 0 seconds and Wait
    Wait for L07CArthas30 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    -------- ----------- --------
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Anub Quake Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Wait 1.00 seconds
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to Player Group - Player 12 (Brown) from Anubarak named Anub'arak: Play No sound and display Another quake. We must proceed with haste!. Modify duration: Set to 6.00 seconds and Wait
    Sound - Reset all volume channels to 100%
    -------- ----------- --------
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Anub Singed Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Wait 1.00 seconds
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to Player Group - Player 12 (Brown) from Anubarak named Anub'arak: Play No sound and display I should avoid getting singed by the blast mechanism ahead.. Modify duration: Set to 6.00 seconds and Wait
    Sound - Reset all volume channels to 100%
    -------- ----------- --------
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Encountered Boss Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to Player Group - Player 12 (Brown) from Anubarak named Anub'arak: Play No sound and display The Faceless Ones are protecting a generator. We should proceed with caution.. Modify duration: Set to 8.00 seconds and Wait
    Sound - Reset all volume channels to 100%
    -------- ----------- --------
    Trigger - Remove (This trigger) from the trigger queue
Start Timers
  Events
  Conditions
  Actions
    Countdown Timer - Start TimingTrap01Timer as a One-shot timer that will expire in SideFlame01TimeDelay seconds
    Countdown Timer - Start TimingTrap04Timer as a One-shot timer that will expire in SideFlame04TimeDelay seconds
    Wait 1.00 seconds
    Countdown Timer - Start TimingTrap02Timer as a One-shot timer that will expire in SideFlame02TimeDelay seconds
    Countdown Timer - Start TimingTrap05Timer as a One-shot timer that will expire in SideFlame05TimeDelay seconds
    Wait 1.00 seconds
    Countdown Timer - Start TimingTrap03Timer as a One-shot timer that will expire in SideFlame03TimeDelay seconds
    Countdown Timer - Start TimingTrap06Timer as a One-shot timer that will expire in SideFlame06TimeDelay seconds
Damage Line 01
  Events
    Time - Every 0.40 seconds of game time
  Conditions
    GameOver Equal to False
    SideFlame01 Equal to True
  Actions
    -------- Plate Effect --------
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in FlameSideSet01 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Side_Flame_Damage <gen> (checking conditions)
Damage Line 02
  Events
    Time - Every 0.40 seconds of game time
  Conditions
    GameOver Equal to False
    SideFlame02 Equal to True
  Actions
    -------- Plate Effect --------
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in FlameSideSet02 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Side_Flame_Damage <gen> (checking conditions)
Damage Line 03
  Events
    Time - Every 0.40 seconds of game time
  Conditions
    GameOver Equal to False
    SideFlame03 Equal to True
  Actions
    -------- Plate Effect --------
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in FlameSideSet03 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Side_Flame_Damage <gen> (checking conditions)
Damage Line 04
  Events
    Time - Every 0.40 seconds of game time
  Conditions
    GameOver Equal to False
    SideFlame04 Equal to True
  Actions
    -------- Plate Effect --------
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in FlameSideSet04 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Side_Flame_Damage <gen> (checking conditions)
Damage Line 05
  Events
    Time - Every 0.40 seconds of game time
  Conditions
    GameOver Equal to False
    SideFlame05 Equal to True
  Actions
    -------- Plate Effect --------
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in FlameSideSet05 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Side_Flame_Damage <gen> (checking conditions)
Damage Line 06
  Events
    Time - Every 0.40 seconds of game time
  Conditions
    GameOver Equal to False
    SideFlame06 Equal to True
  Actions
    -------- Plate Effect --------
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in FlameSideSet06 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Side_Flame_Damage <gen> (checking conditions)
Timing Trap Line 01
  Events
    Time - TimingTrap01Timer expires
  Conditions
    SideFlameDeactivated Equal to False
  Actions
    Set VariableSet SideFlame01 = True
    Animation - Play the stand second (animationname) animation for all doodads of type YOr1 (doodadcode) within FlameSideSet01 <gen>.
    -------- Start Sound --------
    Sound - Play FlameSideSound01 at FlameVolume% volume, located at PointFlameSide01 with Z offset 0
    Set VariableSet FlameSideSound01 = (Last played sound)
    Wait 2.00 seconds
    Countdown Timer - Start TimingTrap01Timer as a One-shot timer that will expire in SideFlame01TimeDelay seconds
    Animation - Play the death (animationname) animation for all doodads of type YOr1 (doodadcode) within FlameSideSet01 <gen>.
    Set VariableSet SideFlame01 = False
    -------- Stop Sound --------
    Sound - Stop FlameSideSound01 After fading
Timing Trap Line 02
  Events
    Time - TimingTrap02Timer expires
  Conditions
    SideFlameDeactivated Equal to False
  Actions
    Set VariableSet SideFlame02 = True
    Animation - Play the stand second (animationname) animation for all doodads of type YOr1 (doodadcode) within FlameSideSet02 <gen>.
    -------- Start Sound --------
    Sound - Play FlameSideSound02 at FlameVolume% volume, located at PointFlameSide02 with Z offset 0
    Set VariableSet FlameSideSound02 = (Last played sound)
    Wait 2.00 seconds
    Countdown Timer - Start TimingTrap02Timer as a One-shot timer that will expire in SideFlame02TimeDelay seconds
    Animation - Play the death (animationname) animation for all doodads of type YOr1 (doodadcode) within FlameSideSet02 <gen>.
    Set VariableSet SideFlame02 = False
    -------- Stop Sound --------
    Sound - Stop FlameSideSound02 After fading
Timing Trap Line 03
  Events
    Time - TimingTrap03Timer expires
  Conditions
    SideFlameDeactivated Equal to False
  Actions
    Set VariableSet SideFlame03 = True
    Animation - Play the stand second (animationname) animation for all doodads of type YOr1 (doodadcode) within FlameSideSet03 <gen>.
    -------- Start Sound --------
    Sound - Play FlameSideSound03 at FlameVolume% volume, located at PointFlameSide03 with Z offset 0
    Set VariableSet FlameSideSound03 = (Last played sound)
    Wait 2.00 seconds
    Countdown Timer - Start TimingTrap03Timer as a One-shot timer that will expire in SideFlame03TimeDelay seconds
    Animation - Play the death (animationname) animation for all doodads of type YOr1 (doodadcode) within FlameSideSet03 <gen>.
    Set VariableSet SideFlame03 = False
    -------- Stop Sound --------
    Sound - Stop FlameSideSound03 After fading
Timing Trap Line 04
  Events
    Time - TimingTrap04Timer expires
  Conditions
  Actions
    Set VariableSet SideFlame04 = True
    Animation - Play the stand second (animationname) animation for all doodads of type YOr1 (doodadcode) within FlameSideSet04 <gen>.
    -------- Start Sound --------
    Sound - Play FlameSideSound04 at FlameVolume% volume, located at PointFlameSide04 with Z offset 0
    Set VariableSet FlameSideSound04 = (Last played sound)
    Wait 2.00 seconds
    Countdown Timer - Start TimingTrap04Timer as a One-shot timer that will expire in SideFlame04TimeDelay seconds
    Animation - Play the death (animationname) animation for all doodads of type YOr1 (doodadcode) within FlameSideSet04 <gen>.
    Set VariableSet SideFlame04 = False
    -------- Stop Sound --------
    Sound - Stop FlameSideSound04 After fading
Timing Trap Line 05
  Events
    Time - TimingTrap05Timer expires
  Conditions
  Actions
    Set VariableSet SideFlame05 = True
    Animation - Play the stand second (animationname) animation for all doodads of type YOr1 (doodadcode) within FlameSideSet05 <gen>.
    -------- Start Sound --------
    Sound - Play FlameSideSound05 at FlameVolume% volume, located at PointFlameSide05 with Z offset 0
    Set VariableSet FlameSideSound05 = (Last played sound)
    Wait 2.00 seconds
    Countdown Timer - Start TimingTrap05Timer as a One-shot timer that will expire in SideFlame05TimeDelay seconds
    Animation - Play the death (animationname) animation for all doodads of type YOr1 (doodadcode) within FlameSideSet05 <gen>.
    Set VariableSet SideFlame05 = False
    -------- Stop Sound --------
    Sound - Stop FlameSideSound05 After fading
Timing Trap Line 06
  Events
    Time - TimingTrap06Timer expires
  Conditions
  Actions
    Set VariableSet SideFlame06 = True
    Animation - Play the stand second (animationname) animation for all doodads of type YOr1 (doodadcode) within FlameSideSet06 <gen>.
    -------- Start Sound --------
    Sound - Play FlameSideSound06 at FlameVolume% volume, located at PointFlameSide06 with Z offset 0
    Set VariableSet FlameSideSound06 = (Last played sound)
    Wait 2.00 seconds
    Countdown Timer - Start TimingTrap06Timer as a One-shot timer that will expire in SideFlame06TimeDelay seconds
    Animation - Play the death (animationname) animation for all doodads of type YOr1 (doodadcode) within FlameSideSet06 <gen>.
    Set VariableSet SideFlame06 = False
    -------- Stop Sound --------
    Sound - Stop FlameSideSound06 After fading
Blue Side Flame Damage
  Events
  Conditions
    ((Picked unit) is alive) Equal to True
    And - All (Conditions) are true
      Conditions
        (Picked unit) Not equal to Satchet01
        (Picked unit) Not equal to Satchet02
  Actions
    Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - BlueSideFlameDamage)
    Trigger - Run Blue_Side_Flame_Floaty_Normal <gen> (checking conditions)
    Special Effect - Create a special effect attached to the origin (attachpoint) of (Picked unit) using Objects\Spawnmodels\NightElf\NECancelDeath\NECancelDeath.mdl
    Special Effect - Destroy (Last created special effect)
Blue Side Flame Floaty Normal
  Events
  Conditions
  Actions
    Custom script: local texttag tt
    Floating Text - Create floating text that reads 150! above (Picked unit) with Z offset 0, using font size 10, color (100%, 0.00%, 0.00%), and 0% transparency
    Floating Text - Set the velocity of (Last created floating text) to 32.00 towards 90.00 degrees
    Set VariableSet TempFloaty = (Last created floating text)
    Custom script: set tt = udg_TempFloaty
    Wait 1.00 seconds
    -------- Fade --------
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 10.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 20.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 30.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 40.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 50.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 60.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 70.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 80.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 90.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Destroy TempFloaty
Blue Side Flame Plate Off
  Events
    Unit - A unit enters PlateBlueSideFlameOff <gen>
  Conditions
  Actions
    Wait 0.05 seconds
    Set VariableSet SideFlameDeactivated = True
    -------- Activate Plate --------
    Destructible - Kill Foot Switch 0678 <gen>
    Set VariableSet TempPoint = (Position of Foot Switch 0678 <gen>)
    Sound - Play SoundPlates at 100% volume, located at TempPoint with Z offset 0
    Custom script: call RemoveLocation( udg_TempPoint )
    Countdown Timer - Pause TimingTrap01Timer
    Countdown Timer - Pause TimingTrap02Timer
    Countdown Timer - Pause TimingTrap03Timer
    Wait 0.10 seconds
    Animation - Play the death (animationname) animation for all doodads of type YOr1 (doodadcode) within FlameSideSet01 <gen>.
    Animation - Play the death (animationname) animation for all doodads of type YOr1 (doodadcode) within FlameSideSet02 <gen>.
    Animation - Play the death (animationname) animation for all doodads of type YOr1 (doodadcode) within FlameSideSet03 <gen>.
    Sound - Stop BlueFireBurstLoop <gen> After fading
Blue Flame Geyser Setup
  Events
    Time - Elapsed game time is 1.00 seconds
  Conditions
  Actions
    Animation - Play the stand second (animationname) animation for all doodads of type YOr2 (doodadcode) within Flame_Geyser_Puzzle_Area <gen>.
    Countdown Timer - Start TimerPlate01Death as a One-shot timer that will expire in 6.00 seconds
    Countdown Timer - Start TimerPlate02Death as a One-shot timer that will expire in 5.00 seconds
    Countdown Timer - Start TimerPlate03Death as a One-shot timer that will expire in 3.00 seconds
    Countdown Timer - Start TimerPlate04Death as a One-shot timer that will expire in 2.00 seconds
Plate 01 Area Death Animation
  Events
    Time - TimerPlate01Death expires
  Conditions
  Actions
    Set VariableSet Plate01FlameOn = False
    Animation - Play the death (animationname) animation for all doodads of type YOr2 (doodadcode) within Plate_01_Pulsating_Area <gen>.
    Countdown Timer - Start TimerPlate01Stand as a One-shot timer that will expire in 3.00 seconds
    -------- Stop Sound --------
    Sound - Stop FlameGeyserSound01 After fading
Plate 01 Area Stand Animation
  Events
    Time - TimerPlate01Stand expires
  Conditions
  Actions
    Set VariableSet Plate01FlameOn = True
    Animation - Play the stand second (animationname) animation for all doodads of type YOr2 (doodadcode) within Plate_01_Pulsating_Area <gen>.
    Countdown Timer - Start TimerPlate01Death as a One-shot timer that will expire in 6.00 seconds
    -------- Start Sound --------
    Set VariableSet TempPoint = (Center of Plate_01_Pulsating_Area <gen>)
    Sound - Play FlameGeyserSound01 at FlameVolume% volume, located at TempPoint with Z offset 0
    Custom script: call RemoveLocation( udg_TempPoint )
    Set VariableSet FlameGeyserSound01 = (Last played sound)
Plate 02 Area Death Animation
  Events
    Time - TimerPlate02Death expires
  Conditions
  Actions
    Set VariableSet Plate02FlameOn = False
    Animation - Play the death (animationname) animation for all doodads of type YOr2 (doodadcode) within Plate_02_Pulsating_Area <gen>.
    Countdown Timer - Start TimerPlate02Stand as a One-shot timer that will expire in 2.50 seconds
    -------- Stop Sound --------
    Sound - Stop FlameGeyserSound02 After fading
Plate 02 Area Stand Animation
  Events
    Time - TimerPlate02Stand expires
  Conditions
  Actions
    Set VariableSet Plate02FlameOn = True
    Animation - Play the stand second (animationname) animation for all doodads of type YOr2 (doodadcode) within Plate_02_Pulsating_Area <gen>.
    Countdown Timer - Start TimerPlate02Death as a One-shot timer that will expire in 5.00 seconds
    -------- Start Sound --------
    Set VariableSet TempPoint = (Center of Plate_02_Pulsating_Area <gen>)
    Sound - Play FlameGeyserSound02 at FlameVolume% volume, located at TempPoint with Z offset 0
    Custom script: call RemoveLocation( udg_TempPoint )
    Set VariableSet FlameGeyserSound02 = (Last played sound)
Plate 03 Area Death Animation
  Events
    Time - TimerPlate03Death expires
  Conditions
  Actions
    Set VariableSet Plate03FlameOn = False
    Animation - Play the death (animationname) animation for all doodads of type YOr2 (doodadcode) within Plate_03_Pulsating_Area <gen>.
    Countdown Timer - Start TimerPlate03Stand as a One-shot timer that will expire in 1.50 seconds
    -------- Stop Sound --------
    Sound - Stop FlameGeyserSound03 After fading
Plate 03 Area Stand Animation
  Events
    Time - TimerPlate03Stand expires
  Conditions
  Actions
    Set VariableSet Plate03FlameOn = True
    Animation - Play the stand second (animationname) animation for all doodads of type YOr2 (doodadcode) within Plate_03_Pulsating_Area <gen>.
    Countdown Timer - Start TimerPlate03Death as a One-shot timer that will expire in 3.00 seconds
    -------- Start Sound --------
    Set VariableSet TempPoint = (Center of Plate_03_Pulsating_Area <gen>)
    Sound - Play FlameGeyserSound03 at FlameVolume% volume, located at TempPoint with Z offset 0
    Custom script: call RemoveLocation( udg_TempPoint )
    Set VariableSet FlameGeyserSound03 = (Last played sound)
Plate 04 Area Death Animation
  Events
    Time - TimerPlate04Death expires
  Conditions
  Actions
    Set VariableSet Plate04FlameOn = False
    Animation - Play the death (animationname) animation for all doodads of type YOr2 (doodadcode) within Plate_04_Pulsating_Area <gen>.
    Countdown Timer - Start TimerPlate04Stand as a One-shot timer that will expire in 1.00 seconds
    -------- Stop Sound --------
    Sound - Stop FlameGeyserSound04 After fading
Plate 04 Area Stand Animation
  Events
    Time - TimerPlate04Stand expires
  Conditions
  Actions
    Set VariableSet Plate04FlameOn = True
    Animation - Play the stand second (animationname) animation for all doodads of type YOr2 (doodadcode) within Plate_04_Pulsating_Area <gen>.
    Countdown Timer - Start TimerPlate04Death as a One-shot timer that will expire in 2.00 seconds
    -------- Start Sound --------
    Set VariableSet TempPoint = (Center of Plate_04_Pulsating_Area <gen>)
    Sound - Play FlameGeyserSound04 at FlameVolume% volume, located at TempPoint with Z offset 0
    Custom script: call RemoveLocation( udg_TempPoint )
    Set VariableSet FlameGeyserSound04 = (Last played sound)
Damage Plate 01 Pulsating Area
  Events
    Time - Every 0.40 seconds of game time
  Conditions
    GameOver Equal to False
    Plate01FlameOn Equal to True
  Actions
    -------- Plate Effect --------
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Plate_01_Pulsating_Area <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
Damage Plate 01 Sustained Area
  Events
    Time - Every 0.40 seconds of game time
  Conditions
    GameOver Equal to False
    Plate01SustainedArea Equal to True
  Actions
    -------- Plate Effect --------
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Plate_01_Drop_Area <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
Damage Plate 02 Pulsating Area
  Events
    Time - Every 0.40 seconds of game time
  Conditions
    GameOver Equal to False
    Plate02FlameOn Equal to True
  Actions
    -------- Plate Effect --------
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Plate_02_Pulsating_Area <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
Damage Plate 02 Sustained Area
  Events
    Time - Every 0.40 seconds of game time
  Conditions
    GameOver Equal to False
    Plate02SustainedArea Equal to True
  Actions
    -------- Plate Effect --------
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Plate_02_Drop_Area <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
Damage Plate 03 Pulsating Area
  Events
    Time - Every 0.40 seconds of game time
  Conditions
    GameOver Equal to False
    Plate03FlameOn Equal to True
  Actions
    -------- Plate Effect --------
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Plate_03_Pulsating_Area <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
Damage Plate 03 Sustained Area
  Events
    Time - Every 0.40 seconds of game time
  Conditions
    GameOver Equal to False
    Plate03SustainedArea Equal to True
  Actions
    -------- Plate Effect --------
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Plate_03_Drop_Area <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
Damage Plate 04 Pulsating Area
  Events
    Time - Every 0.40 seconds of game time
  Conditions
    GameOver Equal to False
    Plate04FlameOn Equal to True
  Actions
    -------- Plate Effect --------
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Plate_04_Pulsating_Area <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
Damage Flame Sustained
  Events
    Time - Every 0.40 seconds of game time
  Conditions
  Actions
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Flame_A3 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Flame_C3 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Flame_C4 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Flame_C5 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Flame_E1 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Flame_E2 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Flame_E3 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Flame_G3 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Flame_G4 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Flame_G5 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Flame_H5 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Flame_I1 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Flame_I2 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Flame_I3 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Flame_I3 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Flame_I4 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units in Flame_I5 <gen>) and do (Actions)
      Loop - Actions
        Trigger - Run Blue_Flame_Geyser_Damage <gen> (checking conditions)
Sustained Sound
  Events
    Destructible - Icy Gate 0322 <gen> dies
  Conditions
    SustainedFlamesSoundOn Equal to True
  Actions
    -------- Geyser flames that are always on until trap is off --------
    Set VariableSet TempPoint = (Center of Flame_E2 <gen>)
    Sound - Play FlameSustained at FlameVolumeSustained% volume, located at TempPoint with Z offset 0
    Custom script: call RemoveLocation( udg_TempPoint )
Blue Flame Geyser Damage
  Events
  Conditions
    ((Picked unit) is alive) Equal to True
    (Picked unit) Not equal to Satchet01
  Actions
    Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - GeyserFlameDamage)
    Trigger - Run Blue_Flame_Geyser_Floaty <gen> (checking conditions)
    Special Effect - Create a special effect attached to the origin (attachpoint) of Arthas using Objects\Spawnmodels\NightElf\NECancelDeath\NECancelDeath.mdl
Blue Flame Geyser Floaty
  Events
  Conditions
  Actions
    Custom script: local texttag tt
    Floating Text - Create floating text that reads 200! above (Picked unit) with Z offset 0, using font size 10, color (100%, 0.00%, 0.00%), and 0% transparency
    Floating Text - Set the velocity of (Last created floating text) to 32.00 towards 90.00 degrees
    Set VariableSet TempFloaty = (Last created floating text)
    Custom script: set tt = udg_TempFloaty
    Wait 1.00 seconds
    -------- Fade --------
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 10.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 20.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 30.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 40.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 50.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 60.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 70.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 80.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Change the color of TempFloaty to (100.00%, 0.00%, 0.00%) with 90.00% transparency
    Wait 0.05 seconds
    Custom script: set udg_TempFloaty = tt
    Floating Text - Destroy TempFloaty
Plate 01
  Events
    Unit - A unit enters Plate_01 <gen>
  Conditions
    GameOver Equal to False
    (Owner of (Entering unit)) Equal to AP04_Arthas
  Actions
    Trigger - Turn off (This trigger)
    -------- Activate Plate --------
    Destructible - Kill Foot Switch 0016 <gen>
    Sound - Play SoundPlates at 100% volume, located at (Position of Foot Switch 0016 <gen>) with Z offset 0
    Set VariableSet Plate01FlameOn = False
    Wait 0.80 seconds
    -------- Plate Effect --------
    Animation - Play the death (animationname) animation for all doodads of type YOr2 (doodadcode) within Plate_01_Drop_Area <gen>.
    -------- Turn off Plate 01 Area --------
    Set VariableSet Plate01SustainedArea = False
    Animation - Play the death (animationname) animation for all doodads of type D000 (doodadcode) within Plate_01_Drop_Area <gen>.
    Trigger - Run Turn_Off_Geyser_Trap_and_Open_Door <gen> (checking conditions)
Plate 02
  Events
    Unit - A unit enters Plate_02 <gen>
  Conditions
    GameOver Equal to False
    (Owner of (Entering unit)) Equal to AP04_Arthas
  Actions
    Trigger - Turn off (This trigger)
    -------- Activate Plate --------
    Destructible - Kill Foot Switch 0015 <gen>
    Sound - Play SoundPlates at 100% volume, located at (Position of Foot Switch 0015 <gen>) with Z offset 0
    Set VariableSet Plate02FlameOn = False
    Wait 0.80 seconds
    -------- Plate Effect --------
    Animation - Play the death (animationname) animation for all doodads of type YOr2 (doodadcode) within Plate_02_Drop_Area <gen>.
    -------- Turn off Plate 02 Area --------
    Set VariableSet Plate02SustainedArea = False
    Animation - Play the death (animationname) animation for all doodads of type D000 (doodadcode) within Plate_02_Drop_Area <gen>.
    Trigger - Run Turn_Off_Geyser_Trap_and_Open_Door <gen> (checking conditions)
Plate 03
  Events
    Unit - A unit enters Plate_03 <gen>
  Conditions
    GameOver Equal to False
    (Owner of (Entering unit)) Equal to AP04_Arthas
  Actions
    Trigger - Turn off (This trigger)
    -------- Activate Plate --------
    Destructible - Kill Foot Switch 0014 <gen>
    Sound - Play SoundPlates at 100% volume, located at (Position of Foot Switch 0014 <gen>) with Z offset 0
    Set VariableSet Plate03FlameOn = False
    Wait 0.80 seconds
    -------- Plate Effect --------
    Animation - Play the death (animationname) animation for all doodads of type YOr2 (doodadcode) within Plate_03_Drop_Area <gen>.
    -------- Turn off Plate 03 Area --------
    Set VariableSet Plate03SustainedArea = False
    Animation - Play the death (animationname) animation for all doodads of type D000 (doodadcode) within Plate_03_Drop_Area <gen>.
    Trigger - Run Turn_Off_Geyser_Trap_and_Open_Door <gen> (checking conditions)
Plate 04
  Events
    Unit - A unit enters Plate_04 <gen>
  Conditions
    GameOver Equal to False
    (Owner of (Entering unit)) Equal to AP04_Arthas
  Actions
    Trigger - Turn off (This trigger)
    -------- Activate Plate --------
    Destructible - Kill Foot Switch 0012 <gen>
    Sound - Play SoundPlates at 100% volume, located at (Position of Foot Switch 0012 <gen>) with Z offset 0
    Set VariableSet Plate04FlameOn = False
    Wait 0.80 seconds
    -------- Plate Effect --------
    Set VariableSet Plate04SustainedArea = False
    Trigger - Run Turn_Off_Geyser_Trap_and_Open_Door <gen> (checking conditions)
Turn Off Geyser Trap and Open Door
  Events
  Conditions
    Plate01SustainedArea Equal to False
    Plate02SustainedArea Equal to False
    Plate03SustainedArea Equal to False
    Plate04SustainedArea Equal to False
  Actions
    -------- Animation --------
    Animation - Play the death (animationname) animation for all doodads of type YOr2 (doodadcode) within Flame_Geyser_Puzzle_Area <gen>.
    Animation - Play the death (animationname) animation for all doodads of type D000 (doodadcode) within Flame_Geyser_Puzzle_Area <gen>.
    -------- Pause Timers --------
    Countdown Timer - Pause TimerPlate01Death
    Countdown Timer - Pause TimerPlate02Death
    Countdown Timer - Pause TimerPlate03Death
    Countdown Timer - Pause TimerPlate04Death
    Countdown Timer - Pause TimerPlate01Stand
    Countdown Timer - Pause TimerPlate02Stand
    Countdown Timer - Pause TimerPlate03Stand
    Countdown Timer - Pause TimerPlate04Stand
    -------- Turn off All Flame Damage --------
    Trigger - Turn off Damage_Flame_Sustained <gen>
    Set VariableSet Plate01FlameOn = False
    Set VariableSet Plate02FlameOn = False
    Set VariableSet Plate03FlameOn = False
    Set VariableSet Plate04FlameOn = False
    Set VariableSet SustainedFlamesSoundOn = False
    -------- Turn off All Flame Sound --------
    Sound - Stop FlameSustained After fading
    Sound - Stop FlameGeyserSound01 After fading
    Sound - Stop FlameGeyserSound02 After fading
    Sound - Stop FlameGeyserSound03 After fading
    Sound - Stop FlameGeyserSound04 After fading
    -------- Door --------
    Wait 1.00 seconds
    Set VariableSet TempPoint = (Position of Icy Gate 0002 <gen>)
    Sound - Play SoundDoorOpening at 100% volume, located at TempPoint with Z offset 0
    Custom script: call RemoveLocation( udg_TempPoint )
    Destructible - Open Icy Gate 0002 <gen>
Blizzard Strike Setup
  Events
    Destructible - Rolling Stone Door 0026 <gen> dies
  Conditions
  Actions
    Unit - Add Blizzard to BlizzardStriker
    Unit - Remove Mana Shield (Neutral Hostile) from BlizzardStriker
    Unit - Remove Sleep (Neutral Hostile) from BlizzardStriker
    -------- Force Bridge --------
    Destructible - Resurrect Elevator Wall 0061 <gen> with 10.00 life and Hide birth animation
    Destructible - Resurrect Elevator Wall 0063 <gen> with 10.00 life and Hide birth animation
Area 01 Wall Down
  Events
    Unit - Power Generator 0017 <gen> Dies
  Conditions
  Actions
    Destructible - Kill ForceWall 0305 <gen>
    Trigger - Turn off Blizzard_01_Area <gen>
    Trigger - Turn on Blizzard_02_Area <gen>
    -------- Play Death Sound --------
    Sound - Play NightElfBuildingDeathSmall1 <gen> at 80.00% volume, attached to Power Generator 0017 <gen>
Area 02 Wall Down
  Events
    Unit - Power Generator 0016 <gen> Dies
  Conditions
  Actions
    Destructible - Kill ForceWall 0081 <gen>
    Trigger - Turn off Blizzard_02_Area <gen>
    Trigger - Turn on Blizzard_03_Area <gen>
    -------- Play Death Sound --------
    Sound - Play NightElfBuildingDeathSmall1 <gen> at 80.00% volume, attached to Power Generator 0016 <gen>
Area Arch Mage
  Events
    Unit - A unit enters Flame_Strike_Arch_Mage_Area <gen>
  Conditions
    (Owner of (Entering unit)) Equal to AP04_Arthas
  Actions
    Trigger - Turn off Blizzard_03_Area <gen>
    Trigger - Turn off Blizzard_04_Area <gen>
    Set VariableSet TempPoint = (Center of Flame_Strike_Arch_Mage_Area <gen>)
    Unit - Order BlizzardStriker to Attack-Move To.TempPoint
    Custom script: call RemoveLocation( udg_TempPoint )
Blizzard 01 Area
  Events
    Time - Every 2.00 seconds of game time
  Conditions
    (BlizzardStriker is alive) Equal to True
  Actions
    Set VariableSet TempPoint = (Random point in Flame_Strike_01_Area <gen>)
    Unit - Order BlizzardStriker to Human Archmage - Blizzard.TempPoint
    Custom script: call RemoveLocation( udg_TempPoint )
Blizzard 02 Area
  Events
    Time - Every 2.00 seconds of game time
  Conditions
    (BlizzardStriker is alive) Equal to True
  Actions
    Set VariableSet TempPoint = (Random point in Flame_Strike_02_Area <gen>)
    Unit - Order BlizzardStriker to Human Archmage - Blizzard.TempPoint
    Custom script: call RemoveLocation( udg_TempPoint )
Blizzard 03 Area
  Events
    Time - Every 2.00 seconds of game time
  Conditions
    (BlizzardStriker is alive) Equal to True
  Actions
    Set VariableSet TempPoint = (Random point in Flame_Strike_03_Area <gen>)
    Unit - Order BlizzardStriker to Human Archmage - Blizzard.TempPoint
    Custom script: call RemoveLocation( udg_TempPoint )
Activate 04
  Events
    Unit - A unit enters Flame_Strike_04_Area <gen>
  Conditions
    (Owner of (Entering unit)) Equal to AP04_Arthas
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn on Blizzard_04_Area <gen>
Blizzard 04 Area
  Events
    Time - Every 2.00 seconds of game time
  Conditions
    (BlizzardStriker is alive) Equal to True
  Actions
    Set VariableSet TempPoint = (Random point in Flame_Strike_04_Area <gen>)
    Unit - Order BlizzardStriker to Human Archmage - Blizzard.TempPoint
    Custom script: call RemoveLocation( udg_TempPoint )
Last Power Generator Dies
  Events
    Unit - Power Generator 0018 <gen> Dies
  Conditions
  Actions
    -------- Play Death Sound --------
    Sound - Play NightElfBuildingDeathSmall1 <gen> at 80.00% volume, attached to Power Generator 0018 <gen>
    -------- Create Bridge --------
    Destructible - Create a dead DTs2 (destructablecode) at (Center of Force_Bridge_Create_01 <gen>) facing 0.00 with scale 1.00 and variation 0
    Destructible - Resurrect (Last created destructible) with (Max life of (Last created destructible)) life and Show birth animation
    Destructible - Kill Elevator Wall 0061 <gen>
    Destructible - Kill Elevator Wall 0063 <gen>
    Wait 1.00 seconds
    -------- Play Bridge Sound --------
    Sound - Play SpectralBridgeSound at 100% volume, located at (Position of Power Generator 0018 <gen>) with Z offset 0
    Wait 1.00 seconds
    Destructible - Open Rolling Stone Door 0025 <gen>
    Sound - Play RollingGateSound at 100% volume, located at (Position of Power Generator 0018 <gen>) with Z offset 0
    Destructible - Kill Pathing Blocker (Both) 0715 <gen>
    Destructible - Kill Pathing Blocker (Both) 0713 <gen>
    Destructible - Kill Pathing Blocker (Both) 0712 <gen>
    Destructible - Kill Pathing Blocker (Both) 0226 <gen>
    Destructible - Kill Pathing Blocker (Both) 0219 <gen>
    Destructible - Kill Pathing Blocker (Both) 0716 <gen>
    -------- Emergency Backup Ramp --------
    Destructible - Resurrect Stone Ramp 0039 <gen> with (Max life of (Last created destructible)) life and Show birth animation
    Sound - Play Earthquake <gen> at 100% volume, located at (Position of Power Generator 0018 <gen>) with Z offset 0
    Wait 6.00 seconds
    Sound - Stop Earthquake <gen> After fading
Elevators Init
  Events
    Time - Elapsed game time is 1.00 seconds
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Countdown Timer - Start EleTimer as a Repeating timer that will expire in 5.00 seconds
    -------- Close North and South Edges --------
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        Destructible - Close North wall of zElevatorsA[(Integer A)]
        Destructible - Close South wall of zElevatorsD[(Integer A)]
    -------- Left Edge Height --------
    Set VariableSet zNewHeightsA[0] = 2
    Set VariableSet zNewHeightsB[0] = 2
    Set VariableSet zNewHeightsC[0] = 2
    Set VariableSet zNewHeightsD[0] = 2
    -------- Right Edge Height --------
    Set VariableSet zNewHeightsA[7] = 2
    Set VariableSet zNewHeightsB[7] = 2
    Set VariableSet zNewHeightsC[7] = 2
    Set VariableSet zNewHeightsD[7] = 2
    -------- Top Edge --------
    Set VariableSet zHeightTop[1] = 1
    Set VariableSet zHeightTop[2] = 1
    Set VariableSet zHeightTop[3] = 2
    Set VariableSet zHeightTop[4] = 1
    Set VariableSet zHeightTop[5] = 3
    Set VariableSet zHeightTop[6] = 1
    -------- Bottom Edge --------
    Set VariableSet zHeightBottom[1] = 1
    Set VariableSet zHeightBottom[2] = 1
    Set VariableSet zHeightBottom[3] = 1
    Set VariableSet zHeightBottom[4] = 1
    Set VariableSet zHeightBottom[5] = 3
    Set VariableSet zHeightBottom[6] = 1
Elevators Update
  Events
    Time - EleTimer expires
  Conditions
  Actions
    -------- Update Elevator Heights --------
    Trigger - Run Elevators_Update_Heights <gen> (checking conditions)
    -------- Update Walls For Movement --------
    Trigger - Run Elevator_Walls_Begin_Vertical <gen> (checking conditions)
    Wait 0.10 seconds
    Trigger - Run Elevator_Walls_Begin_Horizontal <gen> (checking conditions)
    Trigger - Run Elevator_Sound <gen> (checking conditions)
    Wait 1.20 seconds
    -------- Update Walls For Waiting --------
    Trigger - Run Elevator_Walls_Finish_Vertical <gen> (checking conditions)
    Wait 0.10 seconds
    Trigger - Run Elevator_Walls_Finish_Horizontal <gen> (checking conditions)
Elevator Sound
  Events
  Conditions
    (VisibilityBigElevatorArea <gen> contains Arthas) Equal to True
  Actions
    Set VariableSet TempPoint = (Position of Arthas)
    Sound - Play ElevatorsSound at 100% volume, located at TempPoint with Z offset 0
    Custom script: call RemoveLocation( udg_TempPoint )
Ele AI help for units
  Events
    Time - Every 1.00 seconds of game time
  Conditions
    GameOver Equal to False
  Actions
    Unit Group - Pick every unit in ElevatorBaddies and do (Actions)
      Loop - Actions
        Set VariableSet TempPointA = (Position of (Picked unit))
        Set VariableSet TempPointB = (Position of Arthas)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Distance between TempPointA and TempPointB) Less than or equal to 500.00
          Then - Actions
            Unit - Order (Picked unit) to Attack.Arthas
          Else - Actions
        Custom script: call RemoveLocation( udg_TempPointA )
        Custom script: call RemoveLocation( udg_TempPointB )
Elevator Baddie Dies
  Events
    Unit - A unit owned by Player 2 (Blue).Dies
  Conditions
  Actions
    Unit Group - Remove (Dying unit) from ElevatorBaddies.
Elevator Secret off Lever
  Events
    Destructible - Lever 0676 <gen> dies
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Elevator_Secret_off_Lever_Q <gen> to the trigger queue (Checking conditions)
Elevator Secret off Lever Q
  Events
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet ElevatorDisarmed = True
    Destructible - Set height of Elevator 0679 <gen> to 2
    Destructible - Close East wall of Elevator 0679 <gen>
    Destructible - Open West wall of Elevator 0679 <gen>
    Destructible - Open North wall of Elevator 0679 <gen>
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        zNewHeightsA[1] Equal to 2
      Then - Actions
        Destructible - Open South wall of Elevator 0679 <gen>
      Else - Actions
        Destructible - Close South wall of Elevator 0679 <gen>
    Set VariableSet zHeightTop[1] = 2
    Quest - Display to (All players) the Quest Update message: |cffffcc00SECRET FOUND|rAccess granted.
    Wait 2 seconds
    Camera - Pan camera for AP04_Arthas to (Center of Hidden_Area_Pan <gen>) over 0 seconds
    Visibility - Create an initially Enabled visibility modifier for AP11_SharedPlayer emitting Visibility from (Center of Hidden_Area_Pan <gen>) to a radius of 512.00.
    Set VariableSet SecretElevatorVisibility = (Last created visibility modifier)
    Wait 5.00 seconds
    Visibility - Destroy SecretElevatorVisibility
    Trigger - Remove (This trigger) from the trigger queue
Elevators Update Heights
  Events
  Conditions
  Actions
    -------- Calc Old Heights --------
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        Set VariableSet zOldHeightsA[(Integer A)] = zNewHeightsA[(Integer A)]
        Set VariableSet zOldHeightsB[(Integer A)] = zNewHeightsB[(Integer A)]
        Set VariableSet zOldHeightsC[(Integer A)] = zNewHeightsC[(Integer A)]
        Set VariableSet zOldHeightsD[(Integer A)] = zNewHeightsD[(Integer A)]
    -------- Set New Heights --------
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        Destructible - Set height of zElevatorsA[(Integer A)] to (Random integer number between 1 and 3)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ElevatorDisarmed Equal to True
          Then - Actions
            Destructible - Set height of zElevatorsB[(Integer A)] to 2
          Else - Actions
            Destructible - Set height of zElevatorsB[(Integer A)] to (Random integer number between 1 and 3)
        Destructible - Set height of zElevatorsC[(Integer A)] to (Random integer number between 1 and 3)
        Destructible - Set height of zElevatorsD[(Integer A)] to (Random integer number between 1 and 3)
    -------- Calc New Heights --------
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        Set VariableSet zNewHeightsA[(Integer A)] = (Height of zElevatorsA[(Integer A)])
        Set VariableSet zNewHeightsB[(Integer A)] = (Height of zElevatorsB[(Integer A)])
        Set VariableSet zNewHeightsC[(Integer A)] = (Height of zElevatorsC[(Integer A)])
        Set VariableSet zNewHeightsD[(Integer A)] = (Height of zElevatorsD[(Integer A)])
    -------- Exceptions --------
    Set VariableSet zNewHeightsC[2] = 3
    Set VariableSet zNewHeightsD[5] = 3
Elevator Walls Begin Vertical
  Events
  Conditions
  Actions
    -------- Vertical Walls --------
    For each (Integer A) from 0 to 6, do (Actions)
      Loop - Actions
        -------- A --------
        Set VariableSet WhichElevatorA = zElevatorsA[(Integer A)]
        Set VariableSet WhichElevatorB = zElevatorsA[((Integer A) + 1)]
        Set VariableSet WhichNewDiff = (zNewHeightsA[(Integer A)] - zNewHeightsA[((Integer A) + 1)])
        Set VariableSet WhichOldDiff = (zOldHeightsA[(Integer A)] - zOldHeightsA[((Integer A) + 1)])
        Trigger - Run Elevator_Walls_Begin_Vertical_One <gen> (checking conditions)
        -------- B --------
        Set VariableSet WhichElevatorA = zElevatorsB[(Integer A)]
        Set VariableSet WhichElevatorB = zElevatorsB[((Integer A) + 1)]
        Set VariableSet WhichNewDiff = (zNewHeightsB[(Integer A)] - zNewHeightsB[((Integer A) + 1)])
        Set VariableSet WhichOldDiff = (zOldHeightsB[(Integer A)] - zOldHeightsB[((Integer A) + 1)])
        Trigger - Run Elevator_Walls_Begin_Vertical_One <gen> (checking conditions)
        -------- C --------
        Set VariableSet WhichElevatorA = zElevatorsC[(Integer A)]
        Set VariableSet WhichElevatorB = zElevatorsC[((Integer A) + 1)]
        Set VariableSet WhichNewDiff = (zNewHeightsC[(Integer A)] - zNewHeightsC[((Integer A) + 1)])
        Set VariableSet WhichOldDiff = (zOldHeightsC[(Integer A)] - zOldHeightsC[((Integer A) + 1)])
        Trigger - Run Elevator_Walls_Begin_Vertical_One <gen> (checking conditions)
        -------- D --------
        Set VariableSet WhichElevatorA = zElevatorsD[(Integer A)]
        Set VariableSet WhichElevatorB = zElevatorsD[((Integer A) + 1)]
        Set VariableSet WhichNewDiff = (zNewHeightsD[(Integer A)] - zNewHeightsD[((Integer A) + 1)])
        Set VariableSet WhichOldDiff = (zOldHeightsD[(Integer A)] - zOldHeightsD[((Integer A) + 1)])
        Trigger - Run Elevator_Walls_Begin_Vertical_One <gen> (checking conditions)
Elevator Walls Begin Vertical One
  Events
  Conditions
    Or - Any (Conditions) are true
      Conditions
        WhichElevatorA Not equal to No destructible
        WhichElevatorB Not equal to No destructible
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        WhichNewDiff Equal to 0
        WhichOldDiff Equal to 0
      Then - Actions
        -------- Open --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            WhichElevatorA Not equal to No destructible
          Then - Actions
            Destructible - Open East wall of WhichElevatorA
          Else - Actions
            Destructible - Open West wall of WhichElevatorB
      Else - Actions
        -------- Close --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            WhichElevatorA Not equal to No destructible
          Then - Actions
            Destructible - Close East wall of WhichElevatorA
          Else - Actions
            Destructible - Close West wall of WhichElevatorB
Elevator Walls Begin Horizontal
  Events
  Conditions
  Actions
    -------- Horizontal Walls --------
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        -------- Top / A --------
        Set VariableSet WhichElevatorA = No destructible
        Set VariableSet WhichElevatorB = zElevatorsA[(Integer A)]
        Set VariableSet WhichNewDiff = (zHeightTop[(Integer A)] - zNewHeightsA[(Integer A)])
        Set VariableSet WhichOldDiff = (zHeightTop[(Integer A)] - zOldHeightsA[(Integer A)])
        Trigger - Run Elevator_Walls_Begin_Horizontal_One <gen> (checking conditions)
        -------- A / B --------
        Set VariableSet WhichElevatorA = zElevatorsA[(Integer A)]
        Set VariableSet WhichElevatorB = zElevatorsB[(Integer A)]
        Set VariableSet WhichNewDiff = (zNewHeightsA[(Integer A)] - zNewHeightsB[(Integer A)])
        Set VariableSet WhichOldDiff = (zOldHeightsA[(Integer A)] - zOldHeightsB[(Integer A)])
        Trigger - Run Elevator_Walls_Begin_Horizontal_One <gen> (checking conditions)
        -------- B / C --------
        Set VariableSet WhichElevatorA = zElevatorsB[(Integer A)]
        Set VariableSet WhichElevatorB = zElevatorsC[(Integer A)]
        Set VariableSet WhichNewDiff = (zNewHeightsB[(Integer A)] - zNewHeightsC[(Integer A)])
        Set VariableSet WhichOldDiff = (zOldHeightsB[(Integer A)] - zOldHeightsC[(Integer A)])
        Trigger - Run Elevator_Walls_Begin_Horizontal_One <gen> (checking conditions)
        -------- C / D --------
        Set VariableSet WhichElevatorA = zElevatorsC[(Integer A)]
        Set VariableSet WhichElevatorB = zElevatorsD[(Integer A)]
        Set VariableSet WhichNewDiff = (zNewHeightsC[(Integer A)] - zNewHeightsD[(Integer A)])
        Set VariableSet WhichOldDiff = (zOldHeightsC[(Integer A)] - zOldHeightsD[(Integer A)])
        Trigger - Run Elevator_Walls_Begin_Horizontal_One <gen> (checking conditions)
        -------- D / Bottom --------
        Set VariableSet WhichElevatorA = zElevatorsD[(Integer A)]
        Set VariableSet WhichElevatorB = No destructible
        Set VariableSet WhichNewDiff = (zNewHeightsD[(Integer A)] - zHeightBottom[(Integer A)])
        Set VariableSet WhichOldDiff = (zOldHeightsD[(Integer A)] - zHeightBottom[(Integer A)])
        Trigger - Run Elevator_Walls_Begin_Horizontal_One <gen> (checking conditions)
Elevator Walls Begin Horizontal One
  Events
  Conditions
    Or - Any (Conditions) are true
      Conditions
        WhichElevatorA Not equal to No destructible
        WhichElevatorB Not equal to No destructible
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        WhichNewDiff Equal to 0
        WhichOldDiff Equal to 0
      Then - Actions
        -------- Open --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            WhichElevatorA Not equal to No destructible
          Then - Actions
            Destructible - Open South wall of WhichElevatorA
          Else - Actions
            Destructible - Open North wall of WhichElevatorB
      Else - Actions
        -------- Close --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            WhichElevatorA Not equal to No destructible
          Then - Actions
            Destructible - Close South wall of WhichElevatorA
          Else - Actions
            Destructible - Close North wall of WhichElevatorB
Elevator Walls Finish Vertical
  Events
  Conditions
  Actions
    For each (Integer A) from 0 to 6, do (Actions)
      Loop - Actions
        -------- A --------
        Set VariableSet WhichElevatorA = zElevatorsA[(Integer A)]
        Set VariableSet WhichElevatorB = zElevatorsA[((Integer A) + 1)]
        Set VariableSet WhichHeightA = zNewHeightsA[(Integer A)]
        Set VariableSet WhichHeightB = zNewHeightsA[((Integer A) + 1)]
        Trigger - Run Elevator_Walls_Finish_Vertical_One <gen> (checking conditions)
        -------- B --------
        Set VariableSet WhichElevatorA = zElevatorsB[(Integer A)]
        Set VariableSet WhichElevatorB = zElevatorsB[((Integer A) + 1)]
        Set VariableSet WhichHeightA = zNewHeightsB[(Integer A)]
        Set VariableSet WhichHeightB = zNewHeightsB[((Integer A) + 1)]
        Trigger - Run Elevator_Walls_Finish_Vertical_One <gen> (checking conditions)
        -------- C --------
        Set VariableSet WhichElevatorA = zElevatorsC[(Integer A)]
        Set VariableSet WhichElevatorB = zElevatorsC[((Integer A) + 1)]
        Set VariableSet WhichHeightA = zNewHeightsC[(Integer A)]
        Set VariableSet WhichHeightB = zNewHeightsC[((Integer A) + 1)]
        Trigger - Run Elevator_Walls_Finish_Vertical_One <gen> (checking conditions)
        -------- D --------
        Set VariableSet WhichElevatorA = zElevatorsD[(Integer A)]
        Set VariableSet WhichElevatorB = zElevatorsD[((Integer A) + 1)]
        Set VariableSet WhichHeightA = zNewHeightsD[(Integer A)]
        Set VariableSet WhichHeightB = zNewHeightsD[((Integer A) + 1)]
        Trigger - Run Elevator_Walls_Finish_Vertical_One <gen> (checking conditions)
Elevator Walls Finish Vertical One
  Events
  Conditions
    Or - Any (Conditions) are true
      Conditions
        WhichElevatorA Not equal to No destructible
        WhichElevatorB Not equal to No destructible
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        WhichHeightA Equal to WhichHeightB
      Then - Actions
        -------- Open --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            WhichElevatorA Not equal to No destructible
          Then - Actions
            Destructible - Open East wall of WhichElevatorA
          Else - Actions
            Destructible - Open West wall of WhichElevatorB
      Else - Actions
        -------- Close --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            WhichElevatorA Not equal to No destructible
          Then - Actions
            Destructible - Close East wall of WhichElevatorA
          Else - Actions
            Destructible - Close West wall of WhichElevatorB
Elevator Walls Finish Horizontal
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        -------- Top / A --------
        Set VariableSet WhichElevatorA = No destructible
        Set VariableSet WhichElevatorB = zElevatorsA[(Integer A)]
        Set VariableSet WhichHeightA = zHeightTop[(Integer A)]
        Set VariableSet WhichHeightB = zNewHeightsA[(Integer A)]
        Trigger - Run Elevator_Walls_Finish_Horizontal_One <gen> (checking conditions)
        -------- A / B --------
        Set VariableSet WhichElevatorA = zElevatorsA[(Integer A)]
        Set VariableSet WhichElevatorB = zElevatorsB[(Integer A)]
        Set VariableSet WhichHeightA = zNewHeightsA[(Integer A)]
        Set VariableSet WhichHeightB = zNewHeightsB[(Integer A)]
        Trigger - Run Elevator_Walls_Finish_Horizontal_One <gen> (checking conditions)
        -------- B / C --------
        Set VariableSet WhichElevatorA = zElevatorsB[(Integer A)]
        Set VariableSet WhichElevatorB = zElevatorsC[(Integer A)]
        Set VariableSet WhichHeightA = zNewHeightsB[(Integer A)]
        Set VariableSet WhichHeightB = zNewHeightsC[(Integer A)]
        Trigger - Run Elevator_Walls_Finish_Horizontal_One <gen> (checking conditions)
        -------- C / D --------
        Set VariableSet WhichElevatorA = zElevatorsC[(Integer A)]
        Set VariableSet WhichElevatorB = zElevatorsD[(Integer A)]
        Set VariableSet WhichHeightA = zNewHeightsC[(Integer A)]
        Set VariableSet WhichHeightB = zNewHeightsD[(Integer A)]
        Trigger - Run Elevator_Walls_Finish_Horizontal_One <gen> (checking conditions)
        -------- D / Bottom --------
        Set VariableSet WhichElevatorA = zElevatorsD[(Integer A)]
        Set VariableSet WhichElevatorB = No destructible
        Set VariableSet WhichHeightA = zNewHeightsD[(Integer A)]
        Set VariableSet WhichHeightB = zHeightBottom[(Integer A)]
        Trigger - Run Elevator_Walls_Finish_Horizontal_One <gen> (checking conditions)
Elevator Walls Finish Horizontal One
  Events
  Conditions
    Or - Any (Conditions) are true
      Conditions
        WhichElevatorA Not equal to No destructible
        WhichElevatorB Not equal to No destructible
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        WhichHeightA Equal to WhichHeightB
      Then - Actions
        -------- Open --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            WhichElevatorA Not equal to No destructible
          Then - Actions
            Destructible - Open South wall of WhichElevatorA
          Else - Actions
            Destructible - Open North wall of WhichElevatorB
      Else - Actions
        -------- Close --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            WhichElevatorA Not equal to No destructible
          Then - Actions
            Destructible - Close South wall of WhichElevatorA
          Else - Actions
            Destructible - Close North wall of WhichElevatorB
Cripple 01
  Events
    Unit - A unit enters Cripple_Area_01 <gen>
  Conditions
    (Entering unit) Equal to Arthas
  Actions
    Trigger - Turn off (This trigger)
    AI - Ignore Unbroken Rager 0036 <gen>'s guard position
    Unit - Order Unbroken Rager 0036 <gen> to Undead Necromancer - Cripple.Arthas
    Unit Group - Add Unbroken Rager 0036 <gen> to ElevatorBaddies
Cripple 02
  Events
    Unit - A unit enters Cripple_Area_02 <gen>
  Conditions
    (Entering unit) Equal to Arthas
  Actions
    Trigger - Turn off (This trigger)
    AI - Ignore Unbroken Rager 0015 <gen>'s guard position
    Unit - Order Unbroken Rager 0015 <gen> to Undead Necromancer - Cripple.Arthas
    Unit Group - Add Unbroken Rager 0015 <gen> to ElevatorBaddies
Two Plate Setup
  Events
    Time - Elapsed game time is 1.00 seconds
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Destructible - Close South wall of Elevator 0243 <gen>
    Destructible - Set height of Elevator 0243 <gen> to 2
Plate 01 Unit Enters
  Events
    Unit - A unit enters Plate_01_Orb <gen>
  Conditions
    TwoPlateSolved Equal to False
  Actions
    Wait 0.05 seconds
    Trigger - Run Plate_01_Pushed <gen> (checking conditions)
    Trigger - Run Two_Plate_Solution_Check <gen> (checking conditions)
Plate 01 Unit Leaves
  Events
    Unit - A unit leaves Plate_01_Orb <gen>
  Conditions
    TwoPlateSolved Equal to False
  Actions
    Wait 0.05 seconds
    Trigger - Run Plate_01_Released <gen> (checking conditions)
    Trigger - Run Two_Plate_Solution_Check <gen> (checking conditions)
Plate 02 Unit Enters
  Events
    Unit - A unit enters Plate_02_Orb <gen>
  Conditions
    TwoPlateSolved Equal to False
  Actions
    Wait 0.05 seconds
    Trigger - Run Plate_02_Pushed <gen> (checking conditions)
    Trigger - Run Two_Plate_Solution_Check <gen> (checking conditions)
Plate 02 Unit Leaves
  Events
    Unit - A unit leaves Plate_02_Orb <gen>
  Conditions
    TwoPlateSolved Equal to False
  Actions
    Wait 0.05 seconds
    Trigger - Run Plate_02_Released <gen> (checking conditions)
    Trigger - Run Two_Plate_Solution_Check <gen> (checking conditions)
Two Plate Check
  Events
    Time - Every 0.50 seconds of game time
  Conditions
    TwoPlateSolved Equal to False
  Actions
    Trigger - Run Plate_01_Pushed <gen> (checking conditions)
    Trigger - Run Plate_01_Released <gen> (checking conditions)
    Trigger - Run Plate_02_Pushed <gen> (checking conditions)
    Trigger - Run Plate_02_Released <gen> (checking conditions)
    Trigger - Run Two_Plate_Solution_Check <gen> (checking conditions)
Plate 01 Pushed
  Events
  Conditions
    TwoPlateSolved Equal to False
    TwoPlate01Down Equal to False
  Actions
    Set VariableSet TempUnitGroup = (Units in Plate_01_Orb <gen>)
    Set VariableSet TempInteger = (Number of units in TempUnitGroup)
    Custom script: call DestroyGroup( udg_TempUnitGroup )
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Or - Any (Conditions) are true
          Conditions
            TempInteger Greater than or equal to 1
            (Random item in Plate_01_Orb <gen>) Not equal to No item
      Then - Actions
        Set VariableSet TwoPlate01Down = True
        -------- Activate Plate --------
        Destructible - Kill Foot Switch 0005 <gen>
        Set VariableSet TempPoint = (Position of Foot Switch 0005 <gen>)
        Sound - Play SoundPlates at 100% volume, located at TempPoint with Z offset 0
        Custom script: call RemoveLocation( udg_TempPoint )
      Else - Actions
Plate 01 Released
  Events
  Conditions
    TwoPlateSolved Equal to False
    TwoPlate01Down Equal to True
  Actions
    Set VariableSet TempUnitGroup = (Units in Plate_01_Orb <gen>)
    Set VariableSet TempInteger = (Number of units in TempUnitGroup)
    Custom script: call DestroyGroup( udg_TempUnitGroup )
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TempInteger Equal to 0
        (Random item in Plate_01_Orb <gen>) Equal to No item
      Then - Actions
        Set VariableSet TwoPlate01Down = False
        -------- Activate Plate --------
        Destructible - Resurrect Foot Switch 0005 <gen> with (Max life of (Last created destructible)) life and Show birth animation
        Set VariableSet TempPoint = (Position of Foot Switch 0005 <gen>)
        Sound - Play SoundPlates at 100% volume, located at TempPoint with Z offset 0
        Custom script: call RemoveLocation( udg_TempPoint )
      Else - Actions
Plate 02 Pushed
  Events
  Conditions
    TwoPlateSolved Equal to False
    TwoPlate02Down Equal to False
  Actions
    Set VariableSet TempUnitGroup = (Units in Plate_02_Orb <gen>)