// mann's laughter // find joy in this #base robot_giant.pop #base robot_standard.pop WaveSchedule { StartingCurrency 800 CanBotsAttackWhileInSpawnRoom No RespawnWaveTime 7 CustomUpgradesFile "mvm_upgrades_sigsegv_extra_v19.txt" NoReanimators 1 SniperHideLasers 1 SentryBusterFriendlyFire 0 MedigunShieldDamage 1 SniperAllowHeadshots 1 ImprovedAirblast 1 FlagCarrierMovementPenalty 0.75 PrecacheGeneric "materials/sprites/bullet_res.vmt" PrecacheGeneric "materials/sprites/explosive_res.vmt" PrecacheGeneric "materials/sprites/fire_res.vmt" PrecacheModel "models/props_tumb/mvm/tank_shield.mdl" PrecacheModel "models/bots/boss_bot/boss_tank_ubered.mdl" PointTemplates { TankVacMelee { OnSpawnOutput { Target "!activator" Action "SetDamageFilter" Param "filter_melee" Delay 0 } env_sprite_oriented { "model" "sprites/bullet_res.vmt" "rendermode" "1" "scale" "0.5" "origin" "-64 0 200" } env_sprite_oriented { "model" "sprites/explosive_res.vmt" "rendermode" "1" "scale" "0.5" "origin" "0 0 200" } env_sprite_oriented { "model" "sprites/fire_res.vmt" "rendermode" "1" "scale" "0.5" "origin" "64 0 200" } filter_tf_damaged_by_weapon_in_slot { "weaponSlot" "2" "Negated" "0" "targetname" "filter_melee" } prop_dynamic { "targetname" "tank_shield" "model" "models/props_tumb/mvm/tank_shield.mdl" "skin" "0" } prop_dynamic { "targetname" "tank_shield" "model" "models/props_tumb/mvm/tank_shield.mdl" "skin" "1" } } PowerupLogic { NoFixup 1 logic_relay { "targetname" "powerup_logic_relay" "spawnflags" 2 "OnTrigger" "@p@powerup_haver_target*,$RemoveCond,91,0.1,-1" } } PowerupLogic_Owned { OnSpawnOutput { Target "powerup_haver_target" Action SetParent Param "!activator" Delay 0.01 } OnParentKilledOutput { Target "item_powerup_rune" Action Kill Delay 0 } info_target { "targetname" "powerup_haver_target" } } PowerupLogic_Medic { OnParentKilledOutput { Target "item_powerup_rune" Action Kill Delay 0 } OnParentKilledOutput { Target "powerup_logic_relay" Action Trigger Delay 0.001 } } Teleporter { OnSpawnOutput //make teleporter non solid, otherwise the bots might get stuck on it { Target "tp" Action "addoutput" Param "solid 0" Delay 5 } obj_teleporter { "targetname" "tp" "origin" "10 0 80" "teamnum" "3" "spawnflags" "2" "TeleportWhere" "spawnbot_mission_sniper" "TeleportWhere" "spawnbot_left" "solid" "0" "SolidToPlayer" "0" } } conchtank_bot_init { OnSpawnOutput { Target "@c@!activator" Action "AddOutput" Param "rendermode 10" } OnParentKilledOutput { Target "@c@player" Action "AddOutput" Param "rendermode 0" } OnSpawnOutput { Target "conchtank_bot_target" Action "SetParent" Param "!activator" Delay 0 } info_target { "targetname" "conchtank_bot_target" } } conchtank_init { NoFixup 1 OnParentKilledOutput { Target "@p@conchtank_bot_target*" Action "$Suicide" Delay 0 } filter_tf_bot_has_tag { "targetname" "filter_conchtank" "Negated" "0" "require_all_tags" "1" "tags" "bot_conchtank" } trigger_teleport { "targetname" "conchtank_teleport" "mins" "-9999 -9999 -9999" "maxs" "9999 9999 9999" "spawnflags" "1" "landmark" "!activator" "filtername" "filter_conchtank" "target" "conchtank_position" } info_target { "targetname" "conchtank_position" "origin" "-40 0 180" } } PT_ubertank_logic { NoFixup 1 logic_relay { "targetname" "tank_uber_on" "OnTrigger" "ubertank*,SetDamageFilter,filter_eternal,0,-1" } logic_relay { "targetname" "tank_uber_off" "OnTrigger" "ubertank*,SetDamageFilter,filter_red,0,-1" "OnTrigger" "ubertank*,Skin,0,0,-1" } filter_activator_tfteam { "TeamNum" "2" "Negated" "0" "targetname" "filter_red" } filter_activator_name { "filtername" "nevernevernevernever" "Negated" "0" "targetname" "filter_eternal" } } } Templates { GenericBotBuffs { CharacterAttributes { "airblast vulnerability multiplier" 0.15 "damage force reduction" 0.4 "rage giving scale" 0.2 } } T_TFBot_Scout_Sandman_Armored { Template T_TFBot_Scout_Sandman Health 650 Scale 1.4 Skill Expert Attributes AlwaysCrit ClassIcon scout_stun_spammer_armored ItemAttributes { ItemName "The Sandman" "mod bat launches balls" 2 "effect bar recharge rate increased" 0.01 } } T_TFBot_Heavyweapons_Deflector { Class Heavyweapons Name "Deflector Heavy" ClassIcon heavy_deflector Skill Hard Item "The U-clank-a" Item "Deflector" WeaponRestrictions PrimaryOnly MaxVisionRange 1200 ItemAttributes { ItemName "Deflector" "attack projectiles" 2 } } T_TFBot_Sniper_Jarate { Class Sniper Name "Jarate Thrower" Skill Easy ClassIcon sniper_jarate Item "Jarate" Item "Desert Marauder" WeaponRestrictions SecondaryOnly ItemAttributes { ItemName "Jarate" "effect bar recharge rate increased" 0.1 } } } // MISSION: Sentry Buster Mission { Objective DestroySentries Where spawnbot CooldownTime 30 TFBot { Template T_TFBot_SentryBuster } } // MISSION: Sniper 01 Mission { Objective Sniper Where spawnbot_mission_sniper BeginAtWave 1 RunForThisManyWaves 1 CooldownTime 60 InitialCooldown 30 DesiredCount 2 TFBot { Template T_TFBot_Sniper_Sydney_Sleeper Item "Ol' Snaggletooth" Item "Darwin's Danger Shield" Item "The Bushwacka" Skill Expert ItemAttributes { ItemName "The Sydney Sleeper" "sniper charge per sec" 3 "radius sleeper" 1 } } } // MISSION: Sniper 02 Mission { Objective Sniper Where spawnbot_mission_sniper BeginAtWave 2 RunForThisManyWaves 1 CooldownTime 60 InitialCooldown 20 DesiredCount 2 TFBot { Template T_TFBot_Sniper Name "Camper Sniper" Item "The Cozy Camper" ClassIcon sniper_heal ItemAttributes { ItemName "The Cozy Camper" "health regen" 20 } } } // MISSION: Sniper 03 Mission { Objective Sniper Where spawnbot_mission_sniper BeginAtWave 3 RunForThisManyWaves 1 CooldownTime 60 InitialCooldown 20 DesiredCount 2 TFBot { Template T_TFBot_Sniper Name "Camper Sniper" Item "The Cozy Camper" ClassIcon sniper_heal ItemAttributes { ItemName "The Cozy Camper" "health regen" 20 } } } // MISSION: Sniper 05 Mission { Objective Sniper Where spawnbot_mission_sniper BeginAtWave 5 RunForThisManyWaves 1 CooldownTime 60 InitialCooldown 20 DesiredCount 2 TFBot { Template T_TFBot_Sniper_Sydney_Sleeper Item "Ol' Snaggletooth" Item "Darwin's Danger Shield" Item "The Bushwacka" Skill Expert ItemAttributes { ItemName "The Sydney Sleeper" "sniper charge per sec" 3 "radius sleeper" 1 } } } // MISSION: Spy 01 Mission { Objective Spy Where spawnbot_mission_spy BeginAtWave 1 RunForThisManyWaves 1 CooldownTime 45 InitialCooldown 45 DesiredCount 3 TFBot { Template T_TFBot_Spy ClassIcon spy_fast Name "Fast Spy" ItemAttributes { ItemName "Upgradeable TF_WEAPON_KNIFE" "fire rate bonus" 0.6 } CharacterAttributes { "move speed bonus" 1.5 } } } // MISSION: Spy 02 Mission { Objective Spy Where spawnbot_mission_spy BeginAtWave 2 RunForThisManyWaves 1 CooldownTime 90 InitialCooldown 30 DesiredCount 2 TFBot { Template T_TFBot_Spy ClassIcon spy_fast Name "Fast Spy" ItemAttributes { ItemName "Upgradeable TF_WEAPON_KNIFE" "fire rate bonus" 0.6 } CharacterAttributes { "move speed bonus" 1.5 } } } // MISSION: Spy 04 Mission { Objective Spy Where spawnbot_mission_spy BeginAtWave 4 RunForThisManyWaves 1 CooldownTime 60 InitialCooldown 5 DesiredCount 3 TFBot { Template T_TFBot_Spy Name "Uber Canteen Spy" ClassIcon spy_ubercan Item "Battery Canteens" ExtAttr SuppressCanteenUse ItemAttributes { ItemName "Battery Canteens" "ubercharge" 1 "powerup charges" 1 "powerup duration" 3 } FireWeapon { IfHealthBelow 100 Type "Action" Repeats 1 Delay 1 } } } // MISSION: Spy 05 Mission { Objective Spy Where spawnbot_mission_spy BeginAtWave 5 RunForThisManyWaves 1 CooldownTime 60 InitialCooldown 30 DesiredCount 2 TFBot { Template T_TFBot_Spy Name "Uber Canteen Spy" ClassIcon spy_ubercan Item "Battery Canteens" ExtAttr SuppressCanteenUse ItemAttributes { ItemName "Battery Canteens" "ubercharge" 1 "powerup charges" 1 "powerup duration" 3 } FireWeapon { IfHealthBelow 100 Type "Action" Repeats 1 Delay 1 } } } SpawnTemplate PowerupLogic SpawnTemplate PT_ubertank_logic // WAVE 01 900 Wave { InitWaveOutput { Target gamerules Action RunScriptCode Param " // Load popextensions script IncludeScript(`popextensions`) // Add event hooks for bots with specifed Tag. AddRobotTag(`leave_squad`, { // Called when the robot is spawned OnSpawn = function(bot, tag) { bot.LeaveSquad() }, }) AddRobotTag(`common`, { // Called when the robot is spawned OnSpawn = function(bot, tag) { EntFireByHandle(bot,`RunScriptCode`,`bot.AddCustomAttribute(\`airblast vulnerability multiplier\`,0.15,-1`,0.1,null,null) EntFireByHandle(bot,`RunScriptCode`,`bot.AddCustomAttribute(\`damage force reduction\`,0.4,-1`,0.1,null,null) EntFireByHandle(bot,`RunScriptCode`,`bot.AddCustomAttribute(\`rage giving scale\`,0.2,-1`,0.1,null,null) }, }) " } StartWaveOutput { Target bombpath_arrows_clear_relay Action Trigger } DoneOutput { Target bombpath_wavefinished Action Trigger } WaveSpawn { TotalCurrency 200 Name "stage1" Where spawnbot_mission_sniper RandomSpawn 1 TotalCount 12 SpawnCount 2 MaxActive 10 WaitBetweenSpawns 20 WaitBeforeStarting 5 TFBot { Template T_TFBot_Pyro Name "Slowing Pyro" Skill Hard Attributes AlwaysCrit ClassIcon pyro_slowdown AimLeadProjectileSpeed 2450 Item "The Burning Question" Item "Upgradeable TF_WEAPON_FLAMETHROWER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_FLAMETHROWER" "slow enemy on hit major" 3 "afterburn duration penalty" 0.33 } } } WaveSpawn { TotalCurrency 700 Name "stage1" Where spawnbot RandomSpawn 1 TotalCount 35 SpawnCount 5 MaxActive 15 WaitBetweenSpawns 18 WaitBeforeStarting 0 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Giant_Demo_Burst ClassIcon demo_scatter Name "Giant Scatter Demo" AimLeadProjectileSpeed 1 Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "fire rate bonus" 0.1 "faster reload rate" 0.1 "clip size bonus" 5 "projectile speed increased" 1.1 "damage bonus" 1.25 } } TFBot { Template T_TFBot_Heavyweapons_Fist ClassIcon heavy_steelfist_conch_v2 Item "The Concheror" Attributes SpawnWithFullCharge CharacterAttributes { "increase buff duration" 19 } } TFBot { Template T_TFBot_Heavyweapons_Fist ClassIcon heavy_steelfist_conch_v2 Item "The Concheror" Attributes SpawnWithFullCharge CharacterAttributes { "increase buff duration" 19 } } TFBot { Template T_TFBot_Heavyweapons_Fist ClassIcon heavy_steelfist_conch_v2 Item "The Concheror" Attributes SpawnWithFullCharge CharacterAttributes { "increase buff duration" 19 } Tag leave_squad } TFBot { Template T_TFBot_Heavyweapons_Fist ClassIcon heavy_steelfist_conch_v2 Item "The Concheror" Attributes SpawnWithFullCharge CharacterAttributes { "increase buff duration" 19 } Tag leave_squad } } } } // WAVE 02 900 Wave { StartWaveOutput { Target bombpath_arrows_clear_relay Action Trigger } DoneOutput { Target bombpath_wavefinished Action Trigger } WaveSpawn // Crit Scout Invasion { TotalCurrency 200 Name "stage1" Where spawnbot RandomSpawn 1 TotalCount 48 SpawnCount 12 MaxActive 16 WaitBetweenSpawns 10 WaitBeforeStarting 0 TFBot { Template T_TFBot_Scout_Sandman_Armored } } WaveSpawn // Crit Scout Invasion Center { TotalCurrency 200 Name "stage1" Where spawnbot_mission_sniper RandomSpawn 1 TotalCount 24 SpawnCount 6 MaxActive 8 WaitBetweenSpawns 10 WaitBeforeStarting 0 TFBot { Template T_TFBot_Scout_Sandman_Armored } } WaveSpawn // Crit Scout Invasion Escalation { TotalCurrency 200 Name "stage2" WaitForAllSpawned "stage1" Where spawnbot_mission_sniper RandomSpawn 1 TotalCount 32 SpawnCount 16 MaxActive 16 WaitBetweenSpawns 10 WaitBeforeStarting 0 Squad { TFBot { Template T_TFBot_Scout_Sandman_Armored } TFBot { Name "Superheal Medic" Class Medic Skill Expert Item "The Quick-Fix" Attributes SpawnWithFullCharge ClassIcon medic_infpop ItemAttributes { ItemName "The Quick-Fix" "heal rate bonus" 4.17 //Base 300 HP/sec heals // "overheal penalty" 0.001 // "health from healers reduced" 0.5 //150 HP/sec selfheal "uber duration bonus" -9 //Infinite uber duration } CharacterAttributes { "bot medic uber health threshold" 160 } } } } WaveSpawn // Crit Scout Invasion Center Escalation { TotalCurrency 200 Name "stage2" WaitForAllSpawned "stage1" Where spawnbot_mission_sniper RandomSpawn 1 TotalCount 24 SpawnCount 6 MaxActive 8 WaitBetweenSpawns 10 WaitBeforeStarting 0 Squad { TFBot { Template T_TFBot_Scout_Sandman_Armored } TFBot { Name "Superheal Medic" Class Medic Skill Expert Item "The Quick-Fix" Attributes SpawnWithFullCharge ClassIcon medic_infpop ItemAttributes { ItemName "The Quick-Fix" "heal rate bonus" 4.17 //Base 300 HP/sec heals // "overheal penalty" 0.001 // "health from healers reduced" 0.5 //150 HP/sec selfheal "uber duration bonus" -9 //Infinite uber duration } CharacterAttributes { "bot medic uber health threshold" 160 } } } } WaveSpawn { TotalCurrency 100 Name "stage2" WaitForAllSpawned "stage1" Where spawnbot RandomSpawn 1 TotalCount 8 SpawnCount 2 MaxActive 4 WaitBetweenSpawns 10 WaitBeforeStarting 10 TFBot { Template T_TFBot_Giant_Soldier_Crit Name "Giant Charged Barrage Soldier" Health 4000 ClassIcon soldier_barrage_charged Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" AimLeadProjectileSpeed 1 ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "damage bonus" 2 "clip size upgrade atomic" 26 "faster reload rate" 0.15 "fire rate bonus" 0.2 "projectile speed decreased" 0.55 "projectile spread angle penalty" 5 } CharacterAttributes { "health regen" 40 } } } } // WAVE 03 900 Wave { StartWaveOutput { Target bombpath_arrows_clear_relay Action Trigger } DoneOutput { Target bombpath_wavefinished Action Trigger } WaveSpawn { TotalCurrency 150 Name "stage1" Where spawnbot RandomSpawn 1 TotalCount 6 SpawnCount 2 MaxActive 4 WaitBetweenSpawns 10 WaitBeforeStarting 0 TFBot { Template T_TFBot_Giant_Scout Name "Giant Ghost Scout" ClassIcon scout_ghost Item "Upgradeable TF_WEAPON_SCATTERGUN" ItemAttributes { ItemName "Upgradeable TF_WEAPON_SCATTERGUN" "damage bonus" 1.5 } CharacterAttributes { "not solid to players" 1 "mult stun resistance" 0.5 } } } WaveSpawn { TotalCurrency 200 TotalCount 1 WaitForAllSpawned "stage1" Tank { Health 12000 Speed 75 Name "tankboss_left" StartingPathTrackNode "boss_path_1" SpawnTemplate TankVacMelee ClassIcon tank_vac_melee_lite OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { TotalCurrency 200 TotalCount 1 WaitForAllSpawned "stage1" Tank { Health 12000 Speed 75 Name "tankboss_right" StartingPathTrackNode "boss_path2_1" SpawnTemplate TankVacMelee ClassIcon tank_vac_melee_lite OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { TotalCurrency 100 Name "stage2" WaitForAllSpawned "stage1" Where spawnbot TotalCount 20 SpawnCount 4 MaxActive 16 WaitBetweenSpawns 10 WaitBeforeStarting 15 TFBot { Name "Lieutenant Barrage" Class Soldier Skill Expert Health 650 Scale 1.4 Attributes HoldFireUntilFullReload ClassIcon soldier_barrage AimLeadProjectileSpeed 1 Item "The Grenadier's Softcap" Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "faster reload rate" 0.2 "fire rate bonus" 0.25 "clip size upgrade atomic" 8 "Projectile speed increased" 0.7 "projectile spread angle penalty" 5 "rocket jump damage reduction" 0.01 } CharacterAttributes { "move speed bonus" 0.9 "health regen" 6 } } } WaveSpawn // Pyro { TotalCurrency 100 Name "stage2" WaitForAllSpawned "stage1" Where spawnbot TotalCount 20 SpawnCount 4 MaxActive 4 WaitBetweenSpawns 15 WaitBeforeStarting 20 TFBot { Class Pyro Skill Hard WeaponRestrictions PrimaryOnly ClassIcon pyro_hyper AimLeadProjectileSpeed 2450 Attributes AlwaysCrit Item "Upgradeable TF_WEAPON_FLAMETHROWER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_FLAMETHROWER" "damage bonus" 2 "weapon burn dmg increased" 2 "mult airblast primary refire time" 0.5 "move speed bonus" 1.5 "mult flag carrier move speed" 1 } } } WaveSpawn { TotalCurrency 150 Name "stage2" WaitForAllSpawned "stage1" Where spawnbot RandomSpawn 1 TotalCount 6 SpawnCount 2 MaxActive 4 WaitBetweenSpawns 10 WaitBeforeStarting 20 TFBot { Template T_TFBot_Giant_Scout ClassIcon scout_spammer Name "Giant Rapid Fire Scout" Item "Upgradeable TF_WEAPON_SCATTERGUN" ItemAttributes { ItemName "Upgradeable TF_WEAPON_SCATTERGUN" "faster reload rate" 0 "fire rate bonus" 0.5 } CharacterAttributes { "move speed bonus" 1.2 } } } WaveSpawn { //TotalCurrency 100 Name "stage3" WaitForAllSpawned "stage2" Support 1 // fix the timing issue so these don't just end mid way Where spawnbot TotalCount 36 SpawnCount 6 MaxActive 10 WaitBetweenSpawns 15 WaitBeforeStarting 20 TFBot { Class Scout Name "Milk 'n Mark Scout" ClassIcon scout_fanowar_milk Item "Mad Milk" Item "The Fan O'War" StripItemSlot 0 //removes primary WeaponRestrictions MeleeOnly Attributes AutoJump AutoJumpMin 4.5 AutoJumpMax 12 ItemAttributes { ItemName "Mad Milk" "effect bar recharge rate increased" 0.6 } CharacterAttributes { "move speed bonus" 1.3 "health regen" 10 "increased jump height" 1.4 } } } WaveSpawn { TotalCurrency 100 Name "stage3" WaitForAllSpawned "stage2" Where spawnbot RandomSpawn 1 TotalCount 32 SpawnCount 8 MaxActive 8 WaitBetweenSpawns 20 WaitBeforeStarting 0 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons Name "Giant Healing Natascha Heavy" ClassIcon heavy_natascha_nys_heal Item "Natascha" Item "The Tungsten Toque" ItemAttributes { ItemName "Natascha" "damage bonus" 1.2 "damage penalty" 1 "heal on hit for rapidfire" 50 "restore health on kill" 50 //% "health regen" 50 } CharacterAttributes { "max health additive bonus" 5000 } } TFBot { Template T_TFBot_Medic ClassIcon medic_overheal_uber_armored_lite Name "Armored Overheal Medic" Health 650 Scale 1.3 Item "Upgradeable TF_WEAPON_MEDIGUN" ItemAttributes { ItemName "Upgradeable TF_WEAPON_MEDIGUN" "ubercharge rate bonus" 5 "overheal expert" 2 "heal rate bonus" 10 } CharacterAttributes { "move speed penalty" 0.9 "bot medic uber health threshold" 325 "dmg taken increased" 0.05 "dmg from ranged reduced" 20 "dmg from melee increased" 20 } } TFBot { Template T_TFBot_Medic ClassIcon medic_overheal_uber_armored_lite Name "Armored Overheal Medic" Health 650 Scale 1.3 Item "Upgradeable TF_WEAPON_MEDIGUN" ItemAttributes { ItemName "Upgradeable TF_WEAPON_MEDIGUN" "ubercharge rate bonus" 5 "overheal expert" 2 "heal rate bonus" 10 } CharacterAttributes { "move speed penalty" 0.9 "bot medic uber health threshold" 325 "dmg taken increased" 0.05 "dmg from ranged reduced" 20 "dmg from melee increased" 20 } } TFBot { Template T_TFBot_Medic ClassIcon medic_overheal_uber_armored_lite Name "Armored Overheal Medic" Health 650 Scale 1.3 Item "Upgradeable TF_WEAPON_MEDIGUN" ItemAttributes { ItemName "Upgradeable TF_WEAPON_MEDIGUN" "ubercharge rate bonus" 5 "overheal expert" 2 "heal rate bonus" 10 } CharacterAttributes { "move speed penalty" 0.9 "bot medic uber health threshold" 325 "dmg taken increased" 0.05 "dmg from ranged reduced" 20 "dmg from melee increased" 20 } } } } } // WAVE 04 900 Wave { StartWaveOutput { Target bombpath_arrows_clear_relay Action Trigger } DoneOutput { Target bombpath_wavefinished Action Trigger } WaveSpawn { TotalCurrency 200 Name "stage1" Where spawnbot_left TotalCount 8 SpawnCount 8 MaxActive 8 WaitBetweenSpawns 0 WaitBeforeStarting 0 TFBot { Template T_TFBot_Heavyweapons_Deflector ClassIcon heavy_deflector_backup_yoovy Name "Backup Deflector Heavy" Attributes SpawnWithFullCharge Item "The Battalion's Backup" CharacterAttributes { "increase buff duration" 19 } } } WaveSpawn { TotalCurrency 50 Name "stage1" Where spawnbot_right TotalCount 8 SpawnCount 8 MaxActive 8 WaitBetweenSpawns 0 WaitBeforeStarting 0 TFBot { Template T_TFBot_Demoman Skill Expert ClassIcon demo_burst_spammer AimLeadProjectileSpeed 1 Name "Rapid Burst Demo" Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "fire rate bonus" 0.05 "faster reload rate" 0.2 "clip size penalty" 0.75 "projectile spread angle penalty" 2 } } } WaveSpawn { TotalCurrency 50 Name "stage1" Where spawnbot RandomSpawn 1 TotalCount 4 SpawnCount 2 MaxActive 2 WaitBetweenSpawns 20 WaitBeforeStarting 5 TFBot { Template T_TFBot_Giant_Pyro_Flare_Spammer Attributes AlwaysFireWeapon ClassIcon pyro_flare_rain_push AimLeadProjectileSpeed 2600 Name "Giant Scorching Rain Pyro" Item "The Scorch Shot" ItemAttributes { ItemName "The Scorch Shot" "fire rate bonus" 0.05 //0.1 sec "projectile speed increased" 1.3 "projectile spread angle penalty" 4 } } } WaveSpawn { TotalCurrency 50 Name "stage2" WaitForAllSpawned "stage1" Where spawnbot_left TotalCount 24 SpawnCount 8 MaxActive 8 WaitBetweenSpawns 10 WaitBeforeStarting 15 TFBot { Template T_TFBot_Demoman Skill Expert ClassIcon demo_burst_spammer AimLeadProjectileSpeed 1 Name "Rapid Burst Demo" Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "fire rate bonus" 0.05 "faster reload rate" 0.2 "clip size penalty" 0.75 "projectile spread angle penalty" 2 } } } WaveSpawn { TotalCurrency 200 Name "stage2" WaitForAllSpawned "stage1" Where spawnbot_right TotalCount 30 SpawnCount 10 MaxActive 12 WaitBetweenSpawns 10 WaitBeforeStarting 15 TFBot { Template T_TFBot_Heavyweapons_Deflector ClassIcon heavy_deflector_backup_yoovy Name "Backup Deflector Heavy" Attributes SpawnWithFullCharge Item "The Battalion's Backup" CharacterAttributes { "increase buff duration" 19 } } } WaveSpawn { TotalCurrency 30 Name "stage3" WaitForAllSpawned "stage2" Where spawnbot TotalCount 24 SpawnCount 8 MaxActive 22 WaitBetweenSpawns 20 WaitBeforeStarting 30 TFBot { Template T_TFBot_Demoman_Knight ClassIcon demoknight_nineiron_stun Name "Golfer Demoknight" Item "The Sandman" Item "The Gaelic Golf Bag" ItemAttributes { ItemName "The Sandman" "mod bat launches balls" 2 "custom item model" "models/workshop/weapons/c_models/c_golfclub/c_golfclub.mdl" "effect bar recharge rate increased" 0.01 "damage bonus" 1.856 //= ~65 damage "fire rate penalty" 1.6 } } } WaveSpawn { TotalCurrency 100 Name "stage3" WaitForAllSpawned "stage2" Where spawnbot TotalCount 6 SpawnCount 1 MaxActive 3 WaitBetweenSpawns 10 WaitBeforeStarting 0 TFBot { Template T_TFBot_Giant_Demo_RapidFire ClassIcon demo_bomber Health 4000 Name "Lieutenant Bomber" AimLeadProjectileSpeed 1 Item "Prince Tavish's Crown" Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "fire rate bonus" 0.25 "faster reload rate" 0.35 "clip size bonus" 2.5 "projectile speed increased" 1.1 } CharacterAttributes { "health regen" 20 } } } WaveSpawn { TotalCurrency 100 Name "stage3" WaitForAllSpawned "stage2" Where spawnbot TotalCount 2 SpawnCount 2 MaxActive 2 //WaitBetweenSpawns 0 WaitBeforeStarting 0 TFBot { Template T_TFBot_Giant_Pyro_Flare_Spammer Attributes AlwaysFireWeapon ClassIcon pyro_flare_rain_push AimLeadProjectileSpeed 2600 Name "Giant Scorching Rain Pyro" Item "The Scorch Shot" ItemAttributes { ItemName "The Scorch Shot" "fire rate bonus" 0.05 //0.1 shots per sec "projectile speed increased" 1.3 "projectile spread angle penalty" 4 } } } // Final Push WaveSpawn { TotalCurrency 100 Name "stage4" WaitForAllSpawned "stage3" Where spawnbot TotalCount 20 SpawnCount 4 MaxActive 8 WaitBetweenSpawns 5 WaitBeforeStarting 0 Squad { TFBot { Template T_TFBot_Giant_Demo_RapidFire ClassIcon demo_bomber Health 4000 Name "Lieutenant Bomber" AimLeadProjectileSpeed 1 Item "Prince Tavish's Crown" Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "fire rate bonus" 0.25 "faster reload rate" 0.35 "clip size bonus" 2.5 "projectile speed increased" 1.1 } CharacterAttributes { "health regen" 20 } } TFBot { Template T_TFBot_Medic ClassIcon medic_uber_armored_shield Name "Armored Shield Medic" Health 650 Scale 1.3 Item "Upgradeable TF_WEAPON_MEDIGUN" FireWeapon { Delay 1 Repeats 1 Type "Special" } ItemAttributes { ItemName "Upgradeable TF_WEAPON_MEDIGUN" "ubercharge rate bonus" 5 "generate rage on heal" 2 "heal rate bonus" 10 } CharacterAttributes { "increase buff duration" 19 "move speed penalty" 0.9 "bot medic uber health threshold" 325 "dmg taken increased" 0.05 "dmg from ranged reduced" 20 "dmg from melee increased" 20 } } TFBot { Template T_TFBot_Medic ClassIcon medic_uber_armored_shield Name "Armored Shield Medic" Health 650 Scale 1.3 Item "Upgradeable TF_WEAPON_MEDIGUN" FireWeapon { Delay 1 Repeats 1 Type "Special" } ItemAttributes { ItemName "Upgradeable TF_WEAPON_MEDIGUN" "ubercharge rate bonus" 5 "generate rage on heal" 2 "heal rate bonus" 10 } CharacterAttributes { "increase buff duration" 19 "move speed penalty" 0.9 "bot medic uber health threshold" 325 "dmg taken increased" 0.05 "dmg from ranged reduced" 20 "dmg from melee increased" 20 } } TFBot { Template T_TFBot_Medic ClassIcon medic_uber_armored_shield Name "Armored Shield Medic" Health 650 Scale 1.3 Item "Upgradeable TF_WEAPON_MEDIGUN" FireWeapon { Delay 1 Repeats 1 Type "Special" } ItemAttributes { ItemName "Upgradeable TF_WEAPON_MEDIGUN" "ubercharge rate bonus" 5 "generate rage on heal" 2 "heal rate bonus" 10 } CharacterAttributes { "increase buff duration" 19 "move speed penalty" 0.9 "bot medic uber health threshold" 325 "dmg taken increased" 0.05 "dmg from ranged reduced" 20 "dmg from melee increased" 20 } } } } WaveSpawn { TotalCurrency 60 Name "stage4" WaitForAllSpawned "stage3" Where spawnbot TotalCount 12 SpawnCount 3 MaxActive 6 WaitBetweenSpawns 15 WaitBeforeStarting 10 TFBot { Template T_TFBot_Pyro Skill Hard ClassIcon pyro_heal AimLeadProjectileSpeed 2450 Attributes AlwaysCrit Name "Healing Pyro" Item "Upgradeable TF_WEAPON_FLAMETHROWER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_FLAMETHROWER" "heal on hit for rapidfire" 175 "restore health on kill" 100 } } } WaveSpawn { TotalCurrency 60 Name "stage4" WaitForAllSpawned "stage3" Where spawnbot TotalCount 30 SpawnCount 10 MaxActive 18 WaitBetweenSpawns 10 WaitBeforeStarting 0 TFBot { Class Soldier Name "Lieutenant Crits" Health 650 Scale 1.4 Skill Expert AimLeadProjectileSpeed 1 Item "Tyrant's Helm" Attributes AlwaysCrit Attributes HoldFireUntilFullReload ClassIcon soldier_sergeant_crits ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "damage bonus" 1.25 "faster reload rate" 0.6 "fire rate bonus" 0.25 "clip size upgrade atomic" 7.0 "Projectile speed increased" 1.15 } CharacterAttributes { "move speed bonus" 0.9 "health regen" 10 } } } } // WAVE 05 900 Wave { StartWaveOutput { Target bombpath_arrows_clear_relay Action Trigger } DoneOutput { Target bombpath_wavefinished Action Trigger } WaveSpawn { TotalCurrency 200 Name "stage1" Where spawnbot_left TotalCount 8 SpawnCount 2 MaxActive 4 WaitBetweenSpawns 30 WaitBeforeStarting 0 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer ClassIcon soldier_infinite_heal Name "Giant Rapid Healing Soldier" Health 4000 Item "The Black Box" AimLeadProjectileSpeed 1 ItemAttributes { ItemName "The Black Box" "fire rate bonus" 0.5 "projectile speed decreased" 0.75 "blast radius increased" 1.25 "heal on hit for rapidfire" 1000 } SpawnTemplate PowerupLogic_Owned } TFBot { Template T_TFBot_Giant_Medic Name "Giant Haste Medic" ClassIcon medic_haste_lite SpawnTemplate PowerupLogic_Medic ItemAttributes { ItemName "The Quick-Fix" "uber duration bonus" -9 "ubercharge rate bonus" 80 "effect cond override" 91 "health from healers reduced" 0.00001 } CharacterAttributes { "bot medic uber health threshold" 9999 } } } } WaveSpawn { TotalCurrency 200 Name "stage1" Where spawnbot_right TotalCount 8 SpawnCount 2 MaxActive 4 WaitBetweenSpawns 30 WaitBeforeStarting 0 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer ClassIcon soldier_infinite_heal Name "Giant Rapid Healing Soldier" Health 4000 Item "The Black Box" AimLeadProjectileSpeed 1 ItemAttributes { ItemName "The Black Box" "fire rate bonus" 0.5 "projectile speed decreased" 0.75 "blast radius increased" 1.25 "heal on hit for rapidfire" 1000 } SpawnTemplate PowerupLogic_Owned } TFBot { Template T_TFBot_Giant_Medic Name "Giant Haste Medic" ClassIcon medic_haste_lite SpawnTemplate PowerupLogic_Medic ItemAttributes { ItemName "The Quick-Fix" "uber duration bonus" -9 "ubercharge rate bonus" 80 "effect cond override" 91 "health from healers reduced" 0.00001 } CharacterAttributes { "bot medic uber health threshold" 9999 } } } } WaveSpawn { TotalCurrency 100 Name "stage1" Where spawnbot_mission_sniper RandomSpawn 1 TotalCount 30 SpawnCount 5 MaxActive 10 WaitBetweenSpawns 20 WaitBeforeStarting 3 Squad { NoFormation 1 TFBot { Template T_TFBot_Pyro WeaponRestrictions SecondaryOnly Attributes AlwaysFireWeapon ClassIcon pyro_gascann_explode Skill Expert Name "Explosive Gas Pyro" Item "The Gas Passer" Tag leave_squad ItemAttributes { ItemName "The Gas Passer" "item_meter_charge_rate" 5 "explode_on_ignite" 1 } } TFBot { Template T_TFBot_Pyro WeaponRestrictions SecondaryOnly ClassIcon pyro_gascann_explode Skill Expert Name "Explosive Gas Pyro" Item "The Gas Passer" Tag leave_squad ItemAttributes { ItemName "The Gas Passer" "item_meter_charge_rate" 5 "explode_on_ignite" 1 } } TFBot { Template T_TFBot_Pyro WeaponRestrictions SecondaryOnly ClassIcon pyro_gascann_explode Skill Expert Name "Explosive Gas Pyro" Item "The Gas Passer" Tag leave_squad ItemAttributes { ItemName "The Gas Passer" "item_meter_charge_rate" 5 "explode_on_ignite" 1 } } TFBot { Template T_TFBot_Pyro WeaponRestrictions SecondaryOnly ClassIcon pyro_gascann_explode Skill Expert Name "Explosive Gas Pyro" Item "The Gas Passer" Tag leave_squad ItemAttributes { ItemName "The Gas Passer" "item_meter_charge_rate" 5 "explode_on_ignite" 1 } } TFBot { Template T_TFBot_Pyro WeaponRestrictions SecondaryOnly ClassIcon pyro_gascann_explode Skill Expert Name "Explosive Gas Pyro" Item "The Gas Passer" Tag leave_squad ItemAttributes { ItemName "The Gas Passer" "item_meter_charge_rate" 5 "explode_on_ignite" 1 } } } } WaveSpawn { TotalCurrency 200 TotalCount 1 WaitForAllSpawned "stage1" Tank { Health 20000 Speed 75 Name "tankboss_left" StartingPathTrackNode "boss_path_1" ClassIcon tank_tele Scale 0.5 SpawnTemplate Teleporter OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { TotalCurrency 200 TotalCount 1 WaitForAllSpawned "stage1" Tank { Health 20000 Speed 75 Name "tankboss_right" StartingPathTrackNode "boss_path2_1" ClassIcon tank_conch SpawnTemplate conchtank_init OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Where "" //red spawn TotalCount 1 SpawnCount 1 Support Limited RandomChoice { RandomChoice { TFBot { Class Soldier Name "Extended Conch Tank" ClassIcon soldier_conch Attributes SpawnWithFullCharge Item "The Concheror" Health 30000 StripItemSlot 0 StripItemSlot 2 UseCustomModel "models/empty.mdl" Scale 0.001 CharacterAttributes { "not solid to players" 1 "cancel falling damage" 1 "cannot be sapped" 1 "rage giving scale" 0 "no_jump" 1 "move speed bonus" 0.001 "cannot pick up intelligence" 1 "voice pitch scale" 0 "airblast vulnerability multiplier" 0.0001 "dmg taken increased" 0 "afterburn immunity" 1 "increase buff duration" 99 "ignored by enemy sentries" 1 } Tag bot_conchtank SpawnTemplate "conchtank_bot_init" } } } } WaveSpawn { TotalCurrency 100 Name "stage2" WaitForAllSpawned "stage1" Where spawnbot_left TotalCount 25 SpawnCount 5 MaxActive 16 WaitBetweenSpawns 10 WaitBeforeStarting 0 TFBot { Template T_TFBot_Heavyweapons_Deflector ClassIcon heavy_deflector_backup_yoovy Name "Backup Deflector Heavy" Attributes SpawnWithFullCharge Item "The Battalion's Backup" CharacterAttributes { "increase buff duration" 19 } } } // Final Push WaveSpawn { TotalCurrency 50 Name "stage3" WaitForAllSpawned "stage2" Where spawnbot_mission_sniper RandomSpawn 1 TotalCount 30 SpawnCount 4 MaxActive 10 WaitBetweenSpawns 20 WaitBeforeStarting 5 TFBot { Template T_TFBot_Pyro WeaponRestrictions SecondaryOnly ClassIcon pyro_gascann_explode Skill Expert Name "Explosive Gas Pyro" Item "The Gas Passer" ItemAttributes { ItemName "The Gas Passer" "item_meter_charge_rate" 5 "explode_on_ignite" 1 } } } WaveSpawn { //TotalCurrency 0 Name "stage3" WaitForAllSpawned "stage2" Where spawnbot RandomSpawn 1 TotalCount 8 SpawnCount 1 MaxActive 6 WaitBetweenSpawns 15 WaitBeforeStarting 0 TFBot { Template T_TFBot_Giant_Demo_RapidFire ClassIcon demo_bomber_critcan Health 8000 Name "Commander Bomber" AimLeadProjectileSpeed 1 Item "Prince Tavish's Crown" Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "fire rate bonus" 0.2 "faster reload rate" 0.3 "clip size bonus" 3 "projectile speed increased" 1.1 } CharacterAttributes { "health regen" 40 } Item "Battery Canteens" ExtAttr SuppressCanteenUse ItemAttributes { ItemName "Battery Canteens" "critboost" 1 "powerup charges" 1 "powerup duration" 99 } FireWeapon { IfHealthBelow 5200 Type "Action" Repeats 1 Delay 0.1 } } } WaveSpawn { //TotalCurrency 0 Name "stage3" WaitForAllSpawned "stage2" Where spawnbot RandomSpawn 1 TotalCount 20 SpawnCount 4 MaxActive 12 WaitBetweenSpawns 15 WaitBeforeStarting 0 TFBot { Template T_TFBot_Heavyweapons_Fist Health 1800 ClassIcon heavy_chief Name "Lieutenant Punch" Item "War Head" Item "The Razorback" ItemAttributes { ItemName "Fists of Steel" "fire rate bonus" 0.8 "damage bonus" 2.5 } CharacterAttributes { "health regen" 10 } } } WaveSpawn { // TotalCurrency 25 Name "stage4" WaitForAllSpawned "stage3" DoneWarningSound "player/invulnerable_off.wav" Where spawnbot TotalCount 45 SpawnCount 6 MaxActive 18 //WaitBetweenSpawns 0 WaitBeforeStarting 0 DoneOutput { Target tank_uber_off Action Trigger } TFBot { Template T_TFBot_Demoman_Knight Health 650 ClassIcon demoknight_golden_lite Name "Golden Demoknight" Item "Ali Baba's Wee Booties" FireInput { Target !activator Action "$SetProp$m_iDecapitations" Param 5 Delay 0.1 Repeats 1 } FireWeapon { Type "Primary" Delay 0.1 Cooldown 0.4 Duration 0.4 MaxTargetRange 450 } ItemAttributes { ItemName "The Eyelander" "item style override" 1 "restore health on kill" 100 "damage bonus" 2 "fire rate bonus" 0.6 "attack not cancel charge" 1 "melee cleave attack" 1 "melee grants protection" 0.16 "melee airblast" 1 } CharacterAttributes { "health regen" 15 } } } WaveSpawn { TotalCurrency 200 TotalCount 1 WaitForAllSpawned "stage3" FirstSpawnOutput { Target tank_uber_on Action Trigger } Tank { Health 20000 Speed 75 Name "ubertank" Skin 2 StartingPathTrackNode "boss_path_1" ClassIcon tank_uber_lite Model "models/bots/boss_bot/boss_tank_ubered.mdl" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { TotalCurrency 200 TotalCount 1 WaitForAllSpawned "stage3" FirstSpawnOutput { Target tank_uber_on Action Trigger } Tank { Health 20000 Speed 75 Name "ubertank" Skin 2 StartingPathTrackNode "boss_path2_1" ClassIcon tank_uber_lite Model "models/bots/boss_bot/boss_tank_ubered.mdl" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } } }