// MvM Mannhattan: Advanced (Docklands Dustup) made by UltimentM, with the use of PopExtensionsPlus // @ http://steamcommunity.com/id/ultimentm // Starting Money: $800 #base robot_giant.pop #base robot_standard.pop #base robot_gatebot.pop #base robot_ultimentm.pop WaveSchedule { StartingCurrency 800 RespawnWaveTime 3 CanBotsAttackWhileInSpawnRoom No Advanced 1 MaxRedPlayers 5 ClassLimit { //Heavyweapons 0 Medic 0 //Sniper 0 Spy 0 } DisallowUpgrade "explode_on_ignite" DisallowUpgrade "critboost" DisallowUpgrade "ubercharge" DisallowUpgrade { Upgrade "explosive sniper shot" MaxLevel 1 } Templates { T_TFGateBot_Soldier_Expert_Crit { Class Soldier Name "Crit Soldier" EventChangeAttributes { Default { BehaviorModifiers push // having these will cause bots to run towards gates Attributes IgnoreFlag // having these will cause bots to run towards gates Tag nav_prefer_gate1_flank // having these will cause bots to run towards gates Tag bot_gatebot // having these will cause bots to run towards gates Item "MvM GateBot Light Soldier" Attributes AlwaysCrit Skill Expert } RevertGateBotsBehavior { Item "MvM GateBot Light Soldier" ItemAttributes // turn off light hat { ItemName "MvM GateBot Light Soldier" "item style override" 1 } Attributes AlwaysCrit Skill Expert } } } T_TFGateBot_Soldier_Hard_DirectHit { Class Soldier Name "Direct Hit Soldier" ClassIcon soldier_directhit_lite EventChangeAttributes { Default { BehaviorModifiers push // having these will cause bots to run towards gates Attributes IgnoreFlag // having these will cause bots to run towards gates Tag nav_prefer_gate1_flank // having these will cause bots to run towards gates Tag bot_gatebot // having these will cause bots to run towards gates Item "MvM GateBot Light Soldier" Item "The Direct Hit" Skill Hard } RevertGateBotsBehavior { Item "MvM GateBot Light Soldier" ItemAttributes // turn off light hat { ItemName "MvM GateBot Light Soldier" "item style override" 1 } Item "The Direct Hit" Skill Hard } } } T_TFGateBot_Pyro_Reflect { Name "Airblast Pyro" Class Pyro ClassIcon pyro_reflect_daan EventChangeAttributes { Default { Tag bot_gatebot // having these will cause bots to run towards gates Tag nav_prefer_gate1_flank // having these will cause bots to run towards gates BehaviorModifiers push // having these will cause bots to run towards gates Attributes IgnoreFlag // having these will cause bots to run towards gates Item "MvM GateBot Light Pyro" Skill Expert Item "The Degreaser" ItemAttributes { ItemName "The Degreaser" "airblast pushback scale" 2 } } RevertGateBotsBehavior { Item "MvM GateBot Light Pyro" ItemAttributes // turn off light hat { ItemName "MvM GateBot Light Pyro" "item style override" 1 } Skill Expert Item "The Degreaser" ItemAttributes { ItemName "The Degreaser" "airblast pushback scale" 2 } } } } T_TFBot_Medic_Vaccinator_Cycle //Use Attributes Vaccinator___ if you want a group to cycle at different times { Name "Cycling Vaccinator Medic" Class Medic ClassIcon medic_vac_trio_nys Skill Expert Attributes SpawnWithFullCharge Tag "popext_fireweapon{button = IN_RELOAD, cooldown = 3, delay = 3, duration = 1, ifseetarget = 0}" Tag "popext_altfire" ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" //Uses Default Medigun due to Vaccinator Cosmetic Issues "lunchbox adds minicrits" 3 "ubercharge overheal rate penalty" 0.67 "overheal fill rate reduced" 0.34 "kill eater score type" 1 "kill eater score type 2" 2 "medigun charge is resists" 3 "medigun bullet resist passive" 0.1 "medigun bullet resist deployed" 0.75 "medigun blast resist passive" 0.1 "medigun blast resist deployed" 0.75 "medigun fire resist passive" 0.1 "medigun fire resist deployed" 0.75 //Add unique attributes below here: "ubercharge rate bonus" 999 } CharacterAttributes { "bot medic uber health threshold" 0 //disable standard uber behavior } } T_TFGateBot_Giant_Scout_Ult { Class Scout Name "Giant Scout" ClassIcon scout_giant Skill Expert Health 1600 EventChangeAttributes { Default { BehaviorModifiers push // having these will cause bots to run towards gates Attributes IgnoreFlag // having these will cause bots to run towards gates Tag nav_prefer_gate1_flank // having these will cause bots to run towards gates Tag bot_gatebot // having these will cause bots to run towards gates Item "MvM GateBot Light Scout" Tag bot_giant Attributes MiniBoss Attributes HoldFireUntilFullReload CharacterAttributes { "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "override footstep sound set" 5 } ItemAttributes { ItemName "TF_WEAPON_SCATTERGUN" "damage bonus" 1.5 } } RevertGateBotsBehavior { Item "MvM GateBot Light Scout" ItemAttributes // turn off light hat { ItemName "MvM GateBot Light Scout" "item style override" 1 } Tag bot_giant Attributes MiniBoss Attributes HoldFireUntilFullReload CharacterAttributes { "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "override footstep sound set" 5 } ItemAttributes { ItemName "TF_WEAPON_SCATTERGUN" "damage bonus" 1.5 } } } } T_TFGateBot_Giant_Scout_Bonk { Class Scout Name "Giant BONK! Scout" ClassIcon scout_bonk_giant Skill Normal Health 1600 EventChangeAttributes { Default { BehaviorModifiers push // having these will cause bots to run towards gates Attributes IgnoreFlag // having these will cause bots to run towards gates Tag nav_prefer_gate1_flank // having these will cause bots to run towards gates Tag bot_gatebot // having these will cause bots to run towards gates Item "MvM GateBot Light Scout" Item "Bonk! Atomic Punch" Tag bot_giant Attributes MiniBoss WeaponRestrictions MeleeOnly CharacterAttributes { "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "override footstep sound set" 5 "effect bar recharge rate increased" 0.55 } } RevertGateBotsBehavior { Item "MvM GateBot Light Scout" ItemAttributes // turn off light hat { ItemName "MvM GateBot Light Scout" "item style override" 1 } Item "Bonk! Atomic Punch" Tag bot_giant Attributes MiniBoss WeaponRestrictions MeleeOnly CharacterAttributes { "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "override footstep sound set" 5 "effect bar recharge rate increased" 0.55 } } } } T_TFGateBot_Giant_Soldier_EscapePlan { Name "Giant Escape Plan Soldier" Class Soldier Health 4000 ClassIcon soldier_escape EventChangeAttributes { Default { BehaviorModifiers push // having these will cause bots to run towards gates Attributes IgnoreFlag // having these will cause bots to run towards gates Tag nav_prefer_gate1_flank // having these will cause bots to run towards gates Tag bot_gatebot // having these will cause bots to run towards gates Item "MvM GateBot Light Soldier" Tag bot_giant Skill Expert WeaponRestrictions MeleeOnly Attributes MiniBoss Item "The Escape Plan" ItemAttributes { ItemName "The Escape Plan" "self mark for death" 0 "gesture speed increase" 1.32 //Prevents bots from self-destructing on taunt } CharacterAttributes { "airblast vulnerability multiplier" 0.4 "damage force reduction" 0.4 "move speed bonus" 0.8 "override footstep sound set" 3 } } RevertGateBotsBehavior { Item "MvM GateBot Light Soldier" ItemAttributes // turn off light hat { ItemName "MvM GateBot Light Soldier" "item style override" 1 } Tag bot_giant Skill Expert WeaponRestrictions MeleeOnly Attributes MiniBoss Item "The Escape Plan" ItemAttributes { ItemName "The Escape Plan" "self mark for death" 0 "gesture speed increase" 1.32 //Prevents bots from self-destructing on taunt } CharacterAttributes { "airblast vulnerability multiplier" 0.4 "damage force reduction" 0.4 "move speed bonus" 0.8 "override footstep sound set" 3 } } } } T_TFGateBot_Giant_Soldier_Crit { Class Soldier Name "Giant Charged Soldier" ClassIcon soldier_crit Health 3800 EventChangeAttributes { Default { BehaviorModifiers push // having these will cause bots to run towards gates Attributes IgnoreFlag // having these will cause bots to run towards gates Tag nav_prefer_gate1_flank // having these will cause bots to run towards gates Tag bot_gatebot // having these will cause bots to run towards gates Item "MvM GateBot Light Soldier" Tag bot_giant Skill Normal WeaponRestrictions PrimaryOnly Attributes AlwaysCrit Attributes MiniBoss Item "The Original" ItemAttributes { ItemName "The Original" "faster reload rate" 0.2 "fire rate bonus" 2 "Projectile speed increased" 0.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } } RevertGateBotsBehavior { Item "MvM GateBot Light Soldier" ItemAttributes // turn off light hat { ItemName "MvM GateBot Light Soldier" "item style override" 1 } Tag bot_giant Skill Normal WeaponRestrictions PrimaryOnly Attributes AlwaysCrit Attributes MiniBoss Item "The Original" ItemAttributes { ItemName "The Original" "faster reload rate" 0.2 "fire rate bonus" 2 "Projectile speed increased" 0.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } } } } T_TFGateBot_Giant_Heavy_HealOnKill { Class Heavyweapons Name "Giant Heal-on-Kill Heavy" Health 5000 ClassIcon heavy_heal EventChangeAttributes { Default { Tag nav_prefer_gate1_flank // having these will cause bots to run towards gates Tag bot_gatebot // having these will cause bots to run towards gates BehaviorModifiers push // having these will cause bots to run towards gates Attributes IgnoreFlag // having these will cause bots to run towards gates Item "MvM GateBot Light Heavy" Tag bot_giant Skill Expert Attributes MiniBoss WeaponRestrictions PrimaryOnly MaxVisionRange 1200 Item "The Tungsten Toque" ItemAttributes { ItemName "TF_WEAPON_MINIGUN" "damage bonus" 1.25 "heal on kill" 5000 } CharacterAttributes { "move speed bonus" 0.45 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } } RevertGateBotsBehavior { Item "MvM GateBot Light Heavy" ItemAttributes // turn off light hat { ItemName "MvM GateBot Light Heavy" "item style override" 1 } Tag bot_giant Skill Expert Attributes MiniBoss WeaponRestrictions PrimaryOnly MaxVisionRange 1200 Item "The Tungsten Toque" ItemAttributes { ItemName "TF_WEAPON_MINIGUN" "damage bonus" 1.25 "heal on kill" 5000 } CharacterAttributes { "move speed bonus" 0.45 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } } } } T_TFGateBot_Giant_Sniper_SMG { Name "Giant Submachine Gun Sniper" Class Sniper ClassIcon sniper_smg_tind Health 2500 EventChangeAttributes { Default { BehaviorModifiers push // having these will cause bots to run towards gates Attributes IgnoreFlag // having these will cause bots to run towards gates Tag nav_prefer_gate1_flank // having these will cause bots to run towards gates Tag bot_gatebot // having these will cause bots to run towards gates Item "MvM GateBot Light Sniper" Tag bot_giant Skill Expert WeaponRestrictions SecondaryOnly Item "the doublecross-comm" Attributes MiniBoss ItemAttributes { ItemName "tf_weapon_smg" "revolver use hit locations" 1 "damage bonus" 2 } CharacterAttributes { "override footstep sound set" 3 "move speed bonus" 0.5 "airblast vulnerability multiplier" 0.6 "damage force reduction" 0.6 "head scale" 0.75 "hand scale" 1.25 } } RevertGateBotsBehavior { Item "MvM GateBot Light Sniper" ItemAttributes // turn off light hat { ItemName "MvM GateBot Light Sniper" "item style override" 1 } Tag bot_giant Skill Expert WeaponRestrictions SecondaryOnly Item "the doublecross-comm" Attributes MiniBoss ItemAttributes { ItemName "tf_weapon_smg" "revolver use hit locations" 1 "damage bonus" 2 } CharacterAttributes { "override footstep sound set" 3 "move speed bonus" 0.5 "airblast vulnerability multiplier" 0.6 "damage force reduction" 0.6 "head scale" 0.75 "hand scale" 1.25 } } } } } Mission { Objective DestroySentries Where spawnbot_upper2 BeginAtWave 1 RunForThisManyWaves 2 InitialCooldown 15 CooldownTime 40 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster Tag bot_sentrybuster } } Mission { Objective DestroySentries Where spawnbot_main1_slow Where spawnbot_upper2 BeginAtWave 3 RunForThisManyWaves 2 InitialCooldown 15 CooldownTime 45 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster Tag bot_sentrybuster } } Mission { Objective DestroySentries Where spawnbot_main0 Where spawnbot_main1_slow Where spawnbot_upper2 BeginAtWave 5 RunForThisManyWaves 3 InitialCooldown 15 CooldownTime 50 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster Tag bot_sentrybuster } } Mission { Objective Spy Where spawnbot_main2 BeginAtWave 1 RunForThisManyWaves 1 InitialCooldown 15 CooldownTime 75 DesiredCount 2 TFBot { Class Spy Skill Expert } } Mission { Objective Sniper Where spawnbot_mission_sniper1 Where spawnbot_main2_giants BeginAtWave 3 RunForThisManyWaves 1 InitialCooldown 0 CooldownTime 60 DesiredCount 4 TFBot { Template T_TFBot_Sniper } } Mission { Objective Spy Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 BeginAtWave 6 RunForThisManyWaves 1 InitialCooldown 20 CooldownTime 60 DesiredCount 2 TFBot { Class Spy Skill Expert } } Mission { Objective Sniper Where spawnbot_mission_sniper0 Where spawnbot_mission_sniper1 Where spawnbot_main2_giants BeginAtWave 7 RunForThisManyWaves 1 InitialCooldown 10 CooldownTime 60 DesiredCount 2 TFBot { Template T_TFBot_Sniper_Camper } } // Wave 1 : $700, $800 Current Wave { InitWaveOutput { Target bignet Action RunScriptCode Param " IncludeScript(`popextensions_main.nut`, getroottable()) PopExtUtil.ShowAnnotation({ text = `The gates have been taken from our control! It looks like you'll have to defend upfront until we can get control back.` pos = Vector(-1632, -1040, 16) lifetime = 30 id = 0 play_sound = `ui/hint.wav` visbit = 0 }) ::PointTemplates <- { Gate2BombPath = { NoFixup = 1, [0] = { prop_dynamic = { targetname = `bombpath_gate2_ult` model = `models/props_mvm/robot_hologram.mdl` disableshadows = `1` angles = `0 0 0` DisableBoneFollowers = `1` rendercolor = `138 187 247` solid = `0` } } } } SpawnTemplate(`Gate2BombPath`, null, `-632 -832 -61`) SpawnTemplate(`Gate2BombPath`, null, `-160 -808 -61`, `0 60 0`) SpawnTemplate(`Gate2BombPath`, null, `408 -280 -61`, `0 30 0`) SpawnTemplate(`Gate2BombPath`, null, `776 560 -61`, `0 190 0`) SpawnTemplate(`Gate2BombPath`, null, `9 427 -157`, `0 90 0`) // Spawn Gate EntFire(`gate0_entrance_door`, `Close`) EntFire(`gate0_entrance_blocker`, `Enable`) EntFire(`sentry_nest_main_off`, `Trigger`) // 1st Gate EntFire(`gate1_spawn_door`, `Open`) EntFire(`gate1_prerequisite`, `Disable`) EntFire(`sentry_nest_middle_off`, `Trigger`) EntFire(`gate1_prerequisite_door`, `Disable`) EntFire(`gate1_entrance_gate_medium`, `Enable`) EntFire(`gate1_alarm_timer`, `Disable`) EntFire(`gate1_bot_blocker`, `Disable`) EntFire(`gate1_door_alarm`, `Disable`) EntFire(`gate1_door_trigger`, `Disable`) EntFire(`gate1_entrance_door`, `Close`) EntFire(`gate1_entrance_blocker`, `Enable`) EntFire(`gate1_prereq_move_giant`, `Disable`) EntFire(`prereq_gate1_giant_wait`, `Disable`) // 2nd Gate EntFire(`gate2_spawn_door`, `Open`) EntFire(`gate2_prerequisite`, `Disable`) EntFire(`gate2_door_trigger`, `Disable`) EntFire(`sentry_nest_hatch_on`, `Trigger`) EntFire(`gate2_door_alarm`, `Disable`) EntFire(`trigger_flank_container_prereq`, `Disable`) EntFire(`gate2_prerequisite_door`, `Disable`) EntFire(`gate2_alarm_timer`, `Disable`) EntFire(`gate2_fence_relay`, `Trigger`) EntFire(`gate2_bot_blocker`, `Disable`) EntFire(`gate2_prereq_move_giant`, `Disable`) EntFire(`prereq_gate2_giant_wait`, `Disable`) EntFire(`gate2_alarm_blue_on`, `Trigger`) EntFire(`spawnbot_main2`, `Enable`) EntFire(`spawnbot_upper2`, `Enable`) EntFire(`spawnbot_main2_giants`, `Enable`) // Other Stuff EntFire(`nav_refresh`, `RecomputeBlockers`, 1) EntFire(`gate1_capturepoint_a`, `SetOwner`, `3`) EntFire(`gate2_capturepoint_b`, `SetOwner`, `3`) EntFire(`intel`, `SetReturnTime`, `60`) // Sounds EntFire(`robot_radio_waves_beep2`, `PlaySound`) //EntFire(`vo_security_alert`, `PlaySound`) MissionAttrs({ HoldFireUntilFullReloadFix = 1 }) " } WaitWhenDone 60 Sound "Announcer.IncomingMob" Checkpoint Yes StartWaveOutput { Target bignet Action RunScriptCode Param " EntFire(`nav_refresh`, `RecomputeBlockers`) EntFire(`bombpath_gate2_ult`, `Disable`) EntFire(`steam_whistle`, `Trigger`) EntFire(`nav_refresh`, `RecomputeBlockers`, 1) EntFire(`nav_refresh`, `RecomputeBlockers`, 2) EntFire(`nav_refresh`, `RecomputeBlockers`, 3) EntFire(`nav_refresh`, `RecomputeBlockers`, 4) " } WaveSpawn { Name wave1a TotalCurrency 50 Where spawnbot_main2_giants TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 TFBot { Template T_TFBot_Giant_Soldier_RocketShotgun } } WaveSpawn { Name wave1b WaitForAllDead wave1a TotalCurrency 100 Where spawnbot_main2 TotalCount 36 MaxActive 8 SpawnCount 3 WaitBeforeStarting 2 WaitBetweenSpawns 6 TFBot { Template T_TFBot_Scout_Easy } } WaveSpawn { Name wave1b WaitForAllDead wave1a TotalCurrency 100 Where spawnbot_upper2 TotalCount 9 MaxActive 3 SpawnCount 1 WaitBeforeStarting 7 WaitBetweenSpawns 8 TFBot { Template T_TFBot_Heavyweapons_Fist } } WaveSpawn { Name wave1c WaitForAllDead wave1a TotalCurrency 150 Where spawnbot_main2 TotalCount 48 MaxActive 7 SpawnCount 2 WaitBeforeStarting 2 WaitBetweenSpawns 5 TFBot { Template T_TFBot_Pyro_Flaregun } } WaveSpawn { Name wave1d WaitForAllSpawned wave1b TotalCurrency 100 Where spawnbot_main2_giants TotalCount 3 MaxActive 2 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 18 TFBot { Template T_TFBot_Giant_Demo_Spammer } } WaveSpawn { WaitForAllDead wave1a TotalCurrency 100 Where spawnbot_main2 TotalCount 50 MaxActive 4 SpawnCount 1 WaitBeforeStarting 12 WaitBetweenSpawns 6 Support 1 TFBot { Class Pyro } } WaveSpawn { WaitForAllSpawned wave1b TotalCurrency 100 Where spawnbot_main2 TotalCount 50 MaxActive 5 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 6 Support 1 TFBot { Template T_TFBot_Scout_Melee } } } // Wave 2 : $800, $1500 + $100 Current Wave { InitWaveOutput { Target bignet Action RunScriptCode Param " IncludeScript(`popextensions_main.nut`, getroottable()) SpawnTemplate(`Gate2BombPath`, null, `-632 -832 -61`) SpawnTemplate(`Gate2BombPath`, null, `-160 -808 -61`, `0 60 0`) SpawnTemplate(`Gate2BombPath`, null, `408 -280 -61`, `0 30 0`) SpawnTemplate(`Gate2BombPath`, null, `776 560 -61`, `0 190 0`) SpawnTemplate(`Gate2BombPath`, null, `9 427 -157`, `0 90 0`) // Spawn Gate EntFire(`gate0_entrance_door`, `Close`) EntFire(`gate0_entrance_blocker`, `Enable`) EntFire(`sentry_nest_main_off`, `Trigger`) // 1st Gate EntFire(`gate1_spawn_door`, `Open`) EntFire(`gate1_prerequisite`, `Disable`) EntFire(`sentry_nest_middle_off`, `Trigger`) EntFire(`gate1_prerequisite_door`, `Disable`) EntFire(`gate1_entrance_gate_medium`, `Enable`) EntFire(`gate1_alarm_timer`, `Disable`) EntFire(`gate1_bot_blocker`, `Disable`) EntFire(`gate1_door_alarm`, `Disable`) EntFire(`gate1_door_trigger`, `Disable`) EntFire(`gate1_entrance_door`, `Close`) EntFire(`gate1_entrance_blocker`, `Enable`) EntFire(`gate1_prereq_move_giant`, `Disable`) EntFire(`prereq_gate1_giant_wait`, `Disable`) // 2nd Gate EntFire(`gate2_spawn_door`, `Open`) EntFire(`gate2_prerequisite`, `Disable`) EntFire(`gate2_door_trigger`, `Disable`) EntFire(`sentry_nest_hatch_on`, `Trigger`) EntFire(`gate2_door_alarm`, `Disable`) EntFire(`trigger_flank_container_prereq`, `Disable`) EntFire(`gate2_prerequisite_door`, `Disable`) EntFire(`gate2_alarm_timer`, `Disable`) EntFire(`gate2_fence_relay`, `Trigger`) EntFire(`gate2_bot_blocker`, `Disable`) EntFire(`gate2_prereq_move_giant`, `Disable`) EntFire(`prereq_gate2_giant_wait`, `Disable`) EntFire(`gate2_alarm_blue_off`, `Trigger`) EntFire(`spawnbot_main2`, `Enable`) EntFire(`spawnbot_upper2`, `Enable`) EntFire(`spawnbot_main2_giants`, `Enable`) // Other Stuff EntFire(`nav_refresh`, `RecomputeBlockers`, 1) EntFire(`gate1_capturepoint_a`, `SetOwner`, `3`) EntFire(`gate2_capturepoint_b`, `SetOwner`, `3`) EntFire(`intel`, `SetReturnTime`, `60`) " } WaitWhenDone 60 Sound "Announcer.IncomingMob" Checkpoint Yes StartWaveOutput { Target bignet Action RunScriptCode Param " EntFire(`nav_refresh`, `RecomputeBlockers`) EntFire(`bombpath_gate2_ult`, `Disable`) EntFire(`steam_whistle`, `Trigger`) EntFire(`nav_refresh`, `RecomputeBlockers`, 1) EntFire(`nav_refresh`, `RecomputeBlockers`, 2) EntFire(`nav_refresh`, `RecomputeBlockers`, 3) EntFire(`nav_refresh`, `RecomputeBlockers`, 4) " } WaveSpawn { Name wave2a TotalCurrency 120 Where spawnbot_main2 TotalCount 42 MaxActive 15 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 4 RandomChoice { TFBot { Template T_TFBot_Sniper_Huntsman } TFBot { Template T_TFBot_Sniper_Huntsman } TFBot { Template T_TFBot_Sniper_Huntsman } TFBot { Template T_TFBot_Pyro_AlwaysFire } } } WaveSpawn { Name wave2a TotalCurrency 100 Where spawnbot_main2_giants TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 15 WaitBetweenSpawns 20 TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload } } WaveSpawn { Name wave2b WaitForAllSpawned wave2a TotalCurrency 50 Where spawnbot_main2 TotalCount 14 MaxActive 7 SpawnCount 1 WaitBeforeStarting 12 WaitBetweenSpawns 0 TFBot { Template T_TFBot_Soldier_RocketPush } } WaveSpawn { Name wave2c WaitForAllSpawned wave2a TotalCurrency 150 Where spawnbot_upper2 TotalCount 9 MaxActive 9 SpawnCount 3 WaitBeforeStarting 15 WaitBetweenSpawns 1 Squad { TFBot { Template T_TFBot_Engineer_Sentry_Battle } TFBot { Template T_TFBot_Medic_QuickFix } TFBot { Template T_TFBot_Soldier_RocketPush } } } WaveSpawn { Name wave2d WaitForAllSpawned wave2b TotalCurrency 80 Where spawnbot_upper2 TotalCount 8 MaxActive 4 SpawnCount 1 WaitBeforeStarting 12 WaitBetweenSpawns 8 TFBot { Template T_TFBot_Soldier_BlackBox } } WaveSpawn { Name wave2d WaitForAllSpawned wave2b TotalCurrency 200 Where spawnbot_upper2 TotalCount 8 MaxActive 8 SpawnCount 4 WaitBeforeStarting 52 WaitBetweenSpawns 25 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun } TFBot { Template T_TFBot_Medic_QuickFix Skill Hard } TFBot { Template T_TFBot_Medic_QuickFix Skill Hard } TFBot { Template T_TFBot_Medic_QuickFix Skill Hard } } } WaveSpawn { TotalCurrency 0 Where spawnbot_main2 TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 15 Support 1 TFBot { Template T_TFBot_Scout_Sandman_Marker } } WaveSpawn { WaitForAllDead wave2c TotalCurrency 100 Where spawnbot_main2 TotalCount 50 MaxActive 8 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 7 Support 1 TFBot { Template T_TFBot_Demoman_Knight } } } // Wave 3 : $700, $2300 + $200 Current Wave { InitWaveOutput { Target bignet Action RunScriptCode Param " IncludeScript(`popextensions_main.nut`, getroottable()) PopExtUtil.ShowAnnotation({ text = `It looks like the 2nd Gate is back under our control. Good work! Keep holding the robots back.` pos = Vector(1696, -1776, 8) lifetime = 20 id = 0 play_sound = `ui/hint.wav` visbit = 0 }) SpawnTemplate(`Gate2BombPath`, null, `-8 -1736 -61`, `0 180 0`) SpawnTemplate(`Gate2BombPath`, null, `-904 -1616 -61`, `0 90 0`) SpawnTemplate(`Gate2BombPath`, null, `-632 -832 -61`) SpawnTemplate(`Gate2BombPath`, null, `-160 -808 -61`, `0 60 0`) SpawnTemplate(`Gate2BombPath`, null, `408 -280 -61`, `0 30 0`) SpawnTemplate(`Gate2BombPath`, null, `776 560 -61`, `0 190 0`) SpawnTemplate(`Gate2BombPath`, null, `9 427 -157`, `0 90 0`) // Reset Wave Relay Stuff EntFire(`gate1_relay`, `CancelPending`) EntFire(`gate2_relay`, `CancelPending`) EntFire(`pop_interface`, `UnpauseBotSpawning`) EntFire(`pop_interface`, `ChangeBotAttributes`, `Default`) EntFire(`pop_interface`, `ChangeDefaultEventAttributes`, `Default`) EntFire(`gate1_capturepoint_a`, `SetOwner`, `3`) EntFire(`gate2_capturepoint_b`, `SetOwner`, `2`) EntFire(`nav_refresh`, `RecomputeBlockers`) // Spawn Gate EntFire(`gate0_entrance_door`, `Close`) EntFire(`gate0_entrance_blocker`, `Enable`) EntFire(`sentry_nest_main_off`, `Trigger`) // 1st Gate EntFire(`gate1_prereq_move_giant`, `Disable`) EntFire(`prereq_gate1_giant_wait`, `Disable`) EntFire(`gate1_detect_bot`, `Disable`) EntFire(`gate1_bot_teleport`, `Disable`) EntFire(`gate1_alarm_blue_on`, `Trigger`) EntFire(`gate1_entrance_door`, `Open`) EntFire(`gate1_entrance_blocker`, `Disable`) EntFire(`gate1_spawn_door`, `Open`) EntFire(`gate1_prerequisite`, `Disable`) EntFire(`gate1_door_alarm`, `Disable`) EntFire(`sentry_nest_middle_on`, `Trigger`) EntFire(`gate1_prerequisite_door`, `Disable`) EntFire(`gate1_entrance_gate_medium`, `Enable`) EntFire(`gate1_alarm_timer`, `Disable`) EntFire(`gate1_bot_blocker`, `Disable`) EntFire(`spawnbot_main1`, `Enable`) EntFire(`spawnbot_main1_slow`, `Enable`) EntFire(`spawnbot_upper1`, `Enable`) EntFire(`spawnbot_mission_sniper1`, `Enable`) EntFire(`spawnbot_mission_sniper2`, `Enable`) EntFire(`gate1_door_trigger`, `Disable`) EntFire(`trigger_flank_container_prereq`, `Disable`) // 2nd Gate EntFire(`gate2_alarm_yellow_off`, `Trigger`) EntFire(`gate2_alarm_blue_off`, `Trigger`) EntFire(`gate2_door_trigger`, `Disable`) EntFire(`gate2_spawn_door`, `Close`) EntFire(`gate2_bot_blocker`, `Enable`) EntFire(`gate2_door_alarm`, `Enable`) EntFire(`gate2_prereq_move_giant`, `Disable`) EntFire(`prereq_gate2_giant_wait`, `Disable`) EntFire(`gate2_fence_visualizer1`, `Disable`) EntFire(`gate2_fence_door`, `Close`) EntFire(`gate2_prerequisite`, `Enable`) EntFire(`gate2_prerequisite_door`, `Enable`) EntFire(`gate2_door_trigger`, `Enable`) EntFire(`sentry_nest_hatch_off`, `Trigger`) EntFire(`spawnbot_main2`, `Disable`) EntFire(`spawnbot_upper2`, `Disable`) EntFire(`spawnbot_main2_giants`, `Disable`) // Other Stuff EntFire(`intel3`, `Enable`) EntFire(`intel`, `SetReturnTime`, `45`) EntFire(`intel3`, `SetReturnTime`, `45`, 0.5) EntFire(`intel3`, `Disable`, 1) EntFire(`intel3`, `ForceReset`, 1) " } WaitWhenDone 60 Sound "Announcer.IncomingMob" Checkpoint Yes StartWaveOutput { Target bignet Action RunScriptCode Param " EntFire(`nav_refresh`, `RecomputeBlockers`) EntFire(`bombpath_gate2_ult`, `Disable`) EntFire(`steam_whistle`, `Trigger`) EntFire(`nav_refresh`, `RecomputeBlockers`, 1) EntFire(`nav_refresh`, `RecomputeBlockers`, 2) EntFire(`nav_refresh`, `RecomputeBlockers`, 3) EntFire(`nav_refresh`, `RecomputeBlockers`, 4) EntFire(`trigger_flank_container_prereq`, `Enable`, 70) " } WaveSpawn { Name wave3a TotalCurrency 50 Where spawnbot_main1 Where spawnbot_main2 TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TFBot { Template T_TFBot_Demoman_Samurai Tag bot_giant } } WaveSpawn { Name wave3b TotalCurrency 150 Where spawnbot_main1 Where spawnbot_main2 TotalCount 52 MaxActive 12 SpawnCount 4 WaitBeforeStarting 10 WaitBetweenSpawns 5 RandomChoice { TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast } TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast } TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast } TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast } TFBot { Template T_TFBot_Soldier_Extended_Battalion } TFBot { Class Soldier Skill Normal } } } WaveSpawn { Name wave3b TotalCurrency 100 Where spawnbot_main1 Where spawnbot_main2 TotalCount 4 MaxActive 2 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 15 TFBot { Template T_TFGateBot_Giant_Scout_Ult } } WaveSpawn { Name wave3c WaitForAllSpawned wave3b TotalCurrency 100 Where spawnbot_main1 Where spawnbot_main2_giants TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 30 TFBot { Template T_TFGateBot_Giant_Pyro_AlwaysFire_Crit } } WaveSpawn { Name wave3c WaitForAllSpawned wave3b TotalCurrency 100 Where spawnbot_main1 Where spawnbot_upper2 TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 25 WaitBetweenSpawns 30 TFBot { Template T_TFBot_Giant_DemoMan_PrinceTavish Tag bot_giant } } WaveSpawn { Name wave3c WaitForAllSpawned wave3b TotalCurrency 100 Where spawnbot_main1 Where spawnbot_main2 TotalCount 30 MaxActive 10 SpawnCount 3 WaitBeforeStarting 20 WaitBetweenSpawns 5 TFBot { Class Scout Name "pomson pushover" ClassIcon engineer_pomson_v2 Tag "popext_giveweapon{weapon = `tf_weapon_drg_pomson`, id = ID_POMSON_6000, attrs = {`faster reload rate`: 0.6}}" CharacterAttributes { "move speed bonus" 0.75 } } } WaveSpawn { TotalCurrency 100 Where spawnbot_main1_slow Where spawnbot_main2_giants TotalCount 25 MaxActive 6 SpawnCount 1 WaitBeforeStarting 15 WaitBetweenSpawns 5 RandomChoice { TFBot { Template T_TFBot_Soldier_Extended_Concheror } TFBot { Template T_TFGateBot_Soldier_Hard } TFBot { Template T_TFGateBot_Soldier_Extended_Concheror_Normal } } } } // Wave 4 : $900, $3000 + $300 Current Wave { InitWaveOutput { Target bignet Action RunScriptCode Param " IncludeScript(`popextensions_main.nut`, getroottable()) SpawnTemplate(`Gate2BombPath`, null, `-8 -1736 -61`, `0 180 0`) SpawnTemplate(`Gate2BombPath`, null, `-904 -1616 -61`, `0 90 0`) SpawnTemplate(`Gate2BombPath`, null, `-632 -832 -61`) SpawnTemplate(`Gate2BombPath`, null, `-160 -808 -61`, `0 60 0`) SpawnTemplate(`Gate2BombPath`, null, `408 -280 -61`, `0 30 0`) SpawnTemplate(`Gate2BombPath`, null, `776 560 -61`, `0 190 0`) SpawnTemplate(`Gate2BombPath`, null, `9 427 -157`, `0 90 0`) // Reset Wave Relay Stuff EntFire(`gate1_relay`, `CancelPending`) EntFire(`gate2_relay`, `CancelPending`) EntFire(`pop_interface`, `UnpauseBotSpawning`) EntFire(`pop_interface`, `ChangeBotAttributes`, `Default`) EntFire(`pop_interface`, `ChangeDefaultEventAttributes`, `Default`) EntFire(`gate1_capturepoint_a`, `SetOwner`, `3`) EntFire(`gate2_capturepoint_b`, `SetOwner`, `2`) EntFire(`nav_refresh`, `RecomputeBlockers`) // Spawn Gate EntFire(`gate0_entrance_door`, `Close`) EntFire(`gate0_entrance_blocker`, `Enable`) EntFire(`sentry_nest_main_off`, `Trigger`) // 1st Gate EntFire(`gate1_prereq_move_giant`, `Disable`) EntFire(`prereq_gate1_giant_wait`, `Disable`) EntFire(`gate1_detect_bot`, `Disable`) EntFire(`gate1_bot_teleport`, `Disable`) EntFire(`gate1_alarm_blue_on`, `Trigger`) EntFire(`gate1_entrance_door`, `Open`) EntFire(`gate1_entrance_blocker`, `Disable`) EntFire(`gate1_spawn_door`, `Open`) EntFire(`gate1_prerequisite`, `Disable`) EntFire(`gate1_door_alarm`, `Disable`) EntFire(`sentry_nest_middle_on`, `Trigger`) EntFire(`gate1_prerequisite_door`, `Disable`) EntFire(`gate1_entrance_gate_medium`, `Enable`) EntFire(`gate1_alarm_timer`, `Disable`) EntFire(`gate1_bot_blocker`, `Disable`) EntFire(`spawnbot_main1`, `Enable`) EntFire(`spawnbot_main1_slow`, `Enable`) EntFire(`spawnbot_upper1`, `Enable`) EntFire(`spawnbot_mission_sniper1`, `Enable`) EntFire(`spawnbot_mission_sniper2`, `Enable`) EntFire(`gate1_door_trigger`, `Disable`) EntFire(`trigger_flank_container_prereq`, `Disable`) // 2nd Gate EntFire(`gate2_alarm_yellow_off`, `Trigger`) EntFire(`gate2_alarm_blue_off`, `Trigger`) EntFire(`gate2_door_trigger`, `Disable`) EntFire(`gate2_spawn_door`, `Close`) EntFire(`gate2_bot_blocker`, `Enable`) EntFire(`gate2_door_alarm`, `Enable`) EntFire(`gate2_prereq_move_giant`, `Disable`) EntFire(`prereq_gate2_giant_wait`, `Disable`) EntFire(`gate2_fence_visualizer1`, `Disable`) EntFire(`gate2_fence_door`, `Close`) EntFire(`gate2_prerequisite`, `Enable`) EntFire(`gate2_prerequisite_door`, `Enable`) EntFire(`gate2_door_trigger`, `Enable`) EntFire(`sentry_nest_hatch_off`, `Trigger`) EntFire(`spawnbot_main2`, `Disable`) EntFire(`spawnbot_upper2`, `Disable`) EntFire(`spawnbot_main2_giants`, `Disable`) // Other Stuff EntFire(`intel3`, `Enable`) EntFire(`intel`, `SetReturnTime`, `45`) EntFire(`intel3`, `SetReturnTime`, `45`, 0.5) EntFire(`intel3`, `Disable`, 1) EntFire(`intel3`, `ForceReset`, 1) " } WaitWhenDone 60 Sound "Announcer.IncomingMob" Checkpoint Yes StartWaveOutput { Target bignet Action RunScriptCode Param " EntFire(`nav_refresh`, `RecomputeBlockers`) EntFire(`bombpath_gate2_ult`, `Disable`) EntFire(`steam_whistle`, `Trigger`) EntFire(`nav_refresh`, `RecomputeBlockers`, 1) EntFire(`nav_refresh`, `RecomputeBlockers`, 2) EntFire(`nav_refresh`, `RecomputeBlockers`, 3) EntFire(`nav_refresh`, `RecomputeBlockers`, 4) EntFire(`trigger_flank_container_prereq`, `Enable`, 70) " } WaveSpawn { Name wave4a TotalCurrency 175 Where spawnbot_main1 Where spawnbot_main2 TotalCount 48 MaxActive 10 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 3 RandomChoice { TFBot { Template T_TFGateBot_Demoman_Easy } TFBot { Template T_TFGateBot_Demoman_Easy } TFBot { Class Demoman } } } WaveSpawn { Name wave4a TotalCurrency 50 Where spawnbot_main1 Where spawnbot_main2_giants TotalCount 18 MaxActive 8 SpawnCount 2 WaitBeforeStarting 14 WaitBetweenSpawns 7 TFBot { Template T_TFBot_ScorchShot_FastShot ClassIcon pyro_scorch } } WaveSpawn { Name wave4b TotalCurrency 75 Where spawnbot_main1 Where spawnbot_upper2 TotalCount 3 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 20 TFBot { Template T_TFBot_Giant_Heavy_SteelFist Tag bot_giant } } WaveSpawn { Name wave4b TotalCurrency 100 Where spawnbot_main1 Where spawnbot_upper2 TotalCount 10 MaxActive 10 SpawnCount 10 WaitBeforeStarting 70 WaitBetweenSpawns 0 Squad { TFBot { Template T_TFBot_Giant_Heavy_SteelFist Tag bot_giant } TFBot { Template T_TFBot_Medic_Vaccinator } TFBot { Template T_TFBot_Medic_Vaccinator } TFBot { Template T_TFBot_Medic_Vaccinator } TFBot { Template T_TFBot_Medic_Vaccinator Attributes VaccinatorBlast } TFBot { Template T_TFBot_Medic_Vaccinator Attributes VaccinatorBlast } TFBot { Template T_TFBot_Medic_Vaccinator Attributes VaccinatorBlast } TFBot { Template T_TFBot_Medic_Vaccinator Attributes VaccinatorFire } TFBot { Template T_TFBot_Medic_Vaccinator Attributes VaccinatorFire } TFBot { Template T_TFBot_Medic_Vaccinator Attributes VaccinatorFire } } } WaveSpawn { Name wave4b WaitForAllSpawned wave4a TotalCurrency 100 Where spawnbot_main1 Where spawnbot_main2 TotalCount 10 MaxActive 10 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 0 TFBot { Template T_TFBot_Soldier_DirectHit Skill Hard } } WaveSpawn { Name wave4c WaitForAllDead wave4b TotalCurrency 100 Where spawnbot_main1 Where spawnbot_main2 TotalCount 20 MaxActive 7 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 8 Squad { TFBot { Template T_TFGateBot_Soldier_Hard_DirectHit } TFBot { Template T_TFBot_Medic_Vaccinator_Cycle Tag bot_squad_member } } } WaveSpawn { Name wave4c WaitForAllDead wave4b TotalCurrency 200 Where spawnbot_main1 Where spawnbot_main2_giants TotalCount 20 MaxActive 10 SpawnCount 5 WaitBeforeStarting 20 WaitBetweenSpawns 18 Squad { TFBot { Template T_TFGateBot_Giant_Soldier_EscapePlan } TFBot { Template T_TFBot_Pyro_Reflect Tag bot_squad_member } TFBot { Template T_TFBot_Pyro_Reflect Tag bot_squad_member } TFBot { Template T_TFBot_Pyro_Reflect Tag bot_squad_member } TFBot { Template T_TFBot_Pyro_Reflect Tag bot_squad_member } } } WaveSpawn { TotalCurrency 0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 20 Support 1 TFBot { Template T_TFBot_Heavyweapons_Shotgun } } WaveSpawn { Name wave4c WaitForAllDead wave4b TotalCurrency 100 Where spawnbot_main1 Where spawnbot_main2 TotalCount 50 MaxActive 8 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 5 Support 1 TFBot { Template T_TFBot_Heavyweapons_Shotgun } } } // Wave 5 : $900, $3900 + $400 Current Wave { InitWaveOutput { Target bignet Action RunScriptCode Param " IncludeScript(`popextensions_main.nut`, getroottable()) PopExtUtil.ShowAnnotation({ text = `We have regained full control! Defend as normal and keep those robots out!` pos = Vector(-1405, -2912, -95) lifetime = 20 id = 0 play_sound = `ui/hint.wav` visbit = 0 }) EntFire(`holograms_3way_relay`, `Trigger`) EntFire(`intel`, `SetReturnTime`, `35`, 5) EntFire(`intel3`, `Enable`, 5) EntFire(`intel3`, `SetReturnTime`, `35`, 5.5) EntFire(`intel3`, `Disable`, 6) " } WaitWhenDone 60 Sound "Announcer.IncomingMob" Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } WaveSpawn { Name wave5a TotalCurrency 50 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 18 MaxActive 18 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 Support Limited TFBot { Template T_TFBot_Sniper Skill Expert Tag "popext_mission{mission = MISSION_SNIPER}" } } WaveSpawn { Name wave5b TotalCurrency 100 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 4 MaxActive 2 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 20 TFBot { Template T_TFGateBot_Giant_Scout_Bonk } } WaveSpawn { Name wave5b TotalCurrency 100 Where spawnbot_upper0 Where spawnbot_main1_slow Where spawnbot_main2_giants TotalCount 4 MaxActive 2 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 20 TFBot { Template T_TFGateBot_Giant_Scout_Bonk } } WaveSpawn { Name wave5b TotalCurrency 100 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 4 MaxActive 3 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 15 TFBot { Template T_TFBot_Giant_Sniper_SMG Tag bot_giant } } WaveSpawn { Name wave5b TotalCurrency 100 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 36 MaxActive 11 SpawnCount 2 WaitBeforeStarting 20 WaitBetweenSpawns 3 TFBot { Template T_TFBot_Pyro_Dragon } } WaveSpawn { Name wave5c WaitForAllSpawned wave5b TotalCurrency 150 Where spawnbot_upper0 Where spawnbot_main1 Where spawnbot_main2_giants TotalCount 6 MaxActive 4 SpawnCount 2 WaitBeforeStarting 15 WaitBetweenSpawns 45 Squad { TFBot { Template T_TFGateBot_Giant_Sniper_SMG } TFBot { Template T_TFBot_Giant_Medic_Regen Tag bot_squad_member Tag bot_giant } } } WaveSpawn { Name wave5c WaitForAllSpawned wave5b TotalCurrency 125 Where spawnbot_main0 Where spawnbot_upper0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 50 MaxActive 10 SpawnCount 2 WaitBeforeStarting 25 WaitBetweenSpawns 4 RandomSpawn 1 RandomChoice { TFBot { Class Soldier Skill Hard } TFBot { Class Soldier Skill Normal } TFBot { Class Soldier Skill Normal } TFBot { Class Soldier Skill Normal } TFBot { Template T_TFGateBot_Soldier_Hard } TFBot { Template T_TFGateBot_Soldier_Normal } } } WaveSpawn { Name wave5c WaitForAllSpawned wave5b TotalCurrency 75 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_upper2 TotalCount 3 MaxActive 2 SpawnCount 1 WaitBeforeStarting 35 WaitBetweenSpawns 45 TFBot { Template T_TFBot_Giant_Heavyweapons Tag bot_giant } } WaveSpawn { Name wave5c WaitForAllSpawned wave5b TotalCurrency 100 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_upper2 TotalCount 35 MaxActive 5 SpawnCount 5 WaitBeforeStarting 20 WaitBetweenSpawns 20 TFBot { Template T_TFBot_ScorchShot ClassIcon pyro_scorch Attributes AlwaysFireWeapon } } WaveSpawn { WaitForAllDead wave5a TotalCurrency 0 Where spawnbot_mission_sniper0 Where spawnbot_mission_sniper1 Where spawnbot_main2_giants TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 40 WaitBetweenSpawns 40 Support 1 TFBot { Template T_TFBot_Sniper Skill Expert Tag "popext_mission{mission = MISSION_SNIPER}" } } } // Wave 6 : $1200, $4800 + $500 Current Wave { WaitWhenDone 60 Sound "Announcer.IncomingMob" Checkpoint Yes InitWaveOutput { Target holograms_centerpath_relay Action Trigger } StartWaveOutput { Target wave_start_relay Action Trigger } WaveSpawn { Name wave6a TotalCurrency 225 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 FirstSpawnWarningSound "mvm/giant_heavy/giant_heavy_entrance.wav" TFBot { Template T_TFBot_Chief_Soldier_RocketPush Item "Jumper's Jeepcap" Tag bot_giant Health 35000 } } WaveSpawn { Name wave6a TotalCurrency 100 Where spawnbot_upper0 Where spawnbot_upper1 Where spawnbot_main2_giants TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 30 Squad { TFBot { Template T_TFGateBot_Giant_Soldier_Crit Tag bot_giant } TFBot { Template T_TFBot_Giant_Medic_Shield Tag bot_squad_member Tag bot_giant } } } WaveSpawn { Name wave6b WaitForAllDead wave6a TotalCurrency 25 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 12 MaxActive 12 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 4 RandomChoice { TFBot { Class Scout Skill Normal } TFBot { Template T_TFGateBot_Scout_Normal } } } WaveSpawn { WaitForAllDead wave6a TotalCurrency 150 Where spawnbot_upper0 Where spawnbot_upper1 Where spawnbot_main2_giants TotalCount 40 MaxActive 8 SpawnCount 4 WaitBeforeStarting 15 WaitBetweenSpawns 20 Squad { TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner } TFBot { Class Scout Skill Hard } TFBot { Class Scout Skill Hard } TFBot { Class Scout Skill Hard } } } WaveSpawn { Name wave6c WaitForAllDead wave6b TotalCurrency 65 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 24 MaxActive 10 SpawnCount 3 WaitBeforeStarting 5 WaitBetweenSpawns 4 RandomChoice { TFBot { Class Scout Skill Normal } TFBot { Template T_TFGateBot_Scout_Normal } } } WaveSpawn { Name wave6c WaitForAllDead wave6b TotalCurrency 50 Where spawnbot_main0 Where spawnbot_upper0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 15 MaxActive 5 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 2 RandomSpawn 1 TFBot { Template T_TFBot_Demo_Burst Name "Crit Burst Fire Demo" Attributes AlwaysCrit } } WaveSpawn { Name wave6d WaitForAllSpawned wave6c TotalCurrency 100 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 32 MaxActive 8 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 3 RandomChoice { TFBot { Class Scout Skill Normal } TFBot { Template T_TFGateBot_Scout_Normal } } } WaveSpawn { Name wave6d WaitForAllSpawned wave6c TotalCurrency 125 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 5 MaxActive 3 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 15 TFBot { Template T_TFGateBot_Giant_Soldier_Spammer_Reload Name "Giant Burst Fire Soldier" Health 3800 } } WaveSpawn { WaitForAllSpawned wave6c TotalCurrency 100 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 22 MaxActive 5 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 10 Squad { TFBot { Template T_TFGateBot_Scout_Hard } TFBot { Template T_TFBot_Medic_Uber_Hard Tag bot_squad_member } } } WaveSpawn { Name wave6e WaitForAllSpawned wave6d TotalCurrency 100 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 35 MaxActive 8 SpawnCount 3 WaitBeforeStarting 5 WaitBetweenSpawns 4 RandomChoice { TFBot { Class Scout Skill Normal } TFBot { Template T_TFGateBot_Scout_Normal } } } WaveSpawn { Name wave6e WaitForAllSpawned wave6d TotalCurrency 160 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 16 MaxActive 8 SpawnCount 4 WaitBeforeStarting 5 WaitBetweenSpawns 15 Squad { TFBot { Template T_TFBot_Giant_Pyro Name "Giant Crit Pyro" Attributes AlwaysCrit Tag bot_giant } TFBot { Template T_TFBot_Soldier_Extended_Concheror } TFBot { Template T_TFBot_Soldier_Extended_Concheror } TFBot { Template T_TFBot_Soldier_Extended_Concheror } } } WaveSpawn { WaitForAllDead wave6a TotalCurrency 0 Where spawnbot_upper0 Where spawnbot_upper1 Where spawnbot_main2_giants TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawnsAfterDeath 60 Support 1 TFBot { Template T_TFBot_Engineer_Sentry_Battle } } } // Wave 7 : $800, $6000 + $600 Current Wave { WaitWhenDone 60 Sound "Announcer.IncomingMob" Checkpoint Yes InitWaveOutput { Target holograms_3way_relay Action Trigger } StartWaveOutput { Target wave_start_relay Action Trigger } WaveSpawn { Name wave7a TotalCurrency 50 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TFBot { Template T_TFBot_Giant_Heavy_HealOnKill Tag bot_giant } } WaveSpawn { Name wave7a TotalCurrency 50 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 8 TFBot { Template T_TFBot_Sniper_Huntsman_Spammer } } WaveSpawn { Name wave7a TotalCurrency 50 Where spawnbot_upper0 Where spawnbot_upper1 Where spawnbot_main2_giants TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 8 TFBot { Template T_TFBot_Sniper_Huntsman_Spammer } } WaveSpawn { Name wave7b WaitForAllDead wave7a TotalCurrency 100 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 32 MaxActive 8 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 4 TFBot { Template T_TFGateBot_Scout_FAN } } WaveSpawn { Name wave7b WaitForAllDead wave7a TotalCurrency 50 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 24 MaxActive 6 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 5 TFBot { Template T_TFGateBot_Demo_Burst_Normal } } WaveSpawn { Name wave7b WaitForAllDead wave7a TotalCurrency 50 Where spawnbot_upper0 Where spawnbot_upper1 Where spawnbot_main2_giants TotalCount 16 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 3 TFBot { Template T_TFGateBot_Heavy_Hard } } WaveSpawn { Name wave7b WaitForAllDead wave7a TotalCurrency 150 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 6 MaxActive 4 SpawnCount 2 WaitBeforeStarting 15 WaitBetweenSpawns 15 Squad { TFBot { Template T_TFBot_Giant_Pyro_Dragon Tag bot_giant } TFBot { Template T_TFBot_Giant_Medic_Regen Tag bot_giant } } } WaveSpawn { Name wave7d WaitForAllSpawned wave7b TotalCurrency 75 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 15 WaitBetweenSpawns 0 Squad { TFBot { Template T_TFGateBot_Giant_Heavy_HealOnKill } TFBot { Template T_TFBot_Sniper_Huntsman_Spammer Tag bot_giant Tag bot_squad_member } TFBot { Template T_TFBot_Sniper_Huntsman_Spammer Tag bot_giant Tag bot_squad_member } } } WaveSpawn { Name wave7d WaitForAllSpawned wave7b TotalCurrency 75 Where spawnbot_upper0 Where spawnbot_main1_slow Where spawnbot_main2_giants TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 15 WaitBetweenSpawns 0 Squad { TFBot { Template T_TFGateBot_Giant_Heavy_HealOnKill } TFBot { Template T_TFBot_Sniper_Huntsman_Spammer Tag bot_giant Tag bot_squad_member } TFBot { Template T_TFBot_Sniper_Huntsman_Spammer Tag bot_giant Tag bot_squad_member } } } WaveSpawn { Name wave7e WaitForAllSpawned wave7d TotalCurrency 30 Where spawnbot_upper0 Where spawnbot_upper1 Where spawnbot_main2_giants TotalCount 9 MaxActive 9 SpawnCount 1 WaitBeforeStarting 30 WaitBetweenSpawns 0 TFBot { Template T_TFGateBot_Soldier_Expert_Crit } } WaveSpawn { Name wave7e WaitForAllSpawned wave7d TotalCurrency 20 Where spawnbot_upper0 Where spawnbot_upper1 Where spawnbot_main2_giants TotalCount 5 MaxActive 5 SpawnCount 1 WaitBeforeStarting 33 WaitBetweenSpawns 0 TFBot { Template T_TFGateBot_Pyro_Reflect } } WaveSpawn { Name wave7f WaitForAllSpawned wave7e TotalCurrency 30 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 9 MaxActive 9 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 0 TFBot { Template T_TFGateBot_Soldier_Expert_Crit } } WaveSpawn { Name wave7f WaitForAllSpawned wave7e TotalCurrency 20 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 5 MaxActive 5 SpawnCount 1 WaitBeforeStarting 13 WaitBetweenSpawns 0 TFBot { Template T_TFGateBot_Pyro_Reflect } } WaveSpawn { Name wave7f WaitForAllSpawned wave7e TotalCurrency 50 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 0 Squad { TFBot { Template T_TFBot_Giant_Soldier_Pocket Tag bot_giant } TFBot { Template T_TFBot_Giant_Medic_Shield Tag bot_giant } } } WaveSpawn { Name wave7g WaitForAllDead wave7f TotalCurrency 0 Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 35 WaitBetweenSpawns 0 FirstSpawnWarningSound "mvm/giant_heavy/giant_heavy_entrance.wav" Squad { TFBot { Template T_TFBot_Giant_Heavy_Booster Attributes UseBossHealthBar Tag bot_giant } TFBot { Template T_TFBot_Giant_Medic_Shield Tag bot_giant } } } WaveSpawn { WaitForAllDead wave7f Where spawnbot_main0 Where spawnbot_upper0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 5 MaxActive 5 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 8 Support 1 RandomSpawn 1 TFBot { Template T_TFBot_Sniper_Huntsman_Spammer Tag bot_giant } } WaveSpawn { WaitForAllDead wave7f Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 12 MaxActive 12 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 3 Support 1 TFBot { Template T_TFBot_Scout_Blaster_Hard Attributes SpawnWithFullCharge } } WaveSpawn { WaitForAllDead wave7a Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 30 Support 1 TFBot { Template T_TFBot_Scout_Blaster_Hard Attributes SpawnWithFullCharge } } } }