#base robot_standard_vanilla_kai.pop #base robot_standard_custom_kai.pop #base robot_standard_custom_rafmod_kai.pop #base robot_standard_supercharged_kai.pop #base robot_standard_supercharged_rafmod_kai.pop #base robot_giant_vanilla_kai.pop #base robot_giant_custom_kai.pop #base robot_giant_custom_rafmod_kai.pop #base robot_giant_supercharged_kai.pop #base robot_giant_supercharged_rafmod_kai.pop #base robot_tank_custom_rafmod_kai.pop WaveSchedule { StartingCurrency 0 RespawnWaveTime 1 CanBotsAttackWhileInSpawnRoom No AddSentryBusterWhenDamageDealtExceeds 3000 AddSentryBusterWhenKillCountExceeds 10 AllowBotExtraSlots 1 RobotLimit 25 MissionUnloadOutput { Target BigNet Action RunScriptCode Param " Convars.SetValue(`tf_playergib`, 1) " Delay -1 } //// PRECACHES //// // Precached Sounds // PrecacheSound "music/onslaughtofsteel/abandoned_in_place.mp3" //// LUA SCRIPTS //// LuaScriptFile "tank_repair_script.lua" //// CUSTOM WEAPONS //// CustomWeapon { "HomewreckerRangedWeapon" { OriginalItemName "The Rescue Ranger" "damage bonus" 1.5 "no damage falloff" 1 "add damage type" 128 "remove damage type" 2 "fire rate penalty" 2 "faster reload rate" 0.001 "penetrate teammates" 1 "projectile penetration" 1 "projectile speed decreased" 0.65 "projectile gravity" 750 "arrow hit kill time" 0.1 "custom item model" "models/weapons/c_models/c_sledgehammer/c_sledgehammer.mdl" "custom projectile model" "models/weapons/w_models/w_drg_ball.mdl" "custom weapon fire sound" "common/null.wav" "custom kill icon" "sledgehammer" } } //// POINT TEMPLATES //// PointTemplates { CorePT { OnSpawnOutput { Target BigNet Action RunScriptCode Param " PrecacheSound(`misc/halloween/strongman_fast_impact_01.wav`) Convars.SetValue(`tf_playergib`, 0) EntFire(`saucer`, `Kill`) EntFire(`saucer_sound`, `Kill`) EntFire(`tf_gamerules`, `$StopVO`, `music/onslaughtofsteel/abandoned_in_place.mp3`) IncludeScript(`tankextensions_main`) IncludeScript(`tankextensions/blimp`) IncludeScript(`tankextensions/combattank`) IncludeScript(`tankextensions/combattank_weapons/cannon`) IncludeScript(`tankextensions/combattank_weapons/rocketpod`) IncludeScript(`tankextensions/combattank_weapons/minigun`) IncludeScript(`tankextensions/combattank_weapons/fireball`) IncludeScript(`tankextensions/combattank_weapons/railgun`) IncludeScript(`tankextensions/helicopter`) IncludeScript(`tankextensions/teletank`) IncludeScript(`tankextensions/ubertank`) " } point_populator_interface { "targetname" "pop_interface" } // Universal Filters filter_activator_class // Is a Player { "targetname" "filter_is_player" "Negated" "0" "filterclass" "player" } filter_multi // Is a Red Player { "targetname" "filter_is_red_player" "Negated" "0" "FilterType" "0" "Filter01" "filter_redteam" "Filter02" "filter_is_player" } filter_tf_condition // Medigun Uber Filter { "targetname" "filter_is_not_ubered" "Negated" "1" "condition" "5" //medigun uber } filter_tf_condition // Canteen Uber Filter { "targetname" "filter_is_not_ubered2" "Negated" "1" "condition" "52" //canteen uber } filter_tf_condition // MVM Spawn Uber Filter { "targetname" "filter_is_not_ubered3" "Negated" "1" "condition" "51" //hidden uber } filter_tf_condition // Wheel of Fate Uber ilter { "targetname" "filter_is_not_ubered4" "Negated" "1" "condition" "57" //WoF uber } filter_multi // Is an Un-Ubered Red Player { "targetname" "filter_redteam_nouber" "Negated" "0" "FilterType" "0" //and "Filter01" "filter_redteam" "Filter02" "filter_is_not_ubered" "Filter03" "filter_is_not_ubered2" "Filter04" "filter_is_not_ubered3" "Filter05" "filter_is_not_ubered4" "Filter06" "filter_is_player" } filter_multi // Is an Un-Ubered Player { "targetname" "filter_nouber" "Negated" "0" "FilterType" "0" "Filter01" "filter_is_not_ubered" "Filter02" "filter_is_not_ubered2" "Filter03" "filter_is_not_ubered3" "Filter04" "filter_is_not_ubered4" "Filter05" "filter_is_player" } } MissionPT { func_nav_prefer { "targetname" "nav_prefer_lowerleft" "origin" "692 -1128 72" "mins" "-313 -1368 -72" "maxs" "313 1368 72" "team" "3" "tags" "nav_prefer_flank_lower_left" } func_nav_prefer { "targetname" "nav_prefer_lowerright" "origin" "-1076 -1128 72" "mins" "-313 -1368 -72" "maxs" "313 1368 72" "team" "3" "tags" "nav_prefer_flank_lower_right" } logic_relay { "targetname" "TankMoveRelay" "OnTrigger" "tank_boss*,SetSpeed,25,0,-1" "OnTrigger" "tank_boss*,SetSpeed,50,1.5,-1" "OnTrigger" "tank_boss*,SetSpeed,75,3,-1" "OnTrigger" "BigNetRunScriptCodePrecacheSound(`mvm/mvm_tank_horn.wav`);EmitSoundEx({sound_name=`mvm/mvm_tank_horn.wav`,pitch = 85,filter_type=5})0-1" } logic_relay { "targetname" "TankCleanupRelay" "OnTrigger" "tank_boss*,RemoveHealth,100000,0,-1" } } //// ROBOT PTs //// RotatingHomewreckerPT { KeepAlive 1 RemoveIfKilled "HomewreckerProjectile" OnSpawnOutput { Target "!activator" Action "AddOutput" Param "rendermode 10" Delay 0.01 } OnParentKilledOutput { Target "HomewreckerRotator" Action Stop } OnParentKilledOutput { Target "HomewreckerShake" Action StartShake } OnParentKilledOutput { Target "HomewreckerProjectile" Action RunScriptCode Param "ScreenShake(self.GetOrigin(), 10, 10, 2, 800, 0, true)" } OnParentKilledOutput { Target "HomewreckerProjectile" Action RunScriptCode Param "EmitSoundEx({sound_name = `misc/halloween/strongman_fast_impact_01.wav`, channel = 6, sound_level = 100, entity = self})" } OnParentKilledOutput { Target "HomewreckerProjectile" Action Kill Delay 3 } prop_dynamic { "targetname" "HomewreckerProjectile" "parentname" "HomewreckerRotator" "origin" "-10 0 -50" "model" "models/weapons/c_models/c_sledgehammer/c_sledgehammer.mdl" "modelscale" "1.5" } func_rotating { "targetname" "HomewreckerRotator" "spawnflags" "73" "maxspeed" "500" } } CombatTankBossPart1PT { NoFixUp 1 OnSpawnOutput { Target BigBadSetupRelay Action Trigger } logic_relay { "targetname" "BigBadSetupRelay" "OnTrigger" "tf_gamerules,PlayVO,music/onslaughtofsteel/abandoned_in_place.mp3,0,-1" "OnTrigger" "BenedictTank,AddOutput,OnHealthBelow50Percent TheTankIsAggressive:Trigger::0:-1,0,-1" } logic_relay { "targetname" "TheTankIsAggressive" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/striderx_alert2.wav,0,-1" "OnTrigger" "BenedictTank,SetSpeed,0,0,1" "OnTrigger" "tf_point_weapon_mimic*,AddOutput,Crits 1,0,-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_ROCKETPOD_FIRE_DELAY = 0.4})0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_ROCKETPOD_RELOAD_DELAY = 0.0001})0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_ROCKETPOD_SND_FIRE = `MVM.GiantSoldierRocketShootCrit`});TankExt.PrecacheSound(COMBATTANK_ROCKETPOD_SND_FIRE)0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_ROTATE_SPEED_DEFAULT = 2})0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_MAX_RANGE = 1})0-1" "OnTrigger" "tf_gamerules,PlayVO,items/powerup_pickup_crits.wav,3,-1" "OnTrigger" "HesSoFuckingMad,Start,,3.8,1" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/striderx_alert6.wav,4,1" "OnTrigger" "tf_gamerules,PlayVO,ambient/alarms/razortrain_horn1.wav,4,-1" "OnTrigger" "BenedictTank,Color,255 0 0,4,1" "OnTrigger" "@c@BenedictTank,Color,255 0 0,4,1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_MAX_RANGE = 2000})4-1" "OnTrigger" "BenedictTank,SetSpeed,50,5,1" } info_particle_system { "targetname" "HesSoFuckingMad" "origin" "0 0 0" "effect_name" "grenade_smoke_cycle" "start_active" "0" } info_particle_system { "targetname" "HesSoFuckingmMad" "origin" "0 0 0" "effect_name" "grenade_smoke" "start_active" "0" } info_particle_system { "targetname" "HesSoFuckingMad" "origin" "0 0 100" "effect_name" "grenade_smoke_cycle" "start_active" "0" } info_particle_system { "targetname" "HesSoFuckingMad" "origin" "0 0 100" "effect_name" "grenade_smoke" "start_active" "0" } info_target { "targetname" "CombatTankBossTarget" } info_target { "targetname" "CombatTankBossShielderTarget" "origin" "150 0 128" } info_target { "targetname" "CombatTankBossShielderTargetLooker" "origin" "225 0 128" } } } //// SPAWNED POINT TEMPLATES //// SpawnTemplate "CorePT" SpawnTemplate "MissionPT" PlayerShootTemplate { Name "RotatingHomewreckerPT" AttachToProjectile 1 ItemName "HomewreckerRangedWeapon" } //// EXTRA TANK PATHS //// ExtraTankPath // Tank Path B (Right Path) { Name "tank_path_b" Node "-128 2688 -60" Node "-128 256 36" Node "-320 64 36" Node "-704 64 36" Node "-896 -192 36" Node "-960 -448 36" Node "-960 -1344 36" Node "-896 -1536 36" Node "-896 -2432 36" Node "-768 -2560 36" Node "-320 -2560 68" Node "-152 -2456 68" } //// ROBOT TEMPLATES //// Templates { //// GIANTS //// T_TFBot_Giant_Pyro_Homewrecker_Launcher { Name "Giant Sledgethrower Pyro" Class Pyro ClassIcon pyro_homewrecker_lite_giant Skill Expert Health 3000 Attributes MiniBoss Attributes HoldFireUntilFullReload WeaponRestrictions PrimaryOnly UseMeleeThreatPrioritization 1 AimAt Head Item "HomewreckerRangedWeapon" Item "The Homewrecker" CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 6 } ItemAttributes { ItemName "The Homewrecker" "fire rate penalty" 1.5625 "is_passive_weapon" 1 } ShootTemplate { Name "RotatingHomewreckerPT" AttachToProjectile 1 ItemName "HomewreckerRangedWeapon" } } T_TFBot_Giant_Demoman_Burst_Ricochet { Name "Giant Burst Ricochet Demoman" Class Demoman ClassIcon demo_burst_ricochet_giant Skill Expert Health 3300 Attributes MiniBoss Attributes HoldFireUntilFullReload WeaponRestrictions PrimaryOnly AimOffset "25 0 200" CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 4 } ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "fire rate bonus" 0.1 "faster reload rate" 0.65 "clip size upgrade atomic" 7.0 "projectile speed increased" 1.1 "projectile spread angle penalty" 5 "fuse bonus" 1.5 "grenade bounce speed" 0.8 "grenade bounce damage" 0.75 } } //// MINIGIANTS //// T_TFBot_Scout_Sandman_Armored { Name "Armor League Scout" Template T_TFBot_Scout_Sandman_Spammer ClassIcon scout_stun_armored Skill Expert Health 650 Scale 1.4 } T_TFBot_Heavy_Forceweight_Champ { Name "Forceweight Champ" Class Heavy ClassIcon heavy_steelfist_pusher Skill Expert Health 900 Scale 1.5 WeaponRestrictions MeleeOnly Item "Fists of Steel" Item "Pugilist's Protector" ItemAttributes { ItemName "Fists of Steel" "apply z velocity on damage" 10000 "apply look velocity on damage" 10000 "weapon always gib" 1 } ChangeAttributes { Name "PitbullMode" Delay 2 Repeats 1 Cooldown -1 IfSeeTarget 1 IfLeftSpawn 1 } EventChangeAttributes { PitbullMode { Attributes DisableDodge ActionOverride Mobber CustomEyeGlowColor "255 0 0" CharacterAttributes { "move speed bonus" 5 "cannot pick up intelligence" 1 } } } } //// COMMONS //// T_TFBot_Heavy_Shotgun_Statless { Name "Shotgun Heavy" Class Heavy ClassIcon heavy_shotgun WeaponRestrictions SecondaryOnly } T_TFBot_Engineer_Shotgun { Name "I Forgor my Shotgun" Class Engineer ClassIcon heavy_shotgun WeaponRestrictions SecondaryOnly Action FetchFlag CharacterAttributes { "voice pitch scale" 0 } } T_TFBot_Engineer_Wrench_Repairman { Name "Repairman Engineer" Class Engineer Skill Expert Health 275 Attributes AlwaysFireWeapon WeaponRestrictions MeleeOnly Action Mobber Item "The Data Mining Light" InterruptAction // Guides them to Repair the Drill Tank { Target "CombatTankBossTarget" AimTarget "CombatTankBossTarget" Delay 0.1 Repeats 1 Duration 999 KillAimTarget 1 Distance 50 } } } //// MISSION BOTS //// Mission // Sentry Buster { Objective DestroySentries Where spawnbot_mission_sentrybuster BeginAtWave 1 RunForThisManyWaves 7 InitialCooldown 30 CooldownTime 30 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster } } //// WAVES //// Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`bombpath_clearall_relay`, `Trigger`, null, 6) EntFire(`bombpath_arrows_clear_relay`, `Trigger`, null, 6) EntFire(`bombpath_left_relay`, `Trigger`, null, 6.1) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } // Subwave 1 WaveSpawn // 1 GBrassBeast Heavy and 2 GCharged Medics { Name "Wave1_Subwave1_GBrassBeastHeavy" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 400 Squad { TFBot { Template T_TFBot_Giant_Heavy_BrassBeast CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Medic_Charged CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Medic_Charged CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 6 Armor League Scouts { Name "Wave1_Subwave1_ArmoredSandmanScouts" WaitForAllSpawned "Wave1_Subwave1_GBrassBeastHeavy" Where spawnbot TotalCount 6 MaxActive 6 SpawnCount 3 WaitBeforeStarting 4 WaitBetweenSpawns 10 TotalCurrency 20 TFBot { Template T_TFBot_Scout_Sandman_Armored CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } WaveSpawn // 15 Loch Demos { Name "Wave1_Subwave1_LochDemos" WaitForAllSpawned "Wave1_Subwave1_GBrassBeastHeavy" Where spawnbot_left Where spawnbot_right TotalCount 15 MaxActive 9 SpawnCount 3 WaitBeforeStarting 4 WaitBetweenSpawns 3 TotalCurrency 20 TFBot { Template T_TFBot_Demoman_LochnLoad Skill Expert AimAt Head } } WaveSpawn // 3 GBarrage Soldiers { Name "Wave1_Subwave1_GBarrageSoldier" WaitForAllDead "Wave1_Subwave1_GBrassBeastHeavy" Where spawnbot_left TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 16 TotalCurrency 40 RandomChoice { Shuffle 1 TFBot { Template T_TFBot_Giant_Soldier_Barrage CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Soldier_Barrage BehaviorModifiers Push Tag nav_prefer_flank_left CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Soldier_Barrage BehaviorModifiers Push Tag nav_prefer_flank_left CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 3 GBarrage Soldiers { Name "Wave1_Subwave1_GBarrageSoldier" WaitForAllDead "Wave1_Subwave1_GBrassBeastHeavy" Where spawnbot_right TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 16 TotalCurrency 40 RandomChoice { Shuffle 1 TFBot { Template T_TFBot_Giant_Soldier_Barrage CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Soldier_Barrage BehaviorModifiers Push Tag nav_prefer_flank_right CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Soldier_Barrage BehaviorModifiers Push Tag nav_prefer_flank_right CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 30 Scouts { Name "Wave1_Subwave1_Scouts" WaitForAllDead "Wave1_Subwave1_GBrassBeastHeavy" Where spawnbot_any TotalCount 30 MaxActive 10 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 1 TotalCurrency 40 TFBot { Class Scout Skill Easy } } WaveSpawn // 8 Engineers and 8 Big-Heal Medics { Name "Wave1_Subwave1_Engineers" WaitForAllDead "Wave1_Subwave1_GBrassBeastHeavy" Where spawnbot_any Support Limited TotalCount 16 MaxActive 16 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 0.5 TotalCurrency 0 Squad { TFBot { Template T_TFBot_Engineer_Sentry_Teleporter_WalkIn TeleportWhere spawnbot_left TeleportWhere spawnbot_right } TFBot { Template T_TFBot_Medic_BigHeal } } } WaveSpawn // 1 GBrassBeast Heavy and 2 GCharged Medics { Name "Wave1_Subwave1_GBrassBeastHeavy2" WaitForAllSpawned "Wave1_Subwave1_GBarrageSoldier" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 15 WaitBetweenSpawns 0 TotalCurrency 400 Squad { TFBot { Template T_TFBot_Giant_Heavy_BrassBeast CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Medic_Charged CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Medic_Charged CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 4 Armor League Scouts { Name "Wave1_Subwave1_ArmoredSandmanScouts2" WaitForAllSpawned "Wave1_Subwave1_GBrassBeastHeavy2" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 0.5 TotalCurrency 20 TFBot { Template T_TFBot_Scout_Sandman_Armored CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } WaveSpawn // 5 Loch Demos { Name "Wave1_Subwave1_LochDemos2" WaitForAllSpawned "Wave1_Subwave1_GBrassBeastHeavy2" Where spawnbot_left Where spawnbot_right TotalCount 5 MaxActive 5 SpawnCount 5 WaitBeforeStarting 4 WaitBetweenSpawns 0 TotalCurrency 20 TFBot { Template T_TFBot_Demoman_LochnLoad Skill Expert AimAt Head } } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`bombpath_clearall_relay`, `Trigger`, null, 6) EntFire(`bombpath_arrows_clear_relay`, `Trigger`, null, 6) EntFire(`bombpath_right_relay`, `Trigger`, null, 6.1) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } // Subwave 1 WaveSpawn // 1 Tank { Name "Wave2_Subwave1_Tank" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 60 FirstSpawnWarningSound "mvm/mvm_tank_start.wav" Tank { Name "tank_boss" Health 26000 Speed 75 StartingPathTrackNode "tank_path_a_1" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // 1 Tank { Name "Wave2_Subwave1_Tank" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 3 WaitBetweenSpawns 0 TotalCurrency 60 FirstSpawnWarningSound "mvm/mvm_tank_start.wav" Tank { Name "tank_boss" Health 26000 Speed 75 StartingPathTrackNode "tank_path_b_1" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // 25 Forceweight Champs (Send in the Pitbulls) { Name "Wave2_Subwave1_ForceweightChamps" WaitForAllSpawned "Wave2_Subwave1_Tank" Where spawnbot_any TotalCount 25 MaxActive 25 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 0.1 TotalCurrency 100 TFBot { Template T_TFBot_Heavy_Forceweight_Champ CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } WaveSpawn // 1 GBurst Loch Demoman and 1 Full-Uber Medic { Name "Wave2_Subwave1_GBurstLochDemo" WaitForAllSpawned "Wave2_Subwave1_ForceweightChamps" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 40 Squad { TFBot { Template T_TFBot_Giant_Demoman_LochnLoad_Burst BehaviorModifiers Push Tag nav_prefer_flank_left CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // 1 GBurst Loch Demoman and 1 Full-Uber Medic { Name "Wave2_Subwave1_GBurstLochDemo" WaitForAllSpawned "Wave2_Subwave1_ForceweightChamps" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 40 Squad { TFBot { Template T_TFBot_Giant_Demoman_LochnLoad_Burst BehaviorModifiers Push Tag nav_prefer_flank_right CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // 25 Forceweight Champs (Send in the Pitbulls the Sequel) { Name "Wave2_Subwave1_ForceweightChamps2" WaitForAllSpawned "Wave2_Subwave1_GBurstLochDemo" Where spawnbot_any TotalCount 25 MaxActive 25 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 0.1 TotalCurrency 100 TFBot { Template T_TFBot_Heavy_Forceweight_Champ CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } WaveSpawn // Jimmy Sledgehammer { Name "Wave2_Subwave1_SledgeThrower" WaitForAllSpawned "Wave2_Subwave1_ForceweightChamps2" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 FirstSpawnWarningSound "vo/mvm/mght/pyro_mvm_m_battlecry01.mp3" TFBot { Name "Jimmy Sledgehammer" Template T_TFBot_Giant_Pyro_Homewrecker_Launcher Health 12500 Scale 2 Attributes UseBossHealthBar CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } WaveSpawn // 28 Shotgun Men { Name "Wave2_Subwave1_ShotgunCrew" WaitForAllSpawned "Wave2_Subwave1_SledgeThrower" Where spawnbot_any TotalCount 28 MaxActive 12 SpawnCount 2 WaitBeforeStarting 4 WaitBetweenSpawns 1 TotalCurrency 40 RandomChoice { Shuffle 1 TFBot { Template T_TFBot_Heavy_Shotgun_Statless Skill Easy } TFBot { Template T_TFBot_Engineer_Shotgun Skill Easy } TFBot { Template T_TFBot_Soldier_Shotgun Skill Easy } TFBot { Template T_TFBot_Pyro_Shotgun Skill Easy } } } // Subwave 2 WaveSpawn // 1 GRicochet Demo and 2 Full-Uber Medics { Name "Wave2_Subwave2_GRicochetDemo" WaitForAllDead "Wave2_Subwave1_SledgeThrower" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 2 WaitBetweenSpawns 0 TotalCurrency 60 Squad { TFBot { Template T_TFBot_Giant_Demoman_Burst_Ricochet CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Medic_Uber } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // 10 Heavies { Name "Wave2_Subwave2_Heavies" WaitForAllSpawned "Wave2_Subwave2_GRicochetDemo" Where spawnbot_left TotalCount 10 MaxActive 10 SpawnCount 5 WaitBeforeStarting 2 WaitBetweenSpawns 6 TotalCurrency 20 TFBot { Class Heavy Skill Easy BehaviorModifiers Push Tag nav_prefer_flank_left } } WaveSpawn // 1 GRicochet Demo and 2 Full-Uber Medics { Name "Wave2_Subwave2_GRicochetDemo2" WaitForAllSpawned "Wave2_Subwave2_GRicochetDemo" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 12 WaitBetweenSpawns 0 TotalCurrency 60 Squad { TFBot { Template T_TFBot_Giant_Demoman_Burst_Ricochet CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Medic_Uber } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // 10 Heavies { Name "Wave2_Subwave2_Heavies2" WaitForAllSpawned "Wave2_Subwave2_GRicochetDemo2" Where spawnbot_right TotalCount 10 MaxActive 10 SpawnCount 5 WaitBeforeStarting 2 WaitBetweenSpawns 6 TotalCurrency 20 TFBot { Class Heavy Skill Easy BehaviorModifiers Push Tag nav_prefer_flank_right } } WaveSpawn // 1 GRicochet Demo and 2 Full-Uber Medics { Name "Wave2_Subwave2_GRicochetDemo3" WaitForAllSpawned "Wave2_Subwave2_GRicochetDemo2" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 12 WaitBetweenSpawns 0 TotalCurrency 60 Squad { TFBot { Template T_TFBot_Giant_Demoman_Burst_Ricochet CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Medic_Uber } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // 10 Heavies { Name "Wave2_Subwave2_Heavies3" WaitForAllSpawned "Wave2_Subwave2_GRicochetDemo3" Where spawnbot_left TotalCount 10 MaxActive 10 SpawnCount 5 WaitBeforeStarting 2 WaitBetweenSpawns 6 TotalCurrency 20 TFBot { Class Heavy Skill Easy BehaviorModifiers Push Tag nav_prefer_flank_left } } WaveSpawn // 1 GRicochet Demo and 2 Full-Uber Medics { Name "Wave2_Subwave2_GRicochetDemo4" WaitForAllSpawned "Wave2_Subwave2_GRicochetDemo3" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 12 WaitBetweenSpawns 0 TotalCurrency 60 Squad { TFBot { Template T_TFBot_Giant_Demoman_Burst_Ricochet CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Medic_Uber } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // 10 Heavies { Name "Wave2_Subwave2_Heavies4" WaitForAllSpawned "Wave2_Subwave2_GRicochetDemo4" Where spawnbot_right TotalCount 10 MaxActive 10 SpawnCount 5 WaitBeforeStarting 2 WaitBetweenSpawns 6 TotalCurrency 20 TFBot { Class Heavy Skill Easy BehaviorModifiers Push Tag nav_prefer_flank_right } } // Subwave 3 WaveSpawn // 1 GRocket Storm Soldier and 2 Rapid Fire Concheror Soldiers { Name "Wave2_Subwave3_GRocketStorm" WaitForAllSpawned "Wave2_Subwave2_GRicochetDemo4" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 12 WaitBetweenSpawns 0 TotalCurrency 40 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Giant_Soldier_Rocket_Storm CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Soldier_Extended_Concheror_Spammer CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Soldier_Extended_Concheror_Spammer CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 12 Pyros { Name "Wave2_Subwave3_Pyros" WaitForAllSpawned "Wave2_Subwave3_GRocketStorm" Where spawnbot_left Where spawnbot_right TotalCount 12 MaxActive 8 SpawnCount 2 WaitBeforeStarting 2 WaitBetweenSpawns 2 TotalCurrency 40 TFBot { Class Pyro Skill Normal ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "airblast disabled" 1 } } } WaveSpawn // 2 GRocket Storm Soldiers and 4 Rapid Fire Concheror Soldiers { Name "Wave2_Subwave3_GRocketStorm2" WaitForAllSpawned "Wave2_Subwave3_GRocketStorm" Where spawnbot_any TotalCount 6 MaxActive 6 SpawnCount 3 WaitBeforeStarting 15 WaitBetweenSpawns 1 TotalCurrency 40 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Giant_Soldier_Rocket_Storm CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Soldier_Extended_Concheror_Spammer CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Soldier_Extended_Concheror_Spammer CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 12 Pyros { Name "Wave2_Subwave3_Pyros2" WaitForAllSpawned "Wave2_Subwave3_GRocketStorm2" Where spawnbot_left Where spawnbot_right TotalCount 12 MaxActive 8 SpawnCount 2 WaitBeforeStarting 2 WaitBetweenSpawns 2 TotalCurrency 40 TFBot { Class Pyro Skill Normal ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "airblast disabled" 1 } } } WaveSpawn // 3 GRocket Storm Soldiers and 6 Rapid Fire Concheror Soldiers { Name "Wave2_Subwave3_GRocketStorm3" WaitForAllSpawned "Wave2_Subwave3_GRocketStorm2" Where spawnbot_any TotalCount 9 MaxActive 9 SpawnCount 3 WaitBeforeStarting 15 WaitBetweenSpawns 1 TotalCurrency 40 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Giant_Soldier_Rocket_Storm CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Soldier_Extended_Concheror_Spammer CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Soldier_Extended_Concheror_Spammer CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 6 Pyros and 6 Full-Uber Medics { Name "Wave2_Subwave3_Pyros" WaitForAllSpawned "Wave2_Subwave3_GRocketStorm" Where spawnbot_left Where spawnbot_right TotalCount 12 MaxActive 12 SpawnCount 6 WaitBeforeStarting 2 WaitBetweenSpawns 6 TotalCurrency 40 Squad { TFBot { Class Pyro Skill Normal ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "airblast disabled" 1 } } TFBot { Template T_TFBot_Medic_Uber } } } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`bombpath_clearall_relay`, `Trigger`, null, 6) EntFire(`bombpath_arrows_clear_relay`, `Trigger`, null, 6) EntFire(`bombpath_right_relay`, `Trigger`, null, 6.1) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } // Subwave 1 WaveSpawn // Big Bad Warning { Name "Wave3_Subwave1_WarningCall" WaitBeforeStarting 0 StartWaveWarningSound "npc/strider/striderx_alert5.wav" FirstSpawnWarningSound "ambient/alarms/manhack_alert_pass1.wav" } WaveSpawn // 1 Rocket Tank { Name "Wave3_Subwave1_RocketTank" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 0 TotalCurrency 100 FirstSpawnWarningSound "mvm/mvm_tank_start.wav" Tank { Name "combattank_bomb|rocketpod|rocketpod$targetname|BenedictTank^pingsound|npc/combine_gunship/ping_search.wav" Template Tank_Combat_Rocket Health 50000 Speed 50 Skin 1 StartingPathTrackNode "tank_path_a_1" SpawnTemplate "CombatTankBossPart1PT" } } WaveSpawn // 1 GShield Medic { Name "Wave3_Subwave1_GShieldMedic" WaitForAllSpawned "Wave3_Subwave1_RocketTank" Where spawnbot_left TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 40 TFBot { Template T_TFBot_Giant_Medic_Shield WeaponRestrictions SecondaryOnly Attributes IgnoreEnemies Action Mobber CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } InterruptAction { Target "CombatTankBossShielderTarget" AimTarget "CombatTankBossShielderTargetLooker" Delay 0.5 Repeats 0 Duration 25 Cooldown 0.3 Distance 1 } } } WaveSpawn // 30 Repairman Engineers { Name "Wave3_Subwave1_Repairmen" WaitForAllSpawned "Wave3_Subwave1_RocketTank" Where spawnbot TotalCount 30 MaxActive 10 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 0.5 TotalCurrency 60 TFBot { Template T_TFBot_Engineer_Wrench_Repairman } } WaveSpawn // 8 Burst Pomson Engineers { Name "Wave3_Subwave1_BurstPomsonEngineers" WaitForAllSpawned "Wave3_Subwave1_RocketTank" Where spawnbot TotalCount 8 MaxActive 6 SpawnCount 2 WaitBeforeStarting 4 WaitBetweenSpawns 3 TotalCurrency 40 RandomChoice { Shuffle 1 TFBot { Template T_TFBot_Engineer_Pomson_Burst BehaviorModifiers Push Tag nav_prefer_flank_left CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Engineer_Pomson_Burst BehaviorModifiers Push Tag nav_prefer_flank_right CharacterAttributes { "cannot pick up intelligence" 1 } } } } WaveSpawn // 1 GHeavy { Name "Wave3_Subwave1_GHeavy" WaitForAllSpawned "Wave3_Subwave1_BurstPomsonEngineers" Where spawnbot_left TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 0 TotalCurrency 20 TFBot { Template T_TFBot_Giant_Heavy BehaviorModifiers Push Tag nav_prefer_flank_left CharacterAttributes { "cannot pick up intelligence" 1 } } } WaveSpawn // 1 GHeavy { Name "Wave3_Subwave1_GHeavy" WaitForAllSpawned "Wave3_Subwave1_BurstPomsonEngineers" Where spawnbot_left TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 0 TotalCurrency 20 TFBot { Template T_TFBot_Giant_Heavy BehaviorModifiers Push Tag nav_prefer_flank_lower_left CharacterAttributes { "cannot pick up intelligence" 1 } } } WaveSpawn // 1 GHeavy { Name "Wave3_Subwave1_GHeavy" WaitForAllSpawned "Wave3_Subwave1_BurstPomsonEngineers" Where spawnbot_left TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 6 WaitBetweenSpawns 0 TotalCurrency 20 TFBot { Template T_TFBot_Giant_Heavy BehaviorModifiers Push Tag nav_prefer_flank_right CharacterAttributes { "cannot pick up intelligence" 1 } } } WaveSpawn // 1 GHeavy { Name "Wave3_Subwave1_GHeavy" WaitForAllSpawned "Wave3_Subwave1_BurstPomsonEngineers" Where spawnbot_left TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 6 WaitBetweenSpawns 0 TotalCurrency 20 TFBot { Template T_TFBot_Giant_Heavy BehaviorModifiers Push Tag nav_prefer_flank_lower_right CharacterAttributes { "cannot pick up intelligence" 1 } } } } }