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

Trigger Viewer

2P Human04 v2.4.w3x
Variables
Initialization
Map Initialization
StartCampaignAI
SetupComputerResources
SetupCreepsSleeping
SetupNonHeroGroup
SetupPlayer
SetupHeroes
SetupPeasants
SetupKelThuzad
SetupQuests
AcolyteGroup
PeonGroup01
SetupGolemsGroup
SetupAlliances
SetupNeutral
SetupScoreScreen
StartAIHarrassment
AIHarrassment
HeroesLevelLimiter
ArthasLevelUp
JainaLevelup
ComputerResources
GreenGold
GreenLumber
Hints
GoldmineHint
MilitiaHint
GoldmineHint Safeties
PowerBuildingHint
Merchant Hint
Hero Died
Hero Revive Hint
Hero Revive Hint With Altar
Hero Revive Hint No Altar
IZZZZZZ CINEMATICS IZZZZZZI
CinematicOpening
OpeningCancelled
Opening01
Opening02
Opening03
Opening04
Opening05
Opening06
PeasantMoving
PeasantFarm1
PeasantBarracks1
PeasantTownhall1
PeasantFarm2
PeasantBarracks2
PeasantTownhall2
Footman01Facing
PriestFacing
AcolytesRun
AcolyteDeath
ConstructingHauntedMine
ConstructingTownhall1
ConstructingFarm1
ConstructingBarracks1
ConstructingTownhall2
ConstructingFarm2
ConstructingBarracks2
Farm1Done
Farm2Done
Barracks1Done
Barracks2Done
TownHall1Done
TownHall2Done
CinematicGranary
GranaryCancelled
Granary01
Granary02
GranaryDialog
GranaryGhouls
CinematicEnding
EndingCancelled
Ending
IZZZZZZZZZZZZZZZZZZZZZZZI
Timmy
Timmy
TimmyDies
TimmyRoam
VillageScenes
GhoulsAttack
BarracksBlowUp
TowerBlowUp
ArthasEmptyCrates
Creeps
GnollRun
Golems
Bandits
Cinematic Revival
ArthasCinematicRevive
JainaCinematicRevive
Defeat
ArthasDeadSpeech
All Buildings Destroyed
Extra Triggers
Insane Kel
Setup Insane
Computer Upkeep
Player Limits
Item Drop Bonuses
Timer Trigger
Skip Cinematic
Leaves Game
Custom Variables
Claim Goldmine
Lose Goldmine
Gametext
Init Gametext
Endgame Text
Startgame Load
Startgame Text
Startgame Text 2
Startgame Text 3
Startgame New
Systems
Research Init
Research Begins
Research Cancelled
Research Complete
Requirement Init
Requirement Update
ResourceDrop Order
ResourceDrop Destroy
ResourceDrop Build
ResourceDrop Init
Send Lumber
Send Gold
Exchange Unit
Death Select
Deselect Unit
Select Unit
function SaveLoad_InitialSetup takes nothing returns nothing
    local integer i = 0
    local integer j = 0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    set m = 0

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

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

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

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

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

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

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

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

function SaveLoad_Decode takes string s returns boolean
    if udg_SaveLoad_CaseSensitive == false then
        set udg_SaveLoad_Alphabet = StringCase(udg_SaveLoad_Alphabet,true)
        set s = StringCase(s,true)
    endif
    if SaveLoad_DecodeValues(s) then
        return true
    endif
    return false
endfunction
Name Type Is Array Initial Value
Arthas unit No
ArthasDead boolean No false
ArthasDies defeatcondition No
ArthasPoint location No
Bandit unit No
Barracks1 unit No
Barracks2 unit No
BonusesFound integer No
BonusesTotal integer No
CampaignScore integer No
Captain unit No
Cinematic boolean No true
CinematicRegionArthas rect No RectNull
CinematicRegionJaina rect No RectNull
Code string No
EndCinematicMove group No
EndingCancelled boolean No false
EnoughPlayers boolean No
ExchangeFail1 boolean No
ExchangeFail2 boolean No
ExchangeFail3 boolean No
ExchangeSelection1 group No
ExchangeSelection2 group No
ExchangeSuccess boolean No
Exchanging1 boolean No
Exchanging2 boolean No
ExpansionTown group No
Expo boolean Yes
Extra integer No
ExtraTotal integer No
Farm1 unit No
Farm2 unit No
FinalInventory string Yes
FinalRank string No
GAMEOVER boolean No false
GameSelection boolean No true
Ghoul01Group group No
Ghoul02Group group No
GoldHintTimer timer No
Golem unit No
GolemsGroup group No
GranaryCancelled boolean No false
GranaryEntranceGuy unit No
HauntedGoldMine unit No
HeroDeadTimer timer No
INSANEMODE boolean No
ItemSpawn rect Yes
Jaina unit No
JainaDies defeatcondition No
JainaDiesSkipped boolean No
JainaPoint location No
KelThuzad unit No
KelThuzadAttackGroup group No
LevelOfAbility integer Yes
MedivhCancelled boolean No false
MedivhManForm unit No
MedivhRavenForm unit No
MissionNumber integer No
NewVote1 boolean No
NewVote2 boolean No
OpeningSkipped boolean No false
PeasantBarracks1 unit No
PeasantBarracks2 unit No
PeasantFarm1 unit No
PeasantFarm2 unit No
PeasantTownHall1 unit No
PeasantTownHall2 unit No
PeonGroup01 group No
QuestAndorhal quest No
QuestAndorhalReq questitem No
QuestKelThuzadReq questitem No
QuestNecromancer quest No
RankInteger integer No
Requirement_Region rect No
RequirementTech boolean Yes
RequirementUnitP1 unit Yes
RequirementUnitP2 unit Yes
RequirementUnitType unitcode Yes
ResearchEnabledT2 boolean Yes
ResearchEnabledT3 boolean Yes
ResearchStringT1 string Yes
ResearchStringT2 string Yes
ResearchStringT3 string Yes
ResearchType techcode Yes
ResourceDropBuildings group No
ResourceDropHashtable hashtable No
RevivalAltar unit No UnitNull
Save integer Yes
SaveCount integer No
SaveLoad_Abilities abilcode Yes
SaveLoad_Abilities_LastIndex integer No
SaveLoad_Alphabet string No
SaveLoad_CaseSensitive boolean No
SaveLoad_Compress integer Yes
SaveLoad_Heroes unitcode Yes
SaveLoad_Heroes_LastIndex integer No
SaveLoad_Initialized boolean No
SaveLoad_Items itemcode Yes
SaveLoad_Items_LastIndex integer No
SaveLoad_TotalGrades integer Yes
SaveLoad_TotalTime integer No
SaveLoad_Uncompress integer Yes
SaveLoad_UsePlayername boolean No
ScoreBonuses integer No
ScoreExtra integer No
ScoreLimit integer Yes
ScoreMax integer No
ScoreSubquests integer No
ScoreTime integer No
SelectionGroup1 group No
SelectionGroup2 group No
SkipVote1 boolean No
SkipVote2 boolean No
SpawnedItem item Yes
StartingNonHeroGroup group No
SubquestsComplete integer No
SubquestsTotal integer No
SumRank integer No
TempBoolean boolean No
TempInteger integer No
TempItem item No
TempItemType itemcode No
TempPGroup force No
TempPGroup2 force No
TempPlayer player No
TempPoint location No
TempUGroup group No
TempUnit unit No
TempUnitType unitcode No
TimeHours integer No
TimeMax real No
TimeMin real No
TimeMins integer No
TimeRange real No
TimeSeconds integer No
TimeSecondsTotal integer No
TimeTakenString string No
Timmy unit No
Town01Group group No
Townhall1 unit No
Townhall2 unit No
Troll unit No
UnitGroup group No
Validate boolean No
VisabilityStart1 fogmodifier No
VisabilityStart2 fogmodifier No
WaygateCancelled boolean No
x real No
y real No

Map Initialization
  Events
    Map initialization
  Conditions
  Actions
    Game - Set campaign to Human Campaign
    -------- ************ --------
    Environment - Set sky to Generic Sky
    Environment - Set fog to style 0 (fogstyle), z-start 1000, z-end 5000.00, density 0 and color (20.00%, 30.00%, 40.00%)
    Game - Set the time of day to 12.00
    -------- *********** --------
    Trigger - Run SetupCreepsSleeping <gen> (checking conditions)
    Trigger - Run SetupNonHeroGroup <gen> (checking conditions)
    Trigger - Run SetupPlayer <gen> (checking conditions)
    Trigger - Run SetupHeroes <gen> (checking conditions)
    Trigger - Run SetupPeasants <gen> (checking conditions)
    Trigger - Run SetupKelThuzad <gen> (checking conditions)
    Trigger - Run SetupAlliances <gen> (checking conditions)
    Trigger - Run SetupQuests <gen> (checking conditions)
    Trigger - Run AcolyteGroup <gen> (checking conditions)
    Trigger - Run SetupGolemsGroup <gen> (checking conditions)
    Trigger - Run SetupComputerResources <gen> (checking conditions)
    Trigger - Run PeonGroup01 <gen> (checking conditions)
    Trigger - Run SetupNeutral <gen> (checking conditions)
    Trigger - Run SetupScoreScreen <gen> (checking conditions)
    -------- NO AURAS FOR ENEMIES --------
    Player - For Player 2 (Blue), turn Friendly spell targeting Off toward Player 7 (Green)
    Player - For Player 2 (Blue), turn Friendly spell targeting Off toward Player 7 (Green)
    Player - For Player 2 (Blue), turn Friendly spell targeting Off toward Player 6 (Orange)
    Player - For Player 4 (Purple), turn Friendly spell targeting Off toward Neutral Hostile
    Player - For Player 4 (Purple), turn Friendly spell targeting Off toward Player 6 (Orange)
    Player - For Player 4 (Purple), turn Friendly spell targeting Off toward Neutral Hostile
    -------- *********** --------
    Set Arthas = Paladin 0094 <gen>
    Set Jaina = Archmage 0093 <gen>
Run from Opening07 and OpeningCancelled
StartCampaignAI
  Events
  Conditions
  Actions
    Wait 2.00 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        AI - Start campaign AI script for Player 7 (Green): war3mapImported\H4 Insane 1.ai (aiscript)
      Else - Actions
        AI - Start campaign AI script for Player 7 (Green): h04_green.ai (aiscript)
        AI - Send Player 7 (Green) the AI Command (0, 0)
    -------- *********************** --------
    AI - Ignore Ghoul 0047 <gen>'s guard position
    AI - Ignore Ghoul 0043 <gen>'s guard position
SetupComputerResources
  Events
  Conditions
  Actions
    Player - Set Player 7 (Green) Current gold to 1000
    Player - Set Player 7 (Green) Current lumber to 1000
SetupCreepsSleeping
  Events
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Unit Group - Pick every unit in (Units in PatrolForestTroll01Start <gen>) and do (Make (Picked unit) Remain awake when unprovoked at night)
    Unit Group - Pick every unit in (Units in PatrolForestTroll02Start <gen>) and do (Make (Picked unit) Remain awake when unprovoked at night)
    Unit Group - Pick every unit in (Units in GnollRun <gen>) and do (Make (Picked unit) Remain awake when unprovoked at night)
SetupNonHeroGroup
  Events
  Conditions
  Actions
    Unit Group - Add Footman 0016 <gen> to StartingNonHeroGroup
    Unit Group - Add Footman 0017 <gen> to StartingNonHeroGroup
    Unit Group - Add Footman 0018 <gen> to StartingNonHeroGroup
    Unit Group - Add Footman 0089 <gen> to StartingNonHeroGroup
    Unit Group - Add Priest 0070 <gen> to StartingNonHeroGroup
    Unit Group - Add Mortar Team 0055 <gen> to StartingNonHeroGroup
    Unit Group - Add Peasant 0020 <gen> to StartingNonHeroGroup
    Unit Group - Add Peasant 0021 <gen> to StartingNonHeroGroup
    Unit Group - Add Peasant 0023 <gen> to StartingNonHeroGroup
    Unit Group - Add Peasant 0090 <gen> to StartingNonHeroGroup
    Unit Group - Add Peasant 0092 <gen> to StartingNonHeroGroup
    Unit Group - Add Peasant 0091 <gen> to StartingNonHeroGroup
SetupPlayer
  Events
  Conditions
  Actions
    Player - Set Player 2 (Blue) Current gold to 750
    Player - Set Player 4 (Purple) Current gold to 750
    Player - Set Player 2 (Blue) Current lumber to 350
    Player - Set Player 4 (Purple) Current lumber to 350
SetupHeroes
  Events
  Conditions
  Actions
    Trigger - Turn on ArthasLevelUp <gen>
    Trigger - Turn on JainaLevelup <gen>
    -------- **************** --------
    Hero - Make Player 2 (Blue) Heroes gain 75.00% experience from future kills
    Hero - Make Player 4 (Purple) Heroes gain 75.00% experience from future kills
SetupPeasants
  Events
  Conditions
  Actions
    Set PeasantFarm1 = Peasant 0020 <gen>
    Set PeasantTownHall1 = Peasant 0023 <gen>
    Set PeasantBarracks1 = Peasant 0021 <gen>
    Set PeasantFarm2 = Peasant 0090 <gen>
    Set PeasantTownHall2 = Peasant 0092 <gen>
    Set PeasantBarracks2 = Peasant 0091 <gen>
SetupKelThuzad
  Events
  Conditions
  Actions
    Set KelThuzad = Kel'Thuzad 0133 <gen>
    AI - Ignore KelThuzad's guard position
SetupQuests
  Events
  Conditions
  Actions
    -------- Quest Investigate Andorhal --------
    Quest - Create a Required, undiscovered quest titled Investigate Andorhal with the description The plagued crates of grain seem to have originated from Andorhal, the distribution center of Lordaeron's agricultural products. Investigate Andorhal and ascertain whether there is any link between the mysterious cultists and the dread plague., using icon path ReplaceableTextures\CommandButtons\BTNJaina.tga
    Set QuestAndorhal = (Last created quest)
    Quest - Create a quest requirement for QuestAndorhal with the description Explore Andorhal
    Set QuestAndorhalReq = (Last created quest requirement)
    -------- Quest Confront Kel'Thuzad --------
    Quest - Create a Required, undiscovered quest titled Confront Kel'Thuzad with the description The evil Necromancer, Kel'Thuzad, is apparently responsible for spreading the mysterious plague. Hunt the renegade wizard down and bring him to justice!, using icon path ReplaceableTextures\CommandButtons\BTNNecromancer.tga
    Set QuestNecromancer = (Last created quest)
    Quest - Create a quest requirement for QuestNecromancer with the description Find Kel'Thuzad
    Set QuestKelThuzadReq = (Last created quest requirement)
AcolyteGroup
  Events
  Conditions
  Actions
    Unit Group - Add Acolyte 0011 <gen> to Town01Group
    Unit Group - Add Acolyte 0006 <gen> to Town01Group
    Unit Group - Add Acolyte 0005 <gen> to Town01Group
PeonGroup01
  Events
  Conditions
  Actions
    Unit Group - Add Peasant 0020 <gen> to PeonGroup01
    Unit Group - Add Peasant 0020 <gen> to PeonGroup01
    Unit Group - Add Peasant 0021 <gen> to PeonGroup01
    Unit Group - Add Peasant 0090 <gen> to PeonGroup01
    Unit Group - Add Peasant 0091 <gen> to PeonGroup01
    Unit Group - Add Peasant 0092 <gen> to PeonGroup01
SetupGolemsGroup
  Events
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set GolemsGroup = (Units in GolemArea <gen>)
SetupAlliances
  Events
  Conditions
  Actions
    Player - Make Neutral Hostile treat Player 7 (Green) as an Ally
    Player - Make Player 7 (Green) treat Neutral Hostile as an Ally
    -------- *********************** --------
    Player - Make Neutral Hostile treat Player 6 (Orange) as an Ally
    Player - Make Player 6 (Orange) treat Neutral Hostile as an Ally
    -------- *********************** --------
    Player - Make Player 9 (Gray) treat Player 7 (Green) as an Ally
    Player - Make Player 7 (Green) treat Player 9 (Gray) as an Neutral
    Player - Make Player 2 (Blue) treat Player 9 (Gray) as an Ally
    Player - Make Player 9 (Gray) treat Player 2 (Blue) as an Ally
    Player - Make Player 4 (Purple) treat Player 9 (Gray) as an Ally
    Player - Make Player 9 (Gray) treat Player 4 (Purple) as an Ally
    -------- *********************** --------
    Player - Make Player 7 (Green) treat Player 6 (Orange) as an Ally
    Player - Make Player 6 (Orange) treat Player 7 (Green) as an Ally
    Player - Change color of Player 6 (Orange) to Green, Changing color of existing units
    -------- *********************** --------
    Player - Make Player 4 (Purple) treat Player 2 (Blue) as an Ally with shared vision
    Player - Make Player 2 (Blue) treat Player 4 (Purple) as an Ally with shared vision
SetupNeutral
  Events
  Conditions
  Actions
    Destructible - Kill Gate 2150 <gen>
SetupScoreScreen
  Events
  Conditions
  Actions
    Player - Hide Player 1 (Red) in the post-game score screen
    Player - Hide Player 6 (Orange) in the post-game score screen
    Player - Hide Player 9 (Gray) in the post-game score screen
Not currently run
AIHarrassment
  Events
  Conditions
    INSANEMODE Equal to False
  Actions
    Trigger - Turn off (This trigger)
    AI - Send Player 7 (Green) the AI Command (0, 0)
Turned on from 'SetupArthas'
ArthasLevelUp
  Events
    Unit - A unit owned by Player 2 (Blue) Gains a level
  Conditions
    (Triggering unit) Equal to Arthas
  Actions
    Hero - Disable experience gain for Arthas
Turned on from 'SetupJaina'
JainaLevelup
  Events
    Unit - A unit owned by Player 4 (Purple) Gains a level
  Conditions
    (Triggering unit) Equal to Jaina
  Actions
    Hero - Disable experience gain for Jaina
GreenGold
  Events
    Player - Player 7 (Green)'s Current gold becomes Less than or equal to 1000.00
  Conditions
  Actions
    Player - Add 1000 to Player 7 (Green) Current gold
GreenLumber
  Events
    Player - Player 7 (Green)'s Current lumber becomes Less than or equal to 500.00
  Conditions
  Actions
    Player - Add 500 to Player 7 (Green) Current lumber
GoldmineHint
  Events
    Time - GoldHintTimer expires
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off GoldmineHint_Safeties <gen>
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility across RevealerGoldmine <gen>
    Visibility - Create an initially Enabled visibility modifier for Player 4 (Purple) emitting Visibility across RevealerGoldmine <gen>
    Quest - Display to (All players) the Simple Hint message: |cff32CD32HINT|r - Increase your gold mining capacity by mining from a newly discovered gold mine.
    Cinematic - Ping minimap for (All players) at (Center of RevealerGoldmine <gen>) for 10.00 seconds
    Camera - Set a spacebar-point for Player 2 (Blue) at (Center of RevealerGoldmine <gen>)
    Camera - Set a spacebar-point for Player 4 (Purple) at (Center of RevealerGoldmine <gen>)
MilitiaHint
  Events
    Unit - A unit enters TownArea <gen>
  Conditions
    (Unit-type of (Entering unit)) Equal to Ghoul
  Actions
    Trigger - Turn off (This trigger)
    Wait 2 seconds
    Quest - Display to (All players) the Simple Hint message: |cff32CD32HINT|r - Press the Call to Arms button on your Town Hall in order to change your Peasants to Militia.
GoldmineHint Safeties
  Events
    Unit - A unit enters ExtraGoldMine_Safety1 <gen>
    Unit - A unit enters ExtraGoldMine_Safety2 <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to Player 2 (Blue)
        (Owner of (Entering unit)) Equal to Player 4 (Purple)
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Run GoldmineHint <gen> (checking conditions)
Run from 'FarmDone'
PowerBuildingHint
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Wait 2 seconds
    Quest - Display to (All players) the Simple Hint message: |cff32CD32HINT|r - Additional Peasants may help construct a building for a faster build speed.
Merchant Hint
  Events
    Unit - A unit enters Goblin_Merchant_HINT <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to Player 2 (Blue)
        (Owner of (Entering unit)) Equal to Player 4 (Purple)
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Quest - Display to (All players) the Simple Hint message: |cff32cd32HINT|r - You can purchase items from the Goblin Merchant by moving a Hero near it, and then selecting the Goblin Merchant building.
Hero Died
  Events
    Unit - A unit owned by Player 2 (Blue) Dies
    Unit - A unit owned by Player 4 (Purple) Dies
  Conditions
    ((Dying unit) is A Hero) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Countdown Timer - Start HeroDeadTimer as a One-shot timer that will expire in 5.00 seconds
Hero Revive Hint
  Events
    Time - HeroDeadTimer expires
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of units in (Units owned by Player 2 (Blue) of type Altar of Kings)) Equal to 0
      Then - Actions
        Trigger - Run Hero_Revive_Hint_No_Altar <gen> (checking conditions)
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Number of units in (Units owned by Player 4 (Purple) of type Altar of Kings)) Equal to 0
          Then - Actions
            Trigger - Run Hero_Revive_Hint_No_Altar <gen> (checking conditions)
          Else - Actions
            Trigger - Run Hero_Revive_Hint_With_Altar <gen> (checking conditions)
Hero Revive Hint With Altar
  Events
  Conditions
  Actions
    Quest - Display to (All players) the Hint message: |cff32cd32HINT|r - Heroes can be revived at an Altar of Kings.
    Unit Group - Pick every unit in (Units owned by Player 2 (Blue) matching (((Unit-type of (Matching unit)) Equal to Altar of Kings) and (((Matching unit) is alive) Equal to True))) and do (Ping minimap for Player Group - Player 2 (Blue) at (Position of (Picked unit)) for 7.00 seconds)
    Unit Group - Pick every unit in (Units owned by Player 4 (Purple) matching (((Unit-type of (Matching unit)) Equal to Altar of Kings) and (((Matching unit) is alive) Equal to True))) and do (Set a spacebar-point for Player 2 (Blue) at (Position of (Picked unit)))
    Unit Group - Pick every unit in (Units owned by Player 4 (Purple) matching (((Unit-type of (Matching unit)) Equal to Altar of Kings) and (((Matching unit) is alive) Equal to True))) and do (Ping minimap for Player Group - Player 4 (Purple) at (Position of (Picked unit)) for 7.00 seconds)
    Unit Group - Pick every unit in (Units owned by Player 4 (Purple) matching (((Unit-type of (Matching unit)) Equal to Altar of Kings) and (((Matching unit) is alive) Equal to True))) and do (Set a spacebar-point for Player 4 (Purple) at (Position of (Picked unit)))
Hero Revive Hint No Altar
  Events
  Conditions
  Actions
    Quest - Display to (All players) the Hint message: |cff32cd32HINT|r - You can build an Altar of Kings to revive fallen Heroes.
OpeningCancelled
  Events
  Conditions
    OpeningSkipped Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set Cinematic = False
    Set SkipVote1 = False
    Set SkipVote2 = False
    Set OpeningSkipped = True
    Game - Turn the day/night cycle On
    Sound - Stop (Last played sound) Immediately
    Sound - Stop the currently playing music theme
    Cinematic - Fade out over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.50 seconds
    Trigger - Turn off Farm1Done <gen>
    Trigger - Turn off Farm2Done <gen>
    Trigger - Turn off Barracks1Done <gen>
    Trigger - Turn off Barracks2Done <gen>
    Trigger - Turn off TownHall1Done <gen>
    Trigger - Turn off TownHall2Done <gen>
    Trigger - Turn off ConstructingBarracks1 <gen>
    Trigger - Turn off ConstructingBarracks2 <gen>
    Trigger - Turn off ConstructingFarm1 <gen>
    Trigger - Turn off ConstructingFarm2 <gen>
    Trigger - Turn off ConstructingTownhall1 <gen>
    Trigger - Turn off ConstructingTownhall2 <gen>
    Unit - Kill HauntedGoldMine
    Unit - Remove Acolyte 0011 <gen> from the game
    Unit - Remove Acolyte 0006 <gen> from the game
    Unit - Remove Acolyte 0005 <gen> from the game
    Unit - Remove Farm1 from the game
    Unit - Remove Farm2 from the game
    Unit - Remove Townhall1 from the game
    Unit - Remove Townhall2 from the game
    Unit - Remove Barracks1 from the game
    Unit - Remove Barracks2 from the game
    Unit - Move Footman 0016 <gen> instantly to (Center of Footmen01Attack <gen>)
    Unit - Move Footman 0017 <gen> instantly to (Center of Footman02Attack <gen>)
    Unit - Move Footman 0018 <gen> instantly to (Center of Footman03Attack <gen>)
    Unit - Move Footman 0089 <gen> instantly to (Center of Footman04Attack <gen>)
    Unit - Move Priest 0070 <gen> instantly to (Center of PriestAttack <gen>)
    Unit - Move Mortar Team 0055 <gen> instantly to (Center of MortarAttack <gen>)
    Unit - Set Jaina acquisition range to (Default acquisition range of Jaina)
    Unit - Move Arthas instantly to (Center of ArthasMove <gen>)
    Unit - Move Jaina instantly to (Center of JainaMove <gen>)
    Unit - Make Arthas face (Center of AcolyteExit <gen>) over 0 seconds
    Unit - Move Peasant 0023 <gen> instantly to (Center of JainaStart <gen>)
    Unit - Move Peasant 0020 <gen> instantly to (Center of JainaStart <gen>)
    Unit - Move Peasant 0021 <gen> instantly to (Center of JainaStart <gen>)
    Unit - Move Peasant 0090 <gen> instantly to (Center of ArthasStart <gen>)
    Unit - Move Peasant 0092 <gen> instantly to (Center of ArthasStart <gen>)
    Unit - Move Peasant 0091 <gen> instantly to (Center of ArthasStart <gen>)
    Unit - Order Peasant 0020 <gen> to Stop
    Unit - Order Peasant 0021 <gen> to Stop
    Unit - Order Peasant 0023 <gen> to Stop
    Unit - Order Peasant 0090 <gen> to Stop
    Unit - Order Peasant 0092 <gen> to Stop
    Unit - Order Peasant 0091 <gen> to Stop
    Environment - Set sky to None
    Environment - Reset fog to default values
    Wait 0.05 seconds
    Trigger - Run StartCampaignAI <gen> (checking conditions)
    Player - Set Player 2 (Blue) Current gold to 75
    Player - Set Player 2 (Blue) Current lumber to 15
    Player - Set Player 4 (Purple) Current gold to 75
    Player - Set Player 4 (Purple) Current lumber to 15
    Unit - Create 1 Town Hall for Player 2 (Blue) at (Center of BuildTownHall1 <gen>) facing Default building facing degrees
    Set TempPoint = (Position of (Last created unit))
    Set TempUnit = (Last created unit)
    Unit - Create 1 Return GoldLumber Dummy for Player 4 (Purple) at TempPoint facing Default building facing degrees
    Set x = (X of TempPoint)
    Set y = (Y of TempPoint)
    Custom script: call SetUnitX(GetLastCreatedUnit(), udg_x)
    Custom script: call SetUnitY(GetLastCreatedUnit(), udg_y)
    Unit - Turn collision for (Last created unit) Off
    Set TempUGroup = (Units in (Playable map area) matching ((Matching unit) Equal to TempUnit))
    Unit Group - Pick every unit in TempUGroup and do (Actions)
      Loop - Actions
        Hashtable - Save Handle Of(Last created unit) as 0 of (Key (Picked unit)) in (Last created hashtable)
    Custom script: call DestroyGroup (udg_TempUGroup)
    Custom script: call RemoveLocation (udg_TempPoint)
    Unit Group - Add TempUnit to ResourceDropBuildings
    Unit - Create 1 Town Hall for Player 4 (Purple) at (Center of BuildTownHall2 <gen>) facing Default building facing degrees
    Set TempUnit = (Last created unit)
    Set TempPoint = (Position of (Last created unit))
    Unit - Create 1 Return GoldLumber Dummy for Player 2 (Blue) at TempPoint facing Default building facing degrees
    Set x = (X of TempPoint)
    Set y = (Y of TempPoint)
    Custom script: call SetUnitX(GetLastCreatedUnit(), udg_x)
    Custom script: call SetUnitY(GetLastCreatedUnit(), udg_y)
    Unit - Turn collision for (Last created unit) Off
    Set TempUGroup = (Units in (Playable map area) matching ((Matching unit) Equal to TempUnit))
    Unit Group - Pick every unit in TempUGroup and do (Actions)
      Loop - Actions
        Hashtable - Save Handle Of(Last created unit) as 0 of (Key (Picked unit)) in (Last created hashtable)
    Custom script: call DestroyGroup (udg_TempUGroup)
    Custom script: call RemoveLocation (udg_TempPoint)
    Unit Group - Add TempUnit to ResourceDropBuildings
    Unit - Create 1 Farm for Player 2 (Blue) at (Center of BuildFarm1 <gen>) facing Default building facing degrees
    Unit - Create 1 Farm for Player 4 (Purple) at (Center of BuildFarm2 <gen>) facing Default building facing degrees
    Unit - Create 1 Barracks for Player 2 (Blue) at (Center of BuildBarracks1 <gen>) facing Default building facing degrees
    Unit - Create 1 Barracks for Player 4 (Purple) at (Center of BuildBarracks2 <gen>) facing Default building facing degrees
    Unit - Create 1 RequirementUnitType[1] for Player 2 (Blue) at (Center of Requirement_Region) facing Default building facing degrees
    Set RequirementUnitP1[1] = (Last created unit)
    Unit - Create 1 RequirementUnitType[1] for Player 4 (Purple) at (Center of Requirement_Region) facing Default building facing degrees
    Set RequirementUnitP2[1] = (Last created unit)
    Wait 0.05 seconds
    Unit - Move Peasant 0023 <gen> instantly to (Center of BuildTownHall1 <gen>)
    Unit - Move Peasant 0020 <gen> instantly to (Center of BuildFarm1 <gen>)
    Unit - Move Peasant 0021 <gen> instantly to (Center of BuildBarracks1 <gen>)
    Unit - Move Peasant 0090 <gen> instantly to (Center of BuildTownHall2 <gen>)
    Unit - Move Peasant 0092 <gen> instantly to (Center of BuildFarm2 <gen>)
    Unit - Move Peasant 0091 <gen> instantly to (Center of BuildBarracks2 <gen>)
    Unit - Order Peasant 0020 <gen> to Stop
    Unit - Order Peasant 0021 <gen> to Stop
    Unit - Order Peasant 0023 <gen> to Stop
    Unit - Order Peasant 0023 <gen> to Harvest Summer Tree Wall 0726 <gen>
    Unit - Order Peasant 0021 <gen> to Harvest Gold Mine 0008 <gen>
    Unit - Order Peasant 0020 <gen> to Harvest Gold Mine 0008 <gen>
    Unit - Order Peasant 0091 <gen> to Harvest Summer Tree Wall 2054 <gen>
    Unit - Order Peasant 0090 <gen> to Harvest Gold Mine 0088 <gen>
    Unit - Order Peasant 0092 <gen> to Harvest Gold Mine 0088 <gen>
    Unit - Make Arthas face (Center of ArthasAttack <gen>) over 0.00 seconds
    Cinematic - Fade in over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Camera - Reset camera for Player 2 (Blue) to standard game-view over 0.00 seconds
    Camera - Reset camera for Player 4 (Purple) to standard game-view over 0.00 seconds
    Camera - Pan camera for Player 2 (Blue) to (Center of OpeningCamReset <gen>) over 0 seconds
    Camera - Pan camera for Player 4 (Purple) to (Center of OpeningCamReset <gen>) over 0 seconds
    Cinematic - Turn cinematic mode Off for (All players)
    Selection - Select Arthas for Player 2 (Blue)
    Selection - Select Jaina for Player 4 (Purple)
    Visibility - Destroy VisabilityStart1
    Visibility - Destroy VisabilityStart2
    Player - Make Haunted Gold Mine Unavailable for training/construction by Player 7 (Green)
    Trigger - Turn on All_Buildings_Destroyed <gen>
    Wait 5.00 seconds
    Countdown Timer - Start GoldHintTimer as a One-shot timer that will expire in 60.00 seconds
    Quest - Mark QuestAndorhal as Discovered
    Quest - Display to (All players) the Quest Discovered message: |cffffcc00MAIN QUEST|rInvestigate Andorhal - Explore Andorhal
    Wait Campaign quest delay seconds
Gold given to player 7 no necros can build a haunted mine.
Opening01
  Events
  Conditions
    OpeningSkipped Equal to False
  Actions
    Game - Display to (All players) the text: TEST6
    Trigger - Turn off (This trigger)
    Game - Turn the day/night cycle Off
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of OpeningVisibility01 <gen>) to a radius of 1800.00
    Set VisabilityStart1 = (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 4 (Purple) emitting Visibility from (Center of OpeningVisibility01 <gen>) to a radius of 1800.00
    Set VisabilityStart2 = (Last created visibility modifier)
    -------- *********************** --------
    Sound - Add WaterLakeLoop1 <gen> across LakeLoop01 <gen>
    Sound - Add WaterLakeLoop1 <gen> across LakeLoop02 <gen>
    Sound - Add WaterLakeLoop1 <gen> across LakeLoop03 <gen>
    Sound - Add WaterLakeLoop1 <gen> across LakeLoop04 <gen>
    Sound - Add WaterLakeLoop1 <gen> across LakeLoop05 <gen>
    Sound - Add WaterLakeLoop1 <gen> across LakeLoop06 <gen>
    Sound - Add WaterLakeLoop1 <gen> across LakeLoop07 <gen>
    Sound - Add WaterLakeLoop1 <gen> across LakeLoop08 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop01 <gen>
    Unit - Set Jaina acquisition range to 100.00
    -------- *********************** --------
    Camera - Apply gg_cam_Opening01 for Player 2 (Blue) over 0.00 seconds
    Camera - Apply gg_cam_Opening01 for Player 4 (Purple) over 0.00 seconds
    Cinematic - Fade in over 2 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Cinematic - Turn cinematic mode On for (All players)
    -------- Music --------
    Sound - Clear the music list
    Wait 0.01 seconds
    Sound - Play Dark Agents
    Sound - Set the music list to Music, starting with song 0
    -------- *********************** --------
    Unit - Change ownership of Paladin 0094 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Footman 0018 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Footman 0017 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Mortar Team 0055 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Peasant 0023 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Peasant 0020 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Peasant 0021 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Archmage 0093 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Footman 0089 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Footman 0016 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Priest 0070 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Peasant 0090 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Peasant 0091 <gen> to Player 4 (Purple) and Change color
    Unit - Change ownership of Peasant 0092 <gen> to Player 4 (Purple) and Change color
    Trigger - Run Opening02 <gen> (checking conditions)
Opening02
  Events
  Conditions
    OpeningSkipped Equal to False
  Actions
    Trigger - Turn off (This trigger)
    -------- Cinematic Can Now Be Skipped --------
    Trigger - Turn on OpeningCancelled <gen>
    Trigger - Turn on Skip_Cinematic <gen>
    -------- *********************** --------
    Unit - Order Arthas to Move To (Center of OpeningArthas <gen>)
    Unit - Order Jaina to Move To (Center of OpeningJaina <gen>)
    Wait 0.75 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Footman 0016 <gen> to Move To (Center of OpeningFootman01 <gen>)
    Unit - Order Footman 0017 <gen> to Move To (Center of OpeningFootman02 <gen>)
    Unit - Order Mortar Team 0055 <gen> to Move To (Center of OpeningMortar01 <gen>)
    Unit - Order Footman 0089 <gen> to Move To (Center of OpeningFootman04 <gen>)
    Unit - Order Footman 0018 <gen> to Move To (Center of OpeningFootman04 <gen>)
    Unit - Order Priest 0070 <gen> to Move To (Center of OpeningPriest01 <gen>)
    Wait 2.00 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Acolyte 0005 <gen> to build a Haunted Gold Mine at (Position of Gold Mine 0008 <gen>)
    Unit - Order Acolyte 0011 <gen> to Move To (Center of Acolyte02Post <gen>)
    Unit - Order Acolyte 0006 <gen> to Move To (Center of Acolyte01Post <gen>)
    Wait 0.20 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run Opening03 <gen> (checking conditions)
Opening03
  Events
  Conditions
    OpeningSkipped Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Wait 1.25 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - Apply gg_cam_Opening02 for Player 2 (Blue) over 0.00 seconds
    Camera - Apply gg_cam_Opening02 for Player 4 (Purple) over 0.00 seconds
    Camera - Apply gg_cam_Opening03 for Player 2 (Blue) over 11.40 seconds
    Camera - Apply gg_cam_Opening03 for Player 4 (Purple) over 11.40 seconds
    Wait 0.50 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Jaina named Jaina Proudmoore: Play H04Jaina01 <gen> and display Look! It's those cultists who were with the necromancer! What are they doing to that mine? . Modify duration: Add 0.00 seconds and Don't wait
    Wait 2.31 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Acolyte 0005 <gen> face HauntedGoldMine over 0 seconds
    Unit - Make Acolyte 0006 <gen> face HauntedGoldMine over 0 seconds
    Wait 1.00 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Acolyte 0011 <gen> face HauntedGoldMine over 0 seconds
    Wait 2.00 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait for H04Jaina01 <gen> to be 0 seconds from finished playing
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Footman 0016 <gen> to Move To (Center of OpeningFootmanReposition <gen>)
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play H04Arthas02 <gen> and display Let's not wait to find out! Attack!. Modify duration: Add 0.00 seconds and Don't wait
    Wait 2.00 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Arthas to Attack-Move To (Center of ArthasAttack <gen>)
    Wait 0.61 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait for H04Arthas02 <gen> to be 0 seconds from finished playing
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run Opening04 <gen> (checking conditions)
Opening04
  Events
  Conditions
    OpeningSkipped Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Wait 0.40 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Jaina to Attack-Move To (Center of JainaAttack <gen>)
    Wait 0.50 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Footman 0016 <gen> to Attack-Move To (Center of Footmen01Attack <gen>)
    Unit - Order Footman 0017 <gen> to Attack-Move To (Center of Footman02Attack <gen>)
    Unit - Order Footman 0018 <gen> to Attack-Move To (Center of Footman03Attack <gen>)
    Unit - Order Footman 0089 <gen> to Attack-Move To (Center of Footman04Attack <gen>)
    Unit - Order Mortar Team 0055 <gen> to Attack-Move To (Center of MortarAttack <gen>)
    Unit - Order Priest 0070 <gen> to Attack-Move To (Center of PriestAttack <gen>)
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - Apply gg_cam_Opening04 for Player 2 (Blue) over 0.00 seconds
    Camera - Apply gg_cam_Opening04 for Player 4 (Purple) over 0.00 seconds
    Trigger - Run PeasantMoving <gen> (checking conditions)
    Wait 0.50 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Visibility - Destroy (Last created visibility modifier)
    Cinematic - Send transmission to (All players) from Acolyte 0006 <gen> named Acolyte: Play H04Acolyte03 <gen> and display Damn these intruders! They must not interfere with the master's plan!. Modify duration: Add 0.00 seconds and Don't wait
    Unit - Kill HauntedGoldMine
    Trigger - Run AcolytesRun <gen> (checking conditions)
    Unit - Make Acolyte 0011 <gen> Vulnerable
    Unit - Order Arthas to Attack Acolyte 0011 <gen>
    Wait 5.00 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait for H04Acolyte03 <gen> to be 0 seconds from finished playing
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run Opening05 <gen> (checking conditions)
Opening05
  Events
  Conditions
    OpeningSkipped Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play H04Arthas04 <gen> and display Let's build a base camp here. With those cultists creeping around, I'd rather not head in there without backup.. Modify duration: Add 0.00 seconds and Don't wait
    Wait 0.50 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Arthas to Attack-Move To (Center of ArthasMove <gen>)
    Camera - Apply gg_cam_Opening05 for Player 2 (Blue) over 5.00 seconds
    Camera - Apply gg_cam_Opening05 for Player 4 (Purple) over 5.00 seconds
    Wait 0.70 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Visibility - Disable (Last created visibility modifier)
    Unit - Order Jaina to Attack-Move To (Center of JainaMove <gen>)
    Wait 2.00 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Arthas face (Center of ArthasAttack <gen>) over 0.15 seconds
    Wait 2.00 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait for H04Arthas04 <gen> to be 0 seconds from finished playing
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Jaina named Jaina Proudmoore: Play H04Jaina05 <gen> and display I couldn't agree more.. Modify duration: Add 0.00 seconds and Don't wait
    Sound - Reset all volume channels to 100%
    Wait 0.50 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Jaina face (Center of OpeningVisibility01 <gen>) over 0.15 seconds
    Wait 2.00 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait for H04Jaina05 <gen> to be 0 seconds from finished playing
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run Opening06 <gen> (checking conditions)
Opening06
  Events
  Conditions
    OpeningSkipped Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Camera - Apply gg_cam_OpeningTownHallShot for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_OpeningTownHallShot for Player 4 (Purple) over 0 seconds
    Wait 3.00 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - Apply gg_cam_OpeningFarmShot for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_OpeningFarmShot for Player 4 (Purple) over 0 seconds
    Wait 4.00 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - Apply gg_cam_OpeningBarracksShot for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_OpeningBarracksShot for Player 4 (Purple) over 0 seconds
    Wait 3.00 seconds
    If (OpeningSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Stop the currently playing music theme
    -------- *********************** --------
    -------- NO LONGER SKIPPABLE --------
    Trigger - Turn off OpeningCancelled <gen>
    Trigger - Turn off Skip_Cinematic <gen>
    Game - Turn the day/night cycle On
    Environment - Set sky to None
    Environment - Reset fog to default values
    Unit - Set Jaina acquisition range to (Default acquisition range of Jaina)
    Camera - Reset camera for Player 2 (Blue) to standard game-view over 2.00 seconds
    Camera - Reset camera for Player 4 (Purple) to standard game-view over 2.00 seconds
    Cinematic - Turn cinematic mode Off for (All players)
    Selection - Select Arthas
    Camera - Pan camera for Player 2 (Blue) to (Center of OpeningCamReset <gen>) over 0 seconds
    Camera - Pan camera for Player 4 (Purple) to (Center of OpeningCamReset <gen>) over 0 seconds
    Unit Group - Pick every unit in Town01Group and do (Remove (Picked unit) from the game)
    Unit Group - Pick every unit in (Units in AcolyteExit <gen> matching (((Picked unit) is A melee attacker) Equal to True)) and do (Remove (Picked unit) from the game)
    Trigger - Run StartCampaignAI <gen> (checking conditions)
    Visibility - Destroy VisabilityStart1
    Visibility - Destroy VisabilityStart2
    Player - Make Haunted Gold Mine Unavailable for training/construction by Player 7 (Green)
    Trigger - Turn on All_Buildings_Destroyed <gen>
    Quest - Mark QuestAndorhal as Discovered
    Quest - Display to (All players) the Quest Discovered message: |cffffcc00MAIN QUEST|rInvestigate Andorhal - Explore Andorhal
    Countdown Timer - Start GoldHintTimer as a One-shot timer that will expire in 60.00 seconds
    Set Cinematic = False
    Wait Campaign quest delay seconds
    Set OpeningSkipped = True
PeasantMoving
  Events
  Conditions
  Actions
    Unit - Order PeasantBarracks1 to Move To (Center of BuildBarracks1 <gen>)
    Unit - Order PeasantFarm1 to Move To (Center of BuildFarm1 <gen>)
    Unit - Order PeasantTownHall1 to Move To (Center of BuildTownHall1 <gen>)
    Unit - Order PeasantBarracks2 to Move To (Center of BuildBarracks2 <gen>)
    Unit - Order PeasantFarm2 to Move To (Center of BuildFarm2 <gen>)
    Unit - Order PeasantTownHall2 to Move To (Center of BuildTownHall2 <gen>)
PeasantFarm1
  Events
    Unit - A unit enters BuildFarm1 <gen>
  Conditions
    (Triggering unit) Equal to PeasantFarm1
  Actions
    Trigger - Turn off (This trigger)
    Unit - Order PeasantFarm1 to build a Farm at (Center of BuildFarm1 <gen>)
PeasantBarracks1
  Events
    Unit - A unit enters BuildBarracks1 <gen>
  Conditions
    (Triggering unit) Equal to PeasantBarracks1
  Actions
    Trigger - Turn off (This trigger)
    Unit - Order PeasantBarracks1 to build a Barracks at (Center of BuildBarracks1 <gen>)
PeasantTownhall1
  Events
    Unit - A unit enters BuildTownHall1 <gen>
  Conditions
    (Triggering unit) Equal to PeasantTownHall1
  Actions
    Trigger - Turn off (This trigger)
    Unit - Order PeasantTownHall1 to build a Town Hall at (Center of BuildTownHall1 <gen>)
PeasantFarm2
  Events
    Unit - A unit enters BuildFarm2 <gen>
  Conditions
    (Triggering unit) Equal to PeasantFarm2
  Actions
    Trigger - Turn off (This trigger)
    Unit - Order PeasantFarm2 to build a Farm at (Center of BuildFarm2 <gen>)
PeasantBarracks2
  Events
    Unit - A unit enters BuildBarracks2 <gen>
  Conditions
    (Triggering unit) Equal to PeasantBarracks2
  Actions
    Trigger - Turn off (This trigger)
    Unit - Order PeasantBarracks2 to build a Barracks at (Center of BuildBarracks2 <gen>)
PeasantTownhall2
  Events
    Unit - A unit enters BuildTownHall2 <gen>
  Conditions
    (Triggering unit) Equal to PeasantTownHall2
  Actions
    Trigger - Turn off (This trigger)
    Unit - Order PeasantTownHall2 to build a Town Hall at (Center of BuildTownHall2 <gen>)
Footman01Facing
  Events
    Unit - A unit enters Footmen01Attack <gen>
  Conditions
    (Entering unit) Equal to Footman 0016 <gen>
  Actions
    Wait 0.20 seconds
    Unit - Make Footman 0016 <gen> face (Center of Footman01Facing <gen>) over 0.20 seconds
PriestFacing
  Events
    Unit - A unit enters PriestAttack <gen>
  Conditions
    (Entering unit) Equal to Priest 0070 <gen>
  Actions
    Wait 0.20 seconds
    Unit - Make Priest 0070 <gen> face (Center of PriestFacing <gen>) over 0.20 seconds
AcolytesRun
  Events
  Conditions
  Actions
    Unit - Make Acolyte 0005 <gen> Invulnerable
    Unit - Make Acolyte 0006 <gen> Invulnerable
    Unit - Make Acolyte 0011 <gen> Invulnerable
    Unit - Order Acolyte 0005 <gen> to Move To (Center of AcolyteExit <gen>)
    Unit - Order Acolyte 0006 <gen> to Move To (Center of AcolyteExit <gen>)
    Unit - Order Acolyte 0011 <gen> to Move To (Center of AcolyteExit <gen>)
    Wait 2 seconds
AcolyteDeath
  Events
    Unit - A unit owned by Player 7 (Green) Is attacked
  Conditions
    (Attacked unit) Equal to Acolyte 0011 <gen>
  Actions
    Wait 0.50 seconds
    Unit - Kill (Attacked unit)
ConstructingHauntedMine
  Events
    Unit - A unit owned by Player 7 (Green) Begins construction
  Conditions
  Actions
    Set HauntedGoldMine = (Constructing structure)
ConstructingTownhall1
  Events
    Unit - A unit owned by Player 2 (Blue) Begins construction
  Conditions
    (Unit-type of (Triggering unit)) Equal to Town Hall
  Actions
    Set Townhall1 = (Constructing structure)
ConstructingFarm1
  Events
    Unit - A unit owned by Player 2 (Blue) Begins construction
  Conditions
    (Unit-type of (Triggering unit)) Equal to Farm
  Actions
    Set Farm1 = (Constructing structure)
ConstructingBarracks1
  Events
    Unit - A unit owned by Player 2 (Blue) Begins construction
  Conditions
    (Unit-type of (Triggering unit)) Equal to Barracks
  Actions
    Set Barracks1 = (Constructing structure)
ConstructingTownhall2
  Events
    Unit - A unit owned by Player 4 (Purple) Begins construction
  Conditions
    (Unit-type of (Triggering unit)) Equal to Town Hall
  Actions
    Set Townhall2 = (Constructing structure)
ConstructingFarm2
  Events
    Unit - A unit owned by Player 4 (Purple) Begins construction
  Conditions
    (Unit-type of (Triggering unit)) Equal to Farm
  Actions
    Set Farm2 = (Constructing structure)
ConstructingBarracks2
  Events
    Unit - A unit owned by Player 4 (Purple) Begins construction
  Conditions
    (Unit-type of (Triggering unit)) Equal to Barracks
  Actions
    Set Barracks2 = (Constructing structure)
Farm1Done
  Events
    Unit - A unit owned by Player 2 (Blue) Finishes construction
  Conditions
    (Unit-type of (Triggering unit)) Equal to Farm
  Actions
    Trigger - Turn off (This trigger)
    Wait 0.10 seconds
    Unit - Order PeasantFarm1 to Human Peasant - Repair Townhall1
    Trigger - Run PowerBuildingHint <gen> (checking conditions)
Farm2Done
  Events
    Unit - A unit owned by Player 4 (Purple) Finishes construction
  Conditions
    (Unit-type of (Triggering unit)) Equal to Farm
  Actions
    Trigger - Turn off (This trigger)
    Wait 0.10 seconds
    Unit - Order PeasantFarm2 to Human Peasant - Repair Townhall2
Barracks1Done
  Events
    Unit - A unit owned by Player 2 (Blue) Finishes construction
  Conditions
    (Unit-type of (Triggering unit)) Equal to Barracks
  Actions
    Trigger - Turn off (This trigger)
    Wait 0.10 seconds
    Unit - Order PeasantBarracks1 to Human Peasant - Repair Townhall1
Barracks2Done
  Events
    Unit - A unit owned by Player 4 (Purple) Finishes construction
  Conditions
    (Unit-type of (Triggering unit)) Equal to Barracks
  Actions
    Trigger - Turn off (This trigger)
    Wait 0.10 seconds
    Unit - Order PeasantBarracks2 to Human Peasant - Repair Townhall2
TownHall1Done
  Events
    Unit - A unit owned by Player 2 (Blue) Finishes construction
  Conditions
    (Unit-type of (Triggering unit)) Equal to Town Hall
  Actions
    Trigger - Turn off (This trigger)
    Wait 0.10 seconds
    Unit - Order PeasantTownHall1 to Harvest Gold Mine 0008 <gen>
    Unit - Order PeasantBarracks1 to Harvest Gold Mine 0008 <gen>
    Unit - Order PeasantFarm1 to Harvest Village Tree Wall 0736 <gen>
TownHall2Done
  Events
    Unit - A unit owned by Player 4 (Purple) Finishes construction
  Conditions
    (Unit-type of (Triggering unit)) Equal to Town Hall
  Actions
    Trigger - Turn off (This trigger)
    Wait 0.10 seconds
    Unit - Order PeasantTownHall2 to Harvest Gold Mine 0088 <gen>
    Unit - Order PeasantBarracks2 to Harvest Gold Mine 0088 <gen>
    Unit - Order PeasantFarm2 to Harvest Summer Tree Wall 2054 <gen>
GranaryCancelled
  Events
  Conditions
    GranaryCancelled Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set Cinematic = False
    Set GranaryCancelled = True
    Game - Turn the day/night cycle On
    Sound - Stop (Last played sound) Immediately
    Sound - Stop the currently playing music theme
    Cinematic - Fade out over 0.00 seconds using texture Black Mask and color (0%, 0%, 0%) with 0% transparency
    Unit Group - Pick every unit in (Units owned by Player 7 (Green)) and do (Unhide (Picked unit))
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Unit - Unpause all units
    Player - Make Player 7 (Green) treat Player 2 (Blue) as an Enemy
    Player - Make Player 7 (Green) treat Player 4 (Purple) as an Enemy
    Player - Make Player 2 (Blue) treat Player 7 (Green) as an Enemy
    Player - Make Player 4 (Purple) treat Player 7 (Green) as an Enemy
    Player - Make Player 2 (Blue) treat Neutral Hostile as an Enemy
    Player - Make Player 4 (Purple) treat Neutral Hostile as an Enemy
    Player - Make Player 6 (Orange) treat Player 2 (Blue) as an Enemy
    Player - Make Player 6 (Orange) treat Player 4 (Purple) as an Enemy
    Player - Make Player 2 (Blue) treat Player 6 (Orange) as an Enemy
    Player - Make Player 4 (Purple) treat Player 6 (Orange) as an Enemy
    Unit - Move KelThuzad instantly to (Center of KelThuzadFinalPost <gen>)
    Unit - Make KelThuzad face (Center of KelThuzadFinalFace <gen>) over 0 seconds
    Unit - Make KelThuzad Vulnerable
    Unit - Move Arthas instantly to ArthasPoint
    Unit - Move Jaina instantly to JainaPoint
    Unit - Make Arthas Vulnerable
    Unit - Make Jaina Vulnerable
    If ((Arthas is dead) Equal to True) then do (Instantly revive Arthas at (Center of ArthasWarpGranary <gen>), Hide revival graphics) else do (Do nothing)
    If ((Jaina is dead) Equal to True) then do (Instantly revive Arthas at (Center of JainaWarpGranary <gen>), Hide revival graphics) else do (Do nothing)
    Camera - Reset camera for Player 2 (Blue) to standard game-view over 0.00 seconds
    Camera - Reset camera for Player 4 (Purple) to standard game-view over 0.00 seconds
    Camera - Pan camera for Player 2 (Blue) to (Center of GranaryCamReset <gen>) over 0 seconds
    Camera - Pan camera for Player 4 (Purple) to (Center of GranaryCamReset <gen>) over 0 seconds
    Cinematic - Turn cinematic mode Off for (All players)
    Selection - Select SelectionGroup1
    Environment - Set sky to None
    Environment - Reset fog to default values
    -------- Quests --------
    Wait 5.00 seconds
    Quest - Display to (All players) the Quest Completed message: |cffffcc00MAIN QUEST COMPLETED|rInvestigate Andorhal
    Quest - Mark QuestAndorhal as Completed
    Quest - Mark QuestAndorhalReq as Completed
    Wait Campaign quest delay seconds
    Quest - Display to (All players) the Quest Discovered message: |cffffcc00MAIN QUEST|rConfront Kel'Thuzad - Find Kel'Thuzad
    Quest - Mark QuestNecromancer as Discovered
Granary01
  Events
    Unit - A unit enters GranaryKelThuzadArea01 <gen>
    Unit - A unit enters GranaryKelThuzadArea02 <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to Player 2 (Blue)
        (Owner of (Entering unit)) Equal to Player 4 (Purple)
    GranaryCancelled Equal to False
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set GranaryEntranceGuy = (Entering unit)
    Set Cinematic = True
    Game - Turn the day/night cycle Off
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0.00%, 0%) with 0% transparency
    Unit - Pause all units
    Wait 1.00 seconds
    If (GAMEOVER Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit Group - Pick every unit in (Units owned by Player 7 (Green)) and do (Hide (Picked unit))
    Player - Make Player 2 (Blue) treat Player 7 (Green) as an Neutral
    Player - Make Player 4 (Purple) treat Player 7 (Green) as an Neutral
    Player - Make Player 2 (Blue) treat Neutral Hostile as an Neutral
    Player - Make Player 4 (Purple) treat Neutral Hostile as an Neutral
    Player - Make Player 6 (Orange) treat Player 2 (Blue) as an Neutral
    Player - Make Player 6 (Orange) treat Player 4 (Purple) as an Neutral
    Player - Make Player 2 (Blue) treat Player 6 (Orange) as an Neutral
    Player - Make Player 4 (Purple) treat Player 6 (Orange) as an Neutral
    Set SelectionGroup1 = (Units currently selected by Player 2 (Blue))
    Set SelectionGroup2 = (Units currently selected by Player 4 (Purple))
    Selection - Clear selection
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Remove All buffs from (Picked unit))
    -------- Music --------
    Sound - Play Sad Mystery
    -------- *********************** --------
    Cinematic - Turn cinematic mode On for (All players)
    Environment - Set sky to Felwood Sky
    Environment - Set fog to style 0 (fogstyle), z-start 800.00, z-end 5000.00, density 0 and color (30.00%, 30.00%, 10.00%)
    Unit - Unhide KelThuzad
    Unit - Unpause KelThuzad
    Unit - Make KelThuzad Invulnerable
    Unit - Unpause Ghoul 0043 <gen>
    Unit - Unpause Ghoul 0047 <gen>
    Set CinematicRegionArthas = ArthasWarpGranary <gen>
    Trigger - Run ArthasCinematicRevive <gen> (checking conditions)
    Set CinematicRegionJaina = JainaWarpGranary <gen>
    Trigger - Run JainaCinematicRevive <gen> (checking conditions)
    Unit - Unpause Arthas
    Unit - Unpause Jaina
    Unit - Make Arthas Invulnerable
    Unit - Make Jaina Invulnerable
    Camera - Apply gg_cam_Granery01Close for Player 2 (Blue) over 0.00 seconds
    Camera - Apply gg_cam_Granery01Close for Player 4 (Purple) over 0.00 seconds
    Camera - Apply gg_cam_Granery01d for Player 2 (Blue) over 11.60 seconds
    Camera - Apply gg_cam_Granery01d for Player 4 (Purple) over 11.60 seconds
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0.00%, 0%) with 0% transparency
    -------- NOW SKIPPABLE --------
    Trigger - Turn on Skip_Cinematic <gen>
    Trigger - Turn on GranaryCancelled <gen>
    Wait 0.10 seconds
    If (GAMEOVER Equal to True) then do (Skip remaining actions) else do (Do nothing)
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Trigger - Run GranaryGhouls <gen> (checking conditions)
    Unit - Unpause Arthas
    Unit - Unpause Jaina
    Unit - Unpause KelThuzad
    Wait 2.00 seconds
    If (GAMEOVER Equal to True) then do (Skip remaining actions) else do (Do nothing)
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- *********************** --------
    Trigger - Run Granary02 <gen> (ignoring conditions)
Granary02
  Events
  Conditions
    GranaryCancelled Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Unit - Make KelThuzad face (Center of KelThuzadFacing <gen>) over 0.10 seconds
    Wait 0.50 seconds
    If (GAMEOVER Equal to True) then do (Skip remaining actions) else do (Do nothing)
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from KelThuzad named Kel'Thuzad: Play H04KelThuzad06 <gen> and display Hello again, children. I am Kel'Thuzad, and I've come to deliver a warning. Leave well enough alone. Your curiosity will be the death of you.. Modify duration: Add 0.00 seconds and Don't wait
    Animation - Play KelThuzad's stand victory animation
    Wait 7.00 seconds
    If (GAMEOVER Equal to True) then do (Skip remaining actions) else do (Do nothing)
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    If ((Arthas is dead) Equal to True) then do (Instantly revive Arthas at (Center of ArthasWarpGranary <gen>), Hide revival graphics) else do (Do nothing)
    Unit - Move Arthas instantly to (Center of ArthasWarpGranary <gen>)
    If ((Jaina is dead) Equal to True) then do (Instantly revive Arthas at (Center of JainaWarpGranary <gen>), Hide revival graphics) else do (Do nothing)
    Unit - Move Jaina instantly to (Center of JainaWarpGranary <gen>)
    Unit - Order Arthas to Move To (Center of ArthasPostGranary <gen>)
    Unit - Order Jaina to Move To (Center of JainaPostGranary <gen>)
    Camera - Apply gg_cam_Granary02 for Player 2 (Blue) over 0.00 seconds
    Camera - Apply gg_cam_Granary02 for Player 4 (Purple) over 0.00 seconds
    Wait 2.00 seconds
    If (GAMEOVER Equal to True) then do (Skip remaining actions) else do (Do nothing)
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait for H04KelThuzad06 <gen> to be 0 seconds from finished playing
    If (GAMEOVER Equal to True) then do (Skip remaining actions) else do (Do nothing)
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Arthas face KelThuzad over 0.20 seconds
    Animation - Play KelThuzad's stand animation
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play H04Arthas22 <gen> and display Are you responsible for this plague, necromancer? Is this cult your doing?. Modify duration: Add 0.00 seconds and Wait
    If (GAMEOVER Equal to True) then do (Skip remaining actions) else do (Do nothing)
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from KelThuzad named Kel'Thuzad: Play H04KelThuzad23 <gen> and display Yes, I ordered the Cult of the Damned to distribute the plagued grain. But the sole credit is not mine.. Modify duration: Add 0.00 seconds and Wait
    If (GAMEOVER Equal to True) then do (Skip remaining actions) else do (Do nothing)
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Jaina named Jaina Proudmoore: Play H04Jaina24 <gen> and display What do you mean?. Modify duration: Add 0.00 seconds and Wait
    If (GAMEOVER Equal to True) then do (Skip remaining actions) else do (Do nothing)
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Ghoul 0043 <gen> face Jaina over 0.40 seconds
    Cinematic - Send transmission to (All players) from KelThuzad named Kel'Thuzad: Play H04KelThuzad25 <gen> and display I serve the dreadlord Mal'Ganis. He commands the Scourge that will cleanse this land and establish a paradise of eternal darkness!. Modify duration: Add 0.00 seconds and Wait
    If (GAMEOVER Equal to True) then do (Skip remaining actions) else do (Do nothing)
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play H04Arthas26 <gen> and display And what exactly is this Scourge meant to cleanse?. Modify duration: Add 0.00 seconds and Wait
    If (GAMEOVER Equal to True) then do (Skip remaining actions) else do (Do nothing)
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Ghoul 0047 <gen> face Jaina over 0.40 seconds
    Animation - Play KelThuzad's stand channel animation
    Cinematic - Send transmission to (All players) from KelThuzad named Kel'Thuzad: Play H04KelThuzad27 <gen> and display Why, the living, of course. His plan is already in motion. Seek him out at Stratholme if you need further proof.. Modify duration: Add 0.00 seconds and Wait
    If (GAMEOVER Equal to True) then do (Skip remaining actions) else do (Do nothing)
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Make Arthas Vulnerable
    Unit - Make Jaina Vulnerable
    Unit - Order KelThuzad to Move To (Center of KelThuzadFinalPost <gen>)
    Wait 2.00 seconds
    If (GAMEOVER Equal to True) then do (Skip remaining actions) else do (Do nothing)
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- NO LONGER SKIPPABLE --------
    Trigger - Turn off Skip_Cinematic <gen>
    Trigger - Turn off GranaryCancelled <gen>
    Player - Make Player 7 (Green) treat Player 2 (Blue) as an Enemy
    Player - Make Player 7 (Green) treat Player 4 (Purple) as an Enemy
    Player - Make Player 2 (Blue) treat Player 7 (Green) as an Enemy
    Player - Make Player 4 (Purple) treat Player 7 (Green) as an Enemy
    Player - Make Player 2 (Blue) treat Neutral Hostile as an Enemy
    Player - Make Player 4 (Purple) treat Neutral Hostile as an Enemy
    Player - Make Player 6 (Orange) treat Player 2 (Blue) as an Enemy
    Player - Make Player 6 (Orange) treat Player 4 (Purple) as an Enemy
    Player - Make Player 2 (Blue) treat Player 6 (Orange) as an Enemy
    Player - Make Player 4 (Purple) treat Player 6 (Orange) as an Enemy
    Game - Turn the day/night cycle On
    Unit - Move Arthas instantly to ArthasPoint
    Unit - Move Jaina instantly to JainaPoint
    Unit - Order Ghoul 0047 <gen> to Attack-Move To (Position of GranaryEntranceGuy)
    Unit - Order Ghoul 0043 <gen> to Attack-Move To (Position of GranaryEntranceGuy)
    Unit Group - Pick every unit in (Units owned by Player 7 (Green)) and do (Unhide (Picked unit))
    Unit - Move KelThuzad instantly to (Center of KelThuzadFinalPost <gen>)
    Unit - Make KelThuzad face (Center of KelThuzadFinalFace <gen>) over 0 seconds
    Unit - Make KelThuzad Vulnerable
    Unit - Unpause all units
    Cinematic - Turn cinematic mode Off for (All players)
    Selection - Select SelectionGroup1 for Player 2 (Blue)
    Selection - Select SelectionGroup2 for Player 4 (Purple)
    Camera - Reset camera for Player 2 (Blue) to standard game-view over 1.00 seconds
    Camera - Reset camera for Player 4 (Purple) to standard game-view over 1.00 seconds
    Camera - Pan camera for Player 2 (Blue) to (Center of GranaryCamReset <gen>) over 0 seconds
    Camera - Pan camera for Player 4 (Purple) to (Center of GranaryCamReset <gen>) over 0 seconds
    Environment - Set sky to None
    Environment - Reset fog to default values
    If (GAMEOVER Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Set Cinematic = False
    Wait 5.00 seconds
    -------- Quests --------
    Quest - Display to (All players) the Quest Completed message: |cffffcc00MAIN QUEST COMPLETED|rInvestigate Andorhal
    Quest - Mark QuestAndorhal as Completed
    Quest - Mark QuestAndorhalReq as Completed
    Wait Campaign quest delay seconds
    If (GAMEOVER Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Quest - Display to (All players) the Quest Discovered message: |cffffcc00MAIN QUEST|rConfront Kel'Thuzad - Find Kel'Thuzad
    Quest - Mark QuestNecromancer as Discovered
GranaryDialog
  Events
    Unit - A unit owned by Neutral Hostile Dies
  Conditions
    (Unit-type of (Triggering unit)) Equal to Infected Granary
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off ArthasEmptyCrates <gen>
    Wait 2 seconds
    If (GAMEOVER Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Setup all volume channels for speech
    If ((Arthas is alive) Equal to True) then do (Send transmission to (All players) from Arthas named Arthas: Play H04Arthas18 <gen> and display All the granaries are empty! The shipments have already been sent out. We're too late!. Modify duration: Add 0 seconds and Wait) else do (Wait 0.10 seconds)
    Sound - Reset all volume channels to 100%
GranaryGhouls
  Events
  Conditions
  Actions
    Animation - Play Ghoul 0047 <gen>'s stand channel animation
    Wait 0.20 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0043 <gen>'s stand channel animation
    Wait 2 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0047 <gen>'s stand animation
    Wait 0.50 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0043 <gen>'s stand animation
    Wait 2 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0047 <gen>'s stand channel animation
    Wait 0.20 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0043 <gen>'s stand channel animation
    Wait 2 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0043 <gen>'s stand animation
    Wait 0.50 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0047 <gen>'s stand animation
    Wait 2 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0043 <gen>'s stand channel animation
    Wait 0.20 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0047 <gen>'s stand channel animation
    Wait 1.20 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0047 <gen>'s stand animation
    Animation - Play Ghoul 0043 <gen>'s stand animation
    Wait 2 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0047 <gen>'s stand channel animation
    Wait 0.50 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0043 <gen>'s stand channel animation
    Wait 2 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0047 <gen>'s stand animation
    Wait 0.20 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0043 <gen>'s stand animation
    Wait 2 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0047 <gen>'s stand channel animation
    Wait 0.20 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0043 <gen>'s stand channel animation
    Wait 2 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0047 <gen>'s stand animation
    Animation - Play Ghoul 0043 <gen>'s stand animation
    Wait 2 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0047 <gen>'s stand channel animation
    Wait 0.50 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0043 <gen>'s stand channel animation
    Wait 1.00 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0043 <gen>'s stand animation
    Wait 0.50 seconds
    If (GranaryCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Ghoul 0047 <gen>'s stand animation
EndingCancelled
  Events
  Conditions
    EndingCancelled Equal to False
  Actions
    Set EndingCancelled = True
    Trigger - Turn off EndingCancelled <gen>
    Sound - Stop (Last played sound) Immediately
    Unit - Kill KelThuzad
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Cinematic - Turn cinematic mode Off for (All players)
    Wait 2.00 seconds
    Unit - Hide Arthas
    Unit - Hide Jaina
    Trigger - Run Endgame_Text <gen> (checking conditions)
Ending
  Events
    Unit - Kel'Thuzad 0133 <gen> Dies
  Conditions
    GAMEOVER Equal to False
  Actions
    Set GAMEOVER = True
    Set Cinematic = True
    Trigger - Turn off (This trigger)
    Trigger - Turn off AIHarrassment <gen>
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        Unit - Replace (Dying unit) with a Kel'Thuzad (Insane) using The new unit's default life and mana
      Else - Actions
        Unit - Replace (Dying unit) with a Kel'Thuzad (Necromancer) using The new unit's default life and mana
    Set KelThuzad = (Last replaced unit)
    Unit - Make KelThuzad Invulnerable
    Unit - Set life of KelThuzad to 1.00%
    Unit - Pause all units
    Quest - Display to (All players) the Quest Completed message: |cffffcc00MAIN QUEST COMPLETED|rConfront Kel'Thuzad
    Wait Campaign quest delay seconds
    Game - Turn the day/night cycle Off
    Cinematic - Turn cinematic mode On for (All players)
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    Selection - Clear selection
    Unit Group - Pick every unit in (Units of type Peasant) and do (Actions)
      Loop - Actions
        Unit - Order (Picked unit) to Stop
    -------- NOW SKIPPABLE --------
    Trigger - Turn on Skip_Cinematic <gen>
    Trigger - Turn on EndingCancelled <gen>
    If (EndingCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- Music --------
    Sound - Play Tragic Confrontation
    -------- *********************** --------
    Set EndCinematicMove = (Units in KelThuzadFinalPost <gen>)
    Unit Group - Pick every unit in (Units owned by Player 6 (Orange)) and do (Hide (Picked unit))
    Unit Group - Pick every unit in (Units owned by Player 7 (Green)) and do (Hide (Picked unit))
    Unit Group - Pick every unit in (Units owned by Player 2 (Blue)) and do (Hide (Picked unit))
    Unit Group - Pick every unit in (Units owned by Player 4 (Purple)) and do (Hide (Picked unit))
    Unit - Unhide KelThuzad
    Unit - Unhide Arthas
    Unit - Unhide Jaina
    Unit Group - Pick every unit in EndCinematicMove and do (Move (Picked unit) instantly to (Random point in (Playable map area)), facing (Center of KelThuzadFinalPost <gen>))
    Set CinematicRegionArthas = Arthas_End <gen>
    Trigger - Run ArthasCinematicRevive <gen> (checking conditions)
    Set CinematicRegionJaina = Jaina_End <gen>
    Trigger - Run JainaCinematicRevive <gen> (checking conditions)
    Unit - Make Arthas face (Center of KelThuzadFinalPost <gen>) over 0 seconds
    Unit - Make Jaina face (Center of KelThuzadFinalPost <gen>) over 0 seconds
    Wait 0.10 seconds
    If (EndingCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Move KelThuzad instantly to (Center of KelThuzadFinalPost <gen>), facing (Center of KelThuzadFinalFace <gen>)
    Unit - Pause all units
    Camera - Apply gg_cam_End for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_End for Player 4 (Purple) over 0 seconds
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    If (EndingCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- Experimental Death --------
    Cinematic - Send transmission to (All players) from KelThuzad named Kel'Thuzad: Play H04KelThuzad28 <gen> and display Naive fool. My death will make little difference in the long run. For, now, the scourging of this land... begins.. Modify duration: Add 0 seconds and Don't wait
    Animation - Change KelThuzad blend time to 0.00
    Unit - Make KelThuzad Invulnerable
    Unit - Set life of KelThuzad to 1.00
    Animation - Play KelThuzad's stand animation, using only Common animations
    Sound - Set Animation and Spell Sounds to 0.00%
    Wait 1.00 seconds
    If (EndingCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change KelThuzad's animation speed to 10.00% of its original speed
    Animation - Play KelThuzad's death animation, using only Common animations
    Wait 2.50 seconds
    If (EndingCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Change KelThuzad blend time to 0.15
    Wait 2.50 seconds
    If (EndingCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play KelThuzad's death animation, using only Common animations
    Wait for H04KelThuzad28 <gen> to be 0 seconds from finished playing
    If (EndingCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Set Animation and Spell Sounds to 100.00%
    Animation - Change KelThuzad's animation speed to 60.00% of its original speed
    Unit - Kill KelThuzad
    Sound - Attach NecromancerDeath <gen> to KelThuzad
    Sound - Play NecromancerDeath <gen>
    Wait 2 seconds
    -------- Experimental Death --------
    If (EndingCancelled Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Remove WaterLakeLoop1 <gen> across LakeLoop01 <gen>
    Sound - Remove WaterLakeLoop1 <gen> across LakeLoop02 <gen>
    Sound - Remove WaterLakeLoop1 <gen> across LakeLoop03 <gen>
    Sound - Remove WaterLakeLoop1 <gen> across LakeLoop04 <gen>
    Sound - Remove WaterLakeLoop1 <gen> across LakeLoop05 <gen>
    Sound - Remove WaterLakeLoop1 <gen> across LakeLoop06 <gen>
    Sound - Remove WaterLakeLoop1 <gen> across LakeLoop07 <gen>
    Sound - Remove WaterLakeLoop1 <gen> across LakeLoop08 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop01 <gen>
    Sound - Stop the currently playing music theme
    Wait 1.00 seconds
    If (EndingCancelled 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
    Cinematic - Turn cinematic mode Off for (All players)
    Trigger - Turn off EndingCancelled <gen>
    Trigger - Turn off Skip_Cinematic <gen>
    Wait 2.00 seconds
    Unit - Hide Arthas
    Unit - Hide Jaina
    Trigger - Run Endgame_Text <gen> (checking conditions)
Timmy
  Events
    Destructible - Cage 2148 <gen> dies
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to False
      Then - Actions
        Unit - Create 1 Timmy for Player 1 (Red) at (Center of CageGhoul <gen>) facing 24.00 degrees
        Player - Change color of Player 1 (Red) to Green, Changing color of existing units
        Player - Make Player 1 (Red) treat Player 2 (Blue) as an Ally
        Player - Make Player 1 (Red) treat Player 4 (Purple) as an Ally
        Player - Make Player 1 (Red) treat Player 7 (Green) as an Ally
        Player - Make Player 1 (Red) treat Neutral Hostile as an Ally
        Player - Make Player 1 (Red) treat Player 8 (Pink) as an Ally
        Unit - Order Timmy to Move To (Random point in TimmyRoam <gen>)
        Trigger - Turn on TimmyRoam <gen>
      Else - Actions
        Unit - Create 1 Timmy (Insane) for Player 1 (Red) at (Center of CageGhoul <gen>) facing 24.00 degrees
        Player - Change color of Player 1 (Red) to Green, Changing color of existing units
        Player - Make Player 1 (Red) treat Player 2 (Blue) as an Enemy
        Player - Make Player 1 (Red) treat Player 4 (Purple) as an Enemy
        Player - Make Player 2 (Blue) treat Player 1 (Red) as an Enemy
        Player - Make Player 4 (Purple) treat Player 1 (Red) as an Enemy
        Player - Make Player 1 (Red) treat Player 7 (Green) as an Ally
        Player - Make Player 1 (Red) treat Neutral Hostile as an Ally
        Player - Make Player 1 (Red) treat Player 8 (Pink) as an Ally
    Set Timmy = (Last created unit)
TimmyDies
  Events
    Unit - A unit owned by Player 1 (Red) Dies
  Conditions
    (Dying unit) Equal to Timmy
  Actions
    Item - Create Ring of Superiority at (Position of (Dying unit))
    Set BonusesFound = (BonusesFound + 1)
TimmyRoam
  Events
    Time - Every 8.00 seconds of game time
  Conditions
  Actions
    Unit - Order Timmy to Move To (Random point in TimmyRoam <gen>)
GhoulsAttack
  Events
    Unit - A unit enters BurntOutFarm <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Triggering unit)) Equal to Player 2 (Blue)
        (Owner of (Triggering unit)) Equal to Player 4 (Purple)
  Actions
    Trigger - Turn off (This trigger)
    Unit - Kill Villager 0085 <gen>
    Wait 0.50 seconds
    Unit - Create 1 Ghoul for Player 7 (Green) at (Center of BurntOutFarmGhoulsStart <gen>) facing 0 degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of BurntOutFarm <gen>)
    Unit - Create 1 Ghoul for Player 7 (Green) at (Center of BurntOutFarmGhoulsStart <gen>) facing 0 degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of BurntOutFarm <gen>)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        Unit - Create 1 Ghoul for Player 7 (Green) at (Center of BurntOutFarmGhoulsStart <gen>) facing 0 degrees
        Unit - Order (Last created unit) to Attack-Move To (Center of BurntOutFarm <gen>)
        Unit - Create 1 Ghoul for Player 7 (Green) at (Center of BurntOutFarmGhoulsStart <gen>) facing 0 degrees
        Unit - Order (Last created unit) to Attack-Move To (Center of BurntOutFarm <gen>)
        Unit - Create 1 Ghoul for Player 7 (Green) at (Center of BurntOutFarmGhoulsStart <gen>) facing 0 degrees
        Unit - Order (Last created unit) to Attack-Move To (Center of BurntOutFarm <gen>)
      Else - Actions
BarracksBlowUp
  Events
    Unit - A unit enters BarrackBlowUp <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Triggering unit)) Equal to Player 2 (Blue)
        (Owner of (Triggering unit)) Equal to Player 4 (Purple)
  Actions
    Trigger - Turn off (This trigger)
    Unit - Create 2 Ghoul for Player 7 (Green) at (Center of BarrackBlowUp <gen>) facing 0 degrees
    Unit - Kill Barracks 0080 <gen>
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        Unit - Create 2 Ghoul for Player 7 (Green) at (Center of BarrackBlowUp <gen>) facing 0 degrees
        Unit - Create 2 Ghoul for Player 7 (Green) at (Center of BarrackBlowUp <gen>) facing 0 degrees
      Else - Actions
TowerBlowUp
  Events
    Unit - A unit enters TowerBlowUp <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Triggering unit)) Equal to Player 2 (Blue)
        (Owner of (Triggering unit)) Equal to Player 4 (Purple)
  Actions
    Trigger - Turn off (This trigger)
    Wait 2 seconds
    Unit - Kill Scout Tower 0081 <gen>
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        Unit - Create 3 Ghoul for Player 7 (Green) at (Center of Region_095 <gen>) facing 0 degrees
      Else - Actions
ArthasEmptyCrates
  Events
    Unit - A unit enters EmptyCrates <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Triggering unit)) Equal to Player 2 (Blue)
        (Owner of (Triggering unit)) Equal to Player 4 (Purple)
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off GranaryDialog <gen>
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Arthas named Arthas: Play H04Arthas18 <gen> and display All the granaries are empty! The shipments have already been sent out. We're too late!. Modify duration: Add 0.00 seconds and Wait
    Sound - Reset all volume channels to 100%
GnollRun
  Events
    Unit - A unit enters GnollRun <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Triggering unit)) Equal to Player 2 (Blue)
        (Owner of (Triggering unit)) Equal to Player 4 (Purple)
  Actions
    Unit - Order Gnoll Poacher 0095 <gen> to Move To (Center of GnollRunDest <gen>)
Golems
  Events
    Time - Every 2.00 seconds of game time
  Conditions
  Actions
    Unit Group - Pick every unit in GolemsGroup and do (Order (Picked unit) to Attack-Move To (Random point in GolemArea <gen>))
Bandits
  Events
    Unit - Enforcer 0069 <gen> Acquires a target
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Sound - Attach BanditWarcry1 <gen> to Enforcer 0069 <gen>
    Sound - Play BanditWarcry1 <gen>
ArthasCinematicRevive
  Events
  Conditions
  Actions
    Set ArthasPoint = (Position of Arthas)
    Unit - Move Arthas instantly to (Center of CinematicRegionArthas)
    If ((Arthas is alive) Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Hero - Instantly revive Arthas at (Center of CinematicRegionArthas), Hide revival graphics
    Set ArthasPoint = (Center of CinematicRegionArthas)
    Set RevivalAltar = (Random unit from (Units owned by Player 2 (Blue) matching (((Unit-type of (Matching unit)) Equal to Altar of Kings) and (((Matching unit) is alive) Equal to True))))
    If (RevivalAltar Not equal to No unit) then do (Set ArthasPoint = ((Position of RevivalAltar) offset by (0, -128.00))) else do (Do nothing)
JainaCinematicRevive
  Events
  Conditions
  Actions
    Set JainaPoint = (Position of Jaina)
    Unit - Move Jaina instantly to (Center of CinematicRegionJaina)
    If ((Jaina is alive) Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Hero - Instantly revive Jaina at (Center of CinematicRegionJaina), Hide revival graphics
    Set JainaPoint = (Center of CinematicRegionJaina)
    Set RevivalAltar = (Random unit from (Units owned by Player 4 (Purple) matching (((Unit-type of (Matching unit)) Equal to Altar of Kings) and (((Matching unit) is alive) Equal to True))))
    If (RevivalAltar Not equal to No unit) then do (Set JainaPoint = ((Position of RevivalAltar) offset by (0, -128.00))) else do (Do nothing)
ArthasDeadSpeech
  Events
    Unit - A unit owned by Player 2 (Blue) Dies
  Conditions
    (Triggering unit) Equal to Arthas
  Actions
    Set ArthasDead = True
    Sound - Stop H04Arthas07 <gen> Immediately
    Sound - Stop H04Arthas09 <gen> Immediately
    Sound - Stop H04Arthas11 <gen> Immediately
    Sound - Stop H04Arthas15 <gen> Immediately
    Sound - Stop H04Arthas17 <gen> Immediately
    Sound - Stop H04Arthas18 <gen> Immediately
    Sound - Stop H04Arthas19 <gen> Immediately
    Sound - Stop H04Arthas21 <gen> Immediately
All Buildings Destroyed
  Events
    Unit - A unit owned by Player 2 (Blue) Dies
    Unit - A unit owned by Player 9 (Gray) Dies
  Conditions
    (Count structures controlled by Player 2 (Blue) (Include incomplete structures)) Equal to 0
    (Count structures controlled by Player 9 (Gray) (Include incomplete structures)) Equal to 0
  Actions
    Set GAMEOVER = True
    Trigger - Turn off (This trigger)
    Game - Display to (All players) for 600.00 seconds the text: |cffffcc00MAIN QUEST FAILED|r
    Game - Display to (All players) for 600.00 seconds the text: The base was destroyed.
    Game - Turn the day/night cycle Off
    Sound - Play QuestFailed <gen>
    Wait 1.00 seconds
    Cinematic - Fade out over 2 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2 seconds
    Sound - Play SadMystery <gen>
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Make (Picked unit) Invulnerable)
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Order (Picked unit) to Stop)
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Hide (Picked unit))
Insane Kel
  Events
  Conditions
  Actions
    Set TempInteger = (Random integer number between 1 and 5)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TempInteger Equal to 1
      Then - Actions
        Unit - Order KelThuzad to Special Archimonde - Dark Portal ((Position of KelThuzad) offset by 256 towards (Facing of KelThuzad) degrees)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TempInteger Equal to 2
      Then - Actions
        Unit - Order KelThuzad to Undead Necromancer - Cripple (Damage source)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TempInteger Equal to 3
      Then - Actions
        Unit - Order KelThuzad to Undead Necromancer - Unholy Frenzy KelThuzad
      Else - Actions
Setup Insane
  Events
  Conditions
  Actions
    Set MissionNumber = 14
    Unit - Replace Murloc Huntsman 0040 <gen> with a Murloc Nightcrawler using The old unit's relative life and mana
    Unit - Replace Murloc Huntsman 0007 <gen> with a Murloc Nightcrawler using The old unit's relative life and mana
    Unit - Replace Gnoll Assassin 0012 <gen> with a Gnoll Overseer using The old unit's relative life and mana
    Unit - Replace Gnoll Poacher 0045 <gen> with a Gnoll Assassin using The old unit's relative life and mana
    Unit - Replace Gnoll Poacher 0044 <gen> with a Gnoll Assassin using The old unit's relative life and mana
    Unit - Replace Rock Golem 0014 <gen> with a Granite Golem using The old unit's relative life and mana
    Set Golem = (Last replaced unit)
    Unit - Replace Rock Golem 0064 <gen> with a Mud Golem using The old unit's relative life and mana
    Unit - Replace Forest Troll Berserker 0010 <gen> with a Forest Troll Warlord using The old unit's relative life and mana
    Unit - Replace Forest Troll 0072 <gen> with a Forest Troll Trapper using The old unit's relative life and mana
    Unit - Replace Forest Troll 0066 <gen> with a Forest Troll Trapper using The old unit's relative life and mana
    Unit - Replace Forest Troll Berserker 0009 <gen> with a Forest Troll Warlord using The old unit's relative life and mana
    Set Troll = (Last replaced unit)
    Unit - Replace Forest Troll 0073 <gen> with a Forest Troll Trapper using The old unit's relative life and mana
    Unit - Replace Forest Troll 0075 <gen> with a Forest Troll Trapper using The old unit's relative life and mana
    Unit - Replace Enforcer 0067 <gen> with a Bandit Lord using The old unit's relative life and mana
    Set Bandit = (Last replaced unit)
    Unit - Replace Ziggurat 0049 <gen> with a Spirit Tower using The old unit's relative life and mana
    Unit - Replace Ziggurat 0039 <gen> with a Spirit Tower using The old unit's relative life and mana
    Unit - Replace Kel'Thuzad 0133 <gen> with a Kel'Thuzad (Insane) using The old unit's relative life and mana
    Set KelThuzad = (Last replaced unit)
    Trigger - Add to Insane_Kel <gen> the event ((Last replaced unit) Takes damage)
    AI - Ignore KelThuzad's guard position
    Trigger - Add to Ending <gen> the event ((Last replaced unit) Dies)
    Player - Set the max research level of Rume (techcode) to 1 for Player 7 (Green)
    Player - Set the max research level of Rura (techcode) to 1 for Player 7 (Green)
    Player - Set the max research level of Ruar (techcode) to 1 for Player 7 (Green)
    Player - Set the max research level of Rugf (techcode) to 1 for Player 7 (Green)
    Player - Set the max research level of Rune (techcode) to 1 for Player 7 (Green)
    Player - Set the max research level of Rucr (techcode) to 1 for Player 7 (Green)
    Player - Set the max research level of Rupc (techcode) to 1 for Player 7 (Green)
    Player - Set the current research level of Rume (techcode) to 1 for Player 7 (Green)
    Player - Set the current research level of Rura (techcode) to 1 for Player 7 (Green)
    Player - Set the current research level of Ruar (techcode) to 1 for Player 7 (Green)
    Player - Set the current research level of Rucr (techcode) to 1 for Player 7 (Green)
    Player - Set the current research level of Rune (techcode) to 1 for Player 7 (Green)
    Player - Set the current research level of Rupc (techcode) to 1 for Player 7 (Green)
    Player - Set the current research level of Rugf (techcode) to 1 for Player 7 (Green)
    Player - Set the max research level of Rume (techcode) to 2 for Player 6 (Orange)
    Player - Set the max research level of Ruar (techcode) to 2 for Player 6 (Orange)
    Player - Set the max research level of Rupc (techcode) to 2 for Player 6 (Orange)
    Player - Set the max research level of Rune (techcode) to 2 for Player 6 (Orange)
    Player - Set the max research level of Rusl (techcode) to 1 for Player 6 (Orange)
    Player - Set the max research level of Rusm (techcode) to 1 for Player 6 (Orange)
    Player - Set the current research level of Rume (techcode) to 2 for Player 6 (Orange)
    Player - Set the current research level of Ruar (techcode) to 2 for Player 6 (Orange)
    Player - Set the current research level of Rupc (techcode) to 2 for Player 6 (Orange)
    Player - Set the current research level of Rune (techcode) to 2 for Player 6 (Orange)
    Player - Set the current research level of Rusl (techcode) to 1 for Player 6 (Orange)
    Player - Set the current research level of Rusm (techcode) to 1 for Player 6 (Orange)
Computer Upkeep
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Player 7 (Green) Food used) Less than 50
      Then - Actions
        Player - Set Player 7 (Green) Gold upkeep rate to 0
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Player 7 (Green) Food used) Greater than or equal to 50
        (Player 7 (Green) Food used) Less than 80
      Then - Actions
        Player - Set Player 7 (Green) Gold upkeep rate to 30
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Player 7 (Green) Food used) Greater than or equal to 80
      Then - Actions
        Player - Set Player 7 (Green) Gold upkeep rate to 60
      Else - Actions
Player Limits
  Events
    Map initialization
  Conditions
  Actions
    Player - Set Player 2 (Blue) Food max to 60
    Player - Set Player 4 (Purple) Food max to 60
Item Drop Bonuses
  Events
    Unit - A unit Dies
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Triggering unit) Equal to Troll
        (Triggering unit) Equal to Murloc Nightcrawler 0060 <gen>
        (Triggering unit) Equal to Gnoll Hut 0046 <gen>
        (Triggering unit) Equal to Golem
        (Triggering unit) Equal to Bandit
        (Triggering unit) Equal to Forest Troll Hut 0015 <gen>
  Actions
    Set BonusesFound = (BonusesFound + 1)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering unit) Equal to Golem
      Then - Actions
        Item - Create Ring of Protection +2 at (Position of (Triggering unit))
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering unit) Equal to Troll
      Then - Actions
        Item - Create Claws of Attack +6 at (Position of (Triggering unit))
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering unit) Equal to Bandit
      Then - Actions
        Item - Create Potion of Mana at (Position of (Triggering unit))
      Else - Actions
Timer Trigger
  Events
    Time - Every 1.00 seconds of game time
  Conditions
    Cinematic Equal to False
  Actions
    Set TimeSecondsTotal = (TimeSecondsTotal + 1)
    Set TimeSeconds = (TimeSeconds + 1)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TimeSeconds Greater than or equal to 60
      Then - Actions
        Set TimeSeconds = (TimeSeconds - 60)
        Set TimeMins = (TimeMins + 1)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TimeMins Greater than or equal to 60
      Then - Actions
        Set TimeMins = (TimeMins - 60)
        Set TimeHours = (TimeMins + 1)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TimeSeconds Less than 10
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TimeMins Less than 10
          Then - Actions
            Set TimeTakenString = ((((String(TimeHours)) + :0) + (String(TimeMins))) + (:0 + (String(TimeSeconds))))
          Else - Actions
            Set TimeTakenString = ((((String(TimeHours)) + :) + (String(TimeMins))) + (:0 + (String(TimeSeconds))))
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TimeMins Less than 10
          Then - Actions
            Set TimeTakenString = ((((String(TimeHours)) + :0) + (String(TimeMins))) + (: + (String(TimeSeconds))))
          Else - Actions
            Set TimeTakenString = ((((String(TimeHours)) + :) + (String(TimeMins))) + (: + (String(TimeSeconds))))
Skip Cinematic
  Events
    Player - Player 2 (Blue) skips a cinematic sequence
    Player - Player 4 (Purple) skips a cinematic sequence
  Conditions
    Cinematic Equal to True
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 2 (Blue)
        SkipVote1 Equal to False
        SkipVote2 Equal to False
      Then - Actions
        Set SkipVote1 = True
        Game - Display to (All players) the text: ((Name of Player 2 (Blue)) + wishes to skip the cinematic.)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 4 (Purple)
        SkipVote1 Equal to False
        SkipVote2 Equal to False
      Then - Actions
        Set SkipVote2 = True
        Game - Display to (All players) the text: ((Name of Player 4 (Purple)) + wishes to skip the cinematic.)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 2 (Blue)
        SkipVote1 Equal to False
        SkipVote2 Equal to True
      Then - Actions
        Set SkipVote1 = True
        Game - Display to (All players) the text: Cinematic was skipped.
        Trigger - Turn off (This trigger)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (OpeningCancelled <gen> is on) Equal to True
          Then - Actions
            Trigger - Run OpeningCancelled <gen> (checking conditions)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (GranaryCancelled <gen> is on) Equal to True
          Then - Actions
            Trigger - Run GranaryCancelled <gen> (checking conditions)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (EndingCancelled <gen> is on) Equal to True
          Then - Actions
            Trigger - Run EndingCancelled <gen> (checking conditions)
          Else - Actions
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 4 (Purple)
        SkipVote1 Equal to True
        SkipVote2 Equal to False
      Then - Actions
        Set SkipVote1 = True
        Game - Display to (All players) the text: Cinematic was skipped.
        Trigger - Turn off (This trigger)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (OpeningCancelled <gen> is on) Equal to True
          Then - Actions
            Trigger - Run OpeningCancelled <gen> (checking conditions)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (GranaryCancelled <gen> is on) Equal to True
          Then - Actions
            Trigger - Run GranaryCancelled <gen> (checking conditions)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (EndingCancelled <gen> is on) Equal to True
          Then - Actions
            Trigger - Run EndingCancelled <gen> (checking conditions)
          Else - Actions
      Else - Actions
Leaves Game
  Events
    Player - Player 2 (Blue) leaves the game
    Player - Player 4 (Purple) leaves the game
  Conditions
  Actions
    Game - Display to (All players) the text: ((Name of (Triggering player)) + has left the game.)
    Sound - Play CreepAggroWhat1 <gen>
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        GameSelection Equal to True
      Then - Actions
        Set EnoughPlayers = False
        Cinematic - Clear the screen of text messages for (All players)
        Sound - Play QuestLog <gen>
        Trigger - Run Startgame_Text_3 <gen> (checking conditions)
      Else - Actions
Custom Variables
  Events
    Map initialization
  Conditions
  Actions
    Game - Set Lock resource trading to On
    Set MissionNumber = 4
    Set SubquestsTotal = 0
    Set BonusesTotal = 7
    Set ExtraTotal = 2
    Set TimeMin = 1200.00
    Set TimeMax = 4800.00
    Set TimeRange = (TimeMax - TimeMin)
    Set ScoreBonuses = 20
    Set ScoreExtra = 30
    Set ScoreSubquests = 0
    Set ScoreTime = 120
    Set ScoreMax = ((SubquestsTotal x ScoreSubquests) + ((BonusesTotal x ScoreBonuses) + ((ExtraTotal x ScoreExtra) + ScoreTime)))
    Set ScoreLimit[4] = (Integer((((Real(ScoreMax)) x 0.90) + 0.50)))
    Set ScoreLimit[3] = (Integer((((Real(ScoreMax)) x 0.75) + 0.50)))
    Set ScoreLimit[2] = (Integer((((Real(ScoreMax)) x 0.55) + 0.50)))
    Set ScoreLimit[1] = (Integer((((Real(ScoreMax)) x 0.30) + 0.50)))
    -------- Items To be Saved --------
    Set SaveLoad_Items[1] = Potion of Healing
    Set SaveLoad_Items[2] = Potion of Mana
    Set SaveLoad_Items[3] = Scroll of Healing
    Set SaveLoad_Items[4] = Scroll of Protection
    Set SaveLoad_Items[5] = Ring of Protection +1
    Set SaveLoad_Items[6] = Maul of Strength
    Set SaveLoad_Items[7] = Wand of Negation
    Set SaveLoad_Items[8] = Gauntlets of Ogre Strength +3
    Set SaveLoad_Items[9] = Claws of Attack +3
    Set SaveLoad_Items[10] = Orb of Fire
    Set SaveLoad_Items[11] = Mantle of Intelligence +3
    Set SaveLoad_Items[12] = Bracer of Agility
    Set SaveLoad_Items[13] = Potion of Greater Healing
    Set SaveLoad_Items[14] = Ring of Superiority
    Set SaveLoad_Items[15] = Claws of Attack +6
    Set SaveLoad_Items[16] = Ring of Protection +2
    Set SaveLoad_Items[17] = Periapt of Vitality
    Set SaveLoad_Items[18] = Scroll of Town Portal
    Set SaveLoad_Items[19] = Medallion of Courage
    Set SaveLoad_Items[20] = Boots of Speed
    Set SaveLoad_Items[21] = Talisman of Evasion
    Set SaveLoad_Items[22] = Orb of Frost
    Set SaveLoad_Items[23] = Scroll of the Beast
    Set SaveLoad_Items[24] = Goblin Night Scope
    Set SaveLoad_Items[25] = Ring of Regeneration
    Set SaveLoad_Items[26] = Claws of Attack +12
    Set SaveLoad_Items[27] = Potion of Greater Mana
    Set SaveLoad_Items[28] = Mana Stone
    Set SaveLoad_Items[29] = Sobi Mask
    Set SaveLoad_Items[30] = Pendant of Mana
    Set SaveLoad_Items[31] = Amulet of Recall
    Set SaveLoad_Items[32] = Healing Wards
    Set SaveLoad_Items[33] = Ring of Protection +3
    Set SaveLoad_Items[34] = Periapt of Vitality
    Set SaveLoad_Items[35] = Slippers of Agility +3
    Set SaveLoad_Items[36] = Health Stone
    Set SaveLoad_Items_LastIndex = 36
    -------- Leave as is. Used to autocreate variables when copy & pasting to a new map --------
    Set SaveLoad_Alphabet = ABCDEFGHIJKLMNPQRSTUVWXYZ123456789abcdefghijklmnopqrstuvwxyz
    Set SaveLoad_CaseSensitive = True
    Set SaveLoad_UsePlayername = False
    -------- Required: false --------
    Set SaveLoad_Initialized = False
    Set Code = AceHart
    Set Save[1] = 0
    Set SaveCount = 1
    Set Validate = False
    Set SaveLoad_Compress[1] = 0
    Set SaveLoad_Uncompress[1] = 0
    Set Golem = Rock Golem 0014 <gen>
    Set Troll = Forest Troll Berserker 0009 <gen>
    Set Bandit = Enforcer 0067 <gen>
Claim Goldmine
  Events
    Unit - A unit Finishes construction
  Conditions
    (Unit-type of (Triggering unit)) Equal to Town Hall
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Goldmine_Detection_Copy <gen> contains (Triggering unit)) Equal to True
        Expo[1] Equal to False
      Then - Actions
        Set Expo[1] = True
        Set Extra = (Extra + 1)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Goldmine_Detection <gen> contains (Triggering unit)) Equal to True
        Expo[2] Equal to False
      Then - Actions
        Set Expo[2] = True
        Set Extra = (Extra + 1)
      Else - Actions
Lose Goldmine
  Events
    Unit - A unit Dies
  Conditions
    (Unit-type of (Triggering unit)) Equal to Town Hall
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Goldmine_Detection_Copy <gen> contains (Triggering unit)) Equal to True
        (Number of units in (Units in Goldmine_Detection_Copy <gen> matching (((Unit-type of (Matching unit)) Equal to Town Hall) and (((Matching unit) is alive) Equal to True)))) Equal to 0
        (Number of units in (Units in Goldmine_Detection_Copy <gen> matching (((Unit-type of (Matching unit)) Equal to Keep) and (((Matching unit) is alive) Equal to True)))) Equal to 0
        Expo[1] Equal to True
      Then - Actions
        Set Expo[1] = False
        Set Extra = (Extra - 1)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Goldmine_Detection <gen> contains (Triggering unit)) Equal to True
        (Number of units in (Units in Goldmine_Detection <gen> matching (((Unit-type of (Matching unit)) Equal to Town Hall) and (((Matching unit) is alive) Equal to True)))) Equal to 0
        (Number of units in (Units in Goldmine_Detection <gen> matching (((Unit-type of (Matching unit)) Equal to Keep) and (((Matching unit) is alive) Equal to True)))) Equal to 0
        Expo[2] Equal to True
      Then - Actions
        Set Expo[2] = False
        Set Extra = (Extra - 1)
      Else - Actions
Init Gametext
  Events
    Map initialization
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Player 2 (Blue) controller) Equal to User
        (Player 4 (Purple) controller) Equal to User
        (Player 2 (Blue) slot status) Equal to Is playing
        (Player 4 (Purple) slot status) Equal to Is playing
      Then - Actions
        Set EnoughPlayers = True
        Trigger - Run Startgame_Text <gen> (ignoring conditions)
      Else - Actions
        Trigger - Run Startgame_Text_3 <gen> (ignoring conditions)
Endgame Text
  Events
  Conditions
  Actions
    Sound - Play ClanInvitation <gen>
    Set CampaignScore = (CampaignScore + (SubquestsComplete x ScoreSubquests))
    Set CampaignScore = (CampaignScore + (BonusesFound x ScoreBonuses))
    Set CampaignScore = (CampaignScore + (Extra x ScoreExtra))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TimeSecondsTotal Less than or equal to (Integer(TimeMin))
      Then - Actions
        Set CampaignScore = (CampaignScore + ScoreTime)
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TimeSecondsTotal Greater than or equal to (Integer(TimeMax))
          Then - Actions
          Else - Actions
            Set CampaignScore = (CampaignScore + (Integer((((Real(ScoreTime)) - (((Real(ScoreTime)) / TimeRange) x ((Real(TimeSecondsTotal)) - TimeMin))) + 0.50))))
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item carried by Paladin 0094 <gen> in slot (Integer A)) Not equal to No item
          Then - Actions
            Set FinalInventory[(Integer A)] = ((Name of (Item carried by Paladin 0094 <gen> in slot (Integer A))) + , )
          Else - Actions
            Set FinalInventory[(Integer A)] =
    For each (Integer A) from 7 to 12, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item carried by Archmage 0093 <gen> in slot ((Integer A) - 6)) Not equal to No item
          Then - Actions
            Set FinalInventory[(Integer A)] = ((Name of (Item carried by Archmage 0093 <gen> in slot ((Integer A) - 6))) + , )
          Else - Actions
            Set FinalInventory[(Integer A)] =
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        CampaignScore Greater than or equal to ScoreLimit[1]
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            CampaignScore Greater than or equal to ScoreLimit[2]
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                CampaignScore Greater than or equal to ScoreLimit[3]
              Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    CampaignScore Greater than or equal to ScoreLimit[4]
                  Then - Actions
                    Set FinalRank = |cff00ff00A|r
                    Set RankInteger = 5
                  Else - Actions
                    Set FinalRank = |cffccff00B|r
                    Set RankInteger = 4
              Else - Actions
                Set FinalRank = |cffffff00C|r
                Set RankInteger = 3
          Else - Actions
            Set FinalRank = |cffff0000D|r
            Set RankInteger = 2
      Else - Actions
        Set FinalRank = |cff990000E|r
        Set RankInteger = 1
    Set SaveLoad_TotalTime = (SaveLoad_TotalTime + TimeSecondsTotal)
    Set Save[1] = MissionNumber
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        SumRank Greater than or equal to 1
      Then - Actions
        Set Save[2] = (SumRank + RankInteger)
      Else - Actions
        Set Save[2] = 0
    Set Save[3] = (Level of Holy Light for Paladin 0094 <gen>)
    Set Save[4] = (Level of Devotion Aura for Paladin 0094 <gen>)
    Set Save[5] = (Level of Divine Shield for Paladin 0094 <gen>)
    Set Save[6] = (Level of Resurrection for Paladin 0094 <gen>)
    Set Save[7] = LevelOfAbility[1]
    Set Save[8] = LevelOfAbility[2]
    Set Save[9] = LevelOfAbility[3]
    Set Save[10] = LevelOfAbility[4]
    Set SaveCount = 11
    Set Save[SaveCount] = (Number of items carried by Paladin 0094 <gen>)
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Item carried by Paladin 0094 <gen> in slot (Integer A)) is owned) Equal to True
          Then - Actions
            Set SaveCount = (SaveCount + 1)
            Set TempItem = (Item carried by Paladin 0094 <gen> in slot (Integer A))
            Custom script: set udg_Save[udg_SaveCount] = SaveLoad_Item2Integer( udg_TempItem )
            Set SaveCount = (SaveCount + 1)
            Set Save[SaveCount] = (Charges remaining in (Item carried by Paladin 0094 <gen> in slot (Integer A)))
          Else - Actions
    Set SaveCount = (SaveCount + 1)
    Set Save[SaveCount] = (Number of items carried by Archmage 0093 <gen>)
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Item carried by Archmage 0093 <gen> in slot (Integer A)) is owned) Equal to True
          Then - Actions
            Set SaveCount = (SaveCount + 1)
            Set TempItem = (Item carried by Archmage 0093 <gen> in slot (Integer A))
            Custom script: set udg_Save[udg_SaveCount] = SaveLoad_Item2Integer( udg_TempItem )
            Set SaveCount = (SaveCount + 1)
            Set Save[SaveCount] = (Charges remaining in (Item carried by Archmage 0093 <gen> in slot (Integer A)))
          Else - Actions
    Custom script: set udg_Code = SaveLoad_Encode()
    Game - Display to (All players) for 600.00 seconds the text: |cff6666dd-= HUMAN CHAPTER 4 COMPLETED =-|r
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        INSANEMODE Equal to True
      Then - Actions
        Game - Display to (All players) for 600.00 seconds the text: |cffffcc00Difficulty: |rInsane
      Else - Actions
        Game - Display to (All players) for 600.00 seconds the text: |cffffcc00Difficulty: |rNormal
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00Rank: |r + FinalRank)
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00Score: |r + (String(CampaignScore)))
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00Time Taken:|r + TimeTakenString)
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00Subquest Completed:|r + ((String(SubquestsComplete)) + ( / + (String(SubquestsTotal)))))
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00Bonuses Found:|r + ((String(BonusesFound)) + ( / + (String(BonusesTotal)))))
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00EXTRA - Expansions Claimed:|r + ((String(Extra)) + ( / + (String(ExtraTotal)))))
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00Player 1's Inventory:|r + (FinalInventory[1] + (FinalInventory[2] + (FinalInventory[3] + (FinalInventory[4] + (FinalInventory[5] + FinalInventory[6]))))))
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00Player 2's Inventory:|r + (FinalInventory[7] + (FinalInventory[8] + (FinalInventory[9] + (FinalInventory[10] + (FinalInventory[11] + FinalInventory[12]))))))
    Game - Display to (All players) for 600.00 seconds the text: (|cffffcc00Save Code:|r + Code)
Startgame Load
  Events
    Player - Player 2 (Blue) types a chat message containing -load as A substring
    Player - Player 4 (Purple) types a chat message containing -load as A substring
  Conditions
    (Substring((Entered chat string), 1, 6)) Equal to (Matched chat string)
    (Length of (Entered chat string)) Greater than 6
    GameSelection Equal to True
    EnoughPlayers Equal to True
  Actions
    Cinematic - Clear the screen of text messages for (All players)
    -------- Try to decode what was typed --------
    Set Code = (Substring((Entered chat string), 7, (Length of (Entered chat string))))
    Custom script: set udg_Validate = SaveLoad_Decode( udg_Code )
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Validate Equal to True
        Or - Any (Conditions) are true
          Conditions
            Save[1] Equal to 3
            Save[1] Equal to 13
      Then - Actions
        -------- Correct Code --------
        Set GameSelection = False
        Trigger - Turn off (This trigger)
        Sound - Play GoodJob <gen>
        Set SumRank = Save[2]
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[3] Greater than or equal to 1
          Then - Actions
            For each (Integer A) from 1 to Save[3], do (Actions)
              Loop - Actions
                Hero - Learn skill for Paladin 0094 <gen>: Human Paladin - Holy Light
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[4] Greater than or equal to 1
          Then - Actions
            For each (Integer A) from 1 to Save[4], do (Actions)
              Loop - Actions
                Hero - Learn skill for Paladin 0094 <gen>: Human Paladin - Devotion Aura
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[5] Greater than or equal to 1
          Then - Actions
            For each (Integer A) from 1 to Save[5], do (Actions)
              Loop - Actions
                Hero - Learn skill for Paladin 0094 <gen>: Human Paladin - Divine Shield
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[6] Greater than or equal to 1
          Then - Actions
            For each (Integer A) from 1 to Save[6], do (Actions)
              Loop - Actions
                Hero - Learn skill for Paladin 0094 <gen>: Human Paladin - Resurrection
          Else - Actions
        Set LevelOfAbility[1] = Save[7]
        Set LevelOfAbility[2] = Save[8]
        Set LevelOfAbility[3] = Save[9]
        Set LevelOfAbility[4] = Save[10]
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[11] Greater than or equal to 1
          Then - Actions
            For each (Integer A) from 1 to Save[11], do (Actions)
              Loop - Actions
                Hero - Learn skill for Archmage 0093 <gen>: Human Archmage - Blizzard
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[12] Greater than or equal to 1
          Then - Actions
            For each (Integer A) from 1 to Save[12], do (Actions)
              Loop - Actions
                Hero - Learn skill for Archmage 0093 <gen>: Human Archmage - Summon Water Elemental
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[13] Greater than or equal to 1
          Then - Actions
            For each (Integer A) from 1 to Save[13], do (Actions)
              Loop - Actions
                Hero - Learn skill for Archmage 0093 <gen>: Human Archmage - Brilliance Aura
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[14] Greater than or equal to 1
          Then - Actions
            For each (Integer A) from 1 to Save[14], do (Actions)
              Loop - Actions
                Hero - Learn skill for Archmage 0093 <gen>: Human Archmage - Mass Teleport
          Else - Actions
        Set SaveCount = 15
        For each (Integer A) from 1 to Save[SaveCount], do (Actions)
          Loop - Actions
            -------- The actual item --------
            Set SaveCount = (SaveCount + 1)
            Custom script: set udg_TempItemType = SaveLoad_Integer2Item(udg_Save[udg_SaveCount])
            Hero - Create TempItemType and give it to Paladin 0094 <gen>
            -------- Number of charges --------
            Set SaveCount = (SaveCount + 1)
            Item - Set charges remaining in (Last created item) to Save[SaveCount]
        Set SaveCount = (SaveCount + 1)
        For each (Integer A) from 1 to Save[SaveCount], do (Actions)
          Loop - Actions
            -------- The actual item --------
            Set SaveCount = (SaveCount + 1)
            Custom script: set udg_TempItemType = SaveLoad_Integer2Item(udg_Save[udg_SaveCount])
            Hero - Create TempItemType and give it to Archmage 0093 <gen>
            -------- Number of charges --------
            Set SaveCount = (SaveCount + 1)
            Item - Set charges remaining in (Last created item) to Save[SaveCount]
        Wait 1.00 seconds
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Save[1] Equal to 13
          Then - Actions
            Set INSANEMODE = True
            Trigger - Run Opening01 <gen> (checking conditions)
            Trigger - Run Setup_Insane <gen> (checking conditions)
          Else - Actions
            Set INSANEMODE = False
            Trigger - Run Opening01 <gen> (checking conditions)
      Else - Actions
        -------- Invalid code --------
        Sound - Play Error <gen>
        Game - Display to (All players) for 600.00 seconds the text: |cff6666dd-= HUMAN CHAPTER 4=-|r
        Game - Display to (All players) for 600.00 seconds the text: The Cult of the Damned
        Game - Display to (All players) for 600.00 seconds the text:
        Game - Display to (All players) for 600.00 seconds the text: There was an error with the code, please try again.
        Game - Display to (All players) for 600.00 seconds the text:
        Game - Display to (All players) for 600.00 seconds the text: Alternatively, both players type '-new' if you do not have a code.
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            INSANEMODE Equal to True
          Then - Actions
            Game - Display to (All players) for 600.00 seconds the text: New game is at Insane difficulty. Type '-normal' to play at a lower difficulty.
          Else - Actions
            Game - Display to (All players) for 600.00 seconds the text: New game is at Normal difficulty. Type '-insane' to play at a higher difficulty.
        Skip remaining actions
Startgame Text
  Events
    Player - Player 2 (Blue) types a chat message containing -normal as An exact match
    Player - Player 4 (Purple) types a chat message containing -normal as An exact match
  Conditions
    INSANEMODE Equal to True
    GameSelection Equal to True
  Actions
    Sound - Play QuestLog <gen>
    Cinematic - Clear the screen of text messages for (All players)
    Game - Display to (All players) for 600.00 seconds the text: |cff6666dd-= HUMAN CHAPTER 4=-|r
    Game - Display to (All players) for 600.00 seconds the text: The Cult of the Damned
    Game - Display to (All players) for 600.00 seconds the text:
    Game - Display to (All players) for 600.00 seconds the text: Type '-load' and your code you obtained from the previous chapter.
    Game - Display to (All players) for 600.00 seconds the text:
    Game - Display to (All players) for 600.00 seconds the text: Alternatively, both players type '-new' if you do not have a code.
    Game - Display to (All players) for 600.00 seconds the text: New game is at Normal difficulty. Type '-insane' to play at a higher difficulty.
    Set INSANEMODE = False
Startgame Text 2
  Events
    Player - Player 2 (Blue) types a chat message containing -insane as An exact match
    Player - Player 4 (Purple) types a chat message containing -insane as An exact match
  Conditions
    INSANEMODE Equal to False
    GameSelection Equal to True
  Actions
    Sound - Play QuestLog <gen>
    Cinematic - Clear the screen of text messages for (All players)
    Game - Display to (All players) for 600.00 seconds the text: |cff6666dd-= HUMAN CHAPTER 4=-|r
    Game - Display to (All players) for 600.00 seconds the text: The Cult of the Damned
    Game - Display to (All players) for 600.00 seconds the text:
    Game - Display to (All players) for 600.00 seconds the text: Type '-load' and your code you obtained from the previous chapter.
    Game - Display to (All players) for 600.00 seconds the text:
    Game - Display to (All players) for 600.00 seconds the text: Alternatively, both players type '-new' if you do not have a code.
    Game - Display to (All players) for 600.00 seconds the text: New game is at Insane difficulty. Type '-normal' to play at a lower difficulty.
    Set INSANEMODE = True
Startgame Text 3
  Events
  Conditions
  Actions
    Game - Display to (All players) for 600.00 seconds the text: |cff6666dd-= HUMAN CHAPTER 4=-|r
    Game - Display to (All players) for 600.00 seconds the text: The Cult of the Damned
    Game - Display to (All players) for 600.00 seconds the text:
    Game - Display to (All players) for 600.00 seconds the text: Not enough players have been detected ingame.
    Game - Display to (All players) for 600.00 seconds the text: Atleast 2 players are required to begin the map.
Startgame New
  Events
    Player - Player 2 (Blue) types a chat message containing -new as An exact match
    Player - Player 4 (Purple) types a chat message containing -new as An exact match
  Conditions
    GameSelection Equal to True
    EnoughPlayers Equal to True
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 2 (Blue)
        NewVote1 Equal to False
        NewVote2 Equal to False
      Then - Actions
        Set NewVote1 = True
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 4 (Purple)
        NewVote1 Equal to False
        NewVote2 Equal to False
      Then - Actions
        Set NewVote2 = True
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 2 (Blue)
        NewVote1 Equal to False
        NewVote2 Equal to True
      Then - Actions
        Cinematic - Clear the screen of text messages for (All players)
        Set NewVote1 = True
        Set GameSelection = False
        Sound - Play GoodJob <gen>
        Hero - Learn skill for Paladin 0094 <gen>: Human Paladin - Holy Light
        Hero - Learn skill for Paladin 0094 <gen>: Human Paladin - Holy Light
        Hero - Learn skill for Paladin 0094 <gen>: Human Paladin - Devotion Aura
        Hero - Learn skill for Paladin 0094 <gen>: Human Paladin - Divine Shield
        Hero - Learn skill for Archmage 0093 <gen>: Human Archmage - Summon Water Elemental
        Hero - Learn skill for Archmage 0093 <gen>: Human Archmage - Summon Water Elemental
        Hero - Learn skill for Paladin 0094 <gen>: Human Archmage - Brilliance Aura
        Hero - Learn skill for Paladin 0094 <gen>: Human Archmage - Blizzard
        Wait 1.00 seconds
        Trigger - Run Opening01 <gen> (checking conditions)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            INSANEMODE Equal to True
          Then - Actions
            Trigger - Run Setup_Insane <gen> (checking conditions)
          Else - Actions
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player 4 (Purple)
        NewVote1 Equal to True
        NewVote2 Equal to False
      Then - Actions
        Cinematic - Clear the screen of text messages for (All players)
        Set NewVote2 = True
        Set GameSelection = False
        Sound - Play GoodJob <gen>
        Hero - Learn skill for Paladin 0094 <gen>: Human Paladin - Holy Light
        Hero - Learn skill for Paladin 0094 <gen>: Human Paladin - Holy Light
        Hero - Learn skill for Paladin 0094 <gen>: Human Paladin - Devotion Aura
        Hero - Learn skill for Paladin 0094 <gen>: Human Paladin - Divine Shield
        Hero - Learn skill for Archmage 0093 <gen>: Human Archmage - Summon Water Elemental
        Hero - Learn skill for Archmage 0093 <gen>: Human Archmage - Summon Water Elemental
        Hero - Learn skill for Paladin 0094 <gen>: Human Archmage - Brilliance Aura
        Hero - Learn skill for Paladin 0094 <gen>: Human Archmage - Blizzard
        Wait 1.00 seconds
        Trigger - Run Opening01 <gen> (checking conditions)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            INSANEMODE Equal to True
          Then - Actions
            Trigger - Run Setup_Insane <gen> (checking conditions)
          Else - Actions
      Else - Actions
Research Init
  Events
    Map initialization
  Conditions
  Actions
    -------- Limits --------
    For each (Integer A) from 1 to 15, do (Actions)
      Loop - Actions
        Set ResearchEnabledT2[(Integer A)] = True
        Set ResearchEnabledT3[(Integer A)] = True
    Set ResearchEnabledT2[1] = False
    Set ResearchEnabledT3[1] = False
    Set ResearchEnabledT2[2] = False
    Set ResearchEnabledT3[2] = False
    Set ResearchEnabledT2[3] = False
    Set ResearchEnabledT3[3] = False
    Set ResearchEnabledT2[4] = False
    Set ResearchEnabledT3[4] = False
    Set ResearchEnabledT2[5] = False
    Set ResearchEnabledT2[10] = False
    -------- Blacksmith --------
    Set ResearchType[1] = Rhme (techcode)
    Set ResearchStringT1[1] = Iron Forged Swords
    Set ResearchStringT2[1] = Steel Forged Swords
    Set ResearchStringT3[1] = Mithril Forged Swords
    Set ResearchType[2] = Rhar (techcode)
    Set ResearchStringT1[2] = Iron Plating
    Set ResearchStringT2[2] = Steel Plating
    Set ResearchStringT3[2] = Mithril Plating
    Set ResearchType[3] = Rhra (techcode)
    Set ResearchStringT1[3] = Black Gunpowder
    Set ResearchStringT2[3] = Refined Gunpowder
    Set ResearchStringT3[3] = Imbued Gunpowder
    Set ResearchType[4] = Rhla (techcode)
    Set ResearchStringT1[4] = Studded Leather Armor
    Set ResearchStringT2[4] = Reinforced Leather Armor
    Set ResearchStringT3[4] = Dragonhide Armor
    -------- Lumber Mill --------
    Set ResearchType[5] = Rhlh (techcode)
    Set ResearchStringT1[5] = Improved Lumber Harvesting
    Set ResearchStringT2[5] = Advanced Lumber Harvesting
    Set ResearchType[6] = Rhac (techcode)
    Set ResearchStringT1[6] = Improved Masonry
    Set ResearchStringT2[6] = Advanced Masonry
    Set ResearchStringT3[6] = Imbued Masonry
    -------- Barracks --------
    Set ResearchType[7] = Rhde (techcode)
    Set ResearchStringT1[7] = Defend
    Set ResearchType[8] = Rhri (techcode)
    Set ResearchStringT1[8] = Long Rifles
    Set ResearchType[9] = Rhan (techcode)
    Set ResearchStringT1[9] = Animal War Training
    -------- Arcane Sanctum --------
    Set ResearchType[10] = Rhpt (techcode)
    Set ResearchStringT1[10] = Priest Adept Training
    Set ResearchStringT2[10] = Priest Master Training
    Set ResearchType[11] = Rhst (techcode)
    Set ResearchStringT1[11] = Sorceress Adept Training
    Set ResearchStringT2[11] = Sorceress Master Training
    Set ResearchType[12] = Rhse (techcode)
    Set ResearchStringT1[12] = Magic Sentry
    -------- Workshop --------
    Set ResearchType[13] = Rhgb (techcode)
    Set ResearchStringT1[13] = Flying Machine Bombs
    Set ResearchType[14] = Rhfl (techcode)
    Set ResearchStringT1[14] = Flare
    -------- Gryphon Aviary --------
    Set ResearchType[15] = Rhhb (techcode)
    Set ResearchStringT1[15] = Storm Hammers
Research Begins
  Events
    Unit - A unit Begins research
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Triggering unit)) Equal to Player 2 (Blue)
        (Owner of (Triggering unit)) Equal to Player 4 (Purple)
  Actions
    For each (Integer A) from 1 to 15, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Researched tech-type) Equal to ResearchType[(Integer A)]
          Then - Actions
            Set TempInteger = (Current research level of (Researched tech-type) for (Owner of (Triggering unit)))
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Owner of (Triggering unit)) Equal to Player 2 (Blue)
              Then - Actions
                Player - Set the max research level of (Researched tech-type) to TempInteger for Player 4 (Purple)
              Else - Actions
                Player - Set the max research level of (Researched tech-type) to TempInteger for Player 2 (Blue)
          Else - Actions
Research Cancelled
  Events
    Unit - A unit Cancels research
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Triggering unit)) Equal to Player 2 (Blue)
        (Owner of (Triggering unit)) Equal to Player 4 (Purple)
  Actions
    For each (Integer A) from 1 to 15, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Researched tech-type) Equal to ResearchType[(Integer A)]
          Then - Actions
            Set TempInteger = (Current research level of (Researched tech-type) for (Owner of (Triggering unit)))
            Player - Set the max research level of (Researched tech-type) to (TempInteger + 1) for Player 2 (Blue)
            Player - Set the max research level of (Researched tech-type) to (TempInteger + 1) for Player 4 (Purple)
          Else - Actions
Research Complete
  Events
    Unit - A unit Finishes research
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Triggering unit)) Equal to Player 2 (Blue)
        (Owner of (Triggering unit)) Equal to Player 4 (Purple)
  Actions
    Wait 0.50 seconds
    For each (Integer A) from 1 to 15, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Researched tech-type) Equal to ResearchType[(Integer A)]
          Then - Actions
            Set TempInteger = (Current research level of (Researched tech-type) for (Owner of (Triggering unit)))
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Owner of (Triggering unit)) Equal to Player 2 (Blue)
              Then - Actions
                Player - Set the max research level of (Researched tech-type) to TempInteger for Player 4 (Purple)
                Player - Set the current research level of (Researched tech-type) to TempInteger for Player 4 (Purple)
              Else - Actions
                Player - Set the max research level of (Researched tech-type) to TempInteger for Player 2 (Blue)
                Player - Set the current research level of (Researched tech-type) to TempInteger for Player 2 (Blue)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                TempInteger Equal to 1
              Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    ResearchEnabledT2[(Integer A)] Equal to True
                  Then - Actions
                    Player - Set the max research level of (Researched tech-type) to 2 for Player 2 (Blue)
                    Player - Set the max research level of (Researched tech-type) to 2 for Player 4 (Purple)
                  Else - Actions
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                TempInteger Equal to 2
              Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    ResearchEnabledT3[(Integer A)] Equal to True
                  Then - Actions
                    Player - Set the max research level of (Researched tech-type) to 3 for Player 2 (Blue)
                    Player - Set the max research level of (Researched tech-type) to 3 for Player 4 (Purple)
                  Else - Actions
              Else - Actions
            Sound - Play Hint <gen>
            Game - Display to (All players) the text:
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                TempInteger Equal to 1
              Then - Actions
                Game - Display to (All players) the text: (|cff9966ccRESEARCH|r - + ((Name of (Owner of (Triggering unit))) + ( has researched + (ResearchStringT1[(Integer A)] + for both players.))))
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                TempInteger Equal to 2
              Then - Actions
                Game - Display to (All players) the text: (|cff9966ccRESEARCH|r - + ((Name of (Owner of (Triggering unit))) + ( has researched + (ResearchStringT2[(Integer A)] + for both players.))))
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                TempInteger Equal to 3
              Then - Actions
                Game - Display to (All players) the text: (|cff9966ccRESEARCH|r - + ((Name of (Owner of (Triggering unit))) + ( has researched + (ResearchStringT3[(Integer A)] + for both players.))))
              Else - Actions
          Else - Actions
Requirement Init
  Events
    Map initialization
  Conditions
  Actions
    Set Requirement_Region = Region_044 <gen>
    Set RequirementUnitType[1] = Town Hall (Requirement)
    Set RequirementUnitType[2] = Keep (Requirement)
    Set RequirementUnitType[3] = Castle (Requirement)
    Set RequirementUnitType[4] = Altar of Kings (Requirement)
    Set RequirementUnitType[5] = Lumber Mill (Requirement)
    Set RequirementUnitType[6] = Blacksmith (Requirement)
    Set RequirementUnitType[7] = Workshop (Requirement)
    -------- Town Hall --------
    Set RequirementTech[1] = False
    -------- Keep --------
    Set RequirementTech[2] = False
    -------- Castle --------
    Set RequirementTech[3] = False
    -------- Altar of Kings --------
    Set RequirementTech[4] = False
    -------- Lumber Mill --------
    Set RequirementTech[5] = False
    -------- Blacksmith --------
    Set RequirementTech[6] = False
    -------- Workshop --------
    Set RequirementTech[7] = False
    -------- --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        RequirementTech[1] Equal to True
      Then - Actions
        Unit - Create 1 RequirementUnitType[1] for Player 2 (Blue) at (Center of Requirement_Region) facing Default building facing degrees
        Set RequirementUnitP1[1] = (Last created unit)
        Unit - Create 1 RequirementUnitType[1] for Player 4 (Purple) at (Center of Requirement_Region) facing Default building facing degrees
        Set RequirementUnitP2[1] = (Last created unit)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            RequirementTech[2] Equal to True
          Then - Actions
            Unit - Create 1 RequirementUnitType[2] for Player 2 (Blue) at (Center of Requirement_Region) facing Default building facing degrees
            Set RequirementUnitP1[2] = (Last created unit)
            Unit - Create 1 RequirementUnitType[2] for Player 4 (Purple) at (Center of Requirement_Region) facing Default building facing degrees
            Set RequirementUnitP2[2] = (Last created unit)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                RequirementTech[3] Equal to True
              Then - Actions
                Unit - Create 1 RequirementUnitType[3] for Player 2 (Blue) at (Center of Requirement_Region) facing Default building facing degrees
                Set RequirementUnitP1[3] = (Last created unit)
                Unit - Create 1 RequirementUnitType[3] for Player 4 (Purple) at (Center of Requirement_Region) facing Default building facing degrees
                Set RequirementUnitP2[3] = (Last created unit)
              Else - Actions
          Else - Actions
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        RequirementTech[4] Equal to True
      Then - Actions
        Unit - Create 1 RequirementUnitType[4] for Player 2 (Blue) at (Center of Requirement_Region) facing Default building facing degrees
        Set RequirementUnitP1[4] = (Last created unit)
        Unit - Create 1 RequirementUnitType[4] for Player 4 (Purple) at (Center of Requirement_Region) facing Default building facing degrees
        Set RequirementUnitP2[4] = (Last created unit)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        RequirementTech[5] Equal to True
      Then - Actions
        Unit - Create 1 RequirementUnitType[5] for Player 2 (Blue) at (Center of Requirement_Region) facing Default building facing degrees
        Set RequirementUnitP1[5] = (Last created unit)
        Unit - Create 1 RequirementUnitType[5] for Player 4 (Purple) at (Center of Requirement_Region) facing Default building facing degrees
        Set RequirementUnitP2[5] = (Last created unit)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        RequirementTech[6] Equal to True
      Then - Actions
        Unit - Create 1 RequirementUnitType[6] for Player 2 (Blue) at (Center of Requirement_Region) facing Default building facing degrees
        Set RequirementUnitP1[6] = (Last created unit)
        Unit - Create 1 RequirementUnitType[6] for Player 4 (Purple) at (Center of Requirement_Region) facing Default building facing degrees
        Set RequirementUnitP2[6] = (Last created unit)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        RequirementTech[7] Equal to True
      Then - Actions
        Unit - Create 1 RequirementUnitType[7] for Player 2 (Blue) at (Center of Requirement_Region) facing Default building facing degrees
        Set RequirementUnitP1[7] = (Last created unit)
        Unit - Create 1 RequirementUnitType[7] for Player 4 (Purple) at (Center of Requirement_Region) facing Default building facing degrees
        Set RequirementUnitP2[7] = (Last created unit)
      Else - Actions
Requirement Update
  Events
    Unit - A unit Finishes construction
    Unit - A unit Finishes an upgrade
    Unit - A unit Dies
  Conditions
    GameSelection Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Triggering unit)) Equal to Player 2 (Blue)
        (Owner of (Triggering unit)) Equal to Player 4 (Purple)
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Triggering unit)) Equal to Town Hall
        (Unit-type of (Triggering unit)) Equal to Keep
        (Unit-type of (Triggering unit)) Equal to Castle
        (Unit-type of (Triggering unit)) Equal to Altar of Kings
        (Unit-type of (Triggering unit)) Equal to Lumber Mill
        (Unit-type of (Triggering unit)) Equal to Blacksmith
        (Unit-type of (Triggering unit)) Equal to Workshop
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering unit) is alive) Equal to True