// Advanced "Urban Obstruction" // Made by Haniday #base robot_haniday_v.pop #base robot_gatebot.pop WaveSchedule { StartingCurrency 1200 RespawnWaveTime 5 Advanced 1 CanBotsAttackWhileInSpawnRoom no // TODO: Add sentry Buster Mission Wave // Wave 1: 1100$ { StartWaveOutput { Target wave_start_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } WaveSpawn // W1_S1a: 2 Bat Scouts coming from upper to spawn the bomb { TotalCurrency 25 Name "W1_S1a" Where spawnbot_upper0 // If they spawned in "main", the other bots coming ftom "upper" couldn't take the bomb Where spawnbot_upper1 Where spawnbot_upper2 TotalCount 2 SpawnCount 2 Support Limited TFBot { Template T_TFBot_Scout_Melee } } WaveSpawn // W1_S1b: Bat scouts, 2 max, Support { TotalCurrency 25 Name "W1_S1b" Where spawnbot_main0 // After the scouts above spawned, the others will start spawning in "main" Where spawnbot_main1 // All of this could be simplified by putting a "IgnoreFlag" on the scouts Where spawnbot_main2 TotalCount 10 MaxActive 2 SpawnCount 2 Support 1 WaitForAllSpawned "W1_S1a" WaitBeforeStarting 5 WaitBetweenSpawns 20 TFBot { Template T_TFBot_Scout_Melee //Attributes IgnoreFlag } } WaveSpawn // W1_S2a: Scouts, 6 max, 30 total { TotalCurrency 50 Name "W1_S2a" Where spawnbot_upper0 Where spawnbot_upper1 Where spawnbot_upper2 TotalCount 30 MaxActive 6 SpawnCount 2 WaitForAllSpawned "W1_S1a" WaitBeforeStarting 10 WaitBetweenSpawns 2 TFBot { Template T_TFBot_Scout } } WaveSpawn // W1_S2b: GateBot Soldiers, 6 max, 24 total { TotalCurrency 100 Name "W1_S2b" Where spawnbot_upper0 Where spawnbot_upper1 Where spawnbot_upper2 TotalCount 24 MaxActive 6 SpawnCount 6 WaitForAllSpawned "W1_S1a" WaitBeforeStarting 10 WaitBetweenSpawns 10 TFBot { Template T_TFGateBot_Soldier_Normal } } WaveSpawn // W1_S2c: Giant FAN Scout, 1 max, 2 total { TotalCurrency 100 Name "W1_S2c" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 2 MaxActive 1 WaitForAllSpawned "W1_S1a" WaitBeforeStarting 40 WaitBetweenSpawns 5 TFBot { Template T_TFBot_Giant_Scout_FAN } } WaveSpawn // W1_S3a: Crit Giant Barrage Soldiers + Ãœber Medics, 6 max, 6 total { TotalCurrency 100 Name "W1_S3a" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 6 SpawnCount 3 WaitForAllDead "W1_S2b" WaitBeforeStarting 10 WaitBetweenSpawns 6 Squad { TFBot { Template T_TFGateBot_Giant_Soldier_SlowCritBarrage } TFBot { Template T_TFBot_Medic_Uber } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // W1_S3b: Crit Heavy + Quick-Fix Medic, 10 max, 40 total { TotalCurrency 100 Name "W1_S3b" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 40 MaxActive 10 SpawnCount 2 WaitForAllSpawned "W1_S3a" WaitBetweenSpawns 1 Squad { TFBot { Template T_TFBot_Heavyweapons Skill Easy Attributes AlwaysCrit } TFBot { Template T_TFBot_Medic_QuickFix } } } WaveSpawn // W1_S3c: Giant Burst Fire Soldier + Ãœber Medic, 3 max, 3 total { TotalCurrency 200 Name "W1_S3c" Where spawnbot_upper0 Where spawnbot_upper1 Where spawnbot_upper2 TotalCount 6 SpawnCount 2 WaitForAllDead "W1_S3a" WaitBeforeStarting 30 WaitBetweenSpawns 5 Squad { TFBot { Template T_TFBot_Giant_Soldier_BurstFire } TFBot { Template T_TFBot_Medic_Uber } } } } Wave // Wave 2: 1000$ { StartWaveOutput { Target wave_start_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } WaveSpawn // W2_S1a: Crit Hyper League Scouts, 2 max, Support { TotalCurrency 50 Name "W2_S1a" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 10 MaxActive 2 SpawnCount 2 Support 1 WaitBeforeStarting 30 WaitBetweenSpawns 30 TFBot { Template T_TFBot_Scout_Sandman_FastCharge Attributes AlwaysCrit } } WaveSpawn // W2_S1b: Giant Super Scout, 1 max, 3 total { TotalCurrency 150 Name "W2_S1b" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 3 MaxActive 1 WaitBeforeStarting 5 WaitBetweenSpawns 10 TFBot { Template T_TFBot_Giant_Scout_Fast } } WaveSpawn // W2_S1c: GateBot Demomen, 6 max, 30 total { TotalCurrency 50 Name "W2_S1c" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 30 MaxActive 6 SpawnCount 2 WaitBetweenSpawns 1 TFBot { Template T_TFGateBot_Demoman_Hard } } WaveSpawn // W2_S1d: GateBot Soldiers, 5 max, 20 total { TotalCurrency 50 Name "W2_S1d" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 Where spawnbot_upper0 RandomSpawn 1 TotalCount 20 MaxActive 5 SpawnCount 5 WaitBeforeStarting 10 WaitBetweenSpawns 5 TFBot { Template T_TFGateBot_Soldier_Normal } } WaveSpawn // W2_S1e: Crit FAN Scouts, 10 max, 20 total { TotalCurrency 100 Name "W2_S1e" Where spawnbot_upper0 Where spawnbot_upper1 Where spawnbot_upper2 TotalCount 20 MaxActive 10 SpawnCount 2 WaitForAllSpawned "W2_S1d" WaitBeforeStarting 20 WaitBetweenSpawns 0.5 TFBot { Template T_TFBot_Scout_FAN Attributes AlwaysCrit } } WaveSpawn // W2_S2a: Giant Heavy Heater + Giant Medic + Extended Conch Soldiers, 5 total { TotalCurrency 100 Name "W2_S2a" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 5 SpawnCount 5 WaitForAllSpawned "W2_S1e" WaitBeforeStarting 6 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Heater } TFBot { Template T_TFBot_Giant_Medic_Type2 } TFBot { Template T_TFBot_Soldier_Extended_Concheror Tag bot_squad_member } TFBot { Template T_TFBot_Soldier_Extended_Concheror Tag bot_squad_member } TFBot { Template T_TFBot_Soldier_Extended_Concheror Tag bot_squad_member } } } WaveSpawn // W2_S2b: Giant Super Scouts, 2 total { TotalCurrency 100 Name "W2_S2b" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 2 SpawnCount 2 WaitForAllDead "W2_S2a" TFBot { Template T_TFBot_Giant_Scout_Fast } } WaveSpawn // W2_S3a: Crit GateBot FAN Scouts, 12 max, 30 total { TotalCurrency 50 Name "W2_S3a" Where spawnbot_upper0 Where spawnbot_upper1 Where spawnbot_upper2 TotalCount 34 MaxActive 12 SpawnCount 2 WaitForAllDead "W2_S2b" WaitBeforeStarting 10 WaitBetweenSpawns 0.5 TFBot { Template T_TFGateBot_Scout_FAN_Crit } } WaveSpawn // W2_S3b: Extended Conch Soldiers, 6 max, 20 total { TotalCurrency 50 Name "W2_S3b" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 20 MaxActive 6 SpawnCount 1 WaitForAllDead "W2_S3a" WaitBeforeStarting 10 WaitBetweenSpawns 2 TFBot { Template T_TFBot_Soldier_Extended_Concheror } } WaveSpawn // W2_S3c: Giant Heavy Heater + Giant Medic, 4 total { TotalCurrency 200 Name "W2_S3c" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 4 SpawnCount 2 WaitForAllDead "W2_S3a" WaitBeforeStarting 30 WaitBetweenSpawns 30 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Heater } TFBot { Template T_TFBot_Giant_Medic_Type2 } } } } Wave // Wave 3: 900$ { StartWaveOutput { Target wave_start_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } WaveSpawn // W3_S1a: Crit Pyros, 10 max, 40 total { TotalCurrency 50 Name "W3_S1a" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 40 MaxActive 10 SpawnCount 5 WaitBetweenSpawns 2 TFBot { Template T_TFBot_Pyro Skill Hard Attributes AlwaysCrit ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "airblast disabled" 1 } } } WaveSpawn // W3_S1b: Crit Fast Scorch-Shot Pyros, 6 max, 20 total { TotalCurrency 50 Name "W3_S1b" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 20 MaxActive 6 SpawnCount 3 WaitBetweenSpawns 6 TFBot { Template T_TFBot_Pyro_ScorchShot_Fast Attributes AlwaysCrit } } WaveSpawn // W3_S1c: GateBot Giant FAN Scouts, 1 max, 2 total { TotalCurrency 50 Name "W3_S1c" Where spawnbot_upper0 Where spawnbot_upper1 Where spawnbot_upper2 TotalCount 2 MaxActive 1 WaitBeforeStarting 30 WaitBetweenSpawns 5 TFBot { Template T_TFGateBot_Giant_Scout_FAN } } WaveSpawn // W3_S1d: Giant FAN Scouts, 1 max, 2 total { TotalCurrency 50 Name "W3_S1d" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 2 MaxActive 1 WaitBeforeStarting 30 WaitBetweenSpawns 5 RandomChoice { TFBot { Template T_TFGateBot_Giant_Scout_FAN } TFBot { Template T_TFBot_Giant_Scout_FAN } } } WaveSpawn // W3_S2a: Giant Deflector Heavy + Giant Medics, 3 total { TotalCurrency 200 Name "W3_S2a" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 3 SpawnCount 3 WaitForAllDead "W3_S1a" WaitBeforeStarting 20 Squad { TFBot // This is why GateBot templates suck { Name "Giant Deflector Heavy" Health 5000 Class Heavyweapons ClassIcon heavy_deflector EventChangeAttributes { Default { Tag bot_gatebot Tag nav_prefer_gate1_flank Attributes IgnoreFlag BehaviorModifiers Push CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } Skill Expert Tag bot_giant Attributes MiniBoss Attributes AlwaysCrit MaxVisionRange 1200 WeaponRestrictions PrimaryOnly Item "MvM GateBot Light Heavy" Item "Deflector" ItemAttributes { ItemName "Deflector" "damage bonus" 1.5 "attack projectiles" 2 } } RevertGateBotsBehavior { CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } Skill Expert Tag bot_giant Attributes MiniBoss Attributes AlwaysCrit MaxVisionRange 1200 WeaponRestrictions PrimaryOnly Item "MvM GateBot Light Heavy" ItemAttributes { ItemName "MvM GateBot Light Heavy" "item style override" 1 } Item "Deflector" ItemAttributes { ItemName "Deflector" "damage bonus" 1.5 "attack projectiles" 2 } } } } TFBot { Template T_TFBot_Giant_Medic } TFBot { Template T_TFBot_Giant_Medic } } } } }