#base robot_standard_vanilla_kai.pop #base robot_standard_custom_kai.pop #base robot_standard_custom_rafmod_kai.pop #base robot_standard_supercharged_kai.pop #base robot_standard_supercharged_rafmod_kai.pop #base robot_giant_vanilla_kai.pop #base robot_giant_custom_kai.pop #base robot_giant_custom_rafmod_kai.pop #base robot_giant_supercharged_kai.pop #base robot_giant_supercharged_rafmod_kai.pop #base robot_tank_custom_rafmod_kai.pop WaveSchedule { StartingCurrency 400 RespawnWaveTime 1 CanBotsAttackWhileInSpawnRoom No AddSentryBusterWhenDamageDealtExceeds 3000 AddSentryBusterWhenKillCountExceeds 10 AllowBotExtraSlots 1 RobotLimit 25 BodyPartScaleSpeed 10 MissionUnloadOutput { Target BigNet Action RunScriptCode Param " Convars.SetValue(`tf_playergib`, 1) " Delay -1 } //// PRECACHES //// //// POINT TEMPLATES //// PointTemplates { CorePT { OnSpawnOutput { Target BigNet Action RunScriptCode Param " NetProps.SetPropString(Entities.FindByClassname(null, `tf_objective_resource`), `m_iszMvMPopfileName`, `(???) Majesty's Madness`) Convars.SetValue(`tf_playergib`, 0) IncludeScript(`tankextensions_main`) " } // Universal Filters filter_activator_class // Is a Player { "targetname" "filter_is_player" "Negated" "0" "filterclass" "player" } filter_multi // Is a Red Player { "targetname" "filter_is_red_player" "Negated" "0" "FilterType" "0" "Filter01" "filter_redteam" "Filter02" "filter_is_player" } filter_tf_condition // Medigun Uber Filter { "targetname" "filter_is_not_ubered" "Negated" "1" "condition" "5" //medigun uber } filter_tf_condition // Canteen Uber Filter { "targetname" "filter_is_not_ubered2" "Negated" "1" "condition" "52" //canteen uber } filter_tf_condition // MVM Spawn Uber Filter { "targetname" "filter_is_not_ubered3" "Negated" "1" "condition" "51" //hidden uber } filter_tf_condition // Wheel of Fate Uber ilter { "targetname" "filter_is_not_ubered4" "Negated" "1" "condition" "57" //WoF uber } filter_multi // Is an Un-Ubered Red Player { "targetname" "filter_redteam_nouber" "Negated" "0" "FilterType" "0" //and "Filter01" "filter_redteam" "Filter02" "filter_is_not_ubered" "Filter03" "filter_is_not_ubered2" "Filter04" "filter_is_not_ubered3" "Filter05" "filter_is_not_ubered4" "Filter06" "filter_is_player" } filter_multi // Is an Un-Ubered Player { "targetname" "filter_nouber" "Negated" "0" "FilterType" "0" "Filter01" "filter_is_not_ubered" "Filter02" "filter_is_not_ubered2" "Filter03" "filter_is_not_ubered3" "Filter04" "filter_is_not_ubered4" "Filter05" "filter_is_player" } } MissionPT { logic_relay { "targetname" "TankStopRelay" "OnTrigger" "tank_boss*,SetSpeed,0,0,-1" "OnTrigger" "BigNetRunScriptCodePrecacheSound(`doors/heavy_metal_stop1.wav`);EmitSoundEx({sound_name=`doors/heavy_metal_stop1.wav`,pitch = 90,filter_type=5})0-1" "OnTrigger" "BigNetRunScriptCodePrecacheSound(`hl1/ambience/steamburst1.wav`);EmitSoundEx({sound_name=`hl1/ambience/steamburst1.wav`,pitch = 100,filter_type=5})0-1" } logic_relay { "targetname" "TankMoveRelay" "OnTrigger" "tank_boss*,SetSpeed,15,0,-1" "OnTrigger" "tank_boss*,SetSpeed,35,1.5,-1" "OnTrigger" "tank_boss*,SetSpeed,50,3,-1" "OnTrigger" "BigNetRunScriptCodePrecacheSound(`mvm/mvm_tank_horn.wav`);EmitSoundEx({sound_name=`mvm/mvm_tank_horn.wav`,pitch = 85,filter_type=5})0-1" } logic_relay { "targetname" "TankCleanupRelay" "OnTrigger" "tank_boss*,RemoveHealth,100000,0,-1" } } //// ROBOT PTs //// SoldierRedetonatorPT { OnSpawnOutput { Target "RedetonatorWeapon" Action $InheritOwner Param !parent } OnSpawnOutput { Target "RedetonatorWeapon" Action $StartFiring } tf_point_weapon_mimic { "targetname" "RedetonatorWeapon" "WeaponType" "3" "Damage" "90" "SplashRadius" "146" "$firetime" "0.25" "$killicon" "rocket" "$OnFire" "!self,DetonateStickies,,0,-1" } } } //// SPAWNED POINT TEMPLATES //// SpawnTemplate "CorePT" SpawnTemplate "MissionPT" //// ROBOT TEMPLATES //// Templates { T_TFBot_Giant_Soldier_Redetonator { Name "Giant Redetonator Soldier" Class Soldier ClassIcon soldier_explode Skill Expert Health 4000 Attributes MiniBoss WeaponRestrictions PrimaryOnly ShootTemplate { Name "SoldierRedetonatorPT" AttachToProjectile 1 ItemName "TF_WEAPON_ROCKETLAUNCHER" } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "fire rate penalty" 2 "faster reload rate" 0.2 "projectile speed decreased" 0.65 "attach particle effect" "1" } } } //// MISSION BOTS //// Mission // Sentry Buster { Objective DestroySentries Where spawnbot_mission_sentry_buster BeginAtWave 1 RunForThisManyWaves 6 InitialCooldown 30 CooldownTime 30 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster } } Mission // Spy (Wave 1) { Objective Spy Where spawnbot_mission_spy BeginAtWave 1 RunForThisManyWaves 1 InitialCooldown 15 CooldownTime 45 DesiredCount 3 TFBot { Template T_TFBot_Spy } } Mission // Engineer (Wave 1) { Objective Engineer Where spawnbot BeginAtWave 1 RunForThisManyWaves 1 InitialCooldown 60 CooldownTime 60 DesiredCount 1 TFBot { Template T_TFBot_Engineer_Sentry_Teleporter_TeleIn TeleportWhere spawnbot TeleportWhere flankers } } Mission // Sniper (Wave 2) { Objective Sniper Where spawnbot_mission_sniper BeginAtWave 2 RunForThisManyWaves 1 InitialCooldown 45 CooldownTime 30 DesiredCount 2 TFBot { Template T_TFBot_Sniper } } Mission // Engineer (Wave 2-3) { Objective Engineer Where spawnbot BeginAtWave 2 RunForThisManyWaves 2 InitialCooldown 30 CooldownTime 45 DesiredCount 1 TFBot { Template T_TFBot_Engineer_Sentry_Teleporter_TeleIn TeleportWhere spawnbot TeleportWhere flankers } } Mission // Spy (Wave 4) { Objective Spy Where spawnbot_mission_spy BeginAtWave 1 RunForThisManyWaves 1 InitialCooldown 45 CooldownTime 30 DesiredCount 2 TFBot { Template T_TFBot_Spy } } Mission // Engineer (Wave 4) { Objective Engineer Where spawnbot BeginAtWave 4 RunForThisManyWaves 1 InitialCooldown 60 CooldownTime 60 DesiredCount 1 TFBot { Template T_TFBot_Engineer_Sentry_Teleporter_TeleIn TeleportWhere spawnbot TeleportWhere flankers } } //// WAVES //// Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_a_init`, `Trigger`) EntFire(`radio_music_stop`, `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 // 1 GScout { Name "Wave1_Subwave1_GScout" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 40 TFBot { Template T_TFBot_Giant_Scout Skill Normal Attributes HoldFireUntilFullReload } } WaveSpawn // 14 Soldiers { Name "Wave1_Subwave1_Soldiers" WaitForAllSpawned "Wave1_Subwave1_GScout" Where spawnbot TotalCount 14 MaxActive 14 SpawnCount 14 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Class Soldier Skill Easy } } WaveSpawn // Support Demoknights { Name "Wave1_Subwave1_Demoknights" WaitForAllSpawned "Wave1_Subwave1_GScout" Where flankers Support 1 TotalCount 50 MaxActive 6 SpawnCount 3 WaitBeforeStarting 5 WaitBetweenSpawns 15 TotalCurrency 100 TFBot { Template T_TFBot_Demoman_Knight } } WaveSpawn // 1 GBurst Soldier and 1 Quick-Uber Medic { Name "Wave1_Subwave1_GBurstSoldier" WaitForAllSpawned "Wave1_Subwave1_GScout" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 40 Squad { TFBot { Template T_TFBot_Giant_Soldier_Burst } TFBot { Template T_TFBot_Medic_QuickUber } } } WaveSpawn // 14 Bat Scouts { Name "Wave1_Subwave1_Scouts" WaitForAllSpawned "Wave1_Subwave1_GBurstSoldier" Where spawnbot_invasion TotalCount 14 MaxActive 6 SpawnCount 2 WaitBeforeStarting 2 WaitBetweenSpawns 2 TotalCurrency 20 TFBot { Template T_TFBot_Scout_Melee } } WaveSpawn // 3 Heavies and 3 Quick-Uber Medics { Name "Wave1_Subwave1_Heavies" WaitForAllSpawned "Wave1_Subwave1_GBurstSoldier" Where spawnbot TotalCount 6 MaxActive 6 SpawnCount 2 WaitBeforeStarting 8 WaitBetweenSpawns 2 TotalCurrency 40 Squad { TFBot { Class Heavy Skill Easy } TFBot { Template T_TFBot_Medic_QuickUber } } } WaveSpawn // 1 GBurst Soldier and 1 Quick-Uber Medic { Name "Wave1_Subwave1_GBurstSoldier2" WaitForAllSpawned "Wave1_Subwave1_GScout" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 18 WaitBetweenSpawns 0 TotalCurrency 40 Squad { TFBot { Template T_TFBot_Giant_Soldier_Burst } TFBot { Template T_TFBot_Medic_QuickUber } } } WaveSpawn // 14 Bat Scouts { Name "Wave1_Subwave1_Scouts2" WaitForAllSpawned "Wave1_Subwave1_GBurstSoldier2" Where spawnbot_invasion TotalCount 14 MaxActive 6 SpawnCount 2 WaitBeforeStarting 2 WaitBetweenSpawns 2 TotalCurrency 20 TFBot { Template T_TFBot_Scout_Melee } } WaveSpawn // 12 Soldiers { Name "Wave1_Subwave1_Soldiers2" WaitForAllSpawned "Wave1_Subwave1_GBurstSoldier2" Where spawnbot TotalCount 12 MaxActive 8 SpawnCount 4 WaitBeforeStarting 2 WaitBetweenSpawns 5 TotalCurrency 40 TFBot { Class Soldier Skill Easy } } // Subwave 2 WaveSpawn // 1 GScout { Name "Wave1_Subwave2_GScout" WaitForAllSpawned "Wave1_Subwave1_GBurstSoldier2" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 18 WaitBetweenSpawns 0 TotalCurrency 40 TFBot { Template T_TFBot_Giant_Scout Skill Normal Attributes HoldFireUntilFullReload } } WaveSpawn // 6 Demomen and 6 Quick-Uber Medics { Name "Wave1_Subwave2_Demomen" WaitForAllSpawned "Wave1_Subwave2_GScout" Where spawnbot TotalCount 12 MaxActive 6 SpawnCount 2 WaitBeforeStarting 2 WaitBetweenSpawns 3 TotalCurrency 60 Squad { TFBot { Class Demoman Skill Hard } TFBot { Template T_TFBot_Medic_QuickUber } } } WaveSpawn // 6 Steel Gauntlets { Name "Wave1_Subwave2_SteelGauntlets" WaitForAllSpawned "Wave1_Subwave2_GScout" Where spawnbot TotalCount 6 MaxActive 4 SpawnCount 2 WaitBeforeStarting 2 WaitBetweenSpawns 6 TotalCurrency 60 TFBot { Template T_TFBot_Heavy_SteelFist } } WaveSpawn // 12 Heavies { Name "Wave1_Subwave2_Heavies" WaitForAllSpawned "Wave1_Subwave2_GScout" Where flankers TotalCount 12 MaxActive 6 SpawnCount 1 WaitBeforeStarting 2 WaitBetweenSpawns 1 TotalCurrency 60 TFBot { Class Heavy Skill Easy } } WaveSpawn // 6 Demomen and 6 Quick-Uber Medics { Name "Wave1_Subwave2_Demomen2" WaitForAllSpawned "Wave1_Subwave2_Demomen" Where spawnbot TotalCount 12 MaxActive 6 SpawnCount 2 WaitBeforeStarting 3 WaitBetweenSpawns 3 TotalCurrency 60 Squad { TFBot { Class Demoman Skill Hard } TFBot { Template T_TFBot_Medic_QuickUber } } } WaveSpawn // 6 Steel Gauntlets { Name "Wave1_Subwave2_SteelGauntlets2" WaitForAllSpawned "Wave1_Subwave2_Demomen" Where spawnbot TotalCount 6 MaxActive 4 SpawnCount 2 WaitBeforeStarting 6 WaitBetweenSpawns 6 TotalCurrency 60 TFBot { Template T_TFBot_Heavy_SteelFist } } WaveSpawn // 12 Heavies { Name "Wave1_Subwave2_Heavies2" WaitForAllSpawned "Wave1_Subwave2_Demomen" Where flankers TotalCount 12 MaxActive 9 SpawnCount 6 WaitBeforeStarting 4 WaitBetweenSpawns 8 TotalCurrency 60 TFBot { Class Heavy Skill Easy } } // Subwave 3 WaveSpawn // 1 GBurst Soldier and 3 Quick-Uber Medics { Name "Wave1_Subwave3_GBurstSoldier" WaitForAllSpawned "Wave1_Subwave2_Demomen2" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 12 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Soldier_Burst } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } } } WaveSpawn // 14 Demomen { Name "Wave1_Subwave3_Demomen" WaitForAllSpawned "Wave1_Subwave3_GBurstSoldier" Where spawnbot_invasion TotalCount 14 MaxActive 14 SpawnCount 1 WaitBeforeStarting 6 WaitBetweenSpawns 0.1 TotalCurrency 60 TFBot { Class Demoman Skill Easy } } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_a_init`, `Trigger`) EntFire(`radio_music_stop`, `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 // 1 Tank { Name "Wave2_Subwave1_Tank" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 Tank { Name "tankboss" Health 25000 Speed 75 StartingPathTrackNode "tank_path_a1" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // 1 GHeavy { Name "Wave2_Subwave1_GHeavy" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 60 TFBot { Template T_TFBot_Giant_Heavy } } WaveSpawn // Support Scouts { Name "Wave2_Subwave1_Scouts" WaitForAllSpawned "Wave2_Subwave1_GHeavy" Where spawnbot Support 1 TotalCount 100 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 8 TotalCurrency 100 TFBot { Class Scout Skill Easy } } WaveSpawn // 1 GRapid Demo and 2 Banner Soldiers { Name "Wave2_Subwave1_GRapidDemo" WaitForAllSpawned "Wave2_Subwave1_GHeavy" Where flankers TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 60 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Giant_Demoman_Spammer } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner } } } WaveSpawn // 2 Barrage Soldiers and 4 Quick-Uber Medics { Name "Wave2_Subwave1_BarrageSoldiers" WaitForAllSpawned "Wave2_Subwave1_GRapidDemo" Where spawnbot_tank TotalCount 6 MaxActive 6 SpawnCount 3 WaitBeforeStarting 2 WaitBetweenSpawns 10 TotalCurrency 60 Squad { TFBot { Template T_TFBot_Soldier_Barrage } TFBot { Template T_TFBot_Medic_Uber } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // 1 GRapid Demo and 2 Banner Soldiers { Name "Wave2_Subwave1_GRapidDemo2" WaitForAllSpawned "Wave2_Subwave1_GRapidDemo" Where flankers TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 18 WaitBetweenSpawns 0 TotalCurrency 60 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Giant_Demoman_Spammer } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner } } } WaveSpawn // 2 Barrage Soldiers and 4 Quick-Uber Medics { Name "Wave2_Subwave1_BarrageSoldiers" WaitForAllSpawned "Wave2_Subwave1_GRapidDemo2" Where spawnbot_tank TotalCount 6 MaxActive 6 SpawnCount 3 WaitBeforeStarting 2 WaitBetweenSpawns 10 TotalCurrency 60 Squad { TFBot { Template T_TFBot_Soldier_Barrage } TFBot { Template T_TFBot_Medic_Uber } TFBot { Template T_TFBot_Medic_Uber } } } // Subwave 2 WaveSpawn // 1 GRapid Demo and 2 Banner Soldiers { Name "Wave2_Subwave1_GRapidDemo3" WaitForAllSpawned "Wave2_Subwave1_GRapidDemo2" Where flankers TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 18 WaitBetweenSpawns 0 TotalCurrency 60 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Giant_Demoman_Spammer } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner } } } WaveSpawn // 14 Conch Soldiers { Name "Wave2_Subwave1_ConchSoldiers" WaitForAllSpawned "Wave2_Subwave1_GRapidDemo3" Where spawnbot_invasion TotalCount 14 MaxActive 8 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 40 TFBot { Template T_TFBot_Soldier_Extended_Concheror Skill Easy } } WaveSpawn // 1 GRapid Demo and 2 Banner Soldiers { Name "Wave2_Subwave1_GRapidDemo4" WaitForAllSpawned "Wave2_Subwave1_GRapidDemo3" Where flankers TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 18 WaitBetweenSpawns 0 TotalCurrency 60 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Giant_Demoman_Spammer } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner } } } WaveSpawn // 14 Conch Soldiers { Name "Wave2_Subwave1_ConchSoldiers2" WaitForAllSpawned "Wave2_Subwave1_GRapidDemo4" Where spawnbot_invasion TotalCount 14 MaxActive 8 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 40 TFBot { Template T_TFBot_Soldier_Extended_Concheror Skill Easy } } // Subwave 3 WaveSpawn // 1 GHeavy and 4 Banner Soldiers { Name "Wave2_Subwave3_GHeavy" WaitForAllSpawned "Wave2_Subwave1_GRapidDemo4" Where spawnbot TotalCount 5 MaxActive 5 SpawnCount 5 WaitBeforeStarting 18 WaitBetweenSpawns 0 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Heavy } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner } } } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_a_init`, `Trigger`) EntFire(`radio_music_stop`, `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 // 1 GLaser Heavy, 1 GCharged Medic and 3 Demomen { Name "Wave3_Subwave1_GLaserHeavy" Where spawnbot_tank TotalCount 5 MaxActive 5 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Giant_Heavy_Laser } TFBot { Template T_TFBot_Giant_Medic_Charged } TFBot { Class Demoman Skill Expert } TFBot { Class Demoman Skill Expert } TFBot { Class Demoman Skill Expert } } } WaveSpawn // 10 Pyros { Name "Wave3_Subwave1_Pyros" WaitForAllSpawned "Wave3_Subwave1_GLaserHeavy" Where spawnbot_tank TotalCount 10 MaxActive 10 SpawnCount 10 WaitBeforeStarting 5 WaitBetweenSpawns 0 TotalCurrency 60 TFBot { Class Pyro Skill Normal Attributes AlwaysFireWeapon } } WaveSpawn // 7 Demomen { Name "Wave3_Subwave1_Demomen" WaitForAllSpawned "Wave3_Subwave1_GLaserHeavy" Where spawnbot TotalCount 7 MaxActive 7 SpawnCount 1 WaitBeforeStarting 8 WaitBetweenSpawns 1 TotalCurrency 40 TFBot { Class Demoman Skill Expert } } WaveSpawn // 1 GLaser Heavy, 1 GCharged Medic and 3 Demomen { Name "Wave3_Subwave1_GLaserHeavy2" WaitForAllSpawned "Wave3_Subwave1_GLaserHeavy" Where spawnbot_tank TotalCount 5 MaxActive 5 SpawnCount 5 WaitBeforeStarting 25 WaitBetweenSpawns 0 TotalCurrency 100 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Giant_Heavy_Laser } TFBot { Template T_TFBot_Giant_Medic_Charged } TFBot { Class Demoman Skill Expert } TFBot { Class Demoman Skill Expert } TFBot { Class Demoman Skill Expert } } } WaveSpawn // 10 Pyros { Name "Wave3_Subwave1_Pyros2" WaitForAllSpawned "Wave3_Subwave1_GLaserHeavy2" Where spawnbot_tank TotalCount 10 MaxActive 10 SpawnCount 10 WaitBeforeStarting 5 WaitBetweenSpawns 0 TotalCurrency 60 TFBot { Class Pyro Skill Normal Attributes AlwaysFireWeapon } } WaveSpawn // 7 Demomen { Name "Wave3_Subwave1_Demomen2" WaitForAllSpawned "Wave3_Subwave1_GLaserHeavy2" Where spawnbot TotalCount 7 MaxActive 7 SpawnCount 1 WaitBeforeStarting 8 WaitBetweenSpawns 1 TotalCurrency 40 TFBot { Class Demoman Skill Expert } } // Subwave 2 WaveSpawn // 5 GFury Pyros and 10 Heavies { Name "Wave3_Subwave2_GFuryPyros" WaitForAllDead "Wave3_Subwave1_GLaserHeavy2" Where spawnbot TotalCount 15 MaxActive 10 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 12 TotalCurrency 40 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Giant_Pyro_Dragon_Fury } TFBot { Class Heavy Skill Easy } TFBot { Class Heavy Skill Easy } } } WaveSpawn // 12 Steel Gauntlets { Name "Wave3_Subwave2_SteelGauntlets" WaitForAllDead "Wave3_Subwave1_GLaserHeavy2" Where flankers TotalCount 12 MaxActive 3 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 60 TFBot { Template T_TFBot_Heavy_SteelFist Attributes AlwaysCrit } } WaveSpawn // 30 Demomen { Name "Wave3_Subwave2_Demomen" WaitForAllDead "Wave3_Subwave1_GLaserHeavy2" Where spawnbot TotalCount 30 MaxActive 6 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 60 TFBot { Class Demoman Skill Normal } } // Subwave 3 WaveSpawn // 1 GRapid Burst Demo and 1 GCharged Medic { Name "Wave3_Subwave3_GRapidBurstDemo" WaitForAllSpawned "Wave3_Subwave2_GFuryPyros" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 18 WaitBetweenSpawns 0 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Demoman_Burst_Spammer } TFBot { Template T_TFBot_Giant_Medic_Charged } } } WaveSpawn // 14 Heavies { Name "Wave3_Subwave3_Heavies" WaitForAllSpawned "Wave3_Subwave3_GRapidBurstDemo" Where spawnbot_invasion TotalCount 14 MaxActive 14 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 40 TFBot { Class Heavy Skill Easy } } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_a_init`, `Trigger`) EntFire(`radio_music_stop`, `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 // 1 Redetonator Soldier { Name "Wave4_Subwave1_Redetonator" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 FirstSpawnWarningSound "vo/mvm/mght/soldier_mvm_m_laughlong01.mp3" DoneWarningSound "ambient/explosions/explode_4.wav" TFBot { Name "The Redetonator" Template T_TFBot_Giant_Soldier_Redetonator Health 33000 Attributes UseBossHealthBar } } WaveSpawn // 25 Bonk Scouts { Name "Wave4_Subwave1_BonkScouts" WaitForAllSpawned "Wave4_Subwave1_Redetonator" Where spawnbot_invasion TotalCount 25 MaxActive 10 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 60 TFBot { Template T_TFBot_Scout_Bonk Attributes AlwaysCrit } } // Subwave 2 WaveSpawn // 4 Super Scouts { Name "Wave4_Subwave2_SuperScouts" WaitForAllDead "Wave4_Subwave1_Redetonator" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 40 TFBot { Template T_TFBot_Giant_Scout_Fast } } WaveSpawn { Name "Wave4_Subwave2_" } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_a_init`, `Trigger`) EntFire(`radio_music_stop`, `Trigger`) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_a_init`, `Trigger`) EntFire(`radio_music_stop`, `Trigger`) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } } }