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 haven't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. Lead your forces to battle in the 15th Techtree Contest. The call is yours, commander!
    Dismiss Notice
  5. The reforging of the races is complete. Come see the 14th Techtree Contest Results.
    Dismiss Notice
  6. It's time to choose your horse in the race - the 32nd Modeling Contest Poll is up!
    Dismiss Notice
  7. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Trigger Viewer

BloodElves Secret Mission.w3x
Variables
Initialization
Initialization
Init 01 Players
Init 02 Units
Init 03 Music
Init 04 Environment
Init 05 Quests
Init 06b Normal
Init 06a Hard
Init 08 HighScore
Init 07 Waves
Load Heroes
Load Heroes
Load Kael
Load Vashj
load Ravael
Experience Cap Kael
Experience Cap Vashj Kopiuj
Experience Cap Vashj
Cinematic Revival
Selection Screnn
Selection Screen
Selection Screen Kopiuj 2
Selection Screen Kopiuj
DEBUG
DEBUG End
DEBUG Towers
DEBUG Tower3
DEBUG Tower4
DEBUG Tower5
DEBUG Wave
DEBUG Event Notarg
-------- Cinematics --------
Intro Cinematic
Intro Cinematic Q
Intro Spawn Engineer
Intro Spy Return
Intro Skipped
Intro Setup
Intro Cleanup
Gameplay
Start Timed Events
Quest Defend Q
Victory Cinematic
Victory Cinematic Q
Victory Skipped
Victory Setup
Victory Travel to Outland
-------- Mission Data --------
ScoreScreen
Score
Level Data
Next Level Prep
Next Level Run
Save High Score
Victory Cheat
Defeat Cheat
Quests
Quest Defend Create
Quest Defend Discover
Quest Defend Completed
Quest Defend Failed
Mission Failed Base Dead
Hints
Hint Build Event
Hint Build Towers Q
Hint Train Event
Hint Train Engineers Q
New Unit Tower3
New Unit Tower4
New Unit Tower5
WARNING Wave Sent Q
Victory Defeat
Victory Portal Dying
Victory Final Wave
Defeat Units Dead
Remove Dead From Final Wave Group
Combat Check
Combat Detected
Combat Resolved
-------- Functionality --------
Voiceovers
Time Warning1
Time Warning1 Q
Time Warning2
Time Warning2 Q
Release The Beasts
Release The Beasts Q
Portal Attacked
Portal Attacked 1 Q
Portal Attacked 2 Q
Portal Attacked 3 Q
Vaults
Vault1 Opened
Vault1 Opened Q
Vault2 Opened
Vault2 Opened Q
Vault3 Opened
Vault3 Opened Q
Engineers
-------- Tower Enabling --------
Disable Advanced Towers
TowerType3 Enabled
TowerType3 Enabled Q
TowerType4 Enabled
TowerType4 Enabled Q
TowerType5 Enabled
TowerType5 Enabled Q
-------- Engineer Pit --------
Start Tower Research
Finish TowerType3
Finish TowerType4
Finish TowerType5
Engineer Dies
Observatory
Observatory Vision
Observatory Dies
Escapees
Escape Gold Float Text
Start Exodus
Escape Spawn Peasant
Escape Spawn Troop
Escape Path1A
Escape Path1B
Escape Path1C Gold
Escape Path2A
Escape Path2B
Escape Path3A
Escape Path3B
Escape Path3C
Escape Portal Tripwire
Escape Effect
Escape Effect 01
Escape Effect 02
CodeGen
CodeGen Init
CodeGen Save
CodeGen Load
Portal Leaderboard
Leaderboard Create
Leaderboard Update
Leaderboard Update Color 01
Leaderboard Update Color 02
Kategoria bez nazwy
Fire Fury Cast
Fire Fury Loop
Gold Drops
Leaders Drop Gold
Monkey Safety
No Player Units May Enter
No Summoned Units
-------- Waves --------
Attack Waves
-------- Wave Data --------
Wave Data
Wave Units 01 to 05
Wave Units 06 to 10
Wave Units 11 to 15
Wave Units 16 to 20
Wave Units 21 to 25
Wave Units 26 to 30
Wave Timing
Wave Hero 01 MountainKing
Wave Hero 02 Paladin
Wave Hero 03 Archmage
Wave Hero 04 MountainKing
Wave Hero 05 Paladin
Wave Hero 06 MountainKing
Wave Hero 07 Archmage
Wave Hero 08 Brewmaster
-------- Spawning --------
Spawn Wave
Spawn Wave Unit Single
Spawn Wave Leader Single
Spawn Wave Pathing Disabler
Spawn Wave Redirect
Pick Spawn Points
Pick Attachment Points
-------- Sending --------
Wave Events
Send Wave
Calculate Sending Time
Attacker Dies
Calculate Dying Path Target
Send Zeppelin Subspawn
Avatar Check
Reincarnation Check
Attack Path
Path Data
Path Reached 01
Path Reached 02
Path Reached 03
Path Reached 04
Path Reached 05
Path Reached 06
Path Reached 07
Path Reached 08
Path Reached 09
Path Reached 10
Path Reached 11
Path Reached 12
Path Reached 13
Path Reached 14
Path Reached 15
Path Reached 16
Path Reached 17
Path Reached 18
Path Reached 19
Path Reached 20
Path Reached 21
Path Reached 22
Path Reached 23
Path Reached 24
Portal Boom
Attacker Reaches Portal
Boom Effect
Quake Shake
system
Send Gold
//TESH.scrollpos=90
//TESH.alwaysfold=0
function CodeGen_SaveToDisk takes string loadcode, string filename returns nothing
    call PreloadGenClear()
    call PreloadGenStart()
    call Preload(loadcode)
    call PreloadGenEnd(filename)
    call ClearSelection()
endfunction

function CodeGen_Init takes nothing returns nothing
    local integer i = 1
    local integer b = udg_SaveLoad_Base
    local integer m = udg_SaveLoad_MaxValue
    loop
        exitwhen i >= udg_SaveLoad_MaxValue
        set udg_SaveLoad_Char[i] = SubString(udg_SaveLoad_Alphabet, i, i+1)
        set i = i + 1
    endloop
    set udg_SaveLoad_Alphabet = SubString(udg_SaveLoad_Alphabet, 0, 1) + SubString(udg_SaveLoad_Alphabet, m + 1, b)
    set udg_SaveLoad_Base     = b - m
endfunction

function CodeGen_ConvertItem takes integer id returns integer
    local integer i = 1
    loop
        exitwhen i > udg_SaveLoad_ItemCount
        if (id == udg_SaveLoad_Item[i]) then
            return i
        endif
        set i = i + 1
    endloop
    return 0
endfunction

function CodeGen_ConvertUnit takes integer id returns integer
    local integer i = 1
    loop
        exitwhen i > udg_SaveLoad_HeroCount
        if (id == udg_SaveLoad_Hero[i]) then
            return i
        endif
        set i = i + 1
    endloop
    return 0
endfunction

function CodeGen_Encode takes integer i returns string
    local integer b
    local string s = ""
    
    if i <= udg_SaveLoad_Base then
        return SubString(udg_SaveLoad_Alphabet, i, i + 1)
    endif
    
    loop
        exitwhen i <= 0
        set b = i - (i / udg_SaveLoad_Base) * udg_SaveLoad_Base
        set s = SubString(udg_SaveLoad_Alphabet, b, b + 1) + s
        set i = i / udg_SaveLoad_Base
    endloop
    
    return s
endfunction

function CodeGen_StrPos takes string s returns integer
    local integer i = 0
    loop
        exitwhen i > udg_SaveLoad_Base
        if s == SubString(udg_SaveLoad_Alphabet, i, i + 1) then
            return i
        endif
        set i = i + 1
    endloop
    return -1
endfunction

function CodeGen_Decode takes string s returns integer
    local integer a = 0
    
    loop
        exitwhen StringLength(s) == 1
        set a = a * udg_SaveLoad_Base + udg_SaveLoad_Base * CodeGen_StrPos(SubString(s, 0, 1))
        set s = SubString(s, 1, 99)
    endloop
    
    return a+CodeGen_StrPos(s)
endfunction

function CodeGen_StringChecksum takes string in returns integer
    local integer i = 0
    local integer l = StringLength(in)
    local integer t = 0
    local integer o = 0
    loop
        exitwhen i >= l
        set t = CodeGen_Decode(SubString(in, i, i + 1))
        set o = o + t
        set i = i + 1
    endloop
    return o
endfunction

function CodeGen_Color takes string char returns string
    local integer i = 0
    local integer l = StringLength(udg_SaveLoad_Full)
    local string x  = ""
    loop
        exitwhen i >= l
        set x = SubString(udg_SaveLoad_Full, i, i + 1)
        if char == x then
            if (x=="0" or S2I(x) > 0) then
                return udg_SaveLoad_Number + char + "|r"
            elseif StringCase(x, false) == x then
                return udg_SaveLoad_Lower + char + "|r"
            elseif StringCase(x, true) == x then
                return udg_SaveLoad_Upper + char + "|r"
            endif
        endif
        set i = i + 1
    endloop
    return char
endfunction

function CodeGen_Format takes string s returns string
    local integer i = 0
    local integer x = StringLength(s)
    local integer j = 1
    local string s2 = ""
    
    loop
        exitwhen i >= x
        
        set s2 = s2 + CodeGen_Color(SubString(s, i, i + 1))
        
        if (j >= udg_SaveLoad_HyphenSpace and i != (x-1)) then
            set j = 0
            set s2 = s2 + udg_SaveLoad_SeperationChar
        endif
        
        set j = j + 1
        set i = i + 1
    endloop
    
    return s2
endfunction

function CodeGen_Strip takes string s returns string
    local integer i  = 0
    local integer x  = StringLength(s)
    local string out = ""
    local string a   = ""
    
    loop
        exitwhen i >= x
        set a = SubString(s, i, i + 1)
        if (a != udg_SaveLoad_SeperationChar) then
            set out = out + a
        endif
        set i = i + 1
    endloop
    
    return out
endfunction

// yeeahh descriptive variables
function CodeGen_Load takes string s returns nothing
    local string str = CodeGen_Strip(s)
    local string tmp = ""
    local string c   = ""
    local integer x  = 0
    local integer i  = 1
    local integer l  = 0
    local integer j  = 1
    local integer f  = 0
    local boolean b  = true
    
    set udg_SaveLoad_Valid = false
    
    if (udg_SaveLoad_Security) then
        loop
            exitwhen i > 3
            if (CodeGen_Decode(SubString(str, 0, i)) == CodeGen_StringChecksum(SubString(str, i, 999))) then
                set udg_SaveLoad_Valid = true
                set str = SubString(str, i, 999)
                set i = 4
            endif
            set i = i + 1
        endloop
    endif
    
    if (not udg_SaveLoad_Valid) then
        set udg_SaveLoad_Error = "Invalid Code"
        return
    endif
    
    set i = 0
    set l = StringLength(str)
    
    if (udg_SaveLoad_CheckName) then
        set c = CodeGen_Encode(CodeGen_StringChecksum(GetPlayerName(GetTriggerPlayer())))
        set i = StringLength(c)
        if (c != SubString(str, l - i, i)) then
            set udg_SaveLoad_Valid = false
            set udg_SaveLoad_Error = "Wrong username"
            return
        endif
        set l = l - i
    endif
    
    set i = 0
    
    loop
        exitwhen i >= l
        set tmp = SubString(str, i, i + 1)
        
        set b = true
        set f = 0
        set j = 1
        
        loop
            exitwhen f >= (udg_SaveLoad_MaxValue)
            if (tmp == udg_SaveLoad_Char[f]) then
                set j = f + 2
                set udg_Load[x] = CodeGen_Decode(SubString(str, i + 1, i + (j)))
                set b = false
                set f = udg_SaveLoad_MaxValue
            endif
            set f = f + 1
        endloop
        
        if (b) then
            set udg_Load[x] = CodeGen_Decode(tmp)
        endif
        
        set i = i + j
        set x = x + 1
    endloop
    
    set udg_SaveLoad_Valid = true
endfunction

function CodeGen_Compile takes nothing returns string
    local integer i  = 0
    local integer j  = 0
    local string out = ""
    local string ln  = ""
    local string x   = ""

    loop
        exitwhen i > udg_SaveCount
        set x = CodeGen_Encode(udg_Save[i])
        set j = StringLength(x)

        if (j > 1) then
            set out = out + udg_SaveLoad_Char[j-1]
        endif
        
        set out = out + x
        set i = i + 1
    endloop

    if (udg_SaveLoad_CheckName) then
        set out = out + CodeGen_Encode(CodeGen_StringChecksum(GetPlayerName(GetTriggerPlayer())))
    endif
    
    if (udg_SaveLoad_Security) then
        set out = CodeGen_Encode(CodeGen_StringChecksum(out)) + out
    endif
    
    if udg_SaveLoad_SaveToDisk and GetLocalPlayer() == GetTriggerPlayer() then
        call CodeGen_SaveToDisk(out, udg_SaveLoad_Directory + "\\" + udg_SaveLoad_Filename)
    endif
                
    return CodeGen_Format(out)
endfunction
Name Type Is Array Initial Value
AP1_Player player No Player00
APG1_Player force No Force00
Attach0_None integer No 0
Attach1_HandLeft integer No 1
Attach2_HandRight integer No 2
Attach3_Base integer No 3
AttachPoint string No
AttackingUnits group No
BoomExplodeUnits group No
BoomKillUnits group No
BoomSpot location No
Code StringExt No
CombatCheckTimer timer No
CurrentWaveInt integer No
DefendTimer timer No
DefendTimerWindow timerdialog No
DyingPathTarget integer No
EnableTower3Timer timer No
EnableTower4Timer timer No
EnableTower5Timer timer No
EnemyGate destructable No
EnemyGateUsers integer No 0
Engineer01Cin unit No
Engineer02Cin unit No
Engineer03Cin unit No
Engineer04Cin unit No
EngineerForeman01 unit No
EngineerForeman02 unit No
EngineerForeman03 unit No
EngineerUnits group No
EngineerWorker01 unit No
EngineerWorker02 unit No
EngineerWorker03 unit No
EngineerWorkers group No
EPitTower3 unit No
EPitTower4 unit No
EPitTower5 unit No
EscapeEffect01 effect No
EscapeEffect01Busy boolean No
EscapeEffect02 effect No
EscapeEffect02Busy boolean No
EscapeEffectRecent boolean No
ExodusMoveSpeed real No 190.00
ExodusPeasants group No
ExodusTroops group No
ExodusUnits group No
ExpDisabledForKael boolean No
ExpDisabledForRavael boolean No
ExpDisabledForVashj boolean No
ExplosiveArt string No
FF_AllowCliffs boolean Yes
FF_AllowedToKeepMoving boolean Yes
FF_AllowWater boolean Yes
FF_Angle real Yes
FF_AoEDamages real Yes
FF_BuildingAoE boolean Yes
FF_Caster unit Yes
FF_DistanceCast real No
FF_DistanceReached real Yes
FF_Done boolean Yes
FF_DummyUnit unit Yes
FF_ExplosionEffect string Yes
FF_FinalAoE real Yes
FF_FireBall1 unit Yes
FF_FireBall2 unit Yes
FF_FireBallAdditionnalDistance real Yes
FF_FireBallAoE real Yes
FF_FireBallArc real Yes
FF_FireBallArcSettings real Yes
FF_FireBallDistance real Yes
FF_FireBallDistanceInit real No
FF_FireBallSpeed real Yes
FF_FireBallTempAdd real Yes
FF_FullDistance real Yes
FF_GoThroughBuildings boolean Yes
FF_GoThroughTrees boolean Yes
FF_GroupFireBall1 group Yes
FF_GroupFireBall2 group Yes
FF_HitBuildings boolean Yes
FF_Integer1 integer No
FF_Integer2 integer No
FF_Integer3 integer No
FF_KillTrees boolean Yes
FF_KillTreesAoE boolean Yes
FF_MinimalDistance real No
FF_RealTimer real Yes
FF_SingleDamages real Yes
FF_SingleUnitEffect string Yes
FF_TempGroup group No
FF_TempPoint1 location No
FF_TempPoint2 location No
FF_TempPoint3 location No
FinalWaveGroup group No
FinalWaveHighScore integer No
FootmanSpy unit No
ForemanSleepEffect01 effect No
ForemanSleepEffect02 effect No
ForemanSleepEffect03 effect No
GameOver boolean No
Garithos unit No
GoldDroppers group No
GoldFloatingText texttag No
GoldFloatTextUnit unit No
HandicapValue real No
Hero unit No
HeroActiveHamg boolean No
HeroActiveHmkg boolean No
HeroActiveHpal boolean No
HeroHmkg unit No
HiddenUnits group No
HighScoreEasy integer No
HighScoreHard integer No
HighScoreNormal integer No
HintBuildTimer timer No
HintTrainTimer timer No
InCinematic boolean No
InCombat boolean No
IntroSkipped boolean No
Item item No
Kael unit No
KaelReturnSpot location No
Load integer Yes
LoadCount integer No
MainGate destructable No
minutes real No 60.00
N integer No
Observatory unit No
ObservatoryVision fogmodifier No
ObservatoryVisionRadius real No 7700.00
P02_Escapees player No Player01
P06_HumansBase player No Player05
P07_HumansWave player No Player06
PathIndex integer No
PathTarget rect Yes
PathTargets integer No
PeasantTimer timer No
PointEscapePath1A location No
PointEscapePath1B location No
PointEscapePath1C location No
PointEscapePath2A location No
PointEscapePath2B location No
PointEscapePath3A location No
PointEscapePath3B location No
PointEscapePath3C location No
PointEscapePortalEffect location No
PointEscapePortalTarget location No
PointExodusPeasantSpawn location No
PointExodusTroopSpawn location No
PointExplosivesFaceTarget location No
PointGateSound location No
PointPathTarget00 location No
PointPathTarget01 location No
PointPathTarget02 location No
PointPathTarget03 location No
PointPathTarget04 location No
PointPathTarget05 location No
PointPathTarget06 location No
PointPathTarget07 location No
PointPathTarget08 location No
PointPathTarget09 location No
PointPathTarget10 location No
PointPathTarget11 location No
PointPathTarget12 location No
PointPathTarget13 location No
PointPathTarget14 location No
PointPathTarget15 location No
PointPathTarget16 location No
PointPathTarget17 location No
PointPathTarget18 location No
PointPathTarget19 location No
PointPathTarget20 location No
PointPathTarget21 location No
PointPathTarget22 location No
PointPathTarget23 location No
PointPathTarget24 location No
PointPathTargetArray location Yes
PointPortal location No
PointSource0CastleLeft location No
PointSource0CastleRight location No
PointSource1BarracksLeft location No
PointSource1BarracksRight location No
PointSource2WorkshopLeft location No
PointSource2WorkshopRight location No
PointSource3AviaryLeft location No
PointSource3AviaryRight location No
PointSource4MercLeft location No
PointSource4MercRight location No
PointSource5DragLeft location No
PointSource5DragRight location No
PointSource6BeastsLeft location No
PointSource6BeastsRight location No
PointSourceAltar location No
PointWaitingLeaderSpot location No
PointWaitingRedirect01Left location No
PointWaitingRedirect01Right location No
Portal unit No
PortalAttackedMessage integer No 0
PortalLeaderboard leaderboard No
PortalLeaderboardCreated boolean No
PortalLifePercent real No
QuestDefend quest No
QuestDefendReq1 questitem No
QuestDefendReq2 questitem No
Ravael unit No
RavaelReturnSpot location No
RedirectIndex integer No
RedirectPoint location No
ReleaseBeastsTimer timer No
RevivalAltar unit No
RevivalHero unit No
RevivalReturnSpot location No
RevivalSpot location No
Save integer Yes
SaveCount integer No
SaveLoad_Abilities abilcode Yes
SaveLoad_AbilityCount integer No
SaveLoad_Alphabet string No
SaveLoad_Base integer No
SaveLoad_Char string Yes
SaveLoad_CheckName boolean No
SaveLoad_Directory string No
SaveLoad_Error string No
SaveLoad_Filename string No
SaveLoad_Full string No
SaveLoad_Hero unitcode Yes
SaveLoad_HeroCount integer No
SaveLoad_HyphenSpace integer No
SaveLoad_Item itemcode Yes
SaveLoad_ItemCount integer No
SaveLoad_Lower string No
SaveLoad_MaxValue integer No
SaveLoad_Number string No
SaveLoad_SaveToDisk boolean No
SaveLoad_Security boolean No
SaveLoad_SeperationChar string No
SaveLoad_Upper string No
SaveLoad_Valid boolean No
ScoreScreenPlaying boolean No
SendingArray unit Yes
SendingCount integer No
SendingIndex integer No
SendingLeader unit No
SendingTimePerUnit real No
SewerGate destructable No
Source0_Castle integer No 0
Source1_Barracks integer No 1
Source2_Workshop integer No 2
Source3_Aviary integer No 3
Source4_MercCamp integer No 4
Source5_DragRoost integer No 5
Source6_Beast integer No 6
SourceAltar location No
SpawnIndex integer No
SpawnPoint location No
SpawnPointLeft location No
SpawnPointRight location No
SpawnTime real No
SpawnTimePerUnit real No
Speaker unit No
SpeakingDistance real No 1500.00
SubspawnIndex integer No
SubspawnType unitcode No
TempInteger integer No
Tempinteger integer No
TempPathPointRandom location No
TempPoint location No
TempReal real No
TempUnit unit No
TempUnitGroup group No
TempUnitGroup2 group No
TimeWarning1Timer timer No
TimeWarning2Timer timer No
Trevfx1 effect No
Trevfx2 effect No
TroopTimer timer No
UnitsOnPath group Yes
Vashj unit No
VashjReturnSpot location No
Vault01 unit No
Vault01Done boolean No false
Vault02 unit No
Vault02Done boolean No false
Vault03 unit No
Vault03Done boolean No false
VaultFoundTimer timer No
VictorySkipped boolean No
WaitingArray unit Yes UnitNull
WaitingCount integer No
WaitingLeader unit No
WaitingSpots location Yes
Wave integer No
WaveAttach integer Yes
WaveHeroConfig trigger Yes
WaveLeaderTypes unitcode Yes hfoo
WaveSendTime real Yes
WavesRemainingInt integer No 30
WaveTimer timer Yes
WaveUnitCounts integer Yes 20
WaveUnitSource integer Yes 0
WaveUnitTypes unitcode Yes hfoo
ZeppelinSpawns01 integer No 0
ZeppelinSpawns02 integer No 0
ZeppelinSpawnType01 unitcode No
ZeppelinSpawnType02 unitcode No
ZeppelinType01 unitcode No
ZeppelinType02 unitcode No
Template version 1.01
Initialization
  Events
  Conditions
  Actions
    Game - Set ally color filtering to 0
    Trigger - Run Init_01_Players <gen> (checking conditions)
    Trigger - Run Init_02_Units <gen> (checking conditions)
    Trigger - Run Init_03_Music <gen> (checking conditions)
    Trigger - Run Init_04_Environment <gen> (checking conditions)
    Trigger - Run Init_05_Quests <gen> (checking conditions)
    Trigger - Run Init_07_Waves <gen> (checking conditions)
    Trigger - Run Init_08_HighScore <gen> (checking conditions)
    -------- Start Intro Cinematic --------
    Trigger - Add Intro_Cinematic_Q <gen> to the trigger queue (Checking conditions)
Init 01 Players
  Events
  Conditions
  Actions
    -------- Alliance Settings - Player and Escapees --------
    Player - Make AP1_Player treat P02_Escapees as an Ally with shared vision
    Player - Make Player 10 (Light Blue) treat P02_Escapees as an Ally with shared vision
    Player - Make AP1_Player treat Neutral Hostile as an Neutral
    Player - Make Player 10 (Light Blue) treat Neutral Hostile as an Neutral
    Player - Make P02_Escapees treat AP1_Player as an Ally with shared vision
    Player - Make P02_Escapees treat Player 10 (Light Blue) as an Ally with shared vision
    Player - Make P02_Escapees treat Neutral Hostile as an Neutral
    -------- Alliance Settings - Humans --------
    Player - Make P06_HumansBase treat AP1_Player as an Enemy
    Player - Make P06_HumansBase treat P02_Escapees as an Neutral
    Player - Make P06_HumansBase treat Neutral Hostile as an Enemy
    Player - Make P07_HumansWave treat AP1_Player as an Neutral
    Player - Make P07_HumansWave treat P02_Escapees as an Neutral
    Player - Make P07_HumansWave treat Neutral Hostile as an Enemy
    -------- Alliance Settings - Neutrals --------
    Player - Make Neutral Hostile treat AP1_Player as an Neutral
    Player - Make Neutral Hostile treat P02_Escapees as an Neutral
    Player - Make Neutral Hostile treat P06_HumansBase as an Neutral
    Player - Make Neutral Hostile treat P07_HumansWave as an Neutral
    -------- Initial Resources --------
    Player - Set AP1_Player.Current gold to 450
    Player - Set Player 10 (Light Blue).Current gold to 450
    Player - Set AP1_Player.Current lumber to 0
    -------- Player Colors --------
    Player - Change color of AP1_Player to Red, Changing color of existing units
    Player - Change color of Player 10 (Light Blue) to Blue, Changing color of existing units
    Player - Change color of P02_Escapees to Orange, Changing color of existing units
    Player - Change color of P06_HumansBase to Light Blue, Changing color of existing units
    Player - Change color of P07_HumansWave to Light Blue, Changing color of existing units
    -------- Hide Excess Players --------
    Player - Hide P02_Escapees in the post-game score screen
    Player - Hide P07_HumansWave in the post-game score screen
    -------- Disable Advanced Towers --------
    Trigger - Run Disable_Advanced_Towers <gen> (checking conditions)
Init 02 Units
  Events
  Conditions
  Actions
    -------- Heroes --------
    Trigger - Run Load_Heroes <gen> (checking conditions)
    Trigger - Run load_Ravael <gen> (checking conditions)
    Hero - Make AP1_Player Heroes gain 50.00% experience from future kills
    Hero - Make Player 10 (Light Blue) Heroes gain 50.00% experience from future kills
    -------- NPCs --------
    Set VariableSet Garithos = Dark Knight 0001 <gen>
    Unit - Change color of Garithos to Gray
    Set VariableSet Observatory = Arcane Observatory 0007 <gen>
    Set VariableSet Portal = Portal do Pustkowia 0002 <gen>
    -------- Engineers --------
    Set VariableSet EngineerWorker01 = Blood Elf Engineer 0004 <gen>
    Set VariableSet EngineerWorker02 = Blood Elf Engineer 0121 <gen>
    Set VariableSet EngineerForeman01 = Blood Elf Engineer 0049 <gen>
    Set VariableSet EngineerWorker03 = Blood Elf Engineer 0083 <gen>
    Set VariableSet EngineerForeman02 = Blood Elf Engineer 0119 <gen>
    Set VariableSet EngineerForeman03 = Blood Elf Engineer 0125 <gen>
    Set VariableSet EngineerUnits = (Units in Engineer_Pit <gen> matching (((Owner of (Matching unit)) Equal to P02_Escapees) and ((Unit-type of (Matching unit)) Equal to Blood Elf Engineer (Kael))))
    Unit Group - Add all units of EngineerUnits to ExodusUnits
    Unit Group - Add EngineerWorker01 to EngineerWorkers
    Unit Group - Add EngineerWorker02 to EngineerWorkers
    Unit Group - Add EngineerWorker03 to EngineerWorkers
    -------- Engineer Pit --------
    Set VariableSet EPitTower3 = Flame Tower 0079 <gen>
    Set VariableSet EPitTower4 = Cold Tower 0022 <gen>
    Set VariableSet EPitTower5 = Death Tower 0089 <gen>
    -------- Vaults --------
    Set VariableSet Vault01 = Magic Vault 0030 <gen>
    Set VariableSet Vault02 = Magic Vault 0076 <gen>
    Set VariableSet Vault03 = Magic Vault 0077 <gen>
Init 03 Music
  Events
  Conditions
  Actions
    Sound - Clear the music list
    Wait 0.01 seconds
    Sound - Play Blood Elf Theme, skipping the first 3.00 seconds
    Sound - Set the music list to Music, starting with song 0
Init 04 Environment
  Events
  Conditions
  Actions
    -------- Initial Time Of Day --------
    Game - Set the time of day to 8.00
    -------- Weather Effects --------
    -------- Fog --------
    Environment - Set fog to style Linear, z-start 1000.00, z-end 9000.00, density 0 and color (80.00%, 30.00%, 100%)
    -------- Initial Visibility --------
    Trigger - Run Observatory_Vision <gen> (checking conditions)
    -------- Bridges, Gates, etc. --------
    Set VariableSet MainGate = Demonic Gate 0003 <gen>
    Destructible - Open MainGate
    Set VariableSet SewerGate = Dungeon Gate 0002 <gen>
    Destructible - Open SewerGate
    Set VariableSet EnemyGate = Demonic Gate 0114 <gen>
    Destructible - Make EnemyGate Invulnerable
    -------- Explosives Invulnerable --------
    Destructible - Pick every destructible in Explosives <gen> and do (Actions)
      Loop - Actions
        Destructible - Make (Picked destructible) Invulnerable
Init 05 Quests
  Events
  Conditions
  Actions
    -------- Create Quests --------
    Trigger - Run Quest_Defend_Create <gen> (checking conditions)
Init 06b Normal
  Events
    Player - Player 1 (Red) types a chat message containing -Normal (stringnoformat) as An exact match
    Player - Player 10 (Light Blue) types a chat message containing -Normal (stringnoformat) as An exact match
  Conditions
  Actions
    -------- Handicap All Opponents --------
    Set VariableSet HandicapValue = ((Campaign easy handicap + 100.00) / 2.00)
    Trigger - Run Initialization <gen> (ignoring conditions)
    Player - Set P06_HumansBase handicap to HandicapValue%
    Player - Set P07_HumansWave handicap to HandicapValue%
    Player - Set Neutral Hostile handicap to HandicapValue%
Init 06a Hard
  Events
    Player - Player 1 (Red) types a chat message containing -Hard (stringnoformat) as An exact match
    Player - Player 10 (Light Blue) types a chat message containing -Hard (stringnoformat) as An exact match
  Conditions
  Actions
    -------- Handicap All Opponents --------
    Trigger - Run Initialization <gen> (ignoring conditions)
    Set VariableSet HandicapValue = 100.00
    Player - Set P06_HumansBase handicap to HandicapValue%
    Player - Set P07_HumansWave handicap to HandicapValue%
    Player - Set Neutral Hostile handicap to HandicapValue%
Init 08 HighScore
  Events
  Conditions
  Actions
    Game Cache - Create a game cache from Campaigns.w3v (stringnoformat)
    Set VariableSet HighScoreEasy = (Load FinalWaveEasy of HumanX03s from (Last created game cache))
    Set VariableSet HighScoreNormal = (Load FinalWaveNormal of HumanX03s from (Last created game cache))
    Set VariableSet HighScoreHard = (Load FinalWaveHard of HumanX03s from (Last created game cache))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        HighScoreEasy Equal to 31
        HighScoreNormal Equal to 31
        HighScoreHard Equal to 31
      Then - Actions
      Else - Actions
Init 07 Waves
  Events
  Conditions
  Actions
    -------- Path Data --------
    Trigger - Run Path_Data <gen> (checking conditions)
    -------- Wave Data --------
    Trigger - Run Wave_Data <gen> (checking conditions)
    -------- Waiting Area --------
    Set VariableSet WaitingSpots[1] = (Center of Waiting_Unit_Spot_01 <gen>)
    Set VariableSet WaitingSpots[2] = (Center of Waiting_Unit_Spot_02 <gen>)
    Set VariableSet WaitingSpots[3] = (Center of Waiting_Unit_Spot_03 <gen>)
    Set VariableSet WaitingSpots[4] = (Center of Waiting_Unit_Spot_04 <gen>)
    Set VariableSet WaitingSpots[5] = (Center of Waiting_Unit_Spot_05 <gen>)
    Set VariableSet WaitingSpots[6] = (Center of Waiting_Unit_Spot_06 <gen>)
    Set VariableSet WaitingSpots[7] = (Center of Waiting_Unit_Spot_07 <gen>)
    Set VariableSet WaitingSpots[8] = (Center of Waiting_Unit_Spot_08 <gen>)
    Set VariableSet WaitingSpots[9] = (Center of Waiting_Unit_Spot_09 <gen>)
    Set VariableSet WaitingSpots[10] = (Center of Waiting_Unit_Spot_10 <gen>)
    Set VariableSet WaitingSpots[11] = (Center of Waiting_Unit_Spot_11 <gen>)
    Set VariableSet WaitingSpots[12] = (Center of Waiting_Unit_Spot_12 <gen>)
    Set VariableSet WaitingSpots[13] = (Center of Waiting_Unit_Spot_13 <gen>)
    Set VariableSet WaitingSpots[14] = (Center of Waiting_Unit_Spot_14 <gen>)
    Set VariableSet WaitingSpots[15] = (Center of Waiting_Unit_Spot_15 <gen>)
    Set VariableSet WaitingSpots[16] = (Center of Waiting_Unit_Spot_16 <gen>)
    Set VariableSet WaitingSpots[17] = (Center of Waiting_Unit_Spot_17 <gen>)
    Set VariableSet WaitingSpots[18] = (Center of Waiting_Unit_Spot_18 <gen>)
    Set VariableSet WaitingSpots[19] = (Center of Waiting_Unit_Spot_19 <gen>)
    Set VariableSet WaitingSpots[20] = (Center of Waiting_Unit_Spot_20 <gen>)
    Set VariableSet WaitingSpots[21] = (Center of Waiting_Unit_Spot_21 <gen>)
    Set VariableSet WaitingSpots[22] = (Center of Waiting_Unit_Spot_22 <gen>)
    Set VariableSet WaitingSpots[23] = (Center of Waiting_Unit_Spot_23 <gen>)
    Set VariableSet WaitingSpots[24] = (Center of Waiting_Unit_Spot_24 <gen>)
    -------- Convert Regions to Points --------
    Set VariableSet PointPathTarget01 = (Center of Path_Target_01 <gen>)
    Set VariableSet PointPathTarget02 = (Center of Path_Target_02 <gen>)
    Set VariableSet PointPathTarget03 = (Center of Path_Target_03 <gen>)
    Set VariableSet PointPathTarget04 = (Center of Path_Target_04 <gen>)
    Set VariableSet PointPathTarget05 = (Center of Path_Target_05 <gen>)
    Set VariableSet PointPathTarget06 = (Center of Path_Target_06 <gen>)
    Set VariableSet PointPathTarget07 = (Center of Path_Target_07 <gen>)
    Set VariableSet PointPathTarget08 = (Center of Path_Target_08 <gen>)
    Set VariableSet PointPathTarget09 = (Center of Path_Target_09 <gen>)
    Set VariableSet PointPathTarget10 = (Center of Path_Target_10 <gen>)
    Set VariableSet PointPathTarget11 = (Center of Path_Target_11 <gen>)
    Set VariableSet PointPathTarget12 = (Center of Path_Target_12 <gen>)
    Set VariableSet PointPathTarget13 = (Center of Path_Target_13 <gen>)
    Set VariableSet PointPathTarget14 = (Center of Path_Target_14 <gen>)
    Set VariableSet PointPathTarget15 = (Center of Path_Target_15 <gen>)
    Set VariableSet PointPathTarget16 = (Center of Path_Target_16 <gen>)
    Set VariableSet PointPathTarget17 = (Center of Path_Target_17 <gen>)
    Set VariableSet PointPathTarget18 = (Center of Path_Target_18 <gen>)
    Set VariableSet PointPathTarget19 = (Center of Path_Target_19 <gen>)
    Set VariableSet PointPathTarget20 = (Center of Path_Target_20 <gen>)
    Set VariableSet PointPathTarget21 = (Center of Path_Target_21 <gen>)
    Set VariableSet PointPathTarget22 = (Center of Path_Target_22 <gen>)
    Set VariableSet PointPathTarget23 = (Center of Path_Target_23 <gen>)
    Set VariableSet PointPathTarget24 = (Center of Path_Target_24 <gen>)
    Set VariableSet PointGateSound = (Center of GateSound <gen>)
    Set VariableSet PointWaitingRedirect01Left = (Center of Waiting_Redirect_01_Left <gen>)
    Set VariableSet PointWaitingRedirect01Right = (Center of Waiting_Redirect_01_Right <gen>)
    Set VariableSet PointSourceAltar = (Center of Source_Altar <gen>)
    Set VariableSet PointEscapePortalEffect = (Center of Escape_Portal_Effect <gen>)
    Set VariableSet PointEscapePortalTarget = (Center of Escape_Portal_Target <gen>)
    Set VariableSet PointExodusTroopSpawn = (Center of Exodus_Troop_Spawn <gen>)
    Set VariableSet PointExodusPeasantSpawn = (Center of Exodus_Peasant_Spawn <gen>)
    Set VariableSet PointEscapePath1A = (Center of Escape_Path1A <gen>)
    Set VariableSet PointEscapePath1B = (Center of Escape_Path1B <gen>)
    Set VariableSet PointEscapePath1C = (Center of Escape_Path1C <gen>)
    Set VariableSet PointEscapePath2A = (Center of Escape_Path2A <gen>)
    Set VariableSet PointEscapePath2B = (Center of Escape_Path2B <gen>)
    Set VariableSet PointEscapePath3A = (Center of Escape_Path3A <gen>)
    Set VariableSet PointEscapePath3B = (Center of Escape_Path3B <gen>)
    Set VariableSet PointEscapePath3C = (Center of Escape_Path3C <gen>)
    Set VariableSet PointWaitingRedirect01Left = (Center of Waiting_Redirect_01_Left <gen>)
    Set VariableSet PointWaitingRedirect01Right = (Center of Waiting_Redirect_01_Right <gen>)
    Set VariableSet PointSource0CastleLeft = (Center of Source0_Castle_Left <gen>)
    Set VariableSet PointSource0CastleRight = (Center of Source0_Castle_Right <gen>)
    Set VariableSet PointSource1BarracksLeft = (Center of Source1_Barracks_Left <gen>)
    Set VariableSet PointSource1BarracksRight = (Center of Source1_Barracks_Right <gen>)
    Set VariableSet PointSource2WorkshopLeft = (Center of Source2_Workshop_Left <gen>)
    Set VariableSet PointSource2WorkshopRight = (Center of Source2_Workshop_Right <gen>)
    Set VariableSet PointSource3AviaryLeft = (Center of Source3_Aviary_Left <gen>)
    Set VariableSet PointSource3AviaryRight = (Center of Source3_Aviary_Right <gen>)
    Set VariableSet PointSource4MercLeft = (Center of Source4_Merc_Left <gen>)
    Set VariableSet PointSource4MercRight = (Center of Source4_Merc_Right <gen>)
    Set VariableSet PointSource5DragLeft = (Center of Source5_Drag_Left <gen>)
    Set VariableSet PointSource5DragRight = (Center of Source5_Drag_Right <gen>)
    Set VariableSet PointSource6BeastsLeft = (Center of Source6_Beasts_Left <gen>)
    Set VariableSet PointSource6BeastsRight = (Center of Source6_Beasts_Right <gen>)
    Set VariableSet PointPortal = (Position of Portal do Pustkowia 0002 <gen>)
    Set VariableSet PointWaitingLeaderSpot = (Center of Waiting_Leader_Spot <gen>)
    Set VariableSet PointExplosivesFaceTarget = (Center of Explosives_Face_Target <gen>)
Load Heroes
  Events
  Conditions
  Actions
    -------- Create The Game Cache --------
    Game Cache - Create a game cache from Campaigns.w3v (stringnoformat)
    -------- Load Each Hero --------
    Trigger - Run Load_Kael <gen> (checking conditions)
    Trigger - Run Load_Vashj <gen> (checking conditions)
Load Kael
  Events
  Conditions
  Actions
    -------- Load Hero From Cache --------
    Game Cache - Restore Kael (stringnoformat) of HumanX04 (stringnoformat) from (Last created game cache) for AP1_Player at (Center of Intro_Kael_Start <gen>) facing 315.00
    Set VariableSet Kael = (Last restored unit)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Kael Equal to No unit
      Then - Actions
        -------- Create Default Hero --------
        Unit - Create 1.Blood Mage for AP1_Player at (Center of Intro_Kael_Start <gen>) facing 315.00 degrees
        Hero - Set (Last created unit) Hero-level to 5, Hide level-up graphics
        Hero - Learn skill for (Last created unit): Human Blood Mage - Flame Strike
        Hero - Learn skill for (Last created unit): Human Blood Mage - Flame Strike
        Hero - Learn skill for (Last created unit): Human Blood Mage - Banish
        Hero - Learn skill for (Last created unit): Human Blood Mage - Siphon Mana
        Hero - Learn skill for (Last created unit): Human Blood Mage - Siphon Mana
        Set VariableSet Kael = (Last created unit)
      Else - Actions
    -------- Cap XP if already at level 5 --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Hero level of Kael) Greater than or equal to 5
      Then - Actions
        Hero - Disable experience gain for Kael.
        Set VariableSet ExpDisabledForKael = True
      Else - Actions
Load Vashj
  Events
  Conditions
  Actions
    -------- Load Hero From Cache --------
    Game Cache - Restore Vashj (stringnoformat) of HumanX04 (stringnoformat) from (Last created game cache) for AP1_Player at (Center of Intro_Vashj_Start <gen>) facing 225.00
    Set VariableSet Vashj = (Last restored unit)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Vashj Equal to No unit
      Then - Actions
        -------- Create Default Hero --------
        Unit - Create 1.Naga Sea Witch for Player 10 (Light Blue) at (Center of Intro_Vashj_Start <gen>) facing 225.00 degrees
        Hero - Set (Last created unit) Hero-level to 5, Hide level-up graphics
        Hero - Learn skill for (Last created unit): Neutral Sea Witch - Forked Lightning
        Hero - Learn skill for (Last created unit): Neutral Sea Witch - Forked Lightning
        Hero - Learn skill for (Last created unit): Neutral Sea Witch - Frost Arrows
        Hero - Learn skill for (Last created unit): Neutral Sea Witch - Frost Arrows
        Hero - Learn skill for (Last created unit): Neutral Sea Witch - Mana Shield
        Set VariableSet Vashj = (Last created unit)
      Else - Actions
    -------- Cap XP if already at level 5 --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Hero level of Vashj) Greater than or equal to 5
      Then - Actions
        Hero - Disable experience gain for Vashj.
        Set VariableSet ExpDisabledForVashj = True
      Else - Actions
load Ravael
  Events
  Conditions
  Actions
    Unit - Create 1.Ravael for Player 10 (Light Blue) at (Center of Region_179 <gen>) facing 225.00 degrees
    Hero - Set (Last created unit) Hero-level to 5, Hide level-up graphics
    Set VariableSet Ravael = (Last created unit)
    -------- Cap XP if already at level 5 --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Hero level of Ravael) Greater than or equal to 5
      Then - Actions
        Hero - Disable experience gain for Ravael.
        Set VariableSet ExpDisabledForRavael = True
      Else - Actions
Experience Cap Kael
  Events
    Unit - A unit owned by Player 1 (Red).Gains a level
  Conditions
    (Leveling Hero) Equal to Kael
    (Hero level of (Leveling Hero)) Greater than or equal to 5
  Actions
    Hero - Disable experience gain for Kael.
    Set VariableSet ExpDisabledForKael = True
Experience Cap Vashj Kopiuj
  Events
    Unit - A unit owned by Player 10 (Light Blue).Gains a level
  Conditions
    (Leveling Hero) Equal to Ravael
    (Hero level of (Leveling Hero)) Greater than or equal to 5
  Actions
    Hero - Disable experience gain for Ravael.
    Set VariableSet ExpDisabledForRavael = True
Experience Cap Vashj
  Events
    Unit - A unit owned by Player 10 (Light Blue).Gains a level
  Conditions
    (Leveling Hero) Equal to Vashj
    (Hero level of (Leveling Hero)) Greater than or equal to 5
  Actions
    Hero - Disable experience gain for Vashj.
    Set VariableSet ExpDisabledForVashj = True
Before running this in a cinematic, do the following:
- Set "RevivalHero" to the hero you wish to revive.
- Set "RevivalSpot" to the place at which you wish the hero to be revived.

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

After the cinematic, move the hero instantly to RevivalReturnSpot.
Cinematic Revival
  Events
  Conditions
  Actions
    Set VariableSet RevivalReturnSpot = (Position of RevivalHero)
    Unit - Move RevivalHero instantly to RevivalSpot
    If ((RevivalHero is alive) Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Hero - Instantly revive RevivalHero at RevivalSpot, Hide revival graphics
    Set VariableSet RevivalReturnSpot = RevivalSpot
    Set VariableSet RevivalAltar = (Random unit from (Units owned by (Owner of RevivalHero) matching ((((Matching unit) is alive) Equal to True) and ((((Unit-type of (Matching unit)) Equal to Altar of Blood) or ((Unit-type of (Matching unit)) Equal to Altar of Storms)) or (((Unit-type of (Matching unit)) Equal to Altar of Darkness) or ((Unit-type of (Matching unit)) Equal to Altar of Elders)))).))
    If (RevivalAltar Not equal to No unit) then do (Set VariableSet RevivalReturnSpot = ((Position of RevivalAltar) offset by (0, -128.00))) else do (Do nothing)
Selection Screen
  Events
    Player - Player 1 (Red) types a chat message containing -Secret 1H3J-4GO5-H6J4 (stringnoformat) as An exact match
    Player - Player 10 (Light Blue) types a chat message containing -Secret 1H3J-4GO5-H6J4 (stringnoformat) as An exact match
  Conditions
  Actions
    Unit - Pause all units
    -------- Sets Up Player's Name and the Maximum Food They Can Have --------
    Player - Set Player 1 (Red).Food max to 60
    Player - Set name of Player 1 (Red) to Kael'thas Elves
    Player - Set Player 10 (Light Blue).Food max to 60
    Player - Set name of Player 10 (Light Blue) to Blood Elves
    -------- Sets Up Panda Logo and Game Information --------
    Cinematic - Fade out over 0.00 seconds using texture war3mapImported\Elves.blp (cinefiltertexture) and color (100.00%, 100.00%, 100.00%) with 0% transparency
    Game - Display to (All players) the text: Chapter 3(Secret)Welcome to the 2Player's Chapter 3 (Secret) of the Curse of the Blood Elves Campaign by Neltharion.Important use -save Comand When you want save your item and lvl Hero (before you will end the game )
    Wait 3.00 game-time seconds
    Game - Display to (All players) the text: Its Secret Mission good luck
    -------- Sets Up Campaign-Ish Visibility --------
    Visibility - Enable fog of war
    Visibility - Enable black mask
Selection Screen Kopiuj 2
  Events
    Map initialization
  Conditions
  Actions
    -------- Sets Up Player's Name and the Maximum Food They Can Have --------
    Player - Set Player 1 (Red).Food max to 60
    Player - Set name of Player 1 (Red) to Kael'thas Elves
    Player - Set Player 10 (Light Blue).Food max to 60
    Player - Set name of Player 10 (Light Blue) to Blood Elves
    -------- Sets Up Panda Logo and Game Information --------
    Cinematic - Fade out over 0.00 seconds using texture war3mapImported\Elves.blp (cinefiltertexture) and color (100.00%, 100.00%, 100.00%) with 0% transparency
    Game - Display to (All players) the text: Chapter 3(Secret)Welcome to the 2Player's Chapter 3 (Secret) of the Curse of the Blood Elves Campaign by Neltharionif you Have code from unlock secret Chapter you can use him and Unlock This Map
    Wait 10.00 game-time seconds
    Game - Display to (All players) the text: good luck
    -------- Sets Up Campaign-Ish Visibility --------
    Visibility - Enable fog of war
    Visibility - Enable black mask
Selection Screen Kopiuj
  Events
  Conditions
  Actions
    Unit - Pause all units
    -------- Sets Up Panda Logo and Game Information --------
    Cinematic - Fade out over 0.00 seconds using texture war3mapImported\Elves.blp (cinefiltertexture) and color (100.00%, 100.00%, 100.00%) with 0% transparency
    Game - Display to (All players) the text: Chapter 3 (Secret) CompletedCompleted
    Game - Display to (All players) the text: use this Code to Get Panda Hero in Next Chapter haahk-hhka-aagh-pgh
    Wait 60.00 game-time seconds
    -------- Sets Up Campaign-Ish Visibility --------
    Visibility - Enable fog of war
    Visibility - Enable black mask
DEBUG End
  Events
    Player - Player 1 (Red) types a chat message containing END (stringnoformat) as An exact match
  Conditions
  Actions
    Trigger - Run Victory_Cinematic_Q <gen> (checking conditions)
DEBUG Towers
  Events
    Player - Player 1 (Red) types a chat message containing TOWERS (stringnoformat) as An exact match
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Player - Make Flame Tower Available for training/construction by AP1_Player
    Player - Make Cold Tower Available for training/construction by AP1_Player
    Player - Make Death Tower Available for training/construction by AP1_Player
    Game - Display to (All players) for 10.00 seconds the text: DEBUG - Enabling all tower types.
DEBUG Tower3
  Events
    Player - Player 1 (Red) types a chat message containing TOWER3 (stringnoformat) as An exact match
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Countdown Timer - Start EnableTower3Timer as a One-shot timer that will expire in 0.10 seconds
DEBUG Tower4
  Events
    Player - Player 1 (Red) types a chat message containing TOWER4 (stringnoformat) as An exact match
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Countdown Timer - Start EnableTower4Timer as a One-shot timer that will expire in 0.10 seconds
DEBUG Tower5
  Events
    Player - Player 1 (Red) types a chat message containing TOWER5 (stringnoformat) as An exact match
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Countdown Timer - Start EnableTower5Timer as a One-shot timer that will expire in 0.10 seconds
DEBUG Wave
  Events
    Player - Player 1 (Red) types a chat message containing wave (stringnoformat) as A substring
  Conditions
  Actions
    Set VariableSet Wave = (Integer((Substring((Entered chat string), 6, 7))))
    Game - Display to (All players) for 10.00 seconds the text: (DEBUG - Changing to wave + (String(Wave)))
DEBUG Event Notarg
  Events
    Unit - A unit owned by Player 7 (Green).Is issued an order with no target
  Conditions
    (Unit-type of (Ordered unit)) Equal to Elder Sasquatch (Fala)
    (Unit-type of (Ordered unit)) Equal to Mountain King
  Actions
    Game - Display to (All players) for 2.00 seconds the text: (Order = ( + ((String((Issued order))) + )))
Intro Cinematic Q
  Events
  Conditions
  Actions
    Game - Preload all files listed in Scripts\HumanX03Secret.pld (preloadfile).
    Set VariableSet InCinematic = True
    -------- Fade Out --------
    Cinematic - Fade out over 0.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    -------- Set Up Scene --------
    Cinematic - Turn cinematic mode On for (All players)
    Trigger - Run Intro_Setup <gen> (checking conditions)
    Camera - .Apply. gg_cam_Intro_01 for Player 1 (Red) over 0 seconds
    Camera - .Apply. gg_cam_Intro_01 for Player 10 (Light Blue) over 0 seconds
    Camera - .Apply. gg_cam_Intro_02 for AP1_Player over 10.00 seconds
    Camera - .Apply. gg_cam_Intro_02 for Player 10 (Light Blue) over 10.00 seconds
    Unit - Order Kael to Move To.(Center of Intro_Kael_Dest01 <gen>)
    Unit - Order Vashj to Move To.(Center of Intro_Vashj_Dest01 <gen>)
    Unit - Order Ravael to Move To.(Center of Region_180 <gen>)
    Trigger - Run Intro_Spawn_Engineer <gen> (checking conditions)
    Special Effect - Create a special effect at (Center of Trev <gen>) using Abilities\Spells\Human\MassTeleport\MassTeleportTo.mdl
    Set VariableSet Trevfx1 = (Last created special effect)
    Special Effect - Create a special effect at (Center of Trev <gen>) using Abilities\Spells\Orc\LightningShield\LightningShieldTarget.mdl
    Set VariableSet Trevfx2 = (Last created special effect)
    -------- Fade In --------
    Cinematic - Fade in over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2.00 seconds
    Trigger - Turn on Intro_Skipped <gen>
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC BEGINS - Cinematic Can Now Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- Line --------
    Cinematic - Send transmission to (All players) from Kael named Książę Kael'thas: Play A04Kael01 <gen> and display Szybciej, bracia - zajmujcie swoje pozycje. Siły Garithosa niebawem tu nadciągną.. Modify duration: Add 0 seconds and Don't wait
    Wait for A04Kael01 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 2 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- Camera --------
    Camera - .Apply. gg_cam_Intro_trev_A1 for Player 1 (Red) over 0 seconds
    Camera - .Apply. gg_cam_Intro_trev_A1 for Player 10 (Light Blue) over 0 seconds
    Camera - .Apply. gg_cam_Intro_trev_A2 for Player 1 (Red) over ((Length of A04LadyVashj04 <gen>) + (1 + 0.70)) seconds
    Camera - .Apply. gg_cam_Intro_trev_A2 for Player 10 (Light Blue) over ((Length of A04LadyVashj04 <gen>) + (1 + 0.70)) seconds
    -------- Line --------
    Cinematic - Send transmission to (All players) from Vashj named Lady Vash: Play A04LadyVashj04 <gen> and display Dotarliśmy do portalu, Kaelu. Trzeba teraz spróbować go otworzyć!. Modify duration: Add 0 seconds and Don't wait
    Sound - Play RunesGlow <gen> at 60.00% volume, located at (Center of Escape_Portal_Target <gen>) with Z offset 0
    Wait for A04LadyVashj04 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Kael to Move To.(Center of Gameplay_Kael_Start <gen>)
    Unit - Order Ravael to Move To.(Center of Region_178 <gen>)
    Wait 0.50 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Stop RunesGlow <gen> After fading
    -------- Camera --------
    Camera - .Apply. gg_cam_Intro_Engineer_Pit_01 for Player 1 (Red) over 0 seconds
    Camera - .Apply. gg_cam_Intro_Engineer_Pit_01 for Player 10 (Light Blue) over 0 seconds
    Camera - .Apply. gg_cam_Intro_Engineer_Pit_02 for Player 1 (Red) over ((Length of A04Kael03 <gen>) + ((Length of A04EngineerOne02 <gen>) + 1)) seconds
    Camera - .Apply. gg_cam_Intro_Engineer_Pit_02 for Player 10 (Light Blue) over ((Length of A04Kael03 <gen>) + ((Length of A04EngineerOne02 <gen>) + 1)) seconds
    -------- Line --------
    Cinematic - Send transmission to (All players) from EngineerForeman01 named Inżynier: Play A04EngineerOne02 <gen> and display Książę, wraz z innymi inżynierami tworzyłem pierwotne umocnienia Dalaranu. Możemy wykorzystać materiały z tych ruin do budowy wież obronnych.. Modify duration: Add 0 seconds and Don't wait
    Wait for A04EngineerOne02 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- Line --------
    Cinematic - Send transmission to (All players) from Kael named Książę Kael'thas: Play A04Kael03 <gen> and display To doskonała wiadomość - bierz się do roboty!. Modify duration: Add 0 seconds and Don't wait
    Wait for A04Kael03 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- Camera --------
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - .Apply. gg_cam_Intro_Garrithos_Shot for AP1_Player over 0.00 seconds
    Camera - .Apply. gg_cam_Intro_Garrithos_Shot for Player 10 (Light Blue) over 0.00 seconds
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Unit - Create 1.Footman (Fala) for P06_HumansBase at (Center of Intro_Spy_Spawn <gen>) facing Default building facing degrees
    Set VariableSet FootmanSpy = (Last created unit)
    Special Effect - Create a special effect attached to the hand left (attachpoint) of FootmanSpy using Objects\InventoryItems\ThunderLizardEgg\ThunderLizardEgg.mdl
    Unit - Order FootmanSpy to Move To.(Center of Intro_Spy_Dest01 <gen>)
    Wait 4.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- Line --------
    Cinematic - Send transmission to (All players) from Garithos named Wielki Marszałek Garithos: Play A04Garithos05 <gen> and display Wiedziałem, że te przeklęte elfy spróbują czegoś takiego... Zostawcie wieże, trzeba zniszczyć ten portal! Nie wypuścić mi stąd tych zdrajców!. Modify duration: Add 0 seconds and Don't wait
    Wait for A04Garithos05 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- Camera --------
    Camera - .Apply. gg_cam_Intro_Explosives_01 for AP1_Player over 0.00 seconds
    Camera - .Apply. gg_cam_Intro_Explosives_01 for Player 10 (Light Blue) over 0.00 seconds
    -------- Line --------
    Cinematic - Send transmission to (All players) from Garithos named Wielki Marszałek Garithos: Play A04Garithos43 <gen> and display Wysadźcie ten portal w powietrze!. Modify duration: Add 0 seconds and Don't wait
    Wait for A04Garithos43 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- Line --------
    Cinematic - Send transmission to (All players) from Garithos named Wielki Marszałek Garithos: Play A04Garithos44 <gen> and display Ten, kto zniszczy portal, zostanie bohaterem.. Modify duration: Add 0 seconds and Don't wait
    Wait for A04Garithos44 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Portal's stand alternate (animationname) animation
    Animation - Play the death (animationname) animation for all doodads of type YOlb (doodadcode) within Trev <gen>.
    Special Effect - Destroy Trevfx1
    Special Effect - Destroy Trevfx2
    -------- Camera --------
    Camera - .Apply. gg_cam_Intro_trev_Gate_Cam for AP1_Player over 0.00 seconds
    Camera - .Apply. gg_cam_Intro_trev_Gate_Cam for Player 10 (Light Blue) over 0.00 seconds
    Animation - Play Portal do Pustkowia 0002 <gen>'s birth (animationname) animation, using only Rare animations
    Sound - Play ShimmeringPortalBirth <gen> at 100.00% volume, located at (Center of Escape_Portal_Target <gen>) with Z offset 0
    Wait 6.30 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Play CityScapeMagicRunesLoop1 <gen> at 100.00% volume, located at (Center of Escape_Portal_Target <gen>) with Z offset 0
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- Line --------
    Cinematic - Send transmission to (All players) from Vashj named Lady Vash: Play A04LadyVashj06 <gen> and display Udało się! Portal otwarty, teraz trzeba tylko przez niego przejść.. Modify duration: Add 0 seconds and Don't wait
    Wait 2.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Blood Elf Engineer 0058 <gen> to build a Energy Tower at (Center of Starting_Tower_01 <gen>)
    Unit - Order Blood Elf Engineer 0024 <gen> to build a Boulder Tower at (Center of Starting_Tower_02 <gen>)
    Unit - Order Vashj to Move To.(Center of Gameplay_Vashj_Start <gen>)
    Wait 2.78 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Stop CityScapeMagicRunesLoop1 <gen> After fading
    -------- Camera --------
    Camera - .Apply. gg_cam_Intro_Starting_Towers_01 for Player 1 (Red) over 0.00 seconds
    Camera - .Apply. gg_cam_Intro_Starting_Towers_01 for Player 10 (Light Blue) over 0.00 seconds
    Unit - Move Vashj instantly to (Center of Intro_Vashj_MoveUnit <gen>)
    -------- Line --------
    Cinematic - Send transmission to (All players) from Kael named Książę Kael'thas: Play A04Kael07 <gen> and display Dobra robota, Vash. Jeśli wzniesiemy więcej tych wież, to powinniśmy wystarczająco długo powstrzymywać wojska Garithosa.. Modify duration: Add 0 seconds and Don't wait
    Wait for A04Kael07 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- Line --------
    Cinematic - Send transmission to (All players) from Vashj named Lady Vash: Play A04LadyVashj08 <gen> and display Obyś miał rację - jeśli portal zostanie zniszczony, to nikt z nas nie ocaleje!. Modify duration: Add 0 seconds and Don't wait
    Wait for A04LadyVashj08 <gen> to be 0 seconds from finished playing
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC ENDS - Cinematic Can No Longer Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    Trigger - Turn off Intro_Skipped <gen>
    -------- Fade Out --------
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    -------- Cleanup --------
    Trigger - Run Intro_Cleanup <gen> (checking conditions)
    -------- Start AI, Let AI Settle Down --------
    Wait 0.50 seconds
    Cinematic - Turn cinematic mode Off for (All players)
    -------- Fade In --------
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Sound - Add CityScapeMagicRunesLoop1 <gen> across Escape_Portal_Target <gen>
    Wait 1.00 seconds
    -------- Start Game --------
    Trigger - Run Gameplay <gen> (checking conditions)
    Set VariableSet InCinematic = False
    Trigger - Remove (This trigger) from the trigger queue
Intro Spawn Engineer
  Events
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Unit - Create 1.Blood Elf Engineer (Kael) for Player 1 (Red) at (Center of Exodus_Peasant_Spawn <gen>) facing 180.00 degrees
    Set VariableSet Engineer01Cin = (Last created unit)
    Unit - Order Engineer01Cin to Move To.(Center of Intro_Eng01Dest01 <gen>)
    Wait 0.20 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Create 1.Blood Elf Engineer (Kael) for Player 1 (Red) at (Center of Exodus_Peasant_Spawn <gen>) facing 180.00 degrees
    Set VariableSet Engineer02Cin = (Last created unit)
    Unit - Order Engineer02Cin to Move To.(Center of Intro_Eng02Dest01 <gen>)
    Wait 0.20 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Create 1.Blood Elf Engineer (Kael) for Player 1 (Red) at (Center of Exodus_Peasant_Spawn <gen>) facing 180.00 degrees
    Set VariableSet Engineer03Cin = (Last created unit)
    Unit - Order Engineer03Cin to Move To.(Center of Intro_Eng03Dest01 <gen>)
    Wait 1.00 seconds
    If (IntroSkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Create 1.Blood Elf Engineer (Kael) for Player 1 (Red) at (Center of Exodus_Peasant_Spawn <gen>) facing 180.00 degrees
    Set VariableSet Engineer04Cin = (Last created unit)
    Unit - Order Engineer04Cin to Move To.(Center of Intro_Eng04Dest01 <gen>)
Intro Spy Return
  Events
    Unit - A unit enters Intro_Spy_Dest01 <gen>
  Conditions
    (Entering unit) Equal to FootmanSpy
  Actions
    Unit - Order FootmanSpy to Move To.(Center of Intro_Spy_Spawn <gen>)
    Special Effect - Destroy (Last created special effect)
Intro Skipped
  Events
    Player - Player 1 (Red) skips a cinematic sequence
    Player - Player 10 (Light Blue) skips a cinematic sequence
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet IntroSkipped = True
    -------- Fade Out --------
    Cinematic - Fade out over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.50 seconds
    -------- Cleanup --------
    Trigger - Run Intro_Cleanup <gen> (checking conditions)
    -------- Start AI, Let AI Settle Down --------
    Wait 0.50 seconds
    Camera - Reset camera for Player 10 (Light Blue) to standard game-view over 0 seconds
    Camera - Reset camera for Player 1 (Red) to standard game-view over 0 seconds
    Cinematic - Turn cinematic mode Off for (All players)
    -------- Fade In --------
    Cinematic - Fade in over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Sound - Add CityScapeMagicRunesLoop1 <gen> across Escape_Portal_Target <gen>
    Wait 0.50 seconds
    -------- Start Game --------
    Trigger - Run Gameplay <gen> (checking conditions)
    Set VariableSet InCinematic = False
    Trigger - Remove Intro_Cinematic_Q <gen> from the trigger queue
Intro Setup
  Events
  Conditions
  Actions
    -------- Set Sky --------
    Environment - Set sky to Lordaeron Summer Sky
    -------- Disable XP Gain --------
    Hero - Disable experience gain for Kael.
    Hero - Disable experience gain for Vashj.
    Hero - Disable experience gain for Ravael.
    -------- Pause Time Of Day --------
    Game - Turn the day/night cycle Off
    -------- Pause Units --------
    Unit - Pause all units
    Unit - Unpause Kael
    Unit - Unpause Vashj
    Unit - Unpause Ravael
    Unit - Unpause Blood Elf Engineer 0058 <gen>
    Unit - Unpause Blood Elf Engineer 0024 <gen>
    -------- Hide Units --------
    -------- Disable Abilities --------
    Player - Disable AIba (Item) for AP1_Player
    Player - Disable Devotion Aura for P06_HumansBase
    -------- Portal --------
    Animation - Play Portal do Pustkowia 0002 <gen>'s death (animationname) animation, using only Rare animations
Intro Cleanup
  Events
  Conditions
  Actions
    -------- Destroy Effects --------
    Special Effect - Destroy Trevfx1
    Special Effect - Destroy Trevfx2
    -------- Remove and Create Towers --------
    Unit Group - Pick every unit in (Units owned by Player 1 (Red) of type Energy Tower) and do (Remove (Picked unit) from the game)
    Unit Group - Pick every unit in (Units owned by Player 1 (Red) of type Boulder Tower) and do (Remove (Picked unit) from the game)
    Unit - Create 1.Energy Tower for Player 10 (Light Blue) at (Center of Starting_Tower_01 <gen>) facing Default building facing degrees
    Unit - Create 1.Boulder Tower for AP1_Player at (Center of Starting_Tower_02 <gen>) facing Default building facing degrees
    -------- Restore Abilities --------
    Player - Enable AIba (Item) for AP1_Player
    Player - Enable Devotion Aura for P06_HumansBase
    -------- Move Units --------
    Unit - Move Kael instantly to (Center of Gameplay_Kael_Start <gen>), facing 270.00 degrees
    Unit - Move Vashj instantly to (Center of Gameplay_Vashj_Start <gen>), facing 90.00 degrees
    Unit - Move Ravael instantly to (Center of Region_178 <gen>), facing 90.00 degrees
    Unit - Move Blood Elf Engineer 0058 <gen> instantly to (Center of StartingEngineer01 <gen>), facing 45.00 degrees
    Unit - Move Blood Elf Engineer 0024 <gen> instantly to (Center of StartingEngineer02 <gen>), facing 135.00 degrees
    -------- Remove units --------
    Unit - Remove Engineer01Cin from the game
    Unit - Remove Engineer02Cin from the game
    Unit - Remove Engineer03Cin from the game
    Unit - Remove Engineer04Cin from the game
    Unit - Remove FootmanSpy from the game
    -------- Unhide Units --------
    -------- Unpause Units --------
    Unit - Unpause all units
    -------- Pause Time Of Day --------
    Game - Turn the day/night cycle On
    -------- Re-enable XP Gain --------
    If (ExpDisabledForKael Equal to False) then do (Enable experience gain for Kael.) else do (Do nothing)
    If (ExpDisabledForVashj Equal to False) then do (Enable experience gain for Vashj.) else do (Do nothing)
    -------- Restore Selection --------
    Selection - Select Kael
    -------- Reset Sky --------
    Environment - Set sky to None
    -------- Reset Camera --------
    Camera - Reset camera smoothing factor
    Camera - Reset camera for AP1_Player to standard game-view over 0 seconds
    Camera - Reset camera for Player 10 (Light Blue) to standard game-view over 0 seconds
    Camera - Pan camera for AP1_Player to (Target of gg_cam_Intro_Skipped) over 0 seconds
    Camera - Pan camera for Player 10 (Light Blue) to (Target of gg_cam_Intro_Skipped) over 0 seconds
    -------- Initial Harvesting --------
    -------- Wipe Visibility --------
    Visibility - Create an initially Enabled visibility modifier for AP1_Player emitting Black mask across (Playable map area)
    Visibility - Destroy (Last created visibility modifier)
    -------- Portal Spot --------
    Animation - Play Portal do Pustkowia 0002 <gen>'s stand (animationname) animation, using only Rare animations
    Animation - Play the death (animationname) animation for all doodads of type YOlb (doodadcode) within Escape_Portal_Target <gen>.
Gameplay
  Events
  Conditions
  Actions
    -------- Do initial gameplay stuff, like quest messages and hints --------
    Trigger - Run Start_Timed_Events <gen> (checking conditions)
    Trigger - Run Start_Exodus <gen> (checking conditions)
    Trigger - Run Leaderboard_Create <gen> (checking conditions)
    -------- ************* --------
    Wait 5.00 game-time seconds
    Trigger - Add Quest_Defend_Q <gen> to the trigger queue (Checking conditions)
Start Timed Events
  Events
  Conditions
  Actions
    -------- Quest Timer --------
    Countdown Timer - Start DefendTimer as a One-shot timer that will expire in (25.00 x 60.00) seconds
    Countdown Timer - Create a timer window for DefendTimer with title Pozostały czas
    Set VariableSet DefendTimerWindow = (Last created timer window)
    -------- Timed Tower Events --------
    Countdown Timer - Start EnableTower3Timer as a One-shot timer that will expire in (4.55 x 60.00) seconds
    Countdown Timer - Start EnableTower4Timer as a One-shot timer that will expire in (9.35 x 60.00) seconds
    Countdown Timer - Start EnableTower5Timer as a One-shot timer that will expire in (15.55 x 60.00) seconds
    -------- Timed Hints --------
    Countdown Timer - Start HintBuildTimer as a One-shot timer that will expire in (0.40 x 60.00) seconds
    Countdown Timer - Start HintTrainTimer as a One-shot timer that will expire in (0.80 x 60.00) seconds
    -------- Timed Voiceovers --------
    Countdown Timer - Start VaultFoundTimer as a One-shot timer that will expire in (1.50 x 60.00) seconds
    Countdown Timer - Start TimeWarning1Timer as a One-shot timer that will expire in (15.00 x 60.00) seconds
    Countdown Timer - Start TimeWarning2Timer as a One-shot timer that will expire in (25.00 x 60.00) seconds
    Countdown Timer - Start ReleaseBeastsTimer as a One-shot timer that will expire in (18.50 x 60.00) seconds
    -------- Start Attack Waves --------
    Trigger - Run Wave_Timing <gen> (checking conditions)
Quest Defend Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Camera - Set a spacebar-point for AP1_Player at (Position of Portal)
    Camera - Set a spacebar-point for Player 10 (Light Blue) at (Position of Portal)
    Cinematic - Ping minimap for (All players) at (Position of Portal) for 4.00 seconds
    Trigger - Run Quest_Defend_Discover <gen> (checking conditions)
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Victory Cinematic Q
  Events
  Conditions
  Actions
    Set VariableSet InCinematic = True
    -------- Quest update --------
    Trigger - Run Quest_Defend_Completed <gen> (checking conditions)
    Wait Campaign quest delay seconds
    -------- Fade Out --------
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    -------- Set Up Scene --------
    Cinematic - Turn cinematic mode On for (All players)
    Wait 0.25 seconds
    Trigger - Run Next_Level_Prep <gen> (checking conditions)
    Trigger - Run Victory_Setup <gen> (checking conditions)
    Countdown Timer - Hide DefendTimerWindow for AP1_Player
    Leaderboard - Hide PortalLeaderboard
    Trigger - Run Score <gen> (checking conditions)
    Wait until (ScoreScreenPlaying Equal to True), checking every 1 seconds
    Wait 2.00 seconds
    Camera - .Apply. gg_cam_Victory_01 for Player 1 (Red) over 0 seconds
    Camera - .Apply. gg_cam_Victory_01 for Player 10 (Light Blue) over 0 seconds
    -------- Fade In --------
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    Trigger - Turn on Victory_Skipped <gen>
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC BEGINS - Cinematic Can Now Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- Line --------
    Cinematic - Send transmission to (All players) from Vashj named Lady Vash: Play A04LadyVashj31 <gen> and display Kaelu, wszystkim udało się przejść! Cofajcie się, zamkniemy za wami portal!. Modify duration: Add 0 seconds and Don't wait
    Wait for A04LadyVashj31 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- Pull back units --------
    Unit - Create 1.Blood Elf Engineer (Kael) for Player 1 (Red) at (Center of Victory_Create_unit_01 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Move To.(Center of Escape_Portal_Target <gen>)
    Unit - Create 1.Blood Elf Engineer (Kael) for Player 1 (Red) at (Center of Victory_Create_unit_02 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Move To.(Center of Escape_Portal_Target <gen>)
    Camera - .Apply. gg_cam_Victory_02 for Player 1 (Red) over 0 seconds
    Camera - .Apply. gg_cam_Victory_02 for Player 10 (Light Blue) over 0 seconds
    -------- Line --------
    Cinematic - Send transmission to (All players) from Kael named Książę Kael'thas: Play A04Kael32 <gen> and display Żołnierze - cofajcie się! Do portalu!. Modify duration: Add 0 seconds and Don't wait
    Wait for A04Kael32 <gen> to be 0 seconds from finished playing
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - .Apply. gg_cam_Victory_04 for Player 1 (Red) over 0.00 seconds
    Camera - .Apply. gg_cam_Victory_04 for Player 10 (Light Blue) over 0.00 seconds
    Camera - .Apply. gg_cam_Victory_05 for Player 1 (Red) over 8.00 seconds
    Camera - .Apply. gg_cam_Victory_05 for Player 10 (Light Blue) over 8.00 seconds
    Wait 4.00 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Camera - .Apply. gg_cam_Victory_06 for Player 1 (Red) over 0.00 seconds
    Camera - .Apply. gg_cam_Victory_06 for Player 10 (Light Blue) over 0.00 seconds
    -------- Line --------
    Cinematic - Send transmission to (All players) from Vashj named Lady Vash: Play A04LadyVashj33 <gen> and display Tak, młody książę... Jeszcze jeden krok ku przeznaczeniu.... Modify duration: Add 0 seconds and Don't wait
    Wait 2.00 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Play ShimmeringPortalEntrance <gen> at 85.00% volume, located at (Center of Escape_Portal_Target <gen>) with Z offset 0
    Unit - Order Kael to Move To.(Center of Escape_Portal_Target <gen>)
    Unit - Order Ravael to Move To.(Center of Escape_Portal_Target <gen>)
    Wait 2.35 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Play ShimmeringPortalEntrance <gen> at 85.00% volume, located at (Center of Escape_Portal_Target <gen>) with Z offset 0
    Wait 1.50 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Order Vashj to Move To.(Center of Escape_Portal_Target <gen>)
    Wait 0.50 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Sound - Play ShimmeringPortalEntrance <gen> at 85.00% volume, located at (Center of Escape_Portal_Target <gen>) with Z offset 0
    Wait 1.50 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Animation - Play Portal do Pustkowia 0002 <gen>'s death (animationname) animation, using only Rare animations
    Sound - Remove CityScapeMagicRunesLoop1 <gen> across Escape_Portal_Target <gen>
    Sound - Play ShimmeringPortalDeath <gen> at 100% volume, located at (Center of Escape_Portal_Target <gen>) with Z offset 0
    Wait 2 seconds
    If (VictorySkipped Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    -------- CINEMATIC ENDS - Cinematic Can No Longer Be Skipped --------
    -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --------
    Trigger - Turn off Victory_Skipped <gen>
    -------- Fade Out --------
    Cinematic - Fade out over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2.00 seconds
    Cinematic - Turn cinematic mode Off for (All players)
    Trigger - Run Selection_Screen_Kopiuj <gen> (checking conditions)
Victory Skipped
  Events
    Player - Player 1 (Red) skips a cinematic sequence
    Player - Player 10 (Light Blue) skips a cinematic sequence
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set VariableSet VictorySkipped = True
    -------- Fade Out --------
    Cinematic - Fade out over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2.00 seconds
    Cinematic - Turn cinematic mode Off for (All players)
    Trigger - Run Selection_Screen_Kopiuj <gen> (checking conditions)
Victory Setup
  Events
  Conditions
  Actions
    -------- Set Sky --------
    Environment - Set sky to Lordaeron Summer Sky
    -------- Clear Selection --------
    Selection - Clear selection
    -------- Portal Facing --------
    Unit - Make Portal do Pustkowia 0002 <gen> face 90.00 over 0 seconds
    -------- Revive Hero --------
    Set VariableSet RevivalHero = Kael
    Set VariableSet RevivalSpot = (Center of Victory_Kael_Start <gen>)
    Trigger - Run Cinematic_Revival <gen> (checking conditions)
    Set VariableSet KaelReturnSpot = RevivalReturnSpot
    Unit - Make Kael face 0.00 over 0 seconds
    -------- Revive Hero --------
    Set VariableSet RevivalHero = Vashj
    Set VariableSet RevivalSpot = (Center of Victory_Vashj_Start <gen>)
    Trigger - Run Cinematic_Revival <gen> (checking conditions)
    Set VariableSet VashjReturnSpot = RevivalReturnSpot
    Unit - Make Vashj face 0.00 over 0 seconds
    -------- Revive Hero --------
    Set VariableSet RevivalHero = Ravael
    Set VariableSet RevivalSpot = (Center of Region_182 <gen>)
    Trigger - Run Cinematic_Revival <gen> (checking conditions)
    Set VariableSet VashjReturnSpot = RevivalReturnSpot
    Unit - Make Vashj face 0.00 over 0 seconds
    -------- Disable XP Gain --------
    Hero - Disable experience gain for Kael.
    Hero - Disable experience gain for Vashj.
    Hero - Disable experience gain for Ravael.
    -------- Pause Time Of Day --------
    Game - Turn the day/night cycle Off
    -------- Pause Units --------
    Unit - Pause all units
    Unit - Unpause Kael
    Unit - Unpause Vashj
    Unit - Unpause Ravael
    Unit - Unpause Portal do Pustkowia 0002 <gen>
    For each (Integer A) from 1 to 30, do (Actions)
      Loop - Actions
        Countdown Timer - Pause WaveTimer[(Integer A)]
    -------- Pause Timers --------
    Countdown Timer - Pause PeasantTimer
    Countdown Timer - Pause TroopTimer
    -------- Hide Units --------
    Set VariableSet HiddenUnits = (Units owned by AP1_Player matching (((Matching unit) is hidden) Equal to False).)
    Unit Group - Add all units of (Units owned by P02_Escapees matching (((Matching unit) is hidden) Equal to False).) to HiddenUnits
    Unit Group - Add all units of (Units owned by P06_HumansBase matching (((Matching unit) is hidden) Equal to False).) to HiddenUnits
    Unit Group - Add all units of (Units owned by P07_HumansWave matching (((Matching unit) is hidden) Equal to False).) to HiddenUnits
    Unit Group - Remove Kael from HiddenUnits.
    Unit Group - Remove Vashj from HiddenUnits.
    Unit Group - Remove Portal do Pustkowia 0002 <gen> from HiddenUnits.
    Unit Group - Pick every unit in HiddenUnits and do (Hide (Picked unit))
    -------- Hide Items --------
    Item - Pick every item in (Playable map area) and do (Hide (Picked item))
    -------- Remove Buffs --------
    Unit Group - Pick every unit in (Units owned by AP1_Player.) and do (Remove All buffs from (Picked unit))
    Unit Group - Pick every unit in (Units owned by P02_Escapees.) and do (Remove All buffs from (Picked unit))
    Unit Group - Pick every unit in (Units owned by P06_HumansBase.) and do (Remove All buffs from (Picked unit))
    Unit Group - Pick every unit in (Units owned by P07_HumansWave.) and do (Remove All buffs from (Picked unit))
    -------- Disable Abilities --------
    Player - Disable AIba (Item) for AP1_Player
    Player - Disable Devotion Aura for P06_HumansBase
    -------- Music Theme --------
    Sound - Play Heroic Victory.
    -------- Trigger --------
    Trigger - Turn on Victory_Travel_to_Outland <gen>
Victory Travel to Outland
  Events
    Unit - A unit enters Escape_Portal_Tripwire <gen>
  Conditions
    (Owner of (Entering unit)) Equal to Player 1 (Red)
  Actions
    Unit - Remove (Entering unit) from the game
Score
  Events
  Conditions
  Actions
    Camera - .Apply. gg_cam_SCORESCREENCAM for AP1_Player 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 (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Wave Less than 31
      Then - Actions
        Game - Display to (All players) for 12.00 seconds the text: |cffffcc00Pokonane grupy:|r
        Floating Text - Create floating text that reads PRZEGRYWASZ at (Center of YOULOSEEMITTER <gen>) with Z offset 0, using font size 50.00, color (100%, 0.00%, 0.00%), and 0% transparency
        Game - Display to (All players) for 12.00 seconds the text: (String(Wave))
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Difficulty level) Equal to Easy
            Wave Greater than HighScoreEasy
          Then - Actions
            Game - Display to (All players) for 12.00 seconds the text: |cffffcc00NOWY NAJLEPSZY WYNIK|r
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Difficulty level) Equal to Normal
                Wave Greater than HighScoreNormal
              Then - Actions
                Game - Display to (All players) for 12.00 seconds the text: |cffffcc00NOWY NAJLEPSZY WYNIK|r
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Difficulty level) Equal to Hard
                    Wave Greater than HighScoreHard
                  Then - Actions
                    Game - Display to (All players) for 12.00 seconds the text: |cffffcc00NOWY NAJLEPSZY WYNIK|r
                  Else - Actions
                    Game - Display to (All players) for 12.00 seconds the text: Zagraj ponownie!
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Wave Less than 20
          Then - Actions
            Sound - Play PandarenBrewmasterPissed3 <gen>
          Else - Actions
            Sound - Play PandarenBrewmasterPissed8 <gen>
      Else - Actions
        Floating Text - Create floating text that reads ZWYCIĘŻASZ! at (Center of YOULOSEEMITTER <gen>) with Z offset 0, using font size 50.00, color (100%, 80.00%, 20.00%), and 0% transparency
        Cinematic - Apply a filter over 3.00 seconds using Normal blending on texture Panda-n-Cub, starting with color (100%, 100%, 100%) and 100% transparency and ending with color (100.00%, 100.00%, 100.00%) and 0% transparency
        Sound - Play PandarenBrewmasterYesAttack3 <gen>
        Wait 11.00 seconds
        Cinematic - Apply a filter over 1.00 seconds using Normal blending on texture Panda-n-Cub, starting with color (100%, 100%, 100%) and 0.00% transparency and ending with color (0.00%, 0.00%, 0.00%) and 0% transparency
        Wait 1.00 seconds
        Set VariableSet ScoreScreenPlaying = True
        Skip remaining actions
    Wait 11.00 seconds
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    Set VariableSet ScoreScreenPlaying = True
Next Level Prep
  Events
  Conditions
  Actions
    -------- Remove Quest Items --------
    Item - Remove (Item carried by Kael of type Wisior Witalności +300)
    Item - Remove (Item carried by Kael of type Wisior Witalności +3000)
    Item - Remove (Item carried by Kael of type Wisior Witalności +400)
    Item - Remove (Item carried by Kael of type Wisior Witalności +500)
    Item - Remove (Item carried by Kael of type Wisior Witalności +800)
    Item - Remove (Item carried by Kael of type Pierścień Ochrony +10)
    Item - Remove (Item carried by Kael of type Pierścień Ochrony +8)
    Item - Remove (Item carried by Vashj of type Wisior Witalności +300)
    Item - Remove (Item carried by Vashj of type Wisior Witalności +3000)
    Item - Remove (Item carried by Vashj of type Wisior Witalności +400)
    Item - Remove (Item carried by Vashj of type Wisior Witalności +500)
    Item - Remove (Item carried by Vashj of type Wisior Witalności +800)
    Item - Remove (Item carried by Vashj of type Pierścień Ochrony +10)
    Item - Remove (Item carried by Vashj of type Pierścień Ochrony +8)
    -------- Save Heroes --------
    Game Cache - Create a game cache from Campaigns.w3v (stringnoformat)
    Game Cache - Store Kael as Kael (stringnoformat) of HumanX04S (stringnoformat) in (Last created game cache)
    Game Cache - Store Vashj as Vashj (stringnoformat) of HumanX04S (stringnoformat) in (Last created game cache)
    Trigger - Run Save_High_Score <gen> (checking conditions)
    Game Cache - Save (Last created game cache).
    -------- Enable Missions, Campaigns, Cinematics --------
Next Level Run
  Events
  Conditions
  Actions
    -------- Set Next Level and Victory --------
    Game - Set the next level to Maps\FrozenThrone\Campaign\HumanX03Interlude.w3x
    Game - Victory AP1_Player (Show dialogs, Show scores)
Save High Score
  Events
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Difficulty level) Equal to Easy
        FinalWaveHighScore Greater than HighScoreEasy
      Then - Actions
        Game Cache - Store FinalWaveHighScore as FinalWaveEasy (stringnoformat) of HumanX03s (stringnoformat) in (Last created game cache)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Difficulty level) Equal to Normal
        FinalWaveHighScore Greater than HighScoreNormal
      Then - Actions
        Game Cache - Store FinalWaveHighScore as FinalWaveNormal (stringnoformat) of HumanX03s (stringnoformat) in (Last created game cache)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Difficulty level) Equal to Hard
        FinalWaveHighScore Greater than HighScoreHard
      Then - Actions
        Game Cache - Store FinalWaveHighScore as FinalWaveHard (stringnoformat) of HumanX03s (stringnoformat) in (Last created game cache)
      Else - Actions
Victory Cheat
  Events
    Player - Player 1 (Red) leaves the game with a victory
  Conditions
    GameOver Equal to False
  Actions
    Set VariableSet GameOver = True
    Trigger - Run Next_Level_Prep <gen> (checking conditions)
    Trigger - Run Next_Level_Run <gen> (checking conditions)
Defeat Cheat
  Events
    Player - Player 1 (Red) leaves the game with a defeat
  Conditions
    GameOver Equal to False
  Actions
    Set VariableSet GameOver = True
    Game - Defeat AP1_Player with the message: Klęska!
Quest Defend Create
  Events
  Conditions
    ((This trigger) is on) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    -------- Create the quest objects --------
    Quest - Create a Required, undiscovered quest titled Obrona portalu with the description Garithos wysłał swoich ludzi z samobójczą misją zniszczenia portalu; musisz go bronić dość długo, aby krwawe elfy zdołały się przedostać na Pustkowie. Wybuduj w tym celu wieże obronne - jeśli dobrze je umiejscowisz, to powinieneś zdołać powstrzymać wojska Garithosa. Walcz o portal podczas ucieczki pozostałych krwawych elfów., using icon path ReplaceableTextures\CommandButtons\BTNRockTower.tga
    Set VariableSet QuestDefend = (Last created quest)
    Quest - Create a quest requirement for QuestDefend with the description Wybuduj wieże, aby powstrzymać wojska Garithosa
    Set VariableSet QuestDefendReq1 = (Last created quest requirement)
    Quest - Create a quest requirement for QuestDefend with the description Portal musi ocaleć
    Set VariableSet QuestDefendReq2 = (Last created quest requirement)
Quest Defend Discover
  Events
  Conditions
  Actions
    -------- Ensure that the quest exists --------
    Trigger - Run Quest_Defend_Create <gen> (checking conditions)
    -------- Update the quest --------
    Quest - Mark QuestDefend as Discovered
    -------- Display a quest message. --------
    Quest - Display to (All players) the Quest Discovered message: |cffffcc00ZADANIE GŁÓWNE|rObrona portalu - Wznieś wieże, aby powstrzymać ludzi Garithosa - Portal musi ocaleć
Quest Defend Completed
  Events
  Conditions
  Actions
    -------- Ensure that the quest exists --------
    Trigger - Run Quest_Defend_Create <gen> (checking conditions)
    -------- Update the quest --------
    Quest - Mark QuestDefend as Discovered
    Quest - Mark QuestDefendReq1 as Completed
    Quest - Mark QuestDefendReq2 as Completed
    Quest - Mark QuestDefend as Completed
    -------- Display a quest message. --------
    Quest - Display to (All players) the Quest Completed message: |cffffcc00ZADANIE GŁÓWNE WYKONANE|rObrona portalu
Quest Defend Failed
  Events
  Conditions
  Actions
    -------- Ensure that the quest exists --------
    Trigger - Run Quest_Defend_Create <gen> (checking conditions)
    -------- Update the quest --------
    Quest - Mark QuestDefend as Discovered
    Quest - Mark QuestDefend as Failed
    -------- Display a quest message. --------
    Quest - Display to (All players) the Quest Failed message: |cffffcc00ZADANIE GŁÓWNE NIEUDANE|rObrona portalu
Mission Failed Base Dead
  Events
  Conditions
  Actions
    Quest - Display to (All players) the Mission Failed message: |cffffcc00MISJA NIEUDANA|rWszystkie twoje budynki zostały zniszczone.
Hint Build Event
  Events
    Time - HintBuildTimer expires
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Hint_Build_Towers_Q <gen> to the trigger queue (Checking conditions)
Hint Build Towers Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Quest - Display to (All players) the Hint message: |cff32cd32WSKAZÓWKA|r - Wznoś i rozbudowuj wieże, dzięki którym powstrzymasz napastników.
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Hint Train Event
  Events
    Time - HintTrainTimer expires
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Hint_Train_Engineers_Q <gen> to the trigger queue (Checking conditions)
Hint Train Engineers Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Cinematic - Ping minimap for (All players) at (Center of TownHall <gen>) for 4.00 seconds
    Quest - Display to (All players) the Hint message: |cff32cd32WSKAZÓWKA|r - Dodatkowych Inżynierów możesz wytrenować w Ratuszu.
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
New Unit Tower3
  Events
  Conditions
  Actions
    Quest - Display to (All players) the New Unit Available message: |cff87ceebNOWY BUDYNEK DOSTĘPNY|rWieża Płomieni - Twoi Inżynierowie mogą teraz wznosić Wieże Płomieni.
New Unit Tower4
  Events
  Conditions
  Actions
    Quest - Display to (All players) the New Unit Available message: |cff87ceebNOWY BUDYNEK DOSTĘPNY|rWieża Zimna - Twoi Inżynierowie mogą teraz wznosić Wieże Zimna.
New Unit Tower5
  Events
  Conditions
  Actions
    Quest - Display to (All players) the New Unit Available message: |cff87ceebNOWY BUDYNEK DOSTĘPNY|rWieża Śmierci - Twoi Inżynierowie mogą teraz wznosić Wieże Śmierci.
WARNING Wave Sent Q
  Events
  Conditions
  Actions
    Quest - Display to (All players) the Warning message: |cffff0000UWAGA|r - Atakuje kolejna fala!
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Victory Portal Dying
  Events
    Unit - Portal do Pustkowia 0002 <gen>'s life becomes Less than or equal to 401.00
  Conditions
    GameOver Equal to False
  Actions
    Set VariableSet GameOver = True
    Unit - Make Portal do Pustkowia 0002 <gen> Invulnerable
    Wait 2 seconds
    Trigger - Add Victory_Cinematic_Q <gen> to the trigger queue (Checking conditions)
    Set VariableSet FinalWaveHighScore = Wave
Victory Final Wave
  Events
    Unit - A unit owned by Player 7 (Green).Dies
  Conditions
    (All units of FinalWaveGroup are dead) Equal to True
    GameOver Equal to False
  Actions
    Set VariableSet GameOver = True
    Unit - Make Portal Invulnerable
    Wait 2 seconds
    Trigger - Add Victory_Cinematic_Q <gen> to the trigger queue (Checking conditions)
    Set VariableSet FinalWaveHighScore = 31
Defeat Units Dead
  Events
    Time - Every 1.00 seconds of game time
  Conditions
    GameOver Equal to False
    (Count structures controlled by Player 1 (Red) (Include incomplete structures)) Equal to 0
  Actions
    Set VariableSet GameOver = True
    Set VariableSet FinalWaveHighScore = Wave
    Wait 2 seconds
    Trigger - Run Mission_Failed_Base_Dead <gen> (checking conditions)
    Wait Campaign quest delay seconds
    Game - Defeat AP1_Player with the message: Klęska!
Remove Dead From Final Wave Group
  Events
    Unit - A unit owned by Player 7 (Green).Dies
  Conditions
    ((Dying unit) is in FinalWaveGroup.) Equal to True
  Actions
    Unit Group - Remove (Dying unit) from FinalWaveGroup.
To use combat detection, just disable these two triggers and check the "InCombat" variable to determine whether or not the player is in combat.
Combat Detected
  Events
    Unit - A unit owned by Player 1 (Red).Is attacked
  Conditions
  Actions
    Countdown Timer - Start CombatCheckTimer as a One-shot timer that will expire in 3.00 seconds
    Set VariableSet InCombat = True
Combat Resolved
  Events
    Time - CombatCheckTimer expires
  Conditions
  Actions
    Set VariableSet InCombat = False
Time Warning1
  Events
    Time - TimeWarning1Timer expires
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Time_Warning1_Q <gen> to the trigger queue (Checking conditions)
Time Warning1 Q
  Events
  Conditions
    GameOver Equal to False
    (Vashj is alive) Equal to True
  Actions
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Vashj named Lady Vash: Play A04LadyVashj22 <gen> and display Kaelu - prawie połowie naszych sił udało się już przejść na drugą stronę, musisz powstrzymać Garithosa!. Modify duration: Add 0 seconds and Don't wait
    Wait for A04LadyVashj22 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Time Warning2
  Events
    Time - TimeWarning2Timer expires
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Time_Warning2_Q <gen> to the trigger queue (Checking conditions)
Time Warning2 Q
  Events
  Conditions
    GameOver Equal to False
    (Vashj is alive) Equal to True
  Actions
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Vashj named Lady Vash: Play A04LadyVashj25 <gen> and display Prawie wszyscy już przeszli! Brakuje nam już tylko kilku chwil!. Modify duration: Add 0 seconds and Don't wait
    Wait for A04LadyVashj25 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Release The Beasts
  Events
    Time - ReleaseBeastsTimer expires
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Release_The_Beasts_Q <gen> to the trigger queue (Checking conditions)
Release The Beasts Q
  Events
  Conditions
    GameOver Equal to False
    (Vashj is alive) Equal to True
  Actions
    Sound - Setup all volume channels for speech
    -------- Line --------
    Cinematic - Send transmission to (All players) from Garithos named Wielki Marszałek Garithos: Play A04Garithos47 <gen> and display Uwolnijcie bestie!. Modify duration: Add 0 seconds and Don't wait
    Wait for A04Garithos47 <gen> to be 0 seconds from finished playing
    -------- Line --------
    Cinematic - Send transmission to (All players) from Garithos named Wielki Marszałek Garithos: Play A04Garithos46 <gen> and display Rozwalcie te klatki - każdy z tych potworów nam się przyda!. Modify duration: Add 0 seconds and Don't wait
    Wait for A04Garithos46 <gen> to be 0 seconds from finished playing
    Sound - Reset all volume channels to 100%
    Trigger - Remove (This trigger) from the trigger queue
Portal Attacked
  Events
    Unit - Portal do Pustkowia 0002 <gen> Is attacked
  Conditions
    GameOver Equal to False
    (Vashj is alive) Equal to True
    ((This trigger) is on) Equal to True
    (The trigger queue is empty) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    -------- Increment the message index --------
    Set VariableSet PortalAttackedMessage = (PortalAttackedMessage + 1)
    If (PortalAttackedMessage Greater than 3) then do (Set VariableSet PortalAttackedMessage = 1) else do (Do nothing)
    -------- Queue the message --------
    If (PortalAttackedMessage Equal to 1) then do (Add Portal_Attacked_1_Q <gen> to the trigger queue (Checking conditions)) else do (Do nothing)
    If (PortalAttackedMessage Equal to 2) then do (Add Portal_Attacked_2_Q <gen> to the trigger queue (Checking conditions)) else do (Do nothing)
    If (PortalAttackedMessage Equal to 3) then do (Add Portal_Attacked_3_Q <gen> to the trigger queue (Checking conditions)) else do (Do nothing)
    -------- This trigger is turned back on by the Queued trigger. --------
Portal Attacked 1 Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Wait 0.60 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Vashj is alive) Equal to True
      Then - Actions
        Sound - Setup all volume channels for speech
        -------- Line --------
        Cinematic - Send transmission to (All players) from Vashj named Lady Vash: Play A04LadyVashj19 <gen> and display Atakują portal! Chrońcie go za wszelką cenę!. Modify duration: Add 0 seconds and Don't wait
        Wait for A04LadyVashj19 <gen> to be 0 seconds from finished playing
        Sound - Reset all volume channels to 100%
      Else - Actions
    Trigger - Remove (This trigger) from the trigger queue
    -------- Wait a while before enabling the next warning message, to avoid spam --------
    Wait 30.00 seconds
    Trigger - Turn on Portal_Attacked <gen>
Portal Attacked 2 Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Wait 0.60 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Vashj is alive) Equal to True
      Then - Actions
        Sound - Setup all volume channels for speech
        -------- Line --------
        Cinematic - Send transmission to (All players) from Vashj named Lady Vash: Play A04LadyVashj20 <gen> and display Brońcie portalu!. Modify duration: Add 0 seconds and Don't wait
        Wait for A04LadyVashj20 <gen> to be 0 seconds from finished playing
        Sound - Reset all volume channels to 100%
      Else - Actions
    Trigger - Remove (This trigger) from the trigger queue
    -------- Wait a while before enabling the next warning message, to avoid spam --------
    Wait 30.00 seconds
    Trigger - Turn on Portal_Attacked <gen>
Portal Attacked 3 Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Wait 0.60 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Vashj is alive) Equal to True
      Then - Actions
        Sound - Setup all volume channels for speech
        -------- Line --------
        Cinematic - Send transmission to (All players) from Vashj named Lady Vash: Play A04LadyVashj21 <gen> and display Portal stał się obiektem ataku - trzeba go ochronić!. Modify duration: Add 0 seconds and Don't wait
        Wait for A04LadyVashj21 <gen> to be 0 seconds from finished playing
        Sound - Reset all volume channels to 100%
      Else - Actions
    Trigger - Remove (This trigger) from the trigger queue
    -------- Wait a while before enabling the next warning message, to avoid spam --------
    Wait 30.00 seconds
    Trigger - Turn on Portal_Attacked <gen>
Vault1 Opened
  Events
    Unit - Magic Vault 0030 <gen> Dies
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Wait 0.10 seconds
    Item - Create Gloves of Haste at (Position of (Dying unit))
    Trigger - Add Vault1_Opened_Q <gen> to the trigger queue (Checking conditions)
Vault1 Opened Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Set VariableSet Vault01Done = True
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Kael is alive) Equal to True
      Then - Actions
        Sound - Setup all volume channels for speech
        -------- Line --------
        Cinematic - Send transmission to (All players) from Kael named Książę Kael'thas: Play A04Kael16 <gen> and display Ten artefakt niewątpliwie nam się przyda.. Modify duration: Add 0 seconds and Don't wait
        Wait for A04Kael16 <gen> to be 0 seconds from finished playing
        Sound - Reset all volume channels to 100%
      Else - Actions
    Trigger - Remove (This trigger) from the trigger queue
Vault2 Opened
  Events
    Unit - Magic Vault 0076 <gen> Dies
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Wait 0.10 seconds
    Item - Create Orb of Slow at (Position of (Dying unit))
    Trigger - Add Vault2_Opened_Q <gen> to the trigger queue (Checking conditions)
Vault2 Opened Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Set VariableSet Vault02Done = True
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Kael is alive) Equal to True
      Then - Actions
        Sound - Setup all volume channels for speech
        -------- Line --------
        Cinematic - Send transmission to (All players) from Kael named Książę Kael'thas: Play A04Kael17 <gen> and display Nie pozwolę, aby to ludzie położyli na tym swe brudne łapska.. Modify duration: Add 0 seconds and Don't wait
        Wait for A04Kael17 <gen> to be 0 seconds from finished playing
        Sound - Reset all volume channels to 100%
      Else - Actions
    Trigger - Remove (This trigger) from the trigger queue
Vault3 Opened
  Events
    Unit - Magic Vault 0077 <gen> Dies
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Wait 0.10 seconds
    Item - Create Mana Stone at (Position of (Dying unit))
    Trigger - Add Vault3_Opened_Q <gen> to the trigger queue (Checking conditions)
Vault3 Opened Q
  Events
  Conditions
    GameOver Equal to False
  Actions
    Set VariableSet Vault03Done = True
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Kael is alive) Equal to True
      Then - Actions
        Sound - Setup all volume channels for speech
        -------- Line --------
        Cinematic - Send transmission to (All players) from Kael named Książę Kael'thas: Play A04Kael18 <gen> and display Obejmuję władzę nad tym przedmiotem w imieniu Kirin Tor - ludzie nie mają prawa zgłaszać do niego żadnych pretensji.. Modify duration: Add 0 seconds and Don't wait
        Wait for A04Kael18 <gen> to be 0 seconds from finished playing
        Sound - Reset all volume channels to 100%
      Else - Actions
    Trigger - Remove (This trigger) from the trigger queue
Disable Advanced Towers
  Events
  Conditions
  Actions
    Player - Make Flame Tower Unavailable for training/construction by AP1_Player
    Player - Make Flame Tower Unavailable for training/construction by Player 10 (Light Blue)
    Player - Make Cold Tower Unavailable for training/construction by AP1_Player
    Player - Make Cold Tower Unavailable for training/construction by Player 10 (Light Blue)
    Player - Make Death Tower Unavailable for training/construction by AP1_Player
    Player - Make Death Tower Unavailable for training/construction by Player 10 (Light Blue)
TowerType3 Enabled
  Events
    Time - EnableTower3Timer expires
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add TowerType3_Enabled_Q <gen> to the trigger queue (Checking conditions)
TowerType3 Enabled Q
  Events
  Conditions
    GameOver Equal to False
    (EngineerWorkers is empty) Equal to False
  Actions
    -------- Enable New Tower --------
    Player - Make Flame Tower Available for training/construction by AP1_Player
    Player - Make Flame Tower Available for training/construction by Player 10 (Light Blue)
    Trigger - Run Finish_TowerType3 <gen> (checking conditions)
    -------- Find a speaker --------
    Set VariableSet Speaker = (Random unit from EngineerWorkers)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Speaker Not equal to No unit
      Then - Actions
        Sound - Setup all volume channels for speech
        -------- Line --------
        Cinematic - Send transmission to (All players) from EngineerForeman01 named Inżynier: Play A04BloodElfEngineer49 <gen> and display Książę, nowy rodzaj wieży obronnej jest gotowy.. Modify duration: Add 0 seconds and Don't wait
        Wait for A04BloodElfEngineer49 <gen> to be 0 seconds from finished playing
        Sound - Reset all volume channels to 100%
      Else - Actions
    Trigger - Run New_Unit_Tower3 <gen> (checking conditions)
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
TowerType4 Enabled
  Events
    Time - EnableTower4Timer expires
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add TowerType4_Enabled_Q <gen> to the trigger queue (Checking conditions)
TowerType4 Enabled Q
  Events
  Conditions
    GameOver Equal to False
    (EngineerWorkers is empty) Equal to False
  Actions
    -------- Enable New Tower --------
    Player - Make Cold Tower Available for training/construction by AP1_Player
    Player - Make Cold Tower Available for training/construction by Player 10 (Light Blue)
    Trigger - Run Finish_TowerType4 <gen> (checking conditions)
    -------- Find a speaker --------
    Set VariableSet Speaker = (Random unit from EngineerWorkers)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Speaker Not equal to No unit
      Then - Actions
        Sound - Setup all volume channels for speech
        -------- Line --------
        Cinematic - Send transmission to (All players) from EngineerForeman01 named Inżynier: Play A04BloodElfEngineer50 <gen> and display Książę, plany nowej wieży zostały opracowane.. Modify duration: Add 0 seconds and Don't wait
        Wait for A04BloodElfEngineer50 <gen> to be 0 seconds from finished playing
        Sound - Reset all volume channels to 100%
      Else - Actions
    Trigger - Run New_Unit_Tower4 <gen> (checking conditions)
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
TowerType5 Enabled
  Events
    Time - EnableTower5Timer expires
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add TowerType5_Enabled_Q <gen> to the trigger queue (Checking conditions)
TowerType5 Enabled Q
  Events
  Conditions
    GameOver Equal to False
    (EngineerWorkers is empty) Equal to False
  Actions
    -------- Enable New Tower --------
    Player - Make Death Tower Available for training/construction by AP1_Player
    Player - Make Death Tower Available for training/construction by Player 10 (Light Blue)
    Trigger - Run Finish_TowerType5 <gen> (checking conditions)
    -------- Find a speaker --------
    Set VariableSet Speaker = (Random unit from EngineerWorkers)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Speaker Not equal to No unit
      Then - Actions
        Sound - Setup all volume channels for speech
        -------- Line --------
        Cinematic - Send transmission to (All players) from EngineerForeman01 named Inżynier: Play A04BloodElfEngineer51 <gen> and display Książę, ta nowa wieża to nasze najwspanialsze osiągnięcie!. Modify duration: Add 0 seconds and Don't wait
        Wait for A04BloodElfEngineer51 <gen> to be 0 seconds from finished playing
        Sound - Reset all volume channels to 100%
      Else - Actions
    Trigger - Run New_Unit_Tower5 <gen> (checking conditions)
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Start Tower Research
  Events
    Time - Elapsed game time is 1.00 seconds
  Conditions
  Actions
    -------- Towers --------
    Animation - Play EPitTower3's birth upgrade (animationname) animation
    Animation - Play EPitTower4's birth (animationname) animation
    Animation - Play EPitTower5's birth (animationname) animation
    Animation - Change EPitTower3's animation speed to 1.00% of its original speed
    Animation - Change EPitTower4's animation speed to 1.00% of its original speed
    Animation - Change EPitTower5's animation speed to 1.00% of its original speed
    -------- Engineers --------
    Animation - Play EngineerWorker01's Stand Work (animationname) animation, using only Rare animations
    Wait 0.30 game-time seconds
    Animation - Play EngineerWorker02's Stand Work (animationname) animation, using only Rare animations
    Wait 0.80 game-time seconds
    Animation - Play EngineerWorker03's Stand Work (animationname) animation, using only Rare animations
    -------- Foremen --------
    Animation - Play EngineerForeman01's Stand (animationname) animation, using only Rare animations
    Animation - Play EngineerForeman02's Stand (animationname) animation, using only Rare animations
    Animation - Play EngineerForeman03's Stand (animationname) animation, using only Rare animations
    -------- Animation Speed --------
    Animation - Change EngineerWorker01's animation speed to 50.00% of its original speed
    Animation - Change EngineerWorker02's animation speed to 50.00% of its original speed
    Animation - Change EngineerWorker03's animation speed to 50.00% of its original speed
Finish TowerType3
  Events
  Conditions
  Actions
    -------- Play Finished Animation --------
    Animation - Play EPitTower3's stand third (animationname) animation
    -------- Engineers Gape --------
    Animation - Change EngineerWorker01's animation speed to 100.00% of its original speed
    Animation - Change EngineerWorker02's animation speed to 100.00% of its original speed
    Animation - Change EngineerWorker03's animation speed to 100.00% of its original speed
    Animation - Play EngineerWorker01's stand (animationname) animation
    Animation - Play EngineerWorker02's stand (animationname) animation
    Animation - Play EngineerWorker03's stand (animationname) animation
    Wait 0.50 game-time seconds
    -------- Engineers Move --------
    Unit - Order EngineerWorker01 to Move To.(Center of EPitTower4_Worker01 <gen>)
    Wait 0.20 game-time seconds
    Unit - Order EngineerWorker02 to Move To.(Center of EPitTower4_Worker02 <gen>)
    Wait 0.80 game-time seconds
    Unit - Order EngineerWorker03 to Move To.(Center of EPitTower4_Worker03 <gen>)
    Wait 1.40 game-time seconds
    -------- Engineers Study Tower --------
    Unit - Make EngineerWorker01 face EPitTower4 over 0.20 seconds
    Wait 0.20 game-time seconds
    Unit - Make EngineerWorker02 face EPitTower4 over 0.20 seconds
    Wait 0.30 game-time seconds
    Unit - Make EngineerWorker03 face EPitTower4 over 0.20 seconds
    Wait 0.50 game-time seconds
    -------- Engineers Resume Work --------
    Animation - Change EngineerWorker01's animation speed to 50.00% of its original speed
    Animation - Change EngineerWorker02's animation speed to 50.00% of its original speed
    Animation - Change EngineerWorker03's animation speed to 50.00% of its original speed
    Animation - Play EngineerWorker01's stand work (animationname) animation
    Wait 0.30 game-time seconds
    Animation - Play EngineerWorker02's stand work (animationname) animation
    Wait 0.45 game-time seconds
    Animation - Play EngineerWorker03's stand work (animationname) animation
    Wait 1.00 game-time seconds
    Animation - Play EPitTower4's birth upgrade (animationname) animation
Finish TowerType4
  Events
  Conditions
  Actions
    -------- Play Finished Animation --------
    Animation - Play EPitTower4's stand fourth (animationname) animation
    -------- Engineers Gape --------
    Animation - Change EngineerWorker01's animation speed to 100.00% of its original speed
    Animation - Change EngineerWorker02's animation speed to 100.00% of its original speed
    Animation - Change EngineerWorker03's animation speed to 100.00% of its original speed
    Animation - Play EngineerWorker01's stand (animationname) animation
    Animation - Play EngineerWorker02's stand (animationname) animation
    Animation - Play EngineerWorker03's stand (animationname) animation
    Wait 0.50 game-time seconds
    -------- Engineers Move --------
    Unit - Order EngineerWorker01 to Move To.(Center of EPitTower5_Worker01 <gen>)
    Wait 0.20 game-time seconds
    Unit - Order EngineerWorker02 to Move To.(Center of EPitTower5_Worker02 <gen>)
    Wait 0.80 game-time seconds
    Unit - Order EngineerWorker03 to Move To.(Center of EPitTower5_Worker03 <gen>)
    Wait 2.00 game-time seconds
    -------- Engineers Study Tower --------
    Unit - Make EngineerWorker01 face EPitTower5 over 0.20 seconds
    Wait 0.20 game-time seconds
    Unit - Make EngineerWorker02 face EPitTower5 over 0.20 seconds
    Wait 0.50 game-time seconds
    Unit - Make EngineerWorker03 face EPitTower5 over 0.20 seconds
    Wait 0.50 game-time seconds
    -------- Engineers Resume Work --------
    Animation - Change EngineerWorker01's animation speed to 50.00% of its original speed
    Animation - Change EngineerWorker02's animation speed to 50.00% of its original speed
    Animation - Change EngineerWorker03's animation speed to 50.00% of its original speed
    Animation - Play EngineerWorker01's stand work (animationname) animation
    Wait 0.30 game-time seconds
    Animation - Play EngineerWorker02's stand work (animationname) animation
    Wait 0.45 game-time seconds
    Animation - Play EngineerWorker03's stand work (animationname) animation
    Animation - Play EPitTower5's birth upgrade (animationname) animation
    Wait 30.00 game-time seconds
    -------- Foremen Fall Asleep --------
    Animation - Play EngineerForeman01's Stand (animationname) animation, using only Common animations
    Animation - Change EngineerForeman01's animation speed to 10.00% of its original speed
    Special Effect - Create a special effect attached to the overhead (attachpoint) of EngineerForeman01 using Abilities\Spells\Undead\Sleep\SleepTarget.mdl
    Set VariableSet ForemanSleepEffect01 = (Last created special effect)
    Wait 25.00 game-time seconds
    Animation - Play EngineerForeman02's Stand (animationname) animation, using only Common animations
    Animation - Change EngineerForeman02's animation speed to 10.00% of its original speed
    Special Effect - Create a special effect attached to the overhead (attachpoint) of EngineerForeman02 using Abilities\Spells\Undead\Sleep\SleepTarget.mdl
    Set VariableSet ForemanSleepEffect02 = (Last created special effect)
    Wait 40.00 game-time seconds
    Animation - Play EngineerForeman03's Stand (animationname) animation, using only Common animations
    Animation - Change EngineerForeman03's animation speed to 10.00% of its original speed
    Special Effect - Create a special effect attached to the overhead (attachpoint) of EngineerForeman03 using Abilities\Spells\Undead\Sleep\SleepTarget.mdl
    Set VariableSet ForemanSleepEffect03 = (Last created special effect)
Finish TowerType5
  Events
  Conditions
  Actions
    -------- Play Finished Animation --------
    Animation - Play EPitTower5's stand fifth (animationname) animation
    -------- Engineers Gape --------
    Animation - Change EngineerWorker01's animation speed to 100.00% of its original speed
    Animation - Change EngineerWorker02's animation speed to 100.00% of its original speed
    Animation - Change EngineerWorker03's animation speed to 100.00% of its original speed
    Animation - Play EngineerWorker01's stand (animationname) animation
    Animation - Play EngineerWorker02's stand (animationname) animation
    Animation - Play EngineerWorker03's stand (animationname) animation
    Wait 0.50 game-time seconds
    -------- Engineers Book It --------
    Unit - Order EngineerWorker02 to Move To.(Center of Escape_Path2A <gen>)
    Wait 0.50 game-time seconds
    Unit - Order EngineerWorker03 to Move To.(Center of Escape_Path2A <gen>)
    Wait 0.50 game-time seconds
    Unit - Order EngineerWorker01 to Move To.(Center of Escape_Path2A <gen>)
    Wait 20.00 game-time seconds
    -------- Foremen Wake Up And Book It --------
    Animation - Change EngineerForeman01's animation speed to 100.00% of its original speed
    Special Effect - Destroy ForemanSleepEffect01
    Unit - Make EngineerForeman01 face 20.00 over 0.20 seconds
    Wait 0.50 game-time seconds
    Unit - Order EngineerForeman01 to Move To.(Center of Escape_Path2A <gen>)
    Wait 2.00 game-time seconds
    Animation - Change EngineerForeman02's animation speed to 100.00% of its original speed
    Special Effect - Destroy ForemanSleepEffect02
    Unit - Order EngineerForeman02 to Move To.(Center of Escape_Path2A <gen>)
    Wait 30.00 game-time seconds
    Animation - Change EngineerForeman03's animation speed to 100.00% of its original speed
    Special Effect - Destroy ForemanSleepEffect03
    Unit - Order EngineerForeman03 to Move To.(Center of Escape_Path2A <gen>)
Engineer Dies
  Events
    Unit - A unit owned by Player 2 (Blue).Dies
  Conditions
  Actions
    If ((Dying unit) Equal to EngineerWorker01) then do (Set VariableSet EngineerWorker01 = No unit) else do (Do nothing)
    If ((Dying unit) Equal to EngineerWorker02) then do (Set VariableSet EngineerWorker02 = No unit) else do (Do nothing)
    If ((Dying unit) Equal to EngineerWorker03) then do (Set VariableSet EngineerWorker03 = No unit) else do (Do nothing)
    If ((Dying unit) Equal to EngineerForeman01) then do (Set VariableSet EngineerForeman01 = No unit) else do (Do nothing)
    If ((Dying unit) Equal to EngineerForeman02) then do (Set VariableSet EngineerForeman02 = No unit) else do (Do nothing)
    If ((Dying unit) Equal to EngineerForeman03) then do (Set VariableSet EngineerForeman03 = No unit) else do (Do nothing)
    If ((Dying unit) Equal to EPitTower3) then do (Set VariableSet EPitTower3 = No unit) else do (Do nothing)
    If ((Dying unit) Equal to EPitTower4) then do (Set VariableSet EPitTower4 = No unit) else do (Do nothing)
    If ((Dying unit) Equal to EPitTower5) then do (Set VariableSet EPitTower5 = No unit) else do (Do nothing)
    Animation - Change (Dying unit)'s animation speed to 100.00% of its original speed
    Unit Group - Remove (Dying unit) from EngineerWorkers.
    Unit Group - Remove (Dying unit) from EngineerUnits.
    Unit Group - Remove (Dying unit) from ExodusUnits.
Observatory Vision
  Events
  Conditions
  Actions
    Visibility - Create an initially Enabled visibility modifier for AP1_Player emitting Visibility from (Position of Observatory) to a radius of ObservatoryVisionRadius.
    Set VariableSet ObservatoryVision = (Last created visibility modifier)
Observatory Dies
  Events
    Unit - Arcane Observatory 0007 <gen> Dies
  Conditions
    GameOver Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Visibility - Destroy ObservatoryVision
CVS sucks.
Escape Gold Float Text
  Events
  Conditions
  Actions
    Custom script: local texttag floatygold
    Floating Text - Create floating text that reads 20 above GoldFloatTextUnit with Z offset 0, using font size 10, color (100%, 80.00%, 20.00%), and 0% transparency
    Set VariableSet GoldFloatingText = (Last created floating text)
    Floating Text - Set the velocity of GoldFloatingText to 64 towards 90 degrees
    Custom script: set floatygold = udg_GoldFloatingText
    Wait 3.00 seconds
    Custom script: set udg_GoldFloatingText = floatygold
    Floating Text - Destroy GoldFloatingText
Start Exodus
  Events
  Conditions
  Actions
    Countdown Timer - Start PeasantTimer as a Repeating timer that will expire in 2.00 seconds
    Countdown Timer - Start TroopTimer as a Repeating timer that will expire in 2.50 seconds
    Trigger - Run Escape_Spawn_Peasant <gen> (checking conditions)
Escape Spawn Peasant
  Events
    Time - PeasantTimer expires
  Conditions
  Actions
    Unit - Create 1.Krwawy elf (Mężczyzna) (Kael) for P02_Escapees at PointExodusPeasantSpawn facing 180.00 degrees
    Set VariableSet TempUnit = (Last created unit)
    Unit - Turn collision for TempUnit Off.
    Unit - Set TempUnit movement speed to ExodusMoveSpeed
    Unit - Move TempUnit instantly to PointExodusPeasantSpawn
    Unit - Order TempUnit to Move To.PointEscapePath1A
    Unit Group - Add TempUnit to ExodusPeasants
    Unit Group - Add TempUnit to ExodusUnits
    -------- Add a fake sack of gold --------
    Animation - Add the gold (animationname) animation tag to TempUnit
Escape Spawn Troop
  Events
    Time - TroopTimer expires
  Conditions
  Actions
    Set VariableSet TempInteger = (Random integer number between 1 and 3)
    If (TempInteger Equal to 1) then do (Create 1.Priest for P02_Escapees at PointExodusTroopSpawn facing 180.00 degrees) else do (Do nothing)
    If (TempInteger Equal to 2) then do (Create 1.Sorceress for P02_Escapees at PointExodusTroopSpawn facing 180.00 degrees) else do (Do nothing)
    If (TempInteger Equal to 3) then do (Create 1.Spell Breaker for P02_Escapees at PointExodusTroopSpawn facing 180.00 degrees) else do (Do nothing)
    Set VariableSet TempUnit = (Last created unit)
    Unit - Turn collision for TempUnit Off.
    Unit - Set TempUnit movement speed to ExodusMoveSpeed
    Unit - Move TempUnit instantly to PointExodusTroopSpawn
    Unit - Order TempUnit to Move To.PointEscapePath3A
    Unit Group - Add TempUnit to ExodusTroops
    Unit Group - Add TempUnit to ExodusUnits
Escape Path1A
  Events
    Unit - A unit enters Escape_Path1A <gen>
  Conditions
    ((Entering unit) is in ExodusPeasants.) Equal to True
  Actions
    Unit - Order (Entering unit) to Move To.PointEscapePath1B
Escape Path1B
  Events
    Unit - A unit enters Escape_Path1B <gen>
  Conditions
    ((Entering unit) is in ExodusPeasants.) Equal to True
  Actions
    Unit - Order (Entering unit) to Move To.PointEscapePath1C
Escape Path1C Gold
  Events
    Unit - A unit enters Escape_Path1C <gen>
  Conditions
    ((Entering unit) is in ExodusPeasants.) Equal to True
  Actions
    Unit - Order (Entering unit) to Move To.PointEscapePortalTarget
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Haven 0003 <gen> is alive) Equal to True
      Then - Actions
        -------- Cash in the sack of gold --------
        Animation - Remove the gold (animationname) animation tag to (Entering unit)
        Player - Add 20 to AP1_Player.Current gold
        Player - Add 20 to Player 10 (Light Blue).Current gold
        Set VariableSet GoldFloatTextUnit = (Entering unit)
        Trigger - Run Escape_Gold_Float_Text <gen> (checking conditions)
      Else - Actions
Escape Path2A
  Events
    Unit - A unit enters Escape_Path2A <gen>
  Conditions
    ((Entering unit) is in EngineerUnits.) Equal to True
  Actions
    Unit - Turn collision for (Entering unit) Off.
    Unit - Order (Entering unit) to Move To.PointEscapePath2B
Escape Path2B
  Events
    Unit - A unit enters Escape_Path2B <gen>
  Conditions
    ((Entering unit) is in EngineerUnits.) Equal to True
  Actions
    Unit - Order (Entering unit) to Move To.PointEscapePortalTarget
Escape Path3A
  Events
    Unit - A unit enters Escape_Path3A <gen>
  Conditions
    ((Entering unit) is in ExodusTroops.) Equal to True
  Actions
    Unit - Order (Entering unit) to Move To.PointEscapePath3B
Escape Path3B
  Events
    Unit - A unit enters Escape_Path3B <gen>
  Conditions
    ((Entering unit) is in ExodusTroops.) Equal to True
  Actions
    Unit - Order (Entering unit) to Move To.PointEscapePath3C
Escape Path3C
  Events
    Unit - A unit enters Escape_Path3C <gen>
  Conditions
    ((Entering unit) is in ExodusTroops.) Equal to True
  Actions
    Unit - Order (Entering unit) to Move To.PointEscapePortalTarget
Escape Portal Tripwire
  Events
    Unit - A unit enters Escape_Portal_Tripwire <gen>
  Conditions
    ((Entering unit) is in ExodusUnits.) Equal to True
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Portal is alive) Equal to True
      Then - Actions
        -------- Forget Units --------
        Unit Group - Remove (Entering unit) from EngineerUnits.
        Unit Group - Remove (Entering unit) from ExodusPeasants.
        Unit Group - Remove (Entering unit) from ExodusTroops.
        Unit Group - Remove (Entering unit) from ExodusUnits.
        -------- Do Portal Effect --------
        Trigger - Run Escape_Effect <gen> (checking conditions)
        Wait 0.20 seconds
        -------- Remove the Unit --------
        Unit - Remove (Entering unit) from the game
      Else - Actions
        Unit - Turn collision for (Entering unit) On.
The portal supports up to two overlapping effects. Requests to overlap a third are ignored.
The portal effect won't play if its last effect was started just a split-second ago.
Escape Effect
  Events
  Conditions
    EscapeEffectRecent Equal to False
    (EscapeEffect01Busy Equal to False) or (EscapeEffect02Busy Equal to False)
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        EscapeEffect01Busy Equal to False
      Then - Actions
        Trigger - Run Escape_Effect_01 <gen> (checking conditions)
      Else - Actions
        Trigger - Run Escape_Effect_02 <gen> (checking conditions)
    Set VariableSet EscapeEffectRecent = True
    Wait 0.20 seconds
    Set VariableSet EscapeEffectRecent = False
Escape Effect 01
  Events
  Conditions
  Actions
    Set VariableSet EscapeEffect01Busy = True
    Special Effect - Create a special effect at PointEscapePortalEffect using Abilities\Spells\NightElf\Blink\BlinkTarget.mdl
    Sound - Play ShimmeringPortalEntrance <gen> at 85.00% volume, located at PointEscapePortalTarget with Z offset 0
    Set VariableSet EscapeEffect01 = (Last created special effect)
    Wait 0.85 seconds
    Special Effect - Destroy EscapeEffect01
    Sound - Stop ShimmeringPortalEntrance <gen> After fading
    Set VariableSet EscapeEffect01Busy = False
Escape Effect 02
  Events
  Conditions
  Actions
    Set VariableSet EscapeEffect02Busy = True
    Special Effect - Create a special effect at PointEscapePortalEffect using Abilities\Spells\NightElf\Blink\BlinkTarget.mdl
    Sound - Play ShimmeringPortalEntrance01 <gen> at 85.00% volume, located at PointEscapePortalTarget with Z offset 0
    Set VariableSet EscapeEffect02 = (Last created special effect)
    Wait 0.85 seconds
    Special Effect - Destroy EscapeEffect02
    Sound - Stop ShimmeringPortalEntrance01 <gen> After fading
    Set VariableSet EscapeEffect02Busy = False
CodeGen Init
  Events
    Map initialization
  Conditions
  Actions
    -------- -------------------- --------
    -------- The below options are for saving load codes to the Warcraft III folder. --------
    -------- You can modify the filename via the SaveLoad_Filename variable within the save trigger. --------
    -------- -------------------- --------
    Set VariableSet SaveLoad_SaveToDisk = True
    Set VariableSet SaveLoad_Directory = Save
    -------- -------------------- --------
    -------- Some configurables --------
    -------- -------------------- --------
    Set VariableSet SaveLoad_CheckName = False
    Set VariableSet SaveLoad_Security = True
    Set VariableSet SaveLoad_Alphabet = abcdefghkmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789
    Set VariableSet SaveLoad_HyphenSpace = 4
    Set VariableSet SaveLoad_SeperationChar = -
    Set VariableSet SaveLoad_Lower = |c002a4580
    Set VariableSet SaveLoad_Number = |cffffcc00
    Set VariableSet SaveLoad_Upper = |cff008000
    -------- -------------------- --------
    -------- Increase the value if you want to save bigger numbers --------
    -------- Decrease it if you want to generate a smaller save code but only be able to save smaller values --------
    -------- It's suggested to not increase it above 7 --------
    -------- -------------------- --------
    Set VariableSet SaveLoad_MaxValue = 6
    -------- -------------------- --------
    -------- Store all the heroes you want to be able to be saved below. --------
    -------- -------------------- --------
    Set VariableSet SaveLoad_Hero[0] = Blood Mage
    Set VariableSet SaveLoad_Hero[1] = Ravael
    Set VariableSet SaveLoad_Hero[2] = Naga Sea Witch
    Set VariableSet SaveLoad_HeroCount = 2
    -------- -------------------- --------
    -------- Store all the abilities you want to be able to be saved below. --------
    -------- -------------------- --------
    Set VariableSet SaveLoad_Abilities[0] = Flame Strike
    Set VariableSet SaveLoad_Abilities[1] = Siphon Mana
    Set VariableSet SaveLoad_Abilities[2] = |cff32cd32Fire Slam|r
    Set VariableSet SaveLoad_Abilities[3] = Summon Lava Spawn
    Set VariableSet SaveLoad_Abilities[4] = Meteor Strike
    Set VariableSet SaveLoad_Abilities[5] = Dark Soul
    Set VariableSet SaveLoad_Abilities[6] = Engulfing Chains
    Set VariableSet SaveLoad_Abilities[7] = Fire fury
    Set VariableSet SaveLoad_Abilities[8] = Forked Lightning
    Set VariableSet SaveLoad_Abilities[9] = Mana Shield
    Set VariableSet SaveLoad_Abilities[10] = Tornado
    Set VariableSet SaveLoad_Abilities[11] = Cold Arrows
    Set VariableSet SaveLoad_AbilityCount = 11
    -------- -------------------- --------
    -------- Store all the items you want to be able to be saved below. --------
    -------- -------------------- --------
    Set VariableSet SaveLoad_Item[0] = (Item-type of No item)
    Set VariableSet SaveLoad_Item[1] = Periapt of Vitality
    Set VariableSet SaveLoad_Item[2] = Scroll of Healing
    Set VariableSet SaveLoad_Item[3] = Scroll of Protection
    Set VariableSet SaveLoad_Item[4] = Ring of Protection +1
    Set VariableSet SaveLoad_Item[5] = Healing Wards
    Set VariableSet SaveLoad_Item[6] = Mantle of Intelligence +3
    Set VariableSet SaveLoad_Item[7] = Lion's Ring
    Set VariableSet SaveLoad_Item[8] = Orb of Fire
    Set VariableSet SaveLoad_Item[9] = Claws of Attack +3
    Set VariableSet SaveLoad_Item[10] = Claws of Attack +6
    Set VariableSet SaveLoad_Item[11] = Ring of Superiority
    Set VariableSet SaveLoad_Item[12] = Ring of Protection +2
    Set VariableSet SaveLoad_Item[13] = Ring of Regeneration
    Set VariableSet SaveLoad_Item[14] = Maul of Strength
    Set VariableSet SaveLoad_Item[15] = Medallion of Courage
    Set VariableSet SaveLoad_Item[16] = Frost Wyrm Skull Shield
    Set VariableSet SaveLoad_Item[17] = Ring of the Archmagi (version 1)
    Set VariableSet SaveLoad_Item[18] = Ring of the Archmagi (version 3)
    Set VariableSet SaveLoad_Item[19] = Ring of the Archmagi (version 4)
    Set VariableSet SaveLoad_Item[20] = Ring of the Archmagi (version 2)
    Set VariableSet SaveLoad_Item[21] = Essence of Aszune
    Set VariableSet SaveLoad_ItemCount = 22
    -------- -------------------- --------
    -------- Don't modify below this line. --------
    -------- This is just here to copy variables to your map --------
    -------- -------------------- --------
    Set VariableSet SaveLoad_Full = SaveLoad_Alphabet
    Set VariableSet SaveLoad_Error =
    Set VariableSet SaveLoad_Base = (Length of SaveLoad_Alphabet)
    Set VariableSet SaveLoad_Char[0] =
    Set VariableSet Load[0] = 0
    Set VariableSet LoadCount = 0
    Custom script: call CodeGen_Init()
CodeGen Save
  Events
    Player - Player 1 (Red) types a chat message containing -save (stringnoformat) as An exact match
    Player - Player 10 (Light Blue) types a chat message containing -save (stringnoformat) as An exact match
  Conditions
  Actions
    -------- -------------------- --------
    -------- Find the players hero, and save it. I realize it leaks but it's just for demonstration. --------
    -------- -------------------- --------
    Set VariableSet SaveCount = 0
    Unit Group - Pick every unit in (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True).) and do (Set VariableSet Hero = (Picked unit))
    Custom script: set udg_Save[udg_SaveCount] = CodeGen_ConvertUnit(GetUnitTypeId(udg_Hero))
    -------- -------------------- --------
    -------- Save heroes level. --------
    -------- -------------------- --------
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = (Hero level of Hero)
    -------- -------------------- --------
    -------- Save players gold. --------
    -------- -------------------- --------
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = ((Triggering player) Current gold)
    -------- -------------------- --------
    -------- Save heroes items. --------
    -------- -------------------- --------
    For each (Integer A) from 1 to 7, do (Actions)
      Loop - Actions
        Set VariableSet SaveCount = (SaveCount + 1)
        Set VariableSet Item = (Item carried by Hero in slot (Integer A))
        Custom script: set udg_Save[udg_SaveCount] = CodeGen_ConvertItem(GetItemTypeId(udg_Item))
    -------- -------------------- --------
    -------- Set the filename for where the loadcode will be stored. --------
    -------- -------------------- --------
    Set VariableSet SaveLoad_Directory = Save
    Set VariableSet SaveLoad_Filename = (((YourMap) + (Name of (Triggering player))) + ('s + ( + (((Name of Hero) + ) + .txt))))
    -------- -------------------- --------
    -------- Show Code --------
    -------- -------------------- --------
    Custom script: set udg_Code = CodeGen_Compile()
    Game - Display to (Player group((Triggering player))) for 60.00 seconds the text: Code
CodeGen Load
  Events
    Player - Player 1 (Red) types a chat message containing -load (stringnoformat) as A substring
    Player - Player 10 (Light Blue) types a chat message containing -load (stringnoformat) as A substring
  Conditions
    (String((Substring((Entered chat string), 1, 6))) as Lower case.) Equal to -load
  Actions
    -------- -------------------- --------
    -------- Check if load is valid --------
    -------- -------------------- --------
    Set VariableSet Code = (Substring((Entered chat string), 7, 999))
    Custom script: call CodeGen_Load(udg_Code)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        SaveLoad_Valid Equal to False
      Then - Actions
        Game - Display to (Player group((Triggering player))) for 10.00 seconds the text: SaveLoad_Error
        Skip remaining actions
      Else - Actions
    -------- -------------------- --------
    -------- We being with loading the hero first (because that's what we saved first). --------
    -------- -------------------- --------
    Set VariableSet LoadCount = 0
    Unit Group - Pick every unit in (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True).) and do (Remove (Picked unit) from the game)
    Unit - Create 1.SaveLoad_Hero[Load[LoadCount]] for (Triggering player) at ((Triggering player) start location) facing Default building facing degrees
    Set VariableSet Hero = (Last created unit)
    Selection - Select (Last created unit) for (Triggering player)
    -------- -------------------- --------
    -------- Load heroes level --------
    -------- -------------------- --------
    Set VariableSet LoadCount = (LoadCount + 1)
    Hero - Set (Last created unit) Hero-level to Load[LoadCount], Hide level-up graphics
    -------- -------------------- --------
    -------- Now load players gold --------
    -------- -------------------- --------
    Set VariableSet LoadCount = (LoadCount + 1)
    Player - Set (Triggering player).Current gold to Load[LoadCount]
    -------- -------------------- --------
    -------- Now items --------
    -------- -------------------- --------
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        Set VariableSet LoadCount = (LoadCount + 1)
        Hero - Create SaveLoad_Item[Load[LoadCount]] and give it to Hero
Leaderboard Create
  Events
  Conditions
    PortalLeaderboardCreated Equal to False
  Actions
    Set VariableSet PortalLeaderboardCreated = True
    -------- Create Leaderboard --------
    Leaderboard - Create a leaderboard for (All players) titled
    Set VariableSet PortalLeaderboard = (Last created leaderboard)
    Leaderboard - Change the display style for PortalLeaderboard to Hide the title, Show labels, Show values, and Hide icons
    -------- Add Entry --------
    Leaderboard - Add Player 1 (Red) to PortalLeaderboard with label Wytrz. Portalu % and value 0
    Leaderboard - Change the color of the label for Player 1 (Red) in PortalLeaderboard to (100%, 80%, 20%) with 0% transparency
    Leaderboard - Change the color of the value for Player 1 (Red) in PortalLeaderboard to (100%, 100.00%, 100.00%) with 0.00% transparency
    Trigger - Run Leaderboard_Update <gen> (checking conditions)
    -------- Add Entry --------
    Leaderboard - Add Player 2 (Blue) to PortalLeaderboard with label Pozostałe grupy: and value 0
    Leaderboard - Change the color of the label for Player 2 (Blue) in PortalLeaderboard to (100%, 80%, 20%) with 0% transparency
    Leaderboard - Change the color of the value for Player 2 (Blue) in PortalLeaderboard to (100%, 100.00%, 100.00%) with 0.00% transparency
    Trigger - Run Leaderboard_Update <gen> (checking conditions)
    -------- Add Entry --------
    Leaderboard - Add Player 3 (Teal) to PortalLeaderboard with label __________________ and value 0
    Leaderboard - Change the color of the label for Player 3 (Teal) in PortalLeaderboard to (100%, 80.00%, 20.00%) with 0% transparency
    Leaderboard - Change the color of the value for Player 3 (Teal) in PortalLeaderboard to (100%, 80%, 20%) with 100.00% transparency
    -------- Add Entry --------
    Leaderboard - Add Player 4 (Purple) to PortalLeaderboard with label Najlepsze wyniki and value 0
    Leaderboard - Change the color of the label for Player 4 (Purple) in PortalLeaderboard to (100%, 100.00%, 100.00%) with 0% transparency
    Leaderboard - Change the color of the value for Player 4 (Purple) in PortalLeaderboard to (100%, 80%, 20%) with 100.00% transparency
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        HighScoreEasy Greater than 0
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            HighScoreEasy Equal to 31
          Then - Actions
            Leaderboard - Add Player 5 (Yellow) to PortalLeaderboard with label Poziom łatwy ukończony! and value HighScoreEasy
            Leaderboard - Change the color of the label for Player 5 (Yellow) in PortalLeaderboard to (100.00%, 80.00%, 20.00%) with 0% transparency
            Leaderboard - Change the color of the value for Player 5 (Yellow) in PortalLeaderboard to (0.00%, 100.00%, 0.00%) with 100.00% transparency
          Else - Actions
            Leaderboard - Add Player 5 (Yellow) to PortalLeaderboard with label Poz. łatwy and value HighScoreEasy
            Leaderboard - Change the color of the label for Player 5 (Yellow) in PortalLeaderboard to (0.00%, 100.00%, 0.00%) with 0% transparency
            Leaderboard - Change the color of the value for Player 5 (Yellow) in PortalLeaderboard to (0.00%, 100.00%, 0.00%) with 0.00% transparency
      Else - Actions
    -------- Add Entry --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        HighScoreNormal Greater than 0
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            HighScoreNormal Equal to 31
          Then - Actions
            Leaderboard - Add Player 6 (Orange) to PortalLeaderboard with label Poziom normalny ukończony! and value HighScoreNormal
            Leaderboard - Change the color of the label for Player 6 (Orange) in PortalLeaderboard to (100.00%, 80.00%, 20.00%) with 0% transparency
            Leaderboard - Change the color of the value for Player 6 (Orange) in PortalLeaderboard to (0.00%, 0.00%, 100.00%) with 100.00% transparency
          Else - Actions
            Leaderboard - Add Player 6 (Orange) to PortalLeaderboard with label Poz. normalny and value HighScoreNormal
            Leaderboard - Change the color of the label for Player 6 (Orange) in PortalLeaderboard to (0.00%, 0.00%, 100.00%) with 0% transparency
            Leaderboard - Change the color of the value for Player 6 (Orange) in PortalLeaderboard to (0.00%, 0.00%, 100.00%) with 0.00% transparency
      Else - Actions
    -------- Add Entry --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        HighScoreHard Greater than 0
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            HighScoreHard Equal to 31
          Then - Actions
            Leaderboard - Add Player 7 (Green) to PortalLeaderboard with label Poziom trudny ukończony! and value HighScoreHard
            Leaderboard - Change the color of the label for Player 7 (Green) in PortalLeaderboard to (100.00%, 80.00%, 20.00%) with 0% transparency
            Leaderboard - Change the color of the value for Player 7 (Green) in PortalLeaderboard to (100.00%, 0.00%, 0.00%) with 100.00% transparency
          Else - Actions
            Leaderboard - Add Player 7 (Green) to PortalLeaderboard with label Poz. trudny and value HighScoreHard
            Leaderboard - Change the color of the label for Player 7 (Green) in PortalLeaderboard to (100.00%, 0.00%, 0.00%) with 0% transparency
            Leaderboard - Change the color of the value for Player 7 (Green) in PortalLeaderboard to (100.00%, 0.00%, 0.00%) with 0.00% transparency
      Else - Actions
    Trigger - Run Leaderboard_Update <gen> (checking conditions)
    -------- Show Leaderboard --------
    Leaderboard - Show PortalLeaderboard
Leaderboard Update
  Events
    Time - Every 0.50 seconds of game time
  Conditions
    PortalLeaderboardCreated Equal to True
  Actions
    Set VariableSet PortalLifePercent = (Percentage life of Portal)
    Leaderboard - Change the value for Player 1 (Red) in PortalLeaderboard to (Integer(PortalLifePercent))
    Leaderboard - Change the value for Player 2 (Blue) in PortalLeaderboard to WavesRemainingInt
    Trigger - Run Leaderboard_Update_Color_01 <gen> (checking conditions)
    Trigger - Run Leaderboard_Update_Color_02 <gen> (checking conditions)
Leaderboard Update Color 01
  Events
  Conditions
    ((This trigger) is on) Equal to True
    PortalLifePercent Less than 40.00
  Actions
    Trigger - Turn off (This trigger)
    Leaderboard - Change the color of the value for Player 1 (Red) in PortalLeaderboard to (100%, 30.00%, 0.00%) with 0% transparency
Leaderboard Update Color 02
  Events
  Conditions
    ((This trigger) is on) Equal to True
    PortalLifePercent Less than 20.00
  Actions
    Trigger - Turn off (This trigger)
    Leaderboard - Change the color of the value for Player 1 (Red) in PortalLeaderboard to (100%, 0.00%, 0.00%) with 0% transparency
About the comments :
<< >> means that the settings of the following action(s) can be changed.
XX XX means that the settings of the following action(s) are not recommended to be changed.
[[ ]] means that the settings of the following action(s) may have to be modified for importation reasons.
Fire Fury Cast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Fire fury
  Actions
    -------- --------------------------------------------------------------------- --------
    -------- PART ONE - Casting Initialization & Level Settings --------
    -------- --------------------------------------------------------------------- --------
    -------- XX Sets temporary locs XX --------
    Set VariableSet FF_TempPoint1 = (Position of (Triggering unit))
    Set VariableSet FF_TempPoint2 = (Target point of ability being cast)
    -------- << Sets minimal distance (default : 0.00 (= none)) >> --------
    -------- It is recommended to set it as the same as the AoE effect (default = 200.00) to prevent any abuse --------
    Set VariableSet FF_MinimalDistance = 0.00
    -------- XX Checks for minimal distance XX --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Distance between FF_TempPoint1 and FF_TempPoint2) Less than FF_MinimalDistance
      Then - Actions
        -------- XX Sets the sound & message error player XX --------
        Custom script: if GetLocalPlayer() == GetOwningPlayer(GetTriggerUnit()) then
        -------- << Sets the error sound played >> --------
        Sound - Play No sound
        -------- << Sets the error message displayed >> --------
        Game - Display to (All players) the text:
        -------- XX Removes the player error condition XX --------
        Custom script: endif
        -------- XX Stops the caster XX --------
        Unit - Order (Triggering unit) to Stop.
        -------- XX Skips remaining actions and cancels the spell XX --------
        Skip remaining actions
      Else - Actions
    -------- XX Removes loc leaks XX --------
    Custom script: call RemoveLocation(udg_FF_TempPoint1)
    Custom script: call RemoveLocation(udg_FF_TempPoint2)
    -------- XX Adds one more spell XX --------
    Set VariableSet FF_Integer1 = (FF_Integer1 + 1)
    -------- XX Sets the Caster XX --------
    Set VariableSet FF_Caster[FF_Integer1] = (Triggering unit)
    -------- << Sets the distance between the Caster and the fireballs spawning location >> --------
    Set VariableSet FF_DistanceCast = 60.00
    -------- Level Settings --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Level of (Ability being cast) for FF_Caster[FF_Integer1]) Equal to 1
      Then - Actions
        -------- << Sets the damages once a fireball hits a single target >> --------
        Set VariableSet FF_SingleDamages[FF_Integer1] = 50.00
        -------- << Sets the damages when the fireballs collide with each other (AoE) >> --------
        Set VariableSet FF_AoEDamages[FF_Integer1] = 79.00
        -------- << Sets the size of the final AoE effect if the fireballs collide with each other >> --------
        Set VariableSet FF_FinalAoE[FF_Integer1] = 80.00
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Level of (Ability being cast) for FF_Caster[FF_Integer1]) Equal to 2
      Then - Actions
        Set VariableSet FF_SingleDamages[FF_Integer1] = 75.00
        Set VariableSet FF_AoEDamages[FF_Integer1] = 100.00
        Set VariableSet FF_FinalAoE[FF_Integer1] = 120.00
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Level of (Ability being cast) for FF_Caster[FF_Integer1]) Equal to 3
      Then - Actions
        Set VariableSet FF_SingleDamages[FF_Integer1] = 115.00
        Set VariableSet FF_AoEDamages[FF_Integer1] = 230.00
        Set VariableSet FF_FinalAoE[FF_Integer1] = 200.00
      Else - Actions
    -------- --------------------------------------------------------------------- --------
    -------- PART TWO : Dummy Unit setup --------
    -------- --------------------------------------------------------------------- --------
    -------- XX Sets temporary locs XX --------
    Set VariableSet FF_TempPoint1 = (Position of FF_Caster[FF_Integer1])
    Set VariableSet FF_TempPoint2 = (Target point of ability being cast)
    -------- XX Sets the angle between the Caster and the targeted area XX --------
    Set VariableSet FF_Angle[FF_Integer1] = (Angle from FF_TempPoint1 to FF_TempPoint2)
    -------- XX Sets temporary loc XX --------
    Set VariableSet FF_TempPoint3 = (FF_TempPoint1 offset by FF_DistanceCast towards FF_Angle[FF_Integer1] degrees.)
    -------- [[ Creates and sets the dummy which will move in a straight line ]] --------
    Unit - Create 1.Fireball for (Owner of FF_Caster[FF_Integer1]) at FF_TempPoint3 facing Default building facing degrees
    Set VariableSet FF_DummyUnit[FF_Integer1] = (Last created unit)
    -------- XX Removes loc leaks XX --------
    Custom script: call RemoveLocation(udg_FF_TempPoint1)
    Custom script: call RemoveLocation(udg_FF_TempPoint2)
    Custom script: call RemoveLocation(udg_FF_TempPoint3)
    -------- --------------------------------------------------------------------- --------
    -------- PART THREE : Fireballs setup --------
    -------- --------------------------------------------------------------------- --------
    -------- << Sets the starting distance between the two fireballs (actually, between the dummy and the fireball itself, so (Distance between fireballs/2)) >> --------
    Set VariableSet FF_FireBallDistanceInit = 50.00
    -------- XX Sets temporary locs XX --------
    Set VariableSet FF_TempPoint1 = (Position of FF_DummyUnit[FF_Integer1])
    Set VariableSet FF_TempPoint2 = (FF_TempPoint1 offset by FF_FireBallDistanceInit towards (FF_Angle[FF_Integer1] + 90.00) degrees.)
    Set VariableSet FF_TempPoint3 = (FF_TempPoint1 offset by FF_FireBallDistanceInit towards (FF_Angle[FF_Integer1] - 90.00) degrees.)
    -------- [[ Spawns and sets fireballs ]] --------
    Unit - Create 1.Fireball for (Owner of FF_Caster[FF_Integer1]) at FF_TempPoint2 facing FF_Angle[FF_Integer1] degrees
    Set VariableSet FF_FireBall1[FF_Integer1] = (Last created unit)
    Unit - Create 1.Fireball for (Owner of FF_Caster[FF_Integer1]) at FF_TempPoint3 facing FF_Angle[FF_Integer1] degrees
    Set VariableSet FF_FireBall2[FF_Integer1] = (Last created unit)
    -------- XX Removes loc leaks XX --------
    Custom script: call RemoveLocation(udg_FF_TempPoint1)
    Custom script: call RemoveLocation(udg_FF_TempPoint2)
    Custom script: call RemoveLocation(udg_FF_TempPoint3)
    -------- --------------------------------------------------------------------- --------
    -------- PART FOUR : Data & Visual Settings --------
    -------- --------------------------------------------------------------------- --------
    -------- XX Sets temporary locs XX --------
    Set VariableSet FF_TempPoint1 = (Position of FF_DummyUnit[FF_Integer1])
    Set VariableSet FF_TempPoint2 = (Target point of ability being cast)
    -------- XX Sets the distance between the caster and the targeted area XX --------
    Set VariableSet FF_FullDistance[FF_Integer1] = (Distance between FF_TempPoint1 and FF_TempPoint2)
    -------- << Sets if allowed to keep moving even if hitting a single target >> --------
    Set VariableSet FF_AllowedToKeepMoving[FF_Integer1] = True
    -------- << Sets the fireballs AoE size >> --------
    Set VariableSet FF_FireBallAoE[FF_Integer1] = 75.00
    -------- << Sets if the fireballs will hit (deals damages to) buildings, go through, or disappear once they hit one >> --------
    Set VariableSet FF_HitBuildings[FF_Integer1] = True
    Set VariableSet FF_GoThroughBuildings[FF_Integer1] = False
    -------- << Sets if the final explosion will hit buildings >> --------
    Set VariableSet FF_BuildingAoE[FF_Integer1] = False
    -------- << Sets if the fireballs will destroy trees, go through, or disappear once they hit one >> --------
    Set VariableSet FF_KillTrees[FF_Integer1] = True
    Set VariableSet FF_GoThroughTrees[FF_Integer1] = True
    -------- << Sets if the final explosion will destroy trees >> --------
    Set VariableSet FF_KillTreesAoE[FF_Integer1] = False
    -------- << Sets if allowed to go through water >> --------
    Set VariableSet FF_AllowWater[FF_Integer3] = False
    -------- << Sets if allowed to fly over cliffs & doodads >> --------
    Set VariableSet FF_AllowCliffs[FF_Integer1] = False
    -------- << Sets the fireballs height >> --------
    Animation - Change FF_FireBall1[FF_Integer1] flying height to 60.00 at 0.00
    Animation - Change FF_FireBall2[FF_Integer1] flying height to 60.00 at 0.00
    -------- << Sets the special effect if a fireball hits an ennemy >> --------
    Set VariableSet FF_SingleUnitEffect[FF_Integer1] = Abilities\Weapons\FireBallMissile\FireBallMissile.mdl
    -------- << Sets the explosion effect if the fireballs collide >> --------
    Set VariableSet FF_ExplosionEffect[FF_Integer1] = Abilities\Spells\Other\Doom\DoomDeath.mdl
    -------- << Sets the fireballs speed >> --------
    Set VariableSet FF_FireBallSpeed[FF_Integer1] = 15.00
    -------- XX Sets the additionnal distance for the fireballs in the arc effect XX --------
    Set VariableSet FF_FireBallAdditionnalDistance[FF_Integer1] = FF_FireBallDistanceInit
    -------- << Sets the arc of the fireballs >> --------
    Set VariableSet FF_FireBallArc[FF_Integer1] = 0.15
    -------- XX Sets the arc settings for the fireballs XX --------
    Set VariableSet FF_FireBallArcSettings[FF_Integer1] = (FF_FullDistance[FF_Integer1] x FF_FireBallArc[FF_Integer1])
    -------- XX Resets distance reached XX --------
    Set VariableSet FF_DistanceReached[FF_Integer1] = 0.00
    -------- XX Resets real timer for arc effect XX --------
    Set VariableSet FF_RealTimer[FF_Integer1] = 0.00
    -------- XX Marks as undone XX --------
    Set VariableSet FF_Done[FF_Integer1] = False
    -------- XX Removes loc leaks XX --------
    Custom script: call RemoveLocation(udg_FF_TempPoint1)
    Custom script: call RemoveLocation(udg_FF_TempPoint2)
    -------- XX Setup ending : checks if the loop trigger is already running XX --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        FF_Integer2 Equal to 0
      Then - Actions
        Trigger - Turn on Fire_Fury_Loop <gen>
      Else - Actions
    Set VariableSet FF_Integer2 = (FF_Integer2 + 1)
Fire Fury Loop
  Events
    Time - Every 0.03 seconds of game time
  Conditions
  Actions
    For each (Integer FF_Integer3) from 1 to FF_Integer1, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            FF_Done[FF_Integer3] Equal to False
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                FF_DistanceReached[FF_Integer3] Less than FF_FullDistance[FF_Integer3]
              Then - Actions
                Set VariableSet FF_DistanceReached[FF_Integer3] = (FF_DistanceReached[FF_Integer3] + FF_FireBallSpeed[FF_Integer3])
                Set VariableSet FF_TempPoint1 = (Position of FF_DummyUnit[FF_Integer3])
                Set VariableSet FF_TempPoint2 = (FF_TempPoint1 offset by FF_FireBallSpeed[FF_Integer3] towards FF_Angle[FF_Integer3] degrees.)
                Unit - Move FF_DummyUnit[FF_Integer3] instantly to FF_TempPoint2
                Custom script: call RemoveLocation(udg_FF_TempPoint1)
                Custom script: call RemoveLocation(udg_FF_TempPoint2)
                Set VariableSet FF_RealTimer[FF_Integer3] = (FF_RealTimer[FF_Integer3] + (180.00 / (FF_FullDistance[FF_Integer3] / FF_FireBallSpeed[FF_Integer3])))
                Set VariableSet FF_FireBallDistance[FF_Integer3] = ((Sin(FF_RealTimer[FF_Integer3])) x FF_FireBallArcSettings[FF_Integer3])
                Set VariableSet FF_FireBallTempAdd[FF_Integer3] = ((FF_FullDistance[FF_Integer3] - FF_DistanceReached[FF_Integer3]) x (FF_FireBallAdditionnalDistance[FF_Integer3] / 666.00))
                Set VariableSet FF_FireBallDistance[FF_Integer3] = (FF_FireBallDistance[FF_Integer3] + FF_FireBallTempAdd[FF_Integer3])
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (FF_FireBall1[FF_Integer3] is alive) Equal to True
                  Then - Actions
                    Set VariableSet FF_TempPoint1 = (Position of FF_DummyUnit[FF_Integer3])
                    Set VariableSet FF_TempPoint2 = (FF_TempPoint1 offset by FF_FireBallDistance[FF_Integer3] towards (FF_Angle[FF_Integer3] + 90.00) degrees.)
                    Set VariableSet FF_TempPoint3 = (Position of FF_FireBall1[FF_Integer3])
                    Unit - Move FF_FireBall1[FF_Integer3] instantly to FF_TempPoint2, facing (Angle from FF_TempPoint3 to FF_TempPoint1) degrees
                    Set VariableSet FF_TempGroup = (Units within FF_FireBallAoE[FF_Integer3] of FF_TempPoint3 matching ((((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and ((((Matching unit) belongs to an enemy of (Owner of FF_Caster[FF_Integer3]).) Equal to True) and (((Matching unit) is A flying unit) Equal to False))) and (((Matching unit) is Magic Immune) Equal to False)).)
                    Unit Group - Pick every unit in FF_TempGroup and do (Actions)
                      Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            (FF_FireBall1[FF_Integer3] is alive) Equal to True
                            ((Picked unit) is in FF_GroupFireBall1[FF_Integer3].) Equal to False
                          Then - Actions
                            Unit Group - Add (Picked unit) to FF_GroupFireBall1[FF_Integer3]
                            Unit - Cause FF_Caster[FF_Integer3] to damage (Picked unit), dealing FF_SingleDamages[FF_Integer3] damage of attack type Spells and damage type Fire
                            Special Effect - Create a special effect attached to the chest (attachpoint) of (Picked unit) using FF_SingleUnitEffect[FF_Integer3]
                            Special Effect - Destroy (Last created special effect)
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              If - Conditions
                                FF_AllowedToKeepMoving[FF_Integer3] Equal to False
                              Then - Actions
                                Unit - Remove FF_FireBall1[FF_Integer3] from the game
                                Unit Group - Remove all units from FF_GroupFireBall1[FF_Integer3].
                              Else - Actions
                          Else - Actions
                    Custom script: call DestroyGroup(udg_FF_TempGroup)
                    Destructible - Pick every destructible within FF_FireBallAoE[FF_Integer3] of FF_TempPoint3 and do (Actions)
                      Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            FF_KillTrees[FF_Integer3] Equal to True
                          Then - Actions
                            Destructible - Kill (Picked destructible)
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              If - Conditions
                                FF_GoThroughTrees[FF_Integer3] Equal to False
                              Then - Actions
                                Unit - Kill FF_FireBall1[FF_Integer3]
                              Else - Actions
                          Else - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        (Terrain pathing at FF_TempPoint3 of type Amphibious Pathing is off) Equal to True
                      Then - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            FF_AllowWater[FF_Integer3] Equal to False
                          Then - Actions
                            Unit - Kill FF_FireBall1[FF_Integer3]
                          Else - Actions
                      Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            (Terrain pathing at FF_TempPoint3 of type Walkability is off) Equal to True
                            FF_AllowCliffs[FF_Integer3] Equal to False
                          Then - Actions
                            Unit - Kill FF_FireBall1[FF_Integer3]
                          Else - Actions
                    Set VariableSet FF_TempGroup = (Units within FF_FireBallAoE[FF_Integer3] of FF_TempPoint3 matching ((((Matching unit) is A structure) Equal to True) and (((Matching unit) is alive) Equal to True)).)
                    Unit Group - Pick every unit in FF_TempGroup and do (Actions)
                      Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            (FF_FireBall1[FF_Integer3] is alive) Equal to True
                            FF_HitBuildings[FF_Integer3] Equal to True
                          Then - Actions
                            Unit Group - Add (Picked unit) to FF_GroupFireBall1[FF_Integer3]
                            Unit - Cause FF_Caster[FF_Integer3] to damage (Picked unit), dealing FF_SingleDamages[FF_Integer3] damage of attack type Spells and damage type Fire
                            Special Effect - Create a special effect at FF_TempPoint3 using FF_SingleUnitEffect[FF_Integer3]
                            Special Effect - Destroy (Last created special effect)
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              If - Conditions
                                FF_GoThroughBuildings[FF_Integer3] Equal to False
                              Then - Actions
                                Unit - Remove FF_FireBall1[FF_Integer3] from the game
                                Unit Group - Remove all units from FF_GroupFireBall1[FF_Integer3].
                              Else - Actions
                          Else - Actions
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              If - Conditions
                                FF_GoThroughBuildings[FF_Integer3] Equal to False
                              Then - Actions
                                Special Effect - Create a special effect at FF_TempPoint3 using FF_SingleUnitEffect[FF_Integer3]
                                Special Effect - Destroy (Last created special effect)
                                Unit - Remove FF_FireBall1[FF_Integer3] from the game
                                Unit Group - Remove all units from FF_GroupFireBall1[FF_Integer3].
                              Else - Actions
                    Custom script: call DestroyGroup(udg_FF_TempGroup)
                    Custom script: call RemoveLocation(udg_FF_TempPoint1)
                    Custom script: call RemoveLocation(udg_FF_TempPoint2)
                    Custom script: call RemoveLocation(udg_FF_TempPoint3)
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (FF_FireBall2[FF_Integer3] is alive) Equal to True
                  Then - Actions
                <