#base robot_standard.pop #base robot_giant.pop #base robot_skangus.pop WaveSchedule { StartingCurrency 400 CanBotsAttackWhileInSpawnRoom No RespawnWaveTime 2 Mission { Where spawnbot Objective DestroySentries CooldownTime 30 TFBot { Template T_TFBot_SentryBuster_NoDodge } } Mission { Objective Spy Where spawnbot_topflank BeginAtWave 4 RunForThisManyWaves 1 CooldownTime 30 InitialCooldown 20 DesiredCount 6 TFBot { Template T_TFBot_Spy } } Wave // Wave 2 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`bombpath_choose_random_relay`, `Trigger`) " } WaveSpawn { Name 1a Where spawnbot TotalCount 8 MaxActive 8 SpawnCount 4 WaitBeforeStarting 5 WaitBetweenSpawns 9 TotalCurrency 50 TFBot { Class Heavyweapons Name "Heavy" Skill Easy Tag forcefollowbombpath Tag noflank } } WaveSpawn { Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 23 WaitBetweenSpawns 9 TotalCurrency 25 TFBot { Class Heavyweapons Name "Heavy" Skill Easy Tag forcefollowbombpath Tag noflank } } WaveSpawn { Name 1b Where spawnbot TotalCount 12 MaxActive 12 SpawnCount 1 WaitForAllDead 1a WaitBeforeStarting 6 WaitBetweenSpawns 1 TotalCurrency 75 TFBot { Class Heavyweapons Name "Heavy" Skill Easy Tag forcefollowbombpath Tag noflank } } WaveSpawn { // Name 1a Where spawnbot TotalCount 30 MaxActive 10 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 250 RandomChoice { TFBot { Class Scout Skill Easy Tag forcefollowbombpath Tag noflank } TFBot { Class Scout Skill Normal WeaponRestrictions MeleeOnly Tag forcefollowbombpath Tag noflank } } } WaveSpawn { Where spawnbot TotalCount 8 MaxActive 8 SpawnCount 8 WaitForAllSpawned 1b WaitBeforeStarting 0 WaitBetweenSpawns 0.1 TotalCurrency 400 TFBot { Class Soldier Skill Hard Tag forcefollowbombpath ClassIcon soldier_directhit Item "The Direct Hit" Item "Breach and Bomb" } } } Wave // Wave 2 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`bombpath_choose_random_relay`, `Trigger`) " } WaveSpawn { Name 2a Where spawnbot TotalCount 16 MaxActive 8 SpawnCount 8 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 50 TFBot { Template T_TFBot_Sniper_Huntsman Tag forcefollowbombpath } } WaveSpawn { Name 2b Where spawnbot_left TotalCount 3 MaxActive 3 SpawnCount 1 WaitForAllSpawned 2a WaitBeforeStarting 0 WaitBetweenSpawns 12 TotalCurrency 300 TFBot { Template T_TFBot_Giant_Soldier Tag forcefollowbombpath Tag noflank } } WaveSpawn { Name 2b Where spawnbot TotalCount 18 MaxActive 18 SpawnCount 3 WaitForAllDead 2a WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 50 TFBot { Template T_TFBot_Sniper_Huntsman Tag forcefollowbombpath } } WaveSpawn { Name 2c Where spawnbot_right_back TotalCount 8 MaxActive 8 SpawnCount 4 WaitForAllSpawned 2b WaitBeforeStarting 3 WaitBetweenSpawns 12 TotalCurrency 400 Squad { TFBot { Template T_TFBot_Giant_DemoMan Tag forcefollowbombpath Tag noflank } TFBot { Template T_TFBot_Sniper_Huntsman Tag forcefollowbombpath Tag noflank } TFBot { Template T_TFBot_Sniper_Huntsman Tag forcefollowbombpath Tag noflank } TFBot { Template T_TFBot_Sniper_Huntsman Tag forcefollowbombpath Tag noflank } } } } Wave // Wave 2 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) EntFire(`spawnbot_placeholder1`, `Disable`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`bombpath_choose_middle_relay`, `Trigger`) " } WaveSpawn { Name 3d_buffer Where spawnbot_placeholder1 TotalCount 1 MaxActive 1 SpawnCount 1 WaitForAllSpawned 3c WaitBeforeStarting 0 WaitBetweenSpawns 30 Support Limited TotalCurrency 0 RandomChoice { RandomChoice { TFBot { Class Scout Tag killme } } } } WaveSpawn { Name 3a Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 250 Tank { Health 17500 Speed 75 Name "tankboss" StartingPathTrackNode "boss_path_middle_1" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } OnKilledOutput { Target boss_dead_middle_relay Action Trigger } } } WaveSpawn { Name 3b Where spawnbot_topflank TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 15 WaitBetweenSpawns 30 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Scout_Laser Attributes Aggressive Attributes IgnoreFlag Tag fm_scout_boss Tag flankpusher_hatch Tag nav_prefer_flank_right Tag doesnottaketopfalldamage } } WaveSpawn { Name 3b Where spawnbot_topflank TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 25 WaitBetweenSpawns 30 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Scout_Laser Attributes Aggressive Attributes IgnoreFlag Tag fm_scout_boss Tag flankpusher_hatch Tag nav_prefer_flank_left Tag doesnottaketopfalldamage } } WaveSpawn { Name 3b Where spawnbot_topflank TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 35 WaitBetweenSpawns 30 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Scout_Laser Attributes Aggressive Attributes IgnoreFlag Tag fm_scout_boss Tag flankpusher_hatch Tag nav_prefer_flank_middle Tag doesnottaketopfalldamage } } WaveSpawn { Name 3b Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 45 WaitBetweenSpawns 10 TotalCurrency 150 LastSpawnOutput { Target gamerules Action RunScriptCode Param " EntFire(`spawnbot_placeholder1`, `Enable`, null, 5) " } TFBot { Template T_TFBot_Giant_Scout_Laser Item "Ye Oiled Baker Boy" } } WaveSpawn { Name 3c Where spawnbot_right TotalCount 18 MaxActive 18 SpawnCount 1 WaitForAllDead 3a WaitBeforeStarting 0 WaitBetweenSpawns 0.5 TotalCurrency 50 DoneOutput { Target gamerules Action RunScriptCode Param " EntFire(`spawnbot_placeholder1`, `Enable`, null, 0) " } TFBot { Template T_TFBot_Soldier_Extended_Concheror Tag forcefollowbombpath Skill Easy // Item "The Liberty Launcher" CharacterAttributes { "damage bonus" 0.7 "fire rate bonus" 1.35 "increase buff duration" 9.0 } } } WaveSpawn { Name 3d Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 1 WaitForAllSpawned 3d_buffer WaitBeforeStarting 0 WaitBetweenSpawns 8 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Scout_Laser Item "Ye Oiled Baker Boy" Tag forcefollowbombpath } } } Wave // Wave 2 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`bombpath_choose_random_relay`, `Trigger`) " } WaveSpawn { Name 4a Where spawnbot TotalCount 7 MaxActive 7 SpawnCount 7 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 500 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_BrassBeast_Hatted Tag forcefollowbombpath } TFBot { Template T_TFBot_Soldier_Extended_Battalion } TFBot { Template T_TFBot_Soldier_Extended_Battalion } TFBot { Template T_TFBot_Soldier_Extended_Battalion } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } } } WaveSpawn { Name 4b Where spawnbot_right_back TotalCount 7 MaxActive 7 SpawnCount 7 WaitForAllDead 4a WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 500 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_BrassBeast_Hatted Tag forcefollowbombpath } TFBot { Template T_TFBot_Soldier_Extended_Battalion } TFBot { Template T_TFBot_Soldier_Extended_Battalion } TFBot { Template T_TFBot_Soldier_Extended_Battalion } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } } } WaveSpawn { Name 4c Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 100 MaxActive 7 SpawnCount 1 WaitForAllSpawned 4b WaitBeforeStarting 15 WaitBetweenSpawns 1 Support 1 TotalCurrency 100 RandomChoice { TFBot { Class Demoman Skill Normal } TFBot { Class Demoman Skill Normal } TFBot { Class Demoman Skill Normal } TFBot { Class Demoman Skill Normal Attributes Aggressive Attributes IgnoreFlag Tag nav_prefer_flank_left Tag flankpusher_shallow_left Tag fm_demo } TFBot { Class Demoman Skill Normal Attributes Aggressive Attributes IgnoreFlag Tag nav_prefer_flank_middle Tag flankpusher_shallow_middle Tag fm_demo } TFBot { Class Demoman Skill Normal Attributes Aggressive Attributes IgnoreFlag Tag nav_prefer_flank_right Tag flankpusher_shallow_right Tag fm_demo } } } } Wave // Wave 2 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`bombpath_choose_random_relay`, `Trigger`) " } WaveSpawn { Name 5a Where spawnbot TotalCount 30 MaxActive 10 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0.4 TotalCurrency 200 TFBot { Template T_TFBot_Soldier_Direct Tag forcefollowbombpath } } WaveSpawn { Name 5b Where spawnbot_topflank TotalCount 8 MaxActive 6 SpawnCount 2 WaitBeforeStarting 2 WaitBetweenSpawns 12 TotalCurrency 75 Squad { TFBot { Template T_TFBot_Pyro_NoReflect Skill Expert Attributes Aggressive Attributes IgnoreFlag Tag nav_prefer_flank_auto_long Tag flankpusher_auto_deep_long Tag fm_pyro Tag doesnottaketopfalldamage } TFBot { Template T_TFBot_Medic_BigHeal Tag doesnottaketopfalldamage } } } WaveSpawn { Name 5b Where spawnbot_topflank TotalCount 8 MaxActive 6 SpawnCount 2 WaitBeforeStarting 8 WaitBetweenSpawns 12 TotalCurrency 75 Squad { TFBot { Template T_TFBot_Pyro_NoReflect Skill Expert Attributes Aggressive Attributes IgnoreFlag Tag nav_prefer_flank_auto_short Tag flankpusher_auto_deep_short Tag fm_pyro Tag doesnottaketopfalldamage } TFBot { Template T_TFBot_Medic_BigHeal Tag doesnottaketopfalldamage } } } WaveSpawn { Name 5c Where spawnbot TotalCount 12 MaxActive 12 SpawnCount 3 WaitForAllSpawned 5a WaitBeforeStarting 0 WaitBetweenSpawns 14 TotalCurrency 700 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer Tag forcefollowbombpath } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } } } WaveSpawn { Name 5d Where spawnbot TotalCount 50 MaxActive 8 SpawnCount 1 WaitForAllDead 5b WaitBeforeStarting 0 WaitBetweenSpawns 0.8 Support 1 TotalCurrency 50 TFBot { Class Scout Skill Easy Tag forcefollowbombpath } } } Wave // Wave 2 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`bombpath_choose_random_relay`, `Trigger`) " } WaveSpawn { Name 6a Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 1200 TFBot { Template T_TFBot_Giant_Soldier_Crit Tag forcefollowbombpath } } WaveSpawn { Name 6b Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 1 WaitForAllSpawned 6a WaitBeforeStarting 5 WaitBetweenSpawns 1 TotalCurrency 300 TFBot { Template T_TFBot_Giant_Scout_Laser Item "Ye Oiled Baker Boy" Tag forcefollowbombpath } } WaveSpawn { Name 6c Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 1 WaitForAllSpawned 6b WaitBeforeStarting 5 WaitBetweenSpawns 1 TotalCurrency 300 TFBot { Template T_TFBot_Giant_Scout_Laser Item "Ye Oiled Baker Boy" Tag forcefollowbombpath } } WaveSpawn { Name 6d Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 1 WaitForAllSpawned 6c WaitBeforeStarting 5 WaitBetweenSpawns 12 TotalCurrency 300 TFBot { Template T_TFBot_Giant_Heavyweapons_BrassBeast_Hatted Tag forcefollowbombpath } } WaveSpawn { Where spawnbot TotalCount 400 MaxActive 22 SpawnCount 1 Support 1 WaitBeforeStarting 0 WaitBetweenSpawns 0.25 TotalCurrency 400 RandomChoice { TFBot { Class Scout WeaponRestrictions MeleeOnly Tag forcefollowbombpath Skill Expert } TFBot { Class Scout WeaponRestrictions MeleeOnly Tag forcefollowbombpath Skill Expert } TFBot { Class Scout WeaponRestrictions MeleeOnly Tag forcefollowbombpath Skill Expert } TFBot { Class Scout Skill Easy Tag forcefollowbombpath } TFBot { Class Scout Skill Easy Tag forcefollowbombpath } TFBot { Class Soldier Skill Easy Tag forcefollowbombpath } } } } Wave // Wave 2 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode // Spawns in this wave happen based on amount of subwaves cleared/spawned Param " EntFire(`bombpath_choose_random_relay`, `Trigger`) IncludeScript(`skangus_int_w7_spawnmanager.nut`, getroottable()) " } WaveSpawn { Name 7a Where spawnbot TotalCount 32 MaxActive 8 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0.1 TotalCurrency 100 LastSpawnOutput { Target gamerules Action RunScriptCode Param "incrementSubwaveCounter()" } TFBot { Template T_TFBot_Sniper_Huntsman } } WaveSpawn { Name 7b Where spawnbot_topflank Where spawnbot_left Where spawnbot_right TotalCount 6 MaxActive 6 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10.5 TotalCurrency 100 LastSpawnOutput { Target gamerules Action RunScriptCode Param "incrementGpyroSubCounter()" } TFBot { Template T_TFBot_Giant_Pyro_NoReflect // Attributes AlwaysFireWeapon Attributes Aggressive Attributes IgnoreFlag Tag nav_prefer_flank_right Tag flankpusher_deep_right Tag fm_pyro_boss Tag doesnottaketopfalldamage } } WaveSpawn { Name 7b Where spawnbot_topflank Where spawnbot_left Where spawnbot_right TotalCount 5 MaxActive 5 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 10.5 TotalCurrency 100 LastSpawnOutput { Target gamerules Action RunScriptCode Param "incrementGpyroSubCounter()" } TFBot { Template T_TFBot_Giant_Pyro_NoReflect // Attributes AlwaysFireWeapon Attributes Aggressive Attributes IgnoreFlag Tag nav_prefer_flank_left Tag flankpusher_deep_left Tag fm_pyro_boss Tag doesnottaketopfalldamage } } WaveSpawn { Name 7b Where spawnbot_topflank Where spawnbot_left Where spawnbot_right TotalCount 5 MaxActive 5 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 10.5 TotalCurrency 100 LastSpawnOutput { Target gamerules Action RunScriptCode Param "incrementGpyroSubCounter()" } TFBot { Template T_TFBot_Giant_Pyro_NoReflect // Attributes AlwaysFireWeapon Attributes Aggressive Attributes IgnoreFlag Tag nav_prefer_flank_middle Tag flankpusher_deep_middle Tag fm_pyro_boss Tag doesnottaketopfalldamage } } WaveSpawn { TotalCurrency 0 Name 7c_prereq Where spawnbot_placeholder1 WaitBeforeStarting 3 Support Limited TFBot { Class Scout Tag killme ClassIcon pyro Health 1 CharacterAttributes { "move speed bonus" 0.01 "health regen" -10 } } } WaveSpawn { Name 7c Where spawnbot TotalCount 6 MaxActive 6 SpawnCount 2 WaitForAllSpawned 7c_prereq WaitBeforeStarting 0 WaitBetweenSpawns 8 DoneOutput { Target gamerules Action RunScriptCode Param "incrementSubwaveCounter()" } TotalCurrency 300 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer } TFBot { Template T_TFBot_Medic_BigHeal } } } WaveSpawn { Name 7c Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 WaitForAllSpawned 7c_prereq WaitBeforeStarting 24 WaitBetweenSpawns 8 DoneOutput { Target gamerules Action RunScriptCode Param "incrementSubwaveCounter()" } TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer } TFBot { Template T_TFBot_Medic_BigHeal } } } WaveSpawn { TotalCurrency 0 Name 7d_prereq Where spawnbot_placeholder2 WaitForAllSpawned 7c_prereq WaitBeforeStarting 2 Support Limited TFBot { Class Scout Tag killme ClassIcon pyro Health 1 CharacterAttributes { "move speed bonus" 0.01 "health regen" -10 } } } WaveSpawn { Name 7d Where spawnbot_right TotalCount 12 MaxActive 12 SpawnCount 6 WaitForAllSpawned 7d_prereq WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 100 LastSpawnOutput { Target gamerules Action RunScriptCode Param "EntFire(`spawnbot_placeholder4`, `Enable`, null, 30)" } DoneOutput { Target gamerules Action RunScriptCode Param "incrementSubwaveCounter()" } RandomChoice { TFBot //No templates because no cosmetics { Class Soldier Skill Expert Item "The Direct Hit" ClassIcon soldier_directhit Attributes Aggressive Attributes IgnoreFlag Attributes AlwaysCrit Tag flankpusher_medium_right Tag nav_prefer_flank_left Tag fm_soldier } TFBot { Class Soldier Skill Expert Item "The Direct Hit" ClassIcon soldier_directhit Attributes Aggressive Attributes IgnoreFlag Attributes AlwaysCrit Tag flankpusher_medium_middle Tag nav_prefer_flank_middle Tag fm_soldier } TFBot { Class Soldier Skill Expert Item "The Direct Hit" ClassIcon soldier_directhit Attributes Aggressive Attributes IgnoreFlag Attributes AlwaysCrit Tag flankpusher_medium_right Tag nav_prefer_flank_right Tag fm_soldier } } } WaveSpawn { TotalCurrency 0 Name 7e_prereq Where spawnbot_placeholder3 WaitForAllSpawned 7d_prereq WaitBeforeStarting 2 Support Limited TFBot { Class Scout Tag killme ClassIcon pyro Health 1 CharacterAttributes { "move speed bonus" 0.01 "health regen" -10 } } } WaveSpawn { TotalCurrency 0 Name 7f_prereq Where spawnbot_placeholder4 WaitForAllSpawned 7e_prereq WaitBeforeStarting 2 Support Limited TFBot { Class Scout Tag killme ClassIcon pyro Health 1 CharacterAttributes { "move speed bonus" 0.01 "health regen" -10 } } } WaveSpawn { Name 7f Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 100 MaxActive 4 SpawnCount 1 WaitForAllSpawned 7f_prereq WaitBeforeStarting 0 WaitBetweenSpawns 0.5 TotalCurrency 100 Support 1 TFBot { Class Pyro Item "The Phlogistinator" Skill Expert } } WaveSpawn { Name 7e Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitForAllSpawned 7e_prereq WaitBeforeStarting 0 WaitBetweenSpawns 0.4 TotalCurrency 0 Tank { Health 14500 Speed 75 Name "tankboss" Skin 1 StartingPathTrackNode "boss_path_left_1" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } OnKilledOutput { Target boss_dead_left_relay Action Trigger } } } WaveSpawn { Name 7e Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 0.4 TotalCurrency 0 WaitForAllSpawned 7e_prereq Tank { Health 14500 Speed 75 Name "tankboss" Skin 1 StartingPathTrackNode "boss_path_middle_1" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } OnKilledOutput { Target boss_dead_middle_relay Action Trigger } } } } }