1. Are you planning to upload your awesome map to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. The Lich King demands your service! We've reached the 19th edition of the Icon Contest. Come along and make some chilling servants for the one true king.
    Dismiss Notice
  5. The 4th SFX Contest has started. Be sure to participate and have a fun factor in it.
    Dismiss Notice
  6. The poll for the 21st Terraining Contest is LIVE. Be sure to check out the entries and vote for one.
    Dismiss Notice
  7. The results are out! Check them out.
    Dismiss Notice
  8. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  9. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  10. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Trigger Viewer

2P Human09 v2.5.w3x
Variables
Initialization
StartInitializationSequence
Initialize Variables
Initial Resources
Initial Weather
Initial Alliances
Initial ValleyPrep
Initial IntroWavePrep
Initial ValleyGroup
Initial Quests
Initial AI
Initial Music
Hard
Setup Scorescreen
Heroes
Initial Heroes
Arthas Level Cap
Evil Arthas Level Cap
Captain Level Cap
Muradin Level Cap
Hints
Gryphon
GryphonMessage
AI Resourcing
PurpleGold
PurpleLumber
Teal Gold
Teal Lumber
GreenGold
GreenLumber
MalGanisInvulnerability
GiveAnkh
DestroyMalganisItems
ItemFailsafe
ItemFailsafeDetect
ItemFailsafeReplace
IntroCinematic
TriggerIntroCinematic
IntroEnvironment
IntroCinematicMode
IntroActorSetup
IntroKnightARespond
IntroKnightBRespond
IntroInitialCamera
IntroMuradinAsksArthas
IntroUndeadApproach
IntroBaseReorients
IntroArthasDecides
IntroArthasTalksToCaptain
IntroEscortFollowsArthas
IntroArthasReachesWaygate
IntroMuradinReachesWaygate
IntroLastDwarfReachesWaygate
IntroCinematicEnd
IntroCinematicEscape
InitialAttack
InitialAttackTimerExpires
ValleyEncounters
FirstWolves
WolfSpotted
WolfTurnsAround
WolvesAttack
TriggerGraveyardAttack
SpawnGhosts
LoopGhostTransparency
SpawnSkeletal Archers
GuardianEncounter
GuardianDies
FrostmourneCinematic
TriggerFrostmourneCinematic
FrostmourneCinematicSetup
FrostmourneActorSetup
FrostmourneApproach
FrostmourneMuradinHit
FrostmourneCinematicEnd
FrostmourneEndCaptainFailsafe
FrostmourneArthasTeleports
Arthas Channel
FrostmourneCinematicEscapeGood
FrostmourneCinematicEscapeEvil
ExitCinematic
TriggerExitCinematic
ExitCinematicSetup
ExitCinematicActorSetup
ExitCinematicArthasMalganisTalk
ExitArthasRuns
ExitCinematicEnd
ExitCinematicEscape
Defeat
Hero Dies
All Buildings Destroyed
Victory
Green Base Dead
Extra Triggers
Setup Insane
Guardian Spell
Malganis Spell
Extra Expansions Clear
Computer Upkeep
Player Limits
Item Drop Bonuses
Timer Trigger
Skip Cinematic
Leaves Game
Custom Variables
Command Remove
Artillery Strike
Artillery Strike 2
Shield Bash
Command
Gametext
Init Gametext
Startgame New
Startgame Load
Endgame Text
Endgame Text 1
Endgame Text 2
Endgame Text 3
Startgame Text 3
Startgame Text
Turn Page
Startgame Text 2
Systems
Research Init
Research Begins
Research Cancelled
Research Complete
Requirement Init
Requirement Update
ResourceDrop Order
ResourceDrop Destroy
ResourceDrop Build
ResourceDrop Starters
ResourceDrop Init
Send Lumber
Send Gold
Exchange Unit
Death Select
Deselect Unit
Select Unit
pastey trigger
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_Color takes string s returns string
    local integer i = StringLength(s)
    local string c
    local string r = ""

    loop
        set i = i - 1
        set c = SubString(s,i,i + 1)
        if c == "0" or c == "1" or c == "2" or c == "3" or c == "4" or c == "5" or c == "6" or c == "7" or c == "8" or c == "9" then
            set r = "|cffff9999" + c + "|r" + r
        elseif c == "-" then
            set r = "|cffdddddd-|r" + r
        elseif c == "a" or c == "b" or c == "c" or c == "d" or c == "e" or c == "f" or c == "g" or c == "h" or c == "i" or c == "j" or c == "k" or c == "l" or c == "m" or c == "n" or c == "o" or c == "p" or c == "q" or c == "r" or c == "s" or c == "t" or c == "u" or c == "v" or c == "w" or c == "x" or c == "y" or c == "z" then
            set r = "|cff99ff99" + c + "|r" + r
        elseif c == "A" or c == "B" or c == "C" or c == "D" or c == "E" or c == "F" or c == "G" or c == "H" or c == "I" or c == "J" or c == "K" or c == "L" or c == "M" or c == "N" or c == "O" or c == "P" or c == "Q" or c == "R" or c == "S" or c == "T" or c == "U" or c == "V" or c == "W" or c == "X" or c == "Y" or c == "Z" then
            set r = "|cff9999ff" + c + "|r" + r
        else
            set r = c + r
        endif
        exitwhen i <= 0
    endloop
    return r
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_Color(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
        return true
    endif
    return false
endfunction
Name Type Is Array Initial Value
AllLevels boolean No
AmuletsOfRecall integer No 0
Arthas unit No
ArthasDefeatActive boolean No
ArthasIsEvil boolean No
BaseCleared boolean Yes
Blizzard weathereffect No
BonusesFound integer No
BonusesTotal integer No
BuildingDefeatActive boolean No
CampaignScore integer No
Captain unit No
Cinematic boolean No true
Code string No
Code2 string No
DiasVisA1 fogmodifier No
DiasVisA2 fogmodifier No
EffectArthasAfterFM effect No
EffectArthasIntro effect No
EffectKnight1Intro effect No
EffectKnight2Intro effect No
EffectMuradinIntro effect No
EffectRiflemanIntro1 effect No
EffectRiflemanIntro2 effect No
EffectRiflemanIntro3 effect No
Endgame boolean No
EnoughPlayers boolean No
EvilArthas unit No
ExchangeFail1 boolean No
ExchangeFail2 boolean No
ExchangeFail3 boolean No
ExchangeSelection1 group No
ExchangeSelection2 group No
ExchangeSuccess boolean No
Exchanging1 boolean No
Exchanging2 boolean No
ExitCinematicEscape boolean No
ExitCinematicRunning boolean No
Extra integer No
ExtraTotal integer No
FinalInventory string Yes
FinalRank string No
FrostmourneCinematicEscape boolean No
FrostmourneCinematicRunning boolean No
GAMEOVER boolean No
GameOver boolean No false
GameSelection boolean No true
GhostA unit No
GhostB unit No
GhostMaterialize real No 100.00
GradeComment string No
GreenDefeated boolean No false
Guardian unit No
GuardianArcherA unit No
GuardianArcherB unit No
GuardianLackeyA unit No
GuardianLackeyB unit No
GuardianVisibility1 fogmodifier No
GuardianVisibility2 fogmodifier No
HeroDefeatPossible boolean No true
HintGryphonTimer timer No
INSANEMODE boolean No
IntroCancelView1 fogmodifier No
IntroCancelView2 fogmodifier No
IntroCinematicEscape boolean No false
IntroCinematicRunning boolean No false
IntroMalganis unit No
IntroNortheastGroup group No
IntroNorthGroup group No
ItemMuradin01 item No
ItemMuradin02 item No
ItemMuradin03 item No
ItemMuradin04 item No
ItemMuradin05 item No
ItemMuradin06 item No
LevelOfAbility integer Yes
Malganis unit No
MalganisConversions real No
MissionNumber integer No
Muradin unit No
NewVote1 boolean No
NewVote2 boolean No
OverallGrade string No
OverallGradeInt integer No
Page integer No 1
PlayerMalganis player No Player06
PlayerUndeadProtector player No Player03
PointGuardianPosition location No
PurpleDefeated boolean No false
QuestFrostmourne quest No
QuestMalganis quest No
QuestReqArthasDie questitem No
QuestReqFrostmourne questitem No
QuestReqMalganis questitem No
QuestReqMuradinDie questitem No
RankInteger integer No
RealGuardianFacing real No
Requirement_Region rect No
RequirementTech boolean Yes
RequirementUnitP1 unit Yes
RequirementUnitP2 unit Yes
RequirementUnitType unitcode Yes
ResearchEnabledT2 boolean Yes
ResearchEnabledT3 boolean Yes
ResearchStringT1 string Yes
ResearchStringT2 string Yes
ResearchStringT3 string Yes
ResearchType techcode Yes
ResourceDropBuildings group No
ResourceDropHashtable hashtable 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_TotalGrades integer Yes
SaveLoad_TotalTime integer No
SaveLoad_Uncompress integer Yes
SaveLoad_UsePlayername boolean No
ScoreBonuses integer No
ScoreExtra integer No
ScoreLimit integer Yes
ScoreMax integer No
ScoreSubquests integer No
ScoreTime integer No
ScrollsOfTownPortal integer No 0
SelectionGroup1 group No
SelectionGroup2 group No
Skeleton01 unit No
Skeleton02 unit No
Skeleton03 unit No
Skeleton04 unit No
Skeleton05 unit No
Skeleton06 unit No
SkillDevotionAura integer No 0
SkillDivineShield integer No 0
SkillHolyLight integer No 0
SkillResurrection integer No 0
SkipVote1 boolean No
SkipVote2 boolean No
SubquestsComplete integer No
SubquestsTotal integer No
SumRank integer No
temp_unit unit No
TempBoolean boolean No
TempInteger integer No
TempItem item No
TempItemType itemcode No
TempPGroup force No
TempPGroup2 force No
TempPlayer player No
TempPoint location No
TempPoint2 location No
TempUGroup group No
TempUnit unit No
TempUnitType unitcode No
TimeHours integer No
TimeMax real No
TimeMin real No
TimeMins integer No
TimeRange real No
TimerInitialAttack timer No
TimeSeconds integer No
TimeSecondsTotal integer No
TimeTakenString string No
TimmyFound string No No
TotalTimeTakenString string No
UnitGroup group No
UnitGroupSelection group No
Validate boolean No
ValleyGroup group No
ValleyVisA1 fogmodifier No
ValleyVisA2 fogmodifier No
ValleyVisB1 fogmodifier No
ValleyVisB2 fogmodifier No
ValleyVisC1 fogmodifier No
ValleyVisC2 fogmodifier No
VisibilityAltar fogmodifier No
WeatherSnow weathereffect No
x real No
y real No
StartInitializationSequence
  Events
  Conditions
  Actions
    Unit - Change ownership of Paladin 0179 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Mountain King 0184 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Captain 0187 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Castle 0004 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Barracks 0018 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Gryphon Aviary 0175 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Lumber Mill 0021 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Altar of Kings 0163 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Arcane Sanctum 0119 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Castle 0121 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Barracks 0019 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Gryphon Aviary 0022 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Altar of Kings 0024 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Workshop 0023 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Blacksmith 0174 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Guard Tower 0010 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Guard Tower 0009 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Guard Tower 0007 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Guard Tower 0017 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Guard Tower 0014 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Guard Tower 0008 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Guard Tower 0006 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Guard Tower 0005 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Guard Tower 0015 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Farm 0033 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Farm 0028 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Farm 0034 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Farm 0026 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Farm 0035 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Farm 0036 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Farm 0025 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Farm 0027 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Farm 0037 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Farm 0032 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Farm 0039 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Farm 0031 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Farm 0040 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Farm 0038 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Farm 0029 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Farm 0030 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Farm 0041 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Farm 0042 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Peasant 0137 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Peasant 0134 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Peasant 0136 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Peasant 0138 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Peasant 0172 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Peasant 0165 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Peasant 0171 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Peasant 0173 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Knight 0110 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Knight 0111 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Knight 0125 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Knight 0251 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Knight 0250 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Priest 0112 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Priest 0130 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Sorceress 0128 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Priest 0129 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Priest 0129 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Gryphon Rider 0133 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Flying Machine 0132 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Rifleman 0117 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Rifleman 0210 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Rifleman 0115 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Rifleman 0211 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Rifleman 0252 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Rifleman 0253 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Rifleman 0254 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Footman 0124 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Footman 0123 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Footman 0126 <gen> to Player 9 (Gray) and Change color
    Trigger - Run Initialize_Variables <gen> (ignoring conditions)
    Trigger - Run Initial_Resources <gen> (ignoring conditions)
    Trigger - Run Initial_Weather <gen> (ignoring conditions)
    Trigger - Run Initial_Alliances <gen> (ignoring conditions)
    Trigger - Run Initial_Heroes <gen> (ignoring conditions)
    Trigger - Run Initial_ValleyPrep <gen> (ignoring conditions)
    Trigger - Run Initial_IntroWavePrep <gen> (ignoring conditions)
    Trigger - Run Initial_Quests <gen> (ignoring conditions)
    Trigger - Run Initial_Music <gen> (ignoring conditions)
    Trigger - Run Setup_Scorescreen <gen> (ignoring conditions)
    Trigger - Run TriggerIntroCinematic <gen> (ignoring conditions)
    Trigger - Run Hard <gen> (ignoring conditions)
    Trigger - Run ResourceDrop_Starters <gen> (checking conditions)
    Wait 1.00 seconds
    Trigger - Run Initial_AI <gen> (ignoring conditions)
Initialize Variables
  Events
  Conditions
  Actions
    Set Malganis = Dreadlord 0177 <gen>
    Set Captain = Captain 0187 <gen>
    Set Guardian = The Guardian 0011 <gen>
    Set GuardianLackeyA = Frost Revenant 0116 <gen>
    Set GuardianLackeyB = Frost Revenant 0118 <gen>
    Set GuardianArcherA = Skeletal Marksman 0135 <gen>
    Set GuardianArcherB = Skeletal Marksman 0147 <gen>
    Trigger - Turn on GiveAnkh <gen>
Initial Resources
  Events
  Conditions
  Actions
    Player - Set Player 2 (Blue) Current gold to 500
    Player - Set Player 2 (Blue) Total gold gathered to 500
    Player - Set Player 2 (Blue) Current lumber to 250
    Player - Set Player 2 (Blue) Total lumber gathered to 250
    Player - Set Player 9 (Gray) Current gold to 500
    Player - Set Player 9 (Gray) Total gold gathered to 500
    Player - Set Player 9 (Gray) Current lumber to 250
    Player - Set Player 9 (Gray) Total lumber gathered to 250
    Player - Set PlayerUndeadProtector Current gold to 1000
    Player - Set PlayerUndeadProtector Total gold gathered to 1000
    Player - Set PlayerUndeadProtector Current lumber to 1000
    Player - Set PlayerUndeadProtector Total lumber gathered to 1000
    Player - Set PlayerMalganis Current gold to 1000
    Player - Set PlayerMalganis Total gold gathered to 1000
    Player - Set PlayerMalganis Current lumber to 1000
    Player - Set PlayerMalganis Total lumber gathered to 1000
Initial Weather
  Events
  Conditions
  Actions
    Environment - Create at (Entire map) the weather effect Northrend Snow (Heavy)
    Set WeatherSnow = (Last created weather effect)
    Environment - Turn WeatherSnow On
    Environment - Set fog to style 0 (fogstyle), z-start 600.00, z-end 3500.00, density 0.00 and color (100%, 100%, 100%)
    Game - Set the time of day to 20.00
Initial Alliances
  Events
  Conditions
  Actions
    Player - For Player 2 (Blue), turn Shared vision On toward Player 9 (Gray)
    Player - For Player 9 (Gray), turn Shared vision On toward Player 2 (Blue)
    Player - Change color of Player 1 (Red) to Purple, Changing color of existing units
    Player - Change color of Player 3 (Teal) to Green, Changing color of existing units
    Player - Change color of Player 5 (Yellow) to Green, Changing color of existing units
    Player - Change color of Player 12 (Brown) to Gray, Changing color of existing units
    Player - Make PlayerUndeadProtector treat PlayerMalganis as an Ally with shared vision
    Player - Make PlayerMalganis treat PlayerUndeadProtector as an Ally with shared vision
    Player - Make Player 3 (Teal) treat PlayerMalganis as an Ally with shared vision
    Player - Make Player 3 (Teal) treat PlayerUndeadProtector as an Ally with shared vision
    Player - Make PlayerMalganis treat Player 3 (Teal) as an Ally with shared vision
    Player - Make PlayerUndeadProtector treat Player 3 (Teal) as an Ally with shared vision
    Player - For Player 5 (Yellow), turn Alliance (non-aggression) On toward Player 2 (Blue)
    Player - For Player 5 (Yellow), turn Alliance (non-aggression) On toward Player 9 (Gray)
    Player - For Player 3 (Teal), turn Alliance (non-aggression) On toward Neutral Hostile
    Player - For Player 5 (Yellow), turn Alliance (non-aggression) On toward Neutral Hostile
    Player - For Player 4 (Purple), turn Alliance (non-aggression) On toward Neutral Hostile
    Player - For Player 7 (Green), turn Alliance (non-aggression) On toward Neutral Hostile
    Player - For Neutral Hostile, turn Alliance (non-aggression) On toward Player 3 (Teal)
    Player - For Neutral Hostile, turn Alliance (non-aggression) On toward Player 4 (Purple)
    Player - For Neutral Hostile, turn Alliance (non-aggression) On toward Player 5 (Yellow)
    Player - For Neutral Hostile, turn Alliance (non-aggression) On toward Player 7 (Green)
Initial ValleyPrep
  Events
  Conditions
  Actions
    Unit Group - Pick every unit in (Units owned by Neutral Hostile) and do (Make (Picked unit) Remain awake when unprovoked at night)
    Unit - Make Guardian Invulnerable
    Unit - Make GuardianLackeyA Invulnerable
    Unit - Make GuardianLackeyB Invulnerable
    Unit - Make GuardianArcherA Invulnerable
    Unit - Make GuardianArcherB Invulnerable
    Unit - Pause Guardian
    Unit - Pause GuardianLackeyA
    Unit - Pause GuardianLackeyB
    Unit - Pause GuardianArcherA
    Unit - Pause GuardianArcherB
    Visibility - Create an initially Disabled visibility modifier for Player 2 (Blue) emitting Black mask across FrostmourneValleyVisibilityA <gen>
    Set ValleyVisA1 = (Last created visibility modifier)
    Visibility - Create an initially Disabled visibility modifier for Player 2 (Blue) emitting Black mask across FrostmourneValleyVisibilityB <gen>
    Set ValleyVisB1 = (Last created visibility modifier)
    Visibility - Create an initially Disabled visibility modifier for Player 2 (Blue) emitting Black mask across FrostmourneValleyVisibilityC <gen>
    Set ValleyVisC1 = (Last created visibility modifier)
    Visibility - Create an initially Disabled visibility modifier for Player 9 (Gray) emitting Black mask across FrostmourneValleyVisibilityA <gen>
    Set ValleyVisA2 = (Last created visibility modifier)
    Visibility - Create an initially Disabled visibility modifier for Player 9 (Gray) emitting Black mask across FrostmourneValleyVisibilityB <gen>
    Set ValleyVisB2 = (Last created visibility modifier)
    Visibility - Create an initially Disabled visibility modifier for Player 9 (Gray) emitting Black mask across FrostmourneValleyVisibilityC <gen>
    Set ValleyVisC2 = (Last created visibility modifier)
Initial IntroWavePrep
  Events
  Conditions
  Actions
    Unit Group - Pick every unit in (Units in IntroNorthUndeadWave <gen>) and do (Add (Picked unit) to IntroNorthGroup)
    Unit Group - Pick every unit in (Units in IntroNortheastUndeadWave <gen>) and do (Add (Picked unit) to IntroNortheastGroup)
    Unit Group - Pick every unit in IntroNorthGroup and do (Hide (Picked unit))
    Unit Group - Pick every unit in IntroNortheastGroup and do (Hide (Picked unit))
Initial ValleyGroup
  Events
    Time - Elapsed game time is 1.00 seconds
  Conditions
  Actions
    Unit Group - Add Arthas to ValleyGroup
    Unit Group - Add Muradin to ValleyGroup
    Unit Group - Add Knight 0251 <gen> to ValleyGroup
    Unit Group - Add Knight 0250 <gen> to ValleyGroup
    Unit Group - Add Rifleman 0252 <gen> to ValleyGroup
    Unit Group - Add Rifleman 0253 <gen> to ValleyGroup
    Unit Group - Add Rifleman 0254 <gen> to ValleyGroup
Initial Quests
  Events
  Conditions
  Actions
    Quest - Create a Required quest titled Frostmourne with the description The only way to counter Mal'Ganis' power is to find the mysterious runeblade known as Frostmourne and bend its powers to your will. Though the cost may be high, only Frostmourne's power will ensure that justice is done., using icon path ReplaceableTextures\CommandButtons\BTNFrostMourne.tga
    Set QuestFrostmourne = (Last created quest)
    Quest - Create a quest requirement for QuestFrostmourne with the description Locate Frostmourne
    Set QuestReqFrostmourne = (Last created quest requirement)
    Quest - Create a quest requirement for QuestFrostmourne with the description Arthas must survive
    Set QuestReqArthasDie = (Last created quest requirement)
    Quest - Create a quest requirement for QuestFrostmourne with the description Muradin must survive
    Set QuestReqMuradinDie = (Last created quest requirement)
    Quest - Create a Required, undiscovered quest titled Mal'Ganis with the description Mal'Ganis engineered the Scourge and set the Undead loose throughout Lordaeron. He forced you to slay your countrymen and lead your troops into certain doom. Now, you must make him pay for every life he's brought to ruin., using icon path ReplaceableTextures\CommandButtons\BTNHeroDreadLord.tga
    Set QuestMalganis = (Last created quest)
    Quest - Create a quest requirement for QuestMalganis with the description Destroy Mal'Ganis' Base
    Set QuestReqMalganis = (Last created quest requirement)
Initial AI
  Events
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        AI - Start campaign AI script for Player 3 (Teal): war3mapImported\H9 Insane Teal.ai (aiscript)
        AI - Start campaign AI script for Player 4 (Purple): war3mapImported\H9 Insane Ppl.ai (aiscript)
        AI - Start campaign AI script for Player 7 (Green): war3mapImported\H9 Insane Grn.ai (aiscript)
      Else - Actions
        AI - Start campaign AI script for Player 3 (Teal): h09_teal.ai (aiscript)
        AI - Start campaign AI script for Player 4 (Purple): h09_purple.ai (aiscript)
        AI - Start campaign AI script for PlayerMalganis: h09_green.ai (aiscript)
Initial Music
  Events
  Conditions
  Actions
    Sound - Clear the music list
    Wait 0.01 seconds
    Sound - Play Dark Agents
    Sound - Set the music list to Music, starting with song 2
Hard
  Events
  Conditions
  Actions
    -------- VALLEY --------
    Unit - Replace Elder Wendigo 0107 <gen> with a Ancient Wendigo using The new unit's max life and mana
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to False
      Then - Actions
        -------- MAL'GANIS --------
        Hero - Enable experience gain for Malganis
        Hero - Set Malganis Hero-level to 10, Hide level-up graphics
        Hero - Learn skill for Malganis: Undead Dreadlord - Carrion Swarm
        Hero - Disable experience gain for Malganis
        -------- GUARDIAN --------
        Unit - Replace Guardian with a The Guardian Hard using The new unit's max life and mana
        Set Guardian = (Last replaced unit)
      Else - Actions
    Unit Group - Pick every unit in (Units owned by Neutral Hostile) and do (Make (Picked unit) Remain awake when unprovoked at night)
    Unit - Make Guardian Invulnerable
    Unit - Pause Guardian
Setup Scorescreen
  Events
  Conditions
  Actions
    Player - Hide Player 3 (Teal) in the post-game score screen
    Player - Hide Player 5 (Yellow) in the post-game score screen
    Player - Hide Player 12 (Brown) in the post-game score screen
Initial Heroes
  Events
  Conditions
  Actions
    Hero - Set Malganis Hero-level to 9, Hide level-up graphics
    Hero - Learn skill for Malganis: Undead Dreadlord - Carrion Swarm
    Hero - Learn skill for Malganis: Undead Dreadlord - Carrion Swarm
    Hero - Learn skill for Malganis: Undead Dreadlord - Sleep
    Hero - Learn skill for Malganis: Undead Dreadlord - Sleep
    Hero - Learn skill for Malganis: Undead Dreadlord - Sleep
    Hero - Create Ankh of Reincarnation and give it to Malganis
    Hero - Create Ankh of Reincarnation and give it to Malganis
    Hero - Create Ankh of Reincarnation and give it to Malganis
    Hero - Create Ring of Regeneration and give it to Malganis
    Hero - Create Ring of Regeneration and give it to Malganis
    Hero - Create Ring of Regeneration and give it to Malganis
    Hero - Disable experience gain for Malganis
Arthas Level Cap
  Events
    Unit - A unit Gains a level
  Conditions
    (Triggering unit) Equal to Arthas
    (Level of Arthas) Equal to 10
  Actions
    Hero - Disable experience gain for Arthas
Evil Arthas Level Cap
  Events
    Unit - A unit Gains a level
  Conditions
    (Triggering unit) Equal to EvilArthas
    (Level of EvilArthas) Greater than or equal to 10
  Actions
    Hero - Disable experience gain for EvilArthas
Captain Level Cap
  Events
    Unit - A unit Gains a level
  Conditions
    (Triggering unit) Equal to Captain
    (Level of Captain) Equal to 10
  Actions
    Hero - Disable experience gain for Captain
Muradin Level Cap
  Events
    Unit - A unit Gains a level
  Conditions
    (Triggering unit) Equal to Muradin
    (Level of Muradin) Equal to 10
  Actions
    Hero - Disable experience gain for Muradin
Gryphon
  Events
    Time - HintGryphonTimer expires
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add GryphonMessage <gen> to the trigger queue (Checking conditions)
GryphonMessage
  Events
  Conditions
    GameOver Equal to False
  Actions
    Quest - Display to (All players) the Simple Hint message: |cff87CEEBNEW UNIT AVAILABLE|r Gryphon Rider - You may now build Gryphon Riders from the Gryphon Aviary. They are powerful flying creatures, mounted by Dwarven hammer-throwers.
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
PurpleGold
  Events
    Player - Player 4 (Purple)'s Current gold becomes Less than or equal to 1000.00
  Conditions
  Actions
    Player - Add 1000 to Player 4 (Purple) Current gold
PurpleLumber
  Events
    Player - Player 4 (Purple)'s Current lumber becomes Less than or equal to 1000.00
  Conditions
  Actions
    Player - Add 1000 to Player 4 (Purple) Current lumber
Teal Gold
  Events
    Player - Player 3 (Teal)'s Current gold becomes Less than or equal to 1000.00
  Conditions
  Actions
    Player - Add 1000 to Player 3 (Teal) Current gold
Teal Lumber
  Events
    Player - Player 3 (Teal)'s Current lumber becomes Less than or equal to 1000.00
  Conditions
  Actions
    Player - Add 1000 to Player 3 (Teal) Current lumber
GreenGold
  Events
    Player - Player 7 (Green)'s Current gold becomes Less than or equal to 1000.00
  Conditions
  Actions
    Player - Add 1000 to Player 7 (Green) Current gold
GreenLumber
  Events
    Player - Player 7 (Green)'s Current lumber becomes Less than or equal to 1000.00
  Conditions
  Actions
    Player - Add 1000 to Player 7 (Green) Current lumber
GiveAnkh
  Events
    Time - Every 2.00 seconds of game time
  Conditions
  Actions
    If ((Item carried by Malganis in slot 1) Equal to No item) then do (Create Ankh of Reincarnation and give it to Malganis) else do (Do nothing)
DestroyMalganisItems
  Events
  Conditions
  Actions
    Item - Remove (Item carried by Malganis in slot 1)
    Item - Remove (Item carried by Malganis in slot 2)
    Item - Remove (Item carried by Malganis in slot 3)
    Item - Remove (Item carried by Malganis in slot 4)
    Item - Remove (Item carried by Malganis in slot 5)
    Item - Remove (Item carried by Malganis in slot 6)
ItemFailsafeDetect
  Events
  Conditions
  Actions
    -------- SCROLLS --------
    If ((Item-type of (Item carried by Arthas in slot 1)) Equal to Scroll of Town Portal) then do (Set ScrollsOfTownPortal = (ScrollsOfTownPortal + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 1)) Equal to Scroll of Town Portal) then do (Remove (Item carried by Arthas in slot 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 2)) Equal to Scroll of Town Portal) then do (Set ScrollsOfTownPortal = (ScrollsOfTownPortal + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 2)) Equal to Scroll of Town Portal) then do (Remove (Item carried by Arthas in slot 2)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 3)) Equal to Scroll of Town Portal) then do (Set ScrollsOfTownPortal = (ScrollsOfTownPortal + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 3)) Equal to Scroll of Town Portal) then do (Remove (Item carried by Arthas in slot 3)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 4)) Equal to Scroll of Town Portal) then do (Set ScrollsOfTownPortal = (ScrollsOfTownPortal + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 4)) Equal to Scroll of Town Portal) then do (Remove (Item carried by Arthas in slot 4)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 5)) Equal to Scroll of Town Portal) then do (Set ScrollsOfTownPortal = (ScrollsOfTownPortal + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 5)) Equal to Scroll of Town Portal) then do (Remove (Item carried by Arthas in slot 5)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 6)) Equal to Scroll of Town Portal) then do (Set ScrollsOfTownPortal = (ScrollsOfTownPortal + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 6)) Equal to Scroll of Town Portal) then do (Remove (Item carried by Arthas in slot 6)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 1)) Equal to Scroll of Town Portal) then do (Set ScrollsOfTownPortal = (ScrollsOfTownPortal + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 1)) Equal to Scroll of Town Portal) then do (Remove (Item carried by Muradin in slot 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 2)) Equal to Scroll of Town Portal) then do (Set ScrollsOfTownPortal = (ScrollsOfTownPortal + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 2)) Equal to Scroll of Town Portal) then do (Remove (Item carried by Muradin in slot 2)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 3)) Equal to Scroll of Town Portal) then do (Set ScrollsOfTownPortal = (ScrollsOfTownPortal + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 3)) Equal to Scroll of Town Portal) then do (Remove (Item carried by Muradin in slot 3)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 4)) Equal to Scroll of Town Portal) then do (Set ScrollsOfTownPortal = (ScrollsOfTownPortal + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 4)) Equal to Scroll of Town Portal) then do (Remove (Item carried by Muradin in slot 4)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 5)) Equal to Scroll of Town Portal) then do (Set ScrollsOfTownPortal = (ScrollsOfTownPortal + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 5)) Equal to Scroll of Town Portal) then do (Remove (Item carried by Muradin in slot 5)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 6)) Equal to Scroll of Town Portal) then do (Set ScrollsOfTownPortal = (ScrollsOfTownPortal + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 6)) Equal to Scroll of Town Portal) then do (Remove (Item carried by Muradin in slot 6)) else do (Do nothing)
    -------- AMULETS OF RECALL --------
    If ((Item-type of (Item carried by Arthas in slot 1)) Equal to Amulet of Recall) then do (Set AmuletsOfRecall = (AmuletsOfRecall + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 1)) Equal to Amulet of Recall) then do (Remove (Item carried by Arthas in slot 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 2)) Equal to Amulet of Recall) then do (Set AmuletsOfRecall = (AmuletsOfRecall + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 2)) Equal to Amulet of Recall) then do (Remove (Item carried by Arthas in slot 2)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 3)) Equal to Amulet of Recall) then do (Set AmuletsOfRecall = (AmuletsOfRecall + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 3)) Equal to Amulet of Recall) then do (Remove (Item carried by Arthas in slot 3)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 4)) Equal to Amulet of Recall) then do (Set AmuletsOfRecall = (AmuletsOfRecall + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 4)) Equal to Amulet of Recall) then do (Remove (Item carried by Arthas in slot 4)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 5)) Equal to Amulet of Recall) then do (Set AmuletsOfRecall = (AmuletsOfRecall + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 5)) Equal to Amulet of Recall) then do (Remove (Item carried by Arthas in slot 5)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 6)) Equal to Amulet of Recall) then do (Set AmuletsOfRecall = (AmuletsOfRecall + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Arthas in slot 6)) Equal to Amulet of Recall) then do (Remove (Item carried by Arthas in slot 6)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 1)) Equal to Amulet of Recall) then do (Set AmuletsOfRecall = (AmuletsOfRecall + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 1)) Equal to Amulet of Recall) then do (Remove (Item carried by Muradin in slot 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 2)) Equal to Amulet of Recall) then do (Set AmuletsOfRecall = (AmuletsOfRecall + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 2)) Equal to Amulet of Recall) then do (Remove (Item carried by Muradin in slot 2)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 3)) Equal to Amulet of Recall) then do (Set AmuletsOfRecall = (AmuletsOfRecall + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 3)) Equal to Amulet of Recall) then do (Remove (Item carried by Muradin in slot 3)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 4)) Equal to Amulet of Recall) then do (Set AmuletsOfRecall = (AmuletsOfRecall + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 4)) Equal to Amulet of Recall) then do (Remove (Item carried by Muradin in slot 4)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 5)) Equal to Amulet of Recall) then do (Set AmuletsOfRecall = (AmuletsOfRecall + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 5)) Equal to Amulet of Recall) then do (Remove (Item carried by Muradin in slot 5)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 6)) Equal to Amulet of Recall) then do (Set AmuletsOfRecall = (AmuletsOfRecall + 1)) else do (Do nothing)
    If ((Item-type of (Item carried by Muradin in slot 6)) Equal to Amulet of Recall) then do (Remove (Item carried by Muradin in slot 6)) else do (Do nothing)
ItemFailsafeReplace
  Events
  Conditions
  Actions
    If (ScrollsOfTownPortal Greater than 0) then do (Create Scroll of Town Portal at (Center of ScrollReplace01 <gen>)) else do (Skip remaining actions)
    Set ScrollsOfTownPortal = (ScrollsOfTownPortal - 1)
    If (ScrollsOfTownPortal Greater than 0) then do (Create Scroll of Town Portal at (Center of ScrollReplace02 <gen>)) else do (Skip remaining actions)
    Set ScrollsOfTownPortal = (ScrollsOfTownPortal - 1)
    If (ScrollsOfTownPortal Greater than 0) then do (Create Scroll of Town Portal at (Center of ScrollReplace03 <gen>)) else do (Skip remaining actions)
    Set ScrollsOfTownPortal = (ScrollsOfTownPortal - 1)
    If (ScrollsOfTownPortal Greater than 0) then do (Create Scroll of Town Portal at (Center of ScrollReplace01 <gen>)) else do (Skip remaining actions)
    Set ScrollsOfTownPortal = (ScrollsOfTownPortal - 1)
    If (ScrollsOfTownPortal Greater than 0) then do (Create Scroll of Town Portal at (Center of ScrollReplace02 <gen>)) else do (Skip remaining actions)
    Set ScrollsOfTownPortal = (ScrollsOfTownPortal - 1)
    If (ScrollsOfTownPortal Greater than 0) then do (Create Scroll of Town Portal at (Center of ScrollReplace03 <gen>)) else do (Skip remaining actions)
    Set ScrollsOfTownPortal = (ScrollsOfTownPortal - 1)
    If (ScrollsOfTownPortal Greater than 0) then do (Create Scroll of Town Portal at (Center of ScrollReplace01 <gen>)) else do (Skip remaining actions)
    Set ScrollsOfTownPortal = (ScrollsOfTownPortal - 1)
    If (ScrollsOfTownPortal Greater than 0) then do (Create Scroll of Town Portal at (Center of ScrollReplace02 <gen>)) else do (Skip remaining actions)
    Set ScrollsOfTownPortal = (ScrollsOfTownPortal - 1)
    If (ScrollsOfTownPortal Greater than 0) then do (Create Scroll of Town Portal at (Center of ScrollReplace03 <gen>)) else do (Skip remaining actions)
    Set ScrollsOfTownPortal = (ScrollsOfTownPortal - 1)
    If (ScrollsOfTownPortal Greater than 0) then do (Create Scroll of Town Portal at (Center of ScrollReplace01 <gen>)) else do (Skip remaining actions)
    Set ScrollsOfTownPortal = (ScrollsOfTownPortal - 1)
    If (ScrollsOfTownPortal Greater than 0) then do (Create Scroll of Town Portal at (Center of ScrollReplace02 <gen>)) else do (Skip remaining actions)
    Set ScrollsOfTownPortal = (ScrollsOfTownPortal - 1)
    If (ScrollsOfTownPortal Greater than 0) then do (Create Scroll of Town Portal at (Center of ScrollReplace03 <gen>)) else do (Skip remaining actions)
    Set ScrollsOfTownPortal = (ScrollsOfTownPortal - 1)
    If (AmuletsOfRecall Greater than 0) then do (Create Amulet of Recall at (Center of AmuletReplace01 <gen>)) else do (Skip remaining actions)
    Set AmuletsOfRecall = (AmuletsOfRecall - 1)
    If (AmuletsOfRecall Greater than 0) then do (Create Amulet of Recall at (Center of AmuletReplace02 <gen>)) else do (Skip remaining actions)
    Set AmuletsOfRecall = (AmuletsOfRecall - 1)
    If (AmuletsOfRecall Greater than 0) then do (Create Amulet of Recall at (Center of AmuletReplace03 <gen>)) else do (Skip remaining actions)
    Set AmuletsOfRecall = (AmuletsOfRecall - 1)
    If (AmuletsOfRecall Greater than 0) then do (Create Amulet of Recall at (Center of AmuletReplace01 <gen>)) else do (Skip remaining actions)
    Set AmuletsOfRecall = (AmuletsOfRecall - 1)
    If (AmuletsOfRecall Greater than 0) then do (Create Amulet of Recall at (Center of AmuletReplace02 <gen>)) else do (Skip remaining actions)
    Set AmuletsOfRecall = (AmuletsOfRecall - 1)
    If (AmuletsOfRecall Greater than 0) then do (Create Amulet of Recall at (Center of AmuletReplace03 <gen>)) else do (Skip remaining actions)
    Set AmuletsOfRecall = (AmuletsOfRecall - 1)
    If (AmuletsOfRecall Greater than 0) then do (Create Amulet of Recall at (Center of AmuletReplace01 <gen>)) else do (Skip remaining actions)
    Set AmuletsOfRecall = (AmuletsOfRecall - 1)
    If (AmuletsOfRecall Greater than 0) then do (Create Amulet of Recall at (Center of AmuletReplace02 <gen>)) else do (Skip remaining actions)
    Set AmuletsOfRecall = (AmuletsOfRecall - 1)
    If (AmuletsOfRecall Greater than 0) then do (Create Amulet of Recall at (Center of AmuletReplace03 <gen>)) else do (Skip remaining actions)
    Set AmuletsOfRecall = (AmuletsOfRecall - 1)
    If (AmuletsOfRecall Greater than 0) then do (Create Amulet of Recall at (Center of AmuletReplace01 <gen>)) else do (Skip remaining actions)
    Set AmuletsOfRecall = (AmuletsOfRecall - 1)
    If (AmuletsOfRecall Greater than 0) then do (Create Amulet of Recall at (Center of AmuletReplace02 <gen>)) else do (Skip remaining actions)
    Set AmuletsOfRecall = (AmuletsOfRecall - 1)
    If (AmuletsOfRecall Greater than 0) then do (Create Amulet of Recall at (Center of AmuletReplace03 <gen>)) else do (Skip remaining actions)
    Set AmuletsOfRecall = (AmuletsOfRecall - 1)
TriggerIntroCinematic
  Events
  Conditions
  Actions
    Set IntroCinematicRunning = True
    Trigger - Turn on IntroCinematicEscape <gen>
    Trigger - Turn on Skip_Cinematic <gen>
    Trigger - Run IntroEnvironment <gen> (ignoring conditions)
    Trigger - Run IntroCinematicMode <gen> (ignoring conditions)
    Trigger - Run IntroInitialCamera <gen> (ignoring conditions)
    Trigger - Run IntroActorSetup <gen> (ignoring conditions)
IntroEnvironment
  Events
  Conditions
  Actions
    Environment - Set sky to Blizzard Sky
IntroCinematicMode
  Events
  Conditions
  Actions
    Cinematic - Turn cinematic mode On for (All players)
IntroActorSetup
  Events
  Conditions
  Actions
    Unit - Order Gryphon Rider 0133 <gen> to Move To (Center of IntroGryphonPatrolA <gen>)
    Unit - Order Flying Machine 0132 <gen> to Move To (Center of IntroGyrocopterPatrolA <gen>)
    Wait 3.00 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Knight 0110 <gen> to Move To (Center of IntroKnightMoveA <gen>)
    Wait 4.00 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Lock Priest 0130 <gen>'s Head to face Rifleman 0210 <gen>, offset by (0, 0, 90)
    Wait 1.00 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Lock Rifleman 0210 <gen>'s Head to face Priest 0130 <gen>, offset by (0, 0, 90)
    Wait 3.00 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Set life of Knight 0125 <gen> to 900.00
    Unit - Order Knight 0125 <gen> to Move To (Center of IntroKnightHealedMove <gen>)
    Sound - Attach HorseLoop2 <gen> to Knight 0125 <gen>
    Sound - Play HorseLoop2 <gen>
IntroKnightARespond
  Events
    Unit - A unit enters IntroKnightMoveA <gen>
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Unit - Make Knight 0111 <gen> face Knight 0110 <gen> over 0.20 seconds
    Wait 4.00 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Knight 0111 <gen> to Move To (Center of IntroKnightMoveB <gen>)
    Sound - Attach HorseLoop2 <gen> to Knight 0111 <gen>
    Sound - Play HorseLoop2 <gen>
    Wait 1.00 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Knight 0110 <gen> to Move To (Center of IntroKnightMoveC <gen>)
    Sound - Attach HorseLoop2 <gen> to Knight 0110 <gen>
    Sound - Play HorseLoop2 <gen>
IntroKnightBRespond
  Events
    Unit - A unit enters IntroKnightMoveC <gen>
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Unit - Make Knight 0110 <gen> face Guard Tower 0009 <gen> over 0.30 seconds
IntroInitialCamera
  Events
  Conditions
  Actions
    Cinematic - Fade out over 0.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Camera - Apply gg_cam_IntroFirstCamera for Player 2 (Blue) over 0.00 seconds
    Camera - Apply gg_cam_IntroFirstCamera for Player 9 (Gray) over 0.00 seconds
    Wait 1.00 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Fade in over 2.00 seconds using texture Black Mask and color (0%, 0%, 0%) with 0% transparency
    Camera - Apply gg_cam_IntroMuradinToArthas for Player 2 (Blue) over 8.00 seconds
    Camera - Apply gg_cam_IntroMuradinToArthas for Player 9 (Gray) over 8.00 seconds
    Wait 7.50 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Muradin to Move To (Center of IntroMuradinToArthas <gen>)
IntroMuradinAsksArthas
  Events
    Unit - A unit enters IntroMuradinToArthas <gen>
  Conditions
    (Unit-type of (Entering unit)) Equal to Mountain King
  Actions
    Trigger - Turn off (This trigger)
    Animation - Play Arthas's stand animation, using only Common animations
    Animation - Play Muradin's stand animation, using only Common animations
    Animation - Lock Arthas's Head to face Muradin, offset by (0, 0, 50.00)
    Cinematic - Send transmission to (All players) from Muradin named Muradin Bronzebeard: Play H09Muradin01 <gen> and display You lied to your men and betrayed the mercenaries who fought for you. What's happening to you, Arthas? Is vengeance all that's important to you?. Modify duration: Add 0 seconds and Wait
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 0.50 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Arthas face Muradin over 0.40 seconds
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play H09Arthas02 <gen> and display Spare me, Muradin. You weren't there to see what Mal'Ganis did to my homeland.. Modify duration: Add 0 seconds and Wait
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 0.50 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run IntroUndeadApproach <gen> (ignoring conditions)
IntroUndeadApproach
  Events
  Conditions
  Actions
    Unit Group - Pick every unit in IntroNorthGroup and do (Unhide (Picked unit))
    Unit Group - Pick every unit in IntroNortheastGroup and do (Unhide (Picked unit))
    Unit Group - Order IntroNortheastGroup to Move To (Center of IntroNortheastUndeadMoveTo <gen>)
    Camera - Apply gg_cam_IntroNorthEastApproach for Player 2 (Blue) over 0.01 seconds
    Camera - Apply gg_cam_IntroNorthEastApproach for Player 9 (Gray) over 0.01 seconds
    Sound - Set position of GargoyleWhat1 <gen> to (Center of GargoyleSound <gen>) with Z offset 0
    Sound - Play GargoyleWhat1 <gen>
    Wait 2.50 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Create 1 Dreadlord for Player 5 (Yellow) at (Center of IntroSpawnMalganis <gen>) facing 270.00 degrees
    Set IntroMalganis = (Last created unit)
    Unit Group - Order IntroNorthGroup to Move To (Center of IntroNorthUndeadMoveTo <gen>)
    Camera - Apply gg_cam_IntroNorthApproach for Player 2 (Blue) over 0.01 seconds
    Camera - Apply gg_cam_IntroNorthApproach for Player 9 (Gray) over 0.01 seconds
    Animation - Play Malganis's stand animation, using only Common animations
    Wait 0.50 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - Apply gg_cam_IntroMalganisCloseup for Player 2 (Blue) over 2.00 seconds
    Camera - Apply gg_cam_IntroMalganisCloseup for Player 9 (Gray) over 2.00 seconds
    Sound - Set position of AbominationYesAttack2 <gen> to (Center of GargoyleSound <gen>) with Z offset 0
    Sound - Set volume of AbominationYesAttack2 <gen> to 70.00%
    Sound - Play AbominationYesAttack2 <gen>
    Wait 2.00 seconds
    Cinematic - Send transmission to (All players) from IntroMalganis named Mal'Ganis: Play H09MalGanis03 <gen> and display The Dark Lord said you would come. This is where your journey ends, boy. Trapped and freezing at the roof of the world, with only death to sing the tale of your doom.. Modify duration: Add 0 seconds and Wait
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run IntroArthasDecides <gen> (ignoring conditions)
IntroBaseReorients
  Events
  Conditions
  Actions
    Animation - Reset Rifleman 0210 <gen>'s body-part facing
    Unit - Order Peasant 0138 <gen> to Harvest Nearby Lumber
    Unit - Order Peasant 0173 <gen> to Harvest Nearby Lumber
    Unit - Order Peasant 0137 <gen> to Harvest Nearby Gold
    Unit - Order Peasant 0136 <gen> to Harvest Nearby Gold
    Unit - Order Peasant 0134 <gen> to Harvest Nearby Gold
    Unit - Order Peasant 0165 <gen> to Harvest Nearby Gold
    Unit - Order Peasant 0171 <gen> to Harvest Nearby Gold
    Unit - Order Peasant 0172 <gen> to Harvest Nearby Gold
    Unit - Order Flying Machine 0132 <gen> to Move To (Center of IntroGyrocopterAlert <gen>)
    Unit - Order Gryphon Rider 0133 <gen> to Move To (Center of IntroGryphonAlert <gen>)
    Unit - Order Priest 0112 <gen> to Move To (Center of IntroPriest01Alert <gen>)
    Unit - Order Priest 0130 <gen> to Move To (Center of IntroPriest02Alert <gen>)
    Unit - Order Priest 0129 <gen> to Move To (Center of IntroPriest03Alert <gen>)
    Unit - Order Footman 0123 <gen> to Move To (Center of IntroFootman02Alert <gen>)
    Unit - Order Footman 0124 <gen> to Move To (Center of IntroFootman03Alert <gen>)
    Unit - Order Footman 0126 <gen> to Move To (Center of IntroFootman04Alert <gen>)
    Unit - Order Rifleman 0210 <gen> to Move To (Center of IntroRifleman02Alert <gen>)
    Unit - Order Rifleman 0117 <gen> to Move To (Center of IntroRifleman03Alert <gen>)
    Unit - Order Rifleman 0115 <gen> to Move To (Center of IntroRifleman06Alert <gen>)
    Unit - Order Rifleman 0211 <gen> to Move To (Center of IntroRifleman07Alert <gen>)
    Unit - Order Sorceress 0128 <gen> to Move To (Center of IntroSorceress01 <gen>)
IntroArthasDecides
  Events
  Conditions
  Actions
    Trigger - Run IntroBaseReorients <gen> (ignoring conditions)
    Animation - Play Captain's stand animation, using only Common animations
    Unit - Make Arthas face IntroMalganis over 0 seconds
    Unit - Make Muradin face IntroMalganis over 0 seconds
    Unit - Remove IntroMalganis from the game
    Animation - Reset Arthas's body-part facing
    Camera - Apply gg_cam_IntroMuradinToArthas for Player 2 (Blue) over 0.01 seconds
    Camera - Apply gg_cam_IntroMuradinToArthas for Player 9 (Gray) over 0.01 seconds
    Sound - Set position of HumanCallToArmsWhat1 <gen> to (Center of CallToArmsSound <gen>) with Z offset 0
    Sound - Set volume of HumanCallToArmsWhat1 <gen> to 60.00%
    Sound - Play HumanCallToArmsWhat1 <gen>
    Wait 0.50 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Muradin face Arthas over 0.20 seconds
    Cinematic - Send transmission to (All players) from Muradin named Muradin Bronzebeard: Play H09Muradin04 <gen> and display This looks bad. We're completely surrounded.. Modify duration: Add 0 seconds and Wait
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 0.50 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Arthas face Muradin over 0.20 seconds
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play H09Arthas05 <gen> and display There's still one chance. Help me claim Frostmourne! If it's as powerful as you said, it might tilt the scales in our favor!. Modify duration: Add 0 seconds and Wait
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 0.50 seconds
    Cinematic - Send transmission to (All players) from Muradin named Muradin Bronzebeard: Play H09Muradin06 <gen> and display I have a bad feeling about this, lad. But I promised I'd see this through.. Modify duration: Add 0 seconds and Wait
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Arthas to Move To (Center of IntroArthasToCaptain <gen>)
    Unit - Order Muradin to Move To (Center of IntroMuradintoCaptain <gen>)
    Camera - Apply gg_cam_IntroCaptainCloseup for Player 2 (Blue) over 4.00 seconds
    Camera - Apply gg_cam_IntroCaptainCloseup for Player 9 (Gray) over 4.00 seconds
IntroArthasTalksToCaptain
  Events
    Unit - A unit enters IntroArthasToCaptain <gen>
  Conditions
    (Unit-type of (Entering unit)) Equal to Paladin
  Actions
    Wait 0.20 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Arthas face Captain 0187 <gen> over 0.20 seconds
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play H09Arthas07 <gen> and display Captain, I'll leave you to organize our defense. Let's move out.. Modify duration: Add 0 seconds and Wait
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Captain 0187 <gen> to Move To (Center of IntroCaptainAlert <gen>)
    Unit - Order Arthas to Move To (Center of IntroArthasToWaygate <gen>)
    Unit - Order Muradin to Move To (Center of IntroMuradinToWaygate <gen>)
    Camera - Apply gg_cam_IntroToWaygate1 for Player 2 (Blue) over 3.50 seconds
    Camera - Apply gg_cam_IntroToWaygate1 for Player 9 (Gray) over 3.50 seconds
    Wait 3.50 seconds
    Camera - Apply gg_cam_IntroToWaygate3 for Player 2 (Blue) over 10.50 seconds
    Camera - Apply gg_cam_IntroToWaygate3 for Player 9 (Gray) over 10.50 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 10.50 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
IntroEscortFollowsArthas
  Events
    Unit - A unit enters IntroTriggerArthasEscort <gen>
  Conditions
    (Entering unit) Equal to Arthas
    IntroCinematicRunning Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Unit - Order Knight 0250 <gen> to Move To (Center of IntroEscortKnight01 <gen>)
    Unit - Order Knight 0251 <gen> to Move To (Center of IntroEscortKnight02 <gen>)
    Unit - Order Rifleman 0254 <gen> to Move To (Center of IntroEscortRifleman01 <gen>)
    Unit - Order Rifleman 0253 <gen> to Move To (Center of IntroEscortRifleman02 <gen>)
    Unit - Order Rifleman 0252 <gen> to Move To (Center of IntroEscortRifleman03 <gen>)
    Sound - Attach HorseLoop3 <gen> to Knight 0251 <gen>
    Sound - Play HorseLoop3 <gen>
    Wait for HorseLoop3 <gen> to be 0.01 seconds from finished playing
    Sound - Attach HorseLoop3 <gen> to Knight 0251 <gen>
    Sound - Play HorseLoop3 <gen>
    Wait for HorseLoop3 <gen> to be 0.01 seconds from finished playing
    Sound - Attach HorseLoop2 <gen> to Knight 0251 <gen>
    Sound - Play HorseLoop2 <gen>
IntroArthasReachesWaygate
  Events
    Unit - A unit enters IntroArthasToWaygate <gen>
  Conditions
    (Entering unit) Equal to Arthas
    IntroCinematicRunning Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Unit - Make Arthas face Way Gate 0209 <gen> over 0.40 seconds
    Special Effect - Create a special effect at (Position of EvilArthas) using Abilities\Spells\Human\MassTeleport\MassTeleportTarget.mdl
    Sound - Attach MassTeleportTarget <gen> to Arthas
    Sound - Play MassTeleportTarget <gen>
    Set EffectArthasAfterFM = (Last created special effect)
    Wait 2 seconds
    Special Effect - Destroy EffectArthasAfterFM
IntroMuradinReachesWaygate
  Events
    Unit - A unit enters IntroMuradinToWaygate <gen>
  Conditions
    (Entering unit) Equal to Muradin
    IntroCinematicRunning Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Wait 0.20 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Muradin face Way Gate 0209 <gen> over 0.40 seconds
IntroLastDwarfReachesWaygate
  Events
    Unit - A unit enters IntroEscortRifleman03 <gen>
  Conditions
    IntroCinematicRunning Equal to True
    (Entering unit) Equal to Rifleman 0252 <gen>
  Actions
    Trigger - Turn off (This trigger)
    Unit Group - Pick every unit in (Units in IntroArthasWaygateForce <gen>) and do (Order (Picked unit) to Follow Way Gate 0209 <gen>)
    Wait 2.50 seconds
    If (IntroCinematicEscape 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
    Wait 1.50 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - Apply gg_cam_IntroArthasInValley for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_IntroArthasInValley for Player 9 (Gray) over 0 seconds
    Unit - Move Arthas instantly to (Center of IntroValleyArthas <gen>)
    Unit - Make Arthas face (Center of IntroValleyUnitFacing <gen>) over 0 seconds
    Unit - Move Muradin instantly to (Center of IntroValleyMuradin <gen>)
    Unit - Make Muradin face (Center of IntroValleyUnitFacing <gen>) over 0 seconds
    Unit - Move Knight 0250 <gen> instantly to (Center of IntroValleyKnight01 <gen>)
    Unit - Make Knight 0250 <gen> face (Center of IntroValleyUnitFacing <gen>) over 0 seconds
    Unit - Move Knight 0251 <gen> instantly to (Center of IntroValleyKnight02 <gen>)
    Unit - Make Knight 0251 <gen> face (Center of IntroValleyUnitFacing <gen>) over 0 seconds
    Unit - Move Rifleman 0254 <gen> instantly to (Center of IntroValleyRifleman01 <gen>)
    Unit - Make Rifleman 0254 <gen> face (Center of IntroValleyUnitFacing <gen>) over 0 seconds
    Unit - Move Rifleman 0253 <gen> instantly to (Center of IntroValleyRifleman02 <gen>)
    Unit - Make Rifleman 0253 <gen> face (Center of IntroValleyUnitFacing <gen>) over 0 seconds
    Unit - Move Rifleman 0252 <gen> instantly to (Center of IntroValleyRifleman03 <gen>)
    Unit - Make Rifleman 0252 <gen> face (Center of IntroValleyUnitFacing <gen>) over 0 seconds
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Black mask across WayGateExit_BlackMask <gen>
    Visibility - Create an initially Enabled visibility modifier for Player 9 (Gray) emitting Black mask across WayGateExit_BlackMask <gen>
    Wait 1.00 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run IntroCinematicEnd <gen> (ignoring conditions)
IntroCinematicEnd
  Events
  Conditions
  Actions
    Set IntroCinematicRunning = False
    Trigger - Turn off IntroCinematicEscape <gen>
    Trigger - Turn off Skip_Cinematic <gen>
    Set SkipVote1 = False
    Set SkipVote2 = False
    Set Cinematic = False
    Environment - Set sky to None
    Environment - Set fog to style 0 (fogstyle), z-start 600.00, z-end 6000.00, density 0.00 and color (100%, 100%, 100%)
    Neutral Building - Disable Way Gate 0209 <gen>
    Cinematic - Turn cinematic mode Off for (All players)
    Selection - Select (Units in FrostmourneValleyVisibilityA <gen> owned by Player 2 (Blue)) for Player 2 (Blue)
    Selection - Select (Units in FrostmourneValleyVisibilityA <gen> owned by Player 9 (Gray)) for Player 9 (Gray)
    Camera - Reset camera for Player 2 (Blue) to standard game-view over 0.00 seconds
    Camera - Reset camera for Player 9 (Gray) to standard game-view over 0.00 seconds
    Quest - Display to (All players) the Quest Discovered message: |cFFFFCC00MAIN QUEST|rFrostmourne - Locate Frostmourne - Arthas must survive - Muradin must survive
    Unit - Remove IntroMalganis from the game
    Player - For Player 5 (Yellow), turn Alliance (non-aggression) Off toward Player 2 (Blue)
    Player - For Player 5 (Yellow), turn Alliance (non-aggression) Off toward Player 9 (Gray)
    Countdown Timer - Start TimerInitialAttack as a One-shot timer that will expire in 60.00 seconds
    Countdown Timer - Start HintGryphonTimer as a One-shot timer that will expire in 10.00 seconds
    AI - Send PlayerUndeadProtector the AI Command (0, 0)
    AI - Send PlayerMalganis the AI Command (0, 0)
    Player - Set Player 2 (Blue) Current gold to 500
    Player - Set Player 2 (Blue) Current lumber to 250
    Player - Set Player 9 (Gray) Current gold to 500
    Player - Set Player 9 (Gray) Current lumber to 250
    Neutral Building - Set Gold Mine 0003 <gen> to 15000 gold
    Neutral Building - Set Gold Mine 0162 <gen> to 15000 gold
    -------- HANDLE SCROLLS --------
    Trigger - Run ItemFailsafeDetect <gen> (ignoring conditions)
IntroCinematicEscape
  Events
  Conditions
  Actions
    Set Cinematic = False
    Set SkipVote1 = False
    Set SkipVote2 = False
    Trigger - Turn off (This trigger)
    Set IntroCinematicEscape = True
    Set IntroCinematicRunning = False
    Sound - Stop (Last played sound) After fading
    Cinematic - Fade out over 0.40 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.80 seconds
    Unit Group - Pick every unit in IntroNorthGroup and do (Unhide (Picked unit))
    Unit Group - Pick every unit in IntroNortheastGroup and do (Unhide (Picked unit))
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility across IntroCancelVisibility <gen>
    Set IntroCancelView1 = (Last created visibility modifier)
    Visibility - Disable IntroCancelView1
    Visibility - Create an initially Enabled visibility modifier for Player 9 (Gray) emitting Visibility across IntroCancelVisibility <gen>
    Set IntroCancelView2 = (Last created visibility modifier)
    Visibility - Disable IntroCancelView2
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Black mask across WayGateExit_BlackMask <gen>
    Visibility - Create an initially Enabled visibility modifier for Player 9 (Gray) emitting Black mask across WayGateExit_BlackMask <gen>
    Camera - Apply gg_cam_IntroArthasInValley for Player 2 (Blue) over 0.00 seconds
    Camera - Apply gg_cam_IntroArthasInValley for Player 9 (Gray) over 0.00 seconds
    Wait 0.01 seconds
    Animation - Reset Rifleman 0210 <gen>'s body-part facing
    Animation - Reset Arthas's body-part facing
    Animation - Reset Muradin's body-part facing
    Unit - Order Peasant 0138 <gen> to Harvest Nearby Lumber
    Unit - Order Peasant 0137 <gen> to Harvest Nearby Gold
    Unit - Order Peasant 0136 <gen> to Harvest Nearby Gold
    Unit - Order Peasant 0134 <gen> to Harvest Nearby Gold
    Unit - Order Peasant 0173 <gen> to Harvest Nearby Lumber
    Unit - Order Peasant 0165 <gen> to Harvest Nearby Gold
    Unit - Order Peasant 0172 <gen> to Harvest Nearby Gold
    Unit - Order Peasant 0171 <gen> to Harvest Nearby Gold
    Unit - Move Flying Machine 0132 <gen> instantly to (Center of IntroGyrocopterAlert <gen>)
    Unit - Move Gryphon Rider 0133 <gen> instantly to (Center of IntroGryphonAlert <gen>)
    Unit - Move Priest 0112 <gen> instantly to (Center of IntroPriest01Alert <gen>)
    Unit - Move Priest 0130 <gen> instantly to (Center of IntroPriest02Alert <gen>)
    Unit - Move Priest 0129 <gen> instantly to (Center of IntroPriest03Alert <gen>)
    Unit - Move Footman 0123 <gen> instantly to (Center of IntroFootman02Alert <gen>)
    Unit - Move Footman 0124 <gen> instantly to (Center of IntroFootman03Alert <gen>)
    Unit - Move Footman 0126 <gen> instantly to (Center of IntroFootman04Alert <gen>)
    Unit - Move Rifleman 0210 <gen> instantly to (Center of IntroRifleman02Alert <gen>)
    Unit - Move Rifleman 0117 <gen> instantly to (Center of IntroRifleman03Alert <gen>)
    Unit - Move Rifleman 0115 <gen> instantly to (Center of IntroRifleman06Alert <gen>)
    Unit - Move Rifleman 0211 <gen> instantly to (Center of IntroRifleman08Alert <gen>)
    Unit - Move Sorceress 0128 <gen> instantly to (Center of IntroSorceress01 <gen>)
    Unit - Set life of Knight 0125 <gen> to 900.00
    Unit - Move Knight 0125 <gen> instantly to (Center of IntroKnightHealedMove <gen>)
    Unit - Move Captain 0187 <gen> instantly to (Center of IntroCaptainAlert <gen>)
    Unit - Move Arthas instantly to (Center of IntroValleyArthas <gen>)
    Unit - Make Arthas face (Center of IntroValleyUnitFacing <gen>) over 0 seconds
    Unit - Move Muradin instantly to (Center of IntroValleyMuradin <gen>)
    Unit - Make Muradin face (Center of IntroValleyUnitFacing <gen>) over 0 seconds
    Unit - Move Knight 0250 <gen> instantly to (Center of IntroValleyKnight01 <gen>)
    Unit - Make Knight 0250 <gen> face (Center of IntroValleyUnitFacing <gen>) over 0 seconds
    Unit - Move Knight 0251 <gen> instantly to (Center of IntroValleyKnight02 <gen>)
    Unit - Make Knight 0251 <gen> face (Center of IntroValleyUnitFacing <gen>) over 0 seconds
    Unit - Move Rifleman 0254 <gen> instantly to (Center of IntroValleyRifleman01 <gen>)
    Unit - Make Rifleman 0254 <gen> face (Center of IntroValleyUnitFacing <gen>) over 0 seconds
    Unit - Move Rifleman 0253 <gen> instantly to (Center of IntroValleyRifleman02 <gen>)
    Unit - Make Rifleman 0253 <gen> face (Center of IntroValleyUnitFacing <gen>) over 0 seconds
    Unit - Move Rifleman 0252 <gen> instantly to (Center of IntroValleyRifleman03 <gen>)
    Cinematic - Fade in over 0.40 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Environment - Set sky to None
    Environment - Set fog to style 0 (fogstyle), z-start 600.00, z-end 6000.00, density 0.00 and color (100%, 100%, 100%)
    Cinematic - Turn cinematic mode Off for (All players)
    Selection - Select (Units in FrostmourneValleyVisibilityA <gen> owned by Player 2 (Blue)) for Player 2 (Blue)
    Selection - Select (Units in FrostmourneValleyVisibilityA <gen> owned by Player 9 (Gray)) for Player 9 (Gray)
    Camera - Reset camera for Player 2 (Blue) to standard game-view over 0.00 seconds
    Camera - Reset camera for Player 9 (Gray) to standard game-view over 0.00 seconds
    Quest - Display to (All players) the Quest Discovered message: |cFFFFCC00MAIN QUEST|rFrostmourne - Locate Frostmourne - Arthas must survive - Muradin must survive
    If ((Number of units in (Units owned by Player 5 (Yellow) of type Dreadlord)) Equal to 1) then do (Remove IntroMalganis from the game) else do (Do nothing)
    Neutral Building - Disable Way Gate 0209 <gen>
    Player - For Player 5 (Yellow), turn Alliance (non-aggression) Off toward Player 2 (Blue)
    Player - For Player 5 (Yellow), turn Alliance (non-aggression) Off toward Player 9 (Gray)
    Countdown Timer - Start TimerInitialAttack as a One-shot timer that will expire in 60.00 seconds
    Countdown Timer - Start HintGryphonTimer as a One-shot timer that will expire in 10.00 seconds
    AI - Send PlayerUndeadProtector the AI Command (0, 0)
    AI - Send PlayerMalganis the AI Command (0, 0)
    Player - Set Player 2 (Blue) Current gold to 500
    Player - Set Player 2 (Blue) Current lumber to 250
    Player - Set Player 9 (Gray) Current gold to 500
    Player - Set Player 9 (Gray) Current lumber to 250
    Neutral Building - Set Gold Mine 0003 <gen> to 15000 gold
    Neutral Building - Set Gold Mine 0162 <gen> to 15000 gold
    -------- HANDLE SCROLLS --------
    Trigger - Run ItemFailsafeDetect <gen> (ignoring conditions)
InitialAttackTimerExpires
  Events
    Time - TimerInitialAttack expires
  Conditions
  Actions
    AI - Start campaign AI script for Player 5 (Yellow): h09_yellow.ai (aiscript)
    Unit Group - Order IntroNortheastGroup to Attack-Move To (Center of IntroGreenAttackRegion <gen>)
    Unit Group - Order IntroNorthGroup to Attack-Move To (Center of IntroGreenAttackRegion <gen>)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        Unit - Kill Malganis
      Else - Actions
FirstWolves
  Events
    Unit - A unit enters ValleyFirstWolfAttack <gen>
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Unit Group - Pick every unit in (Units in ValleyFirstWolves <gen>) and do (Order (Picked unit) to Attack-Move To (Center of ValleyFirstWolfAttack <gen>))
WolfSpotted
  Events
    Unit - A unit owned by Neutral Hostile Is attacked
  Conditions
    (Attacked unit) Equal to Frost Wolf 0257 <gen>
  Actions
    Trigger - Turn off (This trigger)
    Unit - Order Frost Wolf 0257 <gen> to Move To (Center of ValleyWhiteWolfRun <gen>)
WolfTurnsAround
  Events
    Unit - A unit enters ValleyWhiteWolfRun <gen>
  Conditions
    (Entering unit) Equal to Frost Wolf 0257 <gen>
  Actions
    Trigger - Turn off (This trigger)
    Unit - Order (Entering unit) to Stop
    Unit - Make (Entering unit) face 180.00 over 0.50 seconds
WolvesAttack
  Events
    Unit - A unit enters ValleyWolvesAttack <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to Player 2 (Blue)
        (Owner of (Entering unit)) Equal to Player 9 (Gray)
  Actions
    Trigger - Turn off (This trigger)
    Unit - Order Frost Wolf 0161 <gen> to Attack-Move To (Center of ValleyWolvesAttack <gen>)
    Unit - Order Giant Frost Wolf 0259 <gen> to Attack-Move To (Center of ValleyWolvesAttack <gen>)
    Unit - Order Frost Wolf 0257 <gen> to Attack-Move To (Center of ValleyWolvesAttack <gen>)
    Unit - Order Giant Frost Wolf 0255 <gen> to Attack-Move To (Center of ValleyWolvesAttack <gen>)
    Unit - Order Dire Frost Wolf 0139 <gen> to Attack-Move To (Center of ValleyWolvesAttack <gen>)
    Unit - Order Giant Frost Wolf 0256 <gen> to Attack-Move To (Center of ValleyWolvesAttack <gen>)
TriggerGraveyardAttack
  Events
    Unit - A unit enters ValleyGraveyardTrigger <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to Player 2 (Blue)
        (Owner of (Entering unit)) Equal to Player 9 (Gray)
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Run SpawnGhosts <gen> (ignoring conditions)
    Trigger - Run SpawnSkeletal_Archers <gen> (ignoring conditions)
SpawnGhosts
  Events
  Conditions
  Actions
    Unit - Create 1 Ghost for Neutral Hostile at (Center of ValleyGhost01 <gen>) facing 225.00 degrees
    Animation - Change (Last created unit)'s vertex coloring to (100%, 100%, 100%) with 100.00% transparency
    Set GhostA = (Last created unit)
    Unit - Pause (Last created unit)
    Unit - Create 1 Wraith for Neutral Hostile at (Center of ValleyGhost02 <gen>) facing 225.00 degrees
    Animation - Change (Last created unit)'s vertex coloring to (100%, 100%, 100%) with 100.00% transparency
    Set GhostB = (Last created unit)
    Unit - Pause (Last created unit)
    For each (Integer A) from 1 to 20, do (Run LoopGhostTransparency <gen> (ignoring conditions))
    Wait 2.10 seconds
    Unit - Unpause GhostA
    Unit - Unpause GhostB
LoopGhostTransparency
  Events
  Conditions
  Actions
    Wait (0.10 x (Real((Integer A)))) seconds
    Set GhostMaterialize = (GhostMaterialize - 5.00)
    Animation - Change GhostA's vertex coloring to (100%, 100%, 100%) with GhostMaterialize% transparency
    Animation - Change GhostB's vertex coloring to (100%, 100%, 100%) with GhostMaterialize% transparency
SpawnSkeletal Archers
  Events
  Conditions
  Actions
    Unit - Create 1 Skeleton Archer for Neutral Hostile at (Center of ValleySkelArcher01 <gen>) facing 180.00 degrees
    Set Skeleton01 = (Last created unit)
    Unit - Create 1 Skeletal Marksman for Neutral Hostile at (Center of ValleySkelArcher02 <gen>) facing 180.00 degrees
    Set Skeleton02 = (Last created unit)
    Unit - Create 1 Skeleton Archer for Neutral Hostile at (Center of ValleySkelArcher03 <gen>) facing 180.00 degrees
    Set Skeleton03 = (Last created unit)
    Unit - Create 1 Skeletal Marksman for Neutral Hostile at (Center of ValleySkelArcher04 <gen>) facing 180.00 degrees
    Set Skeleton04 = (Last created unit)
    Unit - Create 1 Skeleton Archer for Neutral Hostile at (Center of ValleySkelArcher05 <gen>) facing 200.00 degrees
    Set Skeleton05 = (Last created unit)
    Unit - Create 1 Skeleton Archer for Neutral Hostile at (Center of ValleySkelArcher06 <gen>) facing 225.00 degrees
    Set Skeleton06 = (Last created unit)
    Unit - Pause Skeleton01
    Unit - Pause Skeleton02
    Unit - Pause Skeleton03
    Unit - Pause Skeleton04
    Unit - Pause Skeleton05
    Unit - Pause Skeleton06
    Animation - Play Skeleton01's birth animation
    Animation - Play Skeleton02's birth animation
    Animation - Play Skeleton03's birth animation
    Animation - Play Skeleton04's birth animation
    Animation - Play Skeleton05's birth animation
    Animation - Play Skeleton06's birth animation
    Wait 2.50 seconds
    Unit - Unpause Skeleton01
    Unit - Unpause Skeleton02
    Unit - Unpause Skeleton03
    Unit - Unpause Skeleton04
    Unit - Unpause Skeleton05
    Unit - Unpause Skeleton06
GuardianEncounter
  Events
    Unit - A unit enters ValleyGuardianTrigger <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to Player 2 (Blue)
        (Owner of (Entering unit)) Equal to Player 9 (Gray)
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of ValleyGuardianVisibility <gen>) to a radius of 768.00
    Set GuardianVisibility1 = (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 9 (Gray) emitting Visibility from (Center of ValleyGuardianVisibility <gen>) to a radius of 768.00
    Set GuardianVisibility2 = (Last created visibility modifier)
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Guardian named Guardian: Play H09Guardian08 <gen> and display Turn back, mortals. Death and darkness are all that await you in this forsaken vault.. Modify duration: Add 0 seconds and Wait
    If ((Distance between (Position of Arthas) and (Position of Guardian)) Less than or equal to 2048.00) then do (Send transmission to (All players) from Arthas named Arthas: Play H09Arthas09 <gen> and display I doubt there's anything down here more terrifying than what we've faced already.. Modify duration: Add 0 seconds and Wait) else do (Do nothing)
    If ((Distance between (Position of Arthas) and (Position of Guardian)) Less than or equal to 2048.00) then do (Send transmission to (All players) from Guardian named Guardian: Play H09Guardian10 <gen> and display Believe what you will, boy. You shall not pass.. Modify duration: Add 0 seconds and Wait) else do (Do nothing)
    Sound - Reset all volume channels to 100%
    -------- DIFFICULTY MODIFIER --------
    Unit - Make Guardian Vulnerable
    Unit - Make GuardianLackeyA Vulnerable
    Unit - Make GuardianLackeyB Vulnerable
    Unit - Make GuardianArcherA Vulnerable
    Unit - Make GuardianArcherB Vulnerable
    Unit - Unpause Guardian
    Unit - Unpause GuardianLackeyA
    Unit - Unpause GuardianLackeyB
    Unit - Unpause GuardianArcherA
    Unit - Unpause GuardianArcherB
GuardianDies
  Events
    Unit - A unit owned by Neutral Hostile Dies
  Conditions
    (Dying unit) Equal to Guardian
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set PointGuardianPosition = (Position of (Dying unit))
    Set RealGuardianFacing = (Facing of (Dying unit))
    Unit - Remove (Dying unit) from the game
    Unit - Create 1 The Guardian Hard for Neutral Hostile at PointGuardianPosition facing RealGuardianFacing degrees
    Set Guardian = (Last created unit)
    Unit - Set life of Guardian to 1.00
    Unit - Pause Guardian
    Unit - Make Guardian Invulnerable
    If ((GuardianLackeyA is alive) Equal to True) then do (Pause GuardianLackeyA) else do (Do nothing)
    If ((GuardianLackeyB is alive) Equal to True) then do (Pause GuardianLackeyB) else do (Do nothing)
    If ((GuardianArcherA is alive) Equal to True) then do (Pause GuardianArcherA) else do (Do nothing)
    If ((GuardianArcherB is alive) Equal to True) then do (Pause GuardianArcherB) else do (Do nothing)
    If ((GuardianLackeyA is alive) Equal to True) then do (Make GuardianLackeyA Invulnerable) else do (Do nothing)
    If ((GuardianLackeyB is alive) Equal to True) then do (Make GuardianLackeyB Invulnerable) else do (Do nothing)
    If ((GuardianArcherA is alive) Equal to True) then do (Make GuardianArcherA Invulnerable) else do (Do nothing)
    If ((GuardianArcherB is alive) Equal to True) then do (Make GuardianArcherB Invulnerable) else do (Do nothing)
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Guardian named Guardian: Play H09Guardian11 <gen> and display Turn away... before it's... too late.. Modify duration: Add 0 seconds and Wait
    If ((Distance between (Position of Arthas) and (Center of ValleyGuardianVisibility <gen>)) Less than or equal to 2048.00) then do (Send transmission to (All players) from Arthas named Arthas: Play H09Arthas12 <gen> and display Still trying to protect the sword, are you?. Modify duration: Add 0 seconds and Wait) else do (Do nothing)
    If ((Distance between (Position of Arthas) and (Center of ValleyGuardianVisibility <gen>)) Less than or equal to 2048.00) then do (Send transmission to (All players) from a Neutral Hostile The Guardian Medium named Guardian at (Center of ValleyGuardianVisibility <gen>): Play H09Guardian13 <gen> and display No... trying to protect you... from it.. Modify duration: Add 0 seconds and Wait) else do (Do nothing)
    Sound - Set User Interface Sounds to 1.00%
    Sound - Reset all volume channels to 100%
    Unit - Kill Guardian
    If ((GuardianLackeyA is alive) Equal to True) then do (Unpause GuardianLackeyA) else do (Do nothing)
    If ((GuardianLackeyB is alive) Equal to True) then do (Unpause GuardianLackeyB) else do (Do nothing)
    If ((GuardianArcherA is alive) Equal to True) then do (Unpause GuardianArcherA) else do (Do nothing)
    If ((GuardianArcherB is alive) Equal to True) then do (Unpause GuardianArcherB) else do (Do nothing)
    If ((GuardianLackeyA is alive) Equal to True) then do (Kill GuardianLackeyA) else do (Do nothing)
    If ((GuardianLackeyB is alive) Equal to True) then do (Kill GuardianLackeyB) else do (Do nothing)
    If ((GuardianArcherA is alive) Equal to True) then do (Kill GuardianArcherA) else do (Do nothing)
    If ((GuardianArcherB is alive) Equal to True) then do (Kill GuardianArcherB) else do (Do nothing)
    Wait 2.00 seconds
    Trigger - Run TriggerFrostmourneCinematic <gen> (checking conditions)
TriggerFrostmourneCinematic
  Events
  Conditions
    (Arthas is alive) Equal to True
    (Muradin is alive) Equal to True
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set Cinematic = True
    Set HeroDefeatPossible = False
    Unit - Make Arthas Invulnerable
    Unit - Make Muradin Invulnerable
    Set FrostmourneCinematicRunning = True
    Trigger - Run FrostmourneCinematicSetup <gen> (ignoring conditions)
FrostmourneCinematicSetup
  Events
  Conditions
  Actions
    -------- TURN OFF SKILL LEARNING TRIGGER --------
    Environment - Set sky to Lordaeron Winter Sky
    Game - Turn the day/night cycle Off
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    Unit - Make Arthas Vulnerable
    Unit - Make Muradin Vulnerable
    Cinematic - Turn cinematic mode On for (All players)
    Trigger - Turn on FrostmourneCinematicEscapeGood <gen>
    Trigger - Turn on Skip_Cinematic <gen>
    Trigger - Turn on FrostmourneCinematicEscapeEvil <gen>
    Trigger - Run FrostmourneActorSetup <gen> (ignoring conditions)
    -------- START MUSIC THEME --------
    Sound - Play Dark Victory
    Camera - Apply gg_cam_FrostmourneIntroShot for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_FrostmourneIntroShot for Player 9 (Gray) over 0 seconds
    Wait 1.00 seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run FrostmourneApproach <gen> (ignoring conditions)
FrostmourneActorSetup
  Events
  Conditions
  Actions
    Unit Group - Pick every unit in ValleyGroup and do (Hide (Picked unit))
    Unit - Unhide Arthas
    Unit - Unhide Muradin
    Unit - Move Arthas instantly to (Center of FrostmourneArthasBegin <gen>), facing 0.00 degrees
    Unit - Move Muradin instantly to (Center of FrostmourneMuradinBegin <gen>), facing 0.00 degrees
    Selection - Clear selection
    Unit - Pause all units
    Unit - Unpause Arthas
    Unit - Unpause Muradin
    Unit - Remove All buffs from Arthas
    Unit - Remove All buffs from Muradin
    Visibility - Enable ValleyVisA1
    Visibility - Enable ValleyVisB1
    Visibility - Enable ValleyVisC1
    Visibility - Enable ValleyVisA2
    Visibility - Enable ValleyVisB2
    Visibility - Enable ValleyVisC2
FrostmourneApproach
  Events
  Conditions
  Actions
    Cinematic - Fade in over 0.40 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.40 seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - Apply gg_cam_FrostmourneSwordCloseup for Player 2 (Blue) over 6.00 seconds
    Camera - Apply gg_cam_FrostmourneSwordCloseup for Player 9 (Gray) over 6.00 seconds
    Sound - Set position of FrostmourneLoopUndead01 <gen> to (Center of FrostmourneSound <gen>) with Z offset 0
    Sound - Play FrostmourneLoopUndead01 <gen>
    Unit - Order Arthas to Move To (Center of FrostmourneArthasEnters <gen>)
    Unit - Order Muradin to Move To (Center of FrostmourneMuradinEnters <gen>)
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play H09Arthas14 <gen> and display Behold, Muradin, our salvation, Frostmourne.. Modify duration: Add 0 seconds and Wait
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Muradin to Move To (Center of FrostmourneMuradinReads <gen>)
    Cinematic - Send transmission to (All players) from Muradin named Muradin Bronzebeard: Play H09Muradin15 <gen> and display Hold, lad. There's an inscription on the dais. It's a warning. It says, "Whomsoever takes up this blade shall wield power eternal. Just as the blade rends flesh, so must power scar the spirit." Oh, I should've known. The blade is cursed! Let's get the hell out of here!. Modify duration: Add 0 seconds and Don't wait
    Wait (0.20 x (Length of H09Muradin15 <gen>)) seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - Change camera smoothing factor to 0.00
    Camera - Apply gg_cam_FrostmourneSwordPanBegin for Player 2 (Blue) over 0.00 seconds
    Camera - Apply gg_cam_FrostmourneSwordPanBegin for Player 9 (Gray) over 0.00 seconds
    Camera - Apply gg_cam_FrostmourneSwordPanEnd for Player 2 (Blue) over (((0.60 x (Length of H09Muradin15 <gen>)) + 1) + 1) seconds
    Camera - Apply gg_cam_FrostmourneSwordPanEnd for Player 9 (Gray) over (((0.60 x (Length of H09Muradin15 <gen>)) + 1) + 1) seconds
    Wait (0.60 x (Length of H09Muradin15 <gen>)) seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Muradin face Arthas over 0 seconds
    Camera - Change camera smoothing factor to 0.00
    Camera - Apply gg_cam_FrostmourneMuradinSaysLeave for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_FrostmourneMuradinSaysLeave for Player 9 (Gray) over 0 seconds
    Wait for H09Muradin15 <gen> to be 0 seconds from finished playing
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Muradin to Move To (Center of FrostmourneMuradinToArthas <gen>)
    Unit - Order Arthas to Move To (Center of FrostmourneArthasAtDias <gen>)
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play H09Arthas16 <gen> and display I would gladly bear any curse to save my homeland.. Modify duration: Add 0 seconds and Don't wait
    Camera - Apply gg_cam_FrostmourneMuradinToArthas for Player 2 (Blue) over ((Length of H09Arthas16 <gen>) + ((Length of H09Muradin17 <gen>) + (Length of H09Arthas18 <gen>))) seconds
    Camera - Apply gg_cam_FrostmourneMuradinToArthas for Player 9 (Gray) over ((Length of H09Arthas16 <gen>) + ((Length of H09Muradin17 <gen>) + (Length of H09Arthas18 <gen>))) seconds
    Wait (Length of H09Arthas16 <gen>) seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Muradin face Arthas over 0 seconds
    Cinematic - Send transmission to (All players) from Muradin named Muradin Bronzebeard: Play H09Muradin17 <gen> and display Leave it be, Arthas. Forget this business and lead your men home.. Modify duration: Add 0 seconds and Don't wait
    Wait (Length of H09Muradin17 <gen>) seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play H09Arthas18 <gen> and display Damn the men! Nothing shall prevent me from having my revenge, old friend. Not even you.. Modify duration: Add 0 seconds and Wait
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - Change camera smoothing factor to 0.00
    Camera - Apply gg_cam_FrostmourneBeginCloseup for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_FrostmourneBeginCloseup for Player 9 (Gray) over 0 seconds
    Wait 0.05 seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Arthas to Move To (Center of FrostmourneArthasTakesSword <gen>)
    Sound - Attach DivineShield <gen> to Arthas
    Sound - Set volume of DivineShield <gen> to 40.00%
    Sound - Play DivineShield <gen>
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play H09Arthas19 <gen> and display Now, I call out to the spirits of this place. I will give anything or pay any price, if only you will help me save my people.. Modify duration: Add 0 seconds and Don't wait
    Camera - Apply gg_cam_FrostmourneEndCloseup for Player 2 (Blue) over (Length of H09Arthas19 <gen>) seconds
    Camera - Apply gg_cam_FrostmourneEndCloseup for Player 9 (Gray) over (Length of H09Arthas19 <gen>) seconds
    Wait for H09Arthas19 <gen> to be 4.00 seconds from finished playing
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Set volume of FrostmourneChant1 <gen> to 60.00%
    Sound - Play FrostmourneChant1 <gen>
    Wait for H09Arthas19 <gen> to be 1.50 seconds from finished playing
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Frostmourne Pedestal 0226 <gen>'s Stand Third animation
    Sound - Stop FrostmourneLoopUndead01 <gen> After fading
    Wait for H09Arthas19 <gen> to be 0 seconds from finished playing
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - Change camera smoothing factor to 0.00
    Camera - Apply gg_cam_FrostmourneDeathCamera for Player 2 (Blue) over 0.00 seconds
    Camera - Apply gg_cam_FrostmourneDeathCamera for Player 9 (Gray) over 0.00 seconds
    Animation - Play Frostmourne Pedestal 0226 <gen>'s death animation
    Wait 1.50 seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Fade out over 0.25 seconds using texture White Mask and color (100.00%, 100.00%, 100.00%) with 0.00% transparency
    Trigger - Run FrostmourneMuradinHit <gen> (ignoring conditions)
FrostmourneMuradinHit
  Events
  Conditions
  Actions
    Cinematic - Fade in over 3.00 seconds using texture White Mask and color (100.00%, 100.00%, 100.00%) with 0.00% transparency
    Animation - Change Muradin's animation speed to 80.00% of its original speed
    Animation - Play Muradin's death second animation
    Sound - Attach HeroMountainKingDeath <gen> to Muradin
    Sound - Play HeroMountainKingDeath <gen>
    Camera - Change camera smoothing factor to 0.00
    Camera - Apply gg_cam_FrostmourneMuradinDeath_01 for Player 2 (Blue) over 0.01 seconds
    Camera - Apply gg_cam_FrostmourneMuradinDeath_01 for Player 9 (Gray) over 0.01 seconds
    Unit - Make Arthas face Muradin over 0.00 seconds
    Wait 1.00 seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Set SkillHolyLight = (Level of Holy Light for Arthas)
    Set SkillDivineShield = (Level of Divine Shield for Arthas)
    Set SkillDevotionAura = (Level of Devotion Aura for Arthas)
    Set SkillResurrection = (Level of Resurrection for Arthas)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        Unit - Replace Arthas with a Paladin (Insane Frostmourne) using The old unit's relative life and mana
      Else - Actions
        Unit - Replace Arthas with a Paladin (wielding Frostmourne) using The old unit's relative life and mana
    Set EvilArthas = (Last replaced unit)
    Unit - Set level of Holy Light for EvilArthas to SkillHolyLight
    Unit - Set level of Divine Shield for EvilArthas to SkillDivineShield
    Unit - Set level of Devotion Aura for EvilArthas to SkillDevotionAura
    Unit - Set level of Resurrection for EvilArthas to SkillResurrection
    Set SkillHolyLight = 0
    Set SkillDivineShield = 0
    Set SkillDevotionAura = 0
    Set SkillResurrection = 0
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Hero level of EvilArthas) Greater than or equal to 10
      Then - Actions
        Hero - Disable experience gain for EvilArthas
      Else - Actions
    Set ArthasIsEvil = True
    Animation - Play EvilArthas's Stand Fourth animation
    Camera - Change camera smoothing factor to 0.00
    Camera - Apply gg_cam_FrostmourneMuradinDeath_02 for Player 2 (Blue) over 0.01 seconds
    Camera - Apply gg_cam_FrostmourneMuradinDeath_02 for Player 9 (Gray) over 0.01 seconds
    Wait 1.00 seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - Change camera smoothing factor to 0.00
    Camera - Apply gg_cam_FrostmourneMuradinDeath_03 for Player 2 (Blue) over 0.01 seconds
    Camera - Apply gg_cam_FrostmourneMuradinDeath_03 for Player 9 (Gray) over 0.01 seconds
    Wait 2.50 seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play EvilArthas's Stand Fifth animation
    Wait 0.50 seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - Change camera smoothing factor to 0.00
    Camera - Apply gg_cam_FrostmourneMuradinDeath_04 for Player 2 (Blue) over 1.00 seconds
    Camera - Apply gg_cam_FrostmourneMuradinDeath_04 for Player 9 (Gray) over 1.00 seconds
    Sound - Set position of BalrogAttack1 <gen> to (Center of FrostmourneArthasAfterMalsDeath <gen>) with Z offset 0
    Sound - Set volume of BalrogAttack1 <gen> to 40.00%
    Sound - Play BalrogAttack1 <gen>
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 0.20 seconds
    Sound - Set position of ColdArrow2 <gen> to (Center of FrostmourneArthasAfterMalsDeath <gen>) with Z offset 0
    Sound - Set volume of ColdArrow2 <gen> to 45.00%
    Sound - Play ColdArrow2 <gen>
    Wait 3.20 seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Set position of MetalMediumBashStone1 <gen> to (Center of HammerDrop <gen>) with Z offset 0
    Sound - Set volume of MetalMediumBashStone1 <gen> to 60.00%
    Sound - Play MetalMediumBashStone1 <gen>
    Wait 0.60 seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Set position of WoodLightBashStone3 <gen> to (Center of HammerDrop <gen>) with Z offset 0
    Sound - Set volume of WoodLightBashStone3 <gen> to 60.00%
    Sound - Play WoodLightBashStone3 <gen>
    Wait 0.60 seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run FrostmourneCinematicEnd <gen> (ignoring conditions)
FrostmourneCinematicEnd
  Events
  Conditions
  Actions
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Sound - Set volume of FrostmourneChant1 <gen> to 50.00%
    Sound - Play FrostmourneChant1 <gen>
    Wait 2.00 seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Camera - Apply gg_cam_FrostmourneArthasDone for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_FrostmourneArthasDone for Player 9 (Gray) over 0 seconds
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        Hero - Drop the item from slot (Integer A) of Muradin
        Hero - Give (Last dropped item) to Captain
    Trigger - Run ItemFailsafeReplace <gen> (ignoring conditions)
    Unit Group - Remove Arthas from ValleyGroup
    Unit Group - Pick every unit in ValleyGroup and do (Remove (Picked unit) from the game)
    -------- MAKE MALGANIS VULNERABLE --------
    Trigger - Run DestroyMalganisItems <gen> (ignoring conditions)
    Trigger - Turn off GiveAnkh <gen>
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Black mask across FrostmourneDiasVisibility <gen>
    Set DiasVisA1 = (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 9 (Gray) emitting Black mask across FrostmourneDiasVisibility <gen>
    Set DiasVisA2 = (Last created visibility modifier)
    Animation - Play EvilArthas's Stand animation
    If ((Captain is alive) Equal to True) then do (Move Captain instantly to (Center of FrostmourneCaptainSpawn <gen>)) else do (Run FrostmourneEndCaptainFailsafe <gen> (ignoring conditions))
    Wait 1.00 seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Move EvilArthas instantly to (Center of FrostmourneArthasOutside <gen>)
    Unit - Make EvilArthas face 315.00 over 0 seconds
    Trigger - Run FrostmourneArthasTeleports <gen> (ignoring conditions)
    Unit - Unpause Captain
    Unit - Order Captain to Move To (Center of FrostmourneCaptainToArthas <gen>)
    Wait 1.00 seconds
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Captain named Captain Falric: Play H09Captain20 <gen> and display Prince Arthas! Where is Muradin? We can't hold out for much longer!. Modify duration: Add 0 seconds and Wait
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from EvilArthas named Arthas: Play H09Arthas21 <gen> and display Muradin is dead. But take heart, Captain. The enemy will not stand long against the might of Frostmourne!. Modify duration: Add 0 seconds and Wait
    If (FrostmourneCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Turn off FrostmourneCinematicEscapeEvil <gen>
    Trigger - Turn off FrostmourneCinematicEscapeGood <gen>
    Trigger - Turn off Skip_Cinematic <gen>
    Set SkipVote1 = False
    Set SkipVote2 = False
    Set FrostmourneCinematicRunning = False
    Environment - Set sky to None
    Game - Turn the day/night cycle On
    Unit - Unpause all units
    Camera - Reset camera smoothing factor
    Cinematic - Turn cinematic mode Off for (All players)
    -------- ENABLE VICTORY --------
    Trigger - Turn on Green_Base_Dead <gen>
    -------- RESELECT ARTHAS --------
    Selection - Select EvilArthas for Player 2 (Blue)
    Selection - Select Captain for Player 9 (Gray)
    Camera - Reset camera for Player 2 (Blue) to standard game-view over 0.00 seconds
    Camera - Reset camera for Player 9 (Gray) to standard game-view over 0.00 seconds
    AI - Send PlayerUndeadProtector the AI Command (0, 0)
    AI - Send PlayerMalganis the AI Command (0, 0)
    Quest - Mark QuestFrostmourne as Completed
    Quest - Mark QuestReqFrostmourne as Completed
    Quest - Mark QuestReqArthasDie as Completed
    Quest - Mark QuestReqMuradinDie as Completed
    Quest - Display to (All players) the Quest Completed message: |cFFFFCC00MAIN QUEST COMPLETED|rFrostmourne
    Set Cinematic = False
    Wait 10.00 seconds
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Position of Altar of Darkness 0072 <gen>) to a radius of 1024.00
    Visibility - Destroy (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 9 (Gray) emitting Visibility from (Position of Altar of Darkness 0072 <gen>) to a radius of 1024.00
    Visibility - Destroy (Last created visibility modifier)
    Cinematic - Ping minimap for (All players) at (Position of Altar of Darkness 0072 <gen>) for 5.00 seconds
    Camera - Set a spacebar-point for Player 2 (Blue) at (Position of Altar of Darkness 0072 <gen>)
    Camera - Set a spacebar-point for Player 9 (Gray) at (Position of Altar of Darkness 0072 <gen>)
    Sound - Reset all volume channels to 100%
    Quest - Mark QuestMalganis as Discovered
    Quest - Display to (All players) the Quest Discovered message: |cFFFFCC00MAIN QUEST|rMal'Ganis - Destroy Mal'Ganis' Base
FrostmourneEndCaptainFailsafe
  Events
  Conditions
  Actions
    Hero - Instantly revive Captain at (Center of FrostmourneCaptainSpawn <gen>), Hide revival graphics
    Unit - Make Captain face 180.00 over 0 seconds
FrostmourneArthasTeleports
  Events
  Conditions
  Actions
    Special Effect - Create a special effect at (Position of EvilArthas) using Abilities\Spells\Human\MassTeleport\MassTeleportTarget.mdl
    Sound - Set position of MassTeleportTarget <gen> to (Center of FrostmourneArthasOutside <gen>) with Z offset 0
    Sound - Set volume of MassTeleportTarget <gen> to 80.00%
    Sound - Play MassTeleportTarget <gen>
    Set EffectArthasAfterFM = (Last created special effect)
    Wait 2 seconds
    Special Effect - Destroy EffectArthasAfterFM
Arthas Channel
  Events
    Unit - A unit enters FrostmourneArthasTakesSword <gen>
  Conditions
    Arthas Equal to (Entering unit)
  Actions
    Trigger - Turn off (This trigger)
    Unit - Order Arthas to Stop
    Animation - Play Arthas's Stand Channel animation
    Wait (Length of H09Arthas19 <gen>) seconds
    Animation - Play Arthas's Stand animation
FrostmourneCinematicEscapeGood
  Events
  Conditions
    ArthasIsEvil Equal to False
  Actions
    Set SkipVote1 = False
    Set SkipVote2 = False
    Trigger - Turn off (This trigger)
    Trigger - Turn off FrostmourneCinematicEscapeEvil <gen>
    Set FrostmourneCinematicEscape = True
    Set FrostmourneCinematicRunning = False
    Sound - Stop (Last played sound) After fading
    Sound - Reset all volume channels to 100%
    Sound - Stop the currently playing music theme
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2.00 seconds
    If (((Center of FrostmourneValleyVisibilityA <gen>) is masked for Player 2 (Blue)) Equal to True) then do (Do nothing) else do (Enable ValleyVisA1)
    If (((Center of FrostmourneValleyVisibilityB <gen>) is masked for Player 2 (Blue)) Equal to True) then do (Do nothing) else do (Enable ValleyVisB1)
    If (((Center of FrostmourneValleyVisibilityC <gen>) is masked for Player 2 (Blue)) Equal to True) then do (Do nothing) else do (Enable ValleyVisC1)
    If (((Center of FrostmourneValleyVisibilityA <gen>) is masked for Player 9 (Gray)) Equal to True) then do (Do nothing) else do (Enable ValleyVisA2)
    If (((Center of FrostmourneValleyVisibilityB <gen>) is masked for Player 9 (Gray)) Equal to True) then do (Do nothing) else do (Enable ValleyVisB2)
    If (((Center of FrostmourneValleyVisibilityC <gen>) is masked for Player 9 (Gray)) Equal to True) then do (Do nothing) else do (Enable ValleyVisC2)
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Black mask across FrostmourneDiasVisibility <gen>
    Set DiasVisA1 = (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 9 (Gray) emitting Black mask across FrostmourneDiasVisibility <gen>
    Set DiasVisA2 = (Last created visibility modifier)
    Camera - Reset camera smoothing factor
    Camera - Apply gg_cam_FrostmourneArthasDone for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_FrostmourneArthasDone for Player 9 (Gray) over 0 seconds
    Wait 0.01 seconds
    Camera - Reset camera for Player 2 (Blue) to standard game-view over 0.00 seconds
    Camera - Reset camera for Player 9 (Gray) to standard game-view over 0.00 seconds
    Cinematic - Turn cinematic mode Off for (All players)
    Environment - Set sky to None
    Game - Turn the day/night cycle On
    -------- ENABLE VICTORY --------
    Trigger - Turn on Green_Base_Dead <gen>
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        Hero - Drop the item from slot (Integer A) of Muradin
        Hero - Give (Last dropped item) to Captain
    Trigger - Run ItemFailsafeReplace <gen> (ignoring conditions)
    Unit Group - Remove Arthas from ValleyGroup
    Unit - Hide Muradin
    Unit - Change ownership of Muradin to Neutral Passive and Change color
    Unit Group - Pick every unit in ValleyGroup and do (Remove (Picked unit) from the game)
    -------- MAKE MALGANIS VULNERABLE --------
    Trigger - Run DestroyMalganisItems <gen> (ignoring conditions)
    Trigger - Turn off GiveAnkh <gen>
    Set SkillHolyLight = (Level of Holy Light for Arthas)
    Set SkillDivineShield = (Level of Divine Shield for Arthas)
    Set SkillDevotionAura = (Level of Devotion Aura for Arthas)
    Set SkillResurrection = (Level of Resurrection for Arthas)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        Unit - Replace Arthas with a Paladin (Insane Frostmourne) using The old unit's relative life and mana
      Else - Actions
        Unit - Replace Arthas with a Paladin (wielding Frostmourne) using The old unit's relative life and mana
    Set EvilArthas = (Last replaced unit)
    Unit - Set level of Holy Light for EvilArthas to SkillHolyLight
    Unit - Set level of Divine Shield for EvilArthas to SkillDivineShield
    Unit - Set level of Devotion Aura for EvilArthas to SkillDevotionAura
    Unit - Set level of Resurrection for EvilArthas to SkillResurrection
    Set SkillHolyLight = 0
    Set SkillDivineShield = 0
    Set SkillDevotionAura = 0
    Set SkillResurrection = 0
    Unit - Move EvilArthas instantly to (Center of FrostmourneArthasOutside <gen>)
    Unit - Make EvilArthas face 315.00 over 0 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Hero level of EvilArthas) Greater than or equal to 10
      Then - Actions
        Hero - Disable experience gain for EvilArthas
      Else - Actions
    -------- RESELECT ARTHAS --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Captain is alive) Equal to True
      Then - Actions
        Unit - Move Captain instantly to (Center of FrostmourneCaptainToArthas <gen>), facing 150.00 degrees
      Else - Actions
        Hero - Instantly revive Captain at (Center of FrostmourneCaptainToArthas <gen>), Hide revival graphics
        Unit - Make Captain face 150.00 over 0 seconds
    Selection - Select Arthas for Player 2 (Blue)
    Selection - Select Captain for Player 9 (Gray)
    Unit - Unpause all units
    AI - Send PlayerUndeadProtector the AI Command (0, 0)
    AI - Send PlayerMalganis the AI Command (0, 0)
    Quest - Mark QuestFrostmourne as Completed
    Quest - Display to (All players) the Quest Completed message: |cFFFFCC00MAIN QUEST COMPLETED|rFrostmourne
    Set Cinematic = False
    Wait 10.00 seconds
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Position of Altar of Darkness 0072 <gen>) to a radius of 1024.00
    Visibility - Destroy (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 9 (Gray) emitting Visibility from (Position of Altar of Darkness 0072 <gen>) to a radius of 1024.00
    Visibility - Destroy (Last created visibility modifier)
    Cinematic - Ping minimap for (All players) at (Position of Altar of Darkness 0072 <gen>) for 5.00 seconds
    Camera - Set a spacebar-point for Player 2 (Blue) at (Position of Altar of Darkness 0072 <gen>)
    Camera - Set a spacebar-point for Player 9 (Gray) at (Position of Altar of Darkness 0072 <gen>)
    Quest - Mark QuestMalganis as Discovered
    Quest - Display to (All players) the Quest Discovered message: |cFFFFCC00MAIN QUEST|rMal'Ganis - Destroy Mal'Ganis' Base
FrostmourneCinematicEscapeEvil
  Events
  Conditions
    ArthasIsEvil Equal to True
  Actions
    Set SkipVote1 = False
    Set SkipVote2 = False
    Trigger - Turn off (This trigger)
    Trigger - Turn off FrostmourneCinematicEscapeGood <gen>
    Sound - Reset all volume channels to 100%
    Set FrostmourneCinematicEscape = True
    Set FrostmourneCinematicRunning = False
    Sound - Stop (Last played sound) After fading
    Sound - Stop the currently playing music theme
    Camera - Reset camera smoothing factor
    Cinematic - Turn cinematic mode Off for (All players)
    -------- ENABLE VICTORY --------
    Trigger - Turn on Green_Base_Dead <gen>
    -------- RESELECT ARTHAS --------
    Camera - Reset camera for Player 2 (Blue) to standard game-view over 0.00 seconds
    Camera - Reset camera for Player 9 (Gray) to standard game-view over 0.00 seconds
    Environment - Set sky to None
    Game - Turn the day/night cycle On
    -------- MURADIN ITEMS --------
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        Hero - Drop the item from slot (Integer A) of Muradin
        Hero - Give (Last dropped item) to Captain
    Trigger - Run ItemFailsafeReplace <gen> (ignoring conditions)
    Unit Group - Remove Arthas from ValleyGroup
    Unit - Hide Muradin
    Unit - Change ownership of Muradin to Neutral Passive and Change color
    Unit Group - Pick every unit in ValleyGroup and do (Remove (Picked unit) from the game)
    -------- MAKE MALGANIS VULNERABLE --------
    Trigger - Run DestroyMalganisItems <gen> (ignoring conditions)
    Trigger - Turn off GiveAnkh <gen>
    Unit - Move EvilArthas instantly to (Center of FrostmourneArthasOutside <gen>)
    Unit - Make EvilArthas face 315.00 over 0 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Captain is alive) Equal to True
      Then - Actions
        Unit - Move Captain instantly to (Center of FrostmourneCaptainToArthas <gen>), facing 150.00 degrees
      Else - Actions
        Hero - Instantly revive Captain at (Center of FrostmourneCaptainToArthas <gen>), Hide revival graphics
        Unit - Make Captain face 150.00 over 0 seconds
    Selection - Select EvilArthas for Player 2 (Blue)
    Selection - Select Captain for Player 9 (Gray)
    Unit - Unpause all units
    AI - Send PlayerUndeadProtector the AI Command (0, 0)
    AI - Send PlayerMalganis the AI Command (0, 0)
    Quest - Mark QuestFrostmourne as Completed
    Quest - Display to (All players) the Quest Completed message: |cFFFFCC00MAIN QUEST COMPLETED|rFrostmourne
    Set Cinematic = False
    Wait 10.00 seconds
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Position of Altar of Darkness 0072 <gen>) to a radius of 1024.00
    Visibility - Destroy (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 9 (Gray) emitting Visibility from (Position of Altar of Darkness 0072 <gen>) to a radius of 1024.00
    Visibility - Destroy (Last created visibility modifier)
    Cinematic - Ping minimap for (All players) at (Position of Altar of Darkness 0072 <gen>) for 5.00 seconds
    Camera - Set a spacebar-point for Player 2 (Blue) at (Position of Altar of Darkness 0072 <gen>)
    Camera - Set a spacebar-point for Player 9 (Gray) at (Position of Altar of Darkness 0072 <gen>)
    Quest - Mark QuestMalganis as Discovered
    Quest - Display to (All players) the Quest Discovered message: |cFFFFCC00MAIN QUEST|rMal'Ganis - Destroy Mal'Ganis' Base
TriggerExitCinematic
  Events
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set ExitCinematicRunning = True
    Quest - Mark QuestMalganis as Completed
    Quest - Mark QuestReqMalganis as Completed
    Quest - Display to (All players) the Quest Completed message: |cFFFFCC00MAIN QUEST COMPLETED|rMal'Ganis
    Wait Campaign quest delay seconds
    Trigger - Turn on ExitCinematicEscape <gen>
    Trigger - Turn on Skip_Cinematic <gen>
    Trigger - Run ExitCinematicSetup <gen> (ignoring conditions)
    Unit Group - Pick every unit in (Units of type Peasant) and do (Order (Picked unit) to Stop)
    Wait 1.00 seconds
    Set Cinematic = True
    Unit Group - Pick every unit in (Units of type Peasant) and do (Order (Picked unit) to Stop)
ExitCinematicSetup
  Events
  Conditions
  Actions
    Game - Turn the day/night cycle Off
    Environment - Set sky to Blizzard Sky
    Environment - Remove WeatherSnow
    -------- PLAY SOUND THEME --------
    Sound - Set Music to 35.00%
    Sound - Play Dark Victory
    Selection - Clear selection
    Environment - Turn WeatherSnow Off
    Environment - Create at ExitCinematicWeather_Blizzard <gen> the weather effect Northrend Blizzard
    Set Blizzard = (Last created weather effect)
    Environment - Turn Blizzard On
    Environment - Set fog to style 0 (fogstyle), z-start 300.00, z-end 2000.00, density 0 and color (100%, 100%, 100%)
    Cinematic - Turn cinematic mode On for (All players)
    Unit - Pause all units
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player - For Player 2 (Blue), turn Alliance (non-aggression) On toward Player 7 (Green)
    Player - For Player 9 (Gray), turn Alliance (non-aggression) On toward Player 7 (Green)
    Player - For Player 7 (Green), turn Alliance (non-aggression) On toward Player 2 (Blue)
    Player - For Player 7 (Green), turn Alliance (non-aggression) On toward Player 9 (Gray)
    Camera - Apply gg_cam_ExitInitialCamera for Player 2 (Blue) over 0.00 seconds
    Camera - Apply gg_cam_ExitInitialCamera for Player 9 (Gray) over 0.00 seconds
    Trigger - Run ExitCinematicActorSetup <gen> (ignoring conditions)
ExitCinematicActorSetup
  Events
  Conditions
  Actions
    If ((Malganis is dead) Equal to True) then do (Instantly revive Malganis at (Center of ExitMalganisInitialPosition <gen>), Hide revival graphics) else do (Move Malganis instantly to (Center of ExitMalganisInitialPosition <gen>))
    If ((EvilArthas is dead) Equal to True) then do (Instantly revive EvilArthas at (Center of ExitArthasInitialPosition <gen>), Hide revival graphics) else do (Move EvilArthas instantly to (Center of ExitArthasInitialPosition <gen>))
    AI - Ignore Malganis's guard position
    Unit - Unpause EvilArthas
    Unit - Unpause Malganis
    Unit - Make EvilArthas face Malganis over 0 seconds
    Unit - Make Malganis face EvilArthas over 0 seconds
    Unit - Remove All buffs from EvilArthas
    Unit - Remove All buffs from Malganis
    Animation - Play EvilArthas's stand animation, using only Common animations
    Animation - Play Malganis's stand animation, using only Common animations
    Trigger - Run ExitCinematicArthasMalganisTalk <gen> (ignoring conditions)
ExitCinematicArthasMalganisTalk
  Events
  Conditions
  Actions
    Environment - Create at ExitCinematicWeather_Blizzard <gen> the weather effect Northrend Blizzard
    Set WeatherSnow = (Last created weather effect)
    Environment - Turn WeatherSnow On
    Wait 0.01 seconds
    Environment - Create at ExitCinematicWeather_Blizzard <gen> the weather effect Wind (Heavy)
    Set Blizzard = (Last created weather effect)
    Environment - Turn Blizzard On
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Malganis named Mal'Ganis: Play H09MalGanis23 <gen> and display So, you've taken up Frostmourne at the expense of your comrades' lives, just as the Dark Lord said you would. You're stronger than I thought.. Modify duration: Add 0 seconds and Don't wait
    Camera - Apply gg_cam_ExitZoomIn for Player 2 (Blue) over (Length of (Last played sound)) seconds
    Camera - Apply gg_cam_ExitZoomIn for Player 9 (Gray) over (Length of (Last played sound)) seconds
    Wait for (Last played sound) to be 0 seconds from finished playing
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from EvilArthas named Arthas: Play H09Arthas24 <gen> and display You waste your breath, Mal'Ganis. I heed only the voice of Frostmourne now.. Modify duration: Add 0 seconds and Wait
    Camera - Change camera smoothing factor to 0.00
    Camera - Apply gg_cam_Exit_Malganis_01 for Player 2 (Blue) over 0.01 seconds
    Camera - Apply gg_cam_Exit_Malganis_01 for Player 9 (Gray) over 0.01 seconds
    Wait 0.01 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Malganis named Mal'Ganis: Play H09MalGanis25 <gen> and display You hear the voice of the Dark Lord. He whispers to you through the blade you wield. What does he say, young human? What does the Dark Lord of the Dead tell you now?. Modify duration: Add 0 seconds and Don't wait
    Camera - Apply gg_cam_Exit_Malganis_02 for Player 2 (Blue) over (Length of (Last played sound)) seconds
    Camera - Apply gg_cam_Exit_Malganis_02 for Player 9 (Gray) over (Length of (Last played sound)) seconds
    Wait for H09MalGanis25 <gen> to be 1.00 seconds from finished playing
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Set volume of FrostmourneChant1 <gen> to 35.00%
    Sound - Play FrostmourneChant1 <gen>
    Wait for H09MalGanis25 <gen> to be 0.00 seconds from finished playing
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Fade out over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.60 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - Change camera smoothing factor to 0.00
    Camera - Apply gg_cam_Exit_Arthas_01 for Player 2 (Blue) over 0.01 seconds
    Camera - Apply gg_cam_Exit_Arthas_01 for Player 9 (Gray) over 0.01 seconds
    Cinematic - Fade in over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.25 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 0.15 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from EvilArthas named Arthas: Play H09Arthas26 <gen> and display He tells me that the time for my vengeance has come.. Modify duration: Add 0 seconds and Wait
    Wait 0.50 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - Change camera smoothing factor to 0.00
    Camera - Apply gg_cam_Camera_026 for Player 2 (Blue) over 0.01 seconds
    Camera - Apply gg_cam_Camera_026 for Player 9 (Gray) over 0.01 seconds
    Cinematic - Send transmission to (All players) from Malganis named Mal'Ganis: Play H09MalGanis27 <gen> and display What? He can't possibly mean to--. Modify duration: Add 0 seconds and Don't wait
    Unit - Make Malganis face (Center of ExitMalganisLookTo_1 <gen>) over 0 seconds
    Animation - Lock Malganis's Head to face EvilArthas, offset by (0, 0, 90)
    Unit - Order EvilArthas to Move To (Center of ExitArthasMovesToMalganis <gen>)
    Wait for H09MalGanis27 <gen> to be 3.00 seconds from finished playing
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Set life of Malganis to 1.00
    Unit - Order EvilArthas to Attack Malganis
    Unit - Make Malganis face (Center of ExitMalganisLookTo_2 <gen>) over 0 seconds
    Sound - Reset all volume channels to 100%
    Camera - Change camera smoothing factor to 0.00
    Camera - Apply gg_cam_Camera_027 for Player 2 (Blue) over 0.01 seconds
    Camera - Apply gg_cam_Camera_027 for Player 9 (Gray) over 0.01 seconds
    Camera - Change camera smoothing factor to 0.00
    Camera - Apply gg_cam_Camera_028 for Player 2 (Blue) over 0.01 seconds
    Camera - Apply gg_cam_Camera_028 for Player 9 (Gray) over 0.01 seconds
    Wait for H09MalGanis27 <gen> to be 0.00 seconds from finished playing
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from EvilArthas named Arthas: Play H09Arthas28 <gen> and display It is finished.. Modify duration: Add 0 seconds and Don't wait
    Wait for H09Arthas28 <gen> to be 0 seconds from finished playing
    If (ExitCinematicEscape 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 (100.00%, 100.00%, 100.00%) with 0% transparency
    Sound - Stop the currently playing music theme
    Wait 2.50 seconds
    Cinematic - Send transmission to (All players) from EvilArthas named Arthas: Play H09Arthas28a <gen> and display I'm so tired.. Modify duration: Add 0 seconds and Don't wait
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run ExitArthasRuns <gen> (ignoring conditions)
ExitArthasRuns
  Events
  Conditions
  Actions
    Unit - Move EvilArthas instantly to (Center of ExitArthaslPositionRunStart <gen>)
    Environment - Set fog to style 0 (fogstyle), z-start 300.00, z-end 1500.00, density 0 and color (100%, 100%, 100%)
    Environment - Remove WeatherSnow
    Environment - Remove Blizzard
    Environment - Create at ExitCinematicWeather_Blizzard_Running <gen> the weather effect Northrend Blizzard
    Set WeatherSnow = (Last created weather effect)
    Environment - Turn WeatherSnow On
    Wait 0.01 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Environment - Create at ExitCinematicWeather_Blizzard_Running <gen> the weather effect Wind (Heavy)
    Set Blizzard = (Last created weather effect)
    Environment - Turn Blizzard On
    Wait 0.50 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Set EvilArthas movement speed to 150.00
    Unit - Order EvilArthas to Move To (Center of ExitArthasPositionRunTo <gen>)
    Wait 1.00 seconds
    Camera - Apply gg_cam_ExitArthasRun_Follow for Player 2 (Blue) over 0.01 seconds
    Camera - Apply gg_cam_ExitArthasRun_Follow for Player 9 (Gray) over 0.01 seconds
    Camera - Lock camera target for Player 2 (Blue) to EvilArthas, offset by (0, 0) using Default rotation
    Camera - Lock camera target for Player 9 (Gray) to EvilArthas, offset by (0, 0) using Default rotation
    Wait 0.50 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (100.00%, 100.00%, 100.00%) with 0% transparency
    Sound - Set music volume to 100%
    Sound - Play Sad Mystery
    Camera - Apply gg_cam_ExitArthasRun_1 for Player 2 (Blue) over 0.01 seconds
    Camera - Apply gg_cam_ExitArthasRun_1 for Player 9 (Gray) over 0.01 seconds
    Wait 0.01 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - Apply gg_cam_ExitArthasRun_2 for Player 2 (Blue) over 15.00 seconds
    Camera - Apply gg_cam_ExitArthasRun_2 for Player 9 (Gray) over 15.00 seconds
    Unit - Set EvilArthas movement speed to 150.00
    Unit - Order EvilArthas to Move To (Center of ExitArthasPositionRunTo <gen>)
    Wait 11.00 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run ExitCinematicEnd <gen> (ignoring conditions)
ExitCinematicEnd
  Events
  Conditions
  Actions
    Cinematic - Fade out over 4.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 4.20 seconds
    Trigger - Turn off ExitCinematicEscape <gen>
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
      Loop - Actions
        Unit - Pause (Picked unit)
        Item - Make (Picked item) Invulnerable
        Unit - Hide (Picked unit)
    Wait 1.00 seconds
    Cinematic - Turn cinematic mode Off for (All players)
    Wait 1.00 seconds
    Set Endgame = True
    Trigger - Run Endgame_Text <gen> (checking conditions)
ExitCinematicEscape
  Events
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set ExitCinematicEscape = True
    Set ExitCinematicRunning = False
    Sound - Stop (Last played sound) After fading
    Cinematic - Fade out over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2.00 seconds
    Cinematic - Turn cinematic mode Off for (All players)
    Wait 1.00 seconds
    Set Endgame = True
    Trigger - Run Endgame_Text <gen> (checking conditions)
Hero Dies
  Events
    Unit - Paladin 0179 <gen> Dies
    Unit - Mountain King 0184 <gen> Dies
  Conditions
    HeroDefeatPossible Equal to True
    GameOver Equal to False
  Actions
    Set GameOver = True
    Trigger - Turn off (This trigger)
    Game - Display to (All players) for 600.00 seconds the text: |cffffcc00MAIN QUEST FAILED|r
    Game - Display to (All players) for 600.00 seconds the text: ((Proper name of (Triggering unit)) + was slain.)
    Sound - Play QuestFailed <gen>
    Game - Turn the day/night cycle Off
    Wait 1.00 seconds
    Cinematic - Fade out over 2 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Sound - Play SadMystery <gen>
    Wait 2 seconds
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Make (Picked unit) Invulnerable)
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Order (Picked unit) to Stop)
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Hide (Picked unit))
All Buildings Destroyed
  Events
    Unit - A unit owned by Player 2 (Blue) Dies
    Unit - A unit owned by Player 9 (Gray) Dies
  Conditions
    ExitCinematicRunning Equal to False
    (Count structures controlled by Player 2 (Blue) (Include incomplete structures)) Equal to 0
    (Count structures controlled by Player 9 (Gray) (Include incomplete structures)) Equal to 0
    GameOver Equal to False
  Actions
    Set GameOver = True
    Trigger - Turn off (This trigger)
    Game - Display to (All players) for 600.00 seconds the text: |cffffcc00MAIN QUEST FAILED|r
    Game - Display to (All players) for 600.00 seconds the text: The base was destroyed.
    Game - Turn the day/night cycle Off
    Sound - Play QuestFailed <gen>
    Wait 1.00 seconds
    Cinematic - Fade out over 2 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2 seconds
    Sound - Play SadMystery <gen>
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Make (Picked unit) Invulnerable)
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Order (Picked unit) to Stop)
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Hide (Picked unit))
Green Base Dead
  Events
    Time - Every 2.00 seconds of game time
  Conditions
    GameOver Equal to False
    (QuestMalganis is discovered) Equal to True
    (Malganis is dead) Equal to True
    (Number of units in (Units owned by Player 7 (Green) matching (((((Matching unit) is A structure) Equal to True) and ((Unit-type of (Matching unit)) Not equal to Spirit Tower)) and (((Unit-type of (Matching unit)) Not equal to Ziggurat) and (((Matching unit) is alive) Equal to True))))) Equal to 0
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off All_Buildings_Destroyed <gen>
    Trigger - Clear all pending triggers from the trigger queue
    Trigger - Run TriggerExitCinematic <gen> (ignoring conditions)
Setup Insane
  Events
  Conditions
  Actions
    Set MissionNumber = 19
    Unit - Remove Gryphon Rider 0133 <gen> from the game
    Unit - Remove Knight 0110 <gen> from the game
    Unit - Remove Gryphon Aviary 0022 <gen> from the game
    Unit - Remove Gryphon Aviary 0175 <gen> from the game
    Unit - Replace Castle 0004 <gen> with a Keep using The old unit's relative life and mana
    Set TempPoint = (Position of (Last replaced unit))
    Unit - Create 1 Return GoldLumber Dummy for Player 9 (Gray) at TempPoint facing Default building facing degrees
    Set x = (X of TempPoint)
    Set y = (Y of TempPoint)
    Custom script: call SetUnitX(GetLastCreatedUnit(), udg_x)
    Custom script: call SetUnitY(GetLastCreatedUnit(), udg_y)
    Unit - Turn collision for (Last created unit) Off
    Set TempUGroup = (Units in (Playable map area) matching ((Matching unit) Equal to (Last replaced unit)))
    Unit Group - Pick every unit in TempUGroup and do (Actions)
      Loop - Actions
        Hashtable - Save Handle Of(Last created unit) as 0 of (Key (Picked unit)) in (Last created hashtable)
    Custom script: call DestroyGroup (udg_TempUGroup)
    Custom script: call RemoveLocation (udg_TempPoint)
    Unit Group - Add (Last replaced unit) to ResourceDropBuildings
    Unit - Replace Castle 0121 <gen> with a Keep using The old unit's relative life and mana
    Set TempPoint = (Position of (Last replaced unit))
    Unit - Create 1 Return GoldLumber Dummy for Player 9 (Gray) at TempPoint facing Default building facing degrees
    Set x = (X of TempPoint)
    Set y = (Y of TempPoint)
    Custom script: call SetUnitX(GetLastCreatedUnit(), udg_x)
    Custom script: call SetUnitY(GetLastCreatedUnit(), udg_y)
    Unit - Turn collision for (Last created unit) Off
    Set TempUGroup = (Units in (Playable map area) matching ((Matching unit) Equal to (Last replaced unit)))
    Unit Group - Pick every unit in TempUGroup and do (Actions)
      Loop - Actions
        Hashtable - Save Handle Of(Last created unit) as 0 of (Key (Picked unit)) in (Last created hashtable)
    Custom script: call DestroyGroup (udg_TempUGroup)
    Custom script: call RemoveLocation (udg_TempPoint)
    Unit Group - Add (Last replaced unit) to ResourceDropBuildings
    Set RequirementTech[3] = False
    Unit - Remove RequirementUnitP1[3] from the game
    Unit - Remove RequirementUnitP2[3] from the game
    Unit - Replace Guardian with a The Guardian Insane using The old unit's relative life and mana
    Set Guardian = (Last replaced unit)
    Unit Group - Pick every unit in (Units owned by Neutral Hostile) and do (Make (Picked unit) Remain awake when unprovoked at night)
    Unit - Make Guardian Invulnerable
    Unit - Pause Guardian
    Trigger - Add to Guardian_Spell <gen> the event (Guardian Takes damage)
    Unit - Replace Malganis with a Dreadlord (Insane) using The old unit's relative life and mana
    Set Malganis = (Last replaced unit)
    Hero - Set Malganis Hero-level to 14, Hide level-up graphics
    Hero - Learn skill for Malganis: Carrion Swarm (Insane)
    Hero - Learn skill for Malganis: Carrion Swarm (Insane)
    Hero - Learn skill for Malganis: Carrion Swarm (Insane)
    Hero - Learn skill for Malganis: Undead Dreadlord - Sleep
    Hero - Learn skill for Malganis: Undead Dreadlord - Sleep
    Hero - Learn skill for Malganis: Undead Dreadlord - Sleep
    Hero - Learn skill for Malganis: Bat Swarm
    -------- DIFFICULTY --------
    -------- ===TEAL=== --------
    Set TempInteger = 3
    Player - Set the current research level of Rume (techcode) to 2 for (Player(TempInteger))
    Player - Set the current research level of Rura (techcode) to 2 for (Player(TempInteger))
    Player - Set the current research level of Ruar (techcode) to 2 for (Player(TempInteger))
    Player - Set the current research level of Rucr (techcode) to 2 for (Player(TempInteger))
    Player - Set the current research level of Ruac (techcode) to 1 for (Player(TempInteger))
    Player - Set the current research level of Rugf (techcode) to 1 for (Player(TempInteger))
    -------- ===PURPLE=== --------
    Set TempInteger = 4
    Player - Set the current research level of Rume (techcode) to 2 for (Player(TempInteger))
    Player - Set the current research level of Rura (techcode) to 2 for (Player(TempInteger))
    Player - Set the current research level of Ruar (techcode) to 2 for (Player(TempInteger))
    Player - Set the current research level of Rucr (techcode) to 2 for (Player(TempInteger))
    Player - Set the current research level of Rune (techcode) to 1 for (Player(TempInteger))
    Player - Set the current research level of Ruac (techcode) to 1 for (Player(TempInteger))
    Player - Set the current research level of Ruwb (techcode) to 1 for (Player(TempInteger))
    Player - Set the current research level of Rusl (techcode) to 1 for (Player(TempInteger))
    -------- ===YELLOW=== --------
    Set TempInteger = 5
    Player - Set the current research level of Rume (techcode) to 2 for (Player(TempInteger))
    Player - Set the current research level of Rura (techcode) to 2 for (Player(TempInteger))
    Player - Set the current research level of Ruar (techcode) to 2 for (Player(TempInteger))
    Player - Set the current research level of Rucr (techcode) to 2 for (Player(TempInteger))
    Player - Set the current research level of Rune (techcode) to 1 for (Player(TempInteger))
    Player - Set the current research level of Ruac (techcode) to 1 for (Player(TempInteger))
    Player - Set the current research level of Ruwb (techcode) to 1 for (Player(TempInteger))
    Player - Set the current research level of Rusl (techcode) to 1 for (Player(TempInteger))
    -------- ===GREEN=== --------
    Set TempInteger = 7
    Player - Set the current research level of Rume (techcode) to 3 for (Player(TempInteger))
    Player - Set the current research level of Rura (techcode) to 3 for (Player(TempInteger))
    Player - Set the current research level of Ruar (techcode) to 3 for (Player(TempInteger))
    Player - Set the current research level of Rucr (techcode) to 3 for (Player(TempInteger))
    Player - Set the current research level of Rune (techcode) to 2 for (Player(TempInteger))
    Player - Set the current research level of Ruac (techcode) to 1 for (Player(TempInteger))
    Player - Set the current research level of Rugf (techcode) to 1 for (Player(TempInteger))
    Player - Set the current research level of Ruwb (techcode) to 1 for (Player(TempInteger))
    Player - Set the current research level of Rusl (techcode) to 1 for (Player(TempInteger))
    Player - Set the current research level of Rupc (techcode) to 1 for (Player(TempInteger))
    Player - Set the current research level of Rusf (techcode) to 1 for (Player(TempInteger))
    Player - Set the current research level of Rufb (techcode) to 1 for (Player(TempInteger))
    Set TempInteger = 0
    -------- DIFFICULTY DONE --------
    Unit - Set mana of Necromancer 0109 <gen> to 100%
    Unit - Set mana of Necromancer 0231 <gen> to 100%
    Unit - Set mana of Necromancer 0230 <gen> to 100%
    Trigger - Add to Malganis_Spell <gen> the event (Malganis Takes damage)
Guardian Spell
  Events
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Random integer number between 1 and 3) Equal to 1
      Then - Actions
        Unit - Order Guardian to Night Elf Keeper Of The Grove - Entangling Roots (Damage source)
      Else - Actions
Malganis Spell
  Events
  Conditions
    ((Damage source) is A Hero) Equal to True
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Random integer number between 1 and 3) Equal to 1
      Then - Actions
        Unit - Order Malganis to Undead Crypt Lord - Locust Swarm
      Else - Actions
Extra Expansions Clear
  Events
    Time - Every 3.00 seconds of game time
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in (Units in Gold_Mine_1 <gen> matching ((((Matching unit) is A structure) Equal to True) and ((Owner of (Matching unit)) Equal to Player 3 (Teal))))) Equal to 0
        (Number of units in (Units in Gold_Mine_1 <gen> matching ((((Matching unit) is A structure) Equal to True) and ((Owner of (Matching unit)) Equal to Player 4 (Purple))))) Equal to 0
        (Number of units in (Units in Gold_Mine_1 <gen> matching ((((Matching unit) is A structure) Equal to True) and ((Owner of (Matching unit)) Equal to Player 7 (Green))))) Equal to 0
        (Number of units in (Units in Gold_Mine_1 <gen> matching ((((Matching unit) is A structure) Equal to True) and ((Owner of (Matching unit)) Equal to Neutral Hostile)))) Equal to 0
      Then - Actions
        Set BaseCleared[1] = True
      Else - Actions
        Set BaseCleared[1] = False
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in (Units in Gold_Mine_2 <gen> matching ((((Matching unit) is A structure) Equal to True) and ((Owner of (Matching unit)) Equal to Player 3 (Teal))))) Equal to 0
        (Number of units in (Units in Gold_Mine_2 <gen> matching ((((Matching unit) is A structure) Equal to True) and ((Owner of (Matching unit)) Equal to Player 4 (Purple))))) Equal to 0
        (Number of units in (Units in Gold_Mine_2 <gen> matching ((((Matching unit) is A structure) Equal to True) and ((Owner of (Matching unit)) Equal to Player 7 (Green))))) Equal to 0
        (Number of units in (Units in Gold_Mine_2 <gen> matching ((((Matching unit) is A structure) Equal to True) and ((Owner of (Matching unit)) Equal to Neutral Hostile)))) Equal to 0
      Then - Actions
        Set BaseCleared[2] = True
      Else - Actions
        Set BaseCleared[2] = False
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in (Units in Gold_Mine_3 <gen> matching ((((Matching unit) is A structure) Equal to True) and ((Owner of (Matching unit)) Equal to Player 3 (Teal))))) Equal to 0
        (Number of units in (Units in Gold_Mine_3 <gen> matching ((((Matching unit) is A structure) Equal to True) and ((Owner of (Matching unit)) Equal to Player 4 (Purple))))) Equal to 0
        (Number of units in (Units in Gold_Mine_3 <gen> matching ((((Matching unit) is A structure) Equal to True) and ((Owner of (Matching unit)) Equal to Player 7 (Green))))) Equal to 0
        (Number of units in (Units in Gold_Mine_3 <gen> matching ((((Matching unit) is A structure) Equal to True) and ((Owner of (Matching unit)) Equal to Neutral Hostile)))) Equal to 0
      Then - Actions
        Set BaseCleared[3] = True
      Else - Actions
        Set BaseCleared[3] = False
Computer Upkeep
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Player 4 (Purple) Food used) Less than 50
      Then - Actions
        Player - Set Player 4 (Purple) Gold upkeep rate to 0
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Player 4 (Purple) Food used) Less than 80
        (Player 4 (Purple) Food used) Greater than or equal to 50
      Then - Actions
        Player - Set Player 4 (Purple) Gold upkeep rate to 30
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Player 4 (Purple) Food used) Greater than or equal to 80
      Then - Actions
        Player - Set Player 4 (Purple) Gold upkeep rate to 80
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Player 7 (Green) Food used) Less than 50
      Then - Actions
        Player - Set Player 7 (Green) Gold upkeep rate to 0
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Player 7 (Green) Food used) Less than 80
        (Player 7 (Green) Food used) Greater than or equal to 50
      Then - Actions
        Player - Set Player 7 (Green) Gold upkeep rate to 30
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Player 7 (Green) Food used) Greater than or equal to 80
      Then - Actions
        Player - Set Player 7 (Green) Gold upkeep rate to 80
      Else - Actions
Player Limits
  Events
    Map initialization
  Conditions
  Actions
    Set Arthas = Paladin 0179 <gen>
    Set Muradin = Mountain King 0184 <gen>
    Set Captain = Captain 0187 <gen>
    Player - Set Player 2 (Blue) Food max to 60
    Player - Set Player 9 (Gray) Food max to 60
Item Drop Bonuses
  Events
    Unit - Nerubian Seer 0160 <gen> Dies
    Unit - Nerubian Spider Lord 0159 <gen> Dies
    Unit - Dire Frost Wolf 0012 <gen> Dies
    Unit - Dire Frost Wolf 0139 <gen> Dies
    Unit - Wendigo Shaman 0266 <gen> Dies
    Unit - Ice Troll Warlord 0093 <gen> Dies
  Conditions
  Actions
    Set BonusesFound = (BonusesFound + 1)
Timer Trigger
  Events
    Time - Every 1.00 seconds of game time
  Conditions
    Cinematic Equal to False
  Actions
    Set TimeSecondsTotal = (TimeSecondsTotal + 1)
    Set TimeSeconds = (TimeSeconds + 1)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TimeSeconds Greater than or equal to 60
      Then - Actions
        Set TimeSeconds = (TimeSeconds - 60)
        Set TimeMins = (TimeMins + 1)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TimeMins Greater than or equal to 60
      Then - Actions
        Set TimeMins = (TimeMins - 60)
        Set TimeHours = (TimeMins + 1)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TimeSeconds Less than 10
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TimeMins Less than 10
          Then - Actions
            Set TimeTakenString = ((((String(TimeHours)) + :0) + (String(TimeMins))) + (:0 + (String(TimeSeconds))))
          Else - Actions
            Set TimeTakenString = ((((String(TimeHours)) + :) + (String(TimeMins))) + (:0 + (String(TimeSeconds))))
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TimeMins Less than 10
          Then - Actions
            Set TimeTakenString = ((((String(TimeHours)) + :0) + (String(TimeMins))) + (: + (String(TimeSeconds))))
          Else - Actions
            Set TimeTakenString = ((((String(TimeHours)) + :) + (String(TimeMins))) + (: + (String(TimeSeconds))))
Skip Cinematic
  Events
    Player - Player 2 (Blue) skips a cinematic sequence
    Player - Player 9 (Gray) skips a cinematic sequence
  Conditions
    Cinematic Equal to True
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 2 (Blue)
        SkipVote1 Equal to False
        SkipVote2 Equal to False
      Then - Actions
        Set SkipVote1 = True
        Game - Display to (All players) the text: ((Name of Player 2 (Blue)) + wishes to skip the cinematic.)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 9 (Gray)
        SkipVote1 Equal to False
        SkipVote2 Equal to False
      Then - Actions
        Set SkipVote2 = True
        Game - Display to (All players) the text: ((Name of Player 9 (Gray)) + wishes to skip the cinematic.)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 2 (Blue)
        SkipVote1 Equal to False
        SkipVote2 Equal to True
      Then - Actions
        Set SkipVote1 = True
        Game - Display to (All players) the text: Cinematic was skipped.
        Trigger - Turn off (This trigger)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (IntroCinematicEscape <gen> is on) Equal to True
          Then - Actions
            Trigger - Run IntroCinematicEscape <gen> (checking conditions)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (FrostmourneCinematicEscapeEvil <gen> is on) Equal to True
          Then - Actions
            Trigger - Run FrostmourneCinematicEscapeEvil <gen> (checking conditions)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (FrostmourneCinematicEscapeGood <gen> is on) Equal to True
          Then - Actions
            Trigger - Run FrostmourneCinematicEscapeGood <gen> (checking conditions)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (ExitCinematicEscape <gen> is on) Equal to True
          Then - Actions
            Trigger - Run ExitCinematicEscape <gen> (checking conditions)
          Else - Actions
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 9 (Gray)
        SkipVote1 Equal to True
        SkipVote2 Equal to False
      Then - Actions
        Set SkipVote1 = True
        Game - Display to (All players) the text: Cinematic was skipped.
        Trigger - Turn off (This trigger)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (IntroCinematicEscape <gen> is on) Equal to True
          Then - Actions
            Trigger - Run IntroCinematicEscape <gen> (checking conditions)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (FrostmourneCinematicEscapeEvil <gen> is on) Equal to True
          Then - Actions
            Trigger - Run FrostmourneCinematicEscapeEvil <gen> (checking conditions)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (FrostmourneCinematicEscapeGood <gen> is on) Equal to True
          Then - Actions
            Trigger - Run FrostmourneCinematicEscapeGood <gen> (checking conditions)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (ExitCinematicEscape <gen> is on) Equal to True
          Then - Actions
            Trigger - Run ExitCinematicEscape <gen> (checking conditions)
          Else - Actions
      Else - Actions
Leaves Game
  Events
    Player - Player 2 (Blue) leaves the game
    Player - Player 9 (Gray) leaves the game
  Conditions
  Actions
    Game - Display to (All players) the text: ((Name of (Triggering player)) + has left the game.)
    Sound - Play CreepAggroWhat1 <gen>
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        GameSelection Equal to True
      Then - Actions
        Set EnoughPlayers = False
        Cinematic - Clear the screen of text messages for (All players)
        Sound - Play QuestLog <gen>
        Trigger - Run Startgame_Text_3 <gen> (checking conditions)
      Else - Actions
Custom Variables
  Events
    Map initialization
  Conditions
  Actions
    Game - Set Lock resource trading to On
    Cinematic - Fade out over 0.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Set MissionNumber = 9
    Set SubquestsTotal = 0
    Set BonusesTotal = 6
    Set ExtraTotal = 3
    Set TimeMin = 1200.00
    Set TimeMax = 2400.00
    Set TimeRange = (TimeMax - TimeMin)
    Set ScoreBonuses = 40
    Set ScoreExtra = 60
    Set ScoreSubquests = 0
    Set ScoreTime = 120
    Set ScoreMax = ((SubquestsTotal x ScoreSubquests) + ((BonusesTotal x ScoreBonuses) + ((ExtraTotal x ScoreExtra) + ScoreTime)))
    Set ScoreLimit[4] = (Integer((((Real(ScoreMax)) x 0.90) + 0.50)))
    Set ScoreLimit[3] = (Integer((((Real(ScoreMax)) x 0.75) + 0.50)))
    Set ScoreLimit[2] = (Integer((((Real(ScoreMax)) x 0.55) + 0.50)))
    Set ScoreLimit[1] = (Integer((((Real(ScoreMax)) x 0.30) + 0.50)))
    -------- Items To be Saved --------
    Set SaveLoad_Items[1] = Potion of Healing
    Set SaveLoad_Items[2] = Potion of Mana
    Set SaveLoad_Items[3] = Scroll of Healing
    Set SaveLoad_Items[4] = Scroll of Protection
    Set SaveLoad_Items[5] = Ring of Protection +1
    Set SaveLoad_Items[6] = Maul of Strength
    Set SaveLoad_Items[7] = Wand of Negation
    Set SaveLoad_Items[8] = Gauntlets of Ogre Strength +3
    Set SaveLoad_Items[9] = Claws of Attack +3
    Set SaveLoad_Items[10] = Orb of Fire
    Set SaveLoad_Items[11] = Mantle of Intelligence +3
    Set SaveLoad_Items[12] = Bracer of Agility
    Set SaveLoad_Items[13] = Potion of Greater Healing
    Set SaveLoad_Items[14] = Ring of Superiority
    Set SaveLoad_Items[15] = Claws of Attack +6
    Set SaveLoad_Items[16] = Ring of Protection +2
    Set SaveLoad_Items[17] = Periapt of Vitality
    Set SaveLoad_Items[18] = Scroll of Town Portal
    Set SaveLoad_Items[19] = Medallion of Courage
    Set SaveLoad_Items[20] = Boots of Speed
    Set SaveLoad_Items[21] = Talisman of Evasion
    Set SaveLoad_Items[22] = Orb of Frost
    Set SaveLoad_Items[23] = Scroll of the Beast
    Set SaveLoad_Items[24] = Goblin Night Scope
    Set SaveLoad_Items[25] = Ring of Regeneration
    Set SaveLoad_Items[26] = Claws of Attack +12
    Set SaveLoad_Items[27] = Potion of Greater Mana
    Set SaveLoad_Items[28] = Mana Stone
    Set SaveLoad_Items[29] = Sobi Mask
    Set SaveLoad_Items[30] = Pendant of Mana
    Set SaveLoad_Items[31] = Amulet of Recall
    Set SaveLoad_Items[32] = Healing Wards
    Set SaveLoad_Items[33] = Ring of Protection +3
    Set SaveLoad_Items[34] = Periapt of Vitality
    Set SaveLoad_Items[35] = Slippers of Agility +3
    Set SaveLoad_Items[36] = Health Stone
    Set SaveLoad_Items_LastIndex = 36
    -------- Leave as is. Used to autocreate variables when copy & pasting to a new map --------
    Set SaveLoad_Alphabet = ABCDEFGHIJKLMNPQRSTUVWXYZ123456789abcdefghijklmnopqrstuvwxyz
    Set SaveLoad_CaseSensitive = True
    Set SaveLoad_UsePlayername = False
    -------- Required: false --------
    Set SaveLoad_Initialized = False
    Set Code = AceHart
    Set Save[1] = 0
    Set SaveCount = 1
    Set Validate = False
    Set SaveLoad_Compress[1] = 0
    Set SaveLoad_Uncompress[1] = 0
Command Remove
  Events
    Unit - A unit Dies
  Conditions
    (Unit-type of (Triggering unit)) Equal to Command Ward
  Actions
    Set TempPoint = (Position of (Summoned unit))
    Special Effect - Create a special effect at (Position of (Triggering unit)) using Objects\Spawnmodels\Other\ToonBoom\ToonBoom.mdl
    Special Effect - Destroy (Last created special effect)
    Custom script: call RemoveLocation (udg_TempPoint)
Artillery Strike
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Artillery Strike
  Actions
    Set TempPoint = (Target point of ability being cast)
    Unit - Create 1 Dummy (Target) for (Owner of (Triggering unit)) at TempPoint facing Default building facing degrees
    Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
    Unit - Create 1 Dummy (Artillery) for (Owner of (Triggering unit)) at TempPoint facing Default building facing degrees
    Unit - Order (Last created unit) to Neutral Tinker - Cluster Rockets TempPoint
    Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
    Custom script: call RemoveLocation (udg_TempPoint)
    Wait 0.50 seconds
    Animation - Reset (Triggering unit)'s animation
Artillery Strike 2
  Events
    Unit - A unit enters (Playable map area)
  Conditions
    (Unit-type of (Triggering unit)) Equal to Dummy (Target)
  Actions
    Wait 3.10 seconds
    Set TempPoint = (Position of (Triggering unit))
    Special Effect - Create a special effect at TempPoint using Objects\Spawnmodels\Other\NeutralBuildingExplosion\NeutralBuildingExplosion.mdl
    Special Effect - Destroy (Last created special effect)
    Custom script: call RemoveLocation (udg_TempPoint)
Shield Bash
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Shield Bash
  Actions
    Set temp_unit = (Triggering unit)
    Custom script: call AddUnitAnimationProperties(udg_temp_unit,"Defend",true)
    Wait 0.50 seconds
    Set temp_unit = (Triggering unit)
    Custom script: call AddUnitAnimationProperties(udg_temp_unit,"Defend",false)
Command
  Events
    Unit - A unit Spawns a summoned unit
  Conditions
    (Unit-type of (Summoned unit)) Equal to Command Ward
  Actions
    Set TempPoint = (Position of (Summoned unit))
    Special Effect - Create a special effect at TempPoint using Objects\Spawnmodels\Other\ToonBoom\ToonBoom.mdl
    Special Effect - Destroy (Last created special effect)
    Unit - Set level of Command for (Summoned unit) to (Level of Command for (Summoning unit))
    Custom script: call RemoveLocation (udg_TempPoint)
Init Gametext
  Events
    Map initialization
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Player 2 (Blue) controller) Equal to User
        (Player 9 (Gray) controller) Equal to User
        (Player 2 (Blue) slot status) Equal to Is playing
        (Player 9 (Gray) slot status) Equal to Is playing
      Then - Actions
        Set EnoughPlayers = True
        Trigger - Run Startgame_Text <gen> (ignoring conditions)
      Else - Actions
        Trigger - Run Startgame_Text_3 <gen> (ignoring conditions)
Startgame New
  Events
    Player - Player 2 (Blue) types a chat message containing -new as An exact match
    Player - Player 9 (Gray) types a chat message containing -new as An exact match
  Conditions
    GameSelection Equal to True
    EnoughPlayers Equal to True
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 2 (Blue)
        NewVote1 Equal to False
        NewVote2 Equal to False
      Then - Actions
        Set NewVote1 = True
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 9 (Gray)
        NewVote1 Equal to False
        NewVote2 Equal to False
      Then - Actions
        Set NewVote2 = True
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 2 (Blue)
        NewVote1 Equal to False
        NewVote2 Equal to True
      Then - Actions
        Cinematic - Clear the screen of text messages for (All players)
        Set NewVote1 = True
        Set GameSelection = False
        Sound - Play GoodJob <gen>
        Hero - Learn skill for Arthas: Human Paladin - Holy Light
        Hero - Learn skill for Arthas: Human Paladin - Holy Light
        Hero - Learn skill for Arthas: Human Paladin - Holy Light
        Hero - Learn skill for Arthas: Human Paladin - Devotion Aura
        Hero - Learn skill for Arthas: Human Paladin - Devotion Aura
        Hero - Learn skill for Arthas: Human Paladin - Devotion Aura
        Hero - Learn skill for Arthas: Human Paladin - Divine Shield
        Hero - Learn skill for Arthas: Human Paladin - Divine Shield
        Hero - Learn skill for Arthas: Human Paladin - Resurrection
        Hero - Learn skill for Muradin: Human Mountain King - Storm Bolt
        Hero - Learn skill for Muradin: Human Mountain King - Storm Bolt
        Hero - Learn skill for Muradin: Human Mountain King - Thunder Clap
        Hero - Learn skill for Muradin: Human Mountain King - Thunder Clap
        Hero - Learn skill for Muradin: Human Mountain King - Bash
        Hero - Learn skill for Muradin: Human Mountain King - Bash
        Hero - Learn skill for Muradin: Human Mountain King - Avatar
        Hero - Learn skill for Captain: Shield Bash
        Hero - Learn skill for Captain: Shield Bash
        Hero - Learn skill for Captain: Command
        Hero - Learn skill for Captain: Command
        Hero - Learn skill for Captain: Great Defense
        Hero - Learn skill for Captain: Great Defense
        Hero - Learn skill for Captain: Artillery Strike
        Wait 1.00 seconds
        Trigger - Run StartInitializationSequence <gen> (checking conditions)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            INSANEMODE Equal to True
          Then - Actions
            Trigger - Run Setup_Insane <gen> (checking conditions)
          Else - Actions
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 9 (Gray)
        NewVote1 Equal to True
        NewVote2 Equal to False
      Then - Actions
        Cinematic - Clear the screen of text messages for (All players)
        Set NewVote2 = True
        Set GameSelection = False
        Sound - Play GoodJob <gen>
        Hero - Learn skill for Arthas: Human Paladin - Holy Light
        Hero - Learn skill for Arthas: Human Paladin - Holy Light
        Hero - Learn skill for Arthas: Human Paladin - Holy Light
        Hero - Learn skill for Arthas: Human Paladin - Devotion Aura
        Hero - Learn skill for Arthas: Human Paladin - Devotion Aura
        Hero - Learn skill for Arthas: Human Paladin - Devotion Aura
        Hero - Learn skill for Arthas: Human Paladin - Divine Shield
        Hero - Learn skill for Arthas: Human Paladin - Divine Shield
        Hero - Learn skill for Arthas: Human Paladin - Resurrection
        Hero - Learn skill for Muradin: Human Mountain King - Storm Bolt
        Hero - Learn skill for Muradin: Human Mountain King - Storm Bolt
        Hero - Learn skill for Muradin: Human Mountain King - Thunder Clap
        Hero - Learn skill for Muradin: Human Mountain King - Thunder Clap
        Hero - Learn skill for Muradin: Human Mountain King - Bash
        Hero - Learn skill for Muradin: Human Mountain King - Bash
        Hero - Learn skill for Muradin: Human Mountain King - Avatar
        Hero - Learn skill for Captain: Shield Bash
        Hero - Learn skill for Captain: Shield Bash
        Hero - Learn skill for Captain: Command
        Hero - Learn skill for Captain: Command
        Hero - Learn skill for Captain: Great Defense
        Hero - Learn skill for Captain: Great Defense
        Hero - Learn skill for Captain: Artillery Strike
        Wait 1.00 seconds
        Trigger - Run StartInitializationSequence <gen> (checking conditions)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            INSANEMODE Equal to True
          Then - Actions
            Trigger - Run Setup_Insane <gen> (checking conditions)
          Else - Actions
      Else - Actions
Startgame Load
  Events
    Player - Player 2 (Blue) types a chat message containing -load as A substring
    Player - Player 9 (Gray) types a chat message containing -load as A substring
  Conditions
    (Substring((Entered chat string), 1, 6)) Equal to (Matched chat string)
    (Length of (Entered chat string)) Greater than 6
    GameSelection Equal to True
    EnoughPlayers Equal to True
  Actions
    Cinematic - Clear the screen of text messages for (All players)
    -------- Try to decode what was typed --------
    Set Code = (Substring((Entered chat string), 7, (Length of (Entered chat string))))
    Custom script: set udg_Validate = SaveLoad_Decode( udg_Code )
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Validate Equal to True
        Or - Any (Conditions) are true
          Conditions
            Save[1] Equal to 8
            Save[1] Equal to 18
      Then - Actions
        -------- Correct Code --------
        Sound - Play GoodJob <gen>
        Set GameSelection = False
        Trigger - Turn off (This trigger)
        Set SumRank = Save[2]
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[3] Greater than or equal to 1
          Then - Actions
            For each (Integer A) from 1 to Save[3], do (Actions)
              Loop - Actions
                Hero - Learn skill for Arthas: Human Paladin - Holy Light
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[4] Greater than or equal to 1
          Then - Actions
            For each (Integer A) from 1 to Save[4], do (Actions)
              Loop - Actions
                Hero - Learn skill for Arthas: Human Paladin - Devotion Aura
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[5] Greater than or equal to 1
          Then - Actions
            For each (Integer A) from 1 to Save[5], do (Actions)
              Loop - Actions
                Hero - Learn skill for Arthas: Human Paladin - Divine Shield
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[6] Greater than or equal to 1
          Then - Actions
            For each (Integer A) from 1 to Save[6], do (Actions)
              Loop - Actions
                Hero - Learn skill for Arthas: Human Paladin - Resurrection
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[7] Equal to 0
            Save[8] Equal to 0
            Save[9] Equal to 0
            Save[10] Equal to 0
          Then - Actions
            Hero - Learn skill for Captain: Shield Bash
            Hero - Learn skill for Captain: Shield Bash
            Hero - Learn skill for Captain: Command
            Hero - Learn skill for Captain: Command
            Hero - Learn skill for Captain: Great Defense
            Hero - Learn skill for Captain: Great Defense
            Hero - Learn skill for Captain: Artillery Strike
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Save[7] Greater than or equal to 1
              Then - Actions
                For each (Integer A) from 1 to Save[7], do (Actions)
                  Loop - Actions
                    Hero - Learn skill for Captain: Shield Bash
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Save[8] Greater than or equal to 1
              Then - Actions
                For each (Integer A) from 1 to Save[8], do (Actions)
                  Loop - Actions
                    Hero - Learn skill for Captain: Command
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Save[9] Greater than or equal to 1
              Then - Actions
                For each (Integer A) from 1 to Save[9], do (Actions)
                  Loop - Actions
                    Hero - Learn skill for Captain: Great Defense
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Save[10] Greater than or equal to 1
              Then - Actions
                For each (Integer A) from 1 to Save[10], do (Actions)
                  Loop - Actions
                    Hero - Learn skill for Captain: Artillery Strike
              Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[11] Greater than or equal to 1
          Then - Actions
            For each (Integer A) from 1 to Save[11], do (Actions)
              Loop - Actions
                Hero - Learn skill for Muradin: Human Mountain King - Storm Bolt
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[12] Greater than or equal to 1
          Then - Actions
            For each (Integer A) from 1 to Save[12], do (Actions)
              Loop - Actions
                Hero - Learn skill for Muradin: Human Mountain King - Thunder Clap
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[13] Greater than or equal to 1
          Then - Actions
            For each (Integer A) from 1 to Save[13], do (Actions)
              Loop - Actions
                Hero - Learn skill for Muradin: Human Mountain King - Bash
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[14] Greater than or equal to 1
          Then - Actions
            For each (Integer A) from 1 to Save[14], do (Actions)
              Loop - Actions
                Hero - Learn skill for Muradin: Human Mountain King - Avatar
          Else - Actions
        Set SaveCount = 15
        For each (Integer A) from 1 to Save[SaveCount], do (Actions)
          Loop - Actions
            -------- The actual item --------
            Set SaveCount = (SaveCount + 1)
            Custom script: set udg_TempItemType = SaveLoad_Integer2Item(udg_Save[udg_SaveCount])
            Hero - Create TempItemType and give it to Arthas
            -------- Number of charges --------
            Set SaveCount = (SaveCount + 1)
            Item - Set charges remaining in (Last created item) to Save[SaveCount]
        Set SaveCount = (SaveCount + 1)
        For each (Integer A) from 1 to Save[SaveCount], do (Actions)
          Loop - Actions
            -------- The actual item --------
            Set SaveCount = (SaveCount + 1)
            Custom script: set udg_TempItemType = SaveLoad_Integer2Item(udg_Save[udg_SaveCount])
            Hero - Create TempItemType and give it to Muradin
            -------- Number of charges --------
            Set SaveCount = (SaveCount + 1)
            Item - Set charges remaining in (Last created item) to Save[SaveCount]
        Wait 1.00 seconds
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[1] Equal to 18
          Then - Actions
            Set INSANEMODE = True
            Trigger - Run StartInitializationSequence <gen> (checking conditions)
            Trigger - Run Setup_Insane <gen> (checking conditions)
          Else - Actions
            Set INSANEMODE = False
            Trigger - Run StartInitializationSequence <gen> (checking conditions)
      Else - Actions
        -------- Invalid code --------
        Sound - Play Error <gen>
        Game - Display to (All players) for 600.00 seconds the text: |cff6666dd-= HUMAN CHAPTER 9=-|r
        Game - Display to (All players) for 600.00 seconds the text: Frostmourne
        Game - Display to (All players) for 600.00 seconds the text:
        Game - Display to (All players) for 600.00 seconds the text: There was an error with the code, please try again.
        Game - Display to (All players) for 600.00 seconds the text:
        Game - Display to (All players) for 600.00 seconds the text: Alternatively, both players type '-new' if you do not have a code.
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            INSANEMODE Equal to True
          Then - Actions
            Game - Display to (All players) for 600.00 seconds the text: New game is at Insane difficulty. Type '-normal' to play at a lower difficulty.
          Else - Actions
            Game - Display to (All players) for 600.00 seconds the text: New game is at Normal difficulty. Type '-insane' to play at a higher difficulty.
        Skip remaining actions
Endgame Text
  Events
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        BaseCleared[1] Equal to True
      Then - Actions
        Set Extra = (Extra + 1)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        BaseCleared[2] Equal to True
      Then - Actions
        Set Extra = (Extra + 1)
      Else - Actions
    If (All Conditions are Tr