// Farmhouse Onslaught, By PDA Expert // Advanced mission in the style of onslaught. Pitchfork // spawns : // spawnbot_left // spawnbot_right // spawnbot/spawnbot_lower #base robot_standard.pop #base robot_giant.pop WaveSchedule { StartingCurrency 400 RespawnWaveTime 5 FixedRespawnWaveTime 6 CanBotsAttackWhileInSpawnRoom no NoRomevisionCosmetics 1 BodyPartScaleSpeed 26 WaveStartCountdown 8 AllowJoinTeamBlue 1 NoThrillerTaunt 1 FastNPCUpdate 1 NoRomevisionCosmetics 1 //If set, robots will not wear romevision cosmetics unless forced to (default: 0) TextPrintTime 0 // How fast a line from the wave description is displayed in the middle of the screen. Use 0 to disable (default: 4) Mission { Objective DestroySentries Where spawnbot BeginAtWave 1 CooldownTime 40 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster } } Mission { Objective Engineer Where spawnbot_right BeginAtWave 3 RunForThisManyWaves 2 DesiredCount 1 InitialCooldown 40 CooldownTime 40 TFBot { Template T_TFBot_Engineer_Sentry_Tele_Battle Health 500 TeleportWhere spawnbot_left TeleportWhere spawnbot_right AlwaysGlow 1 } } FlagResetTime { Name "intel" ResetTime 15 } PlayerAddCond { Index 114 } PointTemplates { scoutyellow { OnSpawnOutput { Target "glowprop" Action "setattached" Param "!activator" Delay 0.05 } prop_dynamic_ornament { "targetname" "glowprop" "model" "models/bots/scout/bot_scout.mdl" "disablebonefollowers" "1" "disableshadows" "1" } tf_glow { "glowcolor" "255 215 0 235" "target" "glowprop" } } soldieryellow { OnSpawnOutput { Target "glowprop" Action "setattached" Param "!activator" Delay 0.05 } prop_dynamic_ornament { "targetname" "glowprop" "model" "models/bots/soldier/bot_soldier.mdl" "disablebonefollowers" "1" "disableshadows" "1" } tf_glow { "glowcolor" "255 215 0 235" "target" "glowprop" } } pyroyellow { OnSpawnOutput { Target "glowprop" Action "setattached" Param "!activator" Delay 0.05 } prop_dynamic_ornament { "targetname" "glowprop" "model" "models/bots/pyro/bot_pyro.mdl" "disablebonefollowers" "1" "disableshadows" "1" } tf_glow { "glowcolor" "255 215 0 235" "target" "glowprop" } } demomanyellow { OnSpawnOutput { Target "glowprop" Action "setattached" Param "!activator" Delay 0.05 } prop_dynamic_ornament { "targetname" "glowprop" "model" "models/bots/demo/bot_demo.mdl" "disablebonefollowers" "1" "disableshadows" "1" } tf_glow { "glowcolor" "255 215 0 235" "target" "glowprop" } } heavyweaponsyellow { OnSpawnOutput { Target "glowprop" Action "setattached" Param "!activator" Delay 0.05 } prop_dynamic_ornament { "targetname" "glowprop" "model" "models/bots/heavy/bot_heavy.mdl" "disablebonefollowers" "1" "disableshadows" "1" } tf_glow { "glowcolor" "255 215 0 235" "target" "glowprop" } } engineeryellow { OnSpawnOutput { Target "glowprop" Action "setattached" Param "!activator" Delay 0.05 } prop_dynamic_ornament { "targetname" "glowprop" "model" "models/bots/engineer/bot_engineer.mdl" "disablebonefollowers" "1" "disableshadows" "1" } tf_glow { "glowcolor" "255 215 0 235" "target" "glowprop" } } medicyellow { OnSpawnOutput { Target "glowprop" Action "setattached" Param "!activator" Delay 0.05 } prop_dynamic_ornament { "targetname" "glowprop" "model" "models/bots/medic/bot_medic.mdl" "disablebonefollowers" "1" "disableshadows" "1" } tf_glow { "glowcolor" "255 215 0 235" "target" "glowprop" } } sniperyellow { OnSpawnOutput { Target "glowprop" Action "setattached" Param "!activator" Delay 0.05 } prop_dynamic_ornament { "targetname" "glowprop" "model" "models/bots/sniper/bot_sniper.mdl" "disablebonefollowers" "1" "disableshadows" "1" } tf_glow { "glowcolor" "255 215 0 235" "target" "glowprop" } } spyyellow { OnSpawnOutput { Target "glowprop" Action "setattached" Param "!activator" Delay 0.05 } prop_dynamic_ornament { "targetname" "glowprop" "model" "models/bots/spy/bot_spy.mdl" "disablebonefollowers" "1" "disableshadows" "1" } tf_glow { "glowcolor" "255 215 0 235" "target" "glowprop" } } giantscoutyellow { OnSpawnOutput { Target "glowprop" Action "setattached" Param "!activator" Delay 0.05 } prop_dynamic_ornament { "targetname" "glowprop" "model" "models/bots/scout_boss/bot_scout_boss.mdl" "disablebonefollowers" "1" "disableshadows" "1" } tf_glow { "glowcolor" "255 215 0 235" "target" "glowprop" } } giantsoldieryellow { OnSpawnOutput { Target "glowprop" Action "setattached" Param "!activator" Delay 0.05 } prop_dynamic_ornament { "targetname" "glowprop" "model" "models/bots/soldier_boss/bot_soldier_boss.mdl" "disablebonefollowers" "1" "disableshadows" "1" } tf_glow { "glowcolor" "255 215 0 235" "target" "glowprop" } } giantpyroyellow { OnSpawnOutput { Target "glowprop" Action "setattached" Param "!activator" Delay 0.05 } prop_dynamic_ornament { "targetname" "glowprop" "model" "models/bots/pyro_boss/bot_pyro_boss.mdl" "disablebonefollowers" "1" "disableshadows" "1" } tf_glow { "glowcolor" "255 215 0 235" "target" "glowprop" } } giantheavyyellow { OnSpawnOutput { Target "glowprop" Action "setattached" Param "!activator" Delay 0.05 } prop_dynamic_ornament { "targetname" "glowprop" "model" "models/bots/heavy_boss/bot_heavy_boss.mdl" "disablebonefollowers" "1" "disableshadows" "1" } tf_glow { "glowcolor" "255 215 0 235" "target" "glowprop" } } ProtectSignal { NoFixup 1 training_annotation { "targetname" "anno_protect" "display_text" "Protect Uncle Bob at all costs!" "lifetime" "7" "origin" "674 -2335 350" } NoFixup 1 training_annotation { "targetname" "anno_bomb" "display_text" "The robots are bringing in a bomb! Protect the farm's hatch!" "lifetime" "7" "origin" "180 650 336" } NoFixup 1 training_annotation { "targetname" "anno_intro" "display_text" "This is Uncle Bob! A farmer in the middle of the badlands." "lifetime" "6" "origin" "674 -2335 350" } NoFixup 1 training_annotation { "targetname" "anno_intro2" "display_text" "Your job is to protect him and his farmhouse!" "lifetime" "6" "origin" "674 -2335 350" } NoFixup 1 training_annotation { "targetname" "anno_tank" "display_text" "A Tank is approaching! Prevent it from reaching Uncle Bob's farmhouse!" "lifetime" "7" "origin" "479 543 -26" } } PaulingIntro { OnSpawnOutput { Target paulingbleep1 Action PlaySound } OnSpawnOutput { Target paulingblabble Action PlaySound Delay 1 } OnSpawnOutput { Target paulingbleep2 Action PlaySound Delay 4 } NoFixup 1 ambient_generic { "targetname" "paulingbleep1" "spawnflags" "49" "radius" "42000" "pitchstart" "100" "pitch" "100" "message" "ui/cyoa_key_minimize.wav" "origin" "0 0 0" "health" "10" } NoFixup 1 ambient_generic { "targetname" "paulingblabble" "spawnflags" "49" "radius" "42000" "pitchstart" "100" "pitch" "100" "message" "vo/pauling/plng_give_bigcontract_allclass_03.mp3" "origin" "0 0 0" "health" "10" } NoFixup 1 ambient_generic { "targetname" "paulingbleep2" "spawnflags" "49" "radius" "42000" "pitchstart" "100" "pitch" "100" "message" "ui/cyoa_map_close.wav" "origin" "0 0 0" "health" "10" } } } Templates { Protect_Intro { Class Engineer Name "Uncle Bob [PROTECT]" ClassIcon red2_lite Attributes UseBossHealthBar Attributes IgnoreFlag Attributes IgnoreEnemies Action Mobber WeaponRestrictions MeleeOnly Item "The Last Straw" Item "El Patron" Item "The Endothermic Exowear" Item "The Texas Half-Pants" Item "Support Spurs" Item "The Jag" DeathSound "vo/engineer_paincrticialdeath05.mp3" StripItemSlot 1 StripItemSlot 0 StripItemSlot 3 StripItemSlot 4 StripItemSlot 5 StripItemSlot 6 UseHumanModel 1 Scale 1.0 Health 20000 MaxVisionRange 0 ItemAttributes { ItemName "The Jag" "reduced_healing_from_medics" 0 } CharacterAttributes { "airblast vertical vulnerability multiplier" 0 "airblast vulnerability multiplier" 0 "health from packs increased" 0 "damage force reduction" 0 "cannot be backstabbed" 1 "cannot be teleported" 1 "voice pitch scale" 0.75 "SET BONUS: special dsp" 57 "increased jump height" 0.0000000000000000001 "move speed penalty" 0.0000000000000000001 } Addcond { Index 43 } VoiceCommand { Delay 2.5 Cooldown 0 Repeats 1 Type "Thanks" } Taunt { Delay 7 Cooldown 0 Repeats 0 Name "Taunt: The Dueling Banjo" } VoiceCommand { Delay 0 Cooldown 0 Repeats 1 Type "Help" IfHealthBelow 15000 } VoiceCommand { Delay 0 Cooldown 0 Repeats 1 Type "Help" IfHealthBelow 10000 } VoiceCommand { Delay 0 Cooldown 0 Repeats 1 Type "Help" IfHealthBelow 5000 } VoiceCommand { Delay 0 Cooldown 0 Repeats 1 Type "Jeers" IfHealthBelow 2500 } } Protect { Class Engineer Name "Uncle Bob [PROTECT]" ClassIcon red2_lite Attributes UseBossHealthBar Attributes IgnoreFlag Attributes IgnoreEnemies Action Mobber WeaponRestrictions MeleeOnly StripItemSlot 1 StripItemSlot 0 StripItemSlot 3 StripItemSlot 4 StripItemSlot 5 StripItemSlot 6 DeathSound "vo/engineer_paincrticialdeath05.mp3" Item "The Last Straw" Item "El Patron" Item "The Endothermic Exowear" Item "The Texas Half-Pants" Item "Support Spurs" Item "The Jag" UseHumanModel 1 Scale 1.0 Health 20000 MaxVisionRange 0 ItemAttributes { ItemName "The Jag" "reduced_healing_from_medics" 0 } CharacterAttributes { "airblast vertical vulnerability multiplier" 0 "airblast vulnerability multiplier" 0 "health from packs increased" 0 "damage force reduction" 0 "cannot be backstabbed" 1 "cannot be teleported" 1 "voice pitch scale" 0.75 "SET BONUS: special dsp" 57 "increased jump height" 0.0000000000000000001 "move speed penalty" 0.0000000000000000001 } Addcond { Index 43 } Taunt { Delay 0.25 Cooldown 0 Repeats 0 Name "Taunt: The Dueling Banjo" } VoiceCommand { Delay 0 Cooldown 0 Repeats 1 Type "Help" IfHealthBelow 15000 } VoiceCommand { Delay 0 Cooldown 0 Repeats 1 Type "Help" IfHealthBelow 10000 } VoiceCommand { Delay 0 Cooldown 0 Repeats 1 Type "Help" IfHealthBelow 5000 } VoiceCommand { Delay 0 Cooldown 0 Repeats 1 Type "Jeers" IfHealthBelow 2500 } } } // 727 -2376 254 ExtraSpawnPoint { Name "bobsyouruncle" TeamNum 3 X "727" Y "-2376" Z "254" } SpawnTemplate ProtectSignal // Wave 1 ($1600) // 12 Steel Gauntlets ($200) // 6 Steel Gauntlets and 1 Kritz Medic each ($200) // 24 Soldiers ($600) // 32 Bat Scouts (critboost???) ($200) // 10 Heavies (normal skill) ($400) OverrideSounds { "music.mvm_lost_wave" "#music\stingers\hl1_stinger_song8.mp3" } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } SpawnTemplate PaulingIntro Explanation { Line "{blue}You have been sent in to protect something in this farmland, hastily for that matter." Line "{blue}So hastily in fact. You didn't even get a mission briefing, though your contracters have said it will come eventually." } WaveSpawn { Name PROTECT TotalCurrency 0 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 0 Where bobsyouruncle Support Limited FirstSpawnOutput { Target anno_intro Action Show } TFBot { Template Protect_Intro } } WaveSpawn { Name "fuckyou" WaitBeforeStarting 1 FirstSpawnMessage "{CC00FF}Pauling :{} Pauling here. This contract is big, I don't give these out every day." } WaveSpawn { Name "fuckyou" WaitForAllSpawned "PROTECT" WaitBeforeStarting 6 FirstSpawnOutput { Target anno_intro2 Action Show } } WaveSpawn { Name PROTECT_FAILED WaitForAllDead PROTECT Support Limited FirstSpawnOutPut { Target boss_deploy_relay Action Trigger } } WaveSpawn { Name "wave01" Where spawnbot_left Where spawnbot_right TotalCount 15 MaxActive 5 SpawnCount 1 WaitBeforeStarting 17 FirstSpawnOutput { Target anno_protect Action Show } WaitBetweenSpawns 1.5 TotalCurrency 200 TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ Skill Hard InterruptAction // Stop current bot ai and force the bot to move to a location { Target "480 -2352 260" Delay 0 Repeats 1 Cooldown 0 Duration 1 WaitUntilDone 1 // If set, duration timer only starts when the bot moves to the target location or the aim target is killed (Default: 0) } Action Mobber Attributes IgnoreFlag AlwaysGlow 1 } } WaveSpawn { Name "wave01" Where spawnbot TotalCount 10 MaxActive 4 SpawnCount 2 WaitBeforeStarting 19 WaitBetweenSpawns 3 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Heavyweapons_Fist BehaviorModifiers Push Attributes IgnoreFlag AlwaysGlow 1 InterruptAction // Stop current bot ai and force the bot to move to a location { Target "480 -2352 260" Delay 0 Repeats 1 Cooldown 0 Duration 1 WaitUntilDone 1 // If set, duration timer only starts when the bot moves to the target location or the aim target is killed (Default: 0) } Action Mobber AlwaysGlow 1 } TFBot { Class Medic Name "Kritz Medic" ClassIcon medic_kritz Skill Hard Attributes SpawnWithFullCharge Item "The Kritzkrieg" ItemAttributes { ItemName "The Kritzkrieg" "uber duration bonus" 100 "bot medic uber health threshold" 600 } BehaviorModifiers Push Attributes IgnoreFlag AlwaysGlow 1 } } } WaveSpawn { Name "wave02" WaitForAllDead "wave01" Where spawnbot TotalCount 24 MaxActive 9 SpawnCount 1 WaitBetweenSpawns 1 TotalCurrency 600 TFBot { Class Soldier Skill Easy Attributes HoldFireUntilFullReload BehaviorModifiers Push Attributes IgnoreFlag AlwaysGlow 1 InterruptAction // Stop current bot ai and force the bot to move to a location { Target "480 -2352 260" Delay 0 Repeats 1 Cooldown 0 Duration 1 WaitUntilDone 1 // If set, duration timer only starts when the bot moves to the target location or the aim target is killed (Default: 0) } Action Mobber AlwaysGlow 1 } } WaveSpawn { WaitForAllDead "wave01" Where spawnbot_left Where spawnbot_right TotalCount 32 MaxActive 8 SpawnCount 2 WaitBetweenSpawns 2 TotalCurrency 200 TFBot { Template T_TFBot_Scout_Melee ClassIcon scout_bat_nys Attributes AlwaysCrit BehaviorModifiers Push Attributes IgnoreFlag AlwaysGlow 1 InterruptAction // Stop current bot ai and force the bot to move to a location { Target "480 -2352 260" Delay 0 Repeats 1 Cooldown 0 Duration 1 WaitUntilDone 1 // If set, duration timer only starts when the bot moves to the target location or the aim target is killed (Default: 0) } Action Mobber AlwaysGlow 1 } } WaveSpawn { Name "wave03" WaitForAllSpawned "wave02" Where spawnbot_left Where spawnbot_right TotalCount 10 MaxActive 10 SpawnCount 10 WaitBeforeStarting 10 TotalCurrency 400 TFBot { Class Heavy Skill Easy BehaviorModifiers Push InterruptAction // Stop current bot ai and force the bot to move to a location { Target "480 -2352 260" Delay 0 Repeats 1 Cooldown 0 Duration 1 WaitUntilDone 1 // If set, duration timer only starts when the bot moves to the target location or the aim target is killed (Default: 0) } Action Mobber Attributes IgnoreFlag AlwaysGlow 1 } } } // Wave 2 (1500$) // 3 Giant Rapid Fire Soldiers // 26 Pyros // 48 Farmer Bots // 2 Giant Shotgun Heavies // 1 Giant Heavy Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name PROTECT TotalCurrency 0 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 Where bobsyouruncle Support Limited FirstSpawnOutput { Target anno_protect Action Show } TFBot { Template Protect } } WaveSpawn { Name PROTECT_FAILED WaitForAllDead PROTECT Support Limited FirstSpawnOutPut { Target boss_deploy_relay Action Trigger } } WaveSpawn { Name "wave01" TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 6 Where spawnbot TotalCurrency 200 TFBot { Template T_TFBot_Giant_Soldier_Spammer BehaviorModifiers Push InterruptAction // Stop current bot ai and force the bot to move to a location { Target "480 -2352 260" Delay 0 Repeats 1 Cooldown 0 Duration 1 WaitUntilDone 1 // If set, duration timer only starts when the bot moves to the target location or the aim target is killed (Default: 0) } Action Mobber Attributes IgnoreFlag AlwaysGlow 1 } } WaveSpawn { Name "wave01" TotalCount 26 MaxActive 13 SpawnCount 2 WaitBetweenSpawns 2 Where spawnbot TotalCurrency 200 TFBot { Class Pyro Skill Easy BehaviorModifiers Push InterruptAction // Stop current bot ai and force the bot to move to a location { Target "480 -2352 260" Delay 0 Repeats 1 Cooldown 0 Duration 1 WaitUntilDone 1 // If set, duration timer only starts when the bot moves to the target location or the aim target is killed (Default: 0) } Action Mobber Attributes IgnoreFlag AlwaysGlow 1 } } WaveSpawn { Name "wave02" WaitForAllSpawned "wave01" TotalCount 48 MaxActive 12 SpawnCount 4 WaitBetweenSpawns 4 Where spawnbot_left TotalCurrency 400 TFBot { Class Soldier Skill Hard ClassIcon pyro_backscratcher_lite Name "Farmer Bot" WeaponRestrictions MeleeOnly Item "The Back Scratcher" Item "The Last Straw" BehaviorModifiers Push Attributes AlwaysCrit InterruptAction // Stop current bot ai and force the bot to move to a location { Target "480 -2352 260" Delay 0 Repeats 1 Cooldown 0 Duration 1 WaitUntilDone 1 // If set, duration timer only starts when the bot moves to the target location or the aim target is killed (Default: 0) } Action Mobber Attributes IgnoreFlag AlwaysGlow 1 } } WaveSpawn { Name "wave02_1" WaitForAllDead "wave01" TotalCount 2 MaxActive 2 SpawnCount 1 WaitBetweenSpawns 7 Where spawnbot TotalCurrency 400 TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun BehaviorModifiers Push InterruptAction // Stop current bot ai and force the bot to move to a location { Target "480 -2352 260" Delay 0 Repeats 1 Cooldown 0 Duration 1 WaitUntilDone 1 // If set, duration timer only starts when the bot moves to the target location or the aim target is killed (Default: 0) } Action Mobber Attributes IgnoreFlag AlwaysGlow 1 } } WaveSpawn { Name "wave02" WaitForAllSpawned "wave02_1" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 7 Where spawnbot TotalCurrency 300 TFBot { Template T_TFBot_Giant_Heavyweapons BehaviorModifiers Push InterruptAction // Stop current bot ai and force the bot to move to a location { Target "480 -2352 260" Delay 0 Repeats 1 Cooldown 0 Duration 1 WaitUntilDone 1 // If set, duration timer only starts when the bot moves to the target location or the aim target is killed (Default: 0) } Action Mobber Attributes IgnoreFlag AlwaysGlow 1 } } } // Wave 3 (1900$) // 2 Giant Heavies // 48 Crit Demoknights (Bomb!) // 4 Giant Scatter Scouts (Bomb!) // 36 Soldiers (Hard Skill) // 2 Giant Burst Soldiers with 1 Giant Burst Demoman Each. Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } Explanation { Line "{red}Uncle Bob :{} Looks like they are rillin' up the ol' {FF4400}!ENGINEER BOTS!{} again. Let's show 'em how its done around these parts!" } WaveSpawn { Name PROTECT TotalCurrency 0 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 Where bobsyouruncle Support Limited FirstSpawnOutput { Target anno_protect Action Show } TFBot { Template Protect } } WaveSpawn { Name PROTECT_FAILED WaitForAllDead PROTECT Support Limited FirstSpawnOutPut { Target boss_deploy_relay Action Trigger } } WaveSpawn { Name "wave01" TotalCount 1 MaxActive 1 Where spawnbot TotalCurrency 100 WaitBeforeStarting 7 TFBot { Template T_TFBot_Giant_Heavyweapons BehaviorModifiers Push InterruptAction // Stop current bot ai and force the bot to move to a location { Target "480 -2352 260" Delay 0 Repeats 1 Cooldown 0 Duration 1 WaitUntilDone 1 // If set, duration timer only starts when the bot moves to the target location or the aim target is killed (Default: 0) } Action Mobber Attributes IgnoreFlag AlwaysGlow 1 } } WaveSpawn { Name "wave01" TotalCount 1 MaxActive 1 Where spawnbot_left TotalCurrency 100 WaitBeforeStarting 2 TFBot { Template T_TFBot_Giant_Heavyweapons BehaviorModifiers Push InterruptAction // Stop current bot ai and force the bot to move to a location { Target "480 -2352 260" Delay 0 Repeats 1 Cooldown 0 Duration 1 WaitUntilDone 1 // If set, duration timer only starts when the bot moves to the target location or the aim target is killed (Default: 0) } Action Mobber Attributes IgnoreFlag AlwaysGlow 1 } } WaveSpawn { Name "wave01" TotalCount 48 MaxActive 16 Where spawnbot TotalCurrency 200 WaitBetweenSpawns 2.5 WaitBeforeStarting 2 StartWaveWarningSound "#music/hl1_song9.mp3" FirstSpawnOutput { Target anno_bomb Action Show } TFBot { Template T_TFBot_Demoman_Knight Attributes AlwaysCrit Item "MvM GateBot Light Demoman" SpawnTemplate demomanyellow } } WaveSpawn { Name "wave02" WaitForAllDead "wave01" TotalCount 4 MaxActive 4 SpawnCount 1 Where spawnbot WaitBetweenSpawns 5 WaitBeforeStarting 5 TotalCurrency 400 TFBot { Template T_TFBot_Giant_Scout Item "MvM GateBot Light Scout" SpawnTemplate giantscoutyellow } } WaveSpawn { Name "wave02" WaitForAllDead "wave01" TotalCount 36 MaxActive 12 SpawnCount 12 Where spawnbot_left Where spawnbot WaitBetweenSpawns 12 TotalCurrency 400 TFBot { Class Soldier Skill Hard BehaviorModifiers Push InterruptAction // Stop current bot ai and force the bot to move to a location { Target "480 -2352 260" Delay 0 Repeats 1 Cooldown 0 Duration 1 WaitUntilDone 1 // If set, duration timer only starts when the bot moves to the target location or the aim target is killed (Default: 0) } Action Mobber Attributes IgnoreFlag AlwaysGlow 1 } } WaveSpawn { Name "wave03" WaitForAllSpawned "wave02" TotalCount 4 MaxActive 4 SpawnCount 2 WaitBetweenSpawns 20 TotalCurrency 700 Where spawnbot Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload BehaviorModifiers Push InterruptAction // Stop current bot ai and force the bot to move to a location { Target "480 -2352 260" Delay 0 Repeats 1 Cooldown 0 Duration 1 WaitUntilDone 1 } Action Mobber Attributes IgnoreFlag AlwaysGlow 1 } TFBot { Template T_TFBot_Giant_Demo_Burst BehaviorModifiers Push InterruptAction // Stop current bot ai and force the bot to move to a location { Target "480 -2352 260" Delay 0 Repeats 1 Cooldown 0 Duration 1 WaitUntilDone 1 } Action Mobber Attributes IgnoreFlag AlwaysGlow 1 } } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name PROTECT TotalCurrency 0 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 Where bobsyouruncle Support Limited FirstSpawnOutput { Target anno_protect Action Show } TFBot { Template Protect } } WaveSpawn { Name PROTECT_FAILED WaitForAllDead PROTECT Support Limited FirstSpawnOutPut { Target boss_deploy_relay Action Trigger } } } }