1. Are you planning to upload your awesome map to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. We have recently started the 16th edition of the Mini Mapping Contest. The theme is mini RPG. Do check it out and have fun.
    Dismiss Notice
  5. Dismiss Notice
  6. The Highway to Hell has been laid open. Come along and participate in the 5th Special Effect Contest.
    Dismiss Notice
  7. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Trigger Viewer

2P Undead05 v2.03.w3x
Variables
Variables
Initialization
PreInit
StartInitializationSequence
Initialize Variables
Initial Resources
Initial Weather
Initial Alliances
Initial Quests
Initial Music
Setup Scorescreen
AI Resourcing
BlueGold
BlueLumber
TealGold
TealLumber
BrownGold
BrownLumber
Heroes
Initial Heroes
Init Hero XP
Limit Arthas XP
Limit Falric XP
Villagers
Villager01Patrol
Villager01Panic
Villager01Remove
Villager02Patrol
Villager02Panic
Villager02Remove
Villager03Patrol
Villager03Panic
Villager03Remove
Villager04Patrol
Villager04Panic
Villager04Remove
Villager05Patrol
Villager05Panic
Villager05Remove
Hints
Gargoyles Available
Gargoyles Available Message
IntroCinematic
TriggerIntroCinematic
IntroEnvironment
IntroCinematicMode
IntroActorSetup
IntroInitialCamera
IntroTichoTalks
IntroCinematicEnd
IntroCinematicEscape
Tichondrius Fade
Solidify A
Dissolve A
SylvanasFailsafes
InitialSylvanasPlacement
IntroSylvanasDies
SylvanasAttacks
SylvanasTimerElapses
SylvanasAttacks
SylvanusAttacksMessage
OrderSylvanasFailsafe
CheckForWaveDeath
Reinforcement
ReinforcementMessage
AI Activation
AI BlueAttacked
AI TealAttackedSylvanusActive
AI TealAttackedSylvanusDead
AI BrownAttackedSylvanusActive
AI BrownAttackedSylvanusDead
AI GreenAttackedSylvanusActive
AI GreenAttackedSylvanusDead
Silvermoon Quest Failure Message
AI RunnerReaches
AI SylvanusLaunch
Runners
InitialTimerExpires
InitialTimerExpiresMessage
RunnerDies
ReoccuringRunnerTimerExpires
ReoccuringRunnerTimerExpiresMessage
RandomizePath
RunnerHeartbeat
PathBRedirect
PathCRedirect
PathDRedirect
RunnerReachesSilvermoonEast
RunnerReachesSilvermoonEastMessage
RunnerReachesSilvermoonWest
RunnerReachesSilvermoonWestMessage
RunnerFailsafeTimerExpires
Runner Messaging
CreateLeaderboard
CreateTimerWindow
RunnerSpawnLocation
RunnerSpawnBuilding Dies
GargoyleCinematic
TriggerGargoyleCinematic
GargoyleInitialCamera
GargoyleEnvironment
GargoyleActorSetup
GargoyleNarrative
GargoyleFakeRunnerVisibilty
GargoyleCinematicEscape
SylvanusCinematic
TriggerSylvanasCinematic
SylvanusStart
SylvanasEnvironment
SylvanasInitialCamera
SylvanasActorSetup
SylvanasFacesArthas
SylvanasFalls
SylvanasEnd
MarkRunnerQuestCompleted
SylvanasCinematicEscape
BansheesAvailable
BansheesBuildable
BansheesBuildableMessage
ExitCinematic
TriggerExitCinematic
ExitEnvironment
ExitCinematicMode
ExitInitialCamera
ExitActorSetup
ExitCeremony
ExitLichRevive
ExitDeathSceneA
ExitDeathSceneB
ExitCinematicEnd
ExitCinematicEscape
Victory
AllGuardiansDestroyed
AllGuardiansDestroyedMessage
BothRequirementsMet
BothRequirementsMetMessage
Defeat
Defeat Lose Buildings
Other Triggers
Extra Destroy Silvermoon
Item Drop Bonuses
Custom Variables
Timer Trigger
Setup Insane
Phoenix Patrol A1
Phoenix Patrol A2
Phoenix Patrol B1
Phoenix Patrol B2
Phoenix Patrol C1
Phoenix Patrol C2
Phoenix Add
Gametext
Init Gametext
Skip Cinematic
Leaves Game
Endgame Text
Startgame Text
Startgame Text 2
Startgame Text 3
Startgame New
Startgame Load
Systems
Research Init
Research Begins
Research Cancelled
Research Complete
Requirement Init
Requirement Update
Computer Upkeeps
Player Limits
ResourceDrop Order
ResourceDrop Destroy
ResourceDrop Build
ResourceDrop Starters
ResourceDrop Init
Send Lumber
Send Gold
Exchange Unit
Death Select
Deselect Unit
Select Unit
Spells
Tainted Blow 1
Tainted Blow 2
Blood Pledge 1
Blood Pledge 2
Blood Pledge 3
Call of the Departed 1
Call of the Departed 2
Solar Beam 1
Solar Beam 2
function SaveLoad_InitialSetup takes nothing returns nothing
    local integer i = 0
    local integer j = 0

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

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

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

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

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

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

function SaveLoad_Color takes string s returns string
    local integer i = StringLength(s)
    local string c
    local string r = ""

    loop
        set i = i - 1
        set c = SubString(s,i,i + 1)
        if c == "0" or c == "1" or c == "2" or c == "3" or c == "4" or c == "5" or c == "6" or c == "7" or c == "8" or c == "9" then
            set r = "|cffff9999" + c + "|r" + r
        elseif c == "-" then
            set r = "|cffdddddd-|r" + r
        elseif c == "a" or c == "b" or c == "c" or c == "d" or c == "e" or c == "f" or c == "g" or c == "h" or c == "i" or c == "j" or c == "k" or c == "l" or c == "m" or c == "n" or c == "o" or c == "p" or c == "q" or c == "r" or c == "s" or c == "t" or c == "u" or c == "v" or c == "w" or c == "x" or c == "y" or c == "z" then
            set r = "|cff99ff99" + c + "|r" + r
        elseif c == "A" or c == "B" or c == "C" or c == "D" or c == "E" or c == "F" or c == "G" or c == "H" or c == "I" or c == "J" or c == "K" or c == "L" or c == "M" or c == "N" or c == "O" or c == "P" or c == "Q" or c == "R" or c == "S" or c == "T" or c == "U" or c == "V" or c == "W" or c == "X" or c == "Y" or c == "Z" then
            set r = "|cff9999ff" + c + "|r" + r
        else
            set r = c + r
        endif
        exitwhen i <= 0
    endloop
    return r
endfunction

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

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

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

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

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

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

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

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

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

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

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

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

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

    set m = 0

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

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

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

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

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

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

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

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

function SaveLoad_Decode takes string s returns boolean
    if udg_SaveLoad_CaseSensitive == false then
        set udg_SaveLoad_Alphabet = StringCase(udg_SaveLoad_Alphabet,true)
        set s = StringCase(s,true)
    endif
    if SaveLoad_DecodeValues(s) then
        return true
    endif
    return false
endfunction
Name Type Is Array Initial Value
AIBlueActive boolean No false
AISilvermoonActive boolean No false
Arthas unit No
ArthasAtSunwell boolean No false
ArthasInitialPosition location No
BonusesFound integer No
BonusesTotal integer No
CampaignScore integer No
Cinematic boolean No true
Code string No
DepartedDummy unit No
EffectDarkSummoning effect No
EffectLichRes effect No
EnergyBridge timer No
EnergyInteger integer No
EnoughPlayers boolean No
ExchangeFail1 boolean No
ExchangeFail2 boolean No
ExchangeFail3 boolean No
ExchangeSelection1 group No
ExchangeSelection2 group No
ExchangeSuccess boolean No
Exchanging1 boolean No
Exchanging2 boolean No
ExitCinematicEscape boolean No
ExitCinematicRunning boolean No
ExitDeathSceneAElf unit No
ExitDeathSceneAFarm01 unit No
ExitDeathSceneAFarm02 unit No
ExitDeathSceneBElf01 unit No
ExitDeathSceneBElf02 unit No
ExitDeathSceneBElf03 unit No
ExitDeathSceneBFarm01 unit No
ExitDeathSceneBFarm04 unit No
ExitKelthuzadGhost unit No
ExitKelthuzadLich unit No
Extra integer No
ExtraTotal integer No
FadeIn real No 100.00
FadeOut real No 0.00
Falric unit No
FalricInitialPosition location No
FinalInventory string Yes
FinalRank string No
GameOver boolean No false
GameSelection boolean No true
GargoyleCinematicEscape boolean No false
GargoyleCinematicRunning boolean No false
GargoyleGroup group No
GoldMineBoolean boolean Yes
GuardianGroup group No
GuardiansDead boolean No false
Hero1 unit No
Hero2 unit No
INSANEMODE boolean No
IntroCinematicEscape boolean No
IntroCinematicRunning boolean No
LeaderboardRunner leaderboard No
MassTeleport effect Yes
MissionNumber integer No
NewVote1 boolean No
NewVote2 boolean No
PlayerArthas player No
PlayerSilvermoon player No
PlayerSilvermoonBrown player No
PlayerSylvanus player No
PlayerTichondrius player No
PointArthasRevivePosition location No
PointFalricRevivePosition location No
QuestReqNoAttackSilvermoon questitem No
QuestReqRunners questitem No
QuestReqSilvanus questitem No
QuestReqSunwellArthas questitem No
QuestReqSunwellGuardians questitem No
QuestRunners quest No
QuestSilvanus quest No
QuestSunwell quest No
RandomRegion real No
RankInteger integer No
Requirement_Region rect No
RequirementTech boolean Yes
RequirementUnitP1 unit Yes
RequirementUnitP2 unit Yes
RequirementUnitType unitcode Yes
ResearchEnabledT2 boolean Yes
ResearchEnabledT3 boolean Yes
ResearchStringT1 string Yes
ResearchStringT2 string Yes
ResearchStringT3 string Yes
ResearchType techcode Yes
ResourceDropBuildings group No
ResourceDropHashtable hashtable No
Runner unit No
RunnerActive boolean No true
RunnerMovementSpeedHandicap real No
RunnerRandomLine real No
RunnerSpawnBuilding unit No UnitNull
RunnerTimerLength real No 150.00
RunnerVariableTarget rect No
Save integer Yes
SaveCount integer No
SaveLoad_Abilities abilcode Yes
SaveLoad_Abilities_LastIndex integer No
SaveLoad_Alphabet string No
SaveLoad_CaseSensitive boolean No
SaveLoad_Compress integer Yes
SaveLoad_Heroes unitcode Yes
SaveLoad_Heroes_LastIndex integer No
SaveLoad_Initialized boolean No
SaveLoad_Items itemcode Yes
SaveLoad_Items_LastIndex integer No
SaveLoad_TotalGrades integer Yes
SaveLoad_TotalTime integer No
SaveLoad_Uncompress integer Yes
SaveLoad_UsePlayername boolean No
ScoreBonuses integer No
ScoreExtra integer No
ScoreLimit integer Yes
ScoreMax integer No
ScoreSubquests integer No
ScoreTime integer No
SelectionGroup1 group No
SelectionGroup2 group No
SilvermoonArchMage unit No
SkipVote1 boolean No
SkipVote2 boolean No
SolarBeam unit No
SolarBeamDummy unit No
SubquestsComplete integer No
SubquestsTotal integer No
SumRank integer No
Sylvanas unit No
SylvanasAttackGroup group No
SylvanasBanshee unit No
SylvanasBansheeCreated boolean No false
SylvanasCinematicEscape boolean No
SylvanasCinematicRunning boolean No
SylvanasIntro unit No
TempBoolean boolean No
TempInteger integer No
TempItem item No
TempItemType itemcode No
TempPGroup force No
TempPGroup2 force No
TempPlayer player No
temppoint location No
TempPoint location No
temppoint2 location No
TempUGroup group No
tempugroup group No
TempUnit unit No
TempUnitType unitcode No
Tichondrius unit No
TimeHours integer No
TimeMax real No
TimeMin real No
TimeMins integer No
TimeRange real No
TimerBansheeHint timer No
TimerFirstMessenger timer No
TimerReinforcementWarning timer No
TimerRunner timer No
TimerRunnerFailsafe timer No
TimerStartSylvanusAI timer No
TimerStoneFormHint timer No
TimerSylvanasAttack timer No
TimerWindowRunner timerdialog No
TimeSeconds integer No
TimeSecondsTotal integer No
TimeTakenString string No
UnitAltar unit No
UnitExitDeathSceneGhoul unit No
UnitGroup group No
UnitGroupSelection1 group No
UnitGroupSelection2 group No
UnitVillager01 unit No
UnitVillager02 unit No
UnitVillager03 unit No
UnitVillager04 unit No
UnitVillager05 unit No
Validate boolean No
WeatherSunbeams weathereffect No
x real No
y real No
PreInit
  Events
    Map initialization
  Conditions
  Actions
    Set VariableSet Arthas = Death Knight 0158 <gen>
    Set VariableSet Falric = Death Knight 0161 <gen>
    Set VariableSet Hero1 = Arthas
    Set VariableSet Hero2 = Falric
    Trigger - Run Setup_Scorescreen <gen> (ignoring conditions)
StartInitializationSequence
  Events
  Conditions
  Actions
    Unit - Change ownership of Death Knight 0158 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Death Knight 0161 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Spirit Tower 0045 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Spirit Tower 0127 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Crypt 0149 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Halls of the Dead 0042 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Haunted Gold Mine 0044 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Altar of Darkness 0119 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Spirit Tower 0046 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Ziggurat 0154 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Graveyard 0043 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Crypt 0047 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Halls of the Dead 0122 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Altar of Darkness 0048 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Haunted Gold Mine 0132 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Crypt Fiend 0053 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Necromancer 0204 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Ghoul 0052 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Acolyte 0121 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Acolyte 0120 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Acolyte 0065 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Crypt Fiend 0006 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Necromancer 0054 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Ghoul 0050 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Acolyte 0156 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Acolyte 0152 <gen> to Player 9 (Gray) and Change color
    Unit - Change ownership of Acolyte 0157 <gen> to Player 9 (Gray) and Change color
    Trigger - Run Initialize_Variables <gen> (ignoring conditions)
    Trigger - Run Initial_Resources <gen> (ignoring conditions)
    Trigger - Run Initial_Alliances <gen> (ignoring conditions)
    Trigger - Run Initial_Weather <gen> (ignoring conditions)
    Trigger - Run Initial_Heroes <gen> (ignoring conditions)
    Trigger - Run Initial_Quests <gen> (ignoring conditions)
    Trigger - Run Initial_Music <gen> (ignoring conditions)
    Trigger - Run TriggerIntroCinematic <gen> (ignoring conditions)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to False
      Then - Actions
        Unit Group - Pick every unit in (Units owned by Player 7 (Green).) and do (Actions)
          Loop - Actions
            Unit - Remove (Picked unit) from the game
        Unit - Remove |cffff9900Hallowed Phoenix Guardian|r 0186 <gen> from the game
      Else - Actions
Initialize Variables
  Events
  Conditions
  Actions
    Set VariableSet PlayerTichondrius = Player 1 (Red)
    Set VariableSet PlayerSylvanus = Player 2 (Blue)
    Set VariableSet PlayerSilvermoon = Player 3 (Teal)
    Set VariableSet PlayerArthas = Player 4 (Purple)
    Set VariableSet PlayerSilvermoonBrown = Player 12 (Brown)
    Player - Change color of Player 10 (Light Blue) to Blue, Changing color of existing units
    Player - Change color of Player 7 (Green) to Teal, Changing color of existing units
    Player - Change color of Player 12 (Brown) to Teal, Changing color of existing units
    Set VariableSet Sylvanas = Ranger 0128 <gen>
    Set VariableSet SilvermoonArchMage = Archmage 0203 <gen>
    Set VariableSet SylvanasIntro = Ranger 0167 <gen>
    Unit Group - Pick every unit in (Units in SylvanasIntroGroup <gen> owned by Player 10 (Light Blue)) and do (Add (Picked unit) to SylvanasAttackGroup)
    Unit Group - Add Granite Golem 0134 <gen> to GuardianGroup
    Unit Group - Add Granite Golem 0049 <gen> to GuardianGroup
    Unit Group - Add Granite Golem 0135 <gen> to GuardianGroup
    Unit Group - Add Granite Golem 0136 <gen> to GuardianGroup
    Player - Change color of Player 6 (Orange) to Yellow, Changing color of existing units
    Unit - Change color of Circle of Power 0202 <gen> to (Color of Player 4 (Purple))
    Set VariableSet RunnerSpawnBuilding = Castle 0004 <gen>
    Set VariableSet RunnerVariableTarget = RunnerTargetWest <gen>
    Set VariableSet RunnerTimerLength = 180.00
    Set VariableSet RunnerMovementSpeedHandicap = 0.00
    -------- VILLAGERS --------
    Set VariableSet UnitVillager01 = High Elf 0055 <gen>
    Set VariableSet UnitVillager02 = High Elf 0051 <gen>
    Set VariableSet UnitVillager03 = High Elf 0039 <gen>
    Set VariableSet UnitVillager04 = High Elf 0035 <gen>
    Set VariableSet UnitVillager05 = High Elf 0040 <gen>
Initial Resources
  Events
  Conditions
  Actions
    Player - Set PlayerSylvanus.Current gold to 1000
    Player - Set PlayerSylvanus.Current lumber to 1000
    Player - Set PlayerSilvermoon.Current gold to 1000
    Player - Set PlayerSilvermoon.Current lumber to 1000
Initial Weather
  Events
  Conditions
  Actions
    Environment - Create at WeatherSunlight <gen> the weather effect Rays Of Light
    Set VariableSet WeatherSunbeams = (Last created weather effect)
    Environment - Turn WeatherSunbeams On
Initial Alliances
  Events
  Conditions
  Actions
    Player - For Player 2 (Blue), turn Alliance (non-aggression) On toward Neutral Hostile
    Player - For Player 3 (Teal), turn Alliance (non-aggression) On toward Neutral Hostile
    Player - For Player 5 (Yellow), turn Alliance (non-aggression) On toward Neutral Hostile
    Player - For Player 12 (Brown), turn Alliance (non-aggression) On toward Neutral Hostile
    Player - For Neutral Hostile, turn Alliance (non-aggression) On toward Player 2 (Blue)
    Player - For Neutral Hostile, turn Alliance (non-aggression) On toward Player 3 (Teal)
    Player - For Neutral Hostile, turn Alliance (non-aggression) On toward Player 5 (Yellow)
    Player - For Neutral Hostile, turn Alliance (non-aggression) On toward Player 12 (Brown)
    Player - For Player 4 (Purple), turn Shared vision On toward Player 9 (Gray)
    Player - For Player 9 (Gray), turn Shared vision On toward Player 4 (Purple)
Initial Quests
  Events
  Conditions
  Actions
    Quest - Create a Required quest titled The Sunwell with the description The time for Kel'Thuzad's rebirth is at hand! You must place the Urn containing the Necromancer's remains within the Sunwell's sacred waters. Only then will Kel'Thuzad live again, to serve the Lich King. , using icon path ReplaceableTextures\CommandButtons\BTNManaRecharge.tga
    Set VariableSet QuestSunwell = (Last created quest)
    Quest - Create a quest requirement for QuestSunwell with the description Defeat the Sunwell's Guardians
    Set VariableSet QuestReqSunwellGuardians = (Last created quest requirement)
    Quest - Create a Optional, undiscovered quest titled Sylvanas Windrunner with the description Sylvanas Windrunner, the Elves' Ranger-General, has harried your efforts long enough. The time has come to deal with the Elf-woman as she deserves. Hunt her down and put an end to her defiance!, using icon path ReplaceableTextures\CommandButtons\BTNSylvanusWindrunner.tga
    Set VariableSet QuestSilvanus = (Last created quest)
    Quest - Create a quest requirement for QuestSilvanus with the description Destroy Sylvanas' Base
    Set VariableSet QuestReqSilvanus = (Last created quest requirement)
    Quest - Create a Optional, undiscovered quest titled Silvermoon Runners with the description Sylvanas intends to warn Silvermoon of your approach. If any of her runners reach the city, the Elves will be alerted to your presence and attack. You must use your Gargoyles to intercept her runners before they reach the capital. , using icon path ReplaceableTextures\CommandButtons\BTNCallToArms.tga
    Set VariableSet QuestRunners = (Last created quest)
    Quest - Create a quest requirement for QuestRunners with the description Eliminate every runner Sylvanas sends
    Set VariableSet QuestReqRunners = (Last created quest requirement)
    Quest - Create a quest requirement for QuestRunners with the description Do not alert Silvermoon to your presence
    Set VariableSet QuestReqNoAttackSilvermoon = (Last created quest requirement)
Initial Music
  Events
  Conditions
  Actions
    Sound - Clear the music list
    Wait 0.01 seconds
    Sound - Play Dark Agents.
    Sound - Set the music list to Music, starting with song 1
Setup Scorescreen
  Events
  Conditions
  Actions
    Player - Hide PlayerTichondrius in the post-game score screen
    Player - Hide PlayerSilvermoonBrown in the post-game score screen
    Player - Hide Player 5 (Yellow) in the post-game score screen
    Player - Hide Player 6 (Orange) in the post-game score screen
    Player - Hide Player 7 (Green) in the post-game score screen
    Player - Hide Player 10 (Light Blue) in the post-game score screen
    Player - Hide Player 11 (Dark Green) in the post-game score screen
BlueGold
  Events
    Player - Player 2 (Blue)'s Current gold becomes Less than 1000
  Conditions
  Actions
    Player - Add 1000 to Player 2 (Blue).Current gold
BlueLumber
  Events
    Player - Player 2 (Blue)'s Current lumber becomes Less than 1000
  Conditions
  Actions
    Player - Add 1000 to Player 2 (Blue).Current lumber
TealGold
  Events
    Player - Player 3 (Teal)'s Current gold becomes Less than 1000
  Conditions
  Actions
    Player - Add 1000 to Player 3 (Teal).Current gold
TealLumber
  Events
    Player - Player 3 (Teal)'s Current lumber becomes Less than 1000
  Conditions
  Actions
    Player - Add 1000 to Player 3 (Teal).Current lumber
BrownGold
  Events
    Player - Player 12 (Brown)'s Current gold becomes Less than 1000
  Conditions
  Actions
    Player - Add 1000 to Player 12 (Brown).Current gold
BrownLumber
  Events
    Player - Player 12 (Brown)'s Current lumber becomes Less than 1000
  Conditions
  Actions
    Player - Add 1000 to Player 12 (Brown).Current lumber
Initial Heroes
  Events
  Conditions
  Actions
    Hero - Set Sylvanas Hero-level to 7, Hide level-up graphics
    Hero - Learn skill for Sylvanas: Special Sylvanas Windrunner - Cold Arrows
    Hero - Learn skill for Sylvanas: Special Sylvanas Windrunner - Cold Arrows
    Hero - Learn skill for Sylvanas: Special Sylvanas Windrunner - Cold Arrows
    Hero - Learn skill for Sylvanas: Night Elf Priestess Of The Moon - Trueshot Aura
    Hero - Learn skill for Sylvanas: Night Elf Priestess Of The Moon - Trueshot Aura
    Hero - Learn skill for Sylvanas: Night Elf Priestess Of The Moon - Trueshot Aura
    Hero - Set SilvermoonArchMage Hero-level to 6, Hide level-up graphics
    Hero - Learn skill for SilvermoonArchMage: Human Archmage - Blizzard
    Hero - Learn skill for SilvermoonArchMage: Human Archmage - Blizzard
    Hero - Learn skill for SilvermoonArchMage: Human Archmage - Summon Water Elemental
    Hero - Learn skill for SilvermoonArchMage: Human Archmage - Summon Water Elemental
    Hero - Learn skill for SilvermoonArchMage: Human Archmage - Brilliance Aura
    Hero - Learn skill for SilvermoonArchMage: Human Archmage - Brilliance Aura
    Hero - Set SylvanasIntro Hero-level to 7, Hide level-up graphics
    Hero - Learn skill for SylvanasIntro: Special Sylvanas Windrunner - Cold Arrows
    Hero - Learn skill for SylvanasIntro: Special Sylvanas Windrunner - Cold Arrows
    Hero - Learn skill for SylvanasIntro: Special Sylvanas Windrunner - Cold Arrows
    Hero - Learn skill for SylvanasIntro: Night Elf Priestess Of The Moon - Trueshot Aura
    Hero - Learn skill for SylvanasIntro: Night Elf Priestess Of The Moon - Trueshot Aura
    Hero - Learn skill for SylvanasIntro: Night Elf Priestess Of The Moon - Trueshot Aura
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        Hero - Set Sylvanas Hero-level to 12, Hide level-up graphics
        Hero - Learn skill for Sylvanas: Feral Spirit (New)
        Hero - Learn skill for Sylvanas: Feral Spirit (New)
        Hero - Learn skill for Sylvanas: Feral Spirit (New)
        Hero - Learn skill for Sylvanas: Solar Beam
        Hero - Set SilvermoonArchMage Hero-level to 10, Hide level-up graphics
        Hero - Learn skill for SilvermoonArchMage: Human Archmage - Blizzard
        Hero - Learn skill for SilvermoonArchMage: Human Archmage - Summon Water Elemental
        Hero - Learn skill for SilvermoonArchMage: Human Archmage - Brilliance Aura
        Hero - Set SylvanasIntro Hero-level to 12, Hide level-up graphics
        Hero - Learn skill for SylvanasIntro: Feral Spirit (New)
        Hero - Learn skill for SylvanasIntro: Feral Spirit (New)
        Hero - Learn skill for SylvanasIntro: Feral Spirit (New)
        Hero - Learn skill for Sylvanas: Solar Beam
        Unit - Set mana of SylvanasIntro to 100.00%
      Else - Actions
    Hero - Disable experience gain for Sylvanas.
    Hero - Disable experience gain for SilvermoonArchMage.
    Hero - Disable experience gain for SylvanasIntro.
Init Hero XP
  Events
    Map initialization
  Conditions
  Actions
    Hero - Make Player 4 (Purple) Heroes gain 50.00% experience from future kills
    Hero - Make Player 9 (Gray) Heroes gain 50.00% experience from future kills
Limit Arthas XP
  Events
    Unit - A unit owned by Player 4 (Purple).Gains a level
  Conditions
    (Hero level of Arthas) Greater than or equal to 6
  Actions
    Hero - Disable experience gain for Arthas.
    Wait 0.10 seconds
    Hero - Set Arthas experience to 2000, Hide level-up graphics
Limit Falric XP
  Events
    Unit - A unit owned by Player 9 (Gray).Gains a level
  Conditions
    (Hero level of Falric) Greater than or equal to 6
  Actions
    Hero - Disable experience gain for Falric.
    Wait 0.10 seconds
    Hero - Set Falric experience to 2000, Hide level-up graphics
Villager01Patrol
  Events
    Time - Every 6.00 seconds of game time
  Conditions
  Actions
    Unit - Order UnitVillager01 to Move To.(Random point in Villager01Patrol <gen>)
Villager01Panic
  Events
    Unit - A unit comes within 512.00 of High Elf 0055 <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Triggering unit)) Equal to Player 4 (Purple)
        (Owner of (Triggering unit)) Equal to Player 9 (Gray)
  Actions
    Unit - Turn collision for UnitVillager01 Off.
    Unit - Order UnitVillager01 to Move To.(Center of Villager01Flee <gen>)
Villager01Remove
  Events
    Unit - A unit enters Villager01Flee <gen>
  Conditions
    (Unit-type of (Entering unit)) Equal to High Elf (Female)
  Actions
    Unit - Remove UnitVillager01 from the game
Villager02Patrol
  Events
    Time - Every 7.00 seconds of game time
  Conditions
  Actions
    Unit - Order UnitVillager02 to Move To.(Random point in Villager02Patrol <gen>)
Villager02Panic
  Events
    Unit - A unit comes within 512.00 of High Elf 0051 <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Triggering unit)) Equal to Player 4 (Purple)
        (Owner of (Triggering unit)) Equal to Player 9 (Gray)
  Actions
    Unit - Turn collision for UnitVillager02 Off.
    Unit - Order UnitVillager02 to Move To.(Center of Villager02Flee <gen>)
Villager02Remove
  Events
    Unit - A unit enters Villager02Flee <gen>
  Conditions
    (Unit-type of (Entering unit)) Equal to High Elf (Female)
  Actions
    Unit - Remove UnitVillager02 from the game
Villager03Patrol
  Events
    Time - Every 8.00 seconds of game time
  Conditions
  Actions
    Unit - Order UnitVillager03 to Move To.(Random point in Villager03Patrol <gen>)
Villager03Panic
  Events
    Unit - A unit comes within 512.00 of High Elf 0039 <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Triggering unit)) Equal to Player 4 (Purple)
        (Owner of (Triggering unit)) Equal to Player 9 (Gray)
  Actions
    Unit - Turn collision for UnitVillager03 Off.
    Unit - Order UnitVillager03 to Move To.(Center of Villager03Flee <gen>)
Villager03Remove
  Events
    Unit - A unit enters Villager03Flee <gen>
  Conditions
    (Unit-type of (Entering unit)) Equal to High Elf (Female)
  Actions
    Unit - Remove UnitVillager03 from the game
Villager04Patrol
  Events
    Time - Every 5.00 seconds of game time
  Conditions
  Actions
    Unit - Order UnitVillager04 to Move To.(Random point in Villager04Patrol <gen>)
Villager04Panic
  Events
    Unit - A unit comes within 512.00 of High Elf 0035 <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Triggering unit)) Equal to Player 4 (Purple)
        (Owner of (Triggering unit)) Equal to Player 9 (Gray)
  Actions
    Unit - Turn collision for UnitVillager04 Off.
    Unit - Order UnitVillager04 to Move To.(Center of Villager04Flee <gen>)
Villager04Remove
  Events
    Unit - A unit enters Villager04Flee <gen>
  Conditions
    (Unit-type of (Entering unit)) Equal to High Elf (Female)
  Actions
    Unit - Remove UnitVillager04 from the game
Villager05Patrol
  Events
    Time - Every 6.00 seconds of game time
  Conditions
  Actions
    Unit - Order UnitVillager05 to Move To.(Random point in Villager05Patrol <gen>)
Villager05Panic
  Events
    Unit - A unit comes within 512.00 of High Elf 0040 <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Triggering unit)) Equal to Player 4 (Purple)
        (Owner of (Triggering unit)) Equal to Player 9 (Gray)
  Actions
    Unit - Turn collision for UnitVillager05 Off.
    Unit - Order UnitVillager05 to Move To.(Center of Villager05Flee <gen>)
Villager05Remove
  Events
    Unit - A unit enters Villager05Flee <gen>
  Conditions
    (Unit-type of (Entering unit)) Equal to High Elf (Female)
  Actions
    Unit - Remove UnitVillager05 from the game
Gargoyles Available
  Events
    Time - TimerStoneFormHint expires
  Conditions
  Actions
    Trigger - Add Gargoyles_Available_Message <gen> to the trigger queue (Checking conditions)
Gargoyles Available Message
  Events
  Conditions
    GameOver Equal to False
  Actions
    Quest - Display to (All players) the New Unit Available message: |cff87ceebNEW UNIT AVAILABLE|rGargoyle - You may now build Gargoyles from the Crypt. These fast flying creatures can use the Stone Form ability to heal their own wounds.
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
TriggerIntroCinematic
  Events
  Conditions
  Actions
    Set VariableSet IntroCinematicRunning = True
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop01 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop02 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop03 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop04 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop05 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop06 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop07 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop08 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop09 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop10 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop11 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop12 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop13 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop14 <gen>
    Trigger - Turn on IntroCinematicEscape <gen>
    Trigger - Turn on Skip_Cinematic <gen>
    Trigger - Run IntroEnvironment <gen> (ignoring conditions)
    Trigger - Run IntroCinematicMode <gen> (ignoring conditions)
    Trigger - Run IntroActorSetup <gen> (ignoring conditions)
    Trigger - Run IntroInitialCamera <gen> (ignoring conditions)
IntroEnvironment
  Events
  Conditions
  Actions
    Environment - Set sky to Lordaeron Summer Sky
    Animation - Play the stand (animationname) animation for all doodads of type YOsw (doodadcode) within WeatherSunlight <gen>.
    Unit - Hide Circle of Power 0202 <gen>
IntroCinematicMode
  Events
  Conditions
  Actions
    Cinematic - Turn cinematic mode On for (All players)
IntroActorSetup
  Events
  Conditions
  Actions
    Unit - Order Acolyte 0121 <gen> to Harvest.Haunted Gold Mine 0044 <gen>
    Unit - Order Acolyte 0065 <gen> to Harvest.Haunted Gold Mine 0044 <gen>
    Unit - Order Acolyte 0120 <gen> to Harvest.Haunted Gold Mine 0044 <gen>
    Unit - Order Acolyte 0156 <gen> to Harvest.Haunted Gold Mine 0132 <gen>
    Unit - Order Acolyte 0152 <gen> to Harvest.Haunted Gold Mine 0132 <gen>
    Unit - Order Acolyte 0157 <gen> to Harvest.Haunted Gold Mine 0132 <gen>
    Unit - Order Ghoul 0050 <gen> to Harvest Nearby Lumber.
    Unit - Order Ghoul 0052 <gen> to Harvest Nearby Lumber.
IntroInitialCamera
  Events
  Conditions
  Actions
    Cinematic - Fade out over 0.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Camera - .Apply. gg_cam_IntroInitialCam for PlayerArthas over 0 seconds
    Camera - .Apply. gg_cam_IntroInitialCam for Player 9 (Gray) over 0 seconds
    Wait 1.00 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Fade in over 2 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run IntroTichoTalks <gen> (ignoring conditions)
IntroTichoTalks
  Events
  Conditions
  Actions
    Special Effect - Create a special effect at (Center of IntroSpawnTicho_Talk <gen>) using Abilities\Spells\Undead\DarkSummoning\DarkSummonTarget.mdl
    Sound - Set position of DarkSummoningTarget1 <gen> to (Center of IntroSpawnTicho_Talk <gen>) with Z offset 0
    Sound - Play DarkSummoningTarget1 <gen>
    Set VariableSet EffectDarkSummoning = (Last created special effect)
    Wait 0.20 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Create 1 Dreadlord for PlayerTichondrius at (Center of IntroSpawnTicho <gen>) facing (Position of Arthas)
    Set VariableSet Tichondrius = (Last created unit)
    Unit - Hide Tichondrius
    Wait 1.00 seconds
    Unit - Move Tichondrius instantly to (Center of IntroSpawnTicho_Talk <gen>), facing (Center of InitialArthasLocation <gen>)
    Trigger - Run Solidify_A <gen> (checking conditions)
    Hero - Create Orb of Fire and give it to Tichondrius
    Wait 2.00 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Special Effect - Destroy EffectDarkSummoning
    Cinematic - Send transmission to (All players) from Tichondrius named Tichondrius: Play U05ATichondrius01 <gen> and display You've done well... so far. But the true test still lies before you.. Modify duration: Add 0 seconds and Don't wait
    Wait (0.20 x (Length of U05ATichondrius01 <gen>)) seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Arthas face Tichondrius over 0.30 seconds
    Unit - Make Falric face Tichondrius over 0.30 seconds
    Wait (0.80 x (Length of U05ATichondrius01 <gen>)) seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 0.50 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play U05AArthas02 <gen> and display I was wondering when you'd show up.. Modify duration: Add 0 seconds and Wait
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - .Apply. gg_cam_IntroTichoCloseup for PlayerArthas over 0 seconds
    Camera - .Apply. gg_cam_IntroTichoCloseup for Player 9 (Gray) over 0 seconds
    Cinematic - Send transmission to (All players) from Tichondrius named Tichondrius: Play U05ATichondrius03 <gen> and display I am here to ensure that you do your job, little human. Not do it for you.. Modify duration: Add 0 seconds and Wait
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - .Apply. gg_cam_IntroArthasCloseup for PlayerArthas over 0 seconds
    Camera - .Apply. gg_cam_IntroArthasCloseup for Player 9 (Gray) over 0 seconds
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play U05AArthas04 <gen> and display I will reach the Sunwell on my own, dreadlord.. Modify duration: Add 0 seconds and Wait
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - .Apply. gg_cam_IntroTichoCloseup for PlayerArthas over 0 seconds
    Camera - .Apply. gg_cam_IntroTichoCloseup for Player 9 (Gray) over 0 seconds
    Cinematic - Send transmission to (All players) from Tichondrius named Tichondrius: Play U05ATichondrius05 <gen> and display Be warned. It is a pool of mystical energy from which the elves draw their immortal powers. They will not give it up easily.. Modify duration: Add 0 seconds and Don't wait
    Wait (0.15 x (Length of U05ATichondrius05 <gen>)) seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - .Apply. gg_cam_IntroSunWell for PlayerArthas over 0 seconds
    Camera - .Apply. gg_cam_IntroSunWell for Player 9 (Gray) over 0 seconds
    Wait 0.01 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Set position of CityScapeMagicRunesLoop1 <gen> to (Center of FountainSound <gen>) with Z offset 0
    Sound - Play CityScapeMagicRunesLoop1 <gen>
    Sound - Set position of CityscapeFountainLoop1 <gen> to (Center of FountainSound <gen>) with Z offset 0
    Sound - Play CityscapeFountainLoop1 <gen>
    Sound - Set position of InvisibilityTarget <gen> to (Center of FountainSound <gen>) with Z offset 0
    Sound - Set volume of InvisibilityTarget <gen> to 60.00%
    Sound - Play InvisibilityTarget <gen>
    Camera - .Apply. gg_cam_IntroSunWellCloseup for PlayerArthas over (0.80 x (Length of U05ATichondrius05 <gen>)) seconds
    Camera - .Apply. gg_cam_IntroSunWellCloseup for Player 9 (Gray) over (0.80 x (Length of U05ATichondrius05 <gen>)) seconds
    Wait (0.80 x (Length of U05ATichondrius05 <gen>)) seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Stop CityScapeMagicRunesLoop1 <gen> After fading
    Sound - Stop CityscapeFountainLoop1 <gen> After fading
    Camera - .Apply. gg_cam_IntroTichoCloseup for PlayerArthas over 0 seconds
    Camera - .Apply. gg_cam_IntroTichoCloseup for Player 9 (Gray) over 0 seconds
    Special Effect - Create a special effect at (Center of IntroSpawnTicho_Talk <gen>) using Abilities\Spells\Undead\DarkSummoning\DarkSummonTarget.mdl
    Sound - Set position of DarkSummoningTarget1 <gen> to (Center of IntroSpawnTicho_Talk <gen>) with Z offset 0
    Sound - Play DarkSummoningTarget1 <gen>
    Set VariableSet EffectDarkSummoning = (Last created special effect)
    Trigger - Run Dissolve_A <gen> (checking conditions)
    Wait 3.50 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Special Effect - Destroy EffectDarkSummoning
    Wait 0.50 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - .Apply. gg_cam_IntroArthasCloseup for PlayerArthas over 0 seconds
    Camera - .Apply. gg_cam_IntroArthasCloseup for Player 9 (Gray) over 0 seconds
    Wait for U05ATichondrius05 <gen> to be 0 seconds from finished playing
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play U05AArthas06 <gen> and display Do you think that he suspects that you've been aiding me, necromancer?. Modify duration: Add 0 seconds and Wait
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from a PlayerArthas.Kel'Thuzad (Ghost) named Kel'Thuzad at (Player 4 (Purple) start location): Play U05AKelThuzad07 <gen> and display I'm sure he suspects quite a bit. It is his nature to assume the worst. Now steel yourself. The hour of my rebirth draws near.. Modify duration: Add 0 seconds and Wait
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run IntroCinematicEnd <gen> (ignoring conditions)
IntroCinematicEnd
  Events
  Conditions
  Actions
    Set VariableSet IntroCinematicRunning = False
    Trigger - Turn off IntroCinematicEscape <gen>
    Trigger - Turn off Skip_Cinematic <gen>
    Set VariableSet SkipVote1 = False
    Set VariableSet SkipVote2 = False
    Cinematic - Turn cinematic mode Off for (All players)
    Set VariableSet Cinematic = False
    Selection - Select Arthas for Player 4 (Purple)
    Selection - Select Falric for Player 9 (Gray)
    Camera - Reset camera for PlayerArthas to standard game-view over 0.00 seconds
    Camera - Reset camera for Player 9 (Gray) to standard game-view over 0.00 seconds
    Environment - Set sky to None
    Neutral Building - Set Haunted Gold Mine 0044 <gen> to 10000 gold
    Neutral Building - Set Haunted Gold Mine 0132 <gen> to 10000 gold
    Player - Set PlayerArthas.Current gold to 375
    Player - Set PlayerArthas.Current lumber to 125
    Player - Set Player 9 (Gray).Current gold to 375
    Player - Set Player 9 (Gray).Current lumber to 125
    Countdown Timer - Start TimerSylvanasAttack as a One-shot timer that will expire in 25.00 seconds
    Quest - Display to (All players) the Quest Discovered message: |cffffcc00MAIN QUEST|rThe Sunwell - Defeat the Sunwell's Guardians
    Unit - Unhide Circle of Power 0202 <gen>
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        AI - Start campaign AI script for Player 2 (Blue): war3mapImported\U5 Insane Blue.ai (aiscript)
        Trigger - Run Phoenix_Patrol_A1 <gen> (ignoring conditions)
        Trigger - Run Phoenix_Patrol_B1 <gen> (ignoring conditions)
        Trigger - Run Phoenix_Patrol_C1 <gen> (ignoring conditions)
      Else - Actions
        AI - Start campaign AI script for Player 2 (Blue): u05_blue.ai (aiscript)
    AI - Start campaign AI script for Player 3 (Teal): u05_teal.ai (aiscript)
    AI - Start campaign AI script for Player 12 (Brown): u05_brown.ai (aiscript)
    Visibility - Create an initially Enabled visibility modifier for PlayerArthas emitting Visibility from (Center of VisibilitySunwell <gen>) to a radius of 640.00.
    Visibility - Destroy (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 9 (Gray) emitting Visibility from (Center of VisibilitySunwell <gen>) to a radius of 640.00.
    Visibility - Destroy (Last created visibility modifier)
    Cinematic - Ping minimap for (All players) at (Center of VisibilitySunwell <gen>) for 1 seconds
IntroCinematicEscape
  Events
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet SkipVote1 = False
    Set VariableSet SkipVote2 = False
    Set VariableSet IntroCinematicEscape = True
    Set VariableSet IntroCinematicRunning = False
    Sound - Stop (Last played sound) After fading
    Cinematic - Fade out over 0.40 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.60 seconds
    Camera - .Apply. gg_cam_IntroArthasCloseup for Player 4 (Purple) over 0 seconds
    Camera - .Apply. gg_cam_IntroArthasCloseup for Player 9 (Gray) over 0 seconds
    Unit - Hide Tichondrius
    Wait 0.20 seconds
    Unit - Make Arthas face Tichondrius over 0.00 seconds
    Unit - Make Falric face Tichondrius over 0.00 seconds
    Special Effect - Destroy EffectDarkSummoning
    Neutral Building - Set Haunted Gold Mine 0044 <gen> to 10000 gold
    Neutral Building - Set Haunted Gold Mine 0132 <gen> to 10000 gold
    Player - Set PlayerArthas.Current gold to 375
    Player - Set PlayerArthas.Current lumber to 125
    Player - Set Player 9 (Gray).Current gold to 375
    Player - Set Player 9 (Gray).Current lumber to 125
    Cinematic - Fade in over 0.40 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Cinematic - Turn cinematic mode Off for (All players)
    Set VariableSet Cinematic = False
    Selection - Select Arthas for Player 4 (Purple)
    Selection - Select Falric for Player 9 (Gray)
    Camera - Reset camera for PlayerArthas to standard game-view over 0.00 seconds
    Camera - Reset camera for Player 9 (Gray) to standard game-view over 0.00 seconds
    Environment - Set sky to None
    Countdown Timer - Start TimerSylvanasAttack as a One-shot timer that will expire in 25.00 seconds
    Quest - Display to (All players) the Quest Discovered message: |cffffcc00MAIN QUEST|rThe Sunwell - Defeat the Sunwell's Guardians
    Unit - Unhide Circle of Power 0202 <gen>
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        AI - Start campaign AI script for Player 2 (Blue): war3mapImported\U5 Insane Blue.ai (aiscript)
        Trigger - Run Phoenix_Patrol_A1 <gen> (ignoring conditions)
        Trigger - Run Phoenix_Patrol_B1 <gen> (ignoring conditions)
        Trigger - Run Phoenix_Patrol_C1 <gen> (ignoring conditions)
      Else - Actions
        AI - Start campaign AI script for Player 2 (Blue): u05_blue.ai (aiscript)
    AI - Start campaign AI script for Player 3 (Teal): u05_teal.ai (aiscript)
    AI - Start campaign AI script for Player 12 (Brown): u05_brown.ai (aiscript)
    Visibility - Create an initially Enabled visibility modifier for PlayerArthas emitting Visibility from (Center of VisibilitySunwell <gen>) to a radius of 640.00.
    Visibility - Destroy (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 9 (Gray) emitting Visibility from (Center of VisibilitySunwell <gen>) to a radius of 640.00.
    Visibility - Destroy (Last created visibility modifier)
    Cinematic - Ping minimap for (All players) at (Center of VisibilitySunwell <gen>) for 1 seconds
Solidify A
  Events
  Conditions
  Actions
    Wait 0.25 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change Tichondrius's vertex coloring to (10.00%, 40.00%, 10.00%) with 100.00% transparency
    Unit - Unhide Tichondrius
    Wait 0.10 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change Tichondrius's vertex coloring to (25.00%, 50.00%, 25.00%) with 85.00% transparency
    Wait 0.10 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change Tichondrius's vertex coloring to (40.00%, 60.00%, 40.00%) with 70.00% transparency
    Wait 0.15 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change Tichondrius's vertex coloring to (55.00%, 70.00%, 55.00%) with 65.00% transparency
    Wait 0.10 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change Tichondrius's vertex coloring to (70.00%, 70.00%, 70.00%) with 45.00% transparency
    Wait 0.10 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change Tichondrius's vertex coloring to (85.00%, 80.00%, 85.00%) with 30.00% transparency
    Wait 0.15 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change Tichondrius's vertex coloring to (100.00%, 90.00%, 100.00%) with 15.00% transparency
    Wait 0.10 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change Tichondrius's vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
    Wait 0.10 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
Dissolve A
  Events
  Conditions
  Actions
    Wait 0.25 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change Tichondrius's vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
    Wait 0.10 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change Tichondrius's vertex coloring to (100.00%, 90.00%, 100.00%) with 15.00% transparency
    Wait 0.10 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change Tichondrius's vertex coloring to (85.00%, 80.00%, 85.00%) with 30.00% transparency
    Wait 0.15 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change Tichondrius's vertex coloring to (70.00%, 70.00%, 70.00%) with 45.00% transparency
    Wait 0.10 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change Tichondrius's vertex coloring to (55.00%, 70.00%, 55.00%) with 65.00% transparency
    Wait 0.10 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change Tichondrius's vertex coloring to (25.00%, 50.00%, 25.00%) with 85.00% transparency
    Wait 0.15 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change Tichondrius's vertex coloring to (40.00%, 60.00%, 40.00%) with 70.00% transparency
    Wait 0.10 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change Tichondrius's vertex coloring to (10.00%, 40.00%, 10.00%) with 100.00% transparency
    Wait 0.10 seconds
    If (IntroCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Hide Tichondrius
InitialSylvanasPlacement
  Events
    Time - Elapsed game time is 1.00 seconds
  Conditions
  Actions
    Unit - Hide Sylvanas
    Unit - Pause Sylvanas
IntroSylvanasDies
  Events
    Unit - Ranger 0167 <gen> Dies
  Conditions
  Actions
    Unit - Move Sylvanas instantly to (Center of SylvanusIntroRevive <gen>)
    Unit - Unhide Sylvanas
    Unit - Unpause Sylvanas
    Special Effect - Create a special effect attached to the overhead (attachpoint) of Sylvanas using Abilities\Spells\Human\ReviveHuman\ReviveHuman.mdl
    Wait 2 seconds
    Special Effect - Destroy (Last created special effect)
SylvanasTimerElapses
  Events
    Time - TimerSylvanasAttack expires
  Conditions
  Actions
    Unit Group - Order SylvanasAttackGroup to Attack-Move To.(Center of SylvanasAttackTarget <gen>)
    Trigger - Turn off OrderSylvanasFailsafe <gen>
SylvanasAttacks
  Events
    Unit - A unit owned by Player 4 (Purple).Is attacked
    Unit - A unit owned by Player 9 (Gray).Is attacked
  Conditions
    ((Attacking unit) is in (Units owned by Player 10 (Light Blue).).) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add SylvanusAttacksMessage <gen> to the trigger queue (Checking conditions)
SylvanusAttacksMessage
  Events
  Conditions
    GameOver Equal to False
  Actions
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from SylvanasIntro named Sylvanas Windrunner: Play U05ASylvanas08 <gen> and display Did you forget about us, you wretches? Bash'a no falor talah!. Modify duration: Add 0 seconds and Wait
    Cinematic - Send transmission to (All players) from a Player 4 (Purple).Kel'Thuzad (Ghost) named Kel'Thuzad at (Player 4 (Purple) start location): Play U04AKelThuzad08 <gen> and display She is persistent. Reminds me of you, death knight.. Modify duration: Add 0 seconds and Wait
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play U04AArthas09 <gen> and display Shut up, you damned ghost.. Modify duration: Add 0 seconds and Wait
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
OrderSylvanasFailsafe
  Events
    Unit - A unit enters SylvanusIntroFailsafe <gen>
  Conditions
    (Owner of (Entering unit)) Equal to PlayerArthas
  Actions
    Unit Group - Order SylvanasAttackGroup to Attack-Move To.(Center of SylvanasAttackTarget <gen>)
    Trigger - Turn off SylvanasTimerElapses <gen>
CheckForWaveDeath
  Events
    Unit - A unit owned by Player 10 (Light Blue).Dies
  Conditions
    (All units of SylvanasAttackGroup are dead) Equal to True
  Actions
    Countdown Timer - Start TimerReinforcementWarning as a One-shot timer that will expire in 10.00 seconds
    Countdown Timer - Start TimerStartSylvanusAI as a One-shot timer that will expire in 60.00 seconds
    Unit - Kill Sylvanas
    Trigger - Turn off (This trigger)
Reinforcement
  Events
    Time - TimerReinforcementWarning expires
  Conditions
    ExitCinematicRunning Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add ReinforcementMessage <gen> to the trigger queue (Checking conditions)
ReinforcementMessage
  Events
  Conditions
    GameOver Equal to False
  Actions
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from a Player 4 (Purple).Necromancer named Necromancer at (Player 4 (Purple) start location): Play U05ANecromancer11 <gen> and display Lord Arthas, the elf woman will likely attempt to summon reinforcements.. Modify duration: Add 0 seconds and Wait
    If ((Arthas is alive) Equal to True) then do (Send transmission to (All players) from Arthas named Arthas: Play U05AArthas12 <gen> and display Then watch for her runners! None of them must get through!. Modify duration: Add 0 seconds and Wait) else do (Do nothing)
    Sound - Reset all volume channels to 100%
    Quest - Mark QuestSilvanus as Discovered
    Quest - Display to (All players) the Quest Discovered message: |cffffcc00OPTIONAL QUEST|rSylvanas Windrunner - Destroy Sylvanas' Base
    Wait 10.00 seconds
    Quest - Mark QuestRunners as Discovered
    Quest - Display to (All players) the Quest Discovered message: |cffffcc00OPTIONAL QUEST|rSilvermoon Runners - Eliminate every runner Sylvanas sends - Do not alert Silvermoon to your presence
    Countdown Timer - Start TimerFirstMessenger as a One-shot timer that will expire in 25.00 seconds
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
AI BlueAttacked
  Events
    Unit - A unit owned by Player 2 (Blue).Is attacked
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Attacking unit)) Equal to PlayerArthas
        (Owner of (Attacking unit)) Equal to Player 9 (Gray)
    AIBlueActive Equal to False
  Actions
    Trigger - Turn off (This trigger)
    AI - Send Player 2 (Blue) the AI Command (0, 0)
    Set VariableSet AIBlueActive = True
AI TealAttackedSylvanusActive
  Events
    Unit - A unit owned by Player 3 (Teal).Is attacked
  Conditions
    ExitCinematicRunning Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Attacking unit)) Equal to PlayerArthas
        (Owner of (Attacking unit)) Equal to Player 9 (Gray)
    AISilvermoonActive Equal to False
    (QuestSilvanus is completed) Equal to False
    (QuestRunners is discovered) Equal to True
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Leaderboard - Hide LeaderboardRunner
    Countdown Timer - Hide TimerWindowRunner
    Set VariableSet AISilvermoonActive = True
    AI - Send Player 3 (Teal) the AI Command (0, 0)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        AI - Start campaign AI script for Player 12 (Brown): war3mapImported\U5 Insane Brown.ai (aiscript)
      Else - Actions
    Set VariableSet RunnerActive = False
    If ((Runner is alive) Equal to True) then do (Remove Runner from the game) else do (Do nothing)
    Quest - Mark QuestRunners as Failed
    Sound - Stop U05ANecromancer13 <gen> After fading
    Trigger - Add Silvermoon_Quest_Failure_Message <gen> to the trigger queue (Checking conditions)
AI TealAttackedSylvanusDead
  Events
    Unit - A unit owned by Player 3 (Teal).Is attacked
  Conditions
    ExitCinematicRunning Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Attacking unit)) Equal to PlayerArthas
        (Owner of (Attacking unit)) Equal to Player 9 (Gray)
    AISilvermoonActive Equal to False
    (QuestSilvanus is completed) Equal to True
    (QuestRunners is discovered) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Leaderboard - Hide LeaderboardRunner
    Countdown Timer - Hide TimerWindowRunner
    Set VariableSet AISilvermoonActive = True
    If ((Runner is alive) Equal to True) then do (Remove Runner from the game) else do (Do nothing)
    AI - Send Player 3 (Teal) the AI Command (0, 0)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        AI - Start campaign AI script for Player 12 (Brown): war3mapImported\U5 Insane Brown.ai (aiscript)
      Else - Actions
AI BrownAttackedSylvanusActive
  Events
    Unit - A unit owned by Player 12 (Brown).Is attacked
  Conditions
    ExitCinematicRunning Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Attacking unit)) Equal to PlayerArthas
        (Owner of (Attacking unit)) Equal to Player 9 (Gray)
    AISilvermoonActive Equal to False
    (QuestSilvanus is completed) Equal to False
    (QuestRunners is discovered) Equal to True
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Leaderboard - Hide LeaderboardRunner
    Countdown Timer - Hide TimerWindowRunner
    Set VariableSet AISilvermoonActive = True
    AI - Send Player 3 (Teal) the AI Command (0, 0)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        AI - Start campaign AI script for Player 12 (Brown): war3mapImported\U5 Insane Brown.ai (aiscript)
      Else - Actions
    Set VariableSet RunnerActive = False
    If ((Runner is alive) Equal to True) then do (Remove Runner from the game) else do (Do nothing)
    Quest - Mark QuestRunners as Failed
    Sound - Stop U05ANecromancer13 <gen> After fading
    Trigger - Add Silvermoon_Quest_Failure_Message <gen> to the trigger queue (Checking conditions)
AI BrownAttackedSylvanusDead
  Events
    Unit - A unit owned by Player 12 (Brown).Is attacked
  Conditions
    ExitCinematicRunning Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Attacking unit)) Equal to PlayerArthas
        (Owner of (Attacking unit)) Equal to Player 9 (Gray)
    AISilvermoonActive Equal to False
    (QuestSilvanus is completed) Equal to True
    (QuestRunners is discovered) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Leaderboard - Hide LeaderboardRunner
    Countdown Timer - Hide TimerWindowRunner
    Set VariableSet AISilvermoonActive = True
    If ((Runner is alive) Equal to True) then do (Remove Runner from the game) else do (Do nothing)
    AI - Send Player 3 (Teal) the AI Command (0, 0)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        AI - Start campaign AI script for Player 12 (Brown): war3mapImported\U5 Insane Brown.ai (aiscript)
      Else - Actions
AI GreenAttackedSylvanusActive
  Events
    Unit - A unit owned by Player 7 (Green).Is attacked
  Conditions
    ExitCinematicRunning Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Attacking unit)) Equal to PlayerArthas
        (Owner of (Attacking unit)) Equal to Player 9 (Gray)
    AISilvermoonActive Equal to False
    (QuestSilvanus is completed) Equal to False
    (QuestRunners is discovered) Equal to True
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Leaderboard - Hide LeaderboardRunner
    Countdown Timer - Hide TimerWindowRunner
    Set VariableSet AISilvermoonActive = True
    AI - Send Player 3 (Teal) the AI Command (0, 0)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        AI - Start campaign AI script for Player 12 (Brown): war3mapImported\U5 Insane Brown.ai (aiscript)
      Else - Actions
    Set VariableSet RunnerActive = False
    If ((Runner is alive) Equal to True) then do (Remove Runner from the game) else do (Do nothing)
    Quest - Mark QuestRunners as Failed
    Sound - Stop U05ANecromancer13 <gen> After fading
    Trigger - Add Silvermoon_Quest_Failure_Message <gen> to the trigger queue (Checking conditions)
AI GreenAttackedSylvanusDead
  Events
    Unit - A unit owned by Player 7 (Green).Is attacked
  Conditions
    ExitCinematicRunning Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Attacking unit)) Equal to PlayerArthas
        (Owner of (Attacking unit)) Equal to Player 9 (Gray)
    AISilvermoonActive Equal to False
    (QuestSilvanus is completed) Equal to True
    (QuestRunners is discovered) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Leaderboard - Hide LeaderboardRunner
    Countdown Timer - Hide TimerWindowRunner
    Set VariableSet AISilvermoonActive = True
    If ((Runner is alive) Equal to True) then do (Remove Runner from the game) else do (Do nothing)
    AI - Send Player 3 (Teal) the AI Command (0, 0)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        AI - Start campaign AI script for Player 12 (Brown): war3mapImported\U5 Insane Brown.ai (aiscript)
      Else - Actions
Silvermoon Quest Failure Message
  Events
  Conditions
    ExitCinematicRunning Equal to False
    GameOver Equal to False
  Actions
    Quest - Display to (All players) the Quest Failed message: |cffffcc00OPTIONAL QUEST FAILED|rSilvermoon Runners
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
AI RunnerReaches
  Events
  Conditions
    AISilvermoonActive Equal to False
  Actions
    AI - Send Player 3 (Teal) the AI Command (0, 0)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        AI - Start campaign AI script for Player 12 (Brown): war3mapImported\U5 Insane Brown.ai (aiscript)
      Else - Actions
        AI - Send Player 12 (Brown) the AI Command (0, 0)
    Set VariableSet AISilvermoonActive = True
AI SylvanusLaunch
  Events
    Time - TimerStartSylvanusAI expires
  Conditions
    AIBlueActive Equal to False
  Actions
    AI - Send Player 2 (Blue) the AI Command (0, 0)
    Set VariableSet AIBlueActive = True
InitialTimerExpires
  Events
    Time - TimerFirstMessenger expires
  Conditions
    ExitCinematicRunning Equal to False
    (QuestRunners is failed) Equal to False
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add InitialTimerExpiresMessage <gen> to the trigger queue (Checking conditions)
InitialTimerExpiresMessage
  Events
  Conditions
    ExitCinematicRunning Equal to False
    RunnerActive Equal to True
    GameOver Equal to False
  Actions
    Trigger - Run CreateLeaderboard <gen> (checking conditions)
    Trigger - Run CreateTimerWindow <gen> (ignoring conditions)
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from a Player 4 (Purple).Necromancer named Necromancer at (PlayerArthas start location): Play U05ANecromancer13 <gen> and display Lord Arthas, Sylvanas has sent a runner to Silvermoon. The elves are sure to send more forces at us!. Modify duration: Add 0 seconds and Don't wait
    Sound - Reset all volume channels to 100%
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        Unit - Create 1.Runner (Insane Mode) for Player 5 (Yellow) at (Center of RunnerSpawn <gen>) facing 270.00 degrees
      Else - Actions
        Unit - Create 1.Runner for Player 5 (Yellow) at (Center of RunnerSpawn <gen>) facing 270.00 degrees
    Set VariableSet Runner = (Last created unit)
    Unit - Make Runner Invulnerable
    Unit - Set Runner movement speed to ((Default movement speed of Runner) - RunnerMovementSpeedHandicap)
    Unit - Order Runner to Move To.(Center of RunnerVariableTarget)
    Cinematic - Ping minimap for (All players) at (Center of RunnerSpawn <gen>) for 2.00 seconds
    Player - For Player 5 (Yellow), turn Shared vision On toward Player 4 (Purple)
    Player - For Player 5 (Yellow), turn Shared vision On toward Player 9 (Gray)
    Wait (5.00 + (Length of U05ANecromancer13 <gen>)) seconds
    Trigger - Remove (This trigger) from the trigger queue
    Trigger - Add TriggerGargoyleCinematic <gen> to the trigger queue (Checking conditions)
RunnerDies
  Events
    Unit - A unit owned by Player 5 (Yellow).Dies
  Conditions
    (Dying unit) Equal to Runner
  Actions
    Leaderboard - Hide LeaderboardRunner
    Countdown Timer - Show TimerWindowRunner
    Trigger - Turn off RunnerHeartbeat <gen>
    Countdown Timer - Start TimerRunner as a One-shot timer that will expire in RunnerTimerLength seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            RunnerTimerLength Greater than 60.00
          Then - Actions
            Set VariableSet RunnerTimerLength = (RunnerTimerLength - 30.00)
          Else - Actions
            Set VariableSet RunnerTimerLength = 60.00
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            RunnerTimerLength Greater than 90.00
          Then - Actions
            Set VariableSet RunnerTimerLength = (RunnerTimerLength - 30.00)
          Else - Actions
            Set VariableSet RunnerTimerLength = 90.00
    Trigger - Turn off PathBRedirect <gen>
    Trigger - Turn off PathCRedirect <gen>
    Trigger - Turn off PathDRedirect <gen>
ReoccuringRunnerTimerExpires
  Events
    Time - TimerRunner expires
  Conditions
    RunnerActive Equal to True
    ExitCinematicRunning Equal to False
  Actions
    Trigger - Add ReoccuringRunnerTimerExpiresMessage <gen> to the trigger queue (Checking conditions)
ReoccuringRunnerTimerExpiresMessage
  Events
  Conditions
    RunnerActive Equal to True
    ExitCinematicRunning Equal to False
    GameOver Equal to False
  Actions
    Countdown Timer - Hide TimerWindowRunner
    Leaderboard - Show LeaderboardRunner
    Set VariableSet RunnerRandomLine = (Random real number between 0 and 2.00)
    Sound - Setup all volume channels for speech
    If (RunnerRandomLine Less than or equal to 1.00) then do (Send transmission to (All players) from a Player 4 (Purple).Necromancer named Necromancer at (Player 4 (Purple) start location): Play U05ANecromancer15 <gen> and display Sylvanas has sent out another runner! It must be stopped!. Modify duration: Add 0 seconds and Wait) else do (Send transmission to (All players) from a Player 4 (Purple).Necromancer named Necromancer at (Player 4 (Purple) start location): Play U05ANecromancer13A <gen> and display Lord Arthas, Sylvanas has sent a runner to Silvermoon.. Modify duration: Add 0 seconds and Wait)
    Sound - Reset all volume channels to 100%
    Unit - Create 1.Runner for Player 5 (Yellow) at (Center of RunnerSpawn <gen>) facing 270.00 degrees
    Set VariableSet Runner = (Last created unit)
    Unit - Set Runner movement speed to ((Default movement speed of Runner) - RunnerMovementSpeedHandicap)
    Trigger - Run RandomizePath <gen> (ignoring conditions)
    Unit - Order Runner to Move To.(Center of RunnerVariableTarget)
    Trigger - Turn on RunnerHeartbeat <gen>
    Cinematic - Ping minimap for (All players) at (Center of RunnerSpawn <gen>) for 2.00 seconds
    Countdown Timer - Start TimerRunnerFailsafe as a One-shot timer that will expire in 300.00 seconds
    Trigger - Remove (This trigger) from the trigger queue
RandomizePath
  Events
  Conditions
  Actions
    Set VariableSet RandomRegion = (Random real number between 0 and 4.00)
    If (RandomRegion Less than 1.00) then do (Set VariableSet RunnerVariableTarget = RunnerTargetWest <gen>) else do (Do nothing)
    If ((RandomRegion Greater than or equal to 1.00) and (RandomRegion Less than 2.00)) then do (Set VariableSet RunnerVariableTarget = RegionRedirectB <gen>) else do (Do nothing)
    If ((RandomRegion Greater than or equal to 1.00) and (RandomRegion Less than 2.00)) then do (Turn on PathBRedirect <gen>) else do (Do nothing)
    If ((RandomRegion Greater than or equal to 2.00) and (RandomRegion Less than 3.00)) then do (Set VariableSet RunnerVariableTarget = RegionRedirectC <gen>) else do (Do nothing)
    If ((RandomRegion Greater than or equal to 2.00) and (RandomRegion Less than 3.00)) then do (Turn on PathCRedirect <gen>) else do (Do nothing)
    If (RandomRegion Greater than or equal to 3.00) then do (Set VariableSet RunnerVariableTarget = RegionRedirectD <gen>) else do (Do nothing)
    If (RandomRegion Greater than or equal to 3.00) then do (Turn on PathDRedirect <gen>) else do (Do nothing)
RunnerHeartbeat
  Events
    Time - Every 4.00 seconds of game time
  Conditions
    (Runner is alive) Equal to True
    RunnerActive Equal to True
  Actions
    Unit - Order Runner to Move To.(Center of RunnerVariableTarget)
PathBRedirect
  Events
    Unit - A unit enters RegionRedirectB <gen>
  Conditions
    (Entering unit) Equal to Runner
    ExitCinematicRunning Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet RunnerVariableTarget = RunnerTargetWest <gen>
    Unit - Order Runner to Move To.(Center of RunnerVariableTarget)
PathCRedirect
  Events
    Unit - A unit enters RegionRedirectC <gen>
  Conditions
    (Entering unit) Equal to Runner
    ExitCinematicRunning Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet RunnerVariableTarget = RunnerTargetEast <gen>
    Unit - Order Runner to Move To.(Center of RunnerVariableTarget)
PathDRedirect
  Events
    Unit - A unit enters RegionRedirectD <gen>
  Conditions
    (Entering unit) Equal to Runner
    ExitCinematicRunning Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet RunnerVariableTarget = RunnerTargetEast <gen>
    Unit - Order Runner to Move To.(Center of RunnerVariableTarget)
RunnerReachesSilvermoonEast
  Events
    Unit - A unit enters RunnerTargetEast <gen>
  Conditions
    (Entering unit) Equal to Runner
    (Owner of Runner) Equal to Player 5 (Yellow)
    ExitCinematicRunning Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add RunnerReachesSilvermoonEastMessage <gen> to the trigger queue (Checking conditions)
RunnerReachesSilvermoonEastMessage
  Events
  Conditions
    ExitCinematicRunning Equal to False
    GameOver Equal to False
  Actions
    Leaderboard - Hide LeaderboardRunner
    Countdown Timer - Hide TimerWindowRunner
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from a Player 4 (Purple).Necromancer named Necromancer at (Player 4 (Purple) start location): Play U05ANecromancer16 <gen> and display Lord Arthas, the messenger has reached the city! We should expect an attack soon!. Modify duration: Add 0 seconds and Don't wait
    Sound - Reset all volume channels to 100%
    Cinematic - Ping minimap for (All players) at (Center of RunnerTargetEast <gen>) for 2.00 seconds
    Wait (Length of U05ANecromancer16 <gen>) seconds
    Unit - Hide Runner
    Set VariableSet RunnerActive = False
    Quest - Mark QuestRunners as Failed
    Trigger - Run AI_RunnerReaches <gen> (checking conditions)
    Quest - Display to (All players) the Quest Failed message: |cffffcc00OPTIONAL QUEST FAILED|rSilvermoon Runners
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
RunnerReachesSilvermoonWest
  Events
    Unit - A unit enters RunnerTargetWest <gen>
  Conditions
    (Entering unit) Equal to Runner
    (Owner of Runner) Equal to Player 5 (Yellow)
    ExitCinematicRunning Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add RunnerReachesSilvermoonWestMessage <gen> to the trigger queue (Checking conditions)
RunnerReachesSilvermoonWestMessage
  Events
  Conditions
    ExitCinematicRunning Equal to False
    GameOver Equal to False
  Actions
    Leaderboard - Hide LeaderboardRunner
    Countdown Timer - Hide TimerWindowRunner
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from a Player 4 (Purple).Necromancer named Necromancer at (Player 4 (Purple) start location): Play U05ANecromancer16 <gen> and display Lord Arthas, the messenger has reached the city! We should expect an attack soon!. Modify duration: Add 0 seconds and Don't wait
    Sound - Reset all volume channels to 100%
    Cinematic - Ping minimap for (All players) at (Center of RunnerTargetWest <gen>) for 2.00 seconds
    Wait (Length of U05ANecromancer16 <gen>) seconds
    Unit - Hide Runner
    Set VariableSet RunnerActive = False
    Quest - Mark QuestRunners as Failed
    Trigger - Run AI_RunnerReaches <gen> (checking conditions)
    Quest - Display to (All players) the Quest Failed message: |cffffcc00OPTIONAL QUEST FAILED|rSilvermoon Runners
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
RunnerFailsafeTimerExpires
  Events
    Time - TimerRunnerFailsafe expires
  Conditions
    RunnerActive Equal to True
  Actions
    Unit - Remove Runner from the game
    Set VariableSet RunnerTimerLength = (RunnerTimerLength - 30.00)
    -------- DIFFICULTY MODIFIERS --------
    If (((Difficulty level) Equal to Easy) and (RunnerTimerLength Less than 180.00)) then do (Set VariableSet RunnerTimerLength = 180.00) else do (Do nothing)
    If (((Difficulty level) Equal to Normal) and (RunnerTimerLength Less than 120.00)) then do (Set VariableSet RunnerTimerLength = 120.00) else do (Do nothing)
    If (((Difficulty level) Equal to Hard) and (RunnerTimerLength Less than 30.00)) then do (Set VariableSet RunnerTimerLength = 30.00) else do (Do nothing)
    Trigger - Turn off PathBRedirect <gen>
    Trigger - Turn off PathCRedirect <gen>
    Trigger - Turn off PathDRedirect <gen>
    Trigger - Run ReoccuringRunnerTimerExpires <gen> (ignoring conditions)
CreateLeaderboard
  Events
  Conditions
  Actions
    Leaderboard - Create a leaderboard for (All players) titled A Runner is on its way!
    Leaderboard - Change the display style for LeaderboardRunner to Show the title, Hide labels, Hide values, and Hide icons
    Set VariableSet LeaderboardRunner = (Last created leaderboard)
    Leaderboard - Change the color of all labels for LeaderboardRunner to (0.00%, 100.00%, 100.00%) with 0% transparency
CreateTimerWindow
  Events
  Conditions
  Actions
    Countdown Timer - Create a timer window for TimerRunner with title Next runner in
    Set VariableSet TimerWindowRunner = (Last created timer window)
    Countdown Timer - Change the color of the title for (Last created timer window) to (100%, 100%, 100%) with 0% transparency
    Countdown Timer - Hide TimerWindowRunner
RunnerSpawnBuilding Dies
  Events
    Unit - A unit owned by Player 2 (Blue).Dies
  Conditions
    (Dying unit) Equal to RunnerSpawnBuilding
  Actions
    Set VariableSet RunnerSpawnBuilding = (Random unit from (Units owned by Player 2 (Blue) matching ((((Picked unit) is alive) Equal to True) and (((Picked unit) is A structure) Equal to True)).))
    Region - Center RunnerSpawn <gen> on (Position of RunnerSpawnBuilding)
TriggerGargoyleCinematic
  Events
  Conditions
    RunnerActive Equal to True
    GameOver Equal to False
  Actions
    Set VariableSet GargoyleCinematicRunning = True
    Trigger - Run GargoyleInitialCamera <gen> (ignoring conditions)
GargoyleInitialCamera
  Events
  Conditions
  Actions
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    Leaderboard - Hide LeaderboardRunner
    Trigger - Run GargoyleEnvironment <gen> (ignoring conditions)
    Cinematic - Turn cinematic mode On for (All players)
    Set VariableSet Cinematic = True
    Camera - .Apply. gg_cam_GargoyleView for Player 4 (Purple) over 0.01 seconds
    Camera - .Apply. gg_cam_GargoyleView for Player 9 (Gray) over 0.01 seconds
    Selection - Clear selection
    Trigger - Run GargoyleActorSetup <gen> (ignoring conditions)
    -------- CINEMATIC BEGINS - Cinematic can now be skipped --------
    Trigger - Turn on GargoyleCinematicEscape <gen>
    Trigger - Turn on Skip_Cinematic <gen>
    Wait 1.00 seconds
    If (GargoyleCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Fade in over 2 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2 seconds
    If (GargoyleCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run GargoyleNarrative <gen> (ignoring conditions)
GargoyleEnvironment
  Events
  Conditions
  Actions
    Environment - Set sky to Lordaeron Summer Sky
    Game - Turn the day/night cycle Off
GargoyleActorSetup
  Events
  Conditions
  Actions
    Unit - Pause all units
    Unit - Unpause Runner
    Unit - Create 1.Stone Form Gargoyle for Player 4 (Purple) at (Center of Gargoyle01 <gen>) facing 270.00 degrees
    Unit Group - Add (Last created unit) to GargoyleGroup
    Unit - Create 1.Stone Form Gargoyle for Player 9 (Gray) at (Center of Gargoyle02 <gen>) facing 0.00 degrees
    Unit Group - Add (Last created unit) to GargoyleGroup
    Unit - Create 1.Stone Form Gargoyle for Player 4 (Purple) at (Center of Gargoyle03 <gen>) facing 90.00 degrees
    Unit Group - Add (Last created unit) to GargoyleGroup
    Unit - Create 1.Stone Form Gargoyle for Player 9 (Gray) at (Center of Gargoyle04 <gen>) facing 135.00 degrees
    Unit Group - Add (Last created unit) to GargoyleGroup
    Unit - Move Runner instantly to (Center of GargoyleInitialRunner <gen>)
    Unit - Order Runner to Move To.(Center of RunnerTargetWest <gen>)
GargoyleNarrative
  Events
  Conditions
  Actions
    If ((Arthas is alive) Equal to True) then do (Send transmission to (All players) from Arthas named Arthas: Play U05AArthas14 <gen> and display The gargoyles we brought back from Northrend could be useful here. The beasts can spot their runners along the main road.. Modify duration: Add 0 seconds and Don't wait) else do (Do nothing)
    Wait 4.00 seconds
    If (GargoyleCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run GargoyleFakeRunnerVisibilty <gen> (ignoring conditions)
    Unit Group - Pick every unit in GargoyleGroup and do (Order (Picked unit) to Undead Gargoyle - Gargoyle Form.)
    Sound - Set position of GargoyleMorph1 <gen> to (Center of Gargoyle01 <gen>) with Z offset 0
    Sound - Play GargoyleMorph1 <gen>
    Wait ((Length of U05AArthas14 <gen>) - 4.00) seconds
    If (GargoyleCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Runner Vulnerable
    Unit Group - Order GargoyleGroup to Attack.Runner
    Selection - Select (Units owned by Player 4 (Purple) of type Gargoyle) for Player 4 (Purple)
    Selection - Select (Units owned by Player 9 (Gray) of type Gargoyle) for Player 9 (Gray)
    Unit - Unpause all units
    Camera - Reset camera for Player 4 (Purple) to standard game-view over 2.00 seconds
    Camera - Reset camera for Player 9 (Gray) to standard game-view over 2.00 seconds
    Cinematic - Turn cinematic mode Off for (All players)
    Set VariableSet Cinematic = False
    Environment - Set sky to None
    Game - Turn the day/night cycle On
    Countdown Timer - Start TimerStoneFormHint as a One-shot timer that will expire in 15.00 seconds
    Set VariableSet GargoyleCinematicRunning = False
    Trigger - Turn off GargoyleCinematicEscape <gen>
    Trigger - Turn off Skip_Cinematic <gen>
    Set VariableSet SkipVote1 = False
    Set VariableSet SkipVote2 = False
    Leaderboard - Show LeaderboardRunner
    Trigger - Remove TriggerGargoyleCinematic <gen> from the trigger queue
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        Unit - Move Phoenix Guardian 0183 <gen> instantly to (Center of Phoenix_Patrol_1A <gen>)
        Unit - Move Phoenix Guardian 0184 <gen> instantly to (Center of Phoenix_Patrol_2A <gen>)
        Unit - Move Phoenix Guardian 0185 <gen> instantly to (Center of Phoenix_Patrol_3A <gen>)
        Trigger - Run Phoenix_Patrol_A1 <gen> (ignoring conditions)
        Trigger - Run Phoenix_Patrol_B1 <gen> (ignoring conditions)
        Trigger - Run Phoenix_Patrol_C1 <gen> (ignoring conditions)
      Else - Actions
GargoyleFakeRunnerVisibilty
  Events
  Conditions
  Actions
    Visibility - Create an initially Enabled visibility modifier for Player 4 (Purple) emitting Visibility from (Center of RunnerVis1 <gen>) to a radius of 800.00.
    Visibility - Disable (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 4 (Purple) emitting Visibility from (Center of RunnerVis2 <gen>) to a radius of 800.00.
    Visibility - Disable (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 4 (Purple) emitting Visibility from (Center of RunnerVis3 <gen>) to a radius of 800.00.
    Visibility - Disable (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 4 (Purple) emitting Visibility from (Center of RunnerVis4 <gen>) to a radius of 800.00.
    Visibility - Disable (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 9 (Gray) emitting Visibility from (Center of RunnerVis1 <gen>) to a radius of 800.00.
    Visibility - Disable (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 9 (Gray) emitting Visibility from (Center of RunnerVis2 <gen>) to a radius of 800.00.
    Visibility - Disable (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 9 (Gray) emitting Visibility from (Center of RunnerVis3 <gen>) to a radius of 800.00.
    Visibility - Disable (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 9 (Gray) emitting Visibility from (Center of RunnerVis4 <gen>) to a radius of 800.00.
    Visibility - Disable (Last created visibility modifier)
GargoyleCinematicEscape
  Events
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet SkipVote1 = False
    Set VariableSet SkipVote2 = False
    Set VariableSet GargoyleCinematicEscape = True
    Set VariableSet GargoyleCinematicRunning = False
    Sound - Stop (Last played sound) After fading
    Cinematic - Fade out over 0.40 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.80 seconds
    Trigger - Run GargoyleFakeRunnerVisibilty <gen> (ignoring conditions)
    Unit - Unpause all units
    Unit Group - Remove all units from GargoyleGroup.
    Unit Group - Pick every unit in (Units owned by PlayerArthas of type Stone Form Gargoyle) and do (Remove (Picked unit) from the game)
    Unit Group - Pick every unit in (Units owned by PlayerArthas of type Gargoyle) and do (Remove (Picked unit) from the game)
    Unit - Create 1.Gargoyle for Player 4 (Purple) at (Center of Gargoyle01 <gen>) facing 270.00 degrees
    Unit Group - Add (Last created unit) to GargoyleGroup
    Unit - Create 1.Gargoyle for Player 9 (Gray) at (Center of Gargoyle02 <gen>) facing 0.00 degrees
    Unit Group - Add (Last created unit) to GargoyleGroup
    Unit - Create 1.Gargoyle for Player 4 (Purple) at (Center of Gargoyle03 <gen>) facing 90.00 degrees
    Unit Group - Add (Last created unit) to GargoyleGroup
    Unit - Create 1.Gargoyle for Player 9 (Gray) at (Center of Gargoyle04 <gen>) facing 135.00 degrees
    Unit Group - Add (Last created unit) to GargoyleGroup
    Unit - Move Runner instantly to (Center of GargoyleFinalRunner <gen>)
    Unit - Order Runner to Move To.(Center of RunnerTargetWest <gen>)
    Unit - Make Runner Vulnerable
    Selection - Select (Units owned by Player 4 (Purple) of type Gargoyle) for Player 4 (Purple)
    Selection - Select (Units owned by Player 9 (Gray) of type Gargoyle) for Player 9 (Gray)
    Unit Group - Order GargoyleGroup to Attack.Runner
    Game - Turn the day/night cycle On
    Cinematic - Fade in over 0.40 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Cinematic - Turn cinematic mode Off for (All players)
    Set VariableSet Cinematic = False
    Camera - Reset camera for Player 4 (Purple) to standard game-view over 0.00 seconds
    Camera - Reset camera for Player 9 (Gray) to standard game-view over 0.00 seconds
    Environment - Set sky to None
    Trigger - Remove TriggerGargoyleCinematic <gen> from the trigger queue
    Leaderboard - Show LeaderboardRunner
    Countdown Timer - Start TimerStoneFormHint 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
        INSANEMODE Equal to True
      Then - Actions
        Unit - Move Phoenix Guardian 0183 <gen> instantly to (Center of Phoenix_Patrol_1A <gen>)
        Unit - Move Phoenix Guardian 0184 <gen> instantly to (Center of Phoenix_Patrol_2A <gen>)
        Unit - Move Phoenix Guardian 0185 <gen> instantly to (Center of Phoenix_Patrol_3A <gen>)
        Trigger - Run Phoenix_Patrol_A1 <gen> (ignoring conditions)
        Trigger - Run Phoenix_Patrol_B1 <gen> (ignoring conditions)
        Trigger - Run Phoenix_Patrol_C1 <gen> (ignoring conditions)
      Else - Actions
TriggerSylvanasCinematic
  Events
    Time - Every 2.00 seconds of game time
  Conditions
    (Number of units in (Units owned by Player 2 (Blue) matching ((((Matching unit) is A structure) Equal to True) and (((Unit-type of (Matching unit)) Not equal to High Elven Farm) and (((Matching unit) is alive) Equal to True))).)) Equal to 0
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add SylvanusStart <gen> to the trigger queue (Checking conditions)
SylvanusStart
  Events
  Conditions
    GameOver Equal to False
  Actions
    Set VariableSet SylvanasCinematicRunning = True
    Set VariableSet RunnerActive = False
    Trigger - Run SylvanasInitialCamera <gen> (ignoring conditions)
SylvanasEnvironment
  Events
  Conditions
  Actions
    Environment - Set sky to Lordaeron Summer Sky
    Game - Turn the day/night cycle Off
SylvanasInitialCamera
  Events
  Conditions
  Actions
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    Trigger - Run SylvanasEnvironment <gen> (ignoring conditions)
    Countdown Timer - Hide TimerWindowRunner
    Leaderboard - Hide LeaderboardRunner
    Sound - Play Dark Agents.
    Unit Group - Pick every unit in (Units currently selected by PlayerArthas) and do (Add (Picked unit) to UnitGroupSelection1)
    Unit Group - Pick every unit in (Units currently selected by Player 9 (Gray)) and do (Add (Picked unit) to UnitGroupSelection2)
    Cinematic - Turn cinematic mode On for (All players)
    Set VariableSet Cinematic = True
    Trigger - Run SylvanasActorSetup <gen> (ignoring conditions)
    Trigger - Turn on SylvanasCinematicEscape <gen>
    Trigger - Turn on Skip_Cinematic <gen>
    If (SylvanasCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - .Apply. gg_cam_SylvanusCamera for PlayerArthas over 0.01 seconds
    Camera - .Apply. gg_cam_SylvanusCamera for Player 9 (Gray) over 0.01 seconds
    Wait 1.00 seconds
    If (SylvanasCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    If (SylvanasCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run SylvanasFacesArthas <gen> (ignoring conditions)
SylvanasActorSetup
  Events
  Conditions
  Actions
    Selection - Clear selection
    Unit - Pause all units
    Unit - Unpause Arthas
    Unit - Unpause Sylvanas
    Unit Group - Pick every unit in (Units owned by PlayerArthas matching (((Matching unit) is A structure) Equal to False).) and do (Hide (Picked unit))
    Unit Group - Pick every unit in (Units owned by Player 9 (Gray) matching (((Matching unit) is A structure) Equal to False).) and do (Hide (Picked unit))
    Unit - Unhide Arthas
    -------- Handle Arthas Positioning --------
    Set VariableSet UnitAltar = (Random unit from (Units owned by PlayerArthas of type Altar of Darkness))
    If (UnitAltar Equal to No unit) then do (Set VariableSet PointArthasRevivePosition = (Center of SylvanasInitialArthas <gen>)) else do (Set VariableSet PointArthasRevivePosition = ((Position of UnitAltar) offset by (0, -128.00)))
    If ((Arthas is alive) Equal to True) then do (Set VariableSet ArthasInitialPosition = (Position of Arthas)) else do (Set VariableSet ArthasInitialPosition = PointArthasRevivePosition)
    If ((Arthas is alive) Equal to True) then do (Move Arthas instantly to (Center of SylvanasInitialArthas <gen>)) else do (Instantly revive Arthas at (Center of SylvanasInitialArthas <gen>), Hide revival graphics)
    Unit - Make Arthas face (Center of SylvanasInitialSylvanus <gen>) over 0 seconds
    Unit - Pause Arthas
    Unit Group - Pick every unit in (Units owned by PlayerSylvanus matching (((Matching unit) is A structure) Equal to False).) and do (Hide (Picked unit))
    Unit Group - Pick every unit in (Units in SylvanasBuildingFailsafe <gen> matching (((Matching unit) is A structure) Equal to True)) and do (Hide (Picked unit))
    Unit - Unhide Sylvanas
    If ((Sylvanas is alive) Equal to True) then do (Move Sylvanas instantly to (Center of SylvanasInitialSylvanus <gen>)) else do (Instantly revive Sylvanas at (Center of SylvanasInitialSylvanus <gen>), Hide revival graphics)
    Unit - Make Sylvanas face (Center of SylvanasInitialArthas <gen>) over 0 seconds
    Unit - Pause Sylvanas
    Unit - Make Arthas Invulnerable
    Unit - Make Sylvanas Invulnerable
    Hero - Disable experience gain for Arthas.
    Hero - Disable experience gain for Falric.
    Unit - Remove All buffs from Arthas
    Unit - Remove All buffs from Sylvanas
SylvanasFacesArthas
  Events
  Conditions
  Actions
    Sound - Reset all volume channels to 100%
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play U04AArthas19 <gen> and display I salute your bravery, elf, but the chase is over.. Modify duration: Add 0 seconds and Wait
    If (SylvanasCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play U04ASylvanas20 <gen> and display Then I'll make my stand here, butcher. Anar'alah belore.. Modify duration: Add 0 seconds and Wait
    If (SylvanasCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Arthas Vulnerable
    Unit - Make Sylvanas Vulnerable
    Unit - Unpause Arthas
    Unit - Unpause Sylvanas
    Unit - Set life of Sylvanas to 60.00
    Unit - Order Arthas to Attack.Sylvanas
    Unit - Order Sylvanas to Attack.Arthas
    Camera - .Apply. gg_cam_SylvanusFight for PlayerArthas over 3.00 seconds
    Camera - .Apply. gg_cam_SylvanusFight for Player 9 (Gray) over 3.00 seconds
SylvanasFalls
  Events
    Unit - Ranger 0128 <gen> Takes damage
  Conditions
    SylvanasCinematicRunning Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Unit - Pause Sylvanas
    Unit - Pause Arthas
    Animation - Play Arthas's stand (animationname) animation
    Animation - Play Sylvanas's death (animationname) animation
    Unit - Make Sylvanas Invulnerable
    Wait 2 seconds
    If (SylvanasCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play U04ASylvanas21 <gen> and display Finish it! I deserve... a clean death.. Modify duration: Add 0 seconds and Wait
    If (SylvanasCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play U04AArthas22 <gen> and display After all you've put me through, woman, the last thing I'll give you is the peace of death.. Modify duration: Add 0 seconds and Wait
    If (SylvanasCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Arthas's spell (animationname) animation
    Special Effect - Create a special effect at (Position of Sylvanas) using Abilities\Spells\Undead\DarkSummoning\DarkSummonTarget.mdl
    Sound - Attach DarkSummoningTarget1 <gen> to Sylvanas
    Sound - Play DarkSummoningTarget1 <gen>
    Set VariableSet EffectDarkSummoning = (Last created special effect)
    Cinematic - Send transmission to (All players) from Sylvanas named Sylvanas Windrunner: Play U04ASylvanas23 <gen> and display No! You wouldn't dare!. Modify duration: Add 0 seconds and Wait
    If (SylvanasCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Special Effect - Destroy EffectDarkSummoning
    Unit - Create 1 Sylvanas Windrunner (Banshee) for PlayerArthas at (Position of Sylvanas) facing (Center of SylvanasBansheeFacing <gen>)
    Unit - Create 1 Banshee for Player 9 (Gray) at (Center of SylvanasBansheeFacing <gen>) facing (Center of SylvanasInitialArthas <gen>)
    Unit - Create 1 Banshee for Player 9 (Gray) at (Center of Region_078 <gen>) facing (Center of SylvanasBansheeFacing <gen>)
    Set VariableSet SylvanasBanshee = (Last created unit)
    Set VariableSet SylvanasBansheeCreated = True
    Player - For Player 4 (Purple), turn Alliance (non-aggression) On toward Player 2 (Blue)
    Player - For Player 4 (Purple), turn Alliance (non-aggression) On toward Player 9 (Gray)
    Player - For Player 2 (Blue), turn Alliance (non-aggression) On toward Player 4 (Purple)
    Player - For Player 9 (Gray), turn Alliance (non-aggression) On toward Player 4 (Purple)
    Animation - Play SylvanasBanshee's spell (animationname) animation
    Sound - Attach BansheeDeath <gen> to SylvanasBanshee
    Sound - Play BansheeDeath <gen>
    Wait ((Length of BansheeDeath <gen>) - 1.20) seconds
    If (SylvanasCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Reset SylvanasBanshee's animation
    Trigger - Run SylvanasEnd <gen> (ignoring conditions)
SylvanasEnd
  Events
  Conditions
  Actions
    Set VariableSet SylvanasCinematicRunning = False
    Trigger - Turn off SylvanasCinematicEscape <gen>
    Trigger - Turn off Skip_Cinematic <gen>
    Set VariableSet SkipVote1 = False
    Set VariableSet SkipVote2 = False
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2.00 seconds
    Player - For Player 4 (Purple), turn Alliance (non-aggression) Off toward Player 2 (Blue)
    Player - For Player 2 (Blue), turn Alliance (non-aggression) Off toward Player 4 (Purple)
    Unit Group - Pick every unit in (Units owned by PlayerArthas.) and do (Unhide (Picked unit))
    Unit Group - Pick every unit in (Units owned by Player 9 (Gray).) and do (Unhide (Picked unit))
    Unit Group - Pick every unit in (Units owned by PlayerSylvanus.) and do (Unhide (Picked unit))
    Unit - Move Arthas instantly to ArthasInitialPosition
    If ((QuestRunners is failed) Equal to True) then do (Create Slippers of Agility +3 at (Center of SylvanasBansheeFacing <gen>)) else do (Create Hood of Cunning at (Center of SylvanasBansheeFacing <gen>))
    Unit - Unpause all units
    Unit - Remove Sylvanas from the game
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Cinematic - Turn cinematic mode Off for (All players)
    Set VariableSet Cinematic = False
    Selection - Select UnitGroupSelection1 for Player 4 (Purple)
    Selection - Select UnitGroupSelection2 for Player 9 (Gray)
    Camera - Reset camera for PlayerArthas to standard game-view over 0.00 seconds
    Camera - Reset camera for Player 9 (Gray) to standard game-view over 0.00 seconds
    Environment - Set sky to None
    Game - Turn the day/night cycle On
    If ((Hero level of Arthas) Less than 6) then do (Enable experience gain for Arthas.) else do (Do nothing)
    If ((Hero level of Falric) Less than 6) then do (Enable experience gain for Falric.) else do (Do nothing)
    If ((Runner is alive) Equal to True) then do (Hide Runner) else do (Do nothing)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        Unit - Move Phoenix Guardian 0183 <gen> instantly to (Center of Phoenix_Patrol_1A <gen>)
        Unit - Move Phoenix Guardian 0184 <gen> instantly to (Center of Phoenix_Patrol_2A <gen>)
        Unit - Move Phoenix Guardian 0185 <gen> instantly to (Center of Phoenix_Patrol_3A <gen>)
        Trigger - Run Phoenix_Patrol_A1 <gen> (ignoring conditions)
        Trigger - Run Phoenix_Patrol_B1 <gen> (ignoring conditions)
        Trigger - Run Phoenix_Patrol_C1 <gen> (ignoring conditions)
      Else - Actions
    Quest - Mark QuestSilvanus as Completed
    Quest - Mark QuestReqSilvanus as Completed
    Quest - Display to (All players) the Quest Completed message: |cffffcc00OPTIONAL QUEST COMPLETED|rSylvanas Windrunner
    Set VariableSet SubquestsComplete = (SubquestsComplete + 1)
    Wait Campaign quest delay seconds
    If ((QuestRunners is failed) Equal to False) then do (Run MarkRunnerQuestCompleted <gen> (ignoring conditions)) else do (Do nothing)
    Trigger - Remove SylvanusStart <gen> from the trigger queue
    Countdown Timer - Start TimerBansheeHint as a One-shot timer that will expire in 21.00 seconds
MarkRunnerQuestCompleted
  Events
  Conditions
  Actions
    Quest - Mark QuestRunners as Completed
    Quest - Mark QuestReqRunners as Completed
    Quest - Mark QuestReqNoAttackSilvermoon as Completed
    Quest - Display to (All players) the Quest Completed message: |cffffcc00OPTIONAL QUEST COMPLETED|rSilvermoon Runners
    Quest - Flash the quest dialog button
    Set VariableSet SubquestsComplete = (SubquestsComplete + 1)
    Wait Campaign quest delay seconds
SylvanasCinematicEscape
  Events
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet SkipVote1 = False
    Set VariableSet SkipVote2 = False
    Set VariableSet SylvanasCinematicEscape = True
    Set VariableSet SylvanasCinematicRunning = False
    Sound - Stop (Last played sound) After fading
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2.00 seconds
    Special Effect - Destroy EffectDarkSummoning
    Unit Group - Pick every unit in (Units owned by PlayerArthas.) and do (Unhide (Picked unit))
    Unit Group - Pick every unit in (Units owned by Player 9 (Gray).) and do (Unhide (Picked unit))
    Unit Group - Pick every unit in (Units owned by PlayerSylvanus.) and do (Unhide (Picked unit))
    Unit - Move Arthas instantly to ArthasInitialPosition
    If ((QuestRunners is failed) Equal to True) then do (Create Slippers of Agility +3 at (Center of SylvanasBansheeFacing <gen>)) else do (Create Hood of Cunning at (Center of SylvanasBansheeFacing <gen>))
    If (Sylvanas Not equal to No unit) then do (Remove Sylvanas from the game) else do (Do nothing)
    If (SylvanasBansheeCreated Equal to False) then do (Create 1 Sylvanas Windrunner (Banshee) for PlayerArthas at (Center of SylvanasInitialSylvanus <gen>) facing (Center of SylvanasBansheeFacing <gen>)) else do (Skip remaining actions)
    If (SylvanasBansheeCreated Equal to False) then do (Create 1 Banshee for PlayerArthas at (Center of Region_077 <gen>) facing (Center of SylvanasBansheeFacing <gen>)) else do (Skip remaining actions)
    If (SylvanasBansheeCreated Equal to False) then do (Create 1 Banshee for PlayerArthas at (Center of Region_078 <gen>) facing (Center of SylvanasBansheeFacing <gen>)) else do (Skip remaining actions)
    If (SylvanasBansheeCreated Equal to False) then do (Set VariableSet SylvanasBanshee = (Last created unit)) else do (Do nothing)
    Unit - Unpause all units
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Cinematic - Turn cinematic mode Off for (All players)
    Set VariableSet Cinematic = False
    Selection - Select UnitGroupSelection1 for Player 4 (Purple)
    Selection - Select UnitGroupSelection2 for Player 9 (Gray)
    Unit - Make Arthas Vulnerable
    Camera - Reset camera for PlayerArthas to standard game-view over 0.00 seconds
    Camera - Reset camera for Player 9 (Gray) to standard game-view over 0.00 seconds
    Environment - Set sky to None
    Game - Turn the day/night cycle On
    If ((Hero level of Arthas) Less than 6) then do (Enable experience gain for Arthas.) else do (Do nothing)
    If ((Hero level of Falric) Less than 6) then do (Enable experience gain for Falric.) else do (Do nothing)
    If ((Runner is alive) Equal to True) then do (Hide Runner) else do (Do nothing)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        Unit - Move Phoenix Guardian 0183 <gen> instantly to (Center of Phoenix_Patrol_1A <gen>)
        Unit - Move Phoenix Guardian 0184 <gen> instantly to (Center of Phoenix_Patrol_2A <gen>)
        Unit - Move Phoenix Guardian 0185 <gen> instantly to (Center of Phoenix_Patrol_3A <gen>)
        Trigger - Run Phoenix_Patrol_A1 <gen> (ignoring conditions)
        Trigger - Run Phoenix_Patrol_B1 <gen> (ignoring conditions)
        Trigger - Run Phoenix_Patrol_C1 <gen> (ignoring conditions)
      Else - Actions
    Quest - Mark QuestSilvanus as Completed
    Quest - Mark QuestReqSilvanus as Completed
    Quest - Display to (All players) the Quest Completed message: |cffffcc00OPTIONAL QUEST COMPLETED|rSylvanas Windrunner
    Set VariableSet SubquestsComplete = (SubquestsComplete + 1)
    Wait Campaign quest delay seconds
    If ((QuestRunners is failed) Equal to False) then do (Run MarkRunnerQuestCompleted <gen> (ignoring conditions)) else do (Do nothing)
    Trigger - Remove SylvanusStart <gen> from the trigger queue
    Countdown Timer - Start TimerBansheeHint as a One-shot timer that will expire in 5.00 seconds
BansheesBuildable
  Events
    Time - TimerBansheeHint expires
  Conditions
  Actions
    Trigger - Add BansheesBuildableMessage <gen> to the trigger queue (Checking conditions)
BansheesBuildableMessage
  Events
  Conditions
    ExitCinematicRunning Equal to False
    GameOver Equal to False
  Actions
    Player - Make Banshee Available for training/construction by Player 4 (Purple)
    Player - Set the max research level of Ruba (techcode) to 2 for Player 4 (Purple)
    Player - Make Banshee Available for training/construction by Player 9 (Gray)
    Player - Set the max research level of Ruba (techcode) to 2 for Player 9 (Gray)
    Quest - Display to (All players) the Simple Hint message: |cff87ceebNEW UNIT AVAILABLE|rBanshee - You may now build Banshees from the Temple of the Damned. They are supporting casters that can initially cast Curse, which causes enemy units to occasionally miss in combat.
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
TriggerExitCinematic
  Events
  Conditions
  Actions
    Set VariableSet ExitCinematicRunning = True
    Countdown Timer - Hide TimerWindowRunner
    Leaderboard - Hide LeaderboardRunner
    AI - Ignore the guard positions of all Player 3 (Teal) units
    AI - Ignore the guard positions of all Player 12 (Brown) units
    Item - Remove (Item carried by Arthas of type Urn of King Terenas)
    Item - Remove (Item carried by Falric of type Urn of King Terenas)
    Trigger - Run ExitInitialCamera <gen> (ignoring conditions)
ExitEnvironment
  Events
  Conditions
  Actions
    Environment - Set sky to Lordaeron Summer Sky
    Game - Turn the day/night cycle Off
ExitCinematicMode
  Events
  Conditions
  Actions
    Cinematic - Turn cinematic mode On for (All players)
    Set VariableSet Cinematic = True
ExitInitialCamera
  Events
  Conditions
  Actions
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run ExitEnvironment <gen> (ignoring conditions)
    Trigger - Run ExitCinematicMode <gen> (ignoring conditions)
    Sound - Play Dark Victory.
    Trigger - Turn on ExitCinematicEscape <gen>
    Trigger - Turn on Skip_Cinematic <gen>
    Camera - .Apply. gg_cam_ExitInitialSunwell for PlayerArthas over 0 seconds
    Camera - .Apply. gg_cam_ExitInitialSunwell for Player 9 (Gray) over 0 seconds
    Wait 1.00 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run ExitActorSetup <gen> (ignoring conditions)
    Cinematic - Fade in over 2 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run ExitCeremony <gen> (ignoring conditions)
ExitActorSetup
  Events
  Conditions
  Actions
    Player - For PlayerArthas, turn Alliance (non-aggression) On toward PlayerSylvanus
    Player - For PlayerArthas, turn Alliance (non-aggression) On toward PlayerSilvermoon
    Player - For PlayerArthas, turn Alliance (non-aggression) On toward PlayerSilvermoonBrown
    Player - For Player 9 (Gray), turn Alliance (non-aggression) On toward PlayerSylvanus
    Player - For Player 9 (Gray), turn Alliance (non-aggression) On toward PlayerSilvermoon
    Player - For Player 9 (Gray), turn Alliance (non-aggression) On toward PlayerSilvermoonBrown
    Selection - Clear selection
    Unit - Remove All buffs from Arthas
    Unit - Remove All buffs from Falric
    Unit Group - Pick every unit in (Units owned by PlayerArthas matching (((Matching unit) is A structure) Equal to False).) and do (Hide (Picked unit))
    Unit Group - Pick every unit in (Units owned by Player 9 (Gray) matching (((Matching unit) is A structure) Equal to False).) and do (Hide (Picked unit))
    Unit - Unhide Arthas
    Unit - Unhide Falric
    If ((Arthas is alive) Equal to True) then do (Move Arthas instantly to (Center of SunwellCOP <gen>)) else do (Instantly revive Arthas at (Center of SunwellCOP <gen>), Hide revival graphics)
    If ((Falric is alive) Equal to True) then do (Move Falric instantly to (Center of SunwellCOP_Copy <gen>)) else do (Instantly revive Falric at (Center of SunwellCOP_Copy <gen>), Hide revival graphics)
    Unit - Make Arthas face (Center of WeatherSunlight <gen>) over 0 seconds
    Unit - Make Falric face (Center of WeatherSunlight <gen>) over 0 seconds
    Unit Group - Pick every unit in (Units owned by PlayerSylvanus matching (((Matching unit) is A structure) Equal to False).) and do (Hide (Picked unit))
    Unit Group - Pick every unit in (Units owned by PlayerSilvermoon matching (((Matching unit) is A structure) Equal to False).) and do (Hide (Picked unit))
    Unit Group - Pick every unit in (Units owned by PlayerSilvermoonBrown matching (((Matching unit) is A structure) Equal to False).) and do (Hide (Picked unit))
    Unit - Pause all units
    Unit - Unpause Arthas
    Unit - Unpause Falric
    Animation - Play Arthas's stand (animationname) animation, using only Common animations
    Unit - Remove Circle of Power 0202 <gen> from the game
    Game - Set the time of day to 12.00
ExitCeremony
  Events
  Conditions
  Actions
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play U05AArthas22 <gen> and display Citizens of Silvermoon! I have given you ample opportunities to surrender, but you have stubbornly refused! Know that today, your entire race and your ancient heritage will end! Death itself has come to claim the high home of the elves!. Modify duration: Add 0 seconds and Don't wait
    Wait 2.00 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run ExitDeathSceneA <gen> (ignoring conditions)
    Wait 2.00 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order UnitExitDeathSceneGhoul to Attack.ExitDeathSceneAFarm02
    Wait 2.00 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Pause all units
    Unit - Unpause Arthas
    Unit - Unpause Falric
    Trigger - Run ExitDeathSceneB <gen> (ignoring conditions)
    Wait 4.00 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Fade out over 0.40 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.80 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit Group - Pick every unit in (Units owned by Player 3 (Teal).) and do (Hide (Picked unit))
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Fade in over 0.40 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Camera - .Apply. gg_cam_ExitInitialSunwell for PlayerArthas over 0 seconds
    Camera - .Apply. gg_cam_ExitInitialSunwell for Player 9 (Gray) over 0 seconds
    Wait for U05AArthas22 <gen> to be 0 seconds from finished playing
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Stop the currently playing music theme
    Sound - Play Dark Agents.
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play U05AArthas30 <gen> and display Now, arise, Kel'Thuzad, and serve the Lich King once again!. Modify duration: Add 0 seconds and Don't wait
    Unit - Make Arthas face (Center of ExitSpawnKelThuzadGhost <gen>) over 0.30 seconds
    Wait 0.40 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Arthas's spell (animationname) animation
    Wait 1.00 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Arthas's stand (animationname) animation, using only Common animations
    Unit - Create 1 Kel'Thuzad (Ghost) for Player 4 (Purple) at (Center of ExitSpawnKelThuzadGhost <gen>) facing (Position of Arthas)
    Unit - Change color of (Last created unit) to Green
    Sound - Set position of DarkRitualTarget1 <gen> to (Center of ExitSpawnKelThuzadGhost <gen>) with Z offset 0
    Sound - Play DarkRitualTarget1 <gen>
    Set VariableSet ExitKelthuzadGhost = (Last created unit)
    Unit - Unpause ExitKelthuzadGhost
    Wait ((Length of U05AArthas30 <gen>) - 1.40) seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Turn collision for ExitKelthuzadGhost Off.
    Unit - Order ExitKelthuzadGhost to Move To.(Center of WeatherSunlight <gen>)
    Wait 1.00 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Environment - Remove WeatherSunbeams
    Sound - Set position of AltarOfDarknessWhat <gen> to (Center of FountainSound <gen>) with Z offset 0
    Sound - Play AltarOfDarknessWhat <gen>
    Animation - Play the stand second (animationname) animation for all doodads of type YOsw (doodadcode) within WeatherSunlight <gen>.
    Unit - Remove ExitKelthuzadGhost from the game
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 4.00 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play the stand third (animationname) animation for all doodads of type YOsw (doodadcode) within WeatherSunlight <gen>.
    Trigger - Run ExitLichRevive <gen> (ignoring conditions)
    Unit - Create 1.Lich (Lich) for Player 4 (Purple) at (Center of ExitSpawnKelThuzadGhost <gen>) facing 180.00 degrees
    Unit - Change color of (Last created unit) to Green
    Sound - Set position of DarkSummoningTarget1 <gen> to (Center of FountainSound <gen>) with Z offset 0
    Sound - Play DarkSummoningTarget1 <gen>
    Set VariableSet ExitKelthuzadLich = (Last created unit)
    Unit - Unpause ExitKelthuzadLich
    Animation - Play ExitKelthuzadLich's stand (animationname) animation, using only Common animations
    Cinematic - Send transmission to (All players) from ExitKelthuzadLich named Kel'Thuzad: Play U05AKelThuzad31 <gen> and display I am reborn, as promised! The Lich King has granted me eternal life!. Modify duration: Add 0 seconds and Wait
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play U05AArthas32 <gen> and display I've upheld my end of the bargain, lich. Are you ready to tell me about the dreadlords now?. Modify duration: Add 0 seconds and Wait
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make ExitKelthuzadLich face Arthas over 0.40 seconds
    Wait 0.40 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from ExitKelthuzadLich named Kel'Thuzad: Play U05AKelThuzad33 <gen> and display Certainly. But not here. They have eyes and ears everywhere. We'll talk where it's safe.. Modify duration: Add 0 seconds and Wait
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run ExitCinematicEnd <gen> (ignoring conditions)
ExitLichRevive
  Events
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Special Effect - Create a special effect at (Center of ExitSpawnKelThuzadGhost <gen>) using Abilities\Spells\Human\ReviveHuman\ReviveHuman.mdl
    Set VariableSet EffectLichRes = (Last created special effect)
    Sound - Set position of ReviveHuman <gen> to (Center of ExitSpawnKelThuzadGhost <gen>) with Z offset 0
    Sound - Set volume of ReviveHuman <gen> to 80.00%
    Sound - Play ReviveHuman <gen>
    Wait 2 seconds
    Special Effect - Destroy EffectLichRes
ExitDeathSceneA
  Events
  Conditions
  Actions
    Player - Set the current research level of Ruac (techcode) to 1 for Player 4 (Purple)
    Player - Set the current research level of Ruac (techcode) to 1 for Player 9 (Gray)
    Cinematic - Fade out over 0.40 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.80 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - .Apply. gg_cam_ExitDeathSceneA for PlayerArthas over 0 seconds
    Camera - .Apply. gg_cam_ExitDeathSceneA for Player 9 (Gray) over 0 seconds
    Unit Group - Pick every unit in (Units in ExitDeathSceneAClear <gen>) and do (Remove (Picked unit) from the game)
    Unit - Create 1.High Elven Farm for Player 3 (Teal) at (Center of ExitDeathSceneAFarm01 <gen>) facing Default building facing degrees
    Set VariableSet ExitDeathSceneAFarm01 = (Last created unit)
    Unit - Set life of ExitDeathSceneAFarm01 to 75.00
    Unit - Create 1.High Elven Farm for Player 3 (Teal) at (Center of ExitDeathSceneAFarm02 <gen>) facing Default building facing degrees
    Set VariableSet ExitDeathSceneAFarm02 = (Last created unit)
    Unit - Set life of ExitDeathSceneAFarm02 to 300.00
    Unit - Create 1.Swordsman for Player 3 (Teal) at (Center of ExitDeathSceneAVillager <gen>) facing 225.00 degrees
    Set VariableSet ExitDeathSceneAElf = (Last created unit)
    AI - Ignore (Last created unit)'s guard position
    Unit - Set life of ExitDeathSceneAElf to 5.00
    Unit - Create 1.Ghoul for Player 4 (Purple) at (Center of ExitDeathSceneAGhoul01 <gen>) facing 0.00 degrees
    Unit - Order (Last created unit) to Attack.ExitDeathSceneAFarm01
    Unit - Create 1.Ghoul for Player 9 (Gray) at (Center of ExitDeathSceneAGhoul02 <gen>) facing 45.00 degrees
    Unit - Set life of (Last created unit) to 50.00%
    Unit - Order (Last created unit) to Attack.ExitDeathSceneAElf
    Set VariableSet UnitExitDeathSceneGhoul = (Last created unit)
    Unit - Order ExitDeathSceneAElf to Attack.(Last created unit)
    Unit - Create 1.Ghoul for Player 4 (Purple) at (Center of ExitDeathSceneAGhoul03 <gen>) facing 135.00 degrees
    Unit - Order (Last created unit) to Attack.ExitDeathSceneAFarm02
    Cinematic - Fade in over 0.40 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
ExitDeathSceneB
  Events
  Conditions
  Actions
    Cinematic - Fade out over 0.40 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.80 seconds
    If (ExitCinematicEscape Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - .Apply. gg_cam_ExitDeathSceneB for PlayerArthas over 0 seconds
    Camera - .Apply. gg_cam_ExitDeathSceneB for Player 9 (Gray) over 0 seconds
    Unit Group - Pick every unit in (Units in ExitDeathSceneBClear <gen>) and do (Remove (Picked unit) from the game)
    Unit - Create 1.High Elven Farm for Player 3 (Teal) at (Center of ExitDeathSceneBFarm01 <gen>) facing Default building facing degrees
    Set VariableSet ExitDeathSceneBFarm01 = (Last created unit)
    Unit - Set life of (Last created unit) to 50.00
    Unit - Create 1.High Elven Farm for Player 3 (Teal) at (Center of ExitDeathSceneBFarm02 <gen>) facing Default building facing degrees
    Unit - Set life of (Last created unit) to 200.00
    Unit - Create 1.High Elven Farm for Player 3 (Teal) at (Center of ExitDeathSceneBFarm03 <gen>) facing Default building facing degrees
    Unit - Set life of (Last created unit) to 500.00
    Unit - Create 1.High Elven Farm for Player 3 (Teal) at (Center of ExitDeathSceneBFarm04 <gen>) facing Default building facing degrees
    Set VariableSet ExitDeathSceneBFarm04 = (Last created unit)
    Unit - Set life of (Last created unit) to 100.00
    Unit - Create 1.Archer for Player 3 (Teal) at (Center of ExitDeathSceneBVillager01 <gen>) facing 90.00 degrees
    Unit - Set life of (Last created unit) to 5.00
    AI - Ignore (Last created unit)'s guard position
    Set VariableSet ExitDeathSceneBElf01 = (Last created unit)
    Unit - Create 1.Sorceress for Player 3 (Teal) at (Center of ExitDeathSceneBVillager03 <gen>) facing 225.00 degrees
    Unit - Set life of (Last created unit) to 5.00
    AI - Ignore (Last created unit)'s guard position
    Set VariableSet ExitDeathSceneBElf03 = (Last created unit)
    Unit - Create 1.Meat Wagon for Player 9 (Gray) at (Center of ExitDeathSceneBMeatWagon01 <gen>) facing 135.00 degrees
    Unit - Order (Last created unit) to Attack.ExitDeathSceneBFarm01
    Unit - Order ExitDeathSceneBElf01 to Attack.(Last created unit)
    Unit - Create 1.Meat Wagon for Player 4 (Purple) at (Center of ExitDeathSceneBMeatWagon02 <gen>) facing 135.00 degrees
    Unit - Order (Last created unit) to Attack.ExitDeathSceneBElf01
    Unit - Order ExitDeathSceneBElf02 to Attack.(Last created unit)
    Unit - Create 1.Meat Wagon for Player 9 (Gray) at (Center of ExitDeathSceneBMeatWagon03 <gen>) facing 135.00 degrees
    Unit - Order (Last created unit) to Attack.ExitDeathSceneBElf03
    Unit - Order ExitDeathSceneBElf03 to Attack.(Last created unit)
    Cinematic - Fade in over 0.40 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
ExitCinematicEnd
  Events
  Conditions
  Actions
    Trigger - Turn off ExitCinematicEscape <gen>
    Cinematic - Fade out over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop01 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop02 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop03 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop04 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop05 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop06 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop07 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop08 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop09 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop10 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop11 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop12 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop13 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop14 <gen>
    Wait 2.00 seconds
    Cinematic - Turn cinematic mode Off for (All players)
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
      Loop - Actions
        Unit - Pause (Picked unit)
        Unit - Hide (Picked unit)
    Trigger - Run Endgame_Text <gen> (ignoring conditions)
ExitCinematicEscape
  Events
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet ExitCinematicEscape = True
    Set VariableSet ExitCinematicRunning = False
    Sound - Stop (Last played sound) After fading
    Cinematic - Fade out over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2.00 seconds
    Cinematic - Turn cinematic mode Off for (All players)
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
      Loop - Actions
        Unit - Pause (Picked unit)
        Unit - Hide (Picked unit)
    Trigger - Run Endgame_Text <gen> (ignoring conditions)
AllGuardiansDestroyed
  Events
    Unit - A unit owned by Player 11 (Dark Green).Dies
  Conditions
    (Count non-structure units controlled by Player 11 (Dark Green) (Exclude incomplete units)) Equal to 0
  Actions
    Set VariableSet GuardiansDead = True
    Trigger - Add AllGuardiansDestroyedMessage <gen> to the trigger queue (Checking conditions)
AllGuardiansDestroyedMessage
  Events
  Conditions
    GameOver Equal to False
  Actions
    Quest - Mark QuestReqSunwellGuardians as Completed
    Quest - Create a quest requirement for QuestSunwell with the description Bring Kel'Thuzad's Ashes to the Sunwell
    Set VariableSet QuestReqSunwellArthas = (Last created quest requirement)
    Quest - Display to (All players) the Quest Update message: |cffffcc00MAIN QUEST UPDATE|rThe Sunwell - Bring Kel'Thuzad's Ashes to the Sunwell - |cff808080Defeat the Sunwell's Guardians (Completed)|r
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
BothRequirementsMet
  Events
    Time - Every 1.00 seconds of game time
  Conditions
    GuardiansDead Equal to True
    Or - Any (Conditions) are true
      Conditions
        And - All (Conditions) are true
          Conditions
            (SunwellCOP <gen> contains Arthas) Equal to True
            (Arthas has an item of type Urn of King Terenas) Equal to True
            (Arthas is alive) Equal to True
        And - All (Conditions) are true
          Conditions
            (SunwellCOP <gen> contains Falric) Equal to True
            (Falric has an item of type Urn of King Terenas) Equal to True
            (Falric is alive) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet RunnerActive = False
    Unit - Make Arthas Invulnerable
    Unit - Make Falric Invulnerable
    Trigger - Add BothRequirementsMetMessage <gen> to the trigger queue (Checking conditions)
BothRequirementsMetMessage
  Events
  Conditions
    GameOver Equal to False
  Actions
    Quest - Mark QuestReqSunwellArthas as Completed
    Quest - Display to (All players) the Quest Completed message: |cffffcc00MAIN QUEST COMPLETED|rThe Sunwell
    Wait Campaign quest delay seconds
    Trigger - Clear the trigger queue
    Trigger - Run TriggerExitCinematic <gen> (ignoring conditions)
Defeat Lose Buildings
  Events
    Time - Every 1.00 seconds of game time
  Conditions
    (Count structures controlled by Player 4 (Purple) (Include incomplete structures)) Equal to 0
    (Count structures controlled by Player 9 (Gray) (Include incomplete structures)) Equal to 0
    GargoyleCinematicRunning Equal to False
    SylvanasCinematicRunning Equal to False
    GameOver Equal to False
  Actions
    Set VariableSet GameOver = True
    Cinematic - Fade out over 2 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Quest - Display to (All players) the Quest Failed message: |cffffcc00MISSION FAILED|rAll of your buildings have been destroyed.
    Sound - Play SadMystery <gen>
    Wait 2 seconds
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Pause (Picked unit))
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Hide (Picked unit))
Extra Destroy Silvermoon
  Events
    Unit - A unit Dies
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Dying unit)) Equal to Player 3 (Teal)
        (Owner of (Dying unit)) Equal to Player 12 (Brown)
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Triggering unit)) Equal to High Elven Farm
        (Unit-type of (Triggering unit)) Equal to High Elven Barracks
        (Unit-type of (Triggering unit)) Equal to Arcane Sanctum
        (Unit-type of (Triggering unit)) Equal to Castle
        (Unit-type of (Triggering unit)) Equal to Altar of Kings
        (Unit-type of (Triggering unit)) Equal to Lumber Mill
        (Unit-type of (Triggering unit)) Equal to Blacksmith
    Extra Less than 40
  Actions
    Set VariableSet Extra = (Extra + 1)
Item Drop Bonuses
  Events
    Unit - A unit Dies
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Dying unit) Equal to Gnoll Overseer 0041 <gen>
        (Dying unit) Equal to Gnoll Overseer 0057 <gen>
        (Dying unit) Equal to Rock Golem 0062 <gen>
  Actions
    Set VariableSet BonusesFound = (BonusesFound + 1)
Custom Variables
  Events
    Map initialization
  Conditions
  Actions
    Game - Set Lock resource trading to On
    Set VariableSet MissionNumber = 25
    Set VariableSet SubquestsTotal = 2
    Set VariableSet BonusesTotal = 3
    Set VariableSet ExtraTotal = 40
    Set VariableSet TimeMin = 1200.00
    Set VariableSet TimeMax = 4800.00
    Set VariableSet TimeRange = (TimeMax - TimeMin)
    Set VariableSet ScoreBonuses = 25
    Set VariableSet ScoreExtra = 2
    Set VariableSet ScoreSubquests = 40
    Set VariableSet ScoreTime = 120
    Set VariableSet ScoreMax = ((SubquestsTotal x ScoreSubquests) + ((BonusesTotal x ScoreBonuses) + ((ExtraTotal x ScoreExtra) + ScoreTime)))
    Set VariableSet ScoreLimit[4] = (Integer((((Real(ScoreMax)) x 0.90) + 0.50)))
    Set VariableSet ScoreLimit[3] = (Integer((((Real(ScoreMax)) x 0.75) + 0.50)))
    Set VariableSet ScoreLimit[2] = (Integer((((Real(ScoreMax)) x 0.55) + 0.50)))
    Set VariableSet ScoreLimit[1] = (Integer((((Real(ScoreMax)) x 0.30) + 0.50)))
    -------- Items To be Saved --------
    Set VariableSet SaveLoad_Items[1] = Potion of Healing
    Set VariableSet SaveLoad_Items[2] = Potion of Greater Mana
    Set VariableSet SaveLoad_Items[3] = Scroll of Healing
    Set VariableSet SaveLoad_Items[4] = Potion of Greater Healing
    Set VariableSet SaveLoad_Items[5] = Ring of Protection +2
    Set VariableSet SaveLoad_Items[6] = Spider Ring
    Set VariableSet SaveLoad_Items[7] = Gauntlets of Ogre Strength +3
    Set VariableSet SaveLoad_Items[8] = Urn of King Terenas
    Set VariableSet SaveLoad_Items[9] = Pendant of Energy
    Set VariableSet SaveLoad_Items[10] = Voodoo Doll
    Set VariableSet SaveLoad_Items[11] = Claws of Attack +6
    Set VariableSet SaveLoad_Items[12] = Gloves of Haste
    Set VariableSet SaveLoad_Items[13] = Goblin Night Scope
    Set VariableSet SaveLoad_Items[14] = Urn of King Terenas
    Set VariableSet SaveLoad_Items[15] = Scroll of the Beast
    Set VariableSet SaveLoad_Items[16] = Health Stone
    Set VariableSet SaveLoad_Items[17] = Book of the Dead
    Set VariableSet SaveLoad_Items[18] = Scroll of Mana
    Set VariableSet SaveLoad_Items[19] = Potion of Mana
    Set VariableSet SaveLoad_Items[20] = Scroll of Protection
    Set VariableSet SaveLoad_Items[21] = Wand of Negation
    Set VariableSet SaveLoad_Items[22] = Scroll of Town Portal
    Set VariableSet SaveLoad_Items[23] = Slippers of Agility +3
    Set VariableSet SaveLoad_Items[24] = Hood of Cunning
    Set VariableSet SaveLoad_Items[25] = Ring of Regeneration
    Set VariableSet SaveLoad_Items_LastIndex = 25
    -------- Leave as is. Used to autocreate variables when copy & pasting to a new map --------
    Set VariableSet SaveLoad_Alphabet = ABCDEFGHIJKLMNPQRSTUVWXYZ123456789abcdefghijklmnopqrstuvwxyz
    Set VariableSet SaveLoad_CaseSensitive = True
    Set VariableSet SaveLoad_UsePlayername = False
    -------- Required: false --------
    Set VariableSet SaveLoad_Initialized = False
    Set VariableSet Code = AceHart
    Set VariableSet Save[1] = 0
    Set VariableSet SaveCount = 1
    Set VariableSet Validate = False
    Set VariableSet SaveLoad_Compress[1] = 0
    Set VariableSet SaveLoad_Uncompress[1] = 0
Timer Trigger
  Events
    Time - Every 1.00 seconds of game time
  Conditions
    Cinematic Equal to False
  Actions
    Set VariableSet TimeSecondsTotal = (TimeSecondsTotal + 1)
    Set VariableSet TimeSeconds = (TimeSeconds + 1)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TimeSeconds Greater than or equal to 60
      Then - Actions
        Set VariableSet TimeSeconds = (TimeSeconds - 60)
        Set VariableSet TimeMins = (TimeMins + 1)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TimeMins Greater than or equal to 60
      Then - Actions
        Set VariableSet TimeMins = (TimeMins - 60)
        Set VariableSet TimeHours = (TimeMins + 1)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TimeSeconds Less than 10
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TimeMins Less than 10
          Then - Actions
            Set VariableSet TimeTakenString = ((((String(TimeHours)) + :0) + (String(TimeMins))) + (:0 + (String(TimeSeconds))))
          Else - Actions
            Set VariableSet TimeTakenString = ((((String(TimeHours)) + :) + (String(TimeMins))) + (:0 + (String(TimeSeconds))))
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TimeMins Less than 10
          Then - Actions
            Set VariableSet TimeTakenString = ((((String(TimeHours)) + :0) + (String(TimeMins))) + (: + (String(TimeSeconds))))
          Else - Actions
            Set VariableSet TimeTakenString = ((((String(TimeHours)) + :) + (String(TimeMins))) + (: + (String(TimeSeconds))))
Setup Insane
  Events
  Conditions
  Actions
    Set VariableSet MissionNumber = 35
    For each (Integer A) from 2 to 12, 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
                (Integer A) Equal to 2
                (Integer A) Equal to 3
                (Integer A) Equal to 5
                (Integer A) Equal to 6
                (Integer A) Equal to 7
                (Integer A) Equal to 11
                (Integer A) Equal to 12
          Then - Actions
            Player - Set the max research level of Rhde (techcode) to 1 for (Player((Integer A)))
            Player - Set the max research level of Rhme (techcode) to 3 for (Player((Integer A)))
            Player - Set the max research level of Rhar (techcode) to 3 for (Player((Integer A)))
            Player - Set the max research level of Rhla (techcode) to 3 for (Player((Integer A)))
            Player - Set the max research level of Rhpt (techcode) to 2 for (Player((Integer A)))
            Player - Set the max research level of Rhst (techcode) to 2 for (Player((Integer A)))
            Player - Set the max research level of Resm (techcode) to 3 for (Player((Integer A)))
            Player - Set the max research level of Rema (techcode) to 3 for (Player((Integer A)))
            Player - Set the max research level of Repb (techcode) to 1 for (Player((Integer A)))
            Player - Set the max research level of Rhan (techcode) to 1 for (Player((Integer A)))
            Player - Set the max research level of Rhac (techcode) to 2 for (Player((Integer A)))
            Player - Set the current research level of Rhde (techcode) to 1 for (Player((Integer A)))
            Player - Set the current research level of Rhme (techcode) to 3 for (Player((Integer A)))
            Player - Set the current research level of Rhar (techcode) to 3 for (Player((Integer A)))
            Player - Set the current research level of Rhla (techcode) to 3 for (Player((Integer A)))
            Player - Set the current research level of Rhac (techcode) to 2 for (Player((Integer A)))
            Player - Set the current research level of Rhpt (techcode) to 2 for (Player((Integer A)))
            Player - Set the current research level of Rhst (techcode) to 2 for (Player((Integer A)))
            Player - Set the current research level of Resm (techcode) to 3 for (Player((Integer A)))
            Player - Set the current research level of Rema (techcode) to 3 for (Player((Integer A)))
            Player - Set the current research level of Repb (techcode) to 1 for (Player((Integer A)))
            Player - Set the current research level of Rhan (techcode) to 1 for (Player((Integer A)))
          Else - Actions
    Unit - Replace Granite Golem 0134 <gen> with a Phoenix Guardian using The old unit's relative life and mana
    Unit Group - Add (Last replaced unit) to GuardianGroup
    Unit - Replace Granite Golem 0049 <gen> with a Phoenix Guardian using The old unit's relative life and mana
    Unit Group - Add (Last replaced unit) to GuardianGroup
    Unit - Replace Granite Golem 0135 <gen> with a Phoenix Guardian using The old unit's relative life and mana
    Unit Group - Add (Last replaced unit) to GuardianGroup
    Unit - Replace Granite Golem 0136 <gen> with a Phoenix Guardian using The old unit's relative life and mana
    Unit Group - Add (Last replaced unit) to GuardianGroup
    Unit Group - Add |cffff9900Hallowed Phoenix Guardian|r 0186 <gen> to GuardianGroup
    Unit - Replace Halls of the Dead 0122 <gen> with a Necropolis using The old unit's relative life and mana
    Set VariableSet TempPoint = (Position of (Last replaced unit))
    Unit - Create 1.Lumber Dummy 1 for Player 9 (Gray) at TempPoint facing Default building facing degrees
    Set VariableSet x = (X of TempPoint)
    Set VariableSet y = (Y of TempPoint)
    Custom script: call SetUnitX(GetLastCreatedUnit(), udg_x)
    Custom script: call SetUnitY(GetLastCreatedUnit(), udg_y)
    Unit - Turn collision for (Last created unit) Off.
    Set VariableSet TempUGroup = (Units in (Playable map area) matching ((Matching unit) Equal to (Last replaced unit)))
    Unit Group - Pick every unit in TempUGroup and do (Actions)
      Loop - Actions
        Hashtable - Save Handle Of(Last created unit) as 0 of (Key (Picked unit).) in (Last created hashtable).
    Custom script: call DestroyGroup (udg_TempUGroup)
    Custom script: call RemoveLocation (udg_TempPoint)
    Unit Group - Add (Last replaced unit) to ResourceDropBuildings
    Unit - Replace Halls of the Dead 0042 <gen> with a Necropolis using The old unit's relative life and mana
    Set VariableSet TempPoint = (Position of (Last replaced unit))
    Unit - Create 1.Lumber Dummy 1 for Player 4 (Purple) at TempPoint facing Default building facing degrees
    Set VariableSet x = (X of TempPoint)
    Set VariableSet y = (Y of TempPoint)
    Custom script: call SetUnitX(GetLastCreatedUnit(), udg_x)
    Custom script: call SetUnitY(GetLastCreatedUnit(), udg_y)
    Unit - Turn collision for (Last created unit) Off.
    Set VariableSet TempUGroup = (Units in (Playable map area) matching ((Matching unit) Equal to (Last replaced unit)))
    Unit Group - Pick every unit in TempUGroup and do (Actions)
      Loop - Actions
        Hashtable - Save Handle Of(Last created unit) as 0 of (Key (Picked unit).) in (Last created hashtable).
    Custom script: call DestroyGroup (udg_TempUGroup)
    Custom script: call RemoveLocation (udg_TempPoint)
    Unit Group - Add (Last replaced unit) to ResourceDropBuildings
    Set VariableSet RequirementTech[2] = False
    Unit - Remove RequirementUnitP1[2] from the game
    Unit - Remove RequirementUnitP2[2] from the game
Phoenix Patrol A1
  Events
    Unit - A unit enters Phoenix_Patrol_1B <gen>
  Conditions
    (Triggering unit) Equal to Phoenix Guardian 0183 <gen>
  Actions
    Wait 1.00 seconds
    Unit - Order Phoenix Guardian 0183 <gen> to Attack-Move To.(Center of Phoenix_Patrol_1A <gen>)
Phoenix Patrol A2
  Events
    Unit - A unit enters Phoenix_Patrol_1A <gen>
  Conditions
    (Triggering unit) Equal to Phoenix Guardian 0183 <gen>
  Actions
    Wait 1.00 seconds
    Unit - Order Phoenix Guardian 0183 <gen> to Attack-Move To.(Center of Phoenix_Patrol_1B <gen>)
Phoenix Patrol B1
  Events
    Unit - A unit enters Phoenix_Patrol_2B <gen>
  Conditions
    (Triggering unit) Equal to Phoenix Guardian 0184 <gen>
  Actions
    Wait 1.00 seconds
    Unit - Order Phoenix Guardian 0184 <gen> to Attack-Move To.(Center of Phoenix_Patrol_2A <gen>)
Phoenix Patrol B2
  Events
    Unit - A unit enters Phoenix_Patrol_2A <gen>
  Conditions
    (Triggering unit) Equal to Phoenix Guardian 0184 <gen>
  Actions
    Wait 1.00 seconds
    Unit - Order Phoenix Guardian 0184 <gen> to Attack-Move To.(Center of Phoenix_Patrol_2B <gen>)
Phoenix Patrol C1
  Events
    Unit - A unit enters Phoenix_Patrol_3B <gen>
  Conditions
    (Triggering unit) Equal to Phoenix Guardian 0185 <gen>
  Actions
    Wait 1.00 seconds
    Unit - Order Phoenix Guardian 0185 <gen> to Attack-Move To.(Center of Phoenix_Patrol_3A <gen>)
Phoenix Patrol C2
  Events
    Unit - A unit enters Phoenix_Patrol_3A <gen>
  Conditions
    (Triggering unit) Equal to Phoenix Guardian 0185 <gen>
  Actions
    Wait 1.00 seconds
    Unit - Order Phoenix Guardian 0185 <gen> to Attack-Move To.(Center of Phoenix_Patrol_3B <gen>)
Phoenix Add
  Events
    Unit - A unit enters Region_086 <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Triggering unit)) Equal to Phoenix Spawn
        (Unit-type of (Triggering unit)) Equal to Phoenix Guardian
  Actions
    Unit Group - Add (Triggering unit) to GuardianGroup
Init Gametext
  Events
    Map initialization
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Player 4 (Purple) controller) Equal to User
        (Player 9 (Gray) controller) Equal to User
        (Player 4 (Purple) slot status) Equal to Is playing
        (Player 9 (Gray) slot status) Equal to Is playing
      Then - Actions
        Set VariableSet EnoughPlayers = True
        Trigger - Run Startgame_Text <gen> (ignoring conditions)
      Else - Actions
        Trigger - Run Startgame_Text_3 <gen> (ignoring conditions)
Skip Cinematic
  Events
    Player - Player 4 (Purple) skips a cinematic sequence
    Player - Player 9 (Gray) skips a cinematic sequence
  Conditions
    Cinematic Equal to True
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 4 (Purple)
        SkipVote1 Equal to False
        SkipVote2 Equal to False
      Then - Actions
        Set VariableSet SkipVote1 = True
        Game - Display to (All players) the text: ((Name of Player 4 (Purple)) + wishes to skip the cinematic.)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 9 (Gray)
        SkipVote1 Equal to False
        SkipVote2 Equal to False
      Then - Actions
        Set VariableSet SkipVote2 = True
        Game - Display to (All players) the text: ((Name of Player 9 (Gray)) + wishes to skip the cinematic.)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 4 (Purple)
        SkipVote1 Equal to False
        SkipVote2 Equal to True
      Then - Actions
        Set VariableSet SkipVote1 = True
        Trigger - Turn off (This trigger)
        Game - Display to (All players) the text: Cinematic was skipped.
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (IntroCinematicEscape <gen> is on) Equal to True
          Then - Actions
            Trigger - Run IntroCinematicEscape <gen> (checking conditions)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (GargoyleCinematicEscape <gen> is on) Equal to True
          Then - Actions
            Trigger - Run GargoyleCinematicEscape <gen> (checking conditions)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (SylvanasCinematicEscape <gen> is on) Equal to True
          Then - Actions
            Trigger - Run SylvanasCinematicEscape <gen> (checking conditions)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (ExitCinematicEscape <gen> is on) Equal to True
          Then - Actions
            Trigger - Run ExitCinematicEscape <gen> (checking conditions)
          Else - Actions
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 9 (Gray)
        SkipVote1 Equal to True
        SkipVote2 Equal to False
      Then - Actions
        Set VariableSet SkipVote1 = True
        Trigger - Turn off (This trigger)
        Game - Display to (All players) the text: Cinematic was skipped.
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (IntroCinematicEscape <gen> is on) Equal to True
          Then - Actions
            Trigger - Run IntroCinematicEscape <gen> (checking conditions)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (GargoyleCinematicEscape <gen> is on) Equal to True
          Then - Actions
            Trigger - Run GargoyleCinematicEscape <gen> (checking conditions)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (SylvanasCinematicEscape <gen> is on) Equal to True
          Then - Actions
            Trigger - Run SylvanasCinematicEscape <gen> (checking conditions)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (ExitCinematicEscape <gen> is on) Equal to True
          Then - Actions
            Trigger - Run ExitCinematicEscape <gen> (checking conditions)
          Else - Actions
      Else - Actions
Leaves Game
  Events
    Player - Player 4 (Purple) leaves the game
    Player - Player 9 (Gray) leaves the game
  Conditions
  Actions
    Game - Display to (All players) the text: ((Name of (Triggering player)) + has left the game.)
    Sound - Play CreepAggroWhat1 <gen>
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        GameSelection Equal to True
      Then - Actions
        Set VariableSet EnoughPlayers = False
        Cinematic - Clear the screen of text messages for (All players).
        Sound - Play QuestLog <gen>
        Trigger - Run Startgame_Text_3 <gen> (checking conditions)
      Else - Actions
Endgame Text
  Events
  Conditions
  Actions
    Sound - Play ClanInvitation <gen>
    Set VariableSet CampaignScore = (CampaignScore + (SubquestsComplete x ScoreSubquests))
    Set VariableSet CampaignScore = (CampaignScore + (BonusesFound x ScoreBonuses))
    Set VariableSet CampaignScore = (CampaignScore + (Extra x ScoreExtra))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TimeSecondsTotal Less than or equal to (Integer(TimeMin))
      Then - Actions
        Set VariableSet CampaignScore = (CampaignScore + ScoreTime)
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TimeSecondsTotal Greater than or equal to (Integer(TimeMax))
          Then - Actions
          Else - Actions
            Set VariableSet CampaignScore = (CampaignScore + (Integer((((Real(ScoreTime)) - (((Real(ScoreTime)) / TimeRange) x ((Real(TimeSecondsTotal)) - TimeMin))) + 0.50))))
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item carried by Hero1 in slot (Integer A)) Not equal to No item
          Then - Actions
            Set VariableSet FinalInventory[(Integer A)] = ((Name of (Item carried by Hero1 in slot (Integer A))) + , )
          Else - Actions
            Set VariableSet FinalInventory[(Integer A)] =
    For each (Integer A) from 7 to 12, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item carried by Hero2 in slot ((Integer A) - 6)) Not equal to No item
          Then - Actions
            Set VariableSet FinalInventory[(Integer A)] = ((Name of (Item carried by Hero2 in slot ((Integer A) - 6))) + , )
          Else - Actions
            Set VariableSet FinalInventory[(Integer A)] =
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        CampaignScore Greater than or equal to ScoreLimit[1]
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            CampaignScore Greater than or equal to ScoreLimit[2]
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                CampaignScore Greater than or equal to ScoreLimit[3]
              Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    CampaignScore Greater than or equal to ScoreLimit[4]
                  Then - Actions
                    Set VariableSet FinalRank = |cff00ff00A|r
                    Set VariableSet RankInteger = 5
                  Else - Actions
                    Set VariableSet FinalRank = |cffccff00B|r
                    Set VariableSet RankInteger = 4
              Else - Actions
                Set VariableSet FinalRank = |cffffff00C|r
                Set VariableSet RankInteger = 3
          Else - Actions
            Set VariableSet FinalRank = |cffff0000D|r
            Set VariableSet RankInteger = 2
      Else - Actions
        Set VariableSet FinalRank = |cff990000E|r
        Set VariableSet RankInteger = 1
    Set VariableSet SaveLoad_TotalTime = (SaveLoad_TotalTime + TimeSecondsTotal)
    Set VariableSet Save[1] = MissionNumber
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        SumRank Greater than or equal to 1
      Then - Actions
        Set VariableSet Save[2] = (SumRank + RankInteger)
      Else - Actions
        Set VariableSet Save[2] = 0
    Set VariableSet Save[3] = (Level of Death Coil for Hero1)
    Set VariableSet Save[4] = (Level of Death Pact for Hero1)
    Set VariableSet Save[5] = (Level of Unholy Aura for Hero1)
    Set VariableSet Save[6] = (Level of Animate Dead for Hero1)
    Set VariableSet Save[7] = (Level of Tainted Blow for Hero2)
    Set VariableSet Save[8] = (Level of Blood Pledge for Hero2)
    Set VariableSet Save[9] = (Level of Runebreak for Hero2)
    Set VariableSet Save[10] = (Level of Call of the Departed for Hero2)
    Set VariableSet SaveCount = 11
    Set VariableSet Save[SaveCount] = (Number of items carried by Hero1)
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Item carried by Hero1 in slot (Integer A)) is owned) Equal to True
          Then - Actions
            Set VariableSet SaveCount = (SaveCount + 1)
            Set VariableSet TempItem = (Item carried by Hero1 in slot (Integer A))
            Custom script: set udg_Save[udg_SaveCount] = SaveLoad_Item2Integer( udg_TempItem )
            Set VariableSet SaveCount = (SaveCount + 1)
            Set VariableSet Save[SaveCount] = (Charges remaining in (Item carried by Hero1 in slot (Integer A)))
          Else - Actions
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = (Number of items carried by Hero2)
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Item carried by Hero2 in slot (Integer A)) is owned) Equal to True
          Then - Actions
            Set VariableSet SaveCount = (SaveCount + 1)
            Set VariableSet TempItem = (Item carried by Hero2 in slot (Integer A))
            Custom script: set udg_Save[udg_SaveCount] = SaveLoad_Item2Integer( udg_TempItem )
            Set VariableSet SaveCount = (SaveCount + 1)
            Set VariableSet Save[SaveCount] = (Charges remaining in (Item carried by Hero2 in slot (Integer A)))
          Else - Actions
    Custom script: set udg_Code = SaveLoad_Encode()
    Game - Display to (All players) for 600.00 seconds the text: |cff7733aa-= UNDEAD CHAPTER 5 COMPLETED =-|r
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00Rank: |r + FinalRank)
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00Score: |r + (String(CampaignScore)))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        Game - Display to (All players) for 600.00 seconds the text: |cffffcc00Difficulty: |rInsane
      Else - Actions
        Game - Display to (All players) for 600.00 seconds the text: |cffffcc00Difficulty: |rNormal
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00Time Taken:|r + TimeTakenString)
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00Subquest Completed:|r + ((String(SubquestsComplete)) + ( / + (String(SubquestsTotal)))))
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00Bonuses Found:|r + ((String(BonusesFound)) + ( / + (String(BonusesTotal)))))
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00EXTRA - Silvermoon Destroyed:|r + ((String(Extra)) + ( / + (String(ExtraTotal)))))
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00Player 1's Inventory:|r + (FinalInventory[1] + (FinalInventory[2] + (FinalInventory[3] + (FinalInventory[4] + (FinalInventory[5] + FinalInventory[6]))))))
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00Player 2's Inventory:|r + (FinalInventory[7] + (FinalInventory[8] + (FinalInventory[9] + (FinalInventory[10] + (FinalInventory[11] + FinalInventory[12]))))))
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00Save Code:|r + Code)
Startgame Text
  Events
    Player - Player 4 (Purple) types a chat message containing -normal (stringnoformat) as An exact match
    Player - Player 9 (Gray) types a chat message containing -normal (stringnoformat) as An exact match
  Conditions
    INSANEMODE Equal to True
    GameSelection Equal to True
  Actions
    Cinematic - Clear the screen of text messages for (All players).
    Sound - Play QuestLog <gen>
    Game - Display to (All players) for 600.00 seconds the text: |cff7733aa-= UNDEAD CHAPTER 5=-|r
    Game - Display to (All players) for 600.00 seconds the text: The Fall of Silvermoon
    Game - Display to (All players) for 600.00 seconds the text:
    Game - Display to (All players) for 600.00 seconds the text: Type '-load' and your code you obtained from the previous chapter.
    Game - Display to (All players) for 600.00 seconds the text:
    Game - Display to (All players) for 600.00 seconds the text: Alternatively, both players type '-new' if you do not have a code.
    Game - Display to (All players) for 600.00 seconds the text: New game is at Normal difficulty. Type '-insane' to play at a higher difficulty.
    Set VariableSet INSANEMODE = False
Startgame Text 2
  Events
    Player - Player 4 (Purple) types a chat message containing -insane (stringnoformat) as An exact match
    Player - Player 9 (Gray) types a chat message containing -insane (stringnoformat) as An exact match
  Conditions
    INSANEMODE Equal to False
    GameSelection Equal to True
  Actions
    Cinematic - Clear the screen of text messages for (All players).
    Sound - Play QuestLog <gen>
    Game - Display to (All players) for 600.00 seconds the text: |cff7733aa-= UNDEAD CHAPTER 5=-|r
    Game - Display to (All players) for 600.00 seconds the text: The Fall of Silvermoon
    Game - Display to (All players) for 600.00 seconds the text:
    Game - Display to (All players) for 600.00 seconds the text: Type '-load' and your code you obtained from the previous chapter.
    Game - Display to (All players) for 600.00 seconds the text:
    Game - Display to (All players) for 600.00 seconds the text: Alternatively, both players type '-new' if you do not have a code.
    Game - Display to (All players) for 600.00 seconds the text: New game is at Insane difficulty. Type '-normal' to play at a lower difficulty.
    Set VariableSet INSANEMODE = True
Startgame Text 3
  Events
  Conditions
  Actions
    Game - Display to (All players) for 600.00 seconds the text: |cff7733aa-= UNDEAD CHAPTER 5=-|r
    Game - Display to (All players) for 600.00 seconds the text: The Fall of Silvermoon
    Game - Display to (All players) for 600.00 seconds the text:
    Game - Display to (All players) for 600.00 seconds the text: Not enough players have been detected ingame.
    Game - Display to (All players) for 600.00 seconds the text: Atleast 2 players are required to begin the map.
Startgame New
  Events
    Player - Player 4 (Purple) types a chat message containing -new (stringnoformat) as An exact match
    Player - Player 9 (Gray) types a chat message containing -new (stringnoformat) as An exact match
  Conditions
    GameSelection Equal to True
    EnoughPlayers Equal to True
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 4 (Purple)
        NewVote1 Equal to False
        NewVote2 Equal to False
      Then - Actions
        Set VariableSet NewVote1 = True
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 9 (Gray)
        NewVote1 Equal to False
        NewVote2 Equal to False
      Then - Actions
        Set VariableSet NewVote2 = True
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 4 (Purple)
        NewVote1 Equal to False
        NewVote2 Equal to True
      Then - Actions
        Cinematic - Clear the screen of text messages for (All players).
        Set VariableSet NewVote1 = True
        Set VariableSet GameSelection = False
        Sound - Play GoodJob <gen>
        Hero - Learn skill for Hero1: Undead Death Knight - Death Coil
        Hero - Learn skill for Hero1: Undead Death Knight - Death Coil
        Hero - Learn skill for Hero1: Undead Death Knight - Unholy Aura
        Hero - Learn skill for Hero1: Undead Death Knight - Unholy Aura
        Hero - Learn skill for Hero1: Undead Death Knight - Death Pact
        Hero - Learn skill for Hero2: Tainted Blow
        Hero - Learn skill for Hero2: Tainted Blow
        Hero - Learn skill for Hero2: Blood Pledge
        Hero - Learn skill for Hero2: Runebreak
        Hero - Learn skill for Hero2: Runebreak
        Hero - Create Urn of King Terenas and give it to Arthas
        Item - Make (Last created item) Undroppable
        Wait 1.00 seconds
        Trigger - Run StartInitializationSequence <gen> (checking conditions)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            INSANEMODE Equal to True
          Then - Actions
            Trigger - Run Setup_Insane <gen> (checking conditions)
          Else - Actions
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 9 (Gray)
        NewVote1 Equal to True
        NewVote2 Equal to False
      Then - Actions
        Cinematic - Clear the screen of text messages for (All players).
        Set VariableSet NewVote2 = True
        Set VariableSet GameSelection = False
        Sound - Play GoodJob <gen>
        Hero - Learn skill for Hero1: Undead Death Knight - Death Coil
        Hero - Learn skill for Hero1: Undead Death Knight - Death Coil
        Hero - Learn skill for Hero1: Undead Death Knight - Unholy Aura
        Hero - Learn skill for Hero1: Undead Death Knight - Unholy Aura
        Hero - Learn skill for Hero1: Undead Death Knight - Death Pact
        Hero - Learn skill for Hero2: Tainted Blow
        Hero - Learn skill for Hero2: Tainted Blow
        Hero - Learn skill for Hero2: Blood Pledge
        Hero - Learn skill for Hero2: Runebreak
        Hero - Learn skill for Hero2: Runebreak
        Hero - Create Urn of King Terenas and give it to Arthas
        Item - Make (Last created item) Undroppable
        Wait 1.00 seconds
        Trigger - Run StartInitializationSequence <gen> (checking conditions)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            INSANEMODE Equal to True
          Then - Actions
            Trigger - Run Setup_Insane <gen> (checking conditions)
          Else - Actions
      Else - Actions
Startgame Load
  Events
    Player - Player 4 (Purple) types a chat message containing -load (stringnoformat) as A substring