// Mission designer: Lyney // Map designer: damno #base robot_giant.pop #base robot_standard.pop #base robot_lyney.pop // WAVE 1 Current Money: 250$ // WAVE 2 Current Money: 250$ + 650$ + 100$ Bonus = 1000$ (No Bonus: 900$) // WAVE 3 Current Money: 1000$ + 700$ + 100$ Bonus = 1800$ (No Bonus: 1600$) // WAVE 4 Current Money: 1800$ + 600$ + 100$ Bonus = 2500$ (No Bonus: 2200$) // WAVE 5 Current Money: 2500$ + 600$ + 100$ Bonus = 3200$ (No Bonus: 2800$) // WAVE 6 Current Money: 3200$ + 500$ + 100$ Bonus = 3800$ (No Bonus: 3300$) // WAVE 7 Current Money: 3800$ + 400$ + 100$ Bonus = 4300$ (No Bonus: 3700$) // WAVE 8 Current Money: 4300$ + 600$ + 100$ Bonus = 5000$ (No Bonus: 4300$) // WAVE 9 Current Money: 5000$ + 500$ + 100$ Bonus = 5600$ (No Bonus: 4800$) // Total Possible Money: 5600$ + 900$ = 6500$ (No Bonus: 5700$) WaveSchedule { StartingCurrency 250 RespawnWaveTime 4 CanBotsAttackWhileInSpawnRoom no WaveStartCountdown 3 // Missions Mission // Sentrybuster { Objective DestroySentries InitialCooldown 10 Where spawnbot BeginAtWave 1 RunForThisManyWaves 9 CooldownTime 45 TFBot { Template T_TFBot_SentryBuster Attributes DisableDodge } } Mission // Spy - Wave 1 { Objective Spy InitialCooldown 30 Where spawnbot_mission_spy BeginAtWave 1 RunForThisManyWaves 1 CooldownTime 45 DesiredCount 2 TFBot { Class Spy Skill Hard } } Mission // Sniper - Wave 3 { Objective Sniper InitialCooldown 25 Where spawnbot_flank BeginAtWave 3 RunForThisManyWaves 1 CooldownTime 45 DesiredCount 2 TFBot { Class Sniper Skill Hard Name Sniper } } Mission // Sniper - Wave 5 { Objective Sniper InitialCooldown 30 Where spawnbot_flank BeginAtWave 5 RunForThisManyWaves 1 CooldownTime 42 DesiredCount 2 TFBot { Class Sniper Skill Hard Name Sniper } } Mission // Spy - Wave 6 { Objective Spy InitialCooldown 30 Where spawnbot_mission_spy BeginAtWave 6 RunForThisManyWaves 1 CooldownTime 42 DesiredCount 2 TFBot { Class Spy Skill Hard } } Mission // Spy - Wave 8 { Objective Spy InitialCooldown 20 Where spawnbot_mission_spy BeginAtWave 8 RunForThisManyWaves 1 CooldownTime 40 DesiredCount 2 TFBot { Class Spy Skill Hard } } Templates { T_TFBot_Giant_Scout_SunOnAStick_FixCosmetics { Class Scout Name "Giant Sun-on-a-Stick Scout" ClassIcon scout_sunstick_swordstone_giant Skill Expert Health 1600 WeaponRestrictions MeleeOnly Tag bot_giant Item "Sun-on-a-Stick" Item "Devil Wings Robot (Giant)" Item "Devil Tail Robot (Giant)" Item "Blazing Bull" Attributes MiniBoss CharacterAttributes { "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "override footstep sound set" 5 "cancel falling damage" 1 } } } CustomWeapon { "Devil Tail Robot (Giant)" { OriginalItemName "Tail From the Crypt" "attachment name" "back_lower" "attachment offset" "20 7 -28" "attachment angles" "0 0 0" "attachment scale" 1.7 } "Devil Wings Robot (Giant)" { OriginalItemName "Fallen Angel" "attachment name" "head" "attachment offset" "-30 -20 -144.5" "attachment angles" "0 -25 -15" "attachment scale" 1.7 } "The Heater Launcher" { OriginalItemName "TF_WEAPON_ROCKETLAUNCHER" "set_item_texture_wear" 0 "paintkit_proto_def_index" 205 "set damagetype ignite" 1 } } PointTemplates { MissionName { logic_relay { "targetname" "name" "OnTrigger" "tf_objective_resource,$SetClientProp$m_iszMvMPopfileName,(Advanced) Flamingo Flame,0,-1" } OnSpawnOutput { Target "name" Action "trigger" Delay 0 } } UpgradeStationMusic1 { ambient_generic { "targetname" "startmusicplay" "message" "#clement_rillet.mp3" "health" "10" "pitch" "100" "volume" "10" "spawnflags" "16" "origin" "1847 -2662 -31" "radius" "250" } ambient_generic { "targetname" "extended" "message" "#clement_rillet.mp3" "health" "10" "pitch" "100" "volume" "10" "spawnflags" "16" "origin" "1847 -2662 -31" "radius" "250" } logic_relay { "targetname" "musicplay" "spawnflags" "2" "OnSpawn" "startmusicplay,PlaySound,,0,-1" "OnSpawn" "startmusicplay,StopSound,,91,-1" "OnSpawn" "musicloop,Trigger,,91,-1" } //Loop logic_relay { "targetname" "musicloop" "spawnflags" "2" "OnTrigger" "extended,PlaySound,,0,-1" "OnTrigger" "musiclooper,Trigger,,91,-1" } //Loop handler logic_relay { "targetname" "musiclooper" "spawnflags" "2" "OnTrigger" "extended,StopSound,,0.2,-1" "OnTrigger" "musicloop,Trigger,,0.22,-1" } } UpgradeStationMusic2 { ambient_generic { "targetname" "startmusicplay" "message" "#clement_rillet.mp3" "health" "10" "pitch" "100" "volume" "10" "spawnflags" "16" "origin" "136 -3164 -31" "radius" "250" } ambient_generic { "targetname" "extended" "message" "#clement_rillet.mp3" "health" "10" "pitch" "100" "volume" "10" "spawnflags" "16" "origin" "136 -3164 -31" "radius" "250" } logic_relay { "targetname" "musicplay" "spawnflags" "2" "OnSpawn" "startmusicplay,PlaySound,,0,-1" "OnSpawn" "startmusicplay,StopSound,,91,-1" "OnSpawn" "musicloop,Trigger,,91,-1" } //Loop logic_relay { "targetname" "musicloop" "spawnflags" "2" "OnTrigger" "extended,PlaySound,,0,-1" "OnTrigger" "musiclooper,Trigger,,91,-1" } //Loop handler logic_relay { "targetname" "musiclooper" "spawnflags" "2" "OnTrigger" "extended,StopSound,,0.2,-1" "OnTrigger" "musicloop,Trigger,,0.22,-1" } } UpgradeStationMusic3 { ambient_generic { "targetname" "startmusicplay" "message" "#clement_rillet.mp3" "health" "10" "pitch" "100" "volume" "10" "spawnflags" "16" "origin" "1369 -742 -31" "radius" "250" } ambient_generic { "targetname" "extended" "message" "#clement_rillet.mp3" "health" "10" "pitch" "100" "volume" "10" "spawnflags" "16" "origin" "1369 -742 -31" "radius" "250" } logic_relay { "targetname" "musicplay" "spawnflags" "2" "OnSpawn" "startmusicplay,PlaySound,,0,-1" "OnSpawn" "startmusicplay,StopSound,,91,-1" "OnSpawn" "musicloop,Trigger,,91,-1" } //Loop logic_relay { "targetname" "musicloop" "spawnflags" "2" "OnTrigger" "extended,PlaySound,,0,-1" "OnTrigger" "musiclooper,Trigger,,91,-1" } //Loop handler logic_relay { "targetname" "musiclooper" "spawnflags" "2" "OnTrigger" "extended,StopSound,,0.2,-1" "OnTrigger" "musicloop,Trigger,,0.22,-1" } } } SpawnTemplate MissionName SpawnTemplate UpgradeStationMusic1 SpawnTemplate UpgradeStationMusic1 SpawnTemplate UpgradeStationMusic2 SpawnTemplate UpgradeStationMusic2 SpawnTemplate UpgradeStationMusic3 SpawnTemplate UpgradeStationMusic3 //WAVE 1 (650$) Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_noreset_relay Action Trigger } Initwaveoutput { Target bombpath_main Action Trigger } DoneOutput { Target wave_finish_relay Action trigger } WaveSpawn { Name "1a" Where spawnbot TotalCount 25 MaxActive 7 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 6 TotalCurrency 100 TFBot { Class Scout Skill Easy } } WaveSpawn { Name "1a" Where spawnbot_flank_short TotalCount 12 MaxActive 6 SpawnCount 4 WaitBeforeStarting 4 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Class Demoman Skill Normal } } WaveSpawn { Name "1a" Where spawnbot_flank_short TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 0 TotalCurrency 50 Squad { TFBot { Template T_TFBot_Pyro_Volcano_Armored Name "Lumberjack Pyro" Skill Hard } TFBot { Template T_TFBot_Medic_QuickUber Attributes IgnoreEnemies } } } WaveSpawn { Name "1b" WaitForAllSpawned "1a" Where spawnbot_flank TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 50 Squad { TFBot { Template T_TFBot_Pyro_Volcano_Armored Name "Lumberjack Pyro" Skill Hard } TFBot { Template T_TFBot_Medic_QuickUber Attributes IgnoreEnemies Name "Quick-Uber Medic" } } } WaveSpawn { Name "1b-support" WaitForAllDead "1a" Where spawnbot TotalCount 48 MaxActive 5 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 150 Support 1 TFBot { Template T_TFBot_Scout_Melee_FixIcons Attributes AlwaysCrit Name "Bat Scout" } } WaveSpawn { Name "1b" WaitForAllDead "1a" Where spawnbot TotalCount 20 MaxActive 7 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 6 TotalCurrency 100 TFBot { Class Soldier Skill Normal } } WaveSpawn { Name "1b" WaitForAllDead "1a" Where spawnbot_flank_short TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 22 WaitBetweenSpawns 0 TotalCurrency 50 Squad { TFBot { Template T_TFBot_Pyro_Volcano_Armored Name "Lumberjack Pyro" Skill Hard } TFBot { Template T_TFBot_Medic_QuickUber Attributes IgnoreEnemies Name "Quick-Uber Medic" } } } WaveSpawn { Name "1c" WaitForAllSpawned "1b" Where spawnbot_flank TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 50 Squad { TFBot { Template T_TFBot_Pyro_Volcano_Armored Name "Lumberjack Pyro" Skill Hard } TFBot { Template T_TFBot_Medic_QuickUber Attributes IgnoreEnemies Name "Quick-Uber Medic" } } } } //WAVE 2 (700$) Wave { Checkpoint Yes StartWaveOutput { Target wave_start_noreset_relay Action Trigger } Initwaveoutput { Target bombpath_flank Action Trigger } DoneOutput { Target wave_finish_relay Action trigger } WaveSpawn { Name "2a-tank" TotalCount 1 WaitBeforeStarting 0 TotalCurrency 100 Tank { Health 12500 Name "tankboss" Speed 75 StartingPathTrackNode "boss_path_0_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "2a" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Soldier } } WaveSpawn { Name "2a" Where spawnbot_flank_short TotalCount 16 MaxActive 8 SpawnCount 4 WaitBeforeStarting 3 WaitBetweenSpawns 4 TotalCurrency 50 TFBot { Template T_TFBot_Soldier_Bison Skill Normal } } WaveSpawn { Name "2a" Where spawnbot TotalCount 20 MaxActive 8 SpawnCount 4 WaitBeforeStarting 7 WaitBetweenSpawns 4 TotalCurrency 40 TFBot { Class Scout Skill Easy } } WaveSpawn { Name "2b" WaitForAllSpawned "2a" Where spawnbot_flank_short TotalCount 12 MaxActive 5 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 15 TotalCurrency 240 Squad { TFBot { Template T_TFBot_Giant_Pyro_Dragon_Fury } TFBot { Template T_TFBot_Medic_QuickUber Attributes IgnoreEnemies } TFBot { Template T_TFBot_Medic_QuickUber Attributes IgnoreEnemies } TFBot { Template T_TFBot_Medic_QuickUber Attributes IgnoreEnemies } } } WaveSpawn { Name "2b-support" WaitForAllSpawned "2a" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 4 Support Limited TFBot { Template T_TFBot_Heavyweapons_Shotgun Name "Shotgun Heavy" } } WaveSpawn { Name "2b-support" WaitForAllDead "2a" Where spawnbot Where spawnbot_flank_short TotalCount 28 MaxActive 10 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 56 Support 1 RandomChoice { TFBot { Class Pyro Skill Easy } TFBot { Template T_TFBot_Heavyweapons_Shotgun Name "Shotgun Heavy" } } } WaveSpawn { Name "2b-samuraidemo" WaitForAllSpawned "2b" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 0 TotalCurrency 160 TFBot { Template T_TFBot_Demoman_Samurai } } } //WAVE 3 (600$) Wave { Checkpoint Yes StartWaveOutput { Target wave_start_noreset_relay Action Trigger } InitWaveOutput { Target wave_start_noreset_relay Action RunScriptCode Param " EntFire(`bombpath_flank`, `Trigger`) IncludeScript(`disablesquad`) " } DoneOutput { Target wave_finish_relay Action trigger } WaveSpawn { Name "3a" Where spawnbot TotalCount 18 MaxActive 9 SpawnCount 6 WaitBeforeStarting 0 WaitBetweenSpawns 15 TotalCurrency 50 TFBot { Template T_TFBot_Scout_Bonk_BugsFixed } } WaveSpawn { Name "3a" Where spawnbot_flank_short TotalCount 24 MaxActive 8 SpawnCount 4 WaitBeforeStarting 9 WaitBetweenSpawns 4 TotalCurrency 50 TFBot { Template T_TFBot_Sniper_Huntsman } } WaveSpawn { Name "3a" Where spawnbot_flank TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 90 Squad { TFBot { Template T_TFBot_Giant_Soldier_Extended_Battalion_Bugfixed } TFBot { Template T_TFBot_Medic_BigHeal_Armored Attributes IgnoreEnemies } TFBot { Template T_TFBot_Medic_BigHeal_Armored Attributes IgnoreEnemies } } } WaveSpawn { Name "3b" WaitForAllSpawned "3a" Where spawnbot_flank_short TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 90 Squad { TFBot { Template T_TFBot_Giant_Demoman_No_RapidFire } TFBot { Template T_TFBot_Medic_BigHeal_Armored Attributes IgnoreEnemies } TFBot { Template T_TFBot_Medic_BigHeal_Armored Attributes IgnoreEnemies } } } WaveSpawn { Name "3b" WaitForAllDead "3a" Where spawnbot_flank_short TotalCount 24 MaxActive 12 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 50 Squad { TFBot { Template T_TFBot_Pyro_Airblast Tag disband_squad } TFBot { Class Soldier Skill Normal Tag disband_squad } TFBot { Class Soldier Skill Normal Tag disband_squad } TFBot { Class Soldier Skill Normal Tag disband_squad } } } WaveSpawn { Name "3c" WaitForAllSpawned "3b" Where spawnbot_flank TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 90 Squad { TFBot { Template T_TFBot_Giant_Soldier_Extended_Battalion_Bugfixed } TFBot { Template T_TFBot_Medic_BigHeal_Armored Attributes IgnoreEnemies } TFBot { Template T_TFBot_Medic_BigHeal_Armored Attributes IgnoreEnemies } } } WaveSpawn { Name "3c-Support" WaitForAllSpawned "3b" Where spawnbot_invasion TotalCount 30 MaxActive 6 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 7 TotalCurrency 90 Support Limited TFBot { Template T_TFBot_Demoman_Knight } } WaveSpawn { Name "3c-giant" WaitForAllSpawned "3c" Where spawnbot_flank_short TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 17 WaitBetweenSpawns 0 TotalCurrency 90 Squad { TFBot { Template T_TFBot_Giant_Demoman_No_RapidFire } TFBot { Template T_TFBot_Medic_BigHeal_Armored Attributes IgnoreEnemies } TFBot { Template T_TFBot_Medic_BigHeal_Armored Attributes IgnoreEnemies } } } } //WAVE 4 (600$) Wave { Checkpoint Yes StartWaveOutput { Target wave_start_noreset_relay Action Trigger } Initwaveoutput { Target bombpath_main Action Trigger } DoneOutput { Target wave_finish_relay Action trigger } WaveSpawn { Name "4a" Where spawnbot_flank_short TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 4 WaitBetweenSpawns 0 TotalCurrency 20 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFBot_Soldier_DirectHit Attributes AlwaysCrit Skill Expert } TFBot { Template T_TFBot_Sniper_Huntsman } TFBot { Template T_TFBot_Sniper_Huntsman } TFBot { Template T_TFBot_Sniper_Huntsman } } } WaveSpawn { Name "4a" Where spawnbot Where spawnbot_flank_short TotalCount 20 MaxActive 8 SpawnCount 4 WaitBeforeStarting 8 WaitBetweenSpawns 3 TotalCurrency 100 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFBot_Soldier_DirectHit Attributes AlwaysCrit Skill Expert } TFBot { Template T_TFBot_Sniper_Huntsman } TFBot { Template T_TFBot_Sniper_Huntsman } TFBot { Template T_TFBot_Sniper_Huntsman } } } WaveSpawn { Name "4a" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 80 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload CharacterAttributes { "cancel falling damage" 1 "blast dmg to self increased" 0 } } TFBot { Template T_TFBot_Medic_QuickUber Attributes IgnoreEnemies } TFBot { Template T_TFBot_Medic_QuickUber Attributes IgnoreEnemies } TFBot { Template T_TFBot_Medic_QuickUber Attributes IgnoreEnemies } } } WaveSpawn { Name "4b" WaitForAllSpawned "4a" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 80 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload CharacterAttributes { "cancel falling damage" 1 "blast dmg to self increased" 0 } } TFBot { Template T_TFBot_Medic_QuickUber Attributes IgnoreEnemies } TFBot { Template T_TFBot_Medic_QuickUber Attributes IgnoreEnemies } TFBot { Template T_TFBot_Medic_QuickUber Attributes IgnoreEnemies } } } WaveSpawn { Name "4b-Support" WaitForAllDead "4a" Where spawnbot Where spawnbot_flank Where spawnbot_flank_short TotalCount 8 MaxActive 4 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 8 Support 1 TFBot { Template T_TFBot_Pyro_DF } } WaveSpawn { Name "4b-Support" WaitForAllDead "4a" Where spawnbot Where spawnbot_flank Where spawnbot_flank_short TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 3 WaitBetweenSpawns 1 TotalCurrency 16 Support Limited TFBot { Template T_TFBot_Pyro_Flaregun } } WaveSpawn { Name "4b-Support" WaitForAllDead "4a" Where spawnbot_flank_hard TotalCount 64 MaxActive 4 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 1 TotalCurrency 64 Support 1 TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast_Ignited } } WaveSpawn { Name "4b-Support" WaitForAllDead "4a" Where spawnbot Where spawnbot_flank Where spawnbot_flank_short TotalCount 32 MaxActive 2 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 1 TotalCurrency 32 Support 1 TFBot { Template T_TFBot_Pyro_Flaregun } } WaveSpawn { Name "4b" WaitForAllDead "4a" Where spawnbot_flank TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 0 TotalCurrency 40 TFBot { //Template T_TFBot_Giant_Scout_SunOnAStick_FixCosmetics Template T_TFBot_Giant_Scout_SunStick Name "Extinguished Torch Scout" } } WaveSpawn { Name "4b" WaitForAllDead "4a" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 12 WaitBetweenSpawns 20 TotalCurrency 80 TFBot { Template T_TFBot_Giant_Demo_RapidFire_FixIcons } } WaveSpawn { Name "4b" WaitForAllDead "4a" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 23 WaitBetweenSpawns 0 TotalCurrency 40 TFBot { //Template T_TFBot_Giant_Scout_SunOnAStick_FixCosmetics Template T_TFBot_Giant_Scout_SunStick Name "Extinguished Torch Scout" } } WaveSpawn { Name "4b" WaitForAllDead "4a" Where spawnbot_flank_short TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 40 WaitBetweenSpawns 0 TotalCurrency 40 TFBot { //Template T_TFBot_Giant_Scout_SunOnAStick_FixCosmetics Template T_TFBot_Giant_Scout_SunStick Name "Extinguished Torch Scout" } } } //WAVE 5 (500$) Wave { Checkpoint Yes StartWaveOutput { Target wave_start_noreset_relay Action Trigger } Initwaveoutput { Target bombpath_main Action Trigger } DoneOutput { Target wave_finish_relay Action trigger } WaveSpawn { Name "5a" Where spawnbot TotalCount 24 MaxActive 8 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 40 TFBot { Template T_TFBot_Scout_Pistol Skill Easy } } WaveSpawn { Name "5a" Where spawnbot_flank_short TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 0 TotalCurrency 80 Squad { TFBot { Template T_TFBot_Giant_Soldier_Crit CharacterAttributes { "cancel falling damage" 1 "blast dmg to self increased" 0 } } TFBot { Template T_TFBot_Medic_Shield_Armored Attributes IgnoreEnemies } } } WaveSpawn { Name "5a" Where spawnbot_flank TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 0 TotalCurrency 80 Squad { TFBot { Template T_TFBot_Giant_Soldier_Crit } TFBot { Template T_TFBot_Medic_Shield_Armored Attributes IgnoreEnemies } } } WaveSpawn { Name "5b" WaitForAllSpawned "5a" Where spawnbot TotalCount 8 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 14 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Heavyweapons_Heater Name "Giant Heater Heavy" } TFBot { Template T_TFBot_Pyro_Flaregun Name "Flare Gun Pyro" } TFBot { Template T_TFBot_Pyro_Flaregun Name "Flare Gun Pyro" } TFBot { Template T_TFBot_Medic_Shield_Armored Attributes IgnoreEnemies } } } WaveSpawn { Name "5b" WaitForAllSpawned "5a" Where spawnbot_flank TotalCount 24 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 20 TFBot { Template T_TFBot_Demoman_LochNLoad } } WaveSpawn { Name "5b" WaitForAllSpawned "5a" Where spawnbot_flank_short TotalCount 32 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 30 TFBot { Class Scout Skill Easy } } WaveSpawn { Name "5c" WaitForAllSpawned "5b" Where spawnbot_flank TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 50 Squad { TFBot { Template T_TFBot_Heavyweapons_Heater Name "Giant Heater Heavy" } TFBot { Template T_TFBot_Pyro_Flaregun Name "Flare Gun Pyro" } TFBot { Template T_TFBot_Pyro_Flaregun Name "Flare Gun Pyro" } TFBot { Template T_TFBot_Medic_Shield_Armored Attributes IgnoreEnemies } } } WaveSpawn { Name "5c" WaitForAllSpawned "5b" Where spawnbot_flank_short TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 50 Squad { TFBot { Template T_TFBot_Heavyweapons_Heater Name "Giant Heater Heavy" } TFBot { Template T_TFBot_Pyro_Flaregun Name "Flare Gun Pyro" } TFBot { Template T_TFBot_Pyro_Flaregun Name "Flare Gun Pyro" } TFBot { Template T_TFBot_Medic_Shield_Armored Attributes IgnoreEnemies } } } WaveSpawn { Name "5c" WaitForAllSpawned "5b" Where spawnbot TotalCount 24 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 6 TotalCurrency 50 Support 1 Squad { TFBot { Template T_TFBot_Pyro_Shotgun } } } } //WAVE 6 (400$) Wave { Checkpoint Yes StartWaveOutput { Target wave_start_noreset_relay Action Trigger } Initwaveoutput { Target bombpath_main Action Trigger } DoneOutput { Target wave_finish_relay Action trigger } WaveSpawn { Name "6a" Where spawnbot_flank_short TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 3 TFBot { Class Soldier Skill Normal } } WaveSpawn { Name "6a" Where spawnbot Where spawnbot_flank_short TotalCount 30 MaxActive 9 SpawnCount 3 WaitBeforeStarting 3 WaitBetweenSpawns 3 TotalCurrency 30 TFBot { Class Soldier Skill Normal } } WaveSpawn { Name "6a" Where spawnbot_flank TotalCount 14 MaxActive 7 SpawnCount 7 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 56 TFBot { Template T_TFBot_Scout_Fast } } WaveSpawn { Name "6a-giant" Where spawnbot_flank_short TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 3 WaitBetweenSpawns 14 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Pyro_Dragon_Fury } } WaveSpawn { Name "6b-tank" WaitForAllSpawned "6a" TotalCount 1 WaitBeforeStarting 0 TotalCurrency 111 Tank { Health 15000 Name "tankboss" Speed 75 StartingPathTrackNode "boss_path_0_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "6b" WaitForAllSpawned "6a" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 12 WaitBetweenSpawns 33 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Pyro_Dragon_Fury } TFBot { Template T_TFBot_Giant_Medic_BigHeal Attributes IgnoreEnemies } } } WaveSpawn { Name "6b-Support" WaitForAllDead "6a" Where spawnbot TotalCount 50 MaxActive 8 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 50 Support 1 TFBot { Template T_TFBot_Soldier_Ignited Item "The Heater Launcher" ItemAttributes { ItemName "The Heater Launcher" } } } } //WAVE 7 (600$) Wave { Checkpoint Yes StartWaveOutput { Target wave_start_noreset_relay Action Trigger } Initwaveoutput { Target bombpath_flank Action Trigger } DoneOutput { Target wave_finish_relay Action trigger } WaveSpawn { Name "7a" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 32 TFBot { Template T_TFBot_Giant_Scout_Fast } } WaveSpawn { Name "7a-Support" Where spawnbot_flank_hard TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 8 WaitBetweenSpawns 10 TotalCurrency 0 Support 1 TFBot { Class Pyro Skill Hard BehaviorModifiers push Attributes IgnoreFlag ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "airblast disabled" 1 } } } WaveSpawn { Name "7a" Where spawnbot TotalCount 30 MaxActive 10 SpawnCount 3 WaitBeforeStarting 3 WaitBetweenSpawns 2 TotalCurrency 60 TFBot { Template T_TFBot_Soldier_DirectHit Skill Hard } } WaveSpawn { Name "7a" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 3 WaitBetweenSpawns 15 TotalCurrency 60 TFBot { Template T_TFBot_Giant_Soldier_Spammer CharacterAttributes { "cancel falling damage" 1 "blast dmg to self increased" 0 } } } WaveSpawn { Name "7a" Where spawnbot_flank TotalCount 8 MaxActive 5 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 2 TotalCurrency 80 TFBot { Class Heavyweapons Skill Normal } } WaveSpawn { Name "7b" WaitForAllSpawned "7a" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 32 TFBot { Template T_TFBot_Giant_Scout_Fast } } WaveSpawn { Name "7b" WaitForAllSpawned "7a" Where spawnbot TotalCount 12 MaxActive 8 SpawnCount 4 WaitBeforeStarting 7 WaitBetweenSpawns 20 TotalCurrency 120 Squad { TFBot { Template T_TFBot_Giant_Demo_Burst CharacterAttributes { "cancel falling damage" 1 "blast dmg to self increased" 0 } } TFBot { Template T_TFBot_Medic_Kritzkrieg Attributes IgnoreEnemies } TFBot { Template T_TFBot_Medic_Kritzkrieg Attributes IgnoreEnemies } TFBot { Template T_TFBot_Medic_Kritzkrieg Attributes IgnoreEnemies } } } WaveSpawn { Name "7b-super-scout" WaitForAllSpawned "7b" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 15 WaitBetweenSpawns 0 TotalCurrency 96 TFBot { Template T_TFBot_Giant_Scout_Fast } } WaveSpawn { Name "7b-Support" WaitForAllDead "7a" Where spawnbot_flank_short TotalCount 60 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 120 Support 1 TFBot { Template T_TFBot_Demoman_LochNLoad Skill Hard } } } //WAVE 8 (500$) Wave { Checkpoint Yes StartWaveOutput { Target wave_start_noreset_relay Action Trigger } Initwaveoutput { Target bombpath_main Action Trigger } DoneOutput { Target wave_finish_relay Action trigger } WaveSpawn { Name "8a" Where spawnbot TotalCount 10 MaxActive 6 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 11 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Pyro_Long_Flame } TFBot { Template T_TFBot_Medic_QuickUber Attributes IgnoreEnemies Name "Quick-Uber Medic" } } } WaveSpawn { Name "8a" Where spawnbot_flank_short TotalCount 24 MaxActive 10 SpawnCount 2 WaitBeforeStarting 8 WaitBetweenSpawns 3 TotalCurrency 96 Squad { TFBot { Class Soldier Skill Hard } TFBot { Template T_TFBot_Medic_QuickUber Attributes IgnoreEnemies Name "Quick-Uber Medic" } } } WaveSpawn { Name "8b-support" WaitForAllSpawned "8a" Where spawnbot TotalCount 44 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 44 Support 1 TFBot { Template T_TFBot_Pyro_DF } } WaveSpawn { Name "8b-support" WaitForAllSpawned "8a" Where spawnbot_flank TotalCount 30 MaxActive 2 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 7 TotalCurrency 60 Support 1 TFBot { Template T_TFBot_Pyro_Airblast } } WaveSpawn { Name "8b" WaitForAllSpawned "8a" Where spawnbot_flank_short TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 12 WaitBetweenSpawns 0 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Deflector CharacterAttributes { "cancel falling damage" 1 "blast dmg to self increased" 0 } } TFBot { Template T_TFBot_Giant_Medic_Regen Attributes IgnoreEnemies Name "Giant Regen Medic" } } } WaveSpawn { Name "8b" WaitForAllSpawned "8a" Where spawnbot_flank_short TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 32 WaitBetweenSpawns 0 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Deflector } TFBot { Template T_TFBot_Giant_Medic_Regen Attributes IgnoreEnemies Name "Giant Regen Medic" } } } } //WAVE 9 (500$) Wave { Checkpoint Yes StartWaveOutput { Target wave_start_noreset_relay Action Trigger } InitWaveOutput { Target wave_start_noreset_relay Action RunScriptCode Param " EntFire(`bombpath_main`, `Trigger`) IncludeScript(`disablesquad`) " } DoneOutput { Target wave_finish_relay Action trigger } //WaveSpawn //{ //Name "Pressure-Test" //Where spawnbot //TotalCount 1 //MaxActive 1 //SpawnCount 1 //WaitBeforeStarting 0 //WaitBetweenSpawns 0 //TotalCurrency 0 //TFBot //{ //Template T_TFBot_Giant_Scout_Bonk_PreNerf //Name "Elimination Test" //} //} WaveSpawn { Name "9a" //WaitForAllDead "Pressure-Test" Where spawnbot TotalCount 6 MaxActive 6 SpawnCount 3 WaitBeforeStarting 5 WaitBetweenSpawns 19 TotalCurrency 120 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload CharacterAttributes { "cancel falling damage" 1 "blast dmg to self increased" 0 } } TFBot { Template T_TFBot_Giant_Demo_RapidFire_FixIcons } TFBot { Template T_TFBot_Giant_Demo_RapidFire_FixIcons } } } WaveSpawn { Name "9a-Tank" //WaitForAllDead "Pressure-Test" TotalCount 1 WaitBeforeStarting 15 TotalCurrency 200 Tank { Health 20000 Name "tankboss" Speed 75 StartingPathTrackNode "boss_path_0_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "9a" //WaitForAllDead "Pressure-Test" Where spawnbot TotalCount 32 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 80 TFBot { Template T_TFBot_Soldier_Bison Skill Normal } } WaveSpawn { Name "9b-support" WaitForAllSpawned "9a" Where spawnbot Where spawnbot_flank TotalCount 120 MaxActive 6 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 120 Support 1 TFBot { Template T_TFBot_Demoman_Knight Attributes AlwaysCrit } } WaveSpawn { Name "9b-support" WaitForAllSpawned "9a" Where spawnbot Where spawnbot_flank TotalCount 80 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 80 Support 1 TFBot { Template T_TFBot_Soldier_Bison Attributes AlwaysCrit Skill Hard } } WaveSpawn { Name "9b" WaitForAllSpawned "9a" Where spawnbot TotalCount 6 MaxActive 4 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 20 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Pyro_Dragon_Fury_Spammer } TFBot { Template T_TFBot_Giant_Medic_Kritzkrieg } } } } } // Changelog // Wave 1 // Add 2 Spy Support InitialCooldown 30 CooldownTime 45 // Wave 2 // Subwave 2b (2a Subwave must all dead) // Add 3 KGB Heavy Inf Support TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 7 TotalCurrency 0 // Changelog // Add Wave 3 and 4 // Changelog // Wave 1 // Change Detonator Pyro to Soldier with Normal AI // Wave 4 // Add Squad Crit Direct Hit Soldier from 4 Squad to 6 Squad (First Squad always go spawnbot_flank_short, Other Squad have random between spawnbot and spawnbot_flank_short) // Change Squad Crit Direct Hit Soldier WaitBetweenSpawns from 6 to 4 // Add 2 Giant Rapid Fire Demoman Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 20 TotalCurrency 100 // Decreased TotalCurrency in Giant Burst Fire Soldier With Uber Medic Squad from 200 to 100 // Support Change WaitBetweenSpawns from 1.5 to 1, Change MaxActive from 9 to 7 // Changelog // Wave 2 and 3 use bombpath_flank instead bombpath_main // Changelog // Wave 3 // Squad in 3b Change TotalCurrency 160 to 100 // Add 20 Soldier with Normal AI/Huntsman in 3c (Where spawnbot_invasion TotalCount 20 MaxActive 10 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 60) and move giant demoman WaitForAllSpawned "3c" // Wave 4 // Crit Direct Hit Soldier Squad was change squad member from soldier to huntsman // Add 30 Scout with Easy AI and Giant Burst Fire Soldier Squad in 4b subwave // Move Giant Scout and Giant Rapid Fire Demoman and support to 4c subwave // Changelog // Wave 4 // Fixed 30 Scout with Easy AI, Maxactive 10 to 8, SpawnCount 2 to 1, WaitBetweenSpawns 3 to 1 // Changelog // Wave 1 // Change Axeti Pyro to Volcano Pyro // Add 1 more Armored Volcano Pyro + Uber Medic Pair // Wave 2 // Remove Uber Medic from Giant Dragon Fury Pyro // Wave 3 // Add Demoknight Support Limited // Changelog // Wave 2 // Remove KGB Support and Change Pyro + Shotgun Heavy RandomChoice to Support // Wave 3 // Change TotalCount Soldier+Pyro Squad from 32 to 24 // Wave 6 // Tank HP Change from 18k to 15k // Add 3 Waves // Change Log // Wave 2 // Change Giant Fury Pyro + Uber Medic WaitBetweenSpawns from 28 to 15 and increase count from 2 to 3 // Wave 3 // Change Giant Soldier to Giant Battalion Soldier // Increased Armored Big-Heal Medic from 1 to 2 // Wave 4 // Giant Rapid Fire Demo Change SpawnCount from 1 to 2, MaxActive from 2 to 4, TotalCount from 2 to 4 // Change AlwaysFire Pyro to Dragon Fury Pyro Change SpawnCount from 1 to 4, MaxActive from 1 to 4, TotalCount from 2 to 8, WaitBetweenSpawns from 15 to 3 // Moved GRU Ignited Heavy to spawnbot_flank_hard // Wave 5 // Added Armored Shield Medic on Giant Heavy // Wave 6 // Ignited Soldier Change MaxActive from 4 to 8, WaitBetweenSpawns from 5 to 3 // Wave 7 // Change Crit Demoknight to Non-Crit Direct Hit Soldier Hard AI // Change Demoman to Loch-n-Load Demoman Hard AI // Wave 8 // Change Giant Flare Pyro to Giant Extendo Pyro // Change Giant Burst Fire Demo to Giant Deflector Heavy and 2nd Giant Heavy WaitBeforeStarting Change from 38 to 32 // Changelog // Wave 2 // Reduce Giant Fury Pyro + Uber Medic MaxActive from 8 to 5