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

UndeadX05.w3x
Variables
Initialization
Initialization
Init 01 Players
Init 02 Units
Init 03 Music
Init 04 Environment
Init 05 Quests
Init 06a Hard
Init 06b Normal
Load Heroes
Load Heroes
Create Sylvanas
Create Varimathras
Load Default Sylvanas
Load Default Varimathras
Experience Cap Varimathras
Experience Cap Sylvanus
Cinematic Revival
xxxxx CINEMATICS xxxxx
Intro Cinematic
Intro Cinematic Q
Intro Skipped
Intro Setup
Intro Cleanup
Gameplay
Victory Cinematic
Victory Cinematic Q
Victory Skipped
Victory Setup
xxxxx MESSAGING xxxxx
Quests
Quest Strike Create
Quest Strike Discover
Quest Strike Complete
Quest Derethoc Create
Quest Derethoc Discover
Quest Derethoc Undead Base Update
Quest Derethoc Human Base Update
Quest Derethoc Completed
Mission Failed Base Dead
Quest Strike Discover Q
Quest Strike Complete Q
Quest Derethoc Base Discover Q
Voiceovers
Time is Wasting Q
Time is Up Q
Random Footman Attack Lines
Footman AttackA Q
Footman AttackB Q
Footman AttackC Q
Footman AttackD Q
Random Necromancer Attack Lines
Necromancer AttackA Q
Necromancer AttackB Q
Necromancer AttackC Q
Random Sylvanas Attack Lines
Sylvanas AttackA Q
Sylvanas AttackB Q
Sylvanas AttackC Q
Sylvanas AttackD Q
Random Detheroc Attack Lines
Detheroc AttackA Q
Detheroc AttackB Q
Detheroc AttackC Q
Detheroc AttackD Q
Random Garithos Attack Lines
Garithos AttackA Q
Garithos AttackB Q
Garithos AttackC Q
Garithos AttackD Q
Sylvanus Confronts Garithos
Sylvanus Confronts Garithos Q
Varimathras Confronts Detheroc
Varimathras Confronts Detheroc Q
Hints
Hint Mortar Team EventA
Hint Mortar Team EventA2
Hint Mortar Team EventB
Hint Mortar Team EventB2
Hint Mortar Team A Q
Hint Mortar Team B Q
Hint Build Units Q
Player builds something
Hint Town Portal Scroll Q
xxxxxxxxxxxxxxxxxxxx
Initial Attack Countdown Timer
Create Timer
Timer Warning01
Timer Warning01 Q
Timer Warning02
Timer Warning02 Q
Timer Expires
LeaderboardHidingTimer Expires
Level Data
Next Level Run
AI
Start AI
AI Resources Purple Gold
AI Resources Purple Lumber
AI Resources Teal Gold
AI Resources Teal Lumber
AI Resources Green Gold
AI Resources Green Lumber
AI Resources Dark Green Gold
AI Resources Dark Green Lumber
Trigger AI Attacks
Count Human Building Deaths
Count Human Sat Building Deaths
Count Undead Building Deaths
Count Undead Sat Building Deaths
Launching Attack
Launching Attack Q
Determine Number of Crippled Bases
Determine Attacking AIs
Garithos Base Crippled
Garithos Satellite Base Crippled
Detheroc Base Crippled
Detheroc Satellite Base Crippled
xxxxxxxxxxxxxxxxxxxx
Combat Check
Combat Detected
Combat Resolved
Enemy Base Destruction Check
Garithos Building Constructing
Garithos Building Canceled
Garithos Building Destroyed
Detheroc Building Constructing
Detheroc Building Canceled
Detheroc Building Destroyed
Garithos Base Destroyed
Garithos Base Destroyed Q
Detheroc Base Destroyed
Detheroc Base Destroyed Q
Both Bases Destroyed Q
Victory Defeat
Defeat Units Dead
Player Sharing Triggers
SetDifficulty
DifficultySelected
ConvertPlayerUnits
UpdateFoodUsage
UpdateResourcesGold
UpdateResourcesLumber
HeroDies
HeroRevives
HiringUnits
ScrollTownPortalStart
ScrollTownPortalEnd
ConvertCharmedUnits
TomeStrengthUsed
TomeAgilityUsed
TomeIntelligenceUsed
PlayerLeavesGame
Game Cache Triggers
SetCacheVariables
LoadHeroesText
PreplaceItemsLoad
PreplaceItemsSave
SaveCodeEtc
StartGame
LoadGame
NewGame
Satchet Triggers
MoveSatchets
BackpackDropItems
SatchetLevelGain
SatchetHeroDies
SatchetHeroRevives
function SaveLoad_InitialSetup takes nothing returns nothing
    local integer i = 0
    local integer j = 0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    set m = 0

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

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

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

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

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

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

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

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

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

function CreateTextFile takes string Code returns nothing
    call PreloadGenClear()
    call PreloadGenStart()
    
    // The line below creates the log
    call Preload("load " + Code)
    
    // The line below creates the file at the specified location
    call PreloadGenEnd(udg_TextFileName + ".txt")
endfunction
Name Type Is Array Initial Value
ActivationCountdown timer No
ActivationWindow timerdialog No
AP01_Varimathras player No Player00
AP02_Sylvanas player No Player01
AP11_SharedPlayer player No Player05
APG4_Player force No
AwakenDistance real No 600.00
BuildingsICareAboutHuman group No
BuildingsICareAboutUndead group No
CameraReturnPoint location No
CharmedUnit unit No
ChooseDifficulty dialog No
Code string No
CodeError boolean No
CombatCheckTimer timer No
Detheroc unit No
DetherocAI_Active boolean No
DetherocBaseCrippled boolean No
DetherocBuildingsDead integer No
DetherocSatAI_Active boolean No
DetherocSatBaseCrippled boolean No
DetherocSatBuildingsDead integer No
ExpDisabledForSylvanus boolean No false
ExpDisabledForVarimathras boolean No false
GameOver boolean No false
GameSelection boolean No
Garithos unit No
GarithosAI_Active boolean No
GarithosBaseCrippled boolean No
GarithosBuildingsDead integer No
GarithosSatAI_Active boolean No
GarithosSatBaseCrippled boolean No
GarithosSatBuildingsDead integer No
Hard boolean No
HardB button No
HeroToRevive unit No
HiddenUnits group No
HideLeaderboardTimer timer No
HumansDead boolean No
InCinematic boolean No false
InCombat boolean No false
IntroBanshee01 unit No
IntroBanshee02 unit No
IntroBanshee03 unit No
IntroBFootman01 unit No
IntroBFootman02 unit No
IntroSkipped boolean No false
IntroUnitsToRemove group No
MaxAIActive integer No
NormalB button No
NumberofAI_Activated integer No
P09_GarithosHuman player No
P10_Garithos_SleepMain player No Player09
P11_Detheroc_Satellite player No Player10
P12_Detheroc_SleepMain player No Player11
P3_Beetle player No
P3_Garithos_Satellite player No Player02
P3_Garithos_SleepSatellite player No Player02
P4_Garithos player No Player03
P5_Garithos_NonAI player No Player04
P7_Detheroc player No Player06
P8_Detheroc_NonAI player No Player07
P9_Detheroc_SleepSatellite player No Player08
PlayerBuildsSomething boolean No
PlayerOneTomesAgility integer No
PlayerOneTomesIntelligence integer No
PlayerOneTomesStrength integer No
PlayerTwoTomesAgility integer No
PlayerTwoTomesIntelligence integer No
PlayerTwoTomesStrength integer No
QuestDerethocBase quest No
QuestDerethocBaseReq questitem No
QuestGarithosBase quest No
QuestGarithosBaseReq questitem No
QuestStrike quest No
QuestStrikeReq questitem No
RandomLineTimer timer No
RandomNumber real No
RevivalAltar unit No UnitNull
RevivalHero unit No UnitNull
RevivalReturnSpot location No
RevivalSpot location No
Satchet01 unit No
Satchet02 unit No
SatchetPosition location No
Save integer Yes
SaveCount integer No
SaveLoad_Abilities abilcode Yes
SaveLoad_Abilities_LastIndex integer No
SaveLoad_Alphabet string No
SaveLoad_CaseSensitive boolean No
SaveLoad_Compress integer Yes
SaveLoad_Heroes unitcode Yes
SaveLoad_Heroes_LastIndex integer No
SaveLoad_Initialized boolean No
SaveLoad_Items itemcode Yes
SaveLoad_Items_LastIndex integer No
SaveLoad_Uncompress integer Yes
SaveLoad_UsePlayername boolean No
SelectedUnits group No
SinglePlayer boolean No
SleepLeaderboard leaderboard No
SleepyTime boolean No true
Speaker unit No
SpeakingDistance real No 1500.00
SummonedUnits group No
Sylvanas unit No UnitNull
SylvanasReturnSpot location No
TeleportingUnits group Yes
TempHero unit No
TempItem item No
TempItemType itemcode No
TempPoint location No
TempUnitGroup group No
TextFileName string No
TotalBasesCrippled integer No
TownPortalEnd location No
TownPortalStart location No
TPScroll item No
UndeadDead boolean No
Validate boolean No
Varimathras unit No UnitNull
VarimathrasReturnSpot location No
VictoryBanshee01 unit No
VictoryBanshee02 unit No
VictoryFootman01 unit No
VictoryFootman02 unit No
VictoryHumanUnits group No
VictoryKnight01 unit No
VictoryKnight02 unit No
VictorySkipped boolean No false
Template version 1.03

I disabled Normal and Easy triggers
Initialization
  Events
    Map initialization
  Conditions
  Actions
    Cinematic - Fade out over 0.00 seconds using texture Black Mask and color (0%, 0%, 0%) with 0% transparency
    Game - Set ally color filtering to 0
    Game - Disable ally color button and Disable creep camp button
    Game - Set Lock resource trading to On
    Trigger - Run Init_01_Players <gen> (checking conditions)
    Trigger - Run Init_02_Units <gen> (checking conditions)
    Trigger - Run Init_04_Environment <gen> (checking conditions)
    Trigger - Run Init_05_Quests <gen> (checking conditions)
    Trigger - Run SetDifficulty <gen> (checking conditions)
Player - Change color of Player to (Color of Neutral Hostile), Changing color of existing units
^ Got Disabled when I deleted P6_Variable to make room for user players^
Init 01 Players
  Events
  Conditions
  Actions
    -------- Set Player Groups --------
    Player Group - Add AP01_Varimathras to APG4_Player
    Player Group - Add AP02_Sylvanas to APG4_Player
    Player Group - Add AP11_SharedPlayer to APG4_Player
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((AP02_Sylvanas controller) Equal to Computer) or ((AP02_Sylvanas slot status) Equal to Is unused)
      Then - Actions
        Set SinglePlayer = True
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((AP01_Varimathras controller) Equal to Computer) or ((AP01_Varimathras slot status) Equal to Is unused)
      Then - Actions
        Set SinglePlayer = True
      Else - Actions
    -------- Set User Player Alliances --------
    -------- Alliance Settings --------
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Player - Make (Picked player) treat Neutral Passive as an Neutral
    Player - Make P4_Garithos treat P3_Garithos_Satellite as an Ally
    Player - Make P4_Garithos treat P5_Garithos_NonAI as an Ally
    Player - Make P4_Garithos treat P7_Detheroc as an Ally
    Player - Make P4_Garithos treat P11_Detheroc_Satellite as an Ally
    Player - Make P3_Garithos_Satellite treat P4_Garithos as an Ally
    Player - Make P3_Garithos_Satellite treat P5_Garithos_NonAI as an Ally
    Player - Make P3_Garithos_Satellite treat P7_Detheroc as an Ally
    Player - Make P3_Garithos_Satellite treat P11_Detheroc_Satellite as an Ally
    Player - Make P5_Garithos_NonAI treat P4_Garithos as an Ally
    Player - Make P5_Garithos_NonAI treat P3_Garithos_Satellite as an Ally
    Player - Make P5_Garithos_NonAI treat P7_Detheroc as an Ally
    Player - Make P5_Garithos_NonAI treat P8_Detheroc_NonAI as an Ally
    Player - Make P5_Garithos_NonAI treat P11_Detheroc_Satellite as an Ally
    Player - Make P7_Detheroc treat P4_Garithos as an Ally
    Player - Make P7_Detheroc treat P3_Garithos_Satellite as an Ally
    Player - Make P7_Detheroc treat P5_Garithos_NonAI as an Ally
    Player - Make P7_Detheroc treat P11_Detheroc_Satellite as an Ally
    Player - Make P8_Detheroc_NonAI treat P4_Garithos as an Ally
    Player - Make P8_Detheroc_NonAI treat P3_Garithos_Satellite as an Ally
    Player - Make P8_Detheroc_NonAI treat P5_Garithos_NonAI as an Ally
    Player - Make P8_Detheroc_NonAI treat P7_Detheroc as an Ally
    Player - Make P8_Detheroc_NonAI treat P11_Detheroc_Satellite as an Ally
    Player - Make P11_Detheroc_Satellite treat P4_Garithos as an Ally
    Player - Make P11_Detheroc_Satellite treat P3_Garithos_Satellite as an Ally
    Player - Make P11_Detheroc_Satellite treat P5_Garithos_NonAI as an Ally
    Player - Make P4_Garithos treat Neutral Hostile as an Neutral
    Player - Make P3_Garithos_Satellite treat Neutral Hostile as an Neutral
    Player - Make P5_Garithos_NonAI treat Neutral Hostile as an Neutral
    Player - Make P7_Detheroc treat Neutral Hostile as an Neutral
    Player - Make P8_Detheroc_NonAI treat Neutral Hostile as an Neutral
    Player - Make P11_Detheroc_Satellite treat Neutral Hostile as an Neutral
    Player - Make Neutral Hostile treat P4_Garithos as an Neutral
    Player - Make Neutral Hostile treat P3_Garithos_Satellite as an Neutral
    Player - Make Neutral Hostile treat P5_Garithos_NonAI as an Neutral
    Player - Make Neutral Hostile treat P7_Detheroc as an Neutral
    Player - Make Neutral Hostile treat P8_Detheroc_NonAI as an Neutral
    Player - Make Neutral Hostile treat P11_Detheroc_Satellite as an Neutral
    -------- Initial Resources --------
    Player - Set P4_Garithos Current gold to 5000
    Player - Set P4_Garithos Current lumber to 5000
    Player - Set P3_Garithos_Satellite Current gold to 5000
    Player - Set P3_Garithos_Satellite Current lumber to 5000
    Player - Set P7_Detheroc Current gold to 5000
    Player - Set P7_Detheroc Current lumber to 5000
    Player - Set P11_Detheroc_Satellite Current gold to 5000
    Player - Set P11_Detheroc_Satellite Current lumber to 5000
    -------- Player Colors --------
    Player - Change color of AP11_SharedPlayer to Blue, Changing color of existing units
    Player - Change color of AP02_Sylvanas to Blue, Changing color of existing units
    Player - Change color of P4_Garithos to Light Blue, Changing color of existing units
    Player - Change color of P3_Garithos_Satellite to Light Blue, Changing color of existing units
    Player - Change color of P5_Garithos_NonAI to Light Blue, Changing color of existing units
    Player - Change color of P10_Garithos_SleepMain to (Color of Neutral Hostile), Changing color of existing units
    Player - Change color of P8_Detheroc_NonAI to (Color of P7_Detheroc), Changing color of existing units
    Player - Change color of P9_Detheroc_SleepSatellite to (Color of P7_Detheroc), Changing color of existing units
    Player - Change color of P11_Detheroc_Satellite to (Color of P7_Detheroc), Changing color of existing units
    Player - Change color of P12_Detheroc_SleepMain to (Color of P7_Detheroc), Changing color of existing units
    -------- Hide Excess Players --------
    Player - Hide P3_Garithos_Satellite in the post-game score screen
    Player - Hide P5_Garithos_NonAI in the post-game score screen
    Player - Hide AP11_SharedPlayer in the post-game score screen
    Player - Hide P8_Detheroc_NonAI in the post-game score screen
    Player - Hide P9_Detheroc_SleepSatellite in the post-game score screen
    Player - Hide P10_Garithos_SleepMain in the post-game score screen
    Player - Hide P11_Detheroc_Satellite in the post-game score screen
    Player - Hide P12_Detheroc_SleepMain in the post-game score screen
Init 02 Units
  Events
  Conditions
  Actions
    -------- Heroes --------
    Trigger - Run Load_Heroes <gen> (checking conditions)
    Hero - Make AP02_Sylvanas Heroes gain 80.00% experience from future kills
    Hero - Make AP01_Varimathras Heroes gain 80.00% experience from future kills
    -------- NPCs --------
    Set Detheroc = Dreadlord 0124 <gen>
    Hero - Set Detheroc Hero-level to 8, Hide level-up graphics
    Hero - Learn skill for Detheroc: Undead Dreadlord - Carrion Swarm
    Hero - Learn skill for Detheroc: Undead Dreadlord - Carrion Swarm
    Hero - Learn skill for Detheroc: Undead Dreadlord - Sleep
    Hero - Learn skill for Detheroc: Undead Dreadlord - Sleep
    Hero - Learn skill for Detheroc: Night Elf Warden - Shadow Strike
    Hero - Learn skill for Detheroc: Night Elf Warden - Shadow Strike
    Hero - Learn skill for Detheroc: Undead Lich - Death And Decay
    Hero - Create Orb of Venom and give it to Detheroc
    Hero - Create Claws of Attack +9 and give it to Detheroc
    Hero - Create Ring of Protection +2 and give it to Detheroc
    Hero - Create Phat Lewt and give it to Detheroc
    Hero - Create Phat Lewt and give it to Detheroc
    Hero - Create Phat Lewt and give it to Detheroc
    Set Garithos = Dark Knight 0123 <gen>
    Unit - Change color of Garithos to Gray
    Hero - Create Medallion of Courage and give it to Garithos
    Hero - Create Circlet of Nobility and give it to Garithos
    Hero - Create Gloves of Haste and give it to Garithos
    Hero - Create Phat Lewt and give it to Garithos
    Hero - Create Phat Lewt and give it to Garithos
    Hero - Create Phat Lewt and give it to Garithos
    Hero - Disable experience gain for Garithos
    Hero - Disable experience gain for Detheroc
    -------- Creeps --------
    -------- Initialize Timer --------
    Countdown Timer - Start RandomLineTimer as a One-shot timer that will expire in 1.00 seconds
    -------- Turn off Sleeping for Player and Non-AI units --------
    Unit Group - Pick every unit in (Units owned by AP11_SharedPlayer) and do (Actions)
      Loop - Actions
        Unit - Wake up (Picked unit)
    Player - Disable Sleep Always (Special) for AP11_SharedPlayer
    Unit Group - Pick every unit in (Units owned by P5_Garithos_NonAI) and do (Actions)
      Loop - Actions
        Unit - Wake up (Picked unit)
    Player - Disable Sleep Always (Special) for P5_Garithos_NonAI
    Unit Group - Pick every unit in (Units owned by P8_Detheroc_NonAI) and do (Actions)
      Loop - Actions
        Unit - Wake up (Picked unit)
    Player - Disable Sleep Always (Special) for P8_Detheroc_NonAI
    -------- Setting Up Buildings I Care About Groups --------
    Unit Group - Remove all units from BuildingsICareAboutHuman
    Unit Group - Pick every unit in (Units owned by P4_Garithos matching (((Matching unit) is A structure) Equal to True)) and do (Actions)
      Loop - Actions
        Unit Group - Add (Picked unit) to BuildingsICareAboutHuman
    Unit Group - Pick every unit in (Units owned by P3_Garithos_Satellite matching (((Matching unit) is A structure) Equal to True)) and do (Actions)
      Loop - Actions
        Unit Group - Add (Picked unit) to BuildingsICareAboutHuman
    Unit Group - Pick every unit in BuildingsICareAboutHuman and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Or - Any (Conditions) are true
              Conditions
                (Unit-type of (Picked unit)) Equal to Farm
                (Unit-type of (Picked unit)) Equal to Scout Tower
                (Unit-type of (Picked unit)) Equal to Guard Tower
                (Unit-type of (Picked unit)) Equal to Cannon Tower
                (Unit-type of (Picked unit)) Equal to Lumber Mill
          Then - Actions
            Unit Group - Remove (Picked unit) from BuildingsICareAboutHuman
          Else - Actions
    Unit Group - Remove all units from BuildingsICareAboutUndead
    Unit Group - Pick every unit in (Units owned by P11_Detheroc_Satellite matching (((Matching unit) is A structure) Equal to True)) and do (Actions)
      Loop - Actions
        Unit Group - Add (Picked unit) to BuildingsICareAboutUndead
    Unit Group - Pick every unit in (Units owned by P7_Detheroc matching (((Matching unit) is A structure) Equal to True)) and do (Actions)
      Loop - Actions
        Unit Group - Add (Picked unit) to BuildingsICareAboutUndead
    Unit Group - Pick every unit in BuildingsICareAboutUndead and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Or - Any (Conditions) are true
              Conditions
                (Unit-type of (Picked unit)) Equal to Ziggurat
                (Unit-type of (Picked unit)) Equal to Spirit Tower
                (Unit-type of (Picked unit)) Equal to Nerubian Tower
          Then - Actions
            Unit Group - Remove (Picked unit) from BuildingsICareAboutUndead
          Else - Actions
    -------- Initialize Marketplace --------
    Neutral Building - Add Gloves of Haste to Marketplace 0119 <gen> with 1 in stock and a max stock of 1
    Neutral Building - Add Potion of Greater Healing to Marketplace 0119 <gen> with 1 in stock and a max stock of 1
    Neutral Building - Add Ring of Protection +3 to Marketplace 0119 <gen> with 1 in stock and a max stock of 1
    Neutral Building - Add Book of the Dead to Marketplace 0119 <gen> with 1 in stock and a max stock of 1
    Neutral Building - Add Scroll of Regeneration to Marketplace 0119 <gen> with 1 in stock and a max stock of 1
    Neutral Building - Add Slippers of Agility +3 to Marketplace 0119 <gen> with 1 in stock and a max stock of 1
    Neutral Building - Add Sobi Mask to Marketplace 0119 <gen> with 1 in stock and a max stock of 1
    Neutral Building - Add Scroll of the Beast to Marketplace 0119 <gen> with 1 in stock and a max stock of 1
    Neutral Building - Add Pendant of Energy to Marketplace 0119 <gen> with 1 in stock and a max stock of 1
    Neutral Building - Add Healing Salve to Marketplace 0119 <gen> with 1 in stock and a max stock of 1
    Neutral Building - Add Potion of Invulnerability to Marketplace 0119 <gen> with 1 in stock and a max stock of 1
    -------- Activate Web on Player Units --------
    Unit - Order Crypt Fiend 0235 <gen> to Undead Crypt Fiend - Activate Web
    Unit - Order Crypt Fiend 0236 <gen> to Undead Crypt Fiend - Activate Web
    -------- Deactivate Curse on Player Units --------
    Unit Group - Pick every unit in (Units owned by AP11_SharedPlayer of type Banshee) and do (Actions)
      Loop - Actions
        Unit - Order (Picked unit) to Undead Banshee - Deactivate Curse
    -------- Disable Destroyer Form --------
    Player - Make Destroyer Unavailable for training/construction by AP11_SharedPlayer
    -------- Deactivate Alarm Generation --------
    Unit Group - Pick every unit in (Units owned by P4_Garithos matching (((Matching unit) is A structure) Equal to True)) and do (Actions)
      Loop - Actions
        Unit - Turn alarm generation for (Picked unit) Off
    Unit Group - Pick every unit in (Units owned by P3_Garithos_Satellite matching (((Matching unit) is A structure) Equal to True)) and do (Actions)
      Loop - Actions
        Unit - Turn alarm generation for (Picked unit) Off
    Unit Group - Pick every unit in (Units owned by P7_Detheroc matching (((Matching unit) is A structure) Equal to True)) and do (Actions)
      Loop - Actions
        Unit - Turn alarm generation for (Picked unit) Off
    Unit Group - Pick every unit in (Units owned by P11_Detheroc_Satellite matching (((Matching unit) is A structure) Equal to True)) and do (Actions)
      Loop - Actions
        Unit - Turn alarm generation for (Picked unit) Off
    Unit Group - Pick every unit in (Units owned by P5_Garithos_NonAI matching (((Matching unit) is A structure) Equal to True)) and do (Actions)
      Loop - Actions
        Unit - Turn alarm generation for (Picked unit) Off
    Unit Group - Pick every unit in (Units owned by P8_Detheroc_NonAI matching (((Matching unit) is A structure) Equal to True)) and do (Actions)
      Loop - Actions
        Unit - Turn alarm generation for (Picked unit) Off
Init 03 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 0
Init 04 Environment
  Events
  Conditions
  Actions
    -------- Initial Time Of Day --------
    Game - Set the time of day to 20.00
    -------- Weather Effects --------
    -------- Fog --------
    -------- Initial Visibility --------
    -------- Bridges, Gates, etc. --------
Init 05 Quests
  Events
  Conditions
  Actions
    -------- Create Quests --------
    Trigger - Run Quest_Strike_Create <gen> (checking conditions)
    Trigger - Run Quest_Derethoc_Create <gen> (checking conditions)
I Changed Hard to work on normal
Init 06a Hard
  Events
  Conditions
    Hard Equal to True
  Actions
    Unit - Remove Abomination 0234 <gen> from the game
    Unit - Remove Banshee 0230 <gen> from the game
    Unit - Remove Banshee 0233 <gen> from the game
    Hero - Enable experience gain for Detheroc
    Hero - Enable experience gain for Garithos
    Hero - Set Detheroc Hero-level to 10, Hide level-up graphics
    Hero - Learn skill for Detheroc: Undead Dreadlord - Carrion Swarm
    Hero - Learn skill for Detheroc: Night Elf Warden - Shadow Strike
    Hero - Set Garithos Hero-level to 10, Hide level-up graphics
    Hero - Learn skill for Garithos: Human Paladin - Holy Light
    Hero - Learn skill for Garithos: Human Paladin - Devotion Aura
    Hero - Disable experience gain for Detheroc
    Hero - Disable experience gain for Garithos
    Unit - Replace Necropolis 0004 <gen> with a Black Citadel using The new unit's max life and mana
    Unit - Replace Necropolis 0005 <gen> with a Black Citadel using The new unit's max life and mana
    Neutral Building - Set Haunted Gold Mine 0007 <gen> to 12500 gold
Init 06b Normal
  Events
  Conditions
    Hard Equal to False
  Actions
    -------- Remove units if not on Hard --------
Load Heroes
  Events
  Conditions
  Actions
    -------- Load Each Hero --------
    Trigger - Run Create_Sylvanas <gen> (checking conditions)
    Trigger - Run Create_Varimathras <gen> (checking conditions)
Create Sylvanas
  Events
  Conditions
  Actions
    -------- Create Default Hero --------
    Unit - Create 1 Dark Ranger for Neutral Passive at (Center of Intro_Sylvanas_Start <gen>) facing 225.00 degrees
    Set Sylvanas = (Last created unit)
    Hero - Set Sylvanas Hero-level to 6, Hide level-up graphics
    -------- Create Satchet --------
    Unit - Create 1 Sachet for Neutral Passive at (Center of Intro_Sylvanas_Start <gen>) facing 90.00 degrees
    Set Satchet01 = (Last created unit)
Create Varimathras
  Events
  Conditions
  Actions
    -------- Create Default Hero --------
    Unit - Create 1 Dreadlord for Neutral Passive at (Center of Intro_Varimathras_Start <gen>) facing 210.00 degrees
    Hero - Set (Last created unit) Hero-level to 5, Hide level-up graphics
    Hero - Learn skill for (Last created unit): Undead Dreadlord - Vampiric Aura
    Hero - Learn skill for (Last created unit): Undead Dreadlord - Sleep
    Hero - Learn skill for (Last created unit): Undead Dreadlord - Vampiric Aura
    Hero - Learn skill for (Last created unit): Undead Dreadlord - Sleep
    Hero - Learn skill for (Last created unit): Neutral Pit Lord - Rain Of Fire
    Set Varimathras = (Last created unit)
    Unit - Change color of Varimathras to Red
    Hero - Create Scroll of Town Portal and give it to Varimathras
    Set TPScroll = (Last created item)
    Hero - Create Orb of Fire and give it to Varimathras
    -------- Create Satchet --------
    Unit - Create 1 Sachet for Neutral Passive at (Center of Intro_Varimathras_Start <gen>) facing 90.00 degrees
    Set Satchet02 = (Last created unit)
Load Default Sylvanas
  Events
  Conditions
  Actions
    -------- Default Hero Data --------
    Hero - Learn skill for Sylvanas: Neutral Dark Ranger - Black Arrow
    Hero - Learn skill for Sylvanas: Neutral Dark Ranger - Black Arrow
    Hero - Learn skill for Sylvanas: Neutral Dark Ranger - Silence
    Hero - Learn skill for Sylvanas: Neutral Dark Ranger - Silence
    Hero - Learn skill for Sylvanas: Neutral Dark Ranger - Life Drain
    -------- Add Items --------
    Hero - Create Ring of Protection +3 and give it to Sylvanas
    Hero - Create Claws of Attack +6 and give it to Sylvanas
    Hero - Create Slippers of Agility +3 and give it to Sylvanas
Load Default Varimathras
  Events
  Conditions
  Actions
    -------- Add Items --------
    Hero - Create Mantle of Intelligence +3 and give it to Varimathras
Experience Cap Varimathras
  Events
    Unit - A unit owned by Player 1 (Red) Gains a level
  Conditions
    (Leveling Hero) Equal to Varimathras
    (Hero level of (Leveling Hero)) Greater than or equal to 8
  Actions
    Hero - Disable experience gain for Varimathras
    Set ExpDisabledForVarimathras = True
Experience Cap Sylvanus
  Events
    Unit - A unit owned by Player 2 (Blue) Gains a level
  Conditions
    (Leveling Hero) Equal to Sylvanas
    (Hero level of (Leveling Hero)) Greater than or equal to 8
  Actions
    Hero - Disable experience gain for Sylvanas
    Set ExpDisabledForSylvanus = True
Before running this in a cinematic, do the following:
- Set "RevivalHero" to the hero you wish to revive.
- Set "RevivalSpot" to the place at which you wish the hero to be revived.

After running this, set the unit facing for the revived hero.

After the cinematic, move the hero instantly to RevivalReturnSpot.
Cinematic Revival
  Events
  Conditions
  Actions
    Set RevivalReturnSpot = (Position of RevivalHero)
    Unit - Move RevivalHero instantly to RevivalSpot
    If ((RevivalHero is alive) Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Hero - Instantly revive RevivalHero at RevivalSpot, Hide revival graphics
    Set RevivalReturnSpot = RevivalSpot
    Set RevivalAltar = (Random unit from (Units owned by (Owner of RevivalHero) matching ((((Matching unit) is alive) Equal to True) and ((((Unit-type of (Matching unit)) Equal to Altar of Kings) or ((Unit-type of (Matching unit)) Equal to Altar of Storms)) or (((Unit-type of (Matching unit)) Equal to Altar of Darkness) or ((Unit-type of (Matching unit)) Equal to Altar of Elders))))))
    If (RevivalAltar Not equal to No unit) then do (Set RevivalReturnSpot = ((Position of RevivalAltar) offset by (0, -128.00))) else do (Do nothing)
Intro Cinematic Q
  Events
  Conditions
  Actions
    Set InCinematic = True
    -------- Fade Out --------
    Cinematic - Fade out over 0.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    -------- Set Up Scene --------
    Cinematic - Turn cinematic mode On for APG4_Player
    Trigger - Run Intro_Setup <gen> (checking conditions)
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_Intro_01 for (Picked player) over 0 seconds
    -------- Fade In --------
    Cinematic - Fade in over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.25 seconds
    Sound - Set Music to 100%
    Wait 1.75 seconds
    Trigger - Turn on Intro_Skipped <gen>
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC BEGINS - Cinematic Can Now Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_Intro_02 for (Picked player) over 12.00 seconds
    Unit - Order Footman 0253 <gen> to Patrol To (Center of Intro_Footman_Patrol_Target <gen>)
    Unit - Order Footman 0257 <gen> to Patrol To (Center of Intro_Footman_Patrol_Target <gen>)
    Unit - Order Footman 0262 <gen> to Patrol To (Center of Intro_Footman_Patrol_Target_2 <gen>)
    Unit - Order Footman 0263 <gen> to Patrol To (Center of Intro_Footman_Patrol_Target_2 <gen>)
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas01 <gen> and display You've done well, Varimathras. You've led us straight to Detheroc's stronghold. But tell me, who are those humans?. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Sylvanas01 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Varimathras named Varimathras: Play L05Varimathras02 <gen> and display Detheroc used his telepathy to enslave a top-ranking human warlord. I believe his name was Garabon or Gilithos or something. Human names all sound the same to me.. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Varimathras02 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Varimathras named Varimathras: Play L05Varimathras03 <gen> and display Instead of stamping it out, Detheroc has taken control of the last pocket of human resistance. They maintain their own army within the keep.. Modify duration: Add 0 seconds and Don't wait
    Wait 5.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_Intro_04 for (Picked player) over 0.00 seconds
    Wait for L05Varimathras03 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_Intro_02 for (Picked player) over 0.00 seconds
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas04 <gen> and display Your brother is more clever than I thought. His defenses are considerable.. Modify duration: Add 0 seconds and Don't wait
    Wait 2.50 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_Intro_05 for (Picked player) over 0.00 seconds
    Wait for L05Sylvanas04 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_Intro_03 for (Picked player) over 0.00 seconds
    Animation - Lock Varimathras's Head to face Sylvanas, offset by (0, 0, 60.00)
    Cinematic - Send transmission to (All players) from Varimathras named Varimathras: Play L05Varimathras05 <gen> and display Yes, and with this paltry force you've mustered, a direct assault on his walls would be suicide!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Varimathras05 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Lock Sylvanas's Head to face Varimathras, offset by (0, 0, 60.00)
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas06 <gen> and display I have no intention of assaulting the walls.. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Sylvanas06 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Reset Varimathras's body-part facing
    Animation - Reset Sylvanas's body-part facing
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_Intro_06 for (Picked player) over 0.00 seconds
    Unit - Order Varimathras to Move To (Center of Intro_Varimathras_Turns_Away_Target <gen>)
    Cinematic - Send transmission to (All players) from Varimathras named Varimathras: Play L05Varimathras07 <gen> and display Then let's go before he---. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Varimathras07 <gen> to be 0.75 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Create 1 Banshee for AP11_SharedPlayer at (Center of Intro_BansheeSpawn01 <gen>) facing 300.00 degrees
    Set IntroBanshee01 = (Last created unit)
    Unit Group - Add (Last created unit) to IntroUnitsToRemove
    Unit - Order IntroBanshee01 to Move To (Center of Intro_BansheeTarget01 <gen>)
    Unit - Create 1 Banshee for AP11_SharedPlayer at (Center of Intro_BansheeSpawn02 <gen>) facing 300.00 degrees
    Set IntroBanshee02 = (Last created unit)
    Unit Group - Add (Last created unit) to IntroUnitsToRemove
    Unit - Order IntroBanshee02 to Move To (Center of Intro_BansheeTarget02 <gen>)
    Unit - Create 1 Banshee for AP11_SharedPlayer at (Center of Intro_BansheeSpawn03 <gen>) facing 300.00 degrees
    Set IntroBanshee03 = (Last created unit)
    Unit Group - Add (Last created unit) to IntroUnitsToRemove
    Unit - Order IntroBanshee03 to Move To (Center of Intro_BansheeTarget03 <gen>)
    Unit - Make Sylvanas face Varimathras over 0.50 seconds
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas08 <gen> and display My banshees will possess those hapless humans. We'll use them to open the gates for us.. Modify duration: Add 0 seconds and Don't wait
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Varimathras to Stop
    Wait for L05Sylvanas08 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Varimathras face Sylvanas over 0.50 seconds
    Cinematic - Send transmission to (All players) from Varimathras named Varimathras: Play L05Varimathras09 <gen> and display You realize we'll have only a short amount of time before he discovers what we're up to?. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Varimathras09 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas10 <gen> and display Of course. If we strike quickly enough, Detheroc will never know what hit him.. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Sylvanas10 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- CINEMATIC PART TWO --------
    -------- Fade Out --------
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- Setup --------
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_Banshee_Intro_01 for (Picked player) over 0 seconds
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Remove Footman 0253 <gen> from the game
    Unit - Remove Footman 0262 <gen> from the game
    Set IntroBFootman01 = Footman 0257 <gen>
    Set IntroBFootman02 = Footman 0263 <gen>
    Player - Make AP11_SharedPlayer treat P5_Garithos_NonAI as an Neutral
    Player - Make AP11_SharedPlayer treat P8_Detheroc_NonAI as an Neutral
    Player - Make P5_Garithos_NonAI treat AP11_SharedPlayer as an Neutral
    Player - Make P8_Detheroc_NonAI treat AP11_SharedPlayer as an Neutral
    Unit - Move IntroBFootman01 instantly to (Center of IntroB_FootmanSpawn01 <gen>)
    Unit - Order IntroBFootman01 to Move To (Center of IntroB_FootmanTarget01 <gen>)
    Unit - Move IntroBFootman02 instantly to (Center of IntroB_FootmanSpawn02 <gen>)
    Unit - Order IntroBFootman02 to Move To (Center of IntroB_FootmanTarget02 <gen>)
    Unit - Move IntroBanshee01 instantly to (Center of IntroB_Banshee01 <gen>), facing 90.00 degrees
    Unit - Move IntroBanshee02 instantly to (Center of IntroB_Banshee02 <gen>), facing 90.00 degrees
    Unit - Move IntroBanshee03 instantly to (Center of IntroB_Banshee03 <gen>), facing 90.00 degrees
    Unit - Pause IntroBanshee03
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- Fade In --------
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait until ((IntroB_FootmanTarget02 <gen> contains Footman 0263 <gen>) Equal to True), checking every 0.11 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order IntroBFootman01 to Attack IntroBanshee03
    Unit - Order IntroBFootman02 to Attack IntroBanshee03
    Cinematic - Send transmission to (All players) from IntroBFootman02 named Footman: Play FootmanYesAttack3 <gen> and display To arms!. Modify duration: Add 0 seconds and Don't wait
    Wait for FootmanYesAttack3 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Set Animation and Spell Sounds to 80.00%
    Unit - Set mana of IntroBanshee01 to 100%
    Unit - Set mana of IntroBanshee02 to 100%
    Unit - Set mana of IntroBanshee03 to 100%
    Unit - Order IntroBanshee01 to Undead Banshee - Possession IntroBFootman02
    Unit - Order IntroBanshee02 to Undead Banshee - Possession IntroBFootman01
    Cinematic - Send transmission to (All players) from IntroBanshee03 named Banshee: Play L05Banshee11 <gen> and display Whom do you serve, human?. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Banshee11 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from IntroBFootman02 named Footman: Play L05Footman12 <gen> and display The Dark Lady. I am hers to command.. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Footman12 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- Fade Out --------
    Cinematic - Fade out over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.50 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Remove IntroBanshee03 from the game
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_Banshee_Intro_02 for (Picked player) over 0.00 seconds
    Unit - Move IntroBFootman01 instantly to (Center of IntroB_FootmanSpawn01_B <gen>)
    Unit - Order IntroBFootman01 to Move To (Center of IntroB_FootmanTarget01_B <gen>)
    Unit - Move IntroBFootman02 instantly to (Center of IntroB_FootmanSpawn02_B <gen>)
    Unit - Order IntroBFootman02 to Move To (Center of IntroB_FootmanTarget02_B <gen>)
    Wait 0.50 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- Fade In --------
    Cinematic - Fade in over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.50 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Necromancer 0254 <gen> named Necromancer: Play L05Necromancer15 <gen> and display The patrol has returned! Open the gates!. Modify duration: Add 0 seconds and Don't wait
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change City Entrance 0418 <gen>'s animation speed to 10.00% of its original speed
    Destructible - Kill City Entrance 0418 <gen>
    Animation - Play City Entrance 0418 <gen>'s death alternate animation
    Sound - Play GateOpen <gen> at 100.00% volume, located at (Center of GateOpenSound <gen>) with Z offset 0
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change City Entrance 0419 <gen>'s animation speed to 10.00% of its original speed
    Destructible - Kill City Entrance 0419 <gen>
    Animation - Play City Entrance 0419 <gen>'s death alternate animation
    Wait for L05Necromancer15 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Stop GateOpen <gen> After fading
    -------- Fade Out --------
    Cinematic - Fade out over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.50 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_Banshee_Intro_03 for (Picked player) over 0 seconds
    Unit - Create 1 Ghoul for AP11_SharedPlayer at (Center of IntroC_Ghoul01 <gen>) facing 280.00 degrees
    Unit Group - Add (Last created unit) to IntroUnitsToRemove
    Unit - Create 1 Crypt Fiend for AP11_SharedPlayer at (Center of IntroC_CryptFiend01 <gen>) facing 280.00 degrees
    Unit Group - Add (Last created unit) to IntroUnitsToRemove
    Unit - Create 1 Crypt Fiend for AP11_SharedPlayer at (Center of IntroC_CryptFiend02 <gen>) facing 280.00 degrees
    Unit Group - Add (Last created unit) to IntroUnitsToRemove
    Unit - Create 1 Banshee for AP11_SharedPlayer at (Center of IntroC_Banshee01 <gen>) facing 280.00 degrees
    Unit Group - Add (Last created unit) to IntroUnitsToRemove
    Unit - Create 1 Abomination for AP11_SharedPlayer at (Center of IntroC_Abom01 <gen>) facing 280.00 degrees
    Unit Group - Add (Last created unit) to IntroUnitsToRemove
    Unit - Create 1 Ghoul for AP11_SharedPlayer at (Random point in IntroC_Ghouls <gen>) facing 180.00 degrees
    Unit Group - Add (Last created unit) to IntroUnitsToRemove
    Unit - Create 1 Banshee for AP11_SharedPlayer at (Random point in IntroC_Ghouls <gen>) facing 180.00 degrees
    Unit Group - Add (Last created unit) to IntroUnitsToRemove
    Unit - Create 1 Banshee for AP11_SharedPlayer at (Random point in IntroC_Ghouls <gen>) facing 180.00 degrees
    Unit Group - Add (Last created unit) to IntroUnitsToRemove
    Unit - Create 1 Banshee for AP11_SharedPlayer at (Random point in IntroC_Ghouls <gen>) facing 180.00 degrees
    Unit Group - Add (Last created unit) to IntroUnitsToRemove
    Wait 0.50 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- Fade In --------
    Cinematic - Fade in over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.50 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas16 <gen> and display Ready yourselves. The moment is upon us!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Sylvanas16 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_Banshee_Intro_04 for (Picked player) over 0 seconds
    Unit Group - Pick every unit in (Units in IntroC_AttackGroupA <gen>) and do (Actions)
      Loop - Actions
        Unit - Order (Picked unit) to Attack-Move To (Center of Starting_Undead_Strike <gen>)
    Unit Group - Pick every unit in (Units in IntroC_AttackGroupB <gen>) and do (Actions)
      Loop - Actions
        Unit - Order (Picked unit) to Attack-Move To (Center of Starting_Undead_Strike <gen>)
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas17 <gen> and display Now, my warriors--strike!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Sylvanas17 <gen> to be -1.00 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Set Unit Movement Sounds to 100.00%
    Sound - Set Unit Response Sounds to 100.00%
    Sound - Set Combat Sounds to 100.00%
    Sound - Set Animation and Spell Sounds to 100.00%
    Player - Make AP11_SharedPlayer treat P5_Garithos_NonAI as an Enemy
    Player - Make AP11_SharedPlayer treat P8_Detheroc_NonAI as an Enemy
    Player - Make P5_Garithos_NonAI treat AP11_SharedPlayer as an Enemy
    Player - Make P8_Detheroc_NonAI treat AP11_SharedPlayer as an Enemy
    Wait 6.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Set Unit Movement Sounds to 10.00%
    Sound - Set Unit Response Sounds to 10.00%
    Sound - Set Combat Sounds to 10.00%
    Sound - Set Animation and Spell Sounds to 10.00%
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC ENDS - Cinematic Can No Longer Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    Trigger - Turn off Intro_Skipped <gen>
    -------- Fade Out --------
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    -------- Cleanup --------
    Trigger - Run Intro_Cleanup <gen> (checking conditions)
    Wait 1.00 seconds
    Cinematic - Turn cinematic mode Off for APG4_Player
    -------- Fade In --------
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    -------- Start Game --------
    Trigger - Run Gameplay <gen> (checking conditions)
    Set InCinematic = False
    Trigger - Remove (This trigger) from the trigger queue
Intro Skipped
  Events
    Player - Player 1 (Red) skips a cinematic sequence
    Player - Player 6 (Orange) skips a cinematic sequence
    Player - Player 2 (Blue) skips a cinematic sequence
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set IntroSkipped = True
    -------- Fade Out --------
    Cinematic - Fade out over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.50 seconds
    -------- Cleanup --------
    Trigger - Run Intro_Cleanup <gen> (checking conditions)
    Wait 1.00 seconds
    Cinematic - Turn cinematic mode Off for APG4_Player
    -------- Fade In --------
    Cinematic - Fade in over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.50 seconds
    -------- Start Game --------
    Trigger - Run Gameplay <gen> (checking conditions)
    Set InCinematic = False
    Trigger - Remove Intro_Cinematic_Q <gen> from the trigger queue
Intro Setup
  Events
  Conditions
  Actions
    -------- Set Sky --------
    Environment - Set sky to Lordaeron Summer Sky
    -------- Disable XP Gain --------
    Hero - Disable experience gain for Varimathras
    Hero - Disable experience gain for Sylvanas
    -------- Pause Time Of Day --------
    Game - Turn the day/night cycle Off
    -------- Pause Units --------
    Unit - Pause all units
    Unit - Unpause Varimathras
    Unit - Unpause Sylvanas
    Unit - Unpause Footman 0253 <gen>
    Unit - Unpause Footman 0257 <gen>
    Unit - Unpause Footman 0262 <gen>
    Unit - Unpause Footman 0263 <gen>
    Unit - Unpause Necromancer 0254 <gen>
    Unit - Unpause Footman 0255 <gen>
    Unit - Unpause Footman 0256 <gen>
    Unit - Unpause Footman 0259 <gen>
    Unit - Unpause Footman 0252 <gen>
    Unit - Unpause Peasant 0258 <gen>
    -------- Hide Units --------
    Set HiddenUnits = (Units in Starting_Undead_Strike <gen>)
    Unit Group - Pick every unit in HiddenUnits and do (Hide (Picked unit))
    -------- Hide Items --------
    Item - Pick every item in (Playable map area) and do (Hide (Picked item))
    -------- Disable Abilities --------
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Player - Disable Shadow Meld for (Picked player)
        Player - Disable Vampiric Aura for (Picked player)
    Player - Disable Devotion Aura for P4_Garithos
    -------- Set Units to Remove --------
    Set IntroUnitsToRemove = (Units in Intro_InitialUnitsToRemove <gen>)
    Unit Group - Add Footman 0257 <gen> to IntroUnitsToRemove
    Unit Group - Add Footman 0263 <gen> to IntroUnitsToRemove
    Unit Group - Add Footman 0253 <gen> to IntroUnitsToRemove
    Unit Group - Add Footman 0262 <gen> to IntroUnitsToRemove
    Unit Group - Add Footman 0252 <gen> to IntroUnitsToRemove
Intro Cleanup
  Events
  Conditions
  Actions
    -------- Restore Abilities --------
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Player - Enable Shadow Meld for (Picked player)
        Player - Enable Vampiric Aura for (Picked player)
    Player - Enable Devotion Aura for P4_Garithos
    -------- Move Units --------
    Unit - Move Varimathras instantly to (Center of Gameplay_Varimathras_Start <gen>), facing 255.00 degrees
    Unit - Move Sylvanas instantly to (Center of Gameplay_Sylvanas_Start <gen>), facing 285.00 degrees
    -------- Unhide Items --------
    Item - Pick every item in (Playable map area) and do (Show (Picked item))
    Item - Pick every item in Intro_Varimathras_Start <gen> and do (Actions)
      Loop - Actions
        Item - Move (Picked item) to (Random point in VarimathrasSpareItems <gen>)
    -------- Unhide Units --------
    Unit Group - Pick every unit in HiddenUnits and do (Unhide (Picked unit))
    -------- Unpause Units --------
    Unit - Unpause all units
    -------- Reset Animations --------
    Animation - Reset Varimathras's body-part facing
    Animation - Reset Sylvanas's body-part facing
    -------- Pause Time Of Day --------
    Game - Turn the day/night cycle On
    -------- Re-enable XP Gain --------
    If (ExpDisabledForVarimathras Equal to False) then do (Enable experience gain for Varimathras) else do (Do nothing)
    If (ExpDisabledForSylvanus Equal to False) then do (Enable experience gain for Sylvanas) else do (Do nothing)
    -------- Restore Selection --------
    Selection - Select Sylvanas for AP02_Sylvanas
    Selection - Select Varimathras for AP01_Varimathras
    -------- Reset Sky --------
    Environment - Set sky to None
    -------- Reset Camera --------
    Camera - Reset camera smoothing factor
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Reset camera for (Picked player) to standard game-view over 0 seconds
        Camera - Pan camera for (Picked player) to (Target of gg_cam_Intro_Skipped) over 0 seconds
    -------- Wipe Visibility --------
    Visibility - Create an initially Enabled visibility modifier for AP11_SharedPlayer emitting Visibility across (Playable map area)
    Visibility - Destroy (Last created visibility modifier)
    -------- Set Max Mana Health for all Units --------
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Unit Group - Pick every unit in (Units owned by (Picked player)) and do (Set mana of (Picked unit) to 100%)
        Unit Group - Pick every unit in (Units owned by (Picked player)) and do (Set life of (Picked unit) to 100%)
    -------- Destroy Towers and Kill Outer Guards --------
    Unit - Kill Scout Tower 0078 <gen>
    Unit - Kill Scout Tower 0079 <gen>
    Unit - Kill Scout Tower 0146 <gen>
    Unit - Kill Necromancer 0254 <gen>
    Unit - Kill Footman 0255 <gen>
    Unit - Kill Footman 0256 <gen>
    Unit - Kill Footman 0259 <gen>
    Unit - Kill Peasant 0258 <gen>
    -------- Open Gates --------
    Animation - Change City Entrance 0418 <gen>'s animation speed to 100% of its original speed
    Animation - Change City Entrance 0419 <gen>'s animation speed to 100% of its original speed
    Destructible - Kill City Entrance 0418 <gen>
    Animation - Play City Entrance 0418 <gen>'s death alternate animation
    Destructible - Kill City Entrance 0419 <gen>
    Animation - Play City Entrance 0419 <gen>'s death alternate animation
    Destructible - Kill City Entrance 0565 <gen>
    Animation - Play City Entrance 0565 <gen>'s death alternate animation
    Destructible - Kill City Entrance 0692 <gen>
    Animation - Play City Entrance 0692 <gen>'s death alternate animation
    -------- Reset Alliance --------
    Player - Make AP11_SharedPlayer treat P5_Garithos_NonAI as an Enemy
    Player - Make AP11_SharedPlayer treat P8_Detheroc_NonAI as an Enemy
    Player - Make P5_Garithos_NonAI treat AP11_SharedPlayer as an Enemy
    Player - Make P8_Detheroc_NonAI treat AP11_SharedPlayer as an Enemy
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Player - For P5_Garithos_NonAI, turn Shared vision On toward (Picked player)
        Player - For P8_Detheroc_NonAI, turn Shared vision On toward (Picked player)
    -------- Remove Player Intro Units --------
    Unit Group - Pick every unit in (Units owned by AP11_SharedPlayer) and do (Actions)
      Loop - Actions
        Unit - Wake up (Picked unit)
    Player - Disable Sleep Always (Special) for AP11_SharedPlayer
    -------- Initial Harvesting --------
    Unit Group - Pick every unit in (Units owned by AP11_SharedPlayer of type Acolyte) and do (Order (Picked unit) to Harvest Nearby Gold)
    Unit Group - Pick every unit in (Units in SylvanasLumberPeons <gen> matching ((Unit-type of (Matching unit)) Equal to Ghoul)) and do (Order (Picked unit) to Harvest Nearby Lumber)
    Unit Group - Pick every unit in (Units in TealLumberPeons <gen> matching ((Unit-type of (Matching unit)) Equal to Peasant)) and do (Order (Picked unit) to Harvest Nearby Lumber)
    Unit Group - Pick every unit in (Units in BlueLumberPeons <gen> matching ((Unit-type of (Matching unit)) Equal to Peasant)) and do (Order (Picked unit) to Harvest Nearby Lumber)
    Unit Group - Pick every unit in IntroUnitsToRemove and do (Actions)
      Loop - Actions
        Unit - Remove (Picked unit) from the game
Gameplay
  Events
  Conditions
  Actions
    -------- Do initial gameplay stuff, like quest messages and hints --------
    Trigger - Add Time_is_Wasting_Q <gen> to the trigger queue (Checking conditions)
    Trigger - Run Create_Timer <gen> (checking conditions)
    Trigger - Add Quest_Strike_Discover_Q <gen> to the trigger queue (Checking conditions)
    Trigger - Add Quest_Derethoc_Base_Discover_Q <gen> to the trigger queue (Checking conditions)
    Wait 60.00 seconds
    Trigger - Add Hint_Build_Units_Q <gen> to the trigger queue (Checking conditions)
Victory Cinematic Q
  Events
  Conditions
  Actions
    Set InCinematic = True
    -------- Fade Out --------
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    -------- Set Up Scene --------
    Cinematic - Turn cinematic mode On for APG4_Player
    Wait 0.25 seconds
    Trigger - Run Victory_Setup <gen> (checking conditions)
    Trigger - Run SaveCodeEtc <gen> (checking conditions)
    Wait 0.25 seconds
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_TheSpellIsLifted for (Picked player) over 0 seconds
    -------- Fade In --------
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Unit Group - Pick every unit in VictoryHumanUnits and do (Actions)
      Loop - Actions
        Unit - Order (Picked unit) to Move To ((Position of (Picked unit)) offset by (512.00, 0))
        Sound - Play HorseLoop1 <gen> at 70.00% volume, attached to Garithos
    Wait 1.00 seconds
    Sound - Set Animation and Spell Sounds to 100%
    Trigger - Turn on Victory_Skipped <gen>
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC BEGINS - Cinematic Can Now Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    Unit Group - Pick every unit in VictoryHumanUnits and do (Actions)
      Loop - Actions
        Unit - Order (Picked unit) to Stop
        Sound - Stop HorseLoop1 <gen> After fading
        Special Effect - Create a special effect attached to the overhead of (Picked unit) using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
        Special Effect - Create a special effect attached to the overhead of (Picked unit) using Abilities\Spells\Human\DispelMagic\DispelMagicTarget.mdl
    Wait 1.50 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Garithos named Grand Marshal Garithos: Play L05Garithos53 <gen> and display The spell has been lifted. Is the nightmare finally over?. Modify duration: Add 0 seconds and Don't wait
    Wait 5.00 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Sylvanas to Move To (Center of Victory_Sylvanas_MoveTarget <gen>)
    Unit - Order Varimathras to Move To (Center of Victory_Varimathras_MoveTarget <gen>)
    Unit - Order VictoryBanshee02 to Move To (Center of Victory_Banshee02_MoveTarget <gen>)
    Wait for L05Garithos53 <gen> to be 0.30 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Fade out over 0.20 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.20 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_SylvanasApproach for (Picked player) over 0 seconds
        Camera - Apply gg_cam_SylvanasApproachA for (Picked player) over 4.00 seconds
    Cinematic - Fade in over 0.20 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.20 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order VictoryFootman01 to Human Footman - Defend
    Unit - Order VictoryFootman02 to Human Footman - Defend
    Wait 2.50 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_Victory_01 for (Picked player) over 0.00 seconds
    Unit - Order VictoryFootman01 to Move To (Center of Victory_Footman01_Target <gen>)
    Unit - Order VictoryFootman02 to Move To (Center of Victory_Footman02_Target <gen>)
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas54 <gen> and display Stand down, humans. I have no quarrel with you.. Modify duration: Add 0 seconds and Don't wait
    Wait 2 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order VictoryFootman01 to Human Footman - Stop Defend
    Unit - Order VictoryFootman02 to Human Footman - Stop Defend
    Wait for L05Sylvanas54 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Garithos to Move To ((Position of Garithos) offset by (256.00, 0))
    Sound - Play HorseLoop1 <gen> at 70.00% volume, attached to Garithos
    Cinematic - Send transmission to (All players) from Garithos named Grand Marshal Garithos: Play L05Garithos55 <gen> and display What is it you want, elf witch?. Modify duration: Add 0 seconds and Don't wait
    Sound - Setup all volume channels for speech
    Wait for L05Garithos55 <gen> to be 1.25 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Stop HorseLoop1 <gen> After fading
    Wait for L05Garithos55 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Varimathras face Garithos over 0.30 seconds
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas56 <gen> and display We have a common enemy. The last dreadlord, Balnazzar, currently controls the capital city of your kingdom. If you help me kill him, I'll see to it that you get your lands back.. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Sylvanas56 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_Victory_03 for (Picked player) over 0 seconds
        Camera - Apply gg_cam_Victory03A for (Picked player) over 6.00 seconds
    Cinematic - Send transmission to (All players) from Garithos named Grand Marshal Garithos: Play L05Garithos57 <gen> and display Why should we trust you? You're part of the Scourge that drove us out in the first place!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Garithos57 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_Victory05 for (Picked player) over 0 seconds
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas58 <gen> and display Not anymore. My only interest here is vengeance.. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Sylvanas58 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_Victory_03 for (Picked player) over 0 seconds
    Cinematic - Send transmission to (All players) from Garithos named Grand Marshal Garithos: Play L05Garithos59 <gen> and display Very well. I'll rally what's left of my forces and meet you outside the gates.. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Garithos59 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit Group - Pick every unit in (Units owned by P4_Garithos) and do (Actions)
      Loop - Actions
        Unit - Order (Picked unit) to Move To (Center of Victory_Humans_Leave <gen>)
        Sound - Play HorseLoop2 <gen> at 70.00% volume, attached to Garithos
    Wait 3.00 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Apply gg_cam_Victory05 for (Picked player) over 0 seconds
    Animation - Lock Varimathras's Head to face Sylvanas, offset by (0, 0, 60.00)
    Cinematic - Send transmission to (All players) from Varimathras named Varimathras: Play L05Varimathras60 <gen> and display Come now, you have no intention of giving them their lands back.. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Varimathras60 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas61 <gen> and display Of course not. The humans are simply a means to an end.. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Sylvanas61 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Varimathras named Varimathras: Play L05Varimathras62 <gen> and display You sound more like one of us with every passing day, my lady.. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Varimathras62 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Lock Sylvanas's Head to face Varimathras, offset by (-192.00, 0, 120.00)
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas63 <gen> and display Watch it, dreadlord.. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Sylvanas63 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC ENDS - Cinematic Can No Longer Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    Trigger - Turn off Victory_Skipped <gen>
    -------- Fade Out --------
    Cinematic - Fade out over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2.00 seconds
    Trigger - Run Next_Level_Run <gen> (checking conditions)
Victory Skipped
  Events
    Player - Player 2 (Blue) skips a cinematic sequence
    Player - Player 1 (Red) skips a cinematic sequence
    Player - Player 6 (Orange) skips a cinematic sequence
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set VictorySkipped = True
    -------- Fade Out --------
    Cinematic - Fade out over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Sound - Stop HorseLoop1 <gen> After fading
    Wait 2.00 seconds
    Trigger - Run Next_Level_Run <gen> (checking conditions)
Player - Disable Sleep Always (Special) for Player
^ Got Disabled when I deleted P6_Variable to make room for user players^
Victory Setup
  Events
  Conditions
  Actions
    -------- Change Alliances --------
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Player - Make (Picked player) treat P4_Garithos as an Ally
        Player - Make P4_Garithos treat (Picked player) as an Ally
    -------- Disable Scoreboard/Leaderboard if active --------
    Countdown Timer - Hide ActivationWindow
    Leaderboard - Hide SleepLeaderboard
    -------- Disable Sleep --------
    Player - Disable Sleep Always (Special) for P4_Garithos
    Player - Disable Sleep Always (Special) for P3_Garithos_Satellite
    Player - Disable Sleep Always (Special) for P5_Garithos_NonAI
    Player - Disable Sleep Always (Special) for P7_Detheroc
    Player - Disable Sleep Always (Special) for P8_Detheroc_NonAI
    Player - Disable Sleep Always (Special) for P9_Detheroc_SleepSatellite
    Player - Disable Sleep Always (Special) for P10_Garithos_SleepMain
    Player - Disable Sleep Always (Special) for P11_Detheroc_Satellite
    Player - Disable Sleep Always (Special) for P12_Detheroc_SleepMain
    -------- Set Sky --------
    Environment - Set sky to Lordaeron Summer Sky
    -------- Clear Selection --------
    Selection - Clear selection for AP01_Varimathras
    Selection - Clear selection for AP02_Sylvanas
    -------- Revive Hero --------
    Set RevivalHero = Varimathras
    Set RevivalSpot = (Center of Victory_Varimathras_Start <gen>)
    Trigger - Run Cinematic_Revival <gen> (checking conditions)
    Set VarimathrasReturnSpot = RevivalReturnSpot
    Unit - Make Varimathras face 0.00 over 0 seconds
    Unit - Change ownership of Varimathras to AP01_Varimathras and Change color
    Hero - Instantly revive Satchet02 at RevivalSpot, Hide revival graphics
    -------- Revive Hero --------
    Set RevivalHero = Sylvanas
    Set RevivalSpot = (Center of Victory_Sylvanas_Start <gen>)
    Trigger - Run Cinematic_Revival <gen> (checking conditions)
    Set SylvanasReturnSpot = RevivalReturnSpot
    Unit - Make Sylvanas face 0.00 over 0 seconds
    Unit - Change ownership of Sylvanas to AP02_Sylvanas and Change color
    Hero - Instantly revive Satchet01 at RevivalSpot, Hide revival graphics
    -------- Disable XP Gain --------
    Hero - Disable experience gain for Varimathras
    Hero - Disable experience gain for Sylvanas
    -------- Pause Time Of Day --------
    Game - Turn the day/night cycle Off
    -------- Pause Units --------
    Unit - Pause all units
    Unit - Unpause Varimathras
    Unit - Unpause Sylvanas
    -------- Hide Units --------
    Set HiddenUnits = (Units owned by AP11_SharedPlayer matching (((Matching unit) is hidden) Equal to False))
    Unit Group - Add all units of (Units owned by AP02_Sylvanas matching (((Matching unit) is hidden) Equal to False)) to HiddenUnits
    Unit Group - Add all units of (Units owned by AP01_Varimathras matching (((Matching unit) is hidden) Equal to False)) to HiddenUnits
    Unit Group - Remove Varimathras from HiddenUnits
    Unit Group - Remove Sylvanas from HiddenUnits
    Unit Group - Pick every unit in HiddenUnits and do (Hide (Picked unit))
    -------- Create New Units --------
    Unit - Remove Garithos from the game
    Unit - Create 1 Dark Knight for P4_Garithos at (Center of Victory_Garithos_Start <gen>) facing 0.00 degrees
    Set Garithos = (Last created unit)
    Hero - Set Garithos Hero-level to 8, Hide level-up graphics
    Unit - Change color of Garithos to Gray
    Unit - Create 1 Footman for P4_Garithos at (Center of Victory_Footman01 <gen>) facing 330.00 degrees
    Set VictoryFootman01 = (Last created unit)
    Unit - Create 1 Footman for P4_Garithos at (Center of Victory_Footman02 <gen>) facing 30.00 degrees
    Set VictoryFootman02 = (Last created unit)
    Unit - Create 1 Knight for P4_Garithos at (Center of Victory_Knight01 <gen>) facing 0.00 degrees
    Set VictoryKnight01 = (Last created unit)
    Unit - Create 1 Knight for P4_Garithos at (Center of Victory_Knight02 <gen>) facing 0.00 degrees
    Set VictoryKnight02 = (Last created unit)
    Unit - Create 1 Banshee for AP11_SharedPlayer at (Center of Victory_Banshee02 <gen>) facing 180.00 degrees
    Set VictoryBanshee02 = (Last created unit)
    Unit Group - Pick every unit in (Units in Victory_HumanUnits <gen>) and do (Actions)
      Loop - Actions
        Unit Group - Add (Picked unit) to VictoryHumanUnits
        AI - Ignore (Picked unit)'s guard position
    -------- Hide Items --------
    Item - Pick every item in (Playable map area) and do (Hide (Picked item))
    -------- Remove Buffs --------
    Unit Group - Pick every unit in (Units owned by AP11_SharedPlayer) and do (Remove All buffs from (Picked unit))
    Unit Group - Pick every unit in (Units owned by P4_Garithos) and do (Remove All buffs from (Picked unit))
    Unit Group - Pick every unit in (Units owned by P3_Garithos_Satellite) and do (Remove All buffs from (Picked unit))
    Unit Group - Pick every unit in (Units owned by P5_Garithos_NonAI) and do (Remove All buffs from (Picked unit))
    Unit Group - Pick every unit in (Units owned by P7_Detheroc) and do (Remove All buffs from (Picked unit))
    Unit Group - Pick every unit in (Units owned by P8_Detheroc_NonAI) and do (Remove All buffs from (Picked unit))
    Unit Group - Pick every unit in (Units owned by P9_Detheroc_SleepSatellite) and do (Remove All buffs from (Picked unit))
    Unit Group - Pick every unit in (Units owned by P10_Garithos_SleepMain) and do (Remove All buffs from (Picked unit))
    Unit Group - Pick every unit in (Units owned by P11_Detheroc_Satellite) and do (Remove All buffs from (Picked unit))
    Unit Group - Pick every unit in (Units owned by P12_Detheroc_SleepMain) and do (Remove All buffs from (Picked unit))
    -------- Disable Abilities --------
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Player - Disable Shadow Meld for (Picked player)
        Player - Disable Vampiric Aura for (Picked player)
    Player - Disable Devotion Aura (Neutral Hostile) for P4_Garithos
    -------- Music Theme --------
    Sound - Play Dark Victory
Quest Strike Create
  Events
  Conditions
    ((This trigger) is on) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    -------- Create the quest objects --------
    Quest - Create a Required, undiscovered quest titled Sneak Attack with the description Detheroc and Garithos' forces slumber, giving you the opportunity to strike their bases without fear of reinforcements. Act quickly and decimate as much of the enemy as possible before the entire stronghold is alerted to your presence., using icon path ReplaceableTextures\CommandButtons\BTNSleep.tga
    Set QuestStrike = (Last created quest)
    Quest - Create a quest requirement for (Last created quest) with the description Destroy the sleeping enemy forces
    Set QuestStrikeReq = (Last created quest requirement)
Quest Strike Discover
  Events
  Conditions
  Actions
    -------- Ensure that the quest exists --------
    Trigger - Run Quest_Strike_Create <gen> (checking conditions)
    -------- Update the quest --------
    Quest - Mark QuestStrike as Discovered
    -------- Display a quest message. --------
    Quest - Display to (All players) the Quest Discovered message: |cffffcc00MAIN QUEST|rSneak Attack - Destroy the sleeping enemy forces
Quest Strike Complete
  Events
  Conditions
  Actions
    -------- Ensure that the quest exists --------
    Trigger - Run Quest_Strike_Create <gen> (checking conditions)
    -------- Update the quest --------
    Quest - Mark QuestStrike as Discovered
    Quest - Mark QuestStrike as Completed
    Quest - Mark QuestStrikeReq as Completed
    -------- Display a quest message. --------
    Quest - Display to (All players) the Quest Completed message: |cffffcc00MAIN QUEST COMPLETED|rSneak Attack
Quest Derethoc Create
  Events
  Conditions
    ((This trigger) is on) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    -------- Create the quest objects --------
    Quest - Create a Required, undiscovered quest titled Detheroc with the description Detheroc cowers within the walls of the city, believing his pet Human, Garithos, will keep him safe. Show him the foolishness of trusting others to guard him by crushing them both., using icon path ReplaceableTextures\CommandButtons\BTNHeroDreadLord.tga
    Set QuestDerethocBase = (Last created quest)
    Quest - Create a quest requirement for QuestDerethocBase with the description Destroy Detheroc's base
    Set QuestDerethocBaseReq = (Last created quest requirement)
    Quest - Create a quest requirement for QuestDerethocBase with the description Destroy Garithos' base
    Set QuestGarithosBaseReq = (Last created quest requirement)
Quest Derethoc Discover
  Events
  Conditions
  Actions
    -------- Ensure that the quest exists --------
    Trigger - Run Quest_Derethoc_Create <gen> (checking conditions)
    -------- Update the quest --------
    Quest - Mark QuestDerethocBase as Discovered
    -------- Display a quest message. --------
    Quest - Display to (All players) the Quest Discovered message: |cffffcc00MAIN QUEST|rDetheroc - Destroy Detheroc's base - Destroy Garithos' base
Quest Derethoc Undead Base Update
  Events
  Conditions
  Actions
    -------- Ensure that the quest exists --------
    Trigger - Run Quest_Derethoc_Create <gen> (checking conditions)
    -------- Update the quest --------
    Quest - Mark QuestDerethocBase as Discovered
    Quest - Mark QuestDerethocBaseReq as Completed
    -------- Display a quest message. --------
    Quest - Display to (All players) the Quest Discovered message: |cffffcc00MAIN QUEST UPDATE|rDetheroc - |cff808080Destroy Detheroc's base (Completed)|r - Destroy Garithos' base
Quest Derethoc Human Base Update
  Events
  Conditions
  Actions
    -------- Ensure that the quest exists --------
    Trigger - Run Quest_Derethoc_Create <gen> (checking conditions)
    -------- Update the quest --------
    Quest - Mark QuestDerethocBase as Discovered
    Quest - Mark QuestGarithosBaseReq as Completed
    -------- Display a quest message. --------
    Quest - Display to (All players) the Quest Discovered message: |cffffcc00MAIN QUEST UPDATE|rDetheroc - Destroy Detheroc's base - |cff808080Destroy Garithos' base (Completed)|r
Quest Derethoc Completed
  Events
  Conditions
  Actions
    -------- Ensure that the quest exists --------
    Trigger - Run Quest_Derethoc_Create <gen> (checking conditions)
    -------- Update the quest --------
    Quest - Mark QuestDerethocBase as Discovered
    Quest - Mark QuestDerethocBase as Completed
    Quest - Mark QuestDerethocBaseReq as Completed
    Quest - Mark QuestGarithosBaseReq as Completed
    -------- Display a quest message. --------
    Quest - Display to (All players) the Quest Completed message: |cffffcc00MAIN QUEST COMPLETED|rDetheroc
Mission Failed Base Dead
  Events
  Conditions
  Actions
    Quest - Display to (All players) the Mission Failed message: |cffffcc00MISSION FAILED|rAll of your buildings have been destroyed.
Quest Strike Discover Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Run Quest_Strike_Discover <gen> (checking conditions)
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Quest Strike Complete Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Run Quest_Strike_Complete <gen> (checking conditions)
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Quest Derethoc Base Discover Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Run Quest_Derethoc_Discover <gen> (checking conditions)
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Time is Wasting Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas18 <gen> and display We can attack either of the two bases with impunity, but it's only a matter of time before the other is alerted to our presence.. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Sylvanas18 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Time is Up Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Varimathras named Varimathras: Play L05Varimathras30 <gen> and display We're out of time! Both bases have been alerted to our presence. We've got to bolster our defenses before they launch their counterattack!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Varimathras30 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Random Footman Attack Lines
  Events
    Unit - A unit owned by Player 2 (Blue) Is attacked
    Unit - A unit owned by Player 1 (Red) Is attacked
    Unit - A unit owned by Player 6 (Orange) Is attacked
  Conditions
    InCinematic Equal to False
    (Unit-type of (Attacking unit)) Equal to Footman
    And - All (Conditions) are true
      Conditions
        ((Attacking unit) is in (Units owned by AP11_SharedPlayer)) Equal to False
        ((Attacking unit) is in (Units owned by AP02_Sylvanas)) Equal to False
        ((Attacking unit) is in (Units owned by AP01_Varimathras)) Equal to False
    (Remaining time for RandomLineTimer) Equal to 0.00
    ((This trigger) is on) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Set RandomNumber = (Random real number between 0 and 4.00)
    Set Speaker = (Attacking unit)
    Countdown Timer - Start RandomLineTimer as a One-shot timer that will expire in 15.00 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        RandomNumber Less than or equal to 1.00
      Then - Actions
        Trigger - Add Footman_AttackA_Q <gen> to the trigger queue (Checking conditions)
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            RandomNumber Less than or equal to 2.00
          Then - Actions
            Trigger - Add Footman_AttackB_Q <gen> to the trigger queue (Checking conditions)
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                RandomNumber Less than or equal to 3.00
              Then - Actions
                Trigger - Add Footman_AttackC_Q <gen> to the trigger queue (Checking conditions)
              Else - Actions
                Trigger - Add Footman_AttackD_Q <gen> to the trigger queue (Checking conditions)
    Wait 60.00 seconds
    Trigger - Turn on (This trigger)
Footman AttackA Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Sound - Setup all volume channels for speech
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Speaker Not equal to No unit
      Then - Actions
        -------- Line --------
        Cinematic - Send transmission to (All players) from Speaker named Footman: Play L05Footman22 <gen> and display Glory to Lord Detheroc!. Modify duration: Add 0 seconds and Don't wait
        Wait for L05Footman22 <gen> to be 0 seconds from finished playing
      Else - Actions
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Footman AttackB Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Sound - Setup all volume channels for speech
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Speaker Not equal to No unit
      Then - Actions
        -------- Line --------
        Cinematic - Send transmission to (All players) from No unit named Footman: Play L05Footman23 <gen> and display Slay them for the master!. Modify duration: Add 0 seconds and Don't wait
        Wait for L05Footman23 <gen> to be 0 seconds from finished playing
      Else - Actions
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Footman AttackC Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Sound - Setup all volume channels for speech
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Speaker Not equal to No unit
      Then - Actions
        -------- Line --------
        Cinematic - Send transmission to (All players) from No unit named Footman: Play L05Footman24 <gen> and display Uh... who are we supposed to be fighting again?. Modify duration: Add 0 seconds and Don't wait
        Wait for L05Footman24 <gen> to be 0 seconds from finished playing
      Else - Actions
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Footman AttackD Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Sound - Setup all volume channels for speech
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Speaker Not equal to No unit
      Then - Actions
        -------- Line --------
        Cinematic - Send transmission to (All players) from No unit named Footman: Play L05Footman25 <gen> and display For Lord Garith--Lord Detheroc!. Modify duration: Add 0 seconds and Don't wait
        Wait for L05Footman25 <gen> to be 0 seconds from finished playing
      Else - Actions
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Random Necromancer Attack Lines
  Events
    Unit - A unit owned by Player 2 (Blue) Is attacked
    Unit - A unit owned by Player 1 (Red) Is attacked
    Unit - A unit owned by Player 6 (Orange) Is attacked
  Conditions
    InCinematic Equal to False
    (Unit-type of (Attacking unit)) Equal to Necromancer
    And - All (Conditions) are true
      Conditions
        ((Attacking unit) is in (Units owned by AP11_SharedPlayer)) Equal to False
        ((Attacking unit) is in (Units owned by AP02_Sylvanas)) Equal to False
        ((Attacking unit) is in (Units owned by AP01_Varimathras)) Equal to False
    (Remaining time for RandomLineTimer) Equal to 0.00
    ((This trigger) is on) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Set RandomNumber = (Random real number between 0 and 3.00)
    Set Speaker = (Attacking unit)
    Countdown Timer - Start RandomLineTimer as a One-shot timer that will expire in 15.00 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        RandomNumber Less than or equal to 1.00
      Then - Actions
        Trigger - Add Necromancer_AttackA_Q <gen> to the trigger queue (Checking conditions)
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            RandomNumber Less than or equal to 2.00
          Then - Actions
            Trigger - Add Necromancer_AttackB_Q <gen> to the trigger queue (Checking conditions)
          Else - Actions
            Trigger - Add Necromancer_AttackC_Q <gen> to the trigger queue (Checking conditions)
    Wait 60.00 seconds
    Trigger - Turn on (This trigger)
Necromancer AttackA Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Sound - Setup all volume channels for speech
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Speaker Not equal to No unit
      Then - Actions
        -------- Line --------
        Cinematic - Send transmission to (All players) from No unit named Necromancer: Play L05Necromancer19 <gen> and display Slay the upstarts in Detheroc's name!. Modify duration: Add 0 seconds and Don't wait
        Wait for L05Necromancer19 <gen> to be 0 seconds from finished playing
      Else - Actions
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Necromancer AttackB Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Sound - Setup all volume channels for speech
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Speaker Not equal to No unit
      Then - Actions
        -------- Line --------
        Cinematic - Send transmission to (All players) from No unit named Necromancer: Play L05Necromancer20 <gen> and display The Dark Lady is here! We must push her forces back!. Modify duration: Add 0 seconds and Don't wait
        Wait for L05Necromancer20 <gen> to be 0 seconds from finished playing
      Else - Actions
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Necromancer AttackC Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Sound - Setup all volume channels for speech
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Speaker Not equal to No unit
      Then - Actions
        -------- Line --------
        Cinematic - Send transmission to (All players) from No unit named Necromancer: Play L05Necromancer21 <gen> and display We're under attack!. Modify duration: Add 0 seconds and Don't wait
        Wait for L05Necromancer21 <gen> to be 0 seconds from finished playing
      Else - Actions
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Random Sylvanas Attack Lines
  Events
    Unit - A unit owned by Player 4 (Purple) Is attacked
    Unit - A unit owned by Player 3 (Teal) Is attacked
    Unit - A unit owned by Player 7 (Green) Is attacked
    Unit - A unit owned by Player 11 (Dark Green) Is attacked
  Conditions
    InCinematic Equal to False
    (Unit-type of (Attacking unit)) Equal to Dark Ranger
    (Remaining time for RandomLineTimer) Equal to 0.00
    ((This trigger) is on) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Set RandomNumber = (Random real number between 0 and 4.00)
    Countdown Timer - Start RandomLineTimer as a One-shot timer that will expire in 15.00 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        RandomNumber Less than or equal to 1.00
      Then - Actions
        Trigger - Add Sylvanas_AttackA_Q <gen> to the trigger queue (Checking conditions)
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            RandomNumber Less than or equal to 2.00
          Then - Actions
            Trigger - Add Sylvanas_AttackB_Q <gen> to the trigger queue (Checking conditions)
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                RandomNumber Less than or equal to 3.00
              Then - Actions
                Trigger - Add Sylvanas_AttackC_Q <gen> to the trigger queue (Checking conditions)
              Else - Actions
                Trigger - Add Sylvanas_AttackD_Q <gen> to the trigger queue (Checking conditions)
    Wait 90.00 seconds
    Trigger - Turn on (This trigger)
Sylvanas AttackA Q
  Events
  Conditions
    GameOver Equal to False
    (Sylvanas is alive) Equal to True
  Actions
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas39 <gen> and display Strike fast, my warriors! Detheroc must fall!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Sylvanas39 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Sylvanas AttackB Q
  Events
  Conditions
    GameOver Equal to False
    (Sylvanas is alive) Equal to True
  Actions
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas40 <gen> and display Spare no one! The dreadlord's forces must not escape!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Sylvanas40 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Sylvanas AttackC Q
  Events
  Conditions
    GameOver Equal to False
    (Sylvanas is alive) Equal to True
  Actions
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas41 <gen> and display Fight on, my warriors! Victory draws near!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Sylvanas41 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Sylvanas AttackD Q
  Events
  Conditions
    GameOver Equal to False
    (Sylvanas is alive) Equal to True
  Actions
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas42 <gen> and display Let none survive!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Sylvanas42 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Random Detheroc Attack Lines
  Events
    Unit - A unit owned by Player 2 (Blue) Is attacked
    Unit - A unit owned by Player 1 (Red) Is attacked
    Unit - A unit owned by Player 6 (Orange) Is attacked
  Conditions
    InCinematic Equal to False
    (Unit-type of (Attacking unit)) Equal to Dreadlord
    (Remaining time for RandomLineTimer) Equal to 0.00
    ((This trigger) is on) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Set RandomNumber = (Random real number between 0 and 4.00)
    Countdown Timer - Start RandomLineTimer as a One-shot timer that will expire in 15.00 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        RandomNumber Less than or equal to 1.00
      Then - Actions
        Trigger - Add Detheroc_AttackA_Q <gen> to the trigger queue (Checking conditions)
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            RandomNumber Less than or equal to 2.00
          Then - Actions
            Trigger - Add Detheroc_AttackB_Q <gen> to the trigger queue (Checking conditions)
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                RandomNumber Less than or equal to 3.00
              Then - Actions
                Trigger - Add Detheroc_AttackC_Q <gen> to the trigger queue (Checking conditions)
              Else - Actions
                Trigger - Add Detheroc_AttackD_Q <gen> to the trigger queue (Checking conditions)
    Wait 60.00 seconds
    Trigger - Turn on (This trigger)
Detheroc AttackA Q
  Events
  Conditions
    GameOver Equal to False
    (Detheroc is alive) Equal to True
  Actions
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Detheroc named Detheroc: Play L05Detheroc43 <gen> and display Come and face me, little banshee!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Detheroc43 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Detheroc AttackB Q
  Events
  Conditions
    GameOver Equal to False
    (Detheroc is alive) Equal to True
  Actions
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Detheroc named Detheroc: Play L05Detheroc44 <gen> and display You are clever, Sylvanas, but you are no match for me.. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Detheroc44 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Detheroc AttackC Q
  Events
  Conditions
    GameOver Equal to False
    (Detheroc is alive) Equal to True
  Actions
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Detheroc named Detheroc: Play L05Detheroc45 <gen> and display You rebels rush headlong to your deaths!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Detheroc45 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Detheroc AttackD Q
  Events
  Conditions
    GameOver Equal to False
    (Detheroc is alive) Equal to True
  Actions
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Detheroc named Detheroc: Play L05Detheroc46 <gen> and display I am Nathrezim! My will cannot be denied!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Detheroc46 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Random Garithos Attack Lines
  Events
    Unit - A unit owned by Player 2 (Blue) Is attacked
    Unit - A unit owned by Player 1 (Red) Is attacked
    Unit - A unit owned by Player 6 (Orange) Is attacked
  Conditions
    InCinematic Equal to False
    (Unit-type of (Attacking unit)) Equal to Dark Knight
    (Remaining time for RandomLineTimer) Equal to 0.00
    ((This trigger) is on) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Set RandomNumber = (Random real number between 0 and 4.00)
    Countdown Timer - Start RandomLineTimer as a One-shot timer that will expire in 15.00 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        RandomNumber Less than or equal to 1.00
      Then - Actions
        Trigger - Add Garithos_AttackA_Q <gen> to the trigger queue (Checking conditions)
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            RandomNumber Less than or equal to 2.00
          Then - Actions
            Trigger - Add Garithos_AttackB_Q <gen> to the trigger queue (Checking conditions)
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                RandomNumber Less than or equal to 3.00
              Then - Actions
                Trigger - Add Garithos_AttackC_Q <gen> to the trigger queue (Checking conditions)
              Else - Actions
                Trigger - Add Garithos_AttackD_Q <gen> to the trigger queue (Checking conditions)
    Wait 55.00 seconds
    Trigger - Turn on (This trigger)
Garithos AttackA Q
  Events
  Conditions
    GameOver Equal to False
    (Garithos is alive) Equal to True
  Actions
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Garithos named Grand Marshal Garithos: Play L05Garithos47 <gen> and display Victory to Lord Detheroc!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Garithos47 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Garithos AttackB Q
  Events
  Conditions
    GameOver Equal to False
    (Garithos is alive) Equal to True
  Actions
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Garithos named Grand Marshal Garithos: Play L05Garithos48 <gen> and display Slay the rebels before they regroup!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Garithos48 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Garithos AttackC Q
  Events
  Conditions
    GameOver Equal to False
    (Garithos is alive) Equal to True
  Actions
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Garithos named Grand Marshal Garithos: Play L05Garithos49 <gen> and display The master's victory draws near!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Garithos49 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Garithos AttackD Q
  Events
  Conditions
    GameOver Equal to False
    (Garithos is alive) Equal to True
  Actions
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Garithos named Grand Marshal Garithos: Play L05Garithos50 <gen> and display Hold the line, you dogs! Fight on!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Garithos50 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Sylvanus Confronts Garithos
  Events
    Unit - A unit owned by Player 2 (Blue) Is attacked
    Unit - A unit owned by Player 1 (Red) Is attacked
    Unit - A unit owned by Player 6 (Orange) Is attacked
  Conditions
    (Distance between (Position of Garithos) and (Position of Sylvanas)) Less than or equal to 1536.00
    (Attacking unit) Equal to Garithos
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Sylvanus_Confronts_Garithos_Q <gen> to the trigger queue (Checking conditions)
Sylvanus Confronts Garithos Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Sound - Setup all volume channels for speech
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Garithos is alive) Equal to True
        (Sylvanas is alive) Equal to True
      Then - Actions
        Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas33 <gen> and display You must be the human in command of this rabble.. Modify duration: Add 0 seconds and Don't wait
        Wait for L05Sylvanas33 <gen> to be 0 seconds from finished playing
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Garithos is alive) Equal to True
      Then - Actions
        Cinematic - Send transmission to (All players) from Garithos named Grand Marshal Garithos: Play L05Garithos34 <gen> and display I am Garithos. I have sworn to defend the master with my life!. Modify duration: Add 0 seconds and Don't wait
        Wait for L05Garithos34 <gen> to be 0 seconds from finished playing
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Sylvanas is alive) Equal to True
      Then - Actions
        Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas35 <gen> and display You poor, confused creature.. Modify duration: Add 0 seconds and Don't wait
        Wait for L05Sylvanas35 <gen> to be 0 seconds from finished playing
      Else - Actions
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Varimathras Confronts Detheroc
  Events
    Unit - A unit owned by Player 4 (Purple) Is attacked
    Unit - A unit owned by Player 1 (Red) Is attacked
    Unit - A unit owned by Player 12 (Brown) Is attacked
  Conditions
    (Distance between (Position of Varimathras) and (Position of Detheroc)) Less than or equal to 1536.00
    (Attacking unit) Equal to Detheroc
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Varimathras_Confronts_Detheroc_Q <gen> to the trigger queue (Checking conditions)
Varimathras Confronts Detheroc Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Sound - Setup all volume channels for speech
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Detheroc is alive) Equal to True
        (Varimathras is alive) Equal to True
      Then - Actions
        Cinematic - Send transmission to (All players) from Detheroc named Detheroc: Play L05Detheroc37 <gen> and display Traitor! How could you betray us like this? We could have ruled this land together!. Modify duration: Add 0 seconds and Don't wait
        Wait for L05Detheroc37 <gen> to be 0 seconds from finished playing
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Varimathras is alive) Equal to True
      Then - Actions
        Cinematic - Send transmission to (All players) from Varimathras named Varimathras: Play L05Varimathras38 <gen> and display Sylvanas has greater strength than you know, brother. I'll take my chances with her.. Modify duration: Add 0 seconds and Don't wait
        Wait for L05Varimathras38 <gen> to be 0 seconds from finished playing
      Else - Actions
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Hint Mortar Team EventA
  Events
    Unit - A unit owned by Player 2 (Blue) Is attacked
    Unit - A unit owned by Player 1 (Red) Is attacked
    Unit - A unit owned by Player 6 (Orange) Is attacked
  Conditions
    GameOver Equal to False
    (Unit-type of (Attacking unit)) Equal to Mortar Team
    (MortarTeamHintTripwireA <gen> contains (Attacking unit)) Equal to True
  Actions
    Trigger - Turn off Hint_Mortar_Team_EventA <gen>
    Trigger - Turn off Hint_Mortar_Team_EventA2 <gen>
    Trigger - Turn off Hint_Mortar_Team_EventB <gen>
    Trigger - Turn off Hint_Mortar_Team_EventB2 <gen>
    Trigger - Add Hint_Mortar_Team_A_Q <gen> to the trigger queue (Checking conditions)
Hint Mortar Team EventA2
  Events
    Unit - A unit owned by Player 2 (Blue) Is attacked
    Unit - A unit owned by Player 1 (Red) Is attacked
    Unit - A unit owned by Player 6 (Orange) Is attacked
  Conditions
    GameOver Equal to False
    (Unit-type of (Attacking unit)) Equal to Mortar Team
    (MortarTeamHintTripwireB <gen> contains (Attacking unit)) Equal to True
  Actions
    Trigger - Turn off Hint_Mortar_Team_EventA <gen>
    Trigger - Turn off Hint_Mortar_Team_EventA2 <gen>
    Trigger - Turn off Hint_Mortar_Team_EventB <gen>
    Trigger - Turn off Hint_Mortar_Team_EventB2 <gen>
    Trigger - Add Hint_Mortar_Team_B_Q <gen> to the trigger queue (Checking conditions)
Hint Mortar Team EventB
  Events
    Unit - A unit enters MortarTeamHintTripwireA <gen>
  Conditions
    GameOver Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to AP11_SharedPlayer
        (Owner of (Entering unit)) Equal to AP02_Sylvanas
        (Owner of (Entering unit)) Equal to AP01_Varimathras
  Actions
    Trigger - Turn off Hint_Mortar_Team_EventA <gen>
    Trigger - Turn off Hint_Mortar_Team_EventA2 <gen>
    Trigger - Turn off Hint_Mortar_Team_EventB <gen>
    Trigger - Turn off Hint_Mortar_Team_EventB2 <gen>
    Trigger - Add Hint_Mortar_Team_A_Q <gen> to the trigger queue (Checking conditions)
Hint Mortar Team EventB2
  Events
    Unit - A unit enters MortarTeamHintTripwireB <gen>
  Conditions
    GameOver Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to AP11_SharedPlayer
        (Owner of (Entering unit)) Equal to AP02_Sylvanas
        (Owner of (Entering unit)) Equal to AP01_Varimathras
  Actions
    Trigger - Turn off Hint_Mortar_Team_EventA <gen>
    Trigger - Turn off Hint_Mortar_Team_EventA2 <gen>
    Trigger - Turn off Hint_Mortar_Team_EventB <gen>
    Trigger - Turn off Hint_Mortar_Team_EventB2 <gen>
    Trigger - Add Hint_Mortar_Team_B_Q <gen> to the trigger queue (Checking conditions)
Hint Mortar Team A Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Quest - Display to (All players) the Hint message: |cff32cd32HINT|r - Use Banshees to possess Mortar Teams.
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Pan camera as necessary for (Picked player) to (Center of MortarTeamHintTripwireA <gen>) over 0.5 seconds
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Hint Mortar Team B Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Quest - Display to (All players) the Hint message: |cff32cd32HINT|r - Use Banshees to possess Mortar Teams.
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Pan camera as necessary for (Picked player) to (Center of MortarTeamHintTripwireB <gen>) over 0.5 seconds
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Hint Build Units Q
  Events
  Conditions
    GameOver Equal to False
    PlayerBuildsSomething Equal to False
  Actions
    Quest - Display to (All players) the Hint message: |cff32cd32HINT|r - Build additional units to reinforce your attack.
    Cinematic - Ping minimap for (All players) at (Center of Player_Base_Ping <gen>) for 2.00 seconds
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Camera - Set a spacebar-point for (Picked player) at (Center of Player_Base_Ping <gen>)
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Player builds something
  Events
    Unit - A unit owned by Player 6 (Orange) Begins training a unit
    Unit - A unit owned by Player 6 (Orange) Begins construction
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set PlayerBuildsSomething = True
Hint Town Portal Scroll Q
  Events
  Conditions
    GameOver Equal to False
    (Item carried by Varimathras in slot 1) Equal to TPScroll
  Actions
    Quest - Display to (All players) the Hint message: |cff32cd32HINT|r - Use Varimathras' Scroll of Town Portal to teleport your forces back to your base.
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Create Timer
  Events
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Hard Equal to True
      Then - Actions
        Countdown Timer - Start ActivationCountdown as a One-shot timer that will expire in 420.00 seconds
      Else - Actions
        Countdown Timer - Start ActivationCountdown as a One-shot timer that will expire in 450.00 seconds
    Set ActivationCountdown = (Last started timer)
    Countdown Timer - Create a timer window for (Last started timer) with title Time remaining
    Set ActivationWindow = (Last created timer window)
    Countdown Timer - Show (Last created timer window) for AP11_SharedPlayer
    Leaderboard - Create a leaderboard for (All players) titled Enemy forces are asleep.
    Set SleepLeaderboard = (Last created leaderboard)
    Leaderboard - Change the display style for (Last created leaderboard) to Show the title, Hide labels, Hide values, and Hide icons
    Leaderboard - Show SleepLeaderboard
    Trigger - Turn on Timer_Warning01 <gen>
    Trigger - Turn on Timer_Warning02 <gen>
Timer Warning01
  Events
    Time - Every 2 seconds of game time
  Conditions
    (Remaining time for ActivationCountdown) Less than or equal to 90.00
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Timer_Warning01_Q <gen> to the trigger queue (Checking conditions)
Timer Warning01 Q
  Events
  Conditions
    GameOver Equal to False
    SleepyTime Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Varimathras named Varimathras: Play L05Varimathras26 <gen> and display We must hurry. Time is running out!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Varimathras26 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Timer Warning02
  Events
    Time - Every 2 seconds of game time
  Conditions
    (Remaining time for ActivationCountdown) Less than or equal to 30.00
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Timer_Warning02_Q <gen> to the trigger queue (Checking conditions)
Timer Warning02 Q
  Events
  Conditions
    GameOver Equal to False
    SleepyTime Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Varimathras named Varimathras: Play L05Varimathras29 <gen> and display We're nearly out of time!. Modify duration: Add 0 seconds and Don't wait
    Wait for L05Varimathras29 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue

^ Got Disabled when I deleted P6_Variable to make room for user players^
Timer Expires
  Events
    Time - ActivationCountdown expires
  Conditions
    ((This trigger) is on) Equal to True
  Actions
    Set SleepyTime = False
    Countdown Timer - Hide (Last created timer window) for AP02_Sylvanas
    Countdown Timer - Hide (Last created timer window) for AP01_Varimathras
    Leaderboard - Change the title of SleepLeaderboard to |cffff0000Enemy forces are awake!|r
    Countdown Timer - Start HideLeaderboardTimer as a One-shot timer that will expire in 15.00 seconds
    Unit Group - Pick every unit in (Units owned by P3_Garithos_SleepSatellite) and do (Actions)
      Loop - Actions
        Unit - Wake up (Picked unit)
    Unit Group - Pick every unit in (Units owned by P10_Garithos_SleepMain) and do (Actions)
      Loop - Actions
        Unit - Wake up (Picked unit)
    Unit Group - Pick every unit in (Units owned by P9_Detheroc_SleepSatellite) and do (Actions)
      Loop - Actions
        Unit - Wake up (Picked unit)
    Unit Group - Pick every unit in (Units owned by P12_Detheroc_SleepMain) and do (Actions)
      Loop - Actions
        Unit - Wake up (Picked unit)
    Player - Disable Sleep Always (Special) for P4_Garithos
    Player - Disable Sleep Always (Special) for P3_Garithos_Satellite
    Player - Disable Sleep Always (Special) for P5_Garithos_NonAI
    Player - Disable Sleep Always (Special) for P3_Garithos_SleepSatellite
    Player - Disable Sleep Always (Special) for P7_Detheroc
    Player - Disable Sleep Always (Special) for P8_Detheroc_NonAI
    Player - Disable Sleep Always (Special) for P9_Detheroc_SleepSatellite
    Player - Disable Sleep Always (Special) for P10_Garithos_SleepMain
    Player - Disable Sleep Always (Special) for P11_Detheroc_Satellite
    Player - Disable Sleep Always (Special) for P12_Detheroc_SleepMain
    -------- Take Away Sight --------
    Player Group - Pick every player in APG4_Player and do (Actions)
      Loop - Actions
        Player - For P4_Garithos, turn Shared vision Off toward (Picked player)
        Player - For P3_Garithos_Satellite, turn Shared vision Off toward (Picked player)
        Player - For P5_Garithos_NonAI, turn Shared vision Off toward (Picked player)
        Player - For P7_Detheroc, turn Shared vision Off toward (Picked player)
        Player - For P8_Detheroc_NonAI, turn Shared vision Off toward (Picked player)
        Player - For P11_Detheroc_Satellite, turn Shared vision Off toward (Picked player)
    -------- START AIs --------
    Trigger - Run Start_AI <gen> (checking conditions)
    Trigger - Add Time_is_Up_Q <gen> to the trigger queue (Checking conditions)
    Trigger - Add Quest_Strike_Complete_Q <gen> to the trigger queue (Checking conditions)
    Trigger - Add Hint_Town_Portal_Scroll_Q <gen> to the trigger queue (Checking conditions)
LeaderboardHidingTimer Expires
  Events
    Time - HideLeaderboardTimer expires
  Conditions
  Actions
    Leaderboard - Hide SleepLeaderboard
Game - Set the next level to Maps\FrozenThrone\Campaign\UndeadX06.w3x
I deleted it
Next Level Run
  Events
  Conditions
  Actions
    -------- Set Next Level and Victory --------
    Game - Victory AP01_Varimathras (Show dialogs, Show scores)
    Game - Victory AP02_Sylvanas (Show dialogs, Show scores)
Start AI
  Events
  Conditions
  Actions
    -------- Start All AI Scripts --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Hard Equal to True
      Then - Actions
        AI - Start melee AI script for P4_Garithos: u05x02h.ai (aiscript)
        Wait 1.00 seconds
        AI - Start melee AI script for P3_Garithos_Satellite: u05x03h.ai (aiscript)
        Wait 1.00 seconds
        AI - Start melee AI script for P7_Detheroc: u05x07h.ai (aiscript)
        Wait 1.00 seconds
        AI - Start melee AI script for P11_Detheroc_Satellite: u05x11h.ai (aiscript)
      Else - Actions
        AI - Start melee AI script for P4_Garithos: u05x02n.ai (aiscript)
        Wait 1.00 seconds
        AI - Start melee AI script for P3_Garithos_Satellite: u05x03n.ai (aiscript)
        Wait 1.00 seconds
        AI - Start melee AI script for P7_Detheroc: u05x07n.ai (aiscript)
        Wait 1.00 seconds
        AI - Start melee AI script for P11_Detheroc_Satellite: u05x11n.ai (aiscript)
    -------- Recycle mortar teams --------
    Wait 1.00 seconds
    Unit Group - Pick every unit in (Units in MortarTeamHintTripwireA <gen> owned by P3_Garithos_Satellite) and do (Actions)
      Loop - Actions
        AI - Recycle (Picked unit)'s guard position
    Unit Group - Pick every unit in (Units in MortarTeamHintTripwireB <gen> owned by P3_Garithos_Satellite) and do (Actions)
      Loop - Actions
        AI - Recycle (Picked unit)'s guard position
    Wait 1.00 seconds
    Trigger - Run Launching_Attack <gen> (checking conditions)
AI Resources Purple Gold
  Events
    Player - Player 4 (Purple)'s Current gold becomes Less than 1000.00
  Conditions
  Actions
    Player - Add 1351 to P4_Garithos Current gold
AI Resources Purple Lumber
  Events
    Player - Player 4 (Purple)'s Current lumber becomes Less than 1000.00
  Conditions
  Actions
    Player - Add 1273 to P4_Garithos Current lumber
AI Resources Teal Gold
  Events
    Player - Player 3 (Teal)'s Current gold becomes Less than 1000.00
  Conditions
  Actions
    Player - Add 1351 to P3_Garithos_Satellite Current gold
AI Resources Teal Lumber
  Events
    Player - Player 3 (Teal)'s Current lumber becomes Less than 1000.00
  Conditions
  Actions
    Player - Add 1273 to P3_Garithos_Satellite Current lumber
AI Resources Green Gold
  Events
    Player - Player 7 (Green)'s Current gold becomes Less than 1000.00
  Conditions
  Actions
    Player - Add 1627 to P7_Detheroc Current gold
AI Resources Green Lumber
  Events
    Player - Player 7 (Green)'s Current lumber becomes Less than 1000.00
  Conditions
  Actions
    Player - Add 1019 to P7_Detheroc Current lumber
AI Resources Dark Green Gold
  Events
    Player - Player 11 (Dark Green)'s Current gold becomes Less than 1000.00
  Conditions
  Actions
    Player - Add 1627 to P11_Detheroc_Satellite Current gold
AI Resources Dark Green Lumber
  Events
    Player - Player 11 (Dark Green)'s Current lumber becomes Less than 1000.00
  Conditions
  Actions
    Player - Add 1019 to P11_Detheroc_Satellite Current lumber
Count Human Building Deaths
  Events
    Unit - A unit owned by Player 4 (Purple) Dies
  Conditions
    ((Dying unit) is A structure) Equal to True
  Actions
    Set GarithosBuildingsDead = (GarithosBuildingsDead + 1)
Count Human Sat Building Deaths
  Events
    Unit - A unit owned by Player 3 (Teal) Dies
  Conditions
    ((Dying unit) is A structure) Equal to True
  Actions
    Set GarithosSatBuildingsDead = (GarithosSatBuildingsDead + 1)
Count Undead Building Deaths
  Events
    Unit - A unit owned by Player 7 (Green) Dies
  Conditions
    ((Dying unit) is A structure) Equal to True
  Actions
    Set DetherocBuildingsDead = (DetherocBuildingsDead + 1)
Count Undead Sat Building Deaths
  Events
    Unit - A unit owned by Player 11 (Dark Green) Dies
  Conditions
    ((Dying unit) is A structure) Equal to True
  Actions
    Set DetherocSatBuildingsDead = (DetherocSatBuildingsDead + 1)
Launching Attack
  Events
  Conditions
  Actions
    Trigger - Add Launching_Attack_Q <gen> to the trigger queue (Checking conditions)
    AI - Send P4_Garithos the AI Command (0, 0)
    AI - Send P3_Garithos_Satellite the AI Command (0, 0)
    AI - Send P7_Detheroc the AI Command (0, 0)
    AI - Send P11_Detheroc_Satellite the AI Command (0, 0)
    Wait 60.00 seconds
    AI - Send P4_Garithos the AI Command (0, 0)
    AI - Send P3_Garithos_Satellite the AI Command (0, 0)
    AI - Send P7_Detheroc the AI Command (0, 0)
    AI - Send P11_Detheroc_Satellite the AI Command (0, 0)
    Wait 10.00 seconds
    Set MaxAIActive = 2
    Trigger - Run Determine_Number_of_Crippled_Bases <gen> (checking conditions)
    Trigger - Run Determine_Attacking_AIs <gen> (checking conditions)
Launching Attack Q
  Events
  Conditions
    GameOver Equal to False
    (Sylvanas is alive) Equal to True
  Actions
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas31 <gen> and display Detheroc will send his forces soon. We must be ready!. Modify duration: Add 0 seconds and Wait
    Wait for L05Sylvanas32 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Determine Number of Crippled Bases
  Events
  Conditions
  Actions
    Set TotalBasesCrippled = 0
    Set TempUnitGroup = (Units owned by P4_Garithos matching ((((Matching unit) is alive) Equal to True) and (((Unit-type of (Matching unit)) Equal to Peasant) or (((Unit-type of (Matching unit)) Equal to Town Hall) or (((Unit-type of (Matching unit)) Equal to Keep) or ((Unit-type of (Matching unit)) Equal to Castle))))))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in TempUnitGroup) Equal to 0
      Then - Actions
        Set GarithosBaseCrippled = True
        Set TotalBasesCrippled = (TotalBasesCrippled + 1)
      Else - Actions
    Custom script: call DestroyGroup( udg_TempUnitGroup )
    Set TempUnitGroup = (Units owned by P3_Garithos_Satellite matching ((((Matching unit) is alive) Equal to True) and (((Unit-type of (Matching unit)) Equal to Peasant) or (((Unit-type of (Matching unit)) Equal to Town Hall) or (((Unit-type of (Matching unit)) Equal to Keep) or ((Unit-type of (Matching unit)) Equal to Castle))))))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in TempUnitGroup) Equal to 0
      Then - Actions
        Set GarithosSatBaseCrippled = True
        Set TotalBasesCrippled = (TotalBasesCrippled + 1)
      Else - Actions
    Custom script: call DestroyGroup( udg_TempUnitGroup )
    Set TempUnitGroup = (Units owned by P7_Detheroc matching ((((Matching unit) is alive) Equal to True) and (((Unit-type of (Matching unit)) Equal to Acolyte) or (((Unit-type of (Matching unit)) Equal to Necropolis) or (((Unit-type of (Matching unit)) Equal to Halls of the Dead) or ((Unit-type of (Matching unit)) Equal to Black Citadel))))))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in TempUnitGroup) Equal to 0
      Then - Actions
        Set DetherocBaseCrippled = True
        Set TotalBasesCrippled = (TotalBasesCrippled + 1)
      Else - Actions
    Custom script: call DestroyGroup( udg_TempUnitGroup )
    Set TempUnitGroup = (Units owned by P11_Detheroc_Satellite matching ((((Matching unit) is alive) Equal to True) and (((Unit-type of (Matching unit)) Equal to Acolyte) or (((Unit-type of (Matching unit)) Equal to Necropolis) or (((Unit-type of (Matching unit)) Equal to Halls of the Dead) or ((Unit-type of (Matching unit)) Equal to Black Citadel))))))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in TempUnitGroup) Equal to 0
      Then - Actions
        Set DetherocSatBaseCrippled = True
        Set TotalBasesCrippled = (TotalBasesCrippled + 1)
      Else - Actions
    Custom script: call DestroyGroup( udg_TempUnitGroup )
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TotalBasesCrippled Greater than or equal to 3
      Then - Actions
        AI - Send P4_Garithos the AI Command (0, 0)
        AI - Send P3_Garithos_Satellite the AI Command (0, 0)
        AI - Send P7_Detheroc the AI Command (0, 0)
        AI - Send P11_Detheroc_Satellite the AI Command (0, 0)
      Else - Actions
Determine Attacking AIs
  Events
  Conditions
  Actions
    -------- DO CHECKS FOR BARELY HURT BASES --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        NumberofAI_Activated Less than MaxAIActive
        DetherocAI_Active Equal to False
        (Number of living Crypt units owned by P7_Detheroc) Not equal to 0
        (Number of living Slaughterhouse units owned by P7_Detheroc) Not equal to 0
        (Number of living Temple of the Damned units owned by P7_Detheroc) Not equal to 0
        (Number of living Acolyte units owned by P7_Detheroc) Not equal to 0
        Or - Any (Conditions) are true
          Conditions
            (Number of living Necropolis units owned by P7_Detheroc) Not equal to 0
            (Number of living Halls of the Dead units owned by P7_Detheroc) Not equal to 0
            (Number of living Black Citadel units owned by P7_Detheroc) Not equal to 0
      Then - Actions
        AI - Send P7_Detheroc the AI Command (0, 0)
        Set NumberofAI_Activated = (NumberofAI_Activated + 1)
        Set DetherocAI_Active = True
        Trigger - Turn on Detheroc_Base_Crippled <gen>
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        NumberofAI_Activated Less than MaxAIActive
        GarithosAI_Active Equal to False
        (Number of living Barracks units owned by P4_Garithos) Not equal to 0
        (Number of living Workshop units owned by P4_Garithos) Not equal to 0
        (Number of living Gryphon Aviary units owned by P4_Garithos) Not equal to 0
        (Number of living Peasant units owned by P4_Garithos) Not equal to 0
        Or - Any (Conditions) are true
          Conditions
            (Number of living Town Hall units owned by P4_Garithos) Not equal to 0
            (Number of living Keep units owned by P4_Garithos) Not equal to 0
            (Number of living Castle units owned by P4_Garithos) Not equal to 0
      Then - Actions
        AI - Send P4_Garithos the AI Command (0, 0)
        Set NumberofAI_Activated = (NumberofAI_Activated + 1)
        Set GarithosAI_Active = True
        Trigger - Turn on Garithos_Base_Crippled <gen>
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        NumberofAI_Activated Less than MaxAIActive
        GarithosSatAI_Active Equal to False
        (Number of living Barracks units owned by P3_Garithos_Satellite) Not equal to 0
        (Number of living Workshop units owned by P3_Garithos_Satellite) Not equal to 0
        (Number of living Peasant units owned by P3_Garithos_Satellite) Not equal to 0
        Or - Any (Conditions) are true
          Conditions
            (Number of living Town Hall units owned by P3_Garithos_Satellite) Not equal to 0
            (Number of living Keep units owned by P3_Garithos_Satellite) Not equal to 0
            (Number of living Castle units owned by P3_Garithos_Satellite) Not equal to 0
        DetherocAI_Active Equal to True
        DetherocBaseCrippled Equal to False
      Then - Actions
        AI - Send P3_Garithos_Satellite the AI Command (0, 0)
        Set NumberofAI_Activated = (NumberofAI_Activated + 1)
        Set GarithosSatAI_Active = True
        Trigger - Turn on Garithos_Satellite_Base_Crippled <gen>
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        NumberofAI_Activated Less than MaxAIActive
        DetherocSatAI_Active Equal to False
        (Number of living Crypt units owned by P11_Detheroc_Satellite) Not equal to 0
        (Number of living Slaughterhouse units owned by P11_Detheroc_Satellite) Not equal to 0
        (Number of living Temple of the Damned units owned by P11_Detheroc_Satellite) Not equal to 0
        (Number of living Acolyte units owned by P11_Detheroc_Satellite) Not equal to 0
        Or - Any (Conditions) are true
          Conditions
            (Number of living Necropolis units owned by P11_Detheroc_Satellite) Not equal to 0
            (Number of living Halls of the Dead units owned by P11_Detheroc_Satellite) Not equal to 0
            (Number of living Black Citadel units owned by P11_Detheroc_Satellite) Not equal to 0
      Then - Actions
        AI - Send P11_Detheroc_Satellite the AI Command (0, 0)
        Set NumberofAI_Activated = (NumberofAI_Activated + 1)
        Set DetherocSatAI_Active = True
        Trigger - Turn on Detheroc_Satellite_Base_Crippled <gen>
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        NumberofAI_Activated Less than MaxAIActive
        GarithosSatAI_Active Equal to False
        (Number of living Barracks units owned by P3_Garithos_Satellite) Not equal to 0
        (Number of living Workshop units owned by P3_Garithos_Satellite) Not equal to 0
        (Number of living Peasant units owned by P3_Garithos_Satellite) Not equal to 0
        Or - Any (Conditions) are true
          Conditions
            (Number of living Town Hall units owned by P3_Garithos_Satellite) Not equal to 0
            (Number of living Keep units owned by P3_Garithos_Satellite) Not equal to 0
            (Number of living Castle units owned by P3_Garithos_Satellite) Not equal to 0
      Then - Actions
        AI - Send P3_Garithos_Satellite the AI Command (0, 0)
        Set NumberofAI_Activated = (NumberofAI_Activated + 1)
        Set GarithosSatAI_Active = True
        Trigger - Turn on Garithos_Satellite_Base_Crippled <gen>
      Else - Actions
    -------- DO CHECKS FOR BADLY HURT BASES --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        NumberofAI_Activated Less than MaxAIActive
        DetherocAI_Active Equal to False
        DetherocBuildingsDead Less than or equal to 10
        (Number of living Acolyte units owned by P7_Detheroc) Not equal to 0
        Or - Any (Conditions) are true
          Conditions
            (Number of living Necropolis units owned by P7_Detheroc) Not equal to 0
            (Number of living Halls of the Dead units owned by P7_Detheroc) Not equal to 0
            (Number of living Black Citadel units owned by P7_Detheroc) Not equal to 0
      Then - Actions
        AI - Send P7_Detheroc the AI Command (0, 0)
        Set NumberofAI_Activated = (NumberofAI_Activated + 1)
        Set DetherocAI_Active = True
        Trigger - Turn on Detheroc_Base_Crippled <gen>
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        NumberofAI_Activated Less than MaxAIActive
        GarithosAI_Active Equal to False
        GarithosBuildingsDead Less than or equal to 10
        (Number of living Peasant units owned by P4_Garithos) Not equal to 0
        (Castle 0003 <gen> is alive) Equal to True
      Then - Actions
        AI - Send P4_Garithos the AI Command (0, 0)
        Set NumberofAI_Activated = (NumberofAI_Activated + 1)
        Set GarithosAI_Active = True
        Trigger - Turn on Garithos_Base_Crippled <gen>
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        NumberofAI_Activated Less than MaxAIActive
        GarithosSatAI_Active Equal to False
        GarithosSatBuildingsDead Less than or equal to 10
        (Number of living Peasant units owned by P3_Garithos_Satellite) Not equal to 0
        (Castle 0000 <gen> is alive) Equal to True
        DetherocAI_Active Equal to True
        DetherocBaseCrippled Equal to False
      Then - Actions
        AI - Send P3_Garithos_Satellite the AI Command (0, 0)
        Set NumberofAI_Activated = (NumberofAI_Activated + 1)
        Set GarithosSatAI_Active = True
        Trigger - Turn on Garithos_Satellite_Base_Crippled <gen>
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        NumberofAI_Activated Less than MaxAIActive
        DetherocSatAI_Active Equal to False
        DetherocSatBuildingsDead Less than or equal to 10
        (Number of living Acolyte units owned by P11_Detheroc_Satellite) Not equal to 0
        Or - Any (Conditions) are true
          Conditions
            (Number of living Necropolis units owned by P11_Detheroc_Satellite) Not equal to 0
            (Number of living Halls of the Dead units owned by P11_Detheroc_Satellite) Not equal to 0
            (Number of living Black Citadel units owned by P11_Detheroc_Satellite) Not equal to 0
      Then - Actions
        AI - Send P11_Detheroc_Satellite the AI Command (0, 0)
        Set NumberofAI_Activated = (NumberofAI_Activated + 1)
        Set DetherocSatAI_Active = True
        Trigger - Turn on Detheroc_Satellite_Base_Crippled <gen>
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        NumberofAI_Activated Less than MaxAIActive
        GarithosSatAI_Active Equal to False
        GarithosSatBuildingsDead Less than or equal to 10
        (Number of living Peasant units owned by P3_Garithos_Satellite) Not equal to 0
        (Castle 0000 <gen> is alive) Equal to True
      Then - Actions
        AI - Send P3_Garithos_Satellite the AI Command (0, 0)
        Set NumberofAI_Activated = (NumberofAI_Activated + 1)
        Set GarithosSatAI_Active = True
        Trigger - Turn on Garithos_Satellite_Base_Crippled <gen>
      Else - Actions
    -------- DO CHECKS FOR CAN I BUILD WITH ACOLYTES --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        NumberofAI_Activated Less than MaxAIActive
        DetherocAI_Active Equal to False
        Or - Any (Conditions) are true
          Conditions
            (Number of units in (Units owned by P7_Detheroc of type Acolyte)) Not equal to 0
            Or - Any (Conditions) are true
              Conditions
                (Number of living Necropolis units owned by P7_Detheroc) Not equal to 0
                (Number of living Halls of the Dead units owned by P7_Detheroc) Not equal to 0
                (Number of living Black Citadel units owned by P7_Detheroc) Not equal to 0
      Then - Actions
        AI - Send P7_Detheroc the AI Command (0, 0)
        Set NumberofAI_Activated = (NumberofAI_Activated + 1)
        Set DetherocAI_Active = True
        Trigger - Turn on Detheroc_Base_Crippled <gen>
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        NumberofAI_Activated Less than MaxAIActive
        GarithosAI_Active Equal to False
        Or - Any (Conditions) are true
          Conditions
            (Number of living Peasant units owned by P4_Garithos) Not equal to 0
            (Castle 0003 <gen> is alive) Equal to True
      Then - Actions
        AI - Send P4_Garithos the AI Command (0, 0)
        Set NumberofAI_Activated = (NumberofAI_Activated + 1)
        Set GarithosAI_Active = True
        Trigger - Turn on Garithos_Base_Crippled <gen>
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        NumberofAI_Activated Less than MaxAIActive
        GarithosSatAI_Active Equal to False
        Or - Any (Conditions) are true
          Conditions
            (Number of living Peasant units owned by P3_Garithos_Satellite) Not equal to 0
            (Castle 0000 <gen> is alive) Equal to True
        DetherocAI_Active Equal to True
        DetherocBaseCrippled Equal to False
      Then - Actions
        AI - Send P3_Garithos_Satellite the AI Command (0, 0)
        Set NumberofAI_Activated = (NumberofAI_Activated + 1)
        Set GarithosSatAI_Active = True
        Trigger - Turn on Garithos_Satellite_Base_Crippled <gen>
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        NumberofAI_Activated Less than MaxAIActive
        DetherocSatAI_Active Equal to False
        Or - Any (Conditions) are true
          Conditions
            (Number of living Acolyte units owned by P11_Detheroc_Satellite) Not equal to 0
            Or - Any (Conditions) are true
              Conditions
                (Number of living Necropolis units owned by P11_Detheroc_Satellite) Not equal to 0
                (Number of living Halls of the Dead units owned by P11_Detheroc_Satellite) Not equal to 0
                (Number of living Black Citadel units owned by P11_Detheroc_Satellite) Not equal to 0
      Then - Actions
        AI - Send P11_Detheroc_Satellite the AI Command (0, 0)
        Set NumberofAI_Activated = (NumberofAI_Activated + 1)
        Set DetherocSatAI_Active = True
        Trigger - Turn on Detheroc_Satellite_Base_Crippled <gen>
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        NumberofAI_Activated Less than MaxAIActive
        GarithosSatAI_Active Equal to False
        Or - Any (Conditions) are true
          Conditions
            (Number of living Peasant units owned by P3_Garithos_Satellite) Not equal to 0
            (Castle 0000 <gen> is alive) Equal to True
      Then - Actions
        AI - Send P3_Garithos_Satellite the AI Command (0, 0)
        Set NumberofAI_Activated = (NumberofAI_Activated + 1)
        Set GarithosSatAI_Active = True
        Trigger - Turn on Garithos_Satellite_Base_Crippled <gen>
      Else - Actions
Garithos Base Crippled
  Events
    Time - Every 5.00 seconds of game time
  Conditions
    MaxAIActive Less than or equal to 3
  Actions
    Set TempUnitGroup = (Units owned by P4_Garithos matching ((((Matching unit) is alive) Equal to True) and ((Point-value of (Matching unit)) Equal to 1)))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in TempUnitGroup) Equal to 0
      Then - Actions
        Custom script: call DestroyGroup( udg_TempUnitGroup )
      Else - Actions
        Custom script: call DestroyGroup( udg_TempUnitGroup )
        Skip remaining actions
    Trigger - Turn off (This trigger)
    Set MaxAIActive = (MaxAIActive + 1)
    Trigger - Run Determine_Number_of_Crippled_Bases <gen> (checking conditions)
    Trigger - Run Determine_Attacking_AIs <gen> (checking conditions)
Garithos Satellite Base Crippled
  Events
    Time - Every 7.00 seconds of game time
  Conditions
    MaxAIActive Less than or equal to 3
  Actions
    Set TempUnitGroup = (Units owned by P3_Garithos_Satellite matching ((((Matching unit) is alive) Equal to True) and ((Point-value of (Matching unit)) Equal to 1)))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in TempUnitGroup) Equal to 0
      Then - Actions
        Custom script: call DestroyGroup( udg_TempUnitGroup )
      Else - Actions
        Custom script: call DestroyGroup( udg_TempUnitGroup )
        Skip remaining actions
    Trigger - Turn off (This trigger)
    Set MaxAIActive = (MaxAIActive + 1)
    Trigger - Run Determine_Number_of_Crippled_Bases <gen> (checking conditions)
    Trigger - Run Determine_Attacking_AIs <gen> (checking conditions)
Detheroc Base Crippled
  Events
    Time - Every 6.00 seconds of game time
  Conditions
    MaxAIActive Less than or equal to 3
  Actions
    Set TempUnitGroup = (Units owned by P7_Detheroc matching ((((Matching unit) is alive) Equal to True) and ((Point-value of (Matching unit)) Equal to 1)))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in TempUnitGroup) Equal to 0
      Then - Actions
        Custom script: call DestroyGroup( udg_TempUnitGroup )
      Else - Actions
        Custom script: call DestroyGroup( udg_TempUnitGroup )
        Skip remaining actions
    Trigger - Turn off (This trigger)
    Set MaxAIActive = (MaxAIActive + 1)
    Trigger - Run Determine_Number_of_Crippled_Bases <gen> (checking conditions)
    Trigger - Run Determine_Attacking_AIs <gen> (checking conditions)
Detheroc Satellite Base Crippled
  Events
    Time - Every 4.00 seconds of game time
  Conditions
    MaxAIActive Less than or equal to 3
  Actions
    Set TempUnitGroup = (Units owned by P11_Detheroc_Satellite matching ((((Matching unit) is alive) Equal to True) and ((Point-value of (Matching unit)) Equal to 1)))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in TempUnitGroup) Equal to 0
      Then - Actions
        Custom script: call DestroyGroup( udg_TempUnitGroup )
      Else - Actions
        Custom script: call DestroyGroup( udg_TempUnitGroup )
        Skip remaining actions
    Trigger - Turn off (This trigger)
    Set MaxAIActive = (MaxAIActive + 1)
    Trigger - Run Determine_Number_of_Crippled_Bases <gen> (checking conditions)
    Trigger - Run Determine_Attacking_AIs <gen> (checking conditions)
To use combat detection, just disable these two triggers and check the "InCinematic" variable to determine whether or not the player is in combat.

Already disabled by default
Combat Detected
  Events
    Unit - A unit owned by Player 1 (Red) Is attacked
  Conditions
  Actions
    Countdown Timer - Start CombatCheckTimer as a One-shot timer that will expire in 3.00 seconds
    Set InCombat = True
Already Disabled by default
Combat Resolved
  Events
    Time - CombatCheckTimer expires
  Conditions
  Actions
    Set InCombat = False
Garithos Building Constructing
  Events
    Unit - A unit owned by Player 4 (Purple) Begins construction
    Unit - A unit owned by Player 3 (Teal) Begins construction
  Conditions
    And - All (Conditions) are true
      Conditions
        (Unit-type of (Constructing structure)) Not equal to Farm
        (Unit-type of (Constructing structure)) Not equal to Scout Tower
        (Unit-type of (Constructing structure)) Not equal to Guard Tower
        (Unit-type of (Constructing structure)) Not equal to Cannon Tower
  Actions
    Unit Group - Add (Constructing structure) to BuildingsICareAboutHuman
Garithos Building Canceled
  Events
    Unit - A unit owned by Player 4 (Purple) Cancels construction
    Unit - A unit owned by Player 3 (Teal) Cancels construction
  Conditions
    And - All (Conditions) are true
      Conditions
        (Unit-type of (Cancelled structure)) Not equal to Farm
        (Unit-type of (Cancelled structure)) Not equal to Scout Tower
        (Unit-type of (Cancelled structure)) Not equal to Guard Tower
        (Unit-type of (Cancelled structure)) Not equal to Cannon Tower
  Actions
    Unit Group - Remove (Cancelled structure) from BuildingsICareAboutHuman
Garithos Building Destroyed
  Events
    Unit - A unit owned by Player 4 (Purple) Dies
    Unit - A unit owned by Player 3 (Teal) Dies
  Conditions
    ((Dying unit) is A structure) Equal to True
    And - All (Conditions) are true
      Conditions
        (Unit-type of (Dying unit)) Not equal to Farm
        (Unit-type of (Dying unit)) Not equal to Scout Tower
        (Unit-type of (Dying unit)) Not equal to Guard Tower
        (Unit-type of (Dying unit)) Not equal to Cannon Tower
  Actions
    Unit Group - Remove (Dying unit) from BuildingsICareAboutHuman
Detheroc Building Constructing
  Events
    Unit - A unit owned by Player 7 (Green) Begins construction
    Unit - A unit owned by Player 11 (Dark Green) Begins construction
  Conditions
    And - All (Conditions) are true
      Conditions
        (Unit-type of (Constructing structure)) Not equal to Ziggurat
        (Unit-type of (Constructing structure)) Not equal to Spirit Tower
        (Unit-type of (Constructing structure)) Not equal to Nerubian Tower
  Actions
    Unit Group - Add (Constructing structure) to BuildingsICareAboutUndead
Detheroc Building Canceled
  Events
    Unit - A unit owned by Player 7 (Green) Cancels construction
    Unit - A unit owned by Player 11 (Dark Green) Cancels construction
  Conditions
    And - All (Conditions) are true
      Conditions
        (Unit-type of (Cancelled structure)) Not equal to Ziggurat
        (Unit-type of (Cancelled structure)) Not equal to Spirit Tower
        (Unit-type of (Cancelled structure)) Not equal to Nerubian Tower
  Actions
    Unit Group - Remove (Cancelled structure) from BuildingsICareAboutUndead
Detheroc Building Destroyed
  Events
    Unit - A unit owned by Player 7 (Green) Dies
    Unit - A unit owned by Player 11 (Dark Green) Dies
  Conditions
    ((Dying unit) is A structure) Equal to True
    And - All (Conditions) are true
      Conditions
        (Unit-type of (Dying unit)) Not equal to Spirit Tower
        (Unit-type of (Dying unit)) Not equal to Ziggurat
        (Unit-type of (Dying unit)) Not equal to Nerubian Tower
  Actions
    Unit Group - Remove (Dying unit) from BuildingsICareAboutUndead
Garithos Base Destroyed
  Events
    Time - Every 2 seconds of game time
  Conditions
    GameOver Equal to False
    InCinematic Equal to False
    (Number of units in BuildingsICareAboutHuman) Equal to 0
  Actions
    Trigger - Turn off (This trigger)
    Set HumansDead = True
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        UndeadDead Equal to True
      Then - Actions
        Set GameOver = True
        Unit - Make Sylvanas Invulnerable
        Unit - Make Varimathras Invulnerable
        Trigger - Add Both_Bases_Destroyed_Q <gen> to the trigger queue (Checking conditions)
        Trigger - Add Victory_Cinematic_Q <gen> to the trigger queue (Checking conditions)
      Else - Actions
        Trigger - Add Garithos_Base_Destroyed_Q <gen> to the trigger queue (Checking conditions)
Garithos Base Destroyed Q
  Events
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        UndeadDead Equal to False
        (Sylvanas is alive) Equal to True
      Then - Actions
        Sound - Setup all volume channels for speech
        Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play L05Sylvanas36 <gen> and display The humans' destruction gives me a certain amount of satisfaction. But Detheroc is the true threat here. It's not over till he lies dead at my feet.. Modify duration: Add 0 seconds and Don't wait
        Wait for L05Sylvanas36 <gen> to be 0 seconds from finished playing
        Sound - Reset all volume channels to 100%
      Else - Actions
    Trigger - Run Quest_Derethoc_Human_Base_Update <gen> (checking conditions)
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Detheroc Base Destroyed
  Events
    Time - Every 2 seconds of game time
  Conditions
    GameOver Equal to False
    InCinematic Equal to False
    (Number of units in BuildingsICareAboutUndead) Equal to 0
  Actions
    Trigger - Turn off (This trigger)
    Set UndeadDead = True
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        HumansDead Equal to True
      Then - Actions
        Set GameOver = True
        Unit - Make Sylvanas Invulnerable
        Unit - Make Varimathras Invulnerable
        Trigger - Add Both_Bases_Destroyed_Q <gen> to the trigger queue (Checking conditions)
        Trigger - Add Victory_Cinematic_Q <gen> to the trigger queue (Checking conditions)
      Else - Actions
        Trigger - Add Detheroc_Base_Destroyed_Q <gen> to the trigger queue (Checking conditions)
Detheroc Base Destroyed Q
  Events
  Conditions
  Actions
    Trigger - Run Quest_Derethoc_Undead_Base_Update <gen> (checking conditions)
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Both Bases Destroyed Q
  Events
  Conditions
  Actions
    Trigger - Run Quest_Derethoc_Completed <gen> (checking conditions)
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Defeat Units Dead
  Events
  Conditions
    GameOver Equal to False
    (Count structures controlled by AP11_SharedPlayer (Include incomplete structures)) Equal to 0
  Actions
    Set GameOver = True
    Wait 2 seconds
    Trigger - Run Mission_Failed_Base_Dead <gen> (checking conditions)
    Wait Campaign quest delay seconds
    Game - Defeat AP02_Sylvanas with the message: Defeat!
    Game - Defeat AP01_Varimathras with the message: Defeat!
SetDifficulty
  Events
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        SinglePlayer Equal to False
      Then - Actions
        Game - Display to Player Group - Player 2 (Blue) for 600.00 seconds the text: Waiting for main player to select difficulty...
      Else - Actions
    Sound - Clear the music list
    Sound - Set Ambient Sounds to 0.00%
    Sound - Set Animation and Spell Sounds to 0.00%
    Sound - Set Music to 0.00%
    Wait 0.01 seconds
    Sound - Stop music Immediately
    Wait 0.25 seconds
    Dialog - Change the title of ChooseDifficulty to Choose difficulty:
    Dialog - Create a dialog button for ChooseDifficulty labelled Normal
    Set NormalB = (Last created dialog Button)
    Dialog - Create a dialog button for ChooseDifficulty labelled Hard
    Set HardB = (Last created dialog Button)
    Dialog - Show ChooseDifficulty for AP01_Varimathras
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        SinglePlayer Equal to True
      Then - Actions
        Dialog - Show ChooseDifficulty for AP02_Sylvanas
      Else - Actions
DifficultySelected
  Events
    Dialog - A dialog button is clicked for ChooseDifficulty
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    If (All Conditions are True) then do (Then Actions