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

UndeadX08.w3x
Variables
Initialization
Initialization
Init 01 Players
Init 02 Units
Init 03 Music
Init 04 Environment
Init 05 Quests
Init 06a Hard
Init 06b Normal
Init 07 Regions to Points
Load Heroes
Load Heroes
Load Gold
Create Arthas
Create Anubarak
Load Default Arthas
Load Default Anubarak
Experience Cap Arthas
Experience Cap Anubarak
Cinematic Revival
IZZZZZZZZZZZZI
Intro Cinematic
Intro Cinematic Q
Intro Skipped
Intro Setup
Intro Cleanup
Gameplay
Victory Cinematic
Victory Cinematic Q
Victory Skipped
Victory Setup
IZZZZZZZZZZZZI
VoiceOvers
Voiceover Obelisk Illidan Reactivate Dialogue
Voiceover Obelisk Illidan Reactivate Dialogue Q
Voiceover Obelisk Illidan This is Mine Dialogue
Voiceover Obelisk Illidan This is Mine Dialogue Q
Voiceover Obelisk First Illidan Dialogue 01
Voiceover Obelisk First Illidan Dialogue 01 Q
Voiceover Obelisk Illidan Activate Dialogue 01
Voiceover Obelisk Illidan Activate Dialogue 01 Q
Voiceover Obelisk Illidan Activate Dialogue Hello
Voiceover Obelisk Illidan Activate Dialogue Hello Q
Voiceover Obelisk Illidan Activate Dialogue Upper hand
Voiceover Obelisk Illidan Activate Dialogue Upper hand Q
Voiceover Obelisk Illidan Small Patch of Ground Q
Voiceover Kael Dialogue
Voiceover Kael Dialogue Q
Voiceover Obelisk First Arthas Dialogue 01
Voiceover Obelisk First Arthas Dialogue 01 Q
Voiceover Obelisk Third Arthas Dialogue
Voiceover Obelisk Third Arthas Dialogue Q
Voiceover Obelisk Second Arthas Dialogue
Voiceover Obelisk Second Arthas Dialogue Q
Voiceover Obelisk Arthas Activate Dialogue 01
Voiceover Obelisk Arthas Activate Dialogue 01 Q
Voiceover Obelisk Attacking the Obelisk
Voiceover Obelisk Attacking the Obelisk Q
Voiceover Arthas Kael Stole Jaina from you
Voiceover Arthas Kael Stole Jaina from you Q
Tracking Illidan Obelisks for Voiceovers
Tracking Arthas Obelisks for Voiceovers
Illidan First Leaves Home
Illidan Leaves Home
Illidan within COP Area
Illidan Move to COP01 circle
Illidan Move to COP02 circle
Illidan Move to COP03 circle
Illidan Move to COP04 circle
Arthas Vulnerability Summoning Damage
Arthas Damaged Event Registration
Arthas Damaged
Arthas Builds at COP Alerting Illidan
Arthas builds at COP 01
Arthas builds at COP 02
Arthas builds at COP 03
Arthas builds at COP 04
Obelisks Arthas
Obelisk 01 Arthas
Obelisk 02 Arthas
Obelisk 03 Arthas
Obelisk 04 Arthas
Obelisk 01 Timer Arthas
Obelisk 02 Timer Arthas
Obelisk 03 Timer Arthas
Obelisk 04 Timer Arthas
Obelisk 01 Arthas Timer Expires
Obelisk 02 Arthas Timer Expires
Obelisk 03 Arthas Timer Expires
Obelisk 04 Arthas Timer Expires
Obelisks Arthas All Complete
Arthas dies while summoning
Arthas Special Effect
Arthas Effect Start
Arthas Effect Stop
Arthas Effect Pulse
Arthas Effect Create
Arthas Effect Destroy
Illidan Special Effect
Illidan Effect Start
Illidan Effect Stop
Illidan Effect Pulse
Illidan Effect Create
Illidan Effect Destroy
Patrols
Obelisk04 Patrol
Obelisks Illidan
Obelisk 01 Illidan
Obelisk 02 Illidan
Obelisk 03 Illidan
Obelisk 04 Illidan
Obelisk 01Timer Illidan
Obelisk 02Timer Illidan
Obelisk 03Timer Illidan
Obelisk 04Timer Illidan
Obelisk 01 Illidan Timer Expires
Obelisk 02 Illidan Timer Expires
Obelisk 03 Illidan Timer Expires
Obelisk 04 Illidan Timer Expires
Obelisks Illidan All Complete
Illidan dies while summoning
Obelisk 01 Illidan Slave Check
Obelisk 02 Illidan Slave Check
Obelisk 03 Illidan Slave Check
Obelisk 04 Illidan Slave Check
Obelisks Setup
Obelisks Setup
Obelisk AI Towns
COP Town 01 Green Dies
COP Town 02 Pink Dies
COP Town 03 Grey Dies
COP Town 04 Light Blue Dies
COP Town 01 Unit Group
COP Town 02 Unit Group
COP Town 03 Unit Group
COP Town 04 Unit Group
Patch of Ground Dialogue
Patch of Ground Set COP 01
Patch of Ground Lost COP 01
Patch of Ground Set COP 02
Patch of Ground Lost COP 02
Patch of Ground Set COP 03
Patch of Ground Lost COP 03
Patch of Ground Set COP 04
Patch of Ground Lost COP 04
Quests
Obelisk Found Q
Quest Obelisk Create
Quest Obelisk Discover
Quest Obelisk Completed
----- Mission Failed -----
Mission Failed Obelisks Lost
Mission Failed All units lost
Mission Failed All buildings dead
Mission Failed Arthas Permanently Dead
Quake Damage
Earthquake
Damage Buildings AI Setup
Damage Buildings Setup P01
Damage Buildings Setup P02
Damage Buildings Setup P07
Damage Buildings Setup P08
Damage Buildings Setup P09
Damage Buildings Setup P10
Damage Buildings
Quakes
Quake Timer Start
Quake Shake
Quake Event
Leaderboards
Leaderboard Create
Leaderboard Update
Hints
Hint Sacrificial Skull Activate
Hint Sacrificial Skull Q
Warning Illidan Obelisk
Level Data
Next Level Run
AI
Start AI
AI Resources Red Gold
AI Resources Red Lumber
AI Resources Blue Gold
AI Resources Blue Lumber
AI Resources Teal Gold
AI Resources Teal Lumber
AI Resources Yellow Gold
AI Resources Yellow Lumber
AI Resources Orange Gold
AI Resources Orange Lumber
AI Resources Green Gold
AI Resources Green Lumber
AI Resources Pink Gold
AI Resources Pink Lumber
AI Resources Grey Gold
AI Resources Grey Lumber
AI Resources Light Blue Gold
AI Resources Light Blue Lumber
AI COP 01 Units Dead
AI COP 02 Units Dead
AI COP 03 Units Dead
AI COP 04 Units Dead
AI COP 01 Lost
AI COP 02 Lost
AI COP 03 Lost
AI COP 04 Lost
AI COP Stepped On
AI COP 01 Gained
AI COP 02 Gained
AI COP 03 Gained
AI COP 04 Gained
Naga_AI_Upgrades
AttackUpgrade1
AttackUpgrade2
AttackUpgrade3
ArmorUpgrade1
ArmorUpgrade2
ArmorUpgrade3
EnsnareUpgrade
AbolishMagicUpgrade
NagaSirenUpgrade01
NagaSirenUpgrade02
IZZZZZZZZZZZZI
Obelisk Map Icon
Change the Icon
Combat Check
Combat Detected
Combat Resolved
Victory Defeat
Victory All Obelisks
Defeat Units Dead
Defeat All Buildings Dead
Defeat Arthas Permanently Dead
Defeat Obelisks Lost
Enable Additional Defeats
Acolyte Death Safety
Initial Acolytes All Dead
Initial Acolytes All Dead Q
Player Sharing Triggers
SetDifficulty
DifficultySelected
ConvertPlayerUnits
UpdateFoodUsage
UpdateResourcesGold
UpdateResourcesLumber
HeroDies
HeroRevives
HiringUnits
ScrollTownPortalStart
ScrollTownPortalEnd
PlayerLeavesGame
Game Cache Triggers
SetCacheVariables
LoadHeroesText
PreplaceItemsLoad
StartGame
LoadGame
NewGame
Satchet Triggers
MoveSatchets
BackpackDropItems
SatchetLevelGain
SatchetHeroDies
SatchetHeroRevives
function SaveLoad_InitialSetup takes nothing returns nothing
    local integer i = 0
    local integer j = 0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    set m = 0

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

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

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

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

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

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

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

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

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

function CreateTextFile takes string Code returns nothing
    call PreloadGenClear()
    call PreloadGenStart()
    
    // The line below creates the log
    call Preload("load " + Code)
    
    // The line below creates the file at the specified location
    call PreloadGenEnd(udg_TextFileName + ".txt")
endfunction
Name Type Is Array Initial Value
Anubarak unit No
AP04_Arthas player No Player03
AP11_SharedPlayer player No Player10
AP12_Anubarak player No Player11
APG1_Player force No
Arthas unit No
ArthasEffect effect No
ArthasEffectExists boolean No
ArthasEffectOn boolean No
ArthasEffectTimer timer No
ArthasInventory string No
ArthasSummoning boolean No
ArthasTakesDamageAmount real No
Beetle01 unit No
Beetle02 unit No
BonusGold integer No
CharmedUnit unit No
ChooseDifficulty dialog No
Code string No
CodeError boolean No
CombatCheckTimer timer No
ConstructedStructure boolean No
COP01Buddies group No
COP01IllidanAttackGroup group No
COP01IllidanSummoning unit No
COP01UnitGroup group No
COP02IllidanAttackGroup_Copy group No
COP02IllidanSummoning unit No
COP02UnitGroup group No
COP03IllidanAttackGroup group No
COP03IllidanSummoning unit No
COP03UnitGroup group No
COP04IllidanAttackGroup group No
COP04IllidanSummoning unit No
COP04UnitGroup group No
DamagedBuildingsGroup group No
DialogueArthasActivate01 boolean No
DialogueFirstArthas01 boolean No
DialogueFirstIllidan01 boolean No
DialogueIIllidanActivate01 boolean No
DialogueIllidanMine boolean No
DialogueIllidanReactivate boolean No
DialogueSecondArthas boolean No
DialogueThirdArthas boolean No
ExpDisabledForAnub boolean No
ExpDisabledForArthas boolean No
FurionReturnSpot location No
GameOver boolean No
GameSelection boolean No
Hard boolean No
HardB button No
HeroToRevive unit No
HiddenUnits group No
Illidan unit No
Illidan02 unit No
Illidan03 unit No
IllidanEffect effect No
IllidanEffectExists boolean No
IllidanEffectOn boolean No
IllidanEffectTimer timer No
IllidanSummoning boolean No
InCinematic boolean No
InCombat boolean No
IntroSkipped boolean No
Kael unit No
Kelthuzad unit No
KelthuzadInventory string No
LadyVashj unit No
LeaderboardObelisks leaderboard No
NormalB button No
Obelisk01 unit No
Obelisk01ArthasOwned boolean No
Obelisk01IllidanOwned boolean No
Obelisk02 unit No
Obelisk02ArthasOwned boolean No
Obelisk02IllidanOwned boolean No
Obelisk03 unit No
Obelisk03ArthasOwned boolean No
Obelisk03IllidanOwned boolean No
Obelisk04 unit No
Obelisk04ArthasOwned boolean No
Obelisk04IllidanOwned boolean No
ObeliskArthasCount integer No 0
ObeliskBusyForArthas01 boolean No
ObeliskBusyForArthas02 boolean No
ObeliskBusyForArthas03 boolean No
ObeliskBusyForArthas04 boolean No
ObeliskBusyForIllidan01 boolean No
ObeliskBusyForIllidan02 boolean No
ObeliskBusyForIllidan03 boolean No
ObeliskBusyForIllidan04 boolean No
ObeliskIllidanCount integer No 0
P02_IllidanMainBase player No Player01
P03_LadyVashj player No Player02
P04_Kael player No Player00
P05_IllidanDefense player No Player04
P06_IllidanDefendOnlyBase player No Player05
P07_COP_01 player No Player06
P08_COP_02 player No Player07
P09_COP_03 player No Player08
P10_COP_04 player No Player09
PlayerOneManualsClaimed integer No
PlayerTwoManualsClaimed integer No
PointCOP01SpawnSlave location No
PointCOP02SpawnSlave location No
PointCOP03SpawnSlave location No
PointCOP04SpawnSlave location No
PointObelisk01 location No
PointObelisk02 location No
PointObelisk03 location No
PointObelisk04 location No
QuakeTimer timer No
QuestGold0Req questitem No
QuestObeliskReq questitem No
QuestObelisks quest No
QuestStopIllidanReq questitem No
RevivalAltar unit No
RevivalHero unit No
RevivalReturnSpot location No
RevivalSpot location No
Satchet01 unit No
Satchet02 unit No
SatchetPosition location No
Save integer Yes
SaveCount integer No
SaveLoad_Abilities abilcode Yes
SaveLoad_Abilities_LastIndex integer No
SaveLoad_Alphabet string No
SaveLoad_CaseSensitive boolean No
SaveLoad_Compress integer Yes
SaveLoad_Heroes unitcode Yes
SaveLoad_Heroes_LastIndex integer No
SaveLoad_Initialized boolean No false
SaveLoad_Items itemcode Yes
SaveLoad_Items_LastIndex integer No
SaveLoad_Uncompress integer Yes
SaveLoad_UsePlayername boolean No
SelectedUnits group No
ShadeGroup group No
SinglePlayer boolean No
SlavesDeadCOP01 boolean No
SlavesDeadCOP02 boolean No
SlavesDeadCOP03 boolean No
SlavesDeadCOP04 boolean No
SylvanasInventory string No
TeleportingUnits group Yes
TempHero unit No
TempItem item No
TempItemType itemcode No
TempPoint location No
TempPointIllidan location No
TempUnitGroup group No
TextFileName string No
Timer01Arthas timer No
Timer01Illidan timer No
Timer02Arthas timer No
Timer02Illidan timer No
Timer03Arthas timer No
Timer03Illidan timer No
Timer04Arthas timer No
Timer04Illidan timer No
TimerObeliskWindowArthas timerdialog No
TimerSummoning real No
TownPortalEnd location No
TownPortalStart location No
Validate boolean No
VictoryCheated boolean No
VictorySkipped boolean No
WarderReturnSpot location No
Initialization
  Events
    Map initialization
  Conditions
  Actions
    Cinematic - Fade out over 0.00 seconds using texture Black Mask and color (0%, 0%, 0%) with 0% transparency
    Game - Set ally color filtering to 0
    Game - Set Lock resource trading to On
    Game - Disable ally color button and Disable creep camp button
    Trigger - Run Init_01_Players <gen> (checking conditions)
    Trigger - Run Init_02_Units <gen> (checking conditions)
    Trigger - Run Init_04_Environment <gen> (checking conditions)
    Trigger - Run Init_05_Quests <gen> (checking conditions)
    Trigger - Run Init_07_Regions_to_Points <gen> (checking conditions)
    Trigger - Run SetDifficulty <gen> (checking conditions)
Init 01 Players
  Events
  Conditions
  Actions
    -------- Set Player Groups --------
    Player Group - Add AP04_Arthas to APG1_Player
    Player Group - Add AP12_Anubarak to APG1_Player
    Player Group - Add AP11_SharedPlayer to APG1_Player
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((AP04_Arthas controller) Equal to Computer) or ((AP04_Arthas slot status) Equal to Is unused)
      Then - Actions
        Set VariableSet SinglePlayer = True
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((AP12_Anubarak controller) Equal to Computer) or ((AP12_Anubarak slot status) Equal to Is unused)
      Then - Actions
        Set VariableSet SinglePlayer = True
      Else - Actions
    -------- Set User Player Alliances --------
    Player - Make AP11_SharedPlayer treat P02_IllidanMainBase as an Enemy
    Player - Make AP11_SharedPlayer treat P03_LadyVashj as an Enemy
    Player - Make AP11_SharedPlayer treat P04_Kael as an Enemy
    Player - Make AP11_SharedPlayer treat P05_IllidanDefense as an Enemy
    Player - Make AP11_SharedPlayer treat P06_IllidanDefendOnlyBase as an Enemy
    Player - Make AP11_SharedPlayer treat P07_COP_01 as an Enemy
    Player - Make AP11_SharedPlayer treat P08_COP_02 as an Enemy
    Player - Make AP11_SharedPlayer treat P09_COP_03 as an Enemy
    Player - Make AP11_SharedPlayer treat P10_COP_04 as an Enemy
    Player - Make AP11_SharedPlayer treat Neutral Hostile as an Enemy
    Player - Make P02_IllidanMainBase treat AP11_SharedPlayer as an Enemy
    Player - Make P03_LadyVashj treat AP11_SharedPlayer as an Enemy
    Player - Make P04_Kael treat AP11_SharedPlayer as an Enemy
    Player - Make P05_IllidanDefense treat AP11_SharedPlayer as an Enemy
    Player - Make P06_IllidanDefendOnlyBase treat AP11_SharedPlayer as an Enemy
    Player - Make P07_COP_01 treat AP11_SharedPlayer as an Enemy
    Player - Make P08_COP_02 treat AP11_SharedPlayer as an Enemy
    Player - Make P09_COP_03 treat AP11_SharedPlayer as an Enemy
    Player - Make P10_COP_04 treat AP11_SharedPlayer as an Enemy
    Player - Make Neutral Hostile treat AP11_SharedPlayer as an Enemy
    -------- Initial Resources --------
    Player - Set P02_IllidanMainBase.Current gold to 5000
    Player - Set P02_IllidanMainBase.Current lumber to 5000
    Player - Set P03_LadyVashj.Current lumber to 5000
    Player - Set P03_LadyVashj.Current gold to 5000
    Player - Set P04_Kael.Current gold to 5000
    Player - Set P04_Kael.Current lumber to 5000
    Player - Set P05_IllidanDefense.Current gold to 5000
    Player - Set P05_IllidanDefense.Current lumber to 5000
    Player - Set P06_IllidanDefendOnlyBase.Current gold to 5000
    Player - Set P06_IllidanDefendOnlyBase.Current lumber to 5000
    Player - Set P07_COP_01.Current gold to 5000
    Player - Set P07_COP_01.Current lumber to 5000
    Player - Set P08_COP_02.Current gold to 5000
    Player - Set P08_COP_02.Current lumber to 5000
    Player - Set P09_COP_03.Current gold to 5000
    Player - Set P09_COP_03.Current lumber to 5000
    Player - Set P10_COP_04.Current gold to 5000
    Player - Set P10_COP_04.Current lumber to 5000
    -------- Player Colors --------
    Player - Change color of AP11_SharedPlayer to Purple, Changing color of existing units
    Player - Change color of P02_IllidanMainBase to Blue, Changing color of existing units
    Player - Change color of P03_LadyVashj to Teal, Changing color of existing units
    Player - Change color of P04_Kael to Red, Changing color of existing units
    Player - Change color of P05_IllidanDefense to Blue, Changing color of existing units
    Player - Change color of P06_IllidanDefendOnlyBase to Blue, Changing color of existing units
    Player - Change color of P07_COP_01 to Blue, Changing color of existing units
    Player - Change color of P08_COP_02 to Blue, Changing color of existing units
    Player - Change color of P09_COP_03 to Blue, Changing color of existing units
    Player - Change color of P10_COP_04 to Blue, Changing color of existing units
    -------- Creeps --------
    Player - Disable sleeping for all creeps
    -------- Player Groups --------
    Unit Group - Pick every unit in (Units in COP_01_Area <gen> owned by P07_COP_01) and do (Add (Picked unit) to COP01UnitGroup)
    Unit Group - Pick every unit in (Units in COP_02_Area <gen> owned by P08_COP_02) and do (Add (Picked unit) to COP02UnitGroup)
    -------- Hide Players From Score Screen --------
    Player - Hide P05_IllidanDefense in the post-game score screen
    Player - Hide P06_IllidanDefendOnlyBase in the post-game score screen
    Player - Hide P07_COP_01 in the post-game score screen
    Player - Hide P08_COP_02 in the post-game score screen
    Player - Hide P09_COP_03 in the post-game score screen
    Player - Hide P10_COP_04 in the post-game score screen
    Player - Hide AP11_SharedPlayer in the post-game score screen
Init 02 Units
  Events
  Conditions
  Actions
    -------- Heroes --------
    Trigger - Run Load_Heroes <gen> (checking conditions)
    Hero - Make AP04_Arthas Heroes gain 200.00% experience from future kills
    Hero - Make AP12_Anubarak Heroes gain 200.00% experience from future kills
    -------- NPCs --------
    Set VariableSet Illidan = Demon Hunter 0101 <gen>
    Set VariableSet LadyVashj = Naga Sea Witch 0100 <gen>
    Set VariableSet Kael = Blood Mage 0102 <gen>
    -------- Illidan Level --------
    Hero - Set Illidan Hero-level to 10, Hide level-up graphics
    Hero - Learn skill for Illidan: Night Elf Demon Hunter - Mana Burn
    Hero - Learn skill for Illidan: Night Elf Demon Hunter - Mana Burn
    Hero - Learn skill for Illidan: Night Elf Demon Hunter - Mana Burn
    Hero - Learn skill for Illidan: Night Elf Demon Hunter - Immolation
    Hero - Learn skill for Illidan: Night Elf Demon Hunter - Immolation
    Hero - Learn skill for Illidan: Night Elf Demon Hunter - Immolation
    Hero - Learn skill for Illidan: Night Elf Demon Hunter - Evasion
    Hero - Learn skill for Illidan: Night Elf Demon Hunter - Evasion
    Hero - Learn skill for Illidan: Night Elf Demon Hunter - Evasion
    Hero - Learn skill for Illidan: Special Illidan (Evil) - Metamorphosis
    -------- Kael Level --------
    Hero - Set Kael Hero-level to 10, Hide level-up graphics
    Hero - Learn skill for Kael: Human Blood Mage - Flame Strike
    Hero - Learn skill for Kael: Human Blood Mage - Flame Strike
    Hero - Learn skill for Kael: Human Blood Mage - Flame Strike
    Hero - Learn skill for Kael: Human Blood Mage - Banish
    Hero - Learn skill for Kael: Human Blood Mage - Banish
    Hero - Learn skill for Kael: Human Blood Mage - Banish
    Hero - Learn skill for Kael: Human Blood Mage - Siphon Mana
    Hero - Learn skill for Kael: Human Blood Mage - Siphon Mana
    Hero - Learn skill for Kael: Human Blood Mage - Siphon Mana
    Hero - Learn skill for Kael: Human Blood Mage - Phoenix
    -------- Vashj Level --------
    Hero - Set LadyVashj Hero-level to 10, Hide level-up graphics
    Hero - Learn skill for LadyVashj: Neutral Sea Witch - Forked Lightning
    Hero - Learn skill for LadyVashj: Neutral Sea Witch - Forked Lightning
    Hero - Learn skill for LadyVashj: Neutral Sea Witch - Forked Lightning
    Hero - Learn skill for LadyVashj: Neutral Sea Witch - Frost Arrows
    Hero - Learn skill for LadyVashj: Neutral Sea Witch - Frost Arrows
    Hero - Learn skill for LadyVashj: Neutral Sea Witch - Frost Arrows
    Hero - Learn skill for LadyVashj: Neutral Sea Witch - Mana Shield
    Hero - Learn skill for LadyVashj: Neutral Sea Witch - Mana Shield
    Hero - Learn skill for LadyVashj: Neutral Sea Witch - Mana Shield
    Hero - Learn skill for LadyVashj: Neutral Sea Witch - Tornado
    -------- Creeps --------
    AI - Ignore Naga Siren 0147 <gen>'s guard position
    AI - Ignore Naga Siren 0148 <gen>'s guard position
    AI - Ignore Mur'gul Slave 0133 <gen>'s guard position
    AI - Ignore Mur'gul Slave 0134 <gen>'s guard position
    AI - Ignore Mur'gul Slave 0142 <gen>'s guard position
    -------- Buildings --------
    Destructible - Make Frozen Throne Gate 1043 <gen> Invulnerable
    Unit - Make Icecrown Obelisk 0000 <gen> Invulnerable
    Unit - Make Icecrown Obelisk 0001 <gen> Invulnerable
    Unit - Make Icecrown Obelisk 0002 <gen> Invulnerable
    Unit - Make Icecrown Obelisk 0003 <gen> Invulnerable
    -------- COP Buddies --------
    Set VariableSet COP01Buddies = (Units in COP01Buddies <gen> owned by P07_COP_01)
    Unit Group - Pick every unit in COP01Buddies and do (Actions)
      Loop - Actions
        Unit - Move (Picked unit) instantly to (Center of COP01Buddies_WaitingArea <gen>), facing (Random angle) degrees
        Unit - Pause (Picked unit)
Init 03 Music
  Events
  Conditions
  Actions
    Sound - Reset all volume channels to 100%
    Sound - Clear the music list
    Sound - Play Arthas' Theme.
    Sound - Set the music list to Music, starting with song 1
Init 04 Environment
  Events
  Conditions
  Actions
    -------- Initial Time Of Day --------
    Game - Set the time of day to 8.00
    -------- Weather Effects --------
    -------- Fog --------
    -------- Initial Visibility --------
    -------- Bridges, Gates, etc. --------
Init 05 Quests
  Events
  Conditions
  Actions
    -------- Create Quests --------
    Trigger - Run Quest_Obelisk_Create <gen> (checking conditions)
Init 06a Hard
  Events
  Conditions
    Hard Equal to True
  Actions
    -------- Extra Naga --------
    -------- Extra Creeps --------
    -------- AI Removal --------
    AI - Ignore Naga Myrmidon 0273 <gen>'s guard position
    Unit - Remove Naga Myrmidon 0273 <gen> from the game
    AI - Ignore Naga Myrmidon 0277 <gen>'s guard position
    Unit - Remove Naga Myrmidon 0277 <gen> from the game
Init 06b Normal
  Events
  Conditions
    Hard Equal to False
  Actions
    -------- AI Removal --------
    AI - Ignore Naga Royal Guard 0278 <gen>'s guard position
    Unit - Remove Naga Royal Guard 0278 <gen> from the game
    AI - Ignore Naga Royal Guard 0279 <gen>'s guard position
    Unit - Remove Naga Royal Guard 0279 <gen> from the game
Init 07 Regions to Points
  Events
  Conditions
  Actions
    Set VariableSet PointObelisk01 = (Center of Obelisk_01 <gen>)
    Set VariableSet PointObelisk02 = (Center of Obelisk_02 <gen>)
    Set VariableSet PointObelisk03 = (Center of Obelisk_03 <gen>)
    Set VariableSet PointObelisk04 = (Center of Obelisk_04 <gen>)
    Set VariableSet PointCOP01SpawnSlave = (Center of COP01SpawnSlave <gen>)
    Set VariableSet PointCOP02SpawnSlave = (Center of COP02SpawnSlave <gen>)
    Set VariableSet PointCOP03SpawnSlave = (Center of COP03SpawnSlave <gen>)
    Set VariableSet PointCOP04SpawnSlave = (Center of COP04SpawnSlave <gen>)
Load Heroes
  Events
  Conditions
  Actions
    -------- Load Each Hero --------
    Trigger - Run Create_Arthas <gen> (checking conditions)
    Trigger - Run Create_Anubarak <gen> (checking conditions)
    Trigger - Run Arthas_Damaged_Event_Registration <gen> (checking conditions)
Load Gold
  Events
  Conditions
  Actions
    -------- Load Gold from Cache --------
    Player - Set AP11_SharedPlayer.Current gold to BonusGold
    Player - Add 800 to AP11_SharedPlayer.Current gold
Create Arthas
  Events
  Conditions
  Actions
    -------- Create Hero --------
    Unit - Create 1.Death Knight (Evil) for Neutral Passive at (Center of Arthas_Start <gen>) facing 350.00 degrees
    Set VariableSet Arthas = (Last created unit)
    Hero - Set Arthas Hero-level to 2, Hide level-up graphics
    Hero - Learn skill for Arthas: Undead Death Knight - Death Coil
    Hero - Learn skill for Arthas: Undead Death Knight - Unholy Aura
    -------- Create Satchet --------
    Unit - Create 1.Sachet for Neutral Passive at (Center of Arthas_Start <gen>) facing 90.00 degrees
    Set VariableSet Satchet01 = (Last created unit)
Create Anubarak
  Events
  Conditions
  Actions
    -------- Create Hero --------
    Unit - Create 1.Crypt Lord for Neutral Passive at (Center of Anu_Start <gen>) facing 350.00 degrees
    Set VariableSet Anubarak = (Last created unit)
    Hero - Set Anubarak Hero-level to 8, Hide level-up graphics
    -------- Create Satchet --------
    Unit - Create 1.Sachet for Neutral Passive at (Center of Anu_Start <gen>) facing 90.00 degrees
    Set VariableSet Satchet02 = (Last created unit)
Load Default Arthas
  Events
  Conditions
  Actions
    -------- Add Items --------
    Hero - Create Crown of Kings +5 and give it to Arthas
    Hero - Create Orb of Frost and give it to Arthas
    Hero - Create Hood of Cunning and give it to Arthas
Load Default Anubarak
  Events
  Conditions
  Actions
    -------- Default Hero Data --------
    Hero - Learn skill for Anubarak: Undead Crypt Lord - Impale
    Hero - Learn skill for Anubarak: Undead Crypt Lord - Impale
    Hero - Learn skill for Anubarak: Undead Crypt Lord - Spiked Carapace
    Hero - Learn skill for Anubarak: Undead Crypt Lord - Spiked Carapace
    Hero - Learn skill for Anubarak: Undead Crypt Lord - Carrion Beetles
    Hero - Learn skill for Anubarak: Undead Crypt Lord - Carrion Beetles
    Hero - Learn skill for Anubarak: Undead Crypt Lord - Carrion Beetles
    -------- Add Items --------
    Hero - Create Medallion of Courage and give it to Anubarak
    Hero - Create Orb of Darkness and give it to Anubarak
    Hero - Create Claws of Attack +15 and give it to Anubarak
Experience Cap Arthas
  Events
    Unit - A unit owned by Player 4 (Purple).Gains a level
  Conditions
    (Leveling Hero) Equal to Arthas
    (Hero level of (Leveling Hero)) Greater than or equal to 10
  Actions
    Hero - Disable experience gain for Arthas.
    Set VariableSet ExpDisabledForArthas = True
Experience Cap Anubarak
  Events
    Unit - A unit owned by Player 12 (Brown).Gains a level
  Conditions
    (Leveling Hero) Equal to Anubarak
    (Hero level of (Leveling Hero)) Greater than or equal to 10
  Actions
    Hero - Disable experience gain for Anubarak.
    Set VariableSet ExpDisabledForAnub = True
Before running this in a cinematic, do the following:
- Set "RevivalHero" to the hero you wish to revive.
- Set "RevivalSpot" to the place at which you wish the hero to be revived.

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

After the cinematic, move the hero instantly to RevivalReturnSpot.
Cinematic Revival
  Events
  Conditions
  Actions
    Set VariableSet RevivalReturnSpot = (Position of RevivalHero)
    Unit - Move RevivalHero instantly to RevivalSpot
    If ((RevivalHero is alive) Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Hero - Instantly revive RevivalHero at RevivalSpot, Hide revival graphics
    Set VariableSet RevivalReturnSpot = RevivalSpot
    Set VariableSet RevivalAltar = (Random unit from (Units owned by (Owner of RevivalHero) matching ((((Matching unit) is alive) Equal to True) and ((((Unit-type of (Matching unit)) Equal to Altar of Kings) or ((Unit-type of (Matching unit)) Equal to Altar of Storms)) or (((Unit-type of (Matching unit)) Equal to Altar of Darkness) or ((Unit-type of (Matching unit)) Equal to Altar of Elders)))).))
    If (RevivalAltar Not equal to No unit) then do (Set VariableSet RevivalReturnSpot = ((Position of RevivalAltar) offset by (0, -128.00))) else do (Do nothing)
Intro Cinematic Q
  Events
  Conditions
  Actions
    Set VariableSet InCinematic = True
    -------- Fade Out --------
    Cinematic - Fade out over 0.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    -------- Set Up Scene --------
    Cinematic - Turn cinematic mode On for APG1_Player
    Trigger - Run Intro_Setup <gen> (checking conditions)
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - .Apply. gg_cam_Intro_01 for (Picked player) over 0 seconds
    Wait 0.05 seconds
    Unit - Create 1.Carrion Beetle (Level 2) for AP12_Anubarak at (Center of Intro_beetles <gen>) facing 320.00 degrees
    Set VariableSet Beetle01 = (Last created unit)
    Unit - Create 1.Carrion Beetle (Level 2) for AP12_Anubarak at (Center of Intro_beetles <gen>) facing 320.00 degrees
    Set VariableSet Beetle02 = (Last created unit)
    Wait 0.20 seconds
    Unit - Order Beetle01 to Move To.(Center of Intro_Beetle_01_Dest <gen>)
    Wait 0.20 seconds
    Unit - Order Beetle02 to Move To.(Center of Intro_Beetle_02_Dest <gen>)
    Wait 0.10 seconds
    Unit - Order Arthas to Move To.(Center of Arthas_Gameplay_resumes <gen>)
    Unit - Order Anubarak to Move To.(Center of Anub_Gameplay_resumes <gen>)
    Wait 0.50 seconds
    Environment - Set fog to style Linear, z-start 1000.00, z-end 6000.00, density 0 and color (100.00%, 100.00%, 100.00%)
    -------- Fade In --------
    Cinematic - Fade in over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Sound - Play HorseLoop2 <gen> at 60.00% volume, attached to Arthas
    Wait 1.00 seconds
    Trigger - Turn on Intro_Skipped <gen>
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC BEGINS - Cinematic Can Now Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - .Apply. gg_cam_Intro_02 for (Picked player) over 5.00 seconds
    Wait 1.30 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Play HorseLoop3 <gen> at 60.00% volume, attached to Arthas
    Wait 2.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - .Apply. gg_cam_Intro_03 for (Picked player) over 0.00 seconds
        Camera - .Apply. gg_cam_Intro_04 for (Picked player) over 4.50 seconds
    Cinematic - Fade in over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Sound - Play HorseLoop2 <gen> at 70.00% volume, attached to Arthas
    Wait 2 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Play HorseLoop1 <gen> at 70.00% volume, attached to Arthas
    -------- Time is running out --------
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L08Arthas01 <gen> and display Time's running out, Anub'arak. We've got to get inside the Throne Chamber before Illidan does.. Modify duration: Add 0 seconds and Wait
    Wait for L08Arthas01 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- They've entrenched themselves --------
    Environment - Reset fog to default values
    Environment - Set fog to style Linear, z-start 1000.00, z-end 4000.00, density 0 and color (100.00%, 100.00%, 100.00%)
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - .Apply. gg_cam_Intro_Tower_01 for (Picked player) over 0.00 seconds
        Camera - .Apply. gg_cam_Intro_Tower_02 for Player 1 (Red) over 13.00 seconds
    Cinematic - Send transmission to (All players) from Anubarak named Anub'arak: Play L08Anubarak02 <gen> and display The Throne Chamber lies within the frozen peak at the center of the valley. It can only be opened by activating the four enchanted obelisks that surround it.. Modify duration: Add 0 seconds and Wait
    Wait for L08Anubarak02 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - .Apply. gg_cam_Intro_Naga_01 for (Picked player) over 0.00 seconds
        Camera - .Apply. gg_cam_Intro_Naga_02 for (Picked player) over ((Length of L08Anubarak03 <gen>) + 0.50) seconds
    Cinematic - Send transmission to (All players) from Anubarak named Anub'arak: Play L08Anubarak03 <gen> and display Illidan's forces have already entrenched themselves near two of them.. Modify duration: Add 0 seconds and Wait
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - .Apply. gg_cam_Intro_Naga_03 for (Picked player) over 0.00 seconds
        Camera - .Apply. gg_cam_Intro_Naga_04 for (Picked player) over ((Length of L08Anubarak04 <gen>) + 0.50) seconds
    Cinematic - Send transmission to (All players) from Anubarak named Anub'arak: Play L08Anubarak04 <gen> and display We'll need to drive them back and reactivate the obelisks ourselves.. Modify duration: Add 0 seconds and Wait
    Wait for L08Anubarak04 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- ******** The Interruption of Illidan Part 1 ******** --------
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Animation - Play Illidan's Stand 4 (animationname) animation, using only Rare animations
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Environment - Reset fog to default values
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - .Apply. gg_cam_Intro_Illidan_01 for (Picked player) over 0.00 seconds
        Camera - .Apply. gg_cam_Intro_Illidan_02 for (Picked player) over 5.00 seconds
    Environment - Set fog to style Linear, z-start 500.00, z-end 2500.00, density 0 and color (100.00%, 100.00%, 100.00%)
    Cinematic - Fade in over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change Illidan's animation speed to 10.00% of its original speed
    Unit - Order LadyVashj to Move To.(Center of Intro_Vashj_Dest <gen>)
    Unit - Order Kael to Move To.(Center of Kael_Dest <gen>)
    Wait 2.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from LadyVashj named Lady Vashj: Play L08LadyVashj05 <gen> and display We're sorry to interrupt your meditation, master, but all our forces are in place.. Modify duration: Add 0 seconds and Wait
    Wait for L08LadyVashj05 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Kael named Prince Kael'thas: Play L08Kael06 <gen> and display Once the chamber is opened, we will destroy the Frozen Throne as promised!. Modify duration: Add 0 seconds and Wait
    Wait for L08Kael06 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 0.30 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play the death (animationname) animation for all doodads of type LOtz (doodadcode) within Intro_Dooads_Death <gen>.
    Wait 0.30 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- ******** The Inturruption of Illidan Part 2 ******** --------
    Animation - Change Illidan's animation speed to 100.00% of its original speed
    Unit - Make Illidan face LadyVashj over 0 seconds
    Animation - Play Illidan's stand (animationname) animation
    Wait 0.50 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - .Apply. gg_cam_Intro_Illidan_Closeup for (Picked player) over 0.00 seconds
    Cinematic - Send transmission to (All players) from Illidan named Illidan Stormrage: Play L08Illidan07 <gen> and display Then the hour has come at last. After today, the Scourge will meet its end. Can you hear me out there, Arthas? Its end!. Modify duration: Add 0 seconds and Wait
    Wait for L08Illidan07 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Illidan's Stand 3 (animationname) animation, using only Rare animations
    -------- ******** Back to Arthas ******** --------
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Environment - Reset fog to default values
    Environment - Set fog to style Linear, z-start 500.00, z-end 5000.00, density 0 and color (100.00%, 100.00%, 100.00%)
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - .Apply. gg_cam_Intro_Arthas_Closeup_02 for (Picked player) over 0.00 seconds
        Camera - .Apply. gg_cam_Intro_Arthas_Closeup_01 for (Picked player) over 7.00 seconds
    Cinematic - Fade in over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L08Arthas08 <gen> and display Illidan has mocked the Scourge long enough. It's time we put the fear of death back in him.. Modify duration: Add 0 seconds and Wait
    Wait for L08Arthas08 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC ENDS - Cinematic Can No Longer Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    Trigger - Turn off Intro_Skipped <gen>
    -------- Fade Out --------
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    Environment - Reset fog to default values
    -------- Cleanup --------
    Trigger - Run Intro_Cleanup <gen> (checking conditions)
    -------- Start AI, Let AI Settle Down --------
    Trigger - Run Start_AI <gen> (checking conditions)
    Wait 1.00 seconds
    Cinematic - Turn cinematic mode Off for APG1_Player
    -------- Fade In --------
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    -------- Start Game --------
    Trigger - Run Gameplay <gen> (checking conditions)
    Set VariableSet InCinematic = False
    Trigger - Remove (This trigger) from the trigger queue
Intro Skipped
  Events
    Player - Player 4 (Purple) skips a cinematic sequence
    Player - Player 12 (Brown) skips a cinematic sequence
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet IntroSkipped = True
    -------- Fade Out --------
    Cinematic - Fade out over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.50 seconds
    -------- Cleanup --------
    Trigger - Run Intro_Cleanup <gen> (checking conditions)
    -------- Start AI, Let AI Settle Down --------
    Trigger - Run Start_AI <gen> (checking conditions)
    Wait 1.00 seconds
    Cinematic - Turn cinematic mode Off for APG1_Player
    -------- Fade In --------
    Cinematic - Fade in over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.50 seconds
    -------- Start Game --------
    Trigger - Run Gameplay <gen> (checking conditions)
    Set VariableSet InCinematic = False
    Trigger - Remove Intro_Cinematic_Q <gen> from the trigger queue
Intro Setup
  Events
  Conditions
  Actions
    -------- Set Sky --------
    Environment - Set sky to Fogged Sky
    -------- Disable XP Gain --------
    Hero - Disable experience gain for Arthas.
    Hero - Disable experience gain for Anubarak.
    -------- Pause Time Of Day --------
    Game - Turn the day/night cycle Off
    -------- Pause Units --------
    -------- Hide Units --------
    Set VariableSet HiddenUnits = (Units owned by AP11_SharedPlayer.)
    Unit Group - Remove Arthas from HiddenUnits.
    Unit Group - Remove Anubarak from HiddenUnits.
    Unit Group - Remove all units of (Units owned by AP11_SharedPlayer.) from HiddenUnits.
    Unit Group - Pick every unit in HiddenUnits and do (Hide (Picked unit))
    -------- Disable Auras --------
    Player - Disable Unholy Aura for AP04_Arthas
    Player - Disable Vampiric Aura (Neutral Hostile) for Neutral Hostile
    -------- Hide Items --------
    Item - Pick every item in (Playable map area) and do (Actions)
      Loop - Actions
        Item - Hide (Picked item)
Intro Cleanup
  Events
  Conditions
  Actions
    -------- Enable Auras --------
    Player - Enable Unholy Aura for AP04_Arthas
    Player - Enable Vampiric Aura (Neutral Hostile) for Neutral Hostile
    -------- Move Units --------
    Unit - Move Illidan instantly to (Center of Illidan_Start <gen>), facing 255.00 degrees
    Unit - Move Arthas instantly to (Center of Arthas_Gameplay_resumes <gen>), facing 255.00 degrees
    Unit - Move Anubarak instantly to (Center of Anub_Gameplay_resumes <gen>), facing 285.00 degrees
    Unit - Move Crypt Fiend 0079 <gen> instantly to (Center of Intro_Crypt_01_Dest <gen>), facing 170.00 degrees
    Unit - Move Crypt Fiend 0080 <gen> instantly to (Center of Intro_Crypt_02_Dest <gen>), facing 160.00 degrees
    Unit - Move Crypt Fiend 0081 <gen> instantly to (Center of Intro_Crypt_03_Dest <gen>), facing 180.00 degrees
    Unit - Move Crypt Fiend 0082 <gen> instantly to (Center of Intro_Crypt_04_Dest <gen>), facing 175.00 degrees
    Unit - Move Naga Sea Witch 0100 <gen> instantly to (Center of Intro_Vashj_Final <gen>), facing 220.00 degrees
    Unit - Move Blood Mage 0102 <gen> instantly to (Center of Intro_Kael_Final <gen>), facing 300.00 degrees
    -------- Remove Units --------
    Unit - Remove Beetle01 from the game
    Unit - Remove Beetle02 from the game
    -------- Unhide Units --------
    Unit Group - Pick every unit in HiddenUnits and do (Unhide (Picked unit))
    -------- Unpause Units --------
    -------- Unhide Items --------
    Item - Pick every item in (Playable map area) and do (Actions)
      Loop - Actions
        Item - Show (Picked item)
    -------- Pause Time Of Day --------
    Game - Turn the day/night cycle On
    -------- Re-enable XP Gain --------
    If (ExpDisabledForArthas Equal to False) then do (Enable experience gain for Arthas.) else do (Do nothing)
    If (ExpDisabledForAnub Equal to False) then do (Enable experience gain for Anubarak.) else do (Do nothing)
    -------- Restore Selection --------
    Selection - Select Arthas
    -------- Reset Sky --------
    Environment - Set sky to None
    -------- Reset Fog --------
    Environment - Set fog to style Linear, z-start 600.00, z-end 6000.00, density 0 and color (100.00%, 100.00%, 100.00%)
    -------- Reset Camera --------
    Camera - Reset camera smoothing factor
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - Reset camera for (Picked player) to standard game-view over 0 seconds
    Camera - Pan camera for AP04_Arthas to (Center of Arthas_Gameplay_resumes <gen>) over 0 seconds
    Camera - Pan camera for AP12_Anubarak to (Center of Anub_Gameplay_resumes <gen>) over 0 seconds
    -------- Initial Harvesting --------
    Unit - Order Mur'gul Slave 0133 <gen> to Harvest.Gold Mine 0014 <gen>
    Unit - Order Mur'gul Slave 0134 <gen> to Harvest.Gold Mine 0014 <gen>
    Unit - Order Mur'gul Slave 0142 <gen> to Harvest.Gold Mine 0014 <gen>
    -------- Wipe Visibility --------
    Visibility - Create an initially Enabled visibility modifier for AP04_Arthas emitting Black mask across (Playable map area)
    Visibility - Destroy (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for AP12_Anubarak emitting Black mask across (Playable map area)
    Visibility - Destroy (Last created visibility modifier)
Gameplay
  Events
  Conditions
  Actions
    -------- Do initial gameplay stuff, like quest messages and hints --------
    Wait 1.00 seconds
    -------- Shade --------
    Unit - Order Shade 0242 <gen> to Move To.(Center of Shade_Dest <gen>)
    Wait 4.00 seconds
    Trigger - Add Obelisk_Found_Q <gen> to the trigger queue (Checking conditions)
    -------- Alliances --------
    Player - Make Neutral Hostile treat P09_COP_03 as an Enemy
    Player - Make Neutral Hostile treat P10_COP_04 as an Enemy
    Player - Make P09_COP_03 treat Neutral Hostile as an Enemy
    Player - Make P10_COP_04 treat Neutral Hostile as an Enemy
    -------- Create Visibility --------
    Player Group - Pick every player in (All players) and do (Create an initially Enabled visibility modifier for (Picked player) emitting Visibility from (Center of IceCrownTower <gen>) to a radius of 4000.00.)
Victory Cinematic Q
  Events
  Conditions
  Actions
    Set VariableSet InCinematic = True
    -------- Quest update --------
    Trigger - Run Quest_Obelisk_Completed <gen> (checking conditions)
    Wait Campaign quest delay seconds
    -------- Fade Out --------
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    -------- Set Up Scene --------
    Cinematic - Turn cinematic mode On for APG1_Player
    Wait 0.25 seconds
    Trigger - Run Victory_Setup <gen> (checking conditions)
    Unit - Create 1 Demon Hunter (Evil) for Player 5 (Yellow) at (Center of IllidanEndA <gen>) facing (Center of IllidanEndB <gen>)
    Set VariableSet Illidan03 = (Last created unit)
    AI - Ignore Illidan03's guard position
    Unit - Change color of Illidan03 to Purple
    Animation - Play Illidan03's stand (animationname) animation, using only Common animations
    Wait 0.25 seconds
    Environment - Create at (Playable map area) the weather effect Northrend Snow (Heavy)
    Environment - Turn (Last created weather effect) On
    Environment - Set fog to style Linear, z-start 800.00, z-end 4000.00, density 0 and color (100.00%, 100.00%, 100.00%)
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - .Apply. gg_cam_Victory_01 for (Picked player) over 0 seconds
        Camera - .Apply. gg_cam_Victory01A for (Picked player) over 8.00 seconds
    -------- Fade In --------
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    Trigger - Turn on Victory_Skipped <gen>
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC BEGINS - Cinematic Can Now Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    Destructible - Open Frozen Throne Gate 1043 <gen>
    Sound - Play GateOpen <gen> at 85.00% volume, located at (Center of Victory_Arthas_Move <gen>) with Z offset 0
    Sound - Play FrostmourneLoopUndead01 <gen> at 95.00% volume, located at (Center of Victory_Arthas_Move <gen>) with Z offset 0
    Wait 1.00 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Arthas's Spell (animationname) animation, using only Rare animations
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L08Arthas35 <gen> and display We've done it, Anub'arak! The Throne Chamber is open! This is the hour of the Scourge!. Modify duration: Add 0 seconds and Don't wait
    Wait for L08Arthas35 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (100.00%, 100.00%, 100.00%) with 0% transparency
    Sound - Stop FrostmourneLoopUndead01 <gen> After fading
    Sound - Stop GateOpen <gen> After fading
    Wait 1.00 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Environment - Reset fog to default values
    Unit - Create 1 Demon Hunter (Evil) for Player 5 (Yellow) at (Center of IllidanAtGate <gen>) facing (Center of IllidanFace <gen>)
    Set VariableSet Illidan02 = (Last created unit)
    AI - Ignore Illidan02's guard position
    Unit - Change color of Illidan02 to Purple
    Animation - Play Illidan02's stand (animationname) animation, using only Common animations
    Environment - Set fog to style Linear, z-start 440.00, z-end 2500.00, density 0 and color (100.00%, 100.00%, 100.00%)
    Unit - Move Arthas instantly to (Center of ArthasEndStart <gen>), facing (Position of Illidan)
    Sound - Play HorseLoop1 <gen> at 70.00% volume, attached to Arthas
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - .Apply. gg_cam_IllidanEnd for (Picked player) over 0 seconds
        Camera - .Apply. gg_cam_IllidanEndA for (Picked player) over 10.00 seconds
    Unit - Order Arthas to Move To.(Center of ArthasEndEnd <gen>)
    Unit - Order Illidan03 to Move To.(Center of IllidanEndB <gen>)
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (100.00%, 100.00%, 100.00%) with 0% transparency
    Wait 2.00 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Illidan03 face Arthas over 0.30 seconds
    Animation - Play Illidan03's stand (animationname) animation, using only Common animations
    Wait 1.00 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L08Arthas36 <gen> and display The Frozen Throne is mine, demon. Step aside.. Modify duration: Add 0 seconds and Don't wait
    Wait for L08Arthas36 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 0.50 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L08Arthas40 <gen> and display Leave this world and never return. If you do, I'll be waiting.. Modify duration: Add 0 seconds and Don't wait
    Wait for L08Arthas40 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - .Apply. gg_cam_IveSworn for (Picked player) over 0.00 seconds
    Environment - Set fog to style Linear, z-start 200.00, z-end 1500.00, density 0 and color (100.00%, 100.00%, 100.00%)
    Wait 0.30 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Illidan03 named Illidan Stormrage: Play L08Illidan37 <gen> and display I have sworn to destroy it, Arthas. It must be done!. Modify duration: Add 0 seconds and Wait
    Wait for L08Illidan37 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 1.00 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Player Group - Pick every player in APG1_Player and do (Actions)
      Loop - Actions
        Camera - .Apply. gg_cam_Never for (Picked player) over 0.00 seconds
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L08Arthas38 <gen> and display Never!. Modify duration: Add 0 seconds and Don't wait
    Wait for L08Arthas38 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 0.30 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC ENDS - Cinematic Can No Longer Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    Trigger - Turn off Victory_Skipped <gen>
    -------- Fade Out --------
    Cinematic - Fade out over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2.00 seconds
    Unit - Remove Illidan02 from the game
    Unit - Remove Illidan03 from the game
    Trigger - Run Next_Level_Run <gen> (checking conditions)
Victory Skipped
  Events
    Player - Player 4 (Purple) skips a cinematic sequence
    Player - Player 12 (Brown) skips a cinematic sequence
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet VictorySkipped = True
    -------- Fade Out --------
    Cinematic - Fade out over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2.00 seconds
    Trigger - Run Next_Level_Run <gen> (checking conditions)
Victory Setup
  Events
  Conditions
  Actions
    -------- Set Sky --------
    Environment - Set sky to Fogged Sky
    -------- Clear Selection --------
    Selection - Clear selection
    -------- Revive Hero *** Not Neccessary *** --------
    Trigger - Run Cinematic_Revival <gen> (checking conditions)
    Set VariableSet WarderReturnSpot = RevivalReturnSpot
    Trigger - Run Cinematic_Revival <gen> (checking conditions)
    Set VariableSet FurionReturnSpot = RevivalReturnSpot
    Unit - Change ownership of Arthas to AP04_Arthas and Change color
    Hero - Instantly revive Satchet01 at WarderReturnSpot, Hide revival graphics
    Unit - Change ownership of Anubarak to AP12_Anubarak and Change color
    Hero - Instantly revive Satchet02 at WarderReturnSpot, Hide revival graphics
    -------- Disable XP Gain --------
    Hero - Disable experience gain for Arthas.
    Hero - Disable experience gain for Anubarak.
    -------- Pause Time Of Day --------
    Game - Turn the day/night cycle Off
    -------- Pause Units --------
    Unit - Pause all units
    Unit - Unpause Arthas
    Unit - Unpause Illidan02
    Unit - Unpause Illidan03
    -------- Hide Units --------
    Set VariableSet HiddenUnits = (Units owned by AP11_SharedPlayer.)
    Unit Group - Pick every unit in (Units owned by AP04_Arthas.) and do (Add (Picked unit) to HiddenUnits)
    Unit Group - Pick every unit in (Units owned by AP12_Anubarak.) and do (Add (Picked unit) to HiddenUnits)
    Unit Group - Remove Arthas from HiddenUnits.
    Unit Group - Add Illidan to HiddenUnits
    Unit Group - Pick every unit in HiddenUnits and do (Hide (Picked unit))
    -------- Disable Auras --------
    Player - Disable Unholy Aura for AP04_Arthas
    Player - Disable Vampiric Aura (Neutral Hostile) for Neutral Hostile
    -------- Remove Buffs --------
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units owned by AP04_Arthas.) and do (Remove All buffs from (Picked unit))
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units owned by AP12_Anubarak.) and do (Remove All buffs from (Picked unit))
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units owned by AP11_SharedPlayer.) and do (Remove All buffs from (Picked unit))
    Custom script: set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in (Units owned by P02_IllidanMainBase.) and do (Remove All buffs from (Picked unit))
    -------- Disable Leaderboard --------
    Leaderboard - Hide LeaderboardObelisks
    -------- Music Theme --------
    Sound - Play Lich King's Theme.
Voiceover Obelisk Illidan Reactivate Dialogue
  Events
  Conditions
    DialogueIllidanReactivate Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_Obelisk_Illidan_Reactivate_Dialogue_Q <gen> to the trigger queue (Checking conditions)
Voiceover Obelisk Illidan Reactivate Dialogue Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet DialogueIllidanReactivate = True
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Illidan named Illidan Stormrage: Play L08Illidan25 <gen> and display I've reactivated this obelisk! The Frozen Throne is nearly ours!. Modify duration: Add 0 seconds and Don't wait
    Camera - Set a spacebar-point for AP11_SharedPlayer at (Position of Illidan)
    Wait for L08Illidan25 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Obelisk Illidan This is Mine Dialogue
  Events
  Conditions
    DialogueIllidanMine Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_Obelisk_Illidan_This_is_Mine_Dialogue_Q <gen> to the trigger queue (Checking conditions)
Voiceover Obelisk Illidan This is Mine Dialogue Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet DialogueIllidanMine = True
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Illidan named Illidan Stormrage: Play L08Illidan23 <gen> and display This obelisk is mine!. Modify duration: Add 0 seconds and Don't wait
    Camera - Set a spacebar-point for AP11_SharedPlayer at (Position of Illidan)
    Wait for L08Illidan23 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Obelisk First Illidan Dialogue 01
  Events
  Conditions
    DialogueFirstIllidan01 Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_Obelisk_First_Illidan_Dialogue_01_Q <gen> to the trigger queue (Checking conditions)
Voiceover Obelisk First Illidan Dialogue 01 Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet DialogueFirstIllidan01 = True
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Illidan named Illidan Stormrage: Play L08Illidan33 <gen> and display You're out of your league, old king. You should have stayed hidden underground.. Modify duration: Add 0 seconds and Don't wait
    Wait for L08Illidan33 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Obelisk Illidan Activate Dialogue 01
  Events
  Conditions
    DialogueIIllidanActivate01 Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_Obelisk_Illidan_Activate_Dialogue_01_Q <gen> to the trigger queue (Checking conditions)
Voiceover Obelisk Illidan Activate Dialogue 01 Q
  Events
  Conditions
    DialogueIIllidanActivate01 Equal to False
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet DialogueIIllidanActivate01 = True
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Illidan named Illidan Stormrage: Play L08Illidan26 <gen> and display Foolish undead, this obelisk belongs to me!. Modify duration: Add 0 seconds and Don't wait
    Camera - Set a spacebar-point for AP11_SharedPlayer at (Position of Illidan)
    Wait for L08Illidan26 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Obelisk Illidan Activate Dialogue Hello
  Events
    Unit - A unit comes within 512.00 of Demon Hunter 0101 <gen>
  Conditions
    (Entering unit) Equal to Arthas
    (Illidan is alive) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_Obelisk_Illidan_Activate_Dialogue_Hello_Q <gen> to the trigger queue (Checking conditions)
Voiceover Obelisk Illidan Activate Dialogue Hello Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Illidan named Illidan Stormrage: Play L08Illidan27 <gen> and display Hello, Arthas.. Modify duration: Add 0 seconds and Wait
    Wait for L08Illidan27 <gen> to be 0 seconds from finished playing
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L08Arthas28 <gen> and display You look different, Illidan. I guess the Skull of Gul'dan didn't agree with you.. Modify duration: Add 0 seconds and Wait
    Wait for L08Arthas28 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Obelisk Illidan Activate Dialogue Upper hand
  Events
    Unit - A unit enters Upper_hand_Dialogue <gen>
  Conditions
    (Illidan is alive) Equal to True
    (Entering unit) Equal to Illidan
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_Obelisk_Illidan_Activate_Dialogue_Upper_hand_Q <gen> to the trigger queue (Checking conditions)
Voiceover Obelisk Illidan Activate Dialogue Upper hand Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Illidan named Illidan Stormrage: Play L08Illidan29 <gen> and display You and your Lich King duped me once, but now I have the upper hand.. Modify duration: Add 0 seconds and Don't wait
    Wait for L08Illidan29 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Obelisk Illidan Small Patch of Ground Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Illidan named Illidan Stormrage: Play L08Illidan24 <gen> and display What's the matter, Arthas? Can't you hold one small patch of ground?. Modify duration: Add 0 seconds and Wait
    Wait for L08Illidan24 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Kael Dialogue
  Events
    Unit - A unit enters Kael_Dialogue_Activate <gen>
  Conditions
    (Kael is alive) Equal to True
    (Entering unit) Equal to Kael
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_Kael_Dialogue_Q <gen> to the trigger queue (Checking conditions)
Voiceover Kael Dialogue Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Kael named Prince Kael'thas: Play L08Kael31 <gen> and display You've taken everything I ever cared for, Arthas. Vengeance is all I have left.. Modify duration: Add 0 seconds and Don't wait
    Wait for L08Kael31 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Obelisk First Arthas Dialogue 01
  Events
  Conditions
    DialogueFirstArthas01 Equal to False
  Actions
    Trigger - Add Voiceover_Obelisk_First_Arthas_Dialogue_01_Q <gen> to the trigger queue (Checking conditions)
Voiceover Obelisk First Arthas Dialogue 01 Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet DialogueFirstArthas01 = True
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L08Arthas09 <gen> and display I've reached the first obelisk! It will take me a few moments to activate it. I'll need protection while I work.. Modify duration: Add 0 seconds and Don't wait
    Camera - Set a spacebar-point for AP11_SharedPlayer at (Position of Arthas)
    Wait for L08Arthas09 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Obelisk Third Arthas Dialogue
  Events
  Conditions
    DialogueThirdArthas Equal to False
  Actions
    Trigger - Add Voiceover_Obelisk_Third_Arthas_Dialogue_Q <gen> to the trigger queue (Checking conditions)
Voiceover Obelisk Third Arthas Dialogue Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet DialogueThirdArthas = True
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L08Arthas34 <gen> and display The third obelisk has been activated! Only one more remains! Rise up, my warriors!. Modify duration: Add 0 seconds and Don't wait
    Camera - Set a spacebar-point for AP11_SharedPlayer at (Position of Arthas)
    Wait for L08Arthas34 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Obelisk Second Arthas Dialogue
  Events
  Conditions
    DialogueSecondArthas Equal to False
  Actions
    Trigger - Add Voiceover_Obelisk_Second_Arthas_Dialogue_Q <gen> to the trigger queue (Checking conditions)
Voiceover Obelisk Second Arthas Dialogue Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet DialogueSecondArthas = True
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L08Arthas14 <gen> and display Another obelisk has been activated!. Modify duration: Add 0 seconds and Don't wait
    Camera - Set a spacebar-point for AP11_SharedPlayer at (Position of Arthas)
    Wait for L08Arthas14 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Obelisk Arthas Activate Dialogue 01
  Events
  Conditions
    DialogueArthasActivate01 Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_Obelisk_Arthas_Activate_Dialogue_01_Q <gen> to the trigger queue (Checking conditions)
Voiceover Obelisk Arthas Activate Dialogue 01 Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet DialogueArthasActivate01 = True
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L08Arthas12 <gen> and display This obelisk has been activated! We've got to push on!. Modify duration: Add 0 seconds and Wait
    Wait for L08Arthas12 <gen> to be 0 seconds from finished playing
    Cinematic - Send transmission to (All players) from Anubarak named Anub'arak: Play L08Anubarak11 <gen> and display The obelisk is now active and under our control. However, Illidan will likely try to take it from us. We must defend this point at all costs!. Modify duration: Add 0 seconds and Wait
    Wait for L08Anubarak11 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Obelisk Attacking the Obelisk
  Events
  Conditions
    DialogueArthasActivate01 Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_Obelisk_Arthas_Activate_Dialogue_01_Q <gen> to the trigger queue (Checking conditions)
Voiceover Obelisk Attacking the Obelisk Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet DialogueArthasActivate01 = True
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L08Arthas12 <gen> and display This obelisk has been activated! We've got to push on!. Modify duration: Add 0 seconds and Wait
    Wait for L08Arthas12 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Voiceover Arthas Kael Stole Jaina from you
  Events
    Unit - A unit comes within 512.00 of Blood Mage 0102 <gen>
  Conditions
    (Triggering unit) Equal to Arthas
    (Kael is alive) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_Arthas_Kael_Stole_Jaina_from_you_Q <gen> to the trigger queue (Checking conditions)
Voiceover Arthas Kael Stole Jaina from you Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet DialogueArthasActivate01 = True
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Arthas named King Arthas: Play L08Arthas30 <gen> and display Are you still upset that I stole Jaina from you, Kael?. Modify duration: Add 0 seconds and Wait
    Wait for L08Arthas30 <gen> to be 0 seconds from finished playing
    Cinematic - Send transmission to (All players) from Kael named Prince Kael'thas: Play L08Kael31 <gen> and display You've taken everything I ever cared for, Arthas. Vengeance is all I have left.. Modify duration: Add 0 seconds and Wait
    Wait for L08Kael31 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Tracking Illidan Obelisks for Voiceovers
  Events
  Conditions
    (Illidan is alive) Equal to True
  Actions
    If (ObeliskIllidanCount Equal to 1) then do (Run Voiceover_Obelisk_Illidan_Activate_Dialogue_01 <gen> (checking conditions)) else do (Do nothing)
    If (ObeliskIllidanCount Equal to 2) then do (Run Voiceover_Obelisk_Illidan_This_is_Mine_Dialogue <gen> (checking conditions)) else do (Do nothing)
    If (ObeliskIllidanCount Equal to 3) then do (Run Voiceover_Obelisk_Illidan_Reactivate_Dialogue <gen> (checking conditions)) else do (Do nothing)
Tracking Arthas Obelisks for Voiceovers
  Events
  Conditions
    (Arthas is alive) Equal to True
  Actions
    If (ObeliskArthasCount Equal to 1) then do (Run Voiceover_Obelisk_Arthas_Activate_Dialogue_01 <gen> (checking conditions)) else do (Do nothing)
    If (ObeliskArthasCount Equal to 2) then do (Run Voiceover_Obelisk_Second_Arthas_Dialogue <gen> (checking conditions)) else do (Do nothing)
    If (ObeliskArthasCount Equal to 3) then do (Run Voiceover_Obelisk_Third_Arthas_Dialogue <gen> (checking conditions)) else do (Do nothing)
Illidan Leaves Home
  Events
    Unit - A unit leaves IllidanHome <gen>
  Conditions
    (Leaving unit) Equal to Illidan
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet TempPointIllidan = (Position of Illidan)
    Wait 1.00 game-time seconds
    -------- Defenders --------
    Unit - Create 1.Naga Myrmidon for P07_COP_01 at TempPointIllidan facing 225.00 degrees
    AI - Recycle (Last created unit)'s guard position
    Wait 0.30 seconds
    Unit - Create 1.Naga Siren for P07_COP_01 at TempPointIllidan facing 225.00 degrees
    AI - Recycle (Last created unit)'s guard position
    Wait 0.30 seconds
    Unit - Create 1.Naga Siren for P07_COP_01 at TempPointIllidan facing 225.00 degrees
    AI - Recycle (Last created unit)'s guard position
    Wait 0.30 seconds
    Unit - Create 1.Snap Dragon for P07_COP_01 at TempPointIllidan facing 225.00 degrees
    AI - Recycle (Last created unit)'s guard position
    Wait 0.30 seconds
    Unit - Create 1.Dragon Turtle for P07_COP_01 at TempPointIllidan facing 225.00 degrees
    AI - Recycle (Last created unit)'s guard position
    Wait 0.30 seconds
    Unit - Create 1.Naga Royal Guard for P07_COP_01 at TempPointIllidan facing 225.00 degrees
    AI - Recycle (Last created unit)'s guard position
    Wait 0.30 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Difficulty level) Equal to Hard
      Then - Actions
        Unit - Create 1.Naga Myrmidon for P07_COP_01 at TempPointIllidan facing 225.00 degrees
        AI - Recycle (Last created unit)'s guard position
        Wait 0.30 seconds
        Unit - Create 1.Naga Siren for P07_COP_01 at TempPointIllidan facing 225.00 degrees
        AI - Recycle (Last created unit)'s guard position
        Wait 0.30 seconds
        Unit - Create 1.Dragon Turtle for P07_COP_01 at TempPointIllidan facing 225.00 degrees
        AI - Recycle (Last created unit)'s guard position
        Wait 0.30 seconds
      Else - Actions
    -------- Guards --------
    Unit Group - Pick every unit in COP01Buddies and do (Actions)
      Loop - Actions
        Unit - Move (Picked unit) instantly to TempPointIllidan, facing 225.00 degrees
        Unit - Unpause (Picked unit)
    -------- Cleanup --------
    Custom script: call RemoveLocation( udg_TempPointIllidan )
Illidan Move to COP01 circle
  Events
    Time - Every 5.00 seconds of game time
  Conditions
    (Illidan is alive) Equal to True
    IllidanSummoning Equal to False
    ObeliskBusyForIllidan01 Equal to False
    Obelisk01IllidanOwned Equal to False
    (COP_01_Area <gen> contains Illidan) Equal to True
  Actions
    Custom script: set bj_wantDestroyGroup = true
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in (Units in COP_01_Area <gen> matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is visible to P02_IllidanMainBase.) Equal to True)) and (((Owner of (Matching unit)) Equal to AP11_SharedPlayer) or ((Owner of (Matching unit)) Equal to Neutral Hostile))))) Equal to 0
      Then - Actions
      Else - Actions
        Skip remaining actions
    Unit - Order Illidan to Move To.PointObelisk01
Illidan Move to COP02 circle
  Events
    Time - Every 5.00 seconds of game time
  Conditions
    (Illidan is alive) Equal to True
    IllidanSummoning Equal to False
    ObeliskBusyForIllidan02 Equal to False
    Obelisk02IllidanOwned Equal to False
    (COP_02_Area <gen> contains Illidan) Equal to True
  Actions
    Custom script: set bj_wantDestroyGroup = true
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in (Units in COP_02_Area <gen> matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is visible to P02_IllidanMainBase.) Equal to True)) and (((Owner of (Matching unit)) Equal to AP11_SharedPlayer) or ((Owner of (Matching unit)) Equal to Neutral Hostile))))) Equal to 0
      Then - Actions
      Else - Actions
        Skip remaining actions
    Unit - Order Illidan to Move To.PointObelisk02
Illidan Move to COP03 circle
  Events
    Time - Every 5.00 seconds of game time
  Conditions
    (Illidan is alive) Equal to True
    IllidanSummoning Equal to False
    ObeliskBusyForIllidan03 Equal to False
    Obelisk03IllidanOwned Equal to False
    (COP_03_Area <gen> contains Illidan) Equal to True
  Actions
    Custom script: set bj_wantDestroyGroup = true
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in (Units in COP_03_Area <gen> matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is visible to P02_IllidanMainBase.) Equal to True)) and (((Owner of (Matching unit)) Equal to AP11_SharedPlayer) or ((Owner of (Matching unit)) Equal to Neutral Hostile))))) Equal to 0
      Then - Actions
      Else - Actions
        Skip remaining actions
    Unit - Order Illidan to Move To.PointObelisk03
Illidan Move to COP04 circle
  Events
    Time - Every 5.00 seconds of game time
  Conditions
    (Illidan is alive) Equal to True
    IllidanSummoning Equal to False
    ObeliskBusyForIllidan04 Equal to False
    Obelisk04IllidanOwned Equal to False
    (COP_04_Area <gen> contains Illidan) Equal to True
  Actions
    Custom script: set bj_wantDestroyGroup = true
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in (Units in COP_04_Area <gen> matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is visible to P02_IllidanMainBase.) Equal to True)) and (((Owner of (Matching unit)) Equal to AP11_SharedPlayer) or ((Owner of (Matching unit)) Equal to Neutral Hostile))))) Equal to 0
      Then - Actions
      Else - Actions
        Skip remaining actions
    Unit - Order Illidan to Move To.PointObelisk04
Arthas Damaged Event Registration
  Events
  Conditions
  Actions
    Trigger - Add to Arthas_Damaged <gen> the event (Arthas Takes damage)
Arthas Damaged
  Events
  Conditions
    (Arthas is alive) Equal to True
    ArthasSummoning Equal to True
  Actions
    Set VariableSet ArthasTakesDamageAmount = ((Damage taken) x 3.00)
    Unit - Set life of Arthas to ((Life of Arthas) - ArthasTakesDamageAmount)
Arthas builds at COP 01
  Events
    Unit - A unit owned by Player 11 (Dark Green).Begins construction
  Conditions
    ((Constructing structure) is A structure) Equal to True
    ((Constructing structure) is in (Units in COP_01_Area <gen>).) Equal to True
    Obelisk01IllidanOwned Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Run AI_COP_01_Lost <gen> (checking conditions)
    Game - Display to (All players) for 5.00 seconds the text: COP 01 Building
Arthas builds at COP 02
  Events
    Unit - A unit owned by Player 11 (Dark Green).Begins construction
  Conditions
    ((Constructing structure) is A structure) Equal to True
    ((Constructing structure) is in (Units in COP_02_Area <gen>).) Equal to True
    Obelisk02IllidanOwned Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Run AI_COP_02_Lost <gen> (checking conditions)
    Game - Display to (All players) for 5.00 seconds the text: COP 02 Building
Arthas builds at COP 03
  Events
    Unit - A unit owned by Player 11 (Dark Green).Begins construction
  Conditions
    ((Constructing structure) is A structure) Equal to True
    ((Constructing structure) is in (Units in COP_03_Area <gen>).) Equal to True
    Obelisk03IllidanOwned Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Run AI_COP_03_Lost <gen> (checking conditions)
    Game - Display to (All players) for 5.00 seconds the text: COP 03 Building
Arthas builds at COP 04
  Events
    Unit - A unit owned by Player 11 (Dark Green).Begins construction
  Conditions
    ((Constructing structure) is A structure) Equal to True
    ((Constructing structure) is in (Units in COP_04_Area <gen>).) Equal to True
    Obelisk04IllidanOwned Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Run AI_COP_04_Lost <gen> (checking conditions)
    Game - Display to (All players) for 5.00 seconds the text: COP 04 Building
Obelisk 01 Arthas
  Events
    Time - Every 1.00 seconds of game time
    Unit - A unit enters Obelisk_01 <gen>
  Conditions
    (Arthas is alive) Equal to True
    ArthasSummoning Equal to False
    ObeliskBusyForArthas01 Equal to False
    Obelisk01ArthasOwned Equal to False
    (Obelisk_01 <gen> contains Arthas) Equal to True
  Actions
    Unit - Move Arthas instantly to PointObelisk01, facing 270.00 degrees
    -------- Weaken Arthas --------
    Unit - Remove All buffs from Arthas
    -------- ----------- --------
    Unit - Order Arthas to Special - Channel.
    Trigger - Run Obelisk_01_Timer_Arthas <gen> (checking conditions)
    Set VariableSet ObeliskBusyForIllidan01 = True
    Set VariableSet ArthasSummoning = True
    -------- AI Ticked Off --------
    Unit Group - Pick every unit in (Units owned by P07_COP_01 matching ((((Matching unit) is alive) Equal to True) and ((Unit-type of (Matching unit)) Not equal to Mur'gul Slave)).) and do (Actions)
      Loop - Actions
        Unit - Order (Picked unit) to Attack.Arthas
Obelisk 02 Arthas
  Events
    Time - Every 1.00 seconds of game time
    Unit - A unit enters Obelisk_02 <gen>
  Conditions
    (Arthas is alive) Equal to True
    ArthasSummoning Equal to False
    ObeliskBusyForArthas02 Equal to False
    Obelisk02ArthasOwned Equal to False
    (Obelisk_02 <gen> contains Arthas) Equal to True
  Actions
    Unit - Move Arthas instantly to PointObelisk02, facing 180.00 degrees
    -------- Weaken Arthas --------
    Unit - Remove All buffs from Arthas
    -------- ----------- --------
    Unit - Order Arthas to Special - Channel.
    Trigger - Run Obelisk_02_Timer_Arthas <gen> (checking conditions)
    Set VariableSet ObeliskBusyForIllidan02 = True
    Set VariableSet ArthasSummoning = True
    -------- AI Ticked Off --------
    Unit Group - Pick every unit in (Units owned by P08_COP_02 matching ((((Matching unit) is alive) Equal to True) and ((Unit-type of (Matching unit)) Not equal to Mur'gul Slave)).) and do (Actions)
      Loop - Actions
        Unit - Order (Picked unit) to Attack.Arthas
Obelisk 03 Arthas
  Events
    Time - Every 1.00 seconds of game time
    Unit - A unit enters Obelisk_03 <gen>
  Conditions
    (Arthas is alive) Equal to True
    ArthasSummoning Equal to False
    ObeliskBusyForArthas03 Equal to False
    Obelisk03ArthasOwned Equal to False
    (Obelisk_03 <gen> contains Arthas) Equal to True
  Actions
    Unit - Move Arthas instantly to PointObelisk03, facing 90.00 degrees
    -------- Weaken Arthas --------
    Unit - Remove All buffs from Arthas
    -------- ----------- --------
    Unit - Order Arthas to Special - Channel.
    Trigger - Run Obelisk_03_Timer_Arthas <gen> (checking conditions)
    Set VariableSet ObeliskBusyForIllidan03 = True
    Set VariableSet ArthasSummoning = True
    -------- AI Ticked Off --------
    Unit Group - Pick every unit in (Units owned by P09_COP_03 matching ((((Matching unit) is alive) Equal to True) and ((Unit-type of (Matching unit)) Not equal to Mur'gul Slave)).) and do (Actions)
      Loop - Actions
        Unit - Order (Picked unit) to Attack.Arthas
Obelisk 04 Arthas
  Events
    Time - Every 1.00 seconds of game time
    Unit - A unit enters Obelisk_04 <gen>
  Conditions
    (Arthas is alive) Equal to True
    ArthasSummoning Equal to False
    ObeliskBusyForArthas04 Equal to False
    Obelisk04ArthasOwned Equal to False
    (Obelisk_04 <gen> contains Arthas) Equal to True
  Actions
    Unit - Move Arthas instantly to PointObelisk04, facing 0.00 degrees
    -------- Weaken Arthas --------
    Unit - Remove All buffs from Arthas
    -------- ----------- --------
    Unit - Order Arthas to Special - Channel.
    Trigger - Run Obelisk_04_Timer_Arthas <gen> (checking conditions)
    Set VariableSet ObeliskBusyForIllidan04 = True
    Set VariableSet ArthasSummoning = True
    -------- AI Ticked Off --------
    Unit Group - Pick every unit in (Units owned by P10_COP_04 matching ((((Matching unit) is alive) Equal to True) and ((Unit-type of (Matching unit)) Not equal to Mur'gul Slave)).) and do (Actions)
      Loop - Actions
        Unit - Order (Picked unit) to Attack.Arthas
Obelisk 01 Timer Arthas
  Events
  Conditions
  Actions
    -------- Check for Dialogue --------
    Trigger - Run Voiceover_Obelisk_First_Arthas_Dialogue_01 <gen> (checking conditions)
    -------- Start Timer --------
    Countdown Timer - Start Timer01Arthas as a One-shot timer that will expire in TimerSummoning seconds
    Countdown Timer - Create a timer window for Timer01Arthas with title Obelisk Control
    Set VariableSet TimerObeliskWindowArthas = (Last created timer window)
    Countdown Timer - Show TimerObeliskWindowArthas
    -------- Obelisk Animation --------
    Animation - Play Obelisk01's stand work (animationname) animation, using only Rare animations
    -------- Obelisk Sound --------
    Sound - Play ShimmeringPortalBirth <gen> at 85.00% volume, attached to Icecrown Obelisk 0003 <gen>
    -------- Special Effect --------
    Trigger - Run Arthas_Effect_Start <gen> (checking conditions)
Obelisk 02 Timer Arthas
  Events
  Conditions
  Actions
    -------- Check for Dialogue --------
    Trigger - Run Voiceover_Obelisk_First_Arthas_Dialogue_01 <gen> (checking conditions)
    -------- Start Timer --------
    Countdown Timer - Start Timer02Arthas as a One-shot timer that will expire in TimerSummoning seconds
    Countdown Timer - Create a timer window for Timer02Arthas with title Obelisk Control
    Set VariableSet TimerObeliskWindowArthas = (Last created timer window)
    Countdown Timer - Show TimerObeliskWindowArthas
    -------- Obelisk Animation --------
    Animation - Play Obelisk02's stand work (animationname) animation, using only Rare animations
    -------- Obelisk Sound --------
    Sound - Play ShimmeringPortalBirth <gen> at 85.00% volume, attached to Icecrown Obelisk 0002 <gen>
    -------- Special Effect --------
    Trigger - Run Arthas_Effect_Start <gen> (checking conditions)
Obelisk 03 Timer Arthas
  Events
  Conditions
  Actions
    -------- Check for Dialogue --------
    Trigger - Run Voiceover_Obelisk_First_Arthas_Dialogue_01 <gen> (checking conditions)
    -------- Start Timer --------
    Countdown Timer - Start Timer03Arthas as a One-shot timer that will expire in TimerSummoning seconds
    Countdown Timer - Create a timer window for Timer03Arthas with title Obelisk Control
    Set VariableSet TimerObeliskWindowArthas = (Last created timer window)
    Countdown Timer - Show TimerObeliskWindowArthas
    -------- Obelisk Animation --------
    Animation - Play Obelisk03's stand work (animationname) animation, using only Rare animations
    -------- Obelisk Sound --------
    Sound - Play ShimmeringPortalBirth <gen> at 85.00% volume, attached to Icecrown Obelisk 0000 <gen>
    -------- Special Effect --------
    Trigger - Run Arthas_Effect_Start <gen> (checking conditions)
Obelisk 04 Timer Arthas
  Events
  Conditions
  Actions
    -------- Check for Dialogue --------
    Trigger - Run Voiceover_Obelisk_First_Arthas_Dialogue_01 <gen> (checking conditions)
    -------- Start Timer --------
    Countdown Timer - Start Timer04Arthas as a One-shot timer that will expire in TimerSummoning seconds
    Countdown Timer - Create a timer window for Timer04Arthas with title Obelisk Control
    Set VariableSet TimerObeliskWindowArthas = (Last created timer window)
    Countdown Timer - Show TimerObeliskWindowArthas
    -------- Obelisk Animation --------
    Animation - Play Obelisk04's stand work (animationname) animation, using only Rare animations
    -------- Obelisk Sound --------
    Sound - Play ShimmeringPortalBirth <gen> at 85.00% volume, attached to Icecrown Obelisk 0001 <gen>
    -------- Special Effect --------
    Trigger - Run Arthas_Effect_Start <gen> (checking conditions)
Obelisk 01 Arthas Timer Expires
  Events
    Time - Timer01Arthas expires
  Conditions
    GameOver Equal to False
    (Arthas is alive) Equal to True
  Actions
    Unit - Order Arthas to Stop.
    Set VariableSet ObeliskArthasCount = (ObeliskArthasCount + 1)
    Countdown Timer - Destroy TimerObeliskWindowArthas
    -------- Decrement --------
    If (Obelisk01IllidanOwned Equal to True) then do (Set VariableSet ObeliskIllidanCount = (ObeliskIllidanCount - 1)) else do (Do nothing)
    -------- Send AI signal --------
    If (Obelisk01IllidanOwned Equal to True) then do (Run AI_COP_01_Lost <gen> (checking conditions)) else do (Do nothing)
    -------- Set variables --------
    Set VariableSet Obelisk01ArthasOwned = True
    Set VariableSet ArthasSummoning = False
    Set VariableSet Obelisk01IllidanOwned = False
    Set VariableSet ObeliskBusyForIllidan01 = False
    -------- Change color of COP and Obelisk --------
    Unit - Change color of Obelisk Circle 0037 <gen> to (Color of AP11_SharedPlayer)
    Unit - Change color of Icecrown Obelisk 0003 <gen> to (Color of AP11_SharedPlayer)
    -------- Obelisk Animation --------
    Animation - Play Obelisk01's stand alternate (animationname) animation, using only Rare animations
    -------- Run update leaderboard --------
    Trigger - Run Leaderboard_Update <gen> (checking conditions)
    -------- Quake --------
    Trigger - Run Quake_Shake <gen> (checking conditions)
    -------- Dialogue --------
    Trigger - Run Tracking_Arthas_Obelisks_for_Voiceovers <gen> (checking conditions)
    -------- Special Effect --------
    Trigger - Run Arthas_Effect_Stop <gen> (checking conditions)
    -------- AI command to Illidan --------
    Trigger - Run AI_COP_01_Lost <gen> (checking conditions)
    -------- Give Armor Back --------
Obelisk 02 Arthas Timer Expires
  Events
    Time - Timer02Arthas expires
  Conditions
    GameOver Equal to False
    (Arthas is alive) Equal to True
  Actions
    Unit - Order Arthas to Stop.
    Set VariableSet ObeliskArthasCount = (ObeliskArthasCount + 1)
    Countdown Timer - Destroy TimerObeliskWindowArthas
    -------- Decrement --------
    If (Obelisk02IllidanOwned Equal to True) then do (Set VariableSet ObeliskIllidanCount = (ObeliskIllidanCount - 1)) else do (Do nothing)
    -------- Send AI signal --------
    If (Obelisk02IllidanOwned Equal to True) then do (Run AI_COP_02_Lost <gen> (checking conditions)) else do (Do nothing)
    -------- Set variables --------
    Set VariableSet Obelisk02ArthasOwned = True
    Set VariableSet ArthasSummoning = False
    Set VariableSet Obelisk02IllidanOwned = False
    Set VariableSet ObeliskBusyForIllidan02 = False
    -------- Change color of COP and Obelisk --------
    Unit - Change color of Obelisk Circle 0005 <gen> to (Color of AP11_SharedPlayer)
    Unit - Change color of Icecrown Obelisk 0002 <gen> to (Color of AP11_SharedPlayer)
    -------- Obelisk Animation --------
    Animation - Play Obelisk02's stand alternate (animationname) animation, using only Rare animations
    -------- Run update leaderboard --------
    Trigger - Run Leaderboard_Update <gen> (checking conditions)
    -------- Quake --------
    Trigger - Run Quake_Shake <gen> (checking conditions)
    -------- Dialogue --------
    Trigger - Run Tracking_Arthas_Obelisks_for_Voiceovers <gen> (checking conditions)
    -------- Special Effect --------
    Trigger - Run Arthas_Effect_Stop <gen> (checking conditions)
    -------- AI command to Illidan --------
    Trigger - Run AI_COP_02_Lost <gen> (checking conditions)
    -------- Give Armor Back --------
Obelisk 03 Arthas Timer Expires
  Events
    Time - Timer03Arthas expires
  Conditions
    GameOver Equal to False
    (Arthas is alive) Equal to True
  Actions
    Unit - Order Arthas to Stop.
    Set VariableSet ObeliskArthasCount = (ObeliskArthasCount + 1)
    Countdown Timer - Destroy TimerObeliskWindowArthas
    -------- Decrement --------
    If (Obelisk03IllidanOwned Equal to True) then do (Set VariableSet ObeliskIllidanCount = (ObeliskIllidanCount - 1)) else do (Do nothing)
    -------- Send AI signal --------
    If (Obelisk03IllidanOwned Equal to True) then do (Run AI_COP_03_Lost <gen> (checking conditions)) else do (Do nothing)
    -------- Set variables --------
    Set VariableSet Obelisk03ArthasOwned = True
    Set VariableSet ArthasSummoning = False
    Set VariableSet Obelisk03IllidanOwned = False
    Set VariableSet ObeliskBusyForIllidan03 = False
    -------- Change color of COP and Obelisk --------
    Unit - Change color of Obelisk Circle 0036 <gen> to (Color of AP11_SharedPlayer)
    Unit - Change color of Icecrown Obelisk 0000 <gen> to (Color of AP11_SharedPlayer)
    -------- Obelisk Animation --------
    Animation - Play Obelisk03's stand alternate (animationname) animation, using only Rare animations
    -------- Run update leaderboard --------
    Trigger - Run Leaderboard_Update <gen> (checking conditions)
    -------- Quake --------
    Trigger - Run Quake_Shake <gen> (checking conditions)
    -------- Dialogue --------
    Trigger - Run Tracking_Arthas_Obelisks_for_Voiceovers <gen> (checking conditions)
    -------- Special Effect --------
    Trigger - Run Arthas_Effect_Stop <gen> (checking conditions)
    -------- AI command to Illidan --------
    Trigger - Run AI_COP_03_Lost <gen> (checking conditions)
    -------- Give Armor Back --------
Obelisk 04 Arthas Timer Expires
  Events
    Time - Timer04Arthas expires
  Conditions
    GameOver Equal to False
    (Arthas is alive) Equal to True
  Actions
    Unit - Order Arthas to Stop.
    Set VariableSet ObeliskArthasCount = (ObeliskArthasCount + 1)
    Countdown Timer - Destroy TimerObeliskWindowArthas
    -------- Decrement --------
    If (Obelisk04IllidanOwned Equal to True) then do (Set VariableSet ObeliskIllidanCount = (ObeliskIllidanCount - 1)) else do (Do nothing)
    -------- Send AI signal --------
    If (Obelisk04IllidanOwned Equal to True) then do (Run AI_COP_04_Lost <gen> (checking conditions)) else do (Do nothing)
    -------- Set variables --------
    Set VariableSet Obelisk04ArthasOwned = True
    Set VariableSet ArthasSummoning = False
    Set VariableSet Obelisk04IllidanOwned = False
    Set VariableSet ObeliskBusyForIllidan04 = False
    -------- Change color of COP and Obelisk --------
    Unit - Change color of Obelisk Circle 0007 <gen> to (Color of AP11_SharedPlayer)
    Unit - Change color of Icecrown Obelisk 0001 <gen> to (Color of AP11_SharedPlayer)
    -------- Obelisk Animation --------
    Animation - Play Obelisk04's stand alternate (animationname) animation, using only Rare animations
    -------- Run update leaderboard --------
    Trigger - Run Leaderboard_Update <gen> (checking conditions)
    -------- Quake --------
    Trigger - Run Quake_Shake <gen> (checking conditions)
    -------- Dialogue --------
    Trigger - Run Tracking_Arthas_Obelisks_for_Voiceovers <gen> (checking conditions)
    -------- Special Effect --------
    Trigger - Run Arthas_Effect_Stop <gen> (checking conditions)
    -------- AI command to Illidan --------
    Trigger - Run AI_COP_04_Lost <gen> (checking conditions)
    -------- Give Armor Back --------
Obelisks Arthas All Complete
  Events
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ObeliskArthasCount Greater than or equal to 4
      Then - Actions
        Trigger - Run Victory_All_Obelisks <gen> (checking conditions)
      Else - Actions
Arthas dies while summoning
  Events
    Unit - A unit owned by Player 4 (Purple).Dies
  Conditions
    (Dying unit) Equal to Arthas
    ArthasSummoning Equal to True
  Actions
    Countdown Timer - Destroy TimerObeliskWindowArthas
    Countdown Timer - Pause Timer01Arthas
    Countdown Timer - Pause Timer02Arthas
    Countdown Timer - Pause Timer03Arthas
    Countdown Timer - Pause Timer04Arthas
    Set VariableSet ArthasSummoning = False
    Set VariableSet ObeliskBusyForIllidan01 = False
    Set VariableSet ObeliskBusyForIllidan02 = False
    Set VariableSet ObeliskBusyForIllidan03 = False
    Set VariableSet ObeliskBusyForIllidan04 = False
    -------- Reset Obelisk Animations --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Obelisk01ArthasOwned Equal to False
        Obelisk01IllidanOwned Equal to False
      Then - Actions
        Animation - Play Obelisk01's stand (animationname) animation, using only Rare animations
      Else - Actions
        Animation - Play Obelisk01's stand alternate (animationname) animation, using only Rare animations
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Obelisk02ArthasOwned Equal to False
        Obelisk02IllidanOwned Equal to False
      Then - Actions
        Animation - Play Obelisk02's stand (animationname) animation, using only Rare animations
      Else - Actions
        Animation - Play Obelisk02's stand alternate (animationname) animation, using only Rare animations
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Obelisk03ArthasOwned Equal to False
        Obelisk03IllidanOwned Equal to False
      Then - Actions
        Animation - Play Obelisk03's stand (animationname) animation, using only Rare animations
      Else - Actions
        Animation - Play Obelisk03's stand alternate (animationname) animation, using only Rare animations
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Obelisk04ArthasOwned Equal to False
        Obelisk04ArthasOwned Equal to False
      Then - Actions
        Animation - Play Obelisk04's stand (animationname) animation, using only Rare animations
      Else - Actions
        Animation - Play Obelisk04's stand alternate (animationname) animation, using only Rare animations
    -------- Special Effect --------
    Trigger - Run Arthas_Effect_Stop <gen> (checking conditions)
    -------- Give Armor Back --------
    Hero - Modify Agility of Arthas: Add 15.
Arthas Effect Start
  Events
  Conditions
    ArthasEffectOn Equal to False
  Actions
    Set VariableSet ArthasEffectOn = True
    Trigger - Run Arthas_Effect_Create <gen> (checking conditions)
    Countdown Timer - Start ArthasEffectTimer as a Repeating timer that will expire in 1.50 seconds
Arthas Effect Stop
  Events
  Conditions
    ArthasEffectOn Equal to True
  Actions
    Set VariableSet ArthasEffectOn = False
    Trigger - Run Arthas_Effect_Destroy <gen> (checking conditions)
    Countdown Timer - Pause ArthasEffectTimer
Arthas Effect Pulse
  Events
    Time - ArthasEffectTimer expires
  Conditions
  Actions
    Trigger - Run Arthas_Effect_Destroy <gen> (checking conditions)
    Trigger - Run Arthas_Effect_Create <gen> (checking conditions)
Arthas Effect Create
  Events
  Conditions
    ArthasEffectExists Equal to False
  Actions
    Set VariableSet ArthasEffectExists = True
    -------- Create Effect --------
    Special Effect - Create a special effect attached to the origin (attachpoint) of Arthas using Abilities\Spells\Other\Charm\CharmTarget.mdl
    Set VariableSet ArthasEffect = (Last created special effect)
Arthas Effect Destroy
  Events
  Conditions
    ArthasEffectExists Equal to True
  Actions
    Set VariableSet ArthasEffectExists = False
    -------- Destroy Effect --------
    Special Effect - Destroy ArthasEffect
Illidan Effect Start
  Events
  Conditions
    IllidanEffectOn Equal to False
  Actions
    Set VariableSet IllidanEffectOn = True
    Trigger - Run Illidan_Effect_Create <gen> (checking conditions)
    Countdown Timer - Start IllidanEffectTimer as a Repeating timer that will expire in 1.50 seconds
Illidan Effect Stop
  Events
  Conditions
    IllidanEffectOn Equal to True
  Actions
    Set VariableSet IllidanEffectOn = False
    Trigger - Run Illidan_Effect_Destroy <gen> (checking conditions)
    Countdown Timer - Pause IllidanEffectTimer
Illidan Effect Pulse
  Events
    Time - IllidanEffectTimer expires
  Conditions
  Actions
    Trigger - Run Illidan_Effect_Destroy <gen> (checking conditions)
    Trigger - Run Illidan_Effect_Create <gen> (checking conditions)
Illidan Effect Create
  Events
  Conditions
    IllidanEffectExists Equal to False
  Actions
    Set VariableSet IllidanEffectExists = True
    -------- Create Effect --------
    Special Effect - Create a special effect attached to the origin (attachpoint) of Illidan using Abilities\Spells\Other\Charm\CharmTarget.mdl
    Set VariableSet IllidanEffect = (Last created special effect)
Illidan Effect Destroy
  Events
  Conditions
    IllidanEffectExists Equal to True
  Actions
    Set VariableSet IllidanEffectExists = False
    -------- Destroy Effect --------
    Special Effect - Destroy IllidanEffect
Obelisk04 Patrol
  Events
    Map initialization
  Conditions
  Actions
    Unit Group - Pick every unit in (Units in COP04Patrol01Start <gen>) and do (Order (Picked unit) to Patrol To.(Center of COP04Patrol02 <gen>))
    Unit Group - Pick every unit in (Units in COP04Patrol02Start <gen>) and do (Order (Picked unit) to Patrol To.(Center of COP04SpawnSlave <gen>))
Obelisk 01 Illidan
  Events
    Time - Every 1.00 seconds of game time
    Unit - A unit enters Obelisk_01 <gen>
  Conditions
    (Illidan is alive) Equal to True
    IllidanSummoning Equal to False
    ObeliskBusyForIllidan01 Equal to False
    Obelisk01IllidanOwned Equal to False
    (Obelisk_01 <gen> contains Illidan) Equal to True
  Actions
    Custom script: set bj_wantDestroyGroup = true
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in (Units in COP_01_Area <gen> matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is visible to P02_IllidanMainBase.) Equal to True)) and (((Owner of (Matching unit)) Equal to AP11_SharedPlayer) or ((Owner of (Matching unit)) Equal to Neutral Hostile))))) Equal to 0
      Then - Actions
      Else - Actions
        Skip remaining actions
    Unit - Move Illidan instantly to PointObelisk01, facing 270.00 degrees
    Unit - Remove All buffs from Illidan
    Unit - Order Illidan to Special - Channel.
    Trigger - Run Obelisk_01Timer_Illidan <gen> (checking conditions)
    Set VariableSet ObeliskBusyForArthas01 = True
    Set VariableSet IllidanSummoning = True
    -------- AI Command --------
    Trigger - Run AI_COP_Stepped_On <gen> (checking conditions)
Obelisk 02 Illidan
  Events
    Time - Every 1.00 seconds of game time
    Unit - A unit enters Obelisk_02 <gen>
  Conditions
    (Illidan is alive) Equal to True
    IllidanSummoning Equal to False
    ObeliskBusyForIllidan02 Equal to False
    Obelisk02IllidanOwned Equal to False
    (Obelisk_02 <gen> contains Illidan) Equal to True
  Actions
    Custom script: set bj_wantDestroyGroup = true
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in (Units in COP_02_Area <gen> matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is visible to P02_IllidanMainBase.) Equal to True)) and (((Owner of (Matching unit)) Equal to AP11_SharedPlayer) or ((Owner of (Matching unit)) Equal to Neutral Hostile))))) Equal to 0
      Then - Actions
      Else - Actions
        Skip remaining actions
    Unit - Move Illidan instantly to PointObelisk02, facing 180.00 degrees
    Unit - Remove All buffs from Illidan
    Unit - Order Illidan to Special - Channel.
    Trigger - Run Obelisk_02Timer_Illidan <gen> (checking conditions)
    Set VariableSet ObeliskBusyForArthas02 = True
    Set VariableSet IllidanSummoning = True
    -------- AI Command --------
    Trigger - Run AI_COP_Stepped_On <gen> (checking conditions)
Obelisk 03 Illidan
  Events
    Time - Every 1.00 seconds of game time
    Unit - A unit enters Obelisk_03 <gen>
  Conditions
    (Illidan is alive) Equal to True
    IllidanSummoning Equal to False
    ObeliskBusyForIllidan03 Equal to False
    Obelisk03IllidanOwned Equal to False
    (Obelisk_03 <gen> contains Illidan) Equal to True
  Actions
    Custom script: set bj_wantDestroyGroup = true
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in (Units in COP_03_Area <gen> matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is visible to P02_IllidanMainBase.) Equal to True)) and (((Owner of (Matching unit)) Equal to AP11_SharedPlayer) or ((Owner of (Matching unit)) Equal to Neutral Hostile))))) Equal to 0
      Then - Actions
      Else - Actions
        Skip remaining actions
    Unit - Move Illidan instantly to PointObelisk03, facing 90.00 degrees
    Unit - Remove All buffs from Illidan
    Unit - Order Illidan to Special - Channel.
    Trigger - Run Obelisk_03Timer_Illidan <gen> (checking conditions)
    Set VariableSet ObeliskBusyForArthas03 = True
    Set VariableSet IllidanSummoning = True
    -------- AI Command --------
    Trigger - Run AI_COP_Stepped_On <gen> (checking conditions)
Obelisk 04 Illidan
  Events
    Time - Every 1.00 seconds of game time
    Unit - A unit enters Obelisk_04 <gen>
  Conditions
    (Illidan is alive) Equal to True
    IllidanSummoning Equal to False
    ObeliskBusyForIllidan04 Equal to False
    Obelisk04IllidanOwned Equal to False
    (Obelisk_04 <gen> contains Illidan) Equal to True
  Actions
    Custom script: set bj_wantDestroyGroup = true
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in (Units in COP_04_Area <gen> matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is visible to P02_IllidanMainBase.) Equal to True)) and (((Owner of (Matching unit)) Equal to AP11_SharedPlayer) or ((Owner of (Matching unit)) Equal to Neutral Hostile))))) Equal to 0
      Then - Actions
      Else - Actions
        Skip remaining actions
    Unit - Move Illidan instantly to PointObelisk04, facing 0.00 degrees
    Unit - Remove All buffs from Illidan
    Unit - Order Illidan to Special - Channel.
    Trigger - Run Obelisk_04Timer_Illidan <gen> (checking conditions)
    Set VariableSet ObeliskBusyForArthas04 = True
    Set VariableSet IllidanSummoning = True
    -------- AI Command --------
    Trigger - Run AI_COP_Stepped_On <gen> (checking conditions)
Obelisk 01Timer Illidan
  Events
  Conditions
  Actions
    -------- Check for Dialogue --------
    Trigger - Run Voiceover_Obelisk_First_Illidan_Dialogue_01 <gen> (checking conditions)
    -------- Start Timer --------
    Countdown Timer - Start Timer01Illidan as a One-shot timer that will expire in TimerSummoning seconds
    -------- Obelisk Animation --------
    Animation - Play Obelisk01's stand work (animationname) animation, using only Rare animations
    -------- Obelisk Sound --------
    Sound - Play ShimmeringPortalBirth <gen> at 85.00% volume, attached to Icecrown Obelisk 0003 <gen>
    -------- Special Effect --------
    Trigger - Run Illidan_Effect_Start <gen> (checking conditions)
Obelisk 02Timer Illidan
  Events
  Conditions
  Actions
    -------- Check for Dialogue --------
    Trigger - Run Voiceover_Obelisk_First_Illidan_Dialogue_01 <gen> (checking conditions)
    -------- Start Timer --------
    Countdown Timer - Start Timer02Illidan as a One-shot timer that will expire in TimerSummoning seconds
    -------- Obelisk Animation --------
    Animation - Play Obelisk02's stand work (animationname) animation, using only Rare animations
    -------- Obelisk Sound --------
    Sound - Play ShimmeringPortalBirth <gen> at 85.00% volume, attached to Icecrown Obelisk 0002 <gen>
    -------- Special Effect --------
    Trigger - Run Illidan_Effect_Start <gen> (checking conditions)
Obelisk 03Timer Illidan
  Events
  Conditions
  Actions
    -------- Check for Dialogue --------
    Trigger - Run Voiceover_Obelisk_First_Illidan_Dialogue_01 <gen> (checking conditions)
    -------- Start Timer --------
    Countdown Timer - Start Timer03Illidan as a One-shot timer that will expire in TimerSummoning seconds
    -------- Obelisk Animation --------
    Animation - Play Obelisk03's stand work (animationname) animation, using only Rare animations
    -------- Obelisk Sound --------
    Sound - Play ShimmeringPortalBirth <gen> at 85.00% volume, attached to Icecrown Obelisk 0000 <gen>
    -------- Special Effect --------
    Trigger - Run Illidan_Effect_Start <gen> (checking conditions)
Obelisk 04Timer Illidan
  Events
  Conditions
  Actions
    -------- Check for Dialogue --------
    Trigger - Run Voiceover_Obelisk_First_Illidan_Dialogue_01 <gen> (checking conditions)
    -------- Start Timer --------
    Countdown Timer - Start Timer04Illidan as a One-shot timer that will expire in TimerSummoning seconds
    -------- Obelisk Animation --------
    Animation - Play Obelisk04's stand work (animationname) animation, using only Rare animations
    -------- Obelisk Sound --------
    Sound - Play ShimmeringPortalBirth <gen> at 85.00% volume, attached to Icecrown Obelisk 0001 <gen>
    -------- Special Effect --------
    Trigger - Run Illidan_Effect_Start <gen> (checking conditions)
Obelisk 01 Illidan Timer Expires
  Events
    Time - Timer01Illidan expires
  Conditions
    GameOver Equal to False
    (Illidan is alive) Equal to True
  Actions
    Unit - Order Illidan to Stop.
    Set VariableSet ObeliskIllidanCount = (ObeliskIllidanCount + 1)
    Trigger - Run Obelisks_Illidan_All_Complete <gen> (checking conditions)
    -------- Decrement --------
    If (Obelisk01ArthasOwned Equal to True) then do (Set VariableSet ObeliskArthasCount = (ObeliskArthasCount - 1)) else do (Do nothing)
    -------- Send AI signal --------
    Trigger - Run AI_COP_01_Gained <gen> (checking conditions)
    -------- Set variables --------
    Set VariableSet Obelisk01IllidanOwned = True
    Set VariableSet IllidanSummoning = False
    Set VariableSet Obelisk01ArthasOwned = False
    Set VariableSet ObeliskBusyForArthas01 = False
    -------- Change color of COP and Obelisk --------
    Unit - Change color of Obelisk Circle 0037 <gen> to (Color of P02_IllidanMainBase)
    Unit - Change color of Icecrown Obelisk 0003 <gen> to (Color of P02_IllidanMainBase)
    -------- Obelisk Animation --------
    Animation - Play Obelisk01's stand alternate (animationname) animation, using only Rare animations
    -------- Run update leaderboard --------
    Trigger - Run Leaderboard_Update <gen> (checking conditions)
    -------- Quake --------
    Trigger - Run Quake_Shake <gen> (checking conditions)
    -------- Dialogue --------
    Trigger - Run Tracking_Illidan_Obelisks_for_Voiceovers <gen> (checking conditions)
    Trigger - Add Warning_Illidan_Obelisk <gen> to the trigger queue (Checking conditions)
    -------- Special Effect --------
    Trigger - Run Illidan_Effect_Stop <gen> (checking conditions)
    -------- Spawn Slaves --------
    Unit - Create 1 Mur'gul Slave for P07_COP_01 at PointCOP01SpawnSlave facing (Position of Obelisk Circle 0005 <gen>)
    Unit - Order (Last created unit) to build a Tidal Guardian at (Center of COP01_TidalGuardianA <gen>)
    Unit - Create 1 Mur'gul Slave for P07_COP_01 at PointCOP01SpawnSlave facing (Position of Obelisk Circle 0005 <gen>)
    Unit - Order (Last created unit) to build a Tidal Guardian at (Center of COP01_TidalGuardianB <gen>)
    Unit - Create 1 Mur'gul Slave for P07_COP_01 at PointCOP01SpawnSlave facing (Position of Obelisk Circle 0005 <gen>)
    Unit - Order (Last created unit) to build a Tidal Guardian at (Center of COP01_TidalGuardianC <gen>)
Obelisk 02 Illidan Timer Expires
  Events
    Time - Timer02Illidan expires
  Conditions
    GameOver Equal to False
    (Illidan is alive) Equal to True
  Actions
    Unit - Order Illidan to Stop.
    Set VariableSet ObeliskIllidanCount = (ObeliskIllidanCount + 1)
    Trigger - Run Obelisks_Illidan_All_Complete <gen> (checking conditions)
    -------- Decrement --------
    If (Obelisk02ArthasOwned Equal to True) then do (Set VariableSet ObeliskArthasCount = (ObeliskArthasCount - 1)) else do (Do nothing)
    -------- Send AI signal --------
    Trigger - Run AI_COP_02_Gained <gen> (checking conditions)
    -------- Set variables --------
    Set VariableSet Obelisk02IllidanOwned = True
    Set VariableSet IllidanSummoning = False
    Set VariableSet Obelisk02ArthasOwned = False
    Set VariableSet ObeliskBusyForArthas02 = False
    -------- Change color of COP and Obelisk --------
    Unit - Change color of Obelisk Circle 0005 <gen> to (Color of P02_IllidanMainBase)
    Unit - Change color of Icecrown Obelisk 0002 <gen> to (Color of P02_IllidanMainBase)
    -------- Obelisk Animation --------
    Animation - Play Obelisk02's stand alternate (animationname) animation, using only Rare animations
    -------- Run update leaderboard --------
    Trigger - Run Leaderboard_Update <gen> (checking conditions)
    -------- Quake --------
    Trigger - Run Quake_Shake <gen> (checking conditions)
    -------- Dialogue --------
    Trigger - Run Tracking_Illidan_Obelisks_for_Voiceovers <gen> (checking conditions)
    Trigger - Add Warning_Illidan_Obelisk <gen> to the trigger queue (Checking conditions)
    -------- Special Effect --------
    Trigger - Run Illidan_Effect_Stop <gen> (checking conditions)
    -------- Spawn Slaves --------
    Unit - Create 1 Mur'gul Slave for P08_COP_02 at (Center of COP02SpawnSlave <gen>) facing (Position of Obelisk Circle 0005 <gen>)
    Unit - Order (Last created unit) to build a Tidal Guardian at (Center of COP02_TidalGuardianA <gen>)
    Unit - Create 1 Mur'gul Slave for P08_COP_02 at (Center of COP02SpawnSlave <gen>) facing (Position of Obelisk Circle 0005 <gen>)
    Unit - Order (Last created unit) to build a Tidal Guardian at (Center of COP02_TidalGuardianB <gen>)
    Unit - Create 1 Mur'gul Slave for P08_COP_02 at (Center of COP02SpawnSlave <gen>) facing (Position of Obelisk Circle 0005 <gen>)
Obelisk 03 Illidan Timer Expires
  Events
    Time - Timer03Illidan expires
  Conditions
    GameOver Equal to False
    (Illidan is alive) Equal to True
  Actions
    Unit - Order Illidan to Stop.
    Set VariableSet ObeliskIllidanCount = (ObeliskIllidanCount + 1)
    Trigger - Run Obelisks_Illidan_All_Complete <gen> (checking conditions)
    -------- Decrement --------
    If (Obelisk03ArthasOwned Equal to True) then do (Set VariableSet ObeliskArthasCount = (ObeliskArthasCount - 1)) else do (Do nothing)
    -------- Send AI signal --------
    Trigger - Run AI_COP_03_Gained <gen> (checking conditions)
    -------- Set variables --------
    Set VariableSet Obelisk03IllidanOwned = True
    Set VariableSet IllidanSummoning = False
    Set VariableSet Obelisk03ArthasOwned = False
    Set VariableSet ObeliskBusyForArthas03 = False
    -------- Change color of COP and Obelisk --------
    Unit - Change color of Obelisk Circle 0036 <gen> to (Color of P02_IllidanMainBase)
    Unit - Change color of Icecrown Obelisk 0000 <gen> to (Color of P02_IllidanMainBase)
    -------- Obelisk Animation --------
    Animation - Play Obelisk03's stand alternate (animationname) animation, using only Rare animations
    -------- Run update leaderboard --------
    Trigger - Run Leaderboard_Update <gen> (checking conditions)
    -------- Quake --------
    Trigger - Run Quake_Shake <gen> (checking conditions)
    -------- Dialogue --------
    Trigger - Run Tracking_Illidan_Obelisks_for_Voiceovers <gen> (checking conditions)
    Trigger - Add Warning_Illidan_Obelisk <gen> to the trigger queue (Checking conditions)
    -------- Special Effect --------
    Trigger - Run Illidan_Effect_Stop <gen> (checking conditions)
    -------- Spawn Slaves --------
    Unit - Create 1 Mur'gul Slave for P09_COP_03 at (Center of COP03SpawnSlave <gen>) facing (Position of Obelisk Circle 0036 <gen>)
    Unit - Order (Last created unit) to build a Tidal Guardian at (Center of COP03_TidalGuardianA <gen>)
    Unit - Create 1 Mur'gul Slave for P09_COP_03 at (Center of COP03SpawnSlave <gen>) facing (Position of Obelisk Circle 0036 <gen>)
    Unit - Order (Last created unit) to build a Tidal Guardian at (Center of COP03_TidalGuardianB <gen>)
    Unit - Create 1 Mur'gul Slave for P09_COP_03 at (Center of COP03SpawnSlave <gen>) facing (Position of Obelisk Circle 0036 <gen>)
Obelisk 04 Illidan Timer Expires
  Events
    Time - Timer04Illidan expires
  Conditions
    GameOver Equal to False
    (Illidan is alive) Equal to True
  Actions
    Unit - Order Illidan to Stop.
    Set VariableSet ObeliskIllidanCount = (ObeliskIllidanCount + 1)
    Trigger - Run Obelisks_Illidan_All_Complete <gen> (checking conditions)
    -------- Decrement --------
    If (Obelisk04ArthasOwned Equal to True) then do (Set VariableSet ObeliskArthasCount = (ObeliskArthasCount - 1)) else do (Do nothing)
    -------- Send AI signal --------
    Trigger - Run AI_COP_04_Gained <gen> (checking conditions)
    -------- Set variables --------
    Set VariableSet Obelisk04IllidanOwned = True
    Set VariableSet IllidanSummoning = False
    Set VariableSet Obelisk04ArthasOwned = False
    Set VariableSet ObeliskBusyForArthas04 = False
    -------- Change color of COP and Obelisk --------
    Unit - Change color of Obelisk Circle 0007 <gen> to (Color of P02_IllidanMainBase)
    Unit - Change color of Icecrown Obelisk 0001 <gen> to (Color of P02_IllidanMainBase)
    -------- Obelisk Animation --------
    Animation - Play Obelisk04's stand alternate (animationname) animation, using only Rare animations
    -------- Run update leaderboard --------
    Trigger - Run Leaderboard_Update <gen> (checking conditions)
    -------- Quake --------
    Trigger - Run Quake_Shake <gen> (checking conditions)
    -------- Dialogue --------
    Trigger - Run Tracking_Illidan_Obelisks_for_Voiceovers <gen> (checking conditions)
    Trigger - Add Warning_Illidan_Obelisk <gen> to the trigger queue (Checking conditions)
    -------- Special Effect --------
    Trigger - Run Illidan_Effect_Stop <gen> (checking conditions)
    -------- Spawn Slaves --------
    Unit - Create 1 Mur'gul Slave for P10_COP_04 at (Center of COP04SpawnSlave <gen>) facing (Position of Obelisk Circle 0007 <gen>)
    Unit - Order (Last created unit) to build a Tidal Guardian at (Center of COP04_TidalGuardianA <gen>)
    Unit - Create 1 Mur'gul Slave for P10_COP_04 at (Center of COP04SpawnSlave <gen>) facing (Position of Obelisk Circle 0007 <gen>)
    Unit - Order (Last created unit) to build a Tidal Guardian at (Center of COP04_TidalGuardianB <gen>)
    Unit - Create 1 Mur'gul Slave for P10_COP_04 at (Center of COP04SpawnSlave <gen>) facing (Position of Obelisk Circle 0007 <gen>)
Obelisks Illidan All Complete
  Events
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ObeliskIllidanCount Greater than or equal to 4
      Then - Actions
        Trigger - Run Defeat_Obelisks_Lost <gen> (checking conditions)
      Else - Actions
Illidan dies while summoning
  Events
    Unit - A unit owned by Player 2 (Blue).Dies
  Conditions
    (Dying unit) Equal to Illidan
    IllidanSummoning Equal to True
  Actions
    Set VariableSet IllidanSummoning = False
    Set VariableSet ObeliskBusyForArthas01 = False
    Set VariableSet ObeliskBusyForArthas02 = False
    Set VariableSet ObeliskBusyForArthas03 = False
    Set VariableSet ObeliskBusyForArthas04 = False
    Countdown Timer - Pause Timer01Illidan
    Countdown Timer - Pause Timer02Illidan
    Countdown Timer - Pause Timer03Illidan
    Countdown Timer - Pause Timer04Illidan
    -------- Reset Obelisk Animations --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Obelisk01ArthasOwned Equal to False
        Obelisk01IllidanOwned Equal to False
      Then - Actions
        Animation - Play Obelisk01's stand (animationname) animation, using only Rare animations
      Else - Actions
        Animation - Play Obelisk01's stand alternate (animationname) animation, using only Rare animations
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Obelisk02ArthasOwned Equal to False
        Obelisk02IllidanOwned Equal to False
      Then - Actions
        Animation - Play Obelisk02's stand (animationname) animation, using only Rare animations
      Else - Actions
        Animation - Play Obelisk02's stand alternate (animationname) animation, using only Rare animations
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Obelisk03ArthasOwned Equal to False
        Obelisk03IllidanOwned Equal to False
      Then - Actions
        Animation - Play Obelisk03's stand (animationname) animation, using only Rare animations
      Else - Actions
        Animation - Play Obelisk03's stand alternate (animationname) animation, using only Rare animations
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Obelisk04ArthasOwned Equal to False
        Obelisk04ArthasOwned Equal to False
      Then - Actions
        Animation - Play Obelisk04's stand (animationname) animation, using only Rare animations
      Else - Actions
        Animation - Play Obelisk04's stand alternate (animationname) animation, using only Rare animations
    -------- Special Effect --------
    Trigger - Run Illidan_Effect_Stop <gen> (checking conditions)
Obelisk 01 Illidan Slave Check
  Events
    Unit - A unit enters COP_01_Area <gen>
  Conditions
    (Entering unit) Equal to Illidan
    SlavesDeadCOP01 Equal to True
    Obelisk01IllidanOwned Equal to True
  Actions
    -------- Spawn Slave --------
    Unit - Create 3 Mur'gul Slave for P07_COP_01 at PointCOP01SpawnSlave facing (Position of Obelisk Circle 0005 <gen>)
    Set VariableSet SlavesDeadCOP01 = False
    -------- Send AI signal --------
    Trigger - Run AI_COP_01_Gained <gen> (checking conditions)
Obelisk 02 Illidan Slave Check
  Events
    Unit - A unit enters COP_02_Area <gen>
  Conditions
    (Entering unit) Equal to Illidan
    SlavesDeadCOP02 Equal to True
    Obelisk02IllidanOwned Equal to True
  Actions
    -------- Spawn Slave --------
    Unit - Create 3 Mur'gul Slave for P08_COP_02 at PointCOP02SpawnSlave facing (Position of Obelisk Circle 0037 <gen>)
    Set VariableSet SlavesDeadCOP02 = False
    -------- Send AI signal --------
    Trigger - Run AI_COP_02_Gained <gen> (checking conditions)
Obelisk 03 Illidan Slave Check
  Events
    Unit - A unit enters COP_03_Area <gen>
  Conditions
    (Entering unit) Equal to Illidan
    SlavesDeadCOP03 Equal to True
    Obelisk03IllidanOwned Equal to True
  Actions
    -------- Spawn Slave --------
    Unit - Create 3 Mur'gul Slave for P09_COP_03 at PointCOP03SpawnSlave facing (Position of Obelisk Circle 0036 <gen>)
    Set VariableSet SlavesDeadCOP03 = False
    -------- Send AI signal --------
    Trigger - Run AI_COP_03_Gained <gen> (checking conditions)
Obelisk 04 Illidan Slave Check
  Events
    Unit - A unit enters COP_04_Area <gen>
  Conditions
    (Entering unit) Equal to Illidan
    SlavesDeadCOP04 Equal to True
    Obelisk04IllidanOwned Equal to True
  Actions
    -------- Spawn Slave --------
    Unit - Create 3 Mur'gul Slave for P10_COP_04 at PointCOP04SpawnSlave facing (Position of Obelisk Circle 0007 <gen>)
    Set VariableSet SlavesDeadCOP04 = False
    -------- Send AI signal --------
    Trigger - Run AI_COP_04_Gained <gen> (checking conditions)
Obelisks Setup
  Events
    Time - Elapsed game time is 0.20 seconds
  Conditions
  Actions
    -------- Set variables --------
    Set VariableSet Obelisk01IllidanOwned = False
    Set VariableSet Obelisk02IllidanOwned = False
    Set VariableSet Obelisk03IllidanOwned = False
    Set VariableSet Obelisk04IllidanOwned = False
    -------- Change color of COP --------
    Unit - Change color of Obelisk Circle 0005 <gen> to (Color of P02_IllidanMainBase)
    Unit - Change color of Obelisk Circle 0037 <gen> to (Color of P02_IllidanMainBase)
    -------- Obelisk Setup --------
    Set VariableSet Obelisk01 = Icecrown Obelisk 0003 <gen>
    Set VariableSet Obelisk02 = Icecrown Obelisk 0002 <gen>
    Set VariableSet Obelisk03 = Icecrown Obelisk 0000 <gen>
    Set VariableSet Obelisk04 = Icecrown Obelisk 0001 <gen>
    -------- Obelisk Animation --------
    Animation - Play Obelisk01's stand alternate (animationname) animation, using only Rare animations
    Animation - Play Obelisk02's stand alternate (animationname) animation, using only Rare animations
COP Town 01 Green Dies
  Events
    Unit - A unit owned by Player 7 (Green).Dies
  Conditions
    (Unit-type of (Dying unit)) Equal to Mur'gul Slave
  Actions
    If ((Number of living Mur'gul Slave units owned by P07_COP_01) Less than or equal to 0) then do (Run AI_COP_01_Units_Dead <gen> (checking conditions)) else do (Do nothing)
COP Town 02 Pink Dies
  Events
    Unit - A unit owned by Player 8 (Pink).Dies
  Conditions
    (Unit-type of (Dying unit)) Equal to Mur'gul Slave
  Actions
    If ((Number of living Mur'gul Slave units owned by P08_COP_02) Less than or equal to 0) then do (Run AI_COP_02_Units_Dead <gen> (checking conditions)) else do (Do nothing)
COP Town 03 Grey Dies
  Events
    Unit - A unit owned by Player 9 (Gray).Dies
  Conditions
    (Unit-type of (Dying unit)) Equal to Mur'gul Slave
  Actions
    If ((Number of living Mur'gul Slave units owned by P09_COP_03) Less than or equal to 0) then do (Run AI_COP_03_Units_Dead <gen> (checking conditions)) else do (Do nothing)
COP Town 04 Light Blue Dies
  Events
    Unit - A unit owned by Player 10 (Light Blue).Dies
  Conditions
    (Unit-type of (Dying unit)) Equal to Mur'gul Slave
  Actions
    If ((Number of living Mur'gul Slave units owned by P10_COP_04) Less than or equal to 0) then do (Run AI_COP_04_Units_Dead <gen> (checking conditions)) else do (Do nothing)
COP Town 01 Unit Group
  Events
    Unit - A unit enters COP_01_Area <gen>
  Conditions
    (Owner of (Entering unit)) Equal to P07_COP_01
  Actions
    Unit Group - Add (Entering unit) to COP01UnitGroup
COP Town 02 Unit Group
  Events
    Unit - A unit enters COP_02_Area <gen>
  Conditions
    (Owner of (Entering unit)) Equal to P08_COP_02
  Actions
    Unit Group - Add (Entering unit) to COP02UnitGroup
COP Town 03 Unit Group
  Events
    Unit - A unit enters COP_03_Area <gen>
  Conditions
    (Owner of (Entering unit)) Equal to P09_COP_03
  Actions
    Unit Group - Add (Entering unit) to COP03UnitGroup
COP Town 04 Unit Group
  Events
    Unit - A unit enters COP_04_Area <gen>
  Conditions
    (Owner of (Entering unit)) Equal to P10_COP_04
  Actions
    Unit Group - Add (Entering unit) to COP04UnitGroup
Patch of Ground Set COP 01
  Events
    Unit - A unit owned by Player 11 (Dark Green).Finishes construction
  Conditions
    (Owner of (Constructed structure)) Equal to Player 11 (Dark Green)
    (COP_01_Area <gen> contains (Constructed structure)) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet ConstructedStructure = True
Patch of Ground Lost COP 01
  Events
    Unit - A unit owned by Player 11 (Dark Green).Dies
  Conditions
    (Owner of (Dying unit)) Equal to Player 11 (Dark Green)
    (COP_01_Area <gen> contains (Dying unit)) Equal to True
    ConstructedStructure Equal to True
  Actions
    -------- Bail if the player has buildings in the area --------
    Set VariableSet TempUnitGroup = (Units in COP_01_Area <gen> matching (((Owner of (Matching unit)) Equal to AP11_SharedPlayer) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) is A structure) Equal to True))))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in TempUnitGroup) Greater than 0
      Then - Actions
        Custom script: call DestroyGroup( udg_TempUnitGroup )
        Skip remaining actions
      Else - Actions
        Custom script: call DestroyGroup( udg_TempUnitGroup )
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_Obelisk_Illidan_Small_Patch_of_Ground_Q <gen> to the trigger queue (Checking conditions)
    Trigger - Turn off Patch_of_Ground_Lost_COP_02 <gen>
    Trigger - Turn off Patch_of_Ground_Lost_COP_03 <gen>
    Trigger - Turn off Patch_of_Ground_Lost_COP_04 <gen>
Patch of Ground Set COP 02
  Events
    Unit - A unit owned by Player 11 (Dark Green).Finishes construction
  Conditions
    (Owner of (Constructed structure)) Equal to Player 11 (Dark Green)
    (COP_02_Area <gen> contains (Constructed structure)) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet ConstructedStructure = True
Patch of Ground Lost COP 02
  Events
    Unit - A unit owned by Player 11 (Dark Green).Dies
  Conditions
    (Owner of (Dying unit)) Equal to Player 11 (Dark Green)
    (COP_02_Area <gen> contains (Dying unit)) Equal to True
    ConstructedStructure Equal to True
  Actions
    -------- Bail if the player has buildings in the area --------
    Set VariableSet TempUnitGroup = (Units in COP_02_Area <gen> matching (((Owner of (Matching unit)) Equal to AP11_SharedPlayer) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) is A structure) Equal to True))))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in TempUnitGroup) Greater than 0
      Then - Actions
        Custom script: call DestroyGroup( udg_TempUnitGroup )
        Skip remaining actions
      Else - Actions
        Custom script: call DestroyGroup( udg_TempUnitGroup )
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_Obelisk_Illidan_Small_Patch_of_Ground_Q <gen> to the trigger queue (Checking conditions)
    Trigger - Turn off Patch_of_Ground_Lost_COP_01 <gen>
    Trigger - Turn off Patch_of_Ground_Lost_COP_03 <gen>
    Trigger - Turn off Patch_of_Ground_Lost_COP_04 <gen>
Patch of Ground Set COP 03
  Events
    Unit - A unit owned by Player 11 (Dark Green).Finishes construction
  Conditions
    (Owner of (Constructed structure)) Equal to Player 11 (Dark Green)
    (COP_03_Area <gen> contains (Constructed structure)) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet ConstructedStructure = True
Patch of Ground Lost COP 03
  Events
    Unit - A unit owned by Player 11 (Dark Green).Dies
  Conditions
    (Owner of (Dying unit)) Equal to Player 11 (Dark Green)
    (COP_03_Area <gen> contains (Dying unit)) Equal to True
    ConstructedStructure Equal to True
  Actions
    -------- Bail if the player has buildings in the area --------
    Set VariableSet TempUnitGroup = (Units in COP_03_Area <gen> matching (((Owner of (Matching unit)) Equal to AP11_SharedPlayer) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) is A structure) Equal to True))))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in TempUnitGroup) Greater than 0
      Then - Actions
        Custom script: call DestroyGroup( udg_TempUnitGroup )
        Skip remaining actions
      Else - Actions
        Custom script: call DestroyGroup( udg_TempUnitGroup )
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_Obelisk_Illidan_Small_Patch_of_Ground_Q <gen> to the trigger queue (Checking conditions)
    Trigger - Turn off Patch_of_Ground_Lost_COP_01 <gen>
    Trigger - Turn off Patch_of_Ground_Lost_COP_02 <gen>
    Trigger - Turn off Patch_of_Ground_Lost_COP_04 <gen>
Patch of Ground Set COP 04
  Events
    Unit - A unit owned by Player 11 (Dark Green).Finishes construction
  Conditions
    (Owner of (Constructed structure)) Equal to Player 11 (Dark Green)
    (COP_04_Area <gen> contains (Constructed structure)) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet ConstructedStructure = True
Patch of Ground Lost COP 04
  Events
    Unit - A unit owned by Player 11 (Dark Green).Dies
  Conditions
    (Owner of (Dying unit)) Equal to Player 11 (Dark Green)
    (COP_04_Area <gen> contains (Dying unit)) Equal to True
    ConstructedStructure Equal to True
  Actions
    -------- Bail if the player has buildings in the area --------
    Set VariableSet TempUnitGroup = (Units in COP_04_Area <gen> matching (((Owner of (Matching unit)) Equal to AP11_SharedPlayer) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) is A structure) Equal to True))))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in TempUnitGroup) Greater than 0
      Then - Actions
        Custom script: call DestroyGroup( udg_TempUnitGroup )
        Skip remaining actions
      Else - Actions
        Custom script: call DestroyGroup( udg_TempUnitGroup )
    Trigger - Turn off (This trigger)
    Trigger - Add Voiceover_Obelisk_Illidan_Small_Patch_of_Ground_Q <gen> to the trigger queue (Checking conditions)
    Trigger - Turn off Patch_of_Ground_Lost_COP_01 <gen>
    Trigger - Turn off Patch_of_Ground_Lost_COP_02 <gen>
    Trigger - Turn off Patch_of_Ground_Lost_COP_03 <gen>
Obelisk Found Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Run Quest_Obelisk_Discover <gen> (checking conditions)
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Quest Obelisk Create
  Events
  Conditions
    ((This trigger) is on) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    -------- Create the quest objects --------
    Quest - Create a Required, undiscovered quest titled The Frozen Throne with the description The key to Ner’zhul’s tomb is controlling the four ancient Obelisks surrounding Icecrown Glacier. Illidan’s forces already vie for their control. Destroy the forces guarding the Obelisks, and bring Arthas to the nearby Obelisk Circles to capture them., using icon path ReplaceableTextures\CommandButtons\BTNIceCrownObelisk.tga
    Set VariableSet QuestObelisks = (Last created quest)
    Quest - Create a quest requirement for QuestObelisks with the description Capture the four Obelisks
    Set VariableSet QuestObeliskReq = (Last created quest requirement)
    Quest - Create a quest requirement for QuestObelisks with the description Stop Illidan from capturing all four Obelisks
    Set VariableSet QuestObeliskReq = (Last created quest requirement)
Quest Obelisk Discover
  Events
  Conditions
  Actions
    -------- Ensure that the quest exists --------
    Trigger - Run Quest_Obelisk_Create <gen> (checking conditions)
    -------- Update the quest --------
    Quest - Mark QuestObelisks as Discovered
    -------- Display a quest message. --------
    Quest - Display to (All players) the Quest Discovered message: |cffffcc00MAIN QUEST|rThe Frozen Throne - Capture the four Obelisks - Stop Illidan from capturing all four Obelisks
    -------- Run Leaderboard --------
    Trigger - Run Leaderboard_Create <gen> (checking conditions)
Quest Obelisk Completed
  Events
  Conditions
  Actions
    -------- Ensure that the quest exists --------
    Trigger - Run Quest_Obelisk_Create <gen> (checking conditions)
    -------- Update the quest --------
    Quest - Mark QuestObelisks as Discovered
    Quest - Mark QuestObeliskReq as Completed
    Quest - Mark QuestStopIllidanReq as Completed
    Quest - Mark QuestObelisks as Completed
    -------- Display a quest message. --------
    Quest - Display to (All players) the Quest Completed message: |cffffcc00MAIN QUEST COMPLETED|rThe Frozen Throne
Mission Failed Obelisks Lost
  Events
  Conditions
  Actions
    Quest - Display to (All players) the Mission Failed message: |cffffcc00MISSION FAILED|rThe Frozen Throne
Mission Failed All units lost
  Events
  Conditions
  Actions
    Quest - Display to (All players) the Mission Failed message: |cffffcc00MISSION FAILED|rAll of your units have been lost.
Mission Failed All buildings dead
  Events
  Conditions
  Actions
    Quest - Display to (All players) the Mission Failed message: |cffffcc00MISSION FAILED|rAll of your buildings have been destroyed.
Mission Failed Arthas Permanently Dead
  Events
  Conditions
  Actions
    Quest - Display to (All players) the Mission Failed message: |cffffcc00MISSION FAILED|rArthas has been slain and cannot be revived.
Earthquake
  Events
    Time - Every 45.00 seconds of game time
  Conditions
  Actions
    Wait 2.00 seconds
    Camera - Sway the camera source for AP04_Arthas with magnitude 20.00 and velocity 1000.00
    Camera - Sway the camera source for AP12_Anubarak with magnitude 20.00 and velocity 1000.00
    Wait 2.00 seconds
    Camera - Sway the camera source for AP04_Arthas with magnitude 40.00 and velocity 1000.00
    Camera - Sway the camera source for AP12_Anubarak with magnitude 40.00 and velocity 1000.00
    Trigger - Run Damage_Buildings <gen> (checking conditions)
    Wait 2.00 seconds
    Camera - Sway the camera source for AP04_Arthas with magnitude 20.00 and velocity 1000.00
    Camera - Sway the camera source for AP12_Anubarak with magnitude 20.00 and velocity 1000.00
    Wait 2.00 seconds
    Camera - Stop swaying/shaking the camera for AP04_Arthas.
    Camera - Stop swaying/shaking the camera for AP12_Anubarak.
Damage Buildings AI Setup
  Events
    Time - Elapsed game time is 0.10 seconds
  Conditions
  Actions
    Unit Group - Pick every unit in (Units in COP_01_Area <gen>) and do (If (((Picked unit) is A structure) Equal to True) then do (Add (Picked unit) to DamagedBuildingsGroup) else do (Do nothing))
    Unit Group - Pick every unit in (Units in COP_02_Area <gen>) and do (If (((Picked unit) is A structure) Equal to True) then do (Add (Picked unit) to DamagedBuildingsGroup) else do (Do nothing))
Damage Buildings Setup P01
  Events
    Unit - A unit owned by Player 1 (Red).Begins construction
  Conditions
    (Earthquake_Damage_Area <gen> contains (Constructing structure)) Equal to True
  Actions
    Unit Group - Add (Constructing structure) to DamagedBuildingsGroup
Damage Buildings Setup P02
  Events
    Unit - A unit owned by Player 2 (Blue).Begins construction
  Conditions
    (Earthquake_Damage_Area <gen> contains (Constructing structure)) Equal to True
  Actions
    Unit Group - Add (Constructing structure) to DamagedBuildingsGroup
Damage Buildings Setup P07
  Events
    Unit - A unit owned by Player 7 (Green).Begins construction
  Conditions
    (Earthquake_Damage_Area <gen> contains (Constructing structure)) Equal to True
  Actions
    Unit Group - Add (Constructing structure) to DamagedBuildingsGroup
Damage Buildings Setup P08
  Events
    Unit - A unit owned by Player 8 (Pink).Begins construction
  Conditions
    (Earthquake_Damage_Area <gen> contains (Constructing structure)) Equal to True
  Actions
    Unit Group - Add (Constructing structure) to DamagedBuildingsGroup
Damage Buildings Setup P09
  Events
    Unit - A unit owned by Player 9 (Gray).Begins construction
  Conditions
    (Earthquake_Damage_Area <gen> contains (Constructing structure)) Equal to True
  Actions
    Unit Group - Add (Constructing structure) to DamagedBuildingsGroup
Damage Buildings Setup P10
  Events
    Unit - A unit owned by Player 10 (Light Blue).Begins construction
  Conditions
    (Earthquake_Damage_Area <gen> contains (Constructing structure)) Equal to True
  Actions
    Unit Group - Add (Constructing structure) to DamagedBuildingsGroup
Damage Buildings
  Events
  Conditions
  Actions
    Unit Group - Pick every unit in DamagedBuildingsGroup and do (Set life of (Picked unit) to ((Life of (Picked unit)) - 250.00))
Quake Timer Start
  Events
  Conditions
  Actions
    Countdown Timer - Start QuakeTimer as a One-shot timer that will expire in 15.00 seconds
Quake Shake
  Events
  Conditions
    InCinematic Equal to False
    ObeliskArthasCount Not equal to 4
    ObeliskIllidanCount Not equal to 4
  Actions
    Sound - Play EarthquakeLoop1 <gen> at 80.00% volume, located at (Target of current camera view) with Z offset 0
    Camera - Shake the camera for AP04_Arthas with magnitude 6.00
    Camera - Shake the camera for AP12_Anubarak with magnitude 6.00
    Camera - Sway the camera source for AP04_Arthas with magnitude (20.00 x (Random real number between 0.60 and 1.40)) and velocity (1000.00 x (Random real number between 0.60 and 1.40))
    Camera - Sway the camera source for AP12_Anubarak with magnitude (20.00 x (Random real number between 0.60 and 1.40)) and velocity (1000.00 x (Random real number between 0.60 and 1.40))
    Wait (4.00 x (Random real number between 0.75 and 1.25)) seconds
    Camera - Stop swaying/shaking the camera for AP04_Arthas.
    Camera - Stop swaying/shaking the camera for AP12_Anubarak.
    Sound - Stop EarthquakeLoop1 <gen> After fading
    Trigger - Run (checking conditions)
    Trigger - Run Damage_Buildings <gen> (checking conditions)
Quake Event
  Events
    Time - QuakeTimer expires
  Conditions
  Actions
    Trigger - Run Quake_Shake <gen> (checking conditions)
    -------- Set up the next shake --------
    Countdown Timer - Start QuakeTimer as a One-shot timer that will expire in 180.00 seconds
    Countdown Timer - Start QuakeTimer as a One-shot timer that will expire in (60.00 x (Random real number between 0.75 and 1.25)) seconds
Leaderboard Create
  Events
  Conditions
  Actions
    -------- Leaderboard --------
    Leaderboard - Create a leaderboard for APG1_Player titled Obelisks Controlled
    Set VariableSet LeaderboardObelisks = (Last created leaderboard)
    -------- Arthas --------
    Leaderboard - Add AP11_SharedPlayer to LeaderboardObelisks with label Arthas and value 0
    -------- Illidan --------
    Leaderboard - Add P02_IllidanMainBase to LeaderboardObelisks with label Illidan and value 0
    -------- Colors --------
    Leaderboard - Change the color of all labels for (Last created leaderboard) to (90.00%, 90.00%, 90.00%) with 0% transparency
    Leaderboard - Change the color of all values for (Last created leaderboard) to (90.00%, 90.00%, 90.00%) with 0% transparency
Leaderboard Update
  Events
  Conditions
  Actions
    Leaderboard - Change the value for AP11_SharedPlayer in LeaderboardObelisks to ObeliskArthasCount
    Leaderboard - Change the value for P02_IllidanMainBase in LeaderboardObelisks to ObeliskIllidanCount
    Trigger - Run Obelisks_Arthas_All_Complete <gen> (checking conditions)
Hint Sacrificial Skull Activate
  Events
    Unit - A unit owned by Player 4 (Purple).Acquires an item
    Unit - A unit owned by Player 11 (Dark Green).Acquires an item
  Conditions
    (Item-type of (Item being manipulated)) Equal to Sacrificial Skull
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Hint_Sacrificial_Skull_Q <gen> to the trigger queue (Checking conditions)
Hint Sacrificial Skull Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Quest - Display to (All players) the Hint message: |cff32cd32HINT|r - Use the Sacrificial Skulls to create Blight, which allows you to construct defensive structures. More Sacrificial Skulls can be purchased from the Tomb of Relics.
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Warning Illidan Obelisk
  Events
  Conditions
  Actions
    Quest - Display to (All players) the Warning message: |cffff0000WARNING|r - Illidan has taken an Obelisk.
    Trigger - Remove (This trigger) from the trigger queue
Next Level Run
  Events
  Conditions
  Actions
    -------- Set Next Level and Victory --------
    Game - Enable the Expansion Ending Cinematic
    Custom script: call PlayModelCinematic( "Doodads\\Cinematic\\ArthasIllidanFight\\ArthasIllidanFight.mdl" )
    Game - Victory AP04_Arthas (Skip dialogs, Show scores)
    Game - Victory AP12_Anubarak (Skip dialogs, Show scores)
Start AI
  Events
  Conditions
  Actions
    -------- Start All AI Scripts --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Hard Equal to True
      Then - Actions
        AI - Start melee AI script for P02_IllidanMainBase: u08x02h.ai (aiscript)
        AI - Start melee AI script for P03_LadyVashj: u08x03h.ai (aiscript)
        AI - Start melee AI script for P04_Kael: u08x04h.ai (aiscript)
        AI - Start melee AI script for P07_COP_01: u08x07h.ai (aiscript)
        AI - Start melee AI script for P08_COP_02: u08x08h.ai (aiscript)
        AI - Start melee AI script for P09_COP_03: u08x09h.ai (aiscript)
        AI - Start melee AI script for P10_COP_04: u08x10h.ai (aiscript)
      Else - Actions
        AI - Start melee AI script for P02_IllidanMainBase: u08x02n.ai (aiscript)
        AI - Start melee AI script for P03_LadyVashj: u08x03n.ai (aiscript)
        AI - Start melee AI script for P04_Kael: u08x04n.ai (aiscript)
        AI - Start melee AI script for P07_COP_01: u08x07n.ai (aiscript)
        AI - Start melee AI script for P08_COP_02: u08x08n.ai (aiscript)
        AI - Start melee AI script for P09_COP_03: u08x09n.ai (aiscript)
        AI - Start melee AI script for P10_COP_04: u08x10n.ai (aiscript)
    AI - Start melee AI script for P06_IllidanDefendOnlyBase: u08x06.ai (aiscript)
    AI - Start melee AI script for P05_IllidanDefense: u08x05.ai (aiscript)
    AI - Send P04_Kael the AI Command (0, 0)
    AI - Send P03_LadyVashj the AI Command (0, 0)
    AI - Send P06_IllidanDefendOnlyBase the AI Command (0, 0)
    AI - Send P06_IllidanDefendOnlyBase the AI Command (0, 0)
    -------- *********************** --------
    -------- Start Illidan Territories Scripts --------
    Wait 0.25 seconds
    -------- COP 01 Green --------
    AI - Send P02_IllidanMainBase the AI Command (1, (Integer((Center X of AI_COP01_AttackTarget <gen>))))
    AI - Send P02_IllidanMainBase the AI Command (2, (Integer((Center Y of AI_COP01_AttackTarget <gen>))))
    Wait 0.25 seconds
    -------- COP 02 Pink --------
    AI - Send P02_IllidanMainBase the AI Command (3, (Integer((Center X of AI_COP02_AttackTarget <gen>))))
    AI - Send P02_IllidanMainBase the AI Command (4, (Integer((Center Y of AI_COP02_AttackTarget <gen>))))
    Wait 0.25 seconds
    -------- COP 03 Gray --------
    AI - Send P02_IllidanMainBase the AI Command (5, (Integer((Center X of AI_COP03_AttackTarget <gen>))))
    AI - Send P02_IllidanMainBase the AI Command (6, (Integer((Center Y of AI_COP03_AttackTarget <gen>))))
    Wait 0.25 seconds
    -------- COP 04 Light Blue --------
    AI - Send P02_IllidanMainBase the AI Command (7, (Integer((Center X of AI_COP04_AttackTarget <gen>))))
    AI - Send P02_IllidanMainBase the AI Command (8, (Integer((Center Y of AI_COP04_AttackTarget <gen>))))
    Wait 0.25 seconds
    -------- Start Individual Bases --------
    -------- COP 01 Green --------
    AI - Send P07_COP_01 the AI Command (1, (Integer((Center X of AI_COP01_DefenseArea <gen>))))
    AI - Send P07_COP_01 the AI Command (2, (Integer((Center Y of AI_COP01_DefenseArea <gen>))))
    Wait 0.25 seconds
    -------- COP 02 Pink --------
    AI - Send P08_COP_02 the AI Command (1, (Integer((Center X of AI_COP02_DefenseArea <gen>))))
    AI - Send P08_COP_02 the AI Command (2, (Integer((Center Y of AI_COP02_DefenseArea <gen>))))
    Wait 0.25 seconds
    -------- COP 03 Gray --------
    AI - Send P09_COP_03 the AI Command (1, (Integer((Center X of AI_COP03_DefenseArea <gen>))))
    AI - Send P09_COP_03 the AI Command (2, (Integer((Center Y of AI_COP03_DefenseArea <gen>))))
    Wait 0.25 seconds
    -------- COP 04 Light Blue --------
    AI - Send P10_COP_04 the AI Command (1, (Integer((Center X of AI_COP04_DefenseArea <gen>))))
    AI - Send P10_COP_04 the AI Command (2, (Integer((Center Y of AI_COP04_DefenseArea <gen>))))
    Wait 0.25 seconds
    -------- COP 04 Light Blue Lost --------
    AI - Send P02_IllidanMainBase the AI Command (10, 4)
    -------- COP 03 Gray Lost --------
    AI - Send P02_IllidanMainBase the AI Command (10, 3)
    -------- COP 02 Pink Lost --------
    AI - Send P02_IllidanMainBase the AI Command (10, 2)
    -------- COP 01 Green Lost --------
    AI - Send P02_IllidanMainBase the AI Command (10, 1)
    -------- *********************** --------
    Unit Group - Pick every unit in (Units in Recycle <gen>) and do (Recycle (Picked unit)'s guard position)
    Wait 0.50 seconds
    Unit - Order Mur'gul Slave 0206 <gen> to Harvest.Gold Mine 0179 <gen>
    Unit - Order Mur'gul Slave 0219 <gen> to Harvest.Gold Mine 0179 <gen>
    Unit - Order Mur'gul Slave 0220 <gen> to Harvest.Gold Mine 0179 <gen>
AI Resources Red Gold
  Events
    Player - Player 1 (Red)'s Current gold becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P04_Kael.Current gold to 1351
AI Resources Red Lumber
  Events
    Player - Player 1 (Red)'s Current lumber becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P04_Kael.Current lumber to 1273
AI Resources Blue Gold
  Events
    Player - Player 2 (Blue)'s Current gold becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P02_IllidanMainBase.Current gold to 1627
AI Resources Blue Lumber
  Events
    Player - Player 2 (Blue)'s Current lumber becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P02_IllidanMainBase.Current lumber to 1019
AI Resources Teal Gold
  Events
    Player - Player 3 (Teal)'s Current gold becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P03_LadyVashj.Current gold to 1627
AI Resources Teal Lumber
  Events
    Player - Player 3 (Teal)'s Current lumber becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P03_LadyVashj.Current lumber to 1019
AI Resources Yellow Gold
  Events
    Player - Player 5 (Yellow)'s Current gold becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P05_IllidanDefense.Current gold to 1351
AI Resources Yellow Lumber
  Events
    Player - Player 5 (Yellow)'s Current lumber becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P05_IllidanDefense.Current lumber to 1273
AI Resources Orange Gold
  Events
    Player - Player 6 (Orange)'s Current gold becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P06_IllidanDefendOnlyBase.Current gold to 1351
AI Resources Orange Lumber
  Events
    Player - Player 6 (Orange)'s Current lumber becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P06_IllidanDefendOnlyBase.Current lumber to 1273
AI Resources Green Gold
  Events
    Player - Player 7 (Green)'s Current gold becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P07_COP_01.Current gold to 1351
AI Resources Green Lumber
  Events
    Player - Player 7 (Green)'s Current lumber becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P07_COP_01.Current lumber to 1273
AI Resources Pink Gold
  Events
    Player - Player 8 (Pink)'s Current gold becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P08_COP_02.Current gold to 1351
AI Resources Pink Lumber
  Events
    Player - Player 8 (Pink)'s Current lumber becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P08_COP_02.Current lumber to 1273
AI Resources Grey Gold
  Events
    Player - Player 9 (Gray)'s Current gold becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P09_COP_03.Current gold to 1351
AI Resources Grey Lumber
  Events
    Player - Player 9 (Gray)'s Current lumber becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P09_COP_03.Current lumber to 1273
AI Resources Light Blue Gold
  Events
    Player - Player 10 (Light Blue)'s Current gold becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P10_COP_04.Current gold to 1351
AI Resources Light Blue Lumber
  Events
    Player - Player 10 (Light Blue)'s Current lumber becomes Less than 1000.00
  Conditions
  Actions
    Player - Set P10_COP_04.Current lumber to 1273
AI COP 01 Units Dead
  Events
  Conditions
  Actions
    -------- COP 01 Green units dead --------
    AI - Send P02_IllidanMainBase the AI Command (9, 1)
    Game - Display to (All players) for 5.00 seconds the text: AI COP 01 Dead
    Set VariableSet SlavesDeadCOP01 = True
AI COP 02 Units Dead
  Events
  Conditions
  Actions
    -------- COP 02 Pink units dead --------
    AI - Send P02_IllidanMainBase the AI Command (9, 2)
    Game - Display to (All players) for 5.00 seconds the text: AI COP 02 Dead
    Set VariableSet SlavesDeadCOP02 = True
AI COP 03 Units Dead
  Events
  Conditions
  Actions
    -------- COP 03 Gray units dead --------
    AI - Send P02_IllidanMainBase the AI Command (9, 3)
    Game - Display to (All players) for 5.00 seconds the text: AI COP 03 Dead
    Set VariableSet SlavesDeadCOP03 = True
AI COP 04 Units Dead
  Events
  Conditions
  Actions
    -------- COP 04 Light Blue units dead --------
    AI - Send P02_IllidanMainBase the AI Command (9, 4)
    Game - Display to (All players) for 5.00 seconds the text: AI COP 04 Dead
    Set VariableSet SlavesDeadCOP04 = True
AI COP 01 Lost
  Events
  Conditions
  Actions
    -------- COP 01 Green Lost --------
    AI - Send P02_IllidanMainBase the AI Command (10, 1)
    Game - Display to (All players) for 5.00 seconds the text: AI COP 01 Lost
AI COP 02 Lost
  Events
  Conditions
  Actions
    -------- COP 02 Pink Lost --------
    AI - Send P02_IllidanMainBase the AI Command (10, 2)
    Game - Display to (All players) for 5.00 seconds the text: AI COP 02 Lost
AI COP 03 Lost
  Events
  Conditions
  Actions
    -------- COP 03 Gray Lost --------
    AI - Send P02_IllidanMainBase the AI Command (10, 3)
    Game - Display to (All players) for 5.00 seconds the text: AI COP 03 Lost
AI COP 04 Lost
  Events
  Conditions
  Actions
    -------- COP 04 Light Blue Lost --------
    AI - Send P02_IllidanMainBase the AI Command (10, 4)
    Game - Display to (All players) for 5.00 seconds the text: AI COP 04 Lost
AI COP Stepped On
  Events
  Conditions
  Actions
    AI - Send P02_IllidanMainBase the AI Command (12, -1)
AI COP 01 Gained
  Events
  Conditions
  Actions
    -------- COP 01 Green Gained --------
    AI - Send P02_IllidanMainBase the AI Command (11, 1)
    Game - Display to (All players) for 5.00 seconds the text: AI COP 01 Gained
    Wait 0.10 seconds
    Unit - Order Illidan to Move To.(Point(-457.00, 2770.00))
AI COP 02 Gained
  Events
  Conditions
  Actions
    -------- COP 02 Pink Gained --------
    AI - Send P02_IllidanMainBase the AI Command (11, 2)
    Game - Display to (All players) for 5.00 seconds the text: AI COP 02 Gained
    Wait 0.10 seconds
    Unit - Order Illidan to Move To.(Point(3350.00, -1030.00))
AI COP 03 Gained
  Events
  Conditions
  Actions
    -------- COP 03 Gray Gained --------
    AI - Send P02_IllidanMainBase the AI Command (11, 3)
    Game - Display to (All players) for 5.00 seconds the text: AI COP 03 Gained
    Wait 0.10 seconds
    Unit - Order Illidan to Move To.(Point(-445.00, -4524.00))
AI COP 04 Gained
  Events
  Conditions
  Actions
    -------- COP 04 Light Blue --------
    AI - Send P02_IllidanMainBase the AI Command (11, 4)
    Game - Display to (All players) for 5.00 seconds the text: AI COP 04 Gained
    Wait 0.10 seconds
    Unit - Order Illidan to Move To.(Point(-4548.00, -1144.00))
AttackUpgrade1
  Events
    Unit - A unit owned by Player 2 (Blue).Finishes research
  Conditions
    (Current research level of Rnat (techcode) for P02_IllidanMainBase) Equal to 1
  Actions
    Trigger - Turn off (This trigger)
    Player - Set the current research level of Rnat (techcode) to 1 for P05_IllidanDefense
    Player - Set the current research level of Rnat (techcode) to 1 for P06_IllidanDefendOnlyBase
    Player - Set the current research level of Rnat (techcode) to 1 for P07_COP_01
    Player - Set the current research level of Rnat (techcode) to 1 for P08_COP_02
    Player - Set the current research level of Rnat (techcode) to 1 for P09_COP_03
    Player - Set the current research level of Rnat (techcode) to 1 for P10_COP_04
AttackUpgrade2
  Events
    Unit - A unit owned by Player 2 (Blue).Finishes research
  Conditions
    (Current research level of Rnat (techcode) for P02_IllidanMainBase) Equal to 2
  Actions
    Trigger - Turn off (This trigger)
    Player - Set the current research level of Rnat (techcode) to 2 for P05_IllidanDefense
    Player - Set the current research level of Rnat (techcode) to 2 for P06_IllidanDefendOnlyBase
    Player - Set the current research level of Rnat (techcode) to 2 for P07_COP_01
    Player - Set the current research level of Rnat (techcode) to 2 for P08_COP_02
    Player - Set the current research level of Rnat (techcode) to 2 for P09_COP_03
    Player - Set the current research level of Rnat (techcode) to 2 for P10_COP_04
AttackUpgrade3
  Events
    Unit - A unit owned by Player 2 (Blue).Finishes research
  Conditions
    (Current research level of Rnat (techcode) for P02_IllidanMainBase) Equal to 3
  Actions
    Trigger - Turn off (This trigger)
    Player - Set the current research level of Rnat (techcode) to 3 for P05_IllidanDefense
    Player - Set the current research level of Rnat (techcode) to 3 for P06_IllidanDefendOnlyBase
    Player - Set the current research level of Rnat (techcode) to 3 for P07_COP_01
    Player - Set the current research level of Rnat (techcode) to 3 for P08_COP_02
    Player - Set the current research level of Rnat (techcode) to 3 for P09_COP_03
    Player - Set the current research level of Rnat (techcode) to 3 for P10_COP_04
ArmorUpgrade1
  Events
    Unit - A unit owned by Player 2 (Blue).Finishes research
  Conditions
    (Current research level of Rnam (techcode) for P02_IllidanMainBase) Equal to 1
  Actions
    Trigger - Turn off (This trigger)
    Player - Set the current research level of Rnam (techcode) to 1 for P05_IllidanDefense
    Player - Set the current research level of Rnam (techcode) to 1 for P06_IllidanDefendOnlyBase
    Player - Set the current research level of Rnam (techcode) to 1 for P07_COP_01
    Player - Set the current research level of Rnam (techcode) to 1 for P08_COP_02
    Player - Set the current research level of Rnam (techcode) to 1 for P09_COP_03
    Player - Set the current research level of Rnam (techcode) to 1 for P10_COP_04
ArmorUpgrade2
  Events