// mvm_gd_caster mission: Hiring and Firing // Authors: DoMess (concept, programming and testing), randomguy & Jack5 (assistance) // Difficulty: Normal (6 players, built for) // Difficulty: Nightmare (2 players) // harder than Expert // DoMess' Features: // - No starting money andd no money given throughout the mission // - Custom Robots (given) // - Custom Events (given) #base robot_caster.pop WaveSchedule { StartingCurrency 0 // No starting money RespawnWaveTime 0 FixedRespawnWaveTime Yes CanBotsAttackWhileInSpawnRoom No AddSentryBusterWhenDamageDealtExceeds 7500 AddSentryBusterWhenKillCountExceeds 25 // MaxRedPlayers 2 // Sigsegv maximum RED players override Mission { Objective DestroySentries InitialCooldown 90 Where spawnbot Where spawnbot_gate BeginAtWave 1 RunForThisManyWaves 8 CooldownTime 90 TFBot { Template T_Caster_SentryBuster } } // ---------------------------------------------------------------------- // Wave 1 ($0 + $0 (this wave) + $0 (bonus) = $0) // Group 1: 20 Bottle Demomen on the bottom floor coming from both enterances // Group 2: 20 Dragons Fury Pyros on the bottom floor, both left and right Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } InitWaveOutput { Target wave_pathmodels_bottom // triggers holograms on bottom floor Action Trigger } WaveSpawn { // Demo Bottle, bottom floor / going left Name "wave1-group1" TotalCount 10 SpawnCount 3 MaxActive 10 Where spawnbot Where spawnbot_gate WaitBetweenSpawns 10 TFBot { Template T_Caster_DemoBottle Tag nav_prefer_left } } WaveSpawn { // Demo Bottle, bottom floor / going right Name "wave1-group1" TotalCount 10 SpawnCount 3 MaxActive 10 Where spawnbot Where spawnbot_gate WaitBetweenSpawns 10 TFBot { Template T_Caster_DemoBottle Tag nav_prefer_right } } WaveSpawn { // Dragon Fury Pyros, bottom floor / going left Name "wave1-group2" TotalCount 10 SpawnCount 2 MaxActive 5 Where spawnbot Where spawnbot_gate WaitForAllDead "wave1-group1" WaitBeforeStarting 15 WaitBetweenSpawns 10 TFBot { Template T_Caster_PyroDragon Tag nav_prefer_left } } WaveSpawn { // Dragon Fury Pyros, bottom floor / going right Name "wave1-group2" TotalCount 10 SpawnCount 2 MaxActive 5 Where spawnbot Where spawnbot_gate WaitForAllDead "wave1-group1" WaitBeforeStarting 15 WaitBetweenSpawns 10 TFBot { Template T_Caster_PyroDragon Tag nav_prefer_right } } WaveSpawn { // Flare Pyro, top floor / going right Name "wave1-support" TotalCount 999 SpawnCount 2 MaxActive 4 Where spawnbot_top Where spawnbot_gate WaitForAllDead "wave1-group1" WaitBeforeStarting 1 WaitBetweenSpawns 9 Support 1 TFBot { Template T_Caster_PyroFlare Tag nav_prefer_top_right } } WaveSpawn { // Heavy KGB, top floor / going left Name "wave1-support" TotalCount 999 SpawnCount 2 MaxActive 2 Where spawnbot_top Where spawnbot_gate WaitForAllDead "wave1-group1" WaitBeforeStarting 1 WaitBetweenSpawns 9 Support 1 TFBot { Template T_Caster_HeavyBoxing Tag nav_prefer_top_left } } } // ---------------------------------------------------------------------- // Wave 2 ($0 + $0 (this wave) + $0 (bonus) = $0) // Group 1: [SQUAD] 10 Bushwacka Snipers and 10 Pyro Gas spawn bot left // Group 2: 12 Fish Scouts spawn bot right // Group 3: [RNDCHOICE] 20 Melee Soldiers spawn bot left // Group 4: [RNDCHOICE] 20 Dragons Fury pyros spawn bot right // SUPPORT: Gas Passer Pyros spawn top left Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } InitWaveOutput { Target wave_pathmodels_bottom // triggers holograms on bottom floor Action Trigger } WaveSpawn { // [SQUAD] 10 Bushwacka Snipers and 10 Pyro Gas spawn bot left Name "wave2-group1" TotalCount 20 SpawnCount 4 MaxActive 10 Where spawnbot Where spawnbot_gate WaitBetweenSpawns 10 Squad { FormationSize 2 // will hold them together tight & loosely TFBot{ Template T_Caster_SniperBush Tag nav_prefer_left } TFBot{ Template T_Caster_PyroGas Tag nav_prefer_left } } } WaveSpawn { // 12 Fish Scouts spawn bot right Name "wave2-group2" TotalCount 12 SpawnCount 12 MaxActive 12 Where spawnbot Where spawnbot_gate WaitForAllDead "wave2-group1" WaitBeforeStarting 3 TFBot { Template T_Caster_ScoutFish Tag nav_prefer_right } } WaveSpawn { // [RNDCHOICE] 20 Melee Soldiers spawn bot left Name "wave2-group3" TotalCount 20 SpawnCount 1 MaxActive 5 Where spawnbot Where spawnbot_gate WaitForAllDead "wave2-group2" WaitBeforeStarting 15 WaitBetweenSpawns 2.5 RandomChoice { TFBot{ Template T_Caster_SoldierShovel Health 150 Tag nav_prefer_left } TFBot{ Template T_Caster_SoldierShovel Health 300 Tag nav_prefer_left } TFBot{ Template T_Caster_SoldierShovel Health 450 Tag nav_prefer_left } } } WaveSpawn { // [RNDCHOICE] 20 Dragons Fury pyros spawn bot right Name "wave2-group4" TotalCount 20 SpawnCount 2 MaxActive 5 Where spawnbot Where spawnbot_gate WaitForAllDead "wave2-group3" WaitBeforeStarting 15 WaitBetweenSpawns 4 RandomChoice { TFBot{ Template T_Caster_PyroDragon Skill Easy Tag nav_prefer_right } TFBot{ Template T_Caster_PyroDragon Skill Normal Tag nav_prefer_right } TFBot{ Template T_Caster_PyroDragon Skill Hard Tag nav_prefer_right } } } WaveSpawn { // SUPPORT: Gas Passer Pyros spawn top left Name "wave2-support" TotalCount 999 SpawnCount 1 MaxActive 1 Where spawnbot_top Where spawnbot_gate WaitForAllDead "wave2-group1" WaitBeforeStarting 5 WaitBetweenSpawns 15 Support 1 TFBot { Template T_Caster_PyroGas Tag nav_prefer_top_left } } } // ---------------------------------------------------------------------- // Wave 3 ($0 + $0 (this wave) + $0 (bonus) = $0) // Group 1: 10 Heavies spawn bot left and right // Tank 1: [TANK] 12000 HP, 50HU // Group 2: [SQUAD] Melee Squad, 10 KGB, 10 Evicition and 10 Fists of Steel // EVENT Trigger: Toxic (aka Lava) // Group 3: 2 Dragon Fury Pyro Bosses spawn both bottom left and right with altered HP // EVENT Trigger: End of Toxic // SUPPORT: Quick-Fix Medic, Crits Medic, Shotgun and Shotgun Mobster Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } InitWaveOutput { Target wave_pathmodels_bottom // triggers holograms on bottom floor Action Trigger } WaveSpawn { // For wavebar icon of Molten Metal in the support section Support Limited TotalCount 1 Where spawnbot_money // spawns into a deathpit? WaitForAllSpawned "wave3-group3" // Will not take up an extra bot slot TotalCurrency 0 TFBot { Class Scout ClassIcon caster_toxic } } WaveSpawn { // 5 Heavies spawn bot right Name "wave3-group1" TotalCount 5 SpawnCount 1 MaxActive 2 Where spawnbot Where spawnbot_gate WaitBetweenSpawns 5 TFBot{ Template T_Caster_Heavy Health 175 // Heavies are too strong for normal mission Tag nav_prefer_right } } WaveSpawn { // 5 Heavies spawn bot left Name "wave3-group1" TotalCount 5 SpawnCount 1 MaxActive 2 Where spawnbot Where spawnbot_gate WaitBetweenSpawns 5 TFBot{ Template T_Caster_Heavy Health 175 // Heavies are too strong for normal mission Tag nav_prefer_left } } WaveSpawn { // Tank 1: [TANK] 12000 HP, 50HU WaitForAllSpawned "wave3-group1" WaitBeforeStarting 10 Name "wave3-tank1" TotalCount 1 Tank { Name "tankboss" Health 12000 Speed 50 StartingPathTrackNode "path_tank_1" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { // Group 2: [SQUAD] Melee Squad, 10 KGB, 10 Evicition and 10 Fists of Steel Name "wave3-group2" TotalCount 30 SpawnCount 3 MaxActive 6 Where spawnbot Where spawnbot_gate WaitForAllSpawned "wave3-tank1" WaitBeforeStarting 60 WaitBetweenSpawns 5 Squad { FormationSize 1 // nice and packed TFBot{ Template T_Caster_HeavyBoxing Health 350 // Heavies are too strong for normal mode in this map Tag nav_prefer_left } TFBot{ Template T_Caster_HeavyEvictionMobster Health 350 // Heavies are too strong for normal mode in this map Tag nav_prefer_left } TFBot{ Template T_Caster_HeavySteel Health 250 // Heavies are too strong for normal mode in this map Tag nav_prefer_left } } } WaveSpawn { // Dragon Fury Pyro Boss spawns bot left StartWaveOutput { Target wave_event_toxic Action Trigger } Name "wave3-group3" TotalCount 1 Where spawnbot Where spawnbot_gate WaitForAllDead "wave3-group2" WaitBeforeStarting 10 // wait time for event TFBot{ Template T_Caster_PyroDragonBoss Name "Heavy-Pyro Bro" Health 2000 Tag nav_prefer_left } } WaveSpawn { // Dragon Fury Pyro Boss spawns bot right Name "wave3-group3" TotalCount 1 Where spawnbot Where spawnbot_gate WaitForAllDead "wave3-group2" WaitBeforeStarting 10 // wait time for event TFBot{ Template T_Caster_PyroDragonBoss Name "Heavy-Pyro Bro" Health 2000 Tag nav_prefer_right } } WaveSpawn { // SUPPORT: Quick Fix Medic Name "wave3-support" TotalCount 999 SpawnCount 1 MaxActive 1 Where spawnbot Where spawnbot_gate WaitBetweenSpawnsAfterDeath 15 // after prev bot dies, wait, then spawn. Support 1 TFBot { Template T_Caster_MedicQuick Health 70 Tag nav_prefer_left } } WaveSpawn { // SUPPORT: Kritzkrieg Medic Name "wave3-support" TotalCount 999 SpawnCount 1 MaxActive 1 Where spawnbot Where spawnbot_gate WaitBetweenSpawnsAfterDeath 25 // after prev bot dies, wait, then spawn. Support 1 TFBot { Template T_Caster_MedicKritz Health 70 Tag nav_prefer_left } } WaveSpawn { // SUPPORT: Shotgun Heavy Name "wave3-support" TotalCount 999 SpawnCount 1 MaxActive 1 Where spawnbot Where spawnbot_gate WaitForAllDead "wave3-group1" WaitBetweenSpawnsAfterDeath 14 // after prev bot dies, wait, then spawn. Support 1 TFBot { Template T_Caster_HeavyShotgun Tag nav_prefer_right } } WaveSpawn { // SUPPORT: Shotgun Heavy Mobster Name "wave3-support" TotalCount 999 SpawnCount 1 MaxActive 1 Where spawnbot Where spawnbot_gate WaitForAllDead "wave3-group1" WaitBetweenSpawnsAfterDeath 14 // after prev bot dies, wait, then spawn. Support 1 TFBot { Template T_Caster_HeavyShotgunMobster Tag nav_prefer_right } } } // ---------------------------------------------------------------------- // Wave 4 ($0 + $0 (this wave) + $0 (bonus) = $0) // Tank 1: [TANK] 6000 HP, 80HU // Group 1: 16 Giant Demo Samurai // Group 2: 2 Demo Burst Giants // Group 3: Heavy Scrap Boss // SUPPORT: 2 Mad Milk Scouts Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } InitWaveOutput { Target wave_pathmodels_both_la // triggers holograms on top and bottom left Action Trigger } WaveSpawn { // Tank 1: [TANK] 6000 HP, 80HU Name "wave4-tank1" TotalCount 1 Tank { Name "tankboss" Health 6000 Speed 80 StartingPathTrackNode "path_tank_1" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { // Group 1: 10 Giant Demo Samurai Name "wave4-group1" TotalCount 10 SpawnCount 1 MaxActive 4 Where spawnbot_top Where spawnbot_gate WaitForAllSpawned "wave4-tank1" WaitBeforeStarting 25 WaitBetweenSpawns 7 TFBot{ Template T_Caster_DemoSamuraiBig Health 200 // 650 hp originally Tag nav_prefer_top_right } } WaveSpawn { // Group 1: 6 Giant Demo Samurai Name "wave4-group1" TotalCount 6 SpawnCount 1 MaxActive 2 Where spawnbot Where spawnbot_gate WaitForAllSpawned "wave4-tank1" WaitBeforeStarting 65 WaitBetweenSpawns 5 TFBot{ Template T_Caster_DemoSamuraiBig Health 200 // 650 hp originally Tag nav_prefer_left } } WaveSpawn { // Group 2: 2 Demo Burst Giants Name "wave4-group2" TotalCount 2 SpawnCount 2 MaxActive 2 Where spawnbot Where spawnbot_gate WaitForAllDead "wave4-group1" WaitBeforeStarting 5 TFBot{ Template T_Caster_DemoBurstGiant Health 1250 Tag nav_prefer_left } } WaveSpawn { // Group 3: Heavy Scrap Boss Name "wave4-group3" TotalCount 1 Where spawnbot_top Where spawnbot_gate WaitForAllDead "wave4-group2" WaitBeforeStarting 10 TFBot{ Template T_Caster_HeavyScrapBoss Tag nav_prefer_top_left } } WaveSpawn { // SUPPORT: 2 Mad Milk Scouts Name "wave3-support" TotalCount 999 SpawnCount 2 MaxActive 2 Where spawnbot_top Where spawnbot_gate WaitBetweenSpawnsAfterDeath 5 // after prev bot dies, wait, then spawn. Support 1 TFBot { Template T_Caster_ScoutMilk Tag nav_prefer_top_left } } } // ---------------------------------------------------------------------- // Wave 5 ($0 + $0 (this wave) + $0 (bonus) = $0) // Event Smoke triggers at Group 1 // Group 1: 1 Black Box Giant Soldier spawns bot left // Group 2: 25 Shovel Soldiers spawn top left // Group 2: 15 Boxing Heavies spawn right // Group 2: 15 Bottle Demos spawn left // Group 2: 10 Soldier Push spawn top right Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } InitWaveOutput { Target wave_pathmodels_both // triggers all holograms Action Trigger } WaveSpawn { Support Limited TotalCount 1 Where spawnbot_money WaitForAllSpawned "wave5-group2" // Will not take up an extra bot slot TotalCurrency 0 TFBot { Class Scout ClassIcon caster_smoke } } WaveSpawn { // Group 1: 1 Black Box Giant Soldier spawns bot left StartWaveOutput { Target wave_event_smoke Action Trigger } Name "wave5-group1" TotalCount 1 Where spawnbot Where spawnbot_gate WaitBeforeStarting 10 // wait for event TFBot{ Template T_Caster_SoldierBoxGiant Tag nav_prefer_left } } WaveSpawn { // Group 2: 25 Shovel Soldiers spawn top left Name "wave5-group2" TotalCount 25 SpawnCount 5 MaxActive 5 Where spawnbot_top Where spawnbot_gate WaitForAllSpawned "wave5-group1" WaitBeforeStarting 45 WaitBetweenSpawns 5 TFBot{ Template T_Caster_SoldierShovel Tag nav_prefer_top_left } } WaveSpawn { // Group 2: 15 Boxing Heavies spawn right Name "wave5-group2" TotalCount 15 SpawnCount 5 MaxActive 5 Where spawnbot Where spawnbot_gate WaitForAllDead "wave5-group1" WaitBeforeStarting 10 WaitBetweenSpawns 7 TFBot{ Template T_Caster_HeavyBoxing Tag nav_prefer_right } } WaveSpawn { // Group 2: 15 Bottle Demos spawn left Name "wave5-group2" TotalCount 15 SpawnCount 5 MaxActive 5 Where spawnbot Where spawnbot_gate WaitForAllDead "wave5-group1" WaitBeforeStarting 14 WaitBetweenSpawns 11 TFBot{ Template T_Caster_DemoBottle Tag nav_prefer_left } } WaveSpawn { // Group 2: 10 Soldier Push spawn top right Name "wave5-group2" TotalCount 10 SpawnCount 5 MaxActive 5 Where spawnbot_top Where spawnbot_gate WaitForAllDead "wave5-group1" WaitBeforeStarting 18 WaitBetweenSpawns 15 TFBot{ Template T_Caster_SoldierPush Tag nav_prefer_right } } } // ---------------------------------------------------------------------- // Wave 6 ($0 + $0 (this wave) + $0 (bonus) = $0) // Event Smoke and Toxic triggers at Group 1 // Group 1: 20 Flare Pyros // Group 2: 20 AlwaysFire Pyros // Group 3: 30 AlwaysFire Pyros // Group 4: 25 Flare Pyros // SUPPORT: Flare Pyro, Medic BigHeal, Charged Medic Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } InitWaveOutput { Target wave_pathmodels_both_ra // triggers all holograms except bottom left Action Trigger } WaveSpawn { Support Limited TotalCount 2 Where spawnbot_money WaitForAllSpawned "wave6-group4" // Will not take up an extra bot slot TotalCurrency 0 Squad { TFBot { Class Scout ClassIcon caster_smoke } TFBot { Class Scout ClassIcon caster_toxic } } } WaveSpawn { // Activating smoke and toxic at the same time using Transition module StartWaveOutput { Target wave_event_smoke Action Trigger } DoneOutput { Target wave_event_toxic Action Trigger } Name "wave6-smoke-and-toxic" WaitBeforeStarting 10 } // oh look at that it works! now you can do 2 events at the same time! WaveSpawn { // Group 1: 20 Flare Pyros Name "wave6-group1" TotalCount 20 SpawnCount 5 MaxActive 10 Where spawnbot_top Where spawnbot_gate WaitBeforeStarting 25 // wait for both events WaitBetweenSpawns 7 TFBot{ Template T_Caster_PyroFlare Tag nav_prefer_top_right } } WaveSpawn { // Group 2: 20 AlwaysFire Pyros Name "wave6-group2" TotalCount 20 SpawnCount 5 MaxActive 10 Where spawnbot Where spawnbot_gate WaitForAllDead "wave6-group1" WaitBetweenSpawns 9 TFBot{ Template T_Caster_PyroAlways Tag nav_prefer_right } } WaveSpawn { // Group 3: 30 AlwaysFire Pyros Name "wave6-group3" TotalCount 30 SpawnCount 6 MaxActive 12 Where spawnbot Where spawnbot_gate WaitForAllDead "wave6-group2" WaitBeforeStarting 10 WaitBetweenSpawns 7 TFBot{ Template T_Caster_PyroAlways Tag nav_prefer_right } } WaveSpawn { // Group 4: 30 Flare Pyros Name "wave6-group4" TotalCount 30 SpawnCount 10 MaxActive 20 Where spawnbot_top Where spawnbot_gate WaitForAllDead "wave6-group3" WaitBeforeStarting 5 WaitBetweenSpawns 5 TFBot{ Template T_Caster_PyroFlare Tag nav_prefer_top_left } } // Support will spawn both hazards at the same time as expected. WaveSpawn { // SUPPORT: Flare Pyro Name "wave6-support" TotalCount 999 SpawnCount 1 MaxActive 1 Where spawnbot Where spawnbot_gate WaitBetweenSpawnsAfterDeath 10 Support 1 TFBot{ Template T_Caster_PyroFlare Tag nav_prefer_left } } WaveSpawn { // SUPPORT: Medic BigHeal Name "wave6-support" TotalCount 1 Where spawnbot Where spawnbot_gate WaitBetweenSpawnsAfterDeath 13 Support 1 TFBot{ Template T_Caster_MedicBigheal Tag nav_prefer_top_left } } WaveSpawn { // SUPPORT: Charged Medic Name "wave6-support" TotalCount 1 Where spawnbot Where spawnbot_gate WaitBetweenSpawnsAfterDeath 21 Support 1 TFBot{ Template T_Caster_MedicCharged Tag nav_prefer_top_right } } } // ---------------------------------------------------------------------- // Wave 7 ($0 + $0 (this wave) + $0 (bonus) = $0) // Event Cap A // Group 1: 10 Heavies // Group 2: 8 Deflector Crit Heavies // Group 3: [SQUAD] 40 Shotgun Heavies // Group 4: [RNDSPAWN] 60 Heavy Fists of Steel // SUPPORT: 2 Jarate Throwing Sniper Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } InitWaveOutput { Target wave_pathmodels_both Action Trigger } WaveSpawn { Support Limited TotalCount 2 Where spawnbot_money WaitForAllSpawned "wave7-group4" // Will not take up an extra bot slot TotalCurrency 0 TFBot { Class Scout ClassIcon caster_cap } } WaveSpawn { // Group 1: 10 Heavies StartWaveOutput { Target wave_event_cap Action Trigger } Name "wave7-group1" TotalCount 10 SpawnCount 2 MaxActive 5 Where spawnbot Where spawnbot_gate WaitBeforeStarting 3 // automatic wait WaitBetweenSpawns 5 TFBot{ Template T_Caster_Heavy Tag nav_prefer_right } } WaveSpawn { // Group 2: 8 Deflector Crit Heavies Name "wave7-group2" TotalCount 8 SpawnCount 2 MaxActive 4 Where spawnbot Where spawnbot_gate WaitForAllDead "wave7-group1" WaitBetweenSpawns 6 TFBot{ Template T_Caster_HeavyDeflectorCrit Skill Easy Tag nav_prefer_left } } WaveSpawn { // Group 3: [SQUAD] 40 Shotgun Heavies Name "wave7-group3" TotalCount 40 SpawnCount 4 MaxActive 12 Where spawnbot_top Where spawnbot_gate WaitForAllDead "wave7-group2" WaitBeforeStarting 3 WaitBetweenSpawns 4 Squad{ FormationSize 3 TFBot{ Template T_Caster_HeavyShotgun Skill Easy Tag nav_prefer_top_left } TFBot{ Template T_Caster_HeavyShotgunMobster Skill Normal Tag nav_prefer_top_left } } } WaveSpawn { // Group 4: [RNDSPAWN] 30 Heavy Fists of Steel Name "wave7-group4" TotalCount 60 SpawnCount 10 MaxActive 20 Where spawnbot Where spawnbot_top Where spawnbot_gate RandomSpawn 1 WaitForAllDead "wave7-group3" WaitBeforeStarting 10 WaitBetweenSpawns 10 RandomChoice{ TFBot{ Template T_Caster_HeavySteel // 600 Health Tag nav_prefer_top_right } TFBot{ Template T_Caster_HeavySteel Health 150 Tag nav_prefer_top_right } TFBot{ Template T_Caster_HeavySteel Health 250 Tag nav_prefer_right } TFBot{ Template T_Caster_HeavySteel Health 350 Tag nav_prefer_right } } } WaveSpawn { // SUPPORT: Flare Pyro Support 1 Name "wave7-support" TotalCount 999 SpawnCount 2 MaxActive 2 Where spawnbot Where spawnbot_gate WaitBetweenSpawns 5 TFBot{ Template T_Caster_SniperJarate Tag nav_prefer_top_left } } } // ---------------------------------------------------------------------- // Wave 8 ($0 + $0 (this wave) + $0 (bonus) = $0) // Group 1: 20 Bottle Demomen on the bottom floor coming from both enterances // Group 2: 20 Dragons Fury Pyros on the bottom floor, both left and right Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } InitWaveOutput { Target wave_pathmodels_bottom // triggers holograms on bottom floor Action Trigger } WaveSpawn { Support Limited TotalCount 4 Where spawnbot_money WaitForAllSpawned "wave8-grenadetank1" // Will not take up an extra bot slot TotalCurrency 0 Squad { TFBot { Class Scout ClassIcon caster_cap } TFBot { Class Scout ClassIcon caster_smoke } TFBot { Class Scout ClassIcon caster_toxic } TFBot { Class Scout ClassIcon caster_grenadetank } } } WaveSpawn { // Activating smoke and toxic at the same time using Transition module StartWaveOutput { Target wave_event_smoke Action Trigger } DoneOutput { Target wave_event_toxic Action Trigger } Name "wave8-smoke-and-toxic" WaitBeforeStarting 10 } // oh look at that it works! now you can do 2 events at the same time! WaveSpawn { // Demo Bottle, bottom floor / going left StartWaveOutput { Target wave_event_cap Action Trigger } Name "wave8-group1" TotalCount 10 SpawnCount 3 MaxActive 10 Where spawnbot Where spawnbot_gate WaitBeforeStarting 25 // wait time for all events to occur WaitBetweenSpawns 7 TFBot { Template T_Caster_DemoBottle Tag nav_prefer_left } } WaveSpawn { // Demo Bottle, bottom floor / going right Name "wave8-group1" TotalCount 10 SpawnCount 3 MaxActive 10 Where spawnbot Where spawnbot_gate WaitBeforeStarting 25 // wait time for all events to occur WaitBetweenSpawns 7 TFBot { Template T_Caster_DemoBottle Tag nav_prefer_right } } WaveSpawn { // Dragon Fury Pyros, bottom floor / going left Name "wave8-group2" TotalCount 10 SpawnCount 2 MaxActive 5 Where spawnbot Where spawnbot_gate WaitForAllDead "wave8-group1" WaitBeforeStarting 10 WaitBetweenSpawns 5 TFBot { Template T_Caster_PyroDragon Tag nav_prefer_left } } WaveSpawn { // Dragon Fury Pyros, bottom floor / going right Name "wave8-group2" TotalCount 10 SpawnCount 2 MaxActive 5 Where spawnbot Where spawnbot_gate WaitForAllDead "wave8-group1" WaitBeforeStarting 10 WaitBetweenSpawns 5 TFBot { Template T_Caster_PyroDragon Tag nav_prefer_right } } WaveSpawn { // Grenade Tank! Name "wave8-grenadetank1" TotalCount 1 WaitForAllDead "wave8-group2" Tank { Name "grenadetankboss" Health 9000 Speed 40 Skin 1 StartingPathTrackNode "path_grenadetank_1" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } FirstSpawnOutput { Target grenadetank_start_relay Action Trigger } DoneOutput { Target grenadetank_kill_relay Action Trigger } } // SUPPORT LINE ------------------------------------------------------ WaveSpawn { // Heavy KGB, top floor / going left Name "wave8-support" TotalCount 999 SpawnCount 2 MaxActive 2 Where spawnbot_top Where spawnbot_gate WaitBeforeStarting 1 WaitBetweenSpawns 4 Support 1 TFBot { Template T_Caster_HeavyBoxing Tag nav_prefer_top_left } } WaveSpawn { // Bottle Demo Name "wave8-support" TotalCount 999 SpawnCount 2 MaxActive 2 Where spawnbot_top Where spawnbot_gate WaitBeforeStarting 1 WaitBetweenSpawns 8 Support 1 TFBot { Template T_Caster_DemoBottle Tag nav_prefer_top_right } } WaveSpawn { // Dragons Fury Pyro Name "wave8-support" TotalCount 999 SpawnCount 1 MaxActive 1 Where spawnbot Where spawnbot_gate WaitBeforeStarting 1 WaitBetweenSpawns 6 Support 1 TFBot { Template T_Caster_PyroDragon Tag nav_prefer_left } } WaveSpawn { // Flare Pyro Name "wave8-support" TotalCount 999 SpawnCount 1 MaxActive 1 Where spawnbot Where spawnbot_gate WaitBeforeStarting 1 WaitBetweenSpawns 2 Support 1 TFBot { Template T_Caster_PyroFlare Tag nav_prefer_right } } } }