#base robot_giant.pop #base robot_standard.pop WaveSchedule { StartingCurrency 400 RespawnWaveTime 2 CanBotsAttackWhileInSpawnRoom No AddSentryBusterWhenDamageDealtExceeds 5000 AddSentryBusterWhenKillCountExceeds 15 //// ROBOT TEMPLATES //// Templates { T_TFBot_Heavy_Shotgun_Ambusher { Name "Ambusher Heavy" Class Heavy ClassIcon heavy_panic_attack_kai Skill Hard Health 900 Scale 1.4 Attributes HoldFireUntilFullReload WeaponRestrictions SecondaryOnly MaxVisionRange 500 Tag flank Item "Panic Attack Shotgun" Item "Mining Light" CharacterAttributes { "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "airblast vertical vulnerability multiplier" 0.5 } ItemAttributes { ItemName "Panic Attack Shotgun" "damage penalty" 0.6 "fire rate penalty" 0.4 "faster reload rate" 0.8 "clip size bonus" 1.25 } } } //// MISSION BOTS //// Mission // Sentry Buster { Objective DestroySentries Where spawnbot BeginAtWave 1 RunForThisManyWaves 7 DesiredCount 1 InitialCooldown 32 CooldownTime 32 TFBot { Template T_TFBot_SentryBuster } } Mission // Sniper (Wave 5) { Objective Sniper Where spawnbot_right BeginAtWave 5 RunForThisManyWaves 1 DesiredCount 2 InitialCooldown 16 CooldownTime 32 TFBot { Template T_TFBot_Sniper } } Mission // Spy (Wave 7) { Objective Spy Where spawnbot_right BeginAtWave 7 RunForThisManyWaves 1 DesiredCount 2 InitialCooldown 15 CooldownTime 32 TFBot { Template T_TFBot_Spy } } //// WAVES //// Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`init_wave_relay_main`, `Trigger`) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } // Subwave 1 WaveSpawn // 8 Soldiers and 16 Scouts { Name "Wave1_Subwave1_SoldierSquads" Where spawnbot TotalCount 24 MaxActive 12 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 240 Squad { TFBot { Class Soldier Skill Normal } TFBot { Class Scout Skill Easy } TFBot { Class Scout Skill Easy } } } WaveSpawn // 24 KGB Heavies { Name "Wave1_Subwave1_KGBHeavies" Where spawnbot_flank TotalCount 24 MaxActive 6 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 160 TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ CharacterAttributes { "cancel falling damage" 1 } } } // Subwave 2 WaveSpawn // 18 Soldiers { Name "Wave1_Subwave2_Soldiers" WaitForAllSpawned "Wave1_Subwave1_SoldierSquads" Where spawnbot TotalCount 18 MaxActive 6 SpawnCount 2 WaitBeforeStarting 16 WaitBetweenSpawns 4 TotalCurrency 160 TFBot { Class Soldier Skill Normal } } WaveSpawn // 24 Bowmen { Name "Wave1_Subwave2_Bowmen" WaitForAllSpawned "Wave1_Subwave1_SoldierSquads" Where spawnbot TotalCount 24 MaxActive 12 SpawnCount 8 WaitBeforeStarting 16 WaitBetweenSpawns 12 TotalCurrency 240 TFBot { Template T_TFBot_Sniper_Huntsman Skill Normal } } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`init_wave_relay_main`, `Trigger`) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } //Subwave 1 WaveSpawn // 2 GPyros { Name "Wave2_Subwave1_GPyros" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 20 TotalCurrency 250 TFBot { Template T_TFBot_Giant_Pyro Attributes AlwaysFireWeapon } } WaveSpawn // 15 Demos { Name "Wave2_Subwave1_Demos" Where spawnbot TotalCount 18 MaxActive 9 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 150 TFBot { Class Demoman Skill Easy } } //Subwave 2 WaveSpawn // 2 GPyros + 4 Steelies (2 Squads) { Name "Wave2_Subwave2_GPyros_Steelies" WaitForAllSpawned "Wave2_Subwave1_GPyros" Where spawnbot TotalCount 6 MaxActive 6 SpawnCount 3 WaitBeforeStarting 20 WaitBetweenSpawns 20 TotalCurrency 200 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Giant_Pyro Attributes AlwaysFireWeapon } TFBot { Template T_TFBot_Heavyweapons_Fist } TFBot { Template T_TFBot_Heavyweapons_Fist } } } WaveSpawn { Name "Wave2_Subwave2_Demos" WaitForAllSpawned "Wave2_Subwave1_GPyros" Where spawnbot_flank TotalCount 12 MaxActive 8 SpawnCount 6 WaitBeforeStarting 20 WaitBetweenSpawns 20 TotalCurrency 100 TFBot { Class Demoman Skill Easy CharacterAttributes { "cancel falling damage" 1 } } } WaveSpawn // Support SG Heavy Squads { Name "Wave2_Subwave2_SGHeavy_Support" WaitForAllSpawned "Wave2_Subwave1_GPyros" Where spawnbot_flank Support 1 TotalCount 24 MaxActive 6 SpawnCount 2 WaitBeforeStarting 20 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Heavyweapons_Shotgun Skill Normal CharacterAttributes { "cancel falling damage" 1 } } } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`init_wave_relay_alt`, `Trigger`) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } // Subwave 1 WaveSpawn // 10 Demoknights { Name "Wave3_Subwave1_Demoknights" Where spawnbot_flank TotalCount 10 MaxActive 10 SpawnCount 10 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Template T_TFBot_Demoman_Knight CharacterAttributes { "cancel falling damage" 1 } } } WaveSpawn // 1 GSoldier and 4 Heavies { Name "Wave3_Subwave1_GSoldier" WaitForAllSpawned "Wave3_Subwave1_Demoknights" Where spawnbot TotalCount 5 MaxActive 5 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 40 Squad { TFBot { Template T_TFBot_Giant_Soldier } TFBot { Class Heavy Skill Easy } TFBot { Class Heavy Skill Easy } TFBot { Class Heavy Skill Easy } TFBot { Class Heavy Skill Easy } } } WaveSpawn // 16 Demoknights { Name "Wave3_Subwave1_Demoknights2" WaitForAllSpawned "Wave3_Subwave1_Demoknights" Where spawnbot_flank TotalCount 16 MaxActive 16 SpawnCount 16 WaitBeforeStarting 20 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Template T_TFBot_Demoman_Knight CharacterAttributes { "cancel falling damage" 1 } } } WaveSpawn // 1 GSoldier and 4 Heavies { Name "Wave3_Subwave1_GSoldier2" WaitForAllSpawned "Wave3_Subwave1_Demoknights2" Where spawnbot TotalCount 5 MaxActive 5 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 40 Squad { TFBot { Template T_TFBot_Giant_Soldier } TFBot { Class Heavy Skill Easy } TFBot { Class Heavy Skill Easy } TFBot { Class Heavy Skill Easy } TFBot { Class Heavy Skill Easy } } } // Subwave 2 WaveSpawn // 1 GSoldier and 2 Big-Heal Medics { Name "Wave3_Subwave2_GSoldier" WaitForAllSpawned "Wave3_Subwave1_GSoldier2" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 16 WaitBetweenSpawns 0 TotalCurrency 60 Squad { TFBot { Template T_TFBot_Giant_Soldier } TFBot { Name "Big-Heal Medic" Template T_TFBot_Medic_BigHeal } TFBot { Name "Big-Heal Medic" Template T_TFBot_Medic_BigHeal } } } WaveSpawn // 2 Heavies { Name "Wave3_Subwave2_Heavies" WaitForAllSpawned "Wave3_Subwave2_GSoldier" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 8 WaitBetweenSpawns 0 TotalCurrency 20 TFBot { Class Heavy Skill Easy } } WaveSpawn // 6 Pyros { Name "Wave3_Subwave2_Pyros" WaitForAllSpawned "Wave3_Subwave2_GSoldier" Where spawnbot TotalCount 6 MaxActive 6 SpawnCount 6 WaitBeforeStarting 8 WaitBetweenSpawns 0 TotalCurrency 60 TFBot { Class Pyro Skill Easy } } WaveSpawn // 1 GBurst and 2 Big-Heal Medics { Name "Wave3_Subwave2_GBurst" WaitForAllSpawned "Wave3_Subwave2_GSoldier" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 18 WaitBetweenSpawns 0 TotalCurrency 60 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload } TFBot { Name "Big-Heal Medic" Template T_TFBot_Medic_BigHeal } TFBot { Name "Big-Heal Medic" Template T_TFBot_Medic_BigHeal } } } WaveSpawn // 12 Pyros { Name "Wave3_Subwave2_Pyros2" WaitForAllSpawned "Wave3_Subwave2_GBurst" Where spawnbot_flank TotalCount 12 MaxActive 8 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 60 TFBot { Class Pyro Skill Easy CharacterAttributes { "cancel falling damage" 1 } } } WaveSpawn // 1 GBurst and 2 Big-Heal Medics { Name "Wave3_Subwave2_GBurst2" WaitForAllSpawned "Wave3_Subwave2_GBurst" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 18 WaitBetweenSpawns 0 TotalCurrency 80 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload } TFBot { Name "Big-Heal Medic" Template T_TFBot_Medic_BigHeal } TFBot { Name "Big-Heal Medic" Template T_TFBot_Medic_BigHeal } } } WaveSpawn // 8 Heavies { Name "Wave3_Subwave2_Heavies2" WaitForAllSpawned "Wave3_Subwave2_GBurst2" Where spawnbot_flank TotalCount 8 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 80 TFBot { Class Heavy Skill Easy CharacterAttributes { "cancel falling damage" 1 } } } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " IncludeScript(`tankextensions_main_packed`, getroottable()) IncludeScript(`tankextensions_packed/drilltank_watermine`, getroottable()) EntFire(`init_wave_relay_alt`, `Trigger`) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } WaveSpawn // Drill Tank { Name "Wave4_DrillTank" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 15 WaitBetweenSpawns 0 TotalCurrency 400 FirstSpawnWarningSound "mvm/mvm_tank_start.wav" Tank { Health 25000 Speed 75 Name "drilltank_watermine" ClassIcon tank_drill_lite StartingPathTrackNode "tank_path_drill_1b" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // Ambusher Heavies Group Spawn { Name "Wave4_Support_Ambushers" Where spawnbot_secret Support Limited TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 15 WaitBetweenSpawns 6 TotalCurrency 20 TFBot { Template T_TFBot_Heavy_Shotgun_Ambusher } } WaveSpawn // Ambusher Heavies { Name "Wave4_Support_Ambushers2" Where spawnbot_secret Support 1 TotalCount 20 MaxActive 4 SpawnCount 1 WaitBeforeStarting 16 WaitBetweenSpawns 8 TotalCurrency 80 TFBot { Template T_TFBot_Heavy_Shotgun_Ambusher } } WaveSpawn // Minor Leagues { Name "Wave4_Support_MinorLeagues" Where spawnbot Support 1 TotalCount 40 MaxActive 8 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 100 TFBot { Template T_TFBot_Scout_Sandman } } WaveSpawn // Soldiers { Name "Wave4_Support_Soldiers" Where spawnbot Support 1 TotalCount 30 MaxActive 6 SpawnCount 2 WaitBeforeStarting 16 WaitBetweenSpawns 3 TotalCurrency 100 TFBot { Class Soldier Skill Easy } } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`init_wave_relay_main`, `Trigger`) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } // Subwave 1 WaveSpawn // 24 Pyros { Name "Wave5_Subwave1_Pyros" Where spawnbot_flank TotalCount 24 MaxActive 4 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Class Pyro Skill Easy CharacterAttributes { "cancel falling damage" 1 } } } WaveSpawn // 18 Heavies { Name "Wave5_Subwave1_Heavy" Where spawnbot TotalCount 18 MaxActive 4 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Class Heavy Skill Easy } } WaveSpawn // 16 Steel Gauntlets { Name "Wave5_Subwave1_SteelGauntlets" Where spawnbot_flank TotalCount 16 MaxActive 3 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Template T_TFBot_Heavyweapons_Fist CharacterAttributes { "cancel falling damage" 1 } } } WaveSpawn // 24 Soldiers { Name "Wave5_Subwave1_Soldiers" Where spawnbot_right TotalCount 24 MaxActive 4 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Class Soldier Skill Easy } } WaveSpawn // 3 GHeavies and 3 Quick-Uber Medics { Name "Wave5_Subwave1_GHeavy" Where spawnbot TotalCount 6 MaxActive 3 SpawnCount 2 WaitBeforeStarting 25 WaitBetweenSpawns 20 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons } TFBot { Template T_TFBot_Medic_QuickUber } } } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`init_wave_relay_alt`, `Trigger`) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } WaveSpawn // 1 GDemo Burst + 1 Uber Medic - start of part 1 { Name "Wave6_GBurstDemo1" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 75 Squad { TFBot { Template T_TFBot_Giant_Demo_Burst } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } } } WaveSpawn // Pyro support { Name "Wave6_Pyro_Support" Where spawnbot_left Support 1 TotalCount 40 MaxActive 6 SpawnCount 3 WaitBeforeStarting 1 WaitBetweenSpawns 8 TotalCurrency 100 TFBot { Class Pyro Skill Easy } } WaveSpawn // Ambusher heavies - part 1 { Name "Wave6_Ambusher_Heavies1" Where spawnbot_flank TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 6 WaitBetweenSpawns 12 TotalCurrency 40 TFBot { Template T_TFBot_Heavy_Shotgun_Ambusher CharacterAttributes { "cancel falling damage" 1 } } } WaveSpawn // Flares - part 1 { Name "Wave6_Flares1" Where spawnbot_flank TotalCount 12 MaxActive 6 SpawnCount 3 WaitBeforeStarting 6 WaitBetweenSpawns 6 TotalCurrency 10 TFBot { Template T_TFBot_Pyro_Flaregun CharacterAttributes { "cancel falling damage" 1 } } } WaveSpawn // 1 GSoldier Spammer + 1 Uber Medic - start of part 2 { Name "Wave6_GSpammerSoldier1" WaitForAllSpawned "Wave6_GBurstDemo1" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 30 WaitBetweenSpawns 0 TotalCurrency 75 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } } } WaveSpawn // Ambusher heavies - part 2 { Name "Wave6_Ambusher_Heavies1" WaitForAllSpawned "Wave6_GSpammerSoldier1" Where spawnbot_flank TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 6 WaitBetweenSpawns 12 TotalCurrency 40 TFBot { Template T_TFBot_Heavy_Shotgun_Ambusher CharacterAttributes { "cancel falling damage" 1 } } } WaveSpawn // Heavies - part 2 { Name "Wave6_Heavies1" WaitForAllSpawned "Wave6_GSpammerSoldier1" Where spawnbot_flank TotalCount 12 MaxActive 6 SpawnCount 3 WaitBeforeStarting 6 WaitBetweenSpawns 6 TotalCurrency 10 TFBot { Class Heavy Skill Easy CharacterAttributes { "cancel falling damage" 1 } } } WaveSpawn // 1 GDemo Burst + 1 Uber Medic - start of part 3 { Name "Wave6_GBurstDemo2" WaitForAllSpawned "Wave6_GSpammerSoldier1" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 30 WaitBetweenSpawns 0 TotalCurrency 75 Squad { TFBot { Template T_TFBot_Giant_Demo_Burst } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } } } WaveSpawn // Ambusher heavies - part 3 { Name "Wave6_Ambusher_Heavies3" WaitForAllSpawned "Wave6_GBurstDemo2" Where spawnbot_flank TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 6 WaitBetweenSpawns 12 TotalCurrency 40 TFBot { Template T_TFBot_Heavy_Shotgun_Ambusher CharacterAttributes { "cancel falling damage" 1 } } } WaveSpawn // Heavies - part 3 { Name "Wave6_Heavies2" WaitForAllSpawned "Wave6_GBurstDemo2" Where spawnbot_flank TotalCount 12 MaxActive 6 SpawnCount 3 WaitBeforeStarting 6 WaitBetweenSpawns 6 TotalCurrency 10 TFBot { Class Heavy Skill Easy CharacterAttributes { "cancel falling damage" 1 } } } WaveSpawn // 1 GSoldier Spammer + 1 Uber Medic - start of part 4 { Name "Wave6_GSpammerSoldier2" WaitForAllSpawned "Wave6_GBurstDemo2" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 30 WaitBetweenSpawns 0 TotalCurrency 75 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } } } WaveSpawn // Ambusher heavies - part 4 { Name "Wave6_Ambusher_Heavies4" WaitForAllSpawned "Wave6_GSpammerSoldier2" Where spawnbot_flank TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 6 WaitBetweenSpawns 12 TotalCurrency 40 TFBot { Template T_TFBot_Heavy_Shotgun_Ambusher CharacterAttributes { "cancel falling damage" 1 } } } WaveSpawn // Flares - part 4 { Name "Wave6_Flares2" WaitForAllSpawned "Wave6_GSpammerSoldier2" Where spawnbot_flank TotalCount 12 MaxActive 6 SpawnCount 3 WaitBeforeStarting 6 WaitBetweenSpawns 6 TotalCurrency 10 TFBot { Template T_TFBot_Pyro_Flaregun CharacterAttributes { "cancel falling damage" 1 } } } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " IncludeScript(`tankextensions_main_packed`, getroottable()) IncludeScript(`tankextensions_packed/drilltank_watermine`, getroottable()) EntFire(`init_wave_relay_main`, `Trigger`) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } // Subwave 1 WaveSpawn // Drill Tank { Name "Wave7_DrillTank" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 FirstSpawnWarningSound "mvm/mvm_tank_start.wav" Tank { Health 27500 Speed 75 Name "drilltank_watermine" ClassIcon tank_drill_lite Skin 1 StartingPathTrackNode "tank_path_drill_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // 6 Ambusher Heavies { Name "Wave7_Subwave1_Ambushers" WaitForAllSpawned "Wave7_DrillTank" Where spawnbot_secret TotalCount 6 MaxActive 6 SpawnCount 3 WaitBeforeStarting 5 WaitBetweenSpawns 5 TotalCurrency 40 TFBot { Template T_TFBot_Heavy_Shotgun_Ambusher } } WaveSpawn // 20 Scouts { Name "Wave7_Subwave1_Scouts" WaitForAllSpawned "Wave7_DrillTank" Where spawnbot TotalCount 20 MaxActive 10 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 40 TFBot { Class Scout Skill Easy } } // Subwave 2 WaveSpawn // 1 GPyro { Name "Wave7_Subwave2_GPyro" WaitForAllSpawned "Wave7_DrillTank" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 16 WaitBetweenSpawns 0 TotalCurrency 20 TFBot { Template T_TFBot_Giant_Pyro Attributes AlwaysFireWeapon } } WaveSpawn // 10 Demomen { Name "Wave7_Subwave1_Demomen" WaitForAllSpawned "Wave7_Subwave2_GPyro" Where spawnbot_flank TotalCount 10 MaxActive 10 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 0.1 TotalCurrency 20 TFBot { Class Demoman Skill Easy CharacterAttributes { "cancel falling damage" 1 } } } WaveSpawn // 1 GPyro and 4 Demomen { Name "Wave7_Subwave2_GPyro2" WaitForAllSpawned "Wave7_Subwave2_GPyro" Where spawnbot TotalCount 5 MaxActive 5 SpawnCount 5 WaitBeforeStarting 16 WaitBetweenSpawns 0 TotalCurrency 20 Squad { TFBot { Template T_TFBot_Giant_Pyro Attributes AlwaysFireWeapon } TFBot { Class Demoman Skill Easy } TFBot { Class Demoman Skill Easy } TFBot { Class Demoman Skill Easy } TFBot { Class Demoman Skill Easy } } } WaveSpawn // 8 Heavies { Name "Wave7_Subwave2_Heavies" WaitForAllSpawned "Wave7_Subwave2_GPyro2" Where spawnbot_flank TotalCount 8 MaxActive 8 SpawnCount 2 WaitBeforeStarting 4 WaitBetweenSpawns 2 TotalCurrency 20 TFBot { Class Heavy Skill Easy CharacterAttributes { "cancel falling damage" 1 } } } // Subwave 3 WaveSpawn // 1 GRapid and 2 Quick-Ubers { Name "Wave7_Subwave3_GRapid" WaitForAllSpawned "Wave7_Subwave2_GPyro2" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 16 WaitBetweenSpawns 0 TotalCurrency 40 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } } } WaveSpawn // 4 Heavies { Name "Wave7_Subwave3_Heavies" WaitForAllSpawned "Wave7_Subwave3_GRapid" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 8 WaitBetweenSpawns 0 TotalCurrency 20 TFBot { Class Heavy Skill Easy } } WaveSpawn // 6 Demomen { Name "Wave7_Subwave3_Soldiers" WaitForAllSpawned "Wave7_Subwave3_GRapid" Where spawnbot TotalCount 6 MaxActive 6 SpawnCount 6 WaitBeforeStarting 8 WaitBetweenSpawns 0 TotalCurrency 20 TFBot { Class Demoman Skill Easy } } WaveSpawn // 1 GRapid and 2 Quick-Ubers { Name "Wave7_Subwave3_GRapid2" WaitForAllSpawned "Wave7_Subwave3_GRapid" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 16 WaitBetweenSpawns 0 TotalCurrency 40 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } } } WaveSpawn // 10 Scouts { Name "Wave7_Subwave3_Scouts" WaitForAllSpawned "Wave7_Subwave3_GRapid2" Where spawnbot TotalCount 10 MaxActive 10 SpawnCount 1 WaitBeforeStarting 8 WaitBetweenSpawns 0.1 TotalCurrency 20 TFBot { Class Scout Skill Easy } } WaveSpawn // 4 Ambushers { Name "Wave7_Subwave3_Ambushers" WaitForAllSpawned "Wave7_Subwave3_GRapid2" Where spawnbot_secret TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 8 WaitBetweenSpawns 0 TotalCurrency 20 TFBot { Template T_TFBot_Heavy_Shotgun_Ambusher } } WaveSpawn // 1 GHeavy and 2 Quick-Ubers { Name "Wave7_Subwave3_GHeavy" WaitForAllSpawned "Wave7_Subwave3_GRapid2" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 16 WaitBetweenSpawns 0 TotalCurrency 40 FirstSpawnWarningSound "mvm/giant_heavy/giant_heavy_entrance.wav" TFBot { Name "John Heavyweapons" Template T_TFBot_Giant_Heavyweapons_HealOnKill Attributes UseBossHealthBar Attributes AlwaysCrit Item "Deflector" Item "The U-clank-a" CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } } } WaveSpawn // 8 Demomen { Name "Wave7_Subwave3_Demomen" WaitForAllSpawned "Wave7_Subwave3_GHeavy" Where spawnbot TotalCount 8 MaxActive 8 SpawnCount 8 WaitBeforeStarting 8 WaitBetweenSpawns 0 TotalCurrency 20 TFBot { Class Demoman Skill Easy } } WaveSpawn // 4 Ambushers { Name "Wave7_Subwave3_Ambushers" WaitForAllSpawned "Wave7_Subwave3_GHeavy" Where spawnbot_secret TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 8 WaitBetweenSpawns 0 TotalCurrency 20 TFBot { Template T_TFBot_Heavy_Shotgun_Ambusher } } } }