// mvm_gd_caster mission: Blast Pit // Authors: PDA Expert (concept, programming and testing), Jack5 (cleanup and testing), Docteur Whoa (tweaks) // Difficulty: Advanced #base robot_caster.pop WaveSchedule { StartingCurrency 1000 RespawnWaveTime 2 CanBotsAttackWhileInSpawnRoom No Advanced 1 // Required to display all missions in alphabetical order, random order otherwise MaxRedPlayers 2 // Sigsegv maximum RED players override Mission { // Sentry Buster Objective DestroySentries InitialCooldown 30 Where spawnbot Where spawnbot_gate BeginAtWave 1 RunForThisManyWaves 5 CooldownTime 45 TFBot { Template T_Caster_SentryBuster } } // ---------------------------------------------------------------------- // Wave 1 ($1000 + $800 (this wave) + $100 (bonus) = $1900) // 32 Pyros on bottom floor, 32 Flare Pyros on top floor Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target wave_pathmodels_both_ll Action Trigger } WaveSpawn { Support Limited TotalCount 1 Where spawnbot_money WaitForAllSpawned "wave1-group" // Will not take up an extra bot slot TotalCurrency 800 RandomChoice { // Will hide bot icon RandomChoice { TFBot { Class Scout } } } } WaveSpawn { Name "wave1-group" TotalCount 32 SpawnCount 2 MaxActive 8 Where spawnbot Where spawnbot_gate WaitBetweenSpawns 2 TFBot { Template T_Caster_Pyro Tag nav_prefer_left } } WaveSpawn { Name "wave1-group" TotalCount 32 SpawnCount 2 MaxActive 8 Where spawnbot_top Where spawnbot_gate WaitBetweenSpawns 2 TFBot { Template T_Caster_PyroFlare Tag nav_prefer_top_left } } } // ---------------------------------------------------------------------- // Wave 2 ($1900 + $900 (this wave) + $100 (bonus) = $2900 // Hazards: Smoke active for entire wave // Group 1: 12 Scouts and Jag Engineers on bottom floor, 6 Fist Heavies and Quick-Fix Medics on top floor // Group 2: 12 Shotgun Heavies and Quick-Fix Medics on bottom floor, 2 Giant Scouts on top floor 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 1 Where spawnbot_money WaitForAllSpawned "wave2-group2" // Will not take up an extra bot slot TotalCurrency 900 TFBot { Class Scout ClassIcon caster_smoke } } WaveSpawn { StartWaveOutput { Target wave_event_smoke Action Trigger } Name "wave2-group1" TotalCount 24 SpawnCount 2 MaxActive 12 Where spawnbot Where spawnbot_gate WaitBeforeStarting 10 // 10 second wait while hazard starts WaitBetweenSpawns 5 Squad { ShouldPreserveSquad 1 TFBot { Template T_Caster_Scout Tag nav_prefer_left } TFBot { Template T_Caster_EngineerJag Tag nav_prefer_left } } } WaveSpawn { Name "wave2-group1" TotalCount 12 SpawnCount 2 MaxActive 6 Where spawnbot_top Where spawnbot_gate WaitBeforeStarting 15 WaitBetweenSpawns 15 Squad { TFBot { Template T_Caster_HeavySteel Tag nav_prefer_top_left } TFBot { Template T_Caster_MedicQuick Tag nav_prefer_top_left } } } WaveSpawn { Name "wave2-group2" TotalCount 24 MaxActive 12 SpawnCount 6 WaitForAllDead "wave2-group1" WaitBeforeStarting 4 // 4 second break WaitBetweenSpawns 7 Where spawnbot Where spawnbot_gate Squad { TFBot { Template T_Caster_HeavyShotgun Tag nav_prefer_right } TFBot { Template T_Caster_MedicQuick Tag nav_prefer_right } } } WaveSpawn { Name "wave2-group2" TotalCount 2 SpawnCount 1 MaxActive 1 WaitForAllDead "wave2-group1" WaitBeforeStarting 9 WaitBetweenSpawns 15 Where spawnbot_top Where spawnbot_gate TFBot { Template T_Caster_ScoutGiant Tag nav_prefer_top_right } } } // ---------------------------------------------------------------------- // Wave 3 ($2900 + $1000 (this wave) + $100 (bonus) = $4000) // Hazards: Molten metal active for Group 2 // Group 1: 30 Shotgun Heavies and 3 Giant Jag Engineers on bottom floor // Group 2: 12 Fist Heavies on bottom floor, 24 Pyros on top floor // Support: 32 Scouts active for Group 2 on top floor 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 1 Where spawnbot_money WaitForAllSpawned "wave3-group2" // Will not take up an extra bot slot TotalCurrency 1000 TFBot { Class Scout ClassIcon caster_toxic } } WaveSpawn { Name "wave3-group1" TotalCount 27 SpawnCount 2 MaxActive 10 Where spawnbot Where spawnbot_gate WaitBetweenSpawns 5 TFBot { Template T_Caster_HeavyShotgun Tag nav_prefer_right } } WaveSpawn { Name "wave3-group1" TotalCount 6 SpawnCount 2 MaxActive 6 Where spawnbot Where spawnbot_gate WaitBeforeStarting 10 WaitBetweenSpawns 20 Squad { ShouldPreserveSquad 1 TFBot { Template T_Caster_HeavyShotgun Tag nav_prefer_right } TFBot { Template T_Caster_EngineerJagGiant Tag nav_prefer_right } } } WaveSpawn { StartWaveOutput { Target wave_event_toxic Action Trigger } Name "wave3-group2" TotalCount 24 SpawnCount 2 MaxActive 12 WaitForAllDead "wave3-group1" WaitBeforeStarting 10 // 10 second wait while hazard starts WaitBetweenSpawns 1.5 Where spawnbot_top Where spawnbot_gate TFBot { Template T_Caster_Pyro Tag nav_prefer_top_right } } WaveSpawn { Name "wave3-group2" TotalCount 6 SpawnCount 1 MaxActive 6 Where spawnbot Where spawnbot_gate WaitForAllDead "wave3-group1" WaitBeforeStarting 15 WaitBetweenSpawns 6.5 TFBot { Template T_Caster_HeavySteel Tag nav_prefer_left } } WaveSpawn { Name "wave3-support" Support Limited TotalCount 32 SpawnCount 3 MaxActive 6 WaitForAllDead "wave3-group1" WaitBeforeStarting 10 // 10 second wait while hazard starts WaitBetweenSpawns 10 Where spawnbot_top Where spawnbot_gate TFBot { Template T_Caster_Scout Tag nav_prefer_top_left } } } // ---------------------------------------------------------------------- // Wave 4 ($4000 + $1000 (this wave) + $100 (bonus) = $5100) // Hazards: Smoke active for Groups 1 and 2, molten metal active for Groups 3 and 4 // Group 1: 3 Giant Crit Soldiers and 30 Carbine Snipers on bottom floor // Group 2: 5000HP 75HU/s tank // Group 3: 20 Soldiers and 20 Laser Soldiers on bottom floor, 12 Easy Heavies on top floor // Group 4: 3 Giant Soldiers and 24 Pyros on bottom floor // Support: Steel Heavies active for entire wave on top floor 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 "wave4-group4" // Will not take up an extra bot slot TotalCurrency 1000 Squad { TFBot { Class Scout ClassIcon caster_smoke } TFBot { Class Scout ClassIcon caster_toxic } } } WaveSpawn { StartWaveOutput { Target wave_event_smoke Action Trigger } Name "wave4-group1" TotalCount 3 SpawnCount 1 MaxActive 1 Where spawnbot Where spawnbot_gate WaitBeforeStarting 10 // 10 second wait while hazard starts WaitBetweenSpawns 10 TFBot { Template T_Caster_SoldierOriginalGiantCrit Tag nav_prefer_left } } WaveSpawn { Name "wave4-group1" TotalCount 30 SpawnCount 10 MaxActive 10 Where spawnbot Where spawnbot_gate RandomSpawn 1 WaitBeforeStarting 10 WaitBetweenSpawns 10 TFBot { Template T_Caster_SniperCarbine Tag nav_prefer_left } } WaveSpawn { Name "wave4-group2" TotalCount 1 WaitForAllDead "wave4-group1" WaitBeforeStarting 4 // 4 second break Tank { Name "tankboss" Health 5000 Speed 75 StartingPathTrackNode "path_tank_1" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { StartWaveOutput { Target wave_event_smoke_finish Action Trigger } DoneOutput { Target wave_event_toxic Action Trigger } Name "wave4-transition" WaitForAllDead "wave4-group2" WaitBeforeStarting 2 // 2 second break inbetween hazards } WaveSpawn { Name "wave4-support" Support Limited TotalCount 32 SpawnCount 2 MaxActive 9 Where spawnbot_top Where spawnbot_gate WaitBeforeStarting 15 // 10 second wait while hazard starts WaitBetweenSpawns 6 TFBot { Template T_Caster_HeavyFist Tag nav_prefer_top_right } } WaveSpawn { Name "wave4-group3" TotalCount 40 SpawnCount 2 MaxActive 10 WaitForAllDead "wave4-transition" WaitBeforeStarting 10 // 10 second wait while hazard starts WaitBetweenSpawns 4 Where spawnbot Where spawnbot_gate Squad { TFBot { Template T_Caster_Soldier Tag nav_prefer_left } TFBot { Template T_Caster_SoldierManglerLaser Tag nav_prefer_left } } } WaveSpawn { Name "wave4-group3" TotalCount 12 SpawnCount 6 MaxActive 12 Where spawnbot_top Where spawnbot_gate WaitForAllDead "wave4-transition" WaitBeforeStarting 25 WaitBetweenSpawns 20 TFBot { Template T_Caster_HeavyEasy Tag nav_prefer_top_left } } WaveSpawn { Name "wave4-group4" TotalCount 3 SpawnCount 1 MaxActive 2 Where spawnbot Where spawnbot_gate WaitForAllDead "wave4-group3" WaitBeforeStarting 4 // 4 second break WaitBetweenSpawns 10 TFBot { Template T_Caster_SoldierRapidGiant Tag nav_prefer_left } } WaveSpawn { Name "wave4-group4" TotalCount 24 SpawnCount 12 MaxActive 12 Where spawnbot Where spawnbot_gate WaitForAllDead "wave4-group3" WaitBeforeStarting 9 WaitBetweenSpawns 10 TFBot { Template T_Caster_Pyro Tag nav_prefer_right } } } // ---------------------------------------------------------------------- // Wave 5 ($5100 + $0 (this wave) = $5100) // Hazards: Molten metal active for Groups 1 and 2, smoke active for Group 3 // Group 1: 24 Force Scouts on bottom floor, 3 Giant Scouts and 3 Giant Jag Engineers on top floor // Group 2: 32 Crit Shotgun Heavies, 32 Quick-Fix Medics and 30 Scouts on bottom floor // Group 3: 4 Giant Crit Soldiers on bottom floor, 8 Crit Fist Heavies and 8 Big Quick-Fix Medics on top floor Wave { StartWaveOutput { Target wave_start_relay Action Trigger } InitWaveOutput { Target wave_pathmodels_both Action Trigger } WaveSpawn { Support Limited TotalCount 2 Where spawnbot_money WaitForAllSpawned "wave5-group3" // Will not take up an extra bot slot TotalCurrency 1000 Squad { TFBot { Class Scout ClassIcon caster_toxic } TFBot { Class Scout ClassIcon caster_smoke } } } WaveSpawn { StartWaveOutput { Target wave_event_toxic Action Trigger } Name "wave5-group1" TotalCount 24 SpawnCount 2 MaxActive 12 Where spawnbot_top Where spawnbot_gate WaitBeforeStarting 10 // 10 second wait while hazard starts WaitBetweenSpawns 4 TFBot { Template T_Caster_ScoutForce Tag nav_prefer_top_left } } WaveSpawn { Name "wave5-group1" TotalCount 6 SpawnCount 2 MaxActive 6 Where spawnbot Where spawnbot_gate WaitBeforeStarting 25 WaitBetweenSpawns 20 Squad { ShouldPreserveSquad 1 TFBot { Template T_Caster_ScoutGiant Tag nav_prefer_top_right } TFBot { Template T_Caster_EngineerJagGiant Tag nav_prefer_top_right } } } WaveSpawn { Name "wave5-group2" TotalCount 64 SpawnCount 4 MaxActive 22 Where spawnbot Where spawnbot_gate WaitForAllDead "wave5-group1" WaitBeforeStarting 4 // 4 second break WaitBetweenSpawns 10 Squad { TFBot { Template T_Caster_HeavyShotgunCrit Tag nav_prefer_left } TFBot { Template T_Caster_MedicQuick Tag nav_prefer_left } } } WaveSpawn { Name "wave5-group2" TotalCount 30 SpawnCount 2 MaxActive 12 Where spawnbot Where spawnbot_gate WaitForAllDead "wave5-group1" WaitBeforeStarting 4 WaitBetweenSpawns 5 TFBot { Template T_Caster_ScoutForce Tag nav_prefer_right } } WaveSpawn { StartWaveOutput { Target wave_event_toxic_finish Action Trigger } DoneOutput { Target wave_event_smoke Action Trigger } Name "wave5-transition" WaitForAllDead "wave5-group2" WaitBeforeStarting 2 // 2 second break inbetween hazards } WaveSpawn { Name "wave5-group3" TotalCount 4 SpawnCount 1 MaxActive 2 Where spawnbot Where spawnbot_gate WaitForAllDead "wave5-transition" WaitBeforeStarting 10 // 10 second wait while hazard starts WaitBetweenSpawns 20 TFBot { Template T_Caster_SoldierOriginalGiantCrit Tag nav_prefer_left } } WaveSpawn { Name "wave5-group3" TotalCount 16 SpawnCount 2 MaxActive 16 Where spawnbot_top Where spawnbot_gate WaitForAllDead "wave5-transition" WaitBeforeStarting 16 WaitBetweenSpawns 12 Squad { TFBot { Template T_Caster_HeavySteelCrit Tag nav_prefer_top_left } TFBot { Template T_Caster_MedicQuickBig Tag nav_prefer_top_left } } } } }