//by StardustSpy #base robot_standard.pop #base robot_giant.pop #base robot_stardust.pop #base robot_stardust_gatebot.pop //#base titanium_testers_giantfile_reverse.pop WaveSchedule { StartingCurrency 800 CanBotsAttackWhileInSpawnRoom no RespawnWaveTime 3 NoRomevisionCosmetics 1 FixedRespawnWaveTime 1 NoMissionInfo 1 // AddSentryBusterWhenDamageDealtExceeds 3000 // AddSentryBusterWhenKillCountExceeds 15 // Advanced 1 // EventPopfile Halloween //TODO //Finish W3: //Test the "drilling" phase, make sure its short //Make the hatch explode when drilling is complete PrecacheModel "models\props_mvm\mvm_upgrade_blu.mdl" PrecacheModel "models\props_mvm\robot_spawnpoint.mdl" PrecacheModel "models\props_mvm\hatch_shield.mdl" PrecacheModel "models\bots\boss_bot\boss_tankred.mdl" PrecacheModel "models\bots\boss_bot\boss_tankred_damage1.mdl" PrecacheModel "models\bots\boss_bot\boss_tankred_damage2.mdl" PrecacheModel "models\bots\boss_bot\boss_tankred_damage3.mdl" PrecacheModel "models\bots\boss_bot\boss_tankred_part1_destruction.mdl" PrecacheModel "models\bots\boss_bot\tankred_track_l.mdl" PrecacheModel "models\bots\boss_bot\tankred_track_r.mdl" PrecacheModel "models\bots\boss_bot\bombblue_mechanism.mdl" PrecacheModel "models\bots\demo\red_sentry_buster.mdl" PrecacheModel "models\props_frontline\tank_turret.mdl" PrecacheModel "models/bots/boss_bot/boss_tank_color.mdl" PrecacheModel "models/bots/boss_bot/tank_red_drill.mdl" //keyvalues ReverseWinConditions 1 AllowJoinTeamBlue 1 HumansMustJoinTeam Blue SetCreditTeam 3 SniperAllowHeadshots 1 SendBotsToSpectatorImmediately 1 FixedRespawnWaveTimeBlue 1 RespawnWaveTimeBlue 3 BluHumanFlagCapture 1 MaxSpectators 0 BluHumanFlagPickup 1 RemoveBluVelocityLimit 1 NoBluHumanFootsteps 1 SniperHideLasers 1 MedigunShieldDamage 1 BluHumanInfiniteAmmo 0 FlagCarrierMovementPenalty 1 NoRedBotsRandomCrit 1 //NoRedSniperBotHeadshots 1 FixHuntsmanDamageBonus 1 StuckTimeMultiplier 3 RobotLimit 35 // fixes bomb spawning without the giant spawning alongside it AllowBotExtraSlots 1 ExtraBotSlotsNoDeathcam 0 EnemyTeamForReverse Red CustomNavFile "mvm_snowfall_rc2_new" //////////////////////////////////////////////Bot temps Templates { //scout T_TFGateBot_Scout_Sandman { Name "Sandman Scout" Class Scout ClassIcon scout_stun Health 130 Item "The Sandman" Action Mobber EventChangeAttributes { Default { Skill Expert MaxVisionRange 900 WeaponRestrictions MeleeOnly Attributes IgnoreFlag BehaviorModifiers Push Tag bot_gatebot Item "MvM GateBot Light Scout" InterruptAction { Target "8 -2203 -140" Delay 0.01 Repeats 0 Duration 9999 } ItemAttributes { ItemName "The Sandman" "effect bar recharge rate increased" 0.65 "increase player capture value" -1 } } RevertGateBotsBehavior { Skill Hard MaxVisionRange 600 WeaponRestrictions MeleeOnly Item "MvM GateBot Light Scout" ItemAttributes { ItemName "MvM GateBot Light Scout" "item style override" 1 } InterruptAction // Stop current bot ai and force the bot to move to a location { AimTarget "RandomEnemy" KillAimTarget 1 AlwaysLook 1 Distance 150 } ItemAttributes { ItemName "The Sandman" "effect bar recharge rate increased" 0.65 } } } } //soldier T_TFGateBot_DirectHit { Name "Direct Hit Soldier" Class Soldier ClassIcon soldier_directhit_lite Health 200 Item "The Direct Hit" Attributes DisableDodge Action Passive EventChangeAttributes { Default { Skill Expert MaxVisionRange 1200 WeaponRestrictions PrimaryOnly InterruptAction { Target "8 -2203 -140" Delay 0.01 Repeats 0 Duration 9999 StopCurrentInterruptAction 1 } Tag bot_gatebot Item "MvM GateBot Light Soldier" } RevertGateBotsBehavior { Skill Hard //Action Mobber MaxVisionRange 800 WeaponRestrictions PrimaryOnly Item "MvM GateBot Light Soldier" InterruptAction { Target "RandomEnemy" Delay 0.01 Repeats 0 Duration 9999 AlwaysLook 1 StopCurrentInterruptAction 1 } ItemAttributes { ItemName "MvM GateBot Light Soldier" "item style override" 1 } } } } T_TFGateBot_Pyro_Melee { Name "Pyro" Class Pyro ClassIcon pyro_jug_volcanofrag Item "Sharpened Volcano Fragment" Attributes DisableDodge Action Passive EventChangeAttributes { Default { Skill Expert MaxVisionRange 1200 WeaponRestrictions MeleeOnly InterruptAction { Target "8 -2203 -140" Delay 0.01 Repeats 0 Duration 9999 StopCurrentInterruptAction 1 } Tag bot_gatebot Item "MvM GateBot Light Pyro" } RevertGateBotsBehavior { Skill Hard //Action Mobber MaxVisionRange 800 WeaponRestrictions MeleeOnly Item "MvM GateBot Light Pyro" InterruptAction { Target "RandomEnemy" Delay 0.01 Repeats 0 Duration 9999 AlwaysLook 1 StopCurrentInterruptAction 1 } ItemAttributes { ItemName "MvM GateBot Light Pyro" "item style override" 1 } } } } T_TFGateBot_Giant_Spammer_Soldier { Name "Giant Spammer Soldier" Class Soldier ClassIcon soldier_spammer Health 4000 Attributes MiniBoss Scale 1.7 Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Action Passive EventChangeAttributes { Default { Skill Expert MaxVisionRange 1200 WeaponRestrictions PrimaryOnly InterruptAction { Target "8 -2203 -140" Delay 0.01 Repeats 0 Duration 9999 StopCurrentInterruptAction 1 } Tag bot_gatebot Item "MvM GateBot Light Soldier" ItemAttributes { Itemname "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "mod no reload DISPLAY ONLY" 1 "reload time increased hidden" -0.8 "fire rate bonus" 0.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 3 "voice pitch scale" 0 } } RevertGateBotsBehavior { Skill Expert //Action Mobber MaxVisionRange 800 WeaponRestrictions PrimaryOnly Item "MvM GateBot Light Soldier" InterruptAction { Target "RandomEnemy" Delay 0.01 Repeats 0 Duration 9999 AlwaysLook 1 StopCurrentInterruptAction 1 } ItemAttributes { ItemName "MvM GateBot Light Soldier" "item style override" 1 } ItemAttributes { Itemname "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "mod no reload DISPLAY ONLY" 1 "reload time increased hidden" -0.8 "fire rate bonus" 0.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 3 "voice pitch scale" 0 } } } } T_TFBot_Giant_Soldier_Bison_BigLaser { Name "Big Laser Bison Soldier" Class Soldier ClassIcon soldier_bison Scale 1.75 Health 4000 Attributes MiniBoss Attributes HoldFireUntilFullReload Skill Expert MaxVisionRange 1500 WeaponRestrictions SecondaryOnly Tag bot_giant Item "The righteous Bison" Item "Lord Cockswain's Pith Helmet" Action Passive ItemAttributes { ItemName "The righteous Bison" "clip size upgrade atomic" 23 "fire rate bonus" 0.1 "faster reload rate" 0.1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 3 } } //demo T_TFBot_Giant_DemoMan_PrinceTavish_HighQuality { Class Demoman ClassIcon demoknight_giant Name "Giant Demoknight" Skill Expert Health 3300 Item "Prince Tavish's Crown" Item "The Chargin' Targe" Item "The Eyelander" Item "Ali Baba's Wee Booties" WeaponRestrictions MeleeOnly Attributes MiniBoss ItemAttributes { ItemName "The Eyelander" "critboost on kill" 10 "item style override" 1 "is australium item" 1 "mult crit dmg" 2 } ItemAttributes { Itemname "The Chargin' Targe" //"charge time increased" 2 "attack not cancel charge" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 4 "damage force reduction" 0 "voice pitch scale" 0 } } //heavy T_TFGateBot_Heavyweapons_Heavyweight_Champ { Name "Heavyweight Champ" Class Heavyweapons ClassIcon heavy_champ_red Item "the killing gloves of boxing" Item "Pugilist's Protector" Action Passive EventChangeAttributes { Default { Skill Expert MaxVisionRange 500 WeaponRestrictions MeleeOnly Tag bot_gatebot Item "MvM GateBot Light Heavy" InterruptAction { Target "8 -2203 -140" Delay 0.01 Repeats 0 Duration 9999 StopCurrentInterruptAction 1 } } RevertGateBotsBehavior { Skill Hard MaxVisionRange 500 WeaponRestrictions MeleeOnly Item "MvM GateBot Light Heavy" ItemAttributes { ItemName "MvM GateBot Light Heavy" "item style override" 1 } InterruptAction { Target "RandomEnemy" Delay 0.01 Repeats 0 Duration 9999 AlwaysLook 1 StopCurrentInterruptAction 1 } } } } T_TFGateBot_Giant_Shotgun_Heavy { Name "Giant Shotgun Heavy" Class Heavyweapons ClassIcon heavy_shotgun_red Health 5000 Attributes Miniboss Scale 1.7 Action Passive EventChangeAttributes { Default { Skill Expert MaxVisionRange 1200 WeaponRestrictions SecondaryOnly Tag bot_gatebot Item "MvM GateBot Light Heavy" InterruptAction { Target "8 -2203 -140" Delay 0.01 Repeats 0 Duration 9999 StopCurrentInterruptAction 1 } ItemAttributes { ItemName "Tf_weapon_shotgun_hwg" "fire rate bonus" 2.5 "bullets per shot bonus" 10 "damage penalty" 0.5 "faster reload rate" 0.1 "attack projectiles" 1 } CharacterAttributes { "move speed bonus" 0.7 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 "voice pitch scale" 0 } } RevertGateBotsBehavior { Skill Expert MaxVisionRange 800 WeaponRestrictions SecondaryOnly Item "MvM GateBot Light Heavy" ItemAttributes { ItemName "MvM GateBot Light Heavy" "item style override" 1 } InterruptAction { Target "RandomEnemy" Delay 0.01 Repeats 0 Duration 9999 AlwaysLook 1 StopCurrentInterruptAction 1 } ItemAttributes { ItemName "Tf_weapon_shotgun_hwg" "fire rate bonus" 2.5 "bullets per shot bonus" 10 "damage penalty" 0.5 "faster reload rate" 0.1 "attack projectiles" 1 } CharacterAttributes { "move speed bonus" 0.7 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 "voice pitch scale" 0 } } } } //engineer T_TFBot_Giant_Engineer_Ranger { Name "Giant Homing Ranger Engineer" Class Engineer ClassIcon engineer_ranger_nys Scale 1.7 Health 3000 Attributes MiniBoss Attributes HoldFireUntilFullReload Attributes AlwaysCrit Skill Expert MaxVisionRange 1000 WeaponRestrictions PrimaryOnly Tag bot_giant Item "The Rescue Ranger" Item "Wavefinder" RocketCustomParticle "eyeboss_projectile" AddCond { Name "TF_COND_SODAPOPPER_HYPE" Delay 1 Duration 999999 } Tag bot_giant HomingRockets { IgnoreDisguisedSpies 1 IgnoreStealthedSpies 1 AimTime 4 TurnPower 105 MaxAimError 65 } ItemAttributes { ItemName "The Rescue Ranger" "projectile speed decreased" 0.3 "mod projectile heat seek power" 75 "mod projectile heat aim error" 30 "projectile trail particle" "eyeboss_projectile" } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 7 "damage force reduction" 0 "voice pitch scale" 0 } } } //////////////////////////////////////////////balancing /////////////////////////////////////////////////////// DisallowUpgrade "critboost" DisallowUpgrade "ubercharge" PlayerAttributes { Spy { //"cannot pick up intelligence" 1 } Engineer { //"cannot pick up intelligence" 1 "max health additive bonus" 125 } Sniper { //"cannot pick up intelligence" 1 } } //////////////////////////////////////////////spawns /////////////////////////////////////////////////////// ExtraSpawnPoint { Name "spawnbot_frontmid" TeamNum 2 X "-12.3" Y "-3531" Z "17" } ExtraSpawnPoint { Name "spawnbot_leftrock" TeamNum 2 X "-1093" Y "-3783" Z "-238" } ExtraSpawnPoint { Name "spawnbot_midrock" TeamNum 2 X "17.6225" Y "-3909.66" Z "-283.921" } ExtraSpawnPoint { Name "spawnbot_rightrock" TeamNum 2 X "1167" Y "-3914" Z "-235" } ExtraSpawnPoint { Name "spawnbot_rightfountain" TeamNum 2 X "219.173" Y "-3215.95" Z "-154.696" } ExtraSpawnPoint { Name "spawnbot_rightbalcony" TeamNum 2 X "1140.42" Y "-3718.27" Z "-79.9553" } ExtraSpawnPoint { Name "spawnbot_leftfountain" TeamNum 2 X "-204.209" Y "-3176.82" Z "-153.454" } ExtraSpawnPoint { Name "spawnbot_lefthaystack" TeamNum 2 X "-1084.51" Y "-1640.71" Z "-236.073" } ExtraSpawnPoint { Name "spawnbot_rightcafe" TeamNum 2 X "1119.96" Y "-1636.5" Z "-239.955" } ExtraSpawnPoint { Name "spawnbot_midhatch" TeamNum 2 X "-0.292175" Y "-611.443" Z "8.04471" } ExtraSpawnPoint { Name "spawnbot_righthatch" TeamNum 2 X "426.451" Y "393" Z "-162.149" } ExtraSpawnPoint { Name "spawnbot_lefthatch" TeamNum 2 X "-424.879" Y "364" Z "-160.779" } ExtraSpawnPoint { Name "spawnbot_midbelowhatch" TeamNum 2 X "-29.7526" Y "-642.485" Z "-234.673" } ExtraSpawnPoint { Name "spawnbot_churchleft" TeamNum 2 X "-440.597" Y "-1945.38" Z "-238.153" } ExtraSpawnPoint { Name "spawnbot_churchright" TeamNum 2 X "350.859" Y "-2009.71" Z "-237.918" } ExtraSpawnPoint { Name "spawnbot_hatchguard_left" TeamNum 2 X "-1034.2" Y "209.4" Z "126.5" } ExtraSpawnPoint { Name "spawnbot_hatchguard_right" TeamNum 2 X "715.4" Y "494.0" Z "18.2" } /////////////////////////////////spawns (no disable) ///////////////////////////////////////////// ExtraSpawnPoint { Name "boss_spawn" Teamnum 2 X "2.3" Z "-2166.7" Y "93.8" } ExtraSpawnPoint { Name "center" TeamNum 3 X "-625.0" Y "-5914.6" Z "-29.0" } ExtraSpawnPoint { Name "left" TeamNum 3 X "1235.6" Y "-5586.8" Z "-53.2" } /////////////////////////////////point temps //////////////////////////////////////////// PointTemplates { UpgradeStations { NoFixup 1 func_upgradestation { "parentname" "blu_upgrade1" "origin" "230.001 -6019 -256" "mins" "-192 -128 -92" "maxs" "192 128 92" } func_regenerate { "associatedmodel" "blu_upgrade1" "StartDisabled" "0" "targetname" "regenerate1" "TeamNum" "3" "OnStartTouch" "regenerate,Disable,,0,-1" "OnEndTouchAll" "regenerate,Enable,,0,-1" "mins" "-192 -128 -92" "maxs" "192 128 92" "origin" "230.001 -6019 -256" "spawnflags" "1" } prop_dynamic { "model" "models\props_mvm\mvm_upgrade_blu.mdl" "angles" "0 180 0" "solid" "6" "targetname" "blu_upgrade1" "origin" "230.001 -6019 -256" } func_upgradestation { "parentname" "blu_upgrade2" "origin" "512 -5440 -130" "mins" "-192 -128 -92" "maxs" "192 128 92" } func_regenerate { "associatedmodel" "blu_upgrade2" "StartDisabled" "0" "targetname" "regenerate2" "TeamNum" "3" "OnStartTouch" "regenerate,Disable,,0,-1" "OnEndTouchAll" "regenerate,Enable,,0,-1" "origin" "512 -5440 -130" "mins" "-192 -128 -92" "maxs" "192 128 92" "spawnflags" "1" } prop_dynamic { "angles" "0 0 0" "model" "models\props_mvm\mvm_upgrade_blu.mdl" "targetname" "blu_upgrade2" "solid" "6" "origin" "512 -5440 -130" } func_upgradestation { "parentname" "blu_upgrade3" "origin" "-1024.61 -4840.11 0" "mins" "-192 -128 -92" "maxs" "192 128 92" } func_regenerate { "associatedmodel" "blu_upgrade3" "StartDisabled" "0" "targetname" "regenerate3" "TeamNum" "3" "OnStartTouch" "regenerate,Disable,,0,-1" "OnEndTouchAll" "regenerate,Enable,,0,-1" "origin" "-1024.61 -4840.11 0" "mins" "-192 -128 -92" "maxs" "192 128 92" "spawnflags" "1" } prop_dynamic { "angles" "0 90 0" "model" "models\props_mvm\mvm_upgrade_blu.mdl" "targetname" "blu_upgrade3" "solid" "6" "origin" "-1024.61 -4840.11 0" } } redholograms { prop_dynamic { "angles" "0 270 0" "model" "models/props_mvm/robot_spawnpoint.mdl" "solid" "0" "targetname" "redholo_frontmid" "origin" "-9 -3531 -47" } prop_dynamic { "angles" "0 270 0" "model" "models/props_mvm/robot_spawnpoint.mdl" "solid" "0" "targetname" "redholo_leftrock" "origin" "-1093 -3783 -238" } prop_dynamic { "angles" "0 270 0" "model" "models/props_mvm/robot_spawnpoint.mdl" "solid" "0" "targetname" "redholo_midrock" "origin" "17.6225 -3909.66 -356.921" } prop_dynamic { "angles" "0 270 0" "model" "models/props_mvm/robot_spawnpoint.mdl" "solid" "0" "targetname" "redholo_rightrock" "origin" "1167 -3914 -235" } prop_dynamic { "angles" "0 270 0" "model" "models/props_mvm/robot_spawnpoint.mdl" "solid" "0" "targetname" "redholo_rightfountain" "origin" "219.173 -3215.95 -154.696" } //prop_dynamic //{ // "angles" "0 270 0" // "model" "models/props_mvm/robot_spawnpoint.mdl" // "solid" "0" // "targetname" "redholo_rightbalcony" // "origin" "1140.42 -3718.27 -79.9553" //} prop_dynamic { "angles" "0 270 0" "model" "models/props_mvm/robot_spawnpoint.mdl" "solid" "0" "targetname" "redholo_leftfountain" "origin" "-204.209 -3176.82 -153.454" } prop_dynamic { "angles" "0 270 0" "model" "models/props_mvm/robot_spawnpoint.mdl" "solid" "0" "targetname" "redholo_lefthaystack" "origin" "-1084.51 -1640.71 -236.073" } prop_dynamic { "angles" "0 270 0" "model" "models/props_mvm/robot_spawnpoint.mdl" "solid" "0" "targetname" "redholo_rightcafe" "origin" "1119.96 -1636.5 -239.955" } prop_dynamic { "angles" "0 270 0" "model" "models/props_mvm/robot_spawnpoint.mdl" "solid" "0" "targetname" "redholo_midhatch" "origin" "-0.292175 -611.443 8.04471" } prop_dynamic { "angles" "0 270 0" "model" "models/props_mvm/robot_spawnpoint.mdl" "solid" "0" "targetname" "redholo_righthatch" "origin" "426.451 260 -162.14" } prop_dynamic { "angles" "0 270 0" "model" "models/props_mvm/robot_spawnpoint.mdl" "solid" "0" "targetname" "redholo_lefthatch" "origin" "-424.879 285 -160.779" } prop_dynamic { "angles" "0 270 0" "model" "models/props_mvm/robot_spawnpoint.mdl" "solid" "0" "targetname" "redholo_midbelowhatch" "origin" "-29.7526 -642.485 -234.673" } prop_dynamic { "angles" "0 270 0" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "targetname" "redholo_churchleft" "origin" "-440.597 -1945.38 -238.153" } prop_dynamic { "angles" "0 270 0" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "targetname" "redholo_churchright" "origin" "350.859 -2009.71 -237.918" } //teleporters prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "DefaultAnim" "running" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "-11 -3531 -47" } prop_dynamic { "angles" "0 0 0" "mindxlevel" "0" "model" "models/buildables/teleporter_light.mdl" "DefaultAnim" "running" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "-1092 -3787.53 -238" } prop_dynamic { "angles" "0 0 0" "mindxlevel" "0" "model" "models/buildables/teleporter_light.mdl" "DefaultAnim" "running" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "21 -3910 -359" } prop_dynamic { "angles" "0 0 0" "mindxlevel" "0" "model" "models/buildables/teleporter_light.mdl" "DefaultAnim" "running" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "1167.19 -3913 -235" } prop_dynamic { "angles" "0 0 0" "mindxlevel" "0" "model" "models/buildables/teleporter_light.mdl" "DefaultAnim" "running" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "218 -3218 -155" } prop_dynamic { "angles" "0 0 0" "mindxlevel" "0" "model" "models/buildables/teleporter_light.mdl" "DefaultAnim" "running" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "-203 -3176 -154" } prop_dynamic { "angles" "0 0 0" "mindxlevel" "0" "model" "models/buildables/teleporter_light.mdl" "DefaultAnim" "running" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "-441 -1946 -238" } prop_dynamic { "angles" "0 0 0" "mindxlevel" "0" "model" "models/buildables/teleporter_light.mdl" "DefaultAnim" "running" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "352 -2007 -238" } prop_dynamic { "angles" "0 0 0" "mindxlevel" "0" "model" "models/buildables/teleporter_light.mdl" "DefaultAnim" "running" "skin" "0" "solid" "0" "origin" "1118.32 -1637 -240" "spawnflags" "0" } prop_dynamic { "angles" "0 0 0" "mindxlevel" "0" "model" "models/buildables/teleporter_light.mdl" "DefaultAnim" "running" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "-1086.24 -1638 -236.243" } prop_dynamic { "angles" "0 0 0" "mindxlevel" "0" "model" "models/buildables/teleporter_light.mdl" "DefaultAnim" "running" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "-1 -613 9" } prop_dynamic { "angles" "0 0 0" "mindxlevel" "0" "model" "models/buildables/teleporter_light.mdl" "DefaultAnim" "running" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "426 261 -162" } prop_dynamic { "angles" "0 0 0" "mindxlevel" "0" "model" "models/buildables/teleporter_light.mdl" "DefaultAnim" "running" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "-31.1949 -644 -234" } prop_dynamic { "origin" "-424 284 -161" "angles" "0 0 0" "mindxlevel" "0" "model" "models/buildables/teleporter_light.mdl" "DefaultAnim" "running" "skin" "0" "solid" "0" "spawnflags" "0" } } bluforcefields { NoFixup 1 func_forcefield { "origin" "69.5 -4835.5 53" "targetname" "bluforce1" "TeamNum" "2" "mins" "-707 -71 -445" "maxs" "707 71 445" } func_forcefield { "origin" "-779 -4443 53" "targetname" "bluforce2" "TeamNum" "2" "mins" "-292 -368 -445" "maxs" "292 368 445" } logic_auto { "targetname" "thingy" "OnMapSpawn" "wave_start_relay,AddOutput,OnTrigger bluforce2*:Disable:0:-1" "OnMapSpawn" "wave_start_relay,AddOutput,OnTrigger bluforce1*:Disable:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger bluforce2*:Enable:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger bluforce1*:Enable:0:-1" "OnMapSpawn" "capturezone_blue*,Kill,,0,-1" "OnMapSpawn" "Classic_Mode_Intel*,Kill,,0,-1" "OnMapSpawn" "Ironman_Mode_Intel*,Kill,,0,-1" "OnMapSpawn" "func_flagdetectionzone*,Kill,,0,-1" //"OnMapSpawn" "blu_respawnroom*,Kill,,0,-1" } } redhatch { NoFixup 1 func_forcefield { "origin" "-15 72 -24" "targetname" "redhatch_field" "TeamNum" "2" "mins" "-243 -236 -264" "maxs" "243 236 264" } prop_dynamic { "solid" "6" "spawnflags" "0" "targetname" "redhatch_force" "origin" "-5 56 -179" "modelscale" "2" "model" "models\props_mvm\hatch_shield.mdl" } training_annotation { "display_text" "Deploy the bomb!" "lifetime" "5" "targetname" "dropbomb" "origin" "-4 27 -179" } logic_relay { "targetname" "hatch_relay" "spawnflags" "2" "OnTrigger" "redhatch_field,disable,,0.1,-1" "OnTrigger" "redhatch_force,disable,,0.1,-1" "OnTrigger" "dropbomb,show,,0.1,-1" } logic_auto { "targetname" "auto" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger redhatch_force*:Enable:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger redhatch_field*:Enable:0:-1" } } sniperhints { NoFixup 1 func_tfbot_hint { "hint" "0" "origin" "1.5 -3588.5 -3.94" "StartDisabled" "0" "targetname" "front_sniper" "team" "2" "mins" "-64 -64 -96" "maxs" "64 64 96" } func_tfbot_hint { "hint" "0" "origin" "-902.36 -2716.7 -193.26" "StartDisabled" "0" "targetname" "mid_sniper" "team" "2" "mins" "-64 -64 -96" "maxs" "64 64 96" } func_tfbot_hint { "hint" "0" "origin" "766.25 -2660.3 -193.26" "StartDisabled" "0" "targetname" "mid_sniper" "team" "2" "mins" "-64 -64 -96" "maxs" "64 64 96" } func_tfbot_hint { "hint" "0" "origin" "-809.18 -108.5 -112.98" "StartDisabled" "0" "targetname" "hatch_sniper" "team" "2" "mins" "-64 -64 -96" "maxs" "64 64 96" } func_tfbot_hint { "hint" "0" "origin" "-1070.59 78.28 -1.26" "StartDisabled" "0" "targetname" "hatch_sniper" "team" "2" "mins" "-64 -64 -96" "maxs" "64 64 96" } func_tfbot_hint { "hint" "0" "origin" "746.18 -108.5 -154.84" "StartDisabled" "0" "targetname" "hatch_sniper" "team" "2" "mins" "-64 -64 -96" "maxs" "64 64 96" } func_tfbot_hint { "hint" "0" "origin" "1.5 -3588.5 -3.94" "StartDisabled" "0" "targetname" "front_sniper" "team" "2" "mins" "-64 -64 -96" "maxs" "64 64 96" } func_tfbot_hint { "hint" "0" "origin" "-902.36 -2716.7 -193.26" "StartDisabled" "0" "targetname" "mid_sniper" "team" "2" "mins" "-64 -64 -96" "maxs" "64 64 96" } func_tfbot_hint { "hint" "0" "origin" "766.25 -2660.3 -193.26" "StartDisabled" "0" "targetname" "mid_sniper" "team" "2" "mins" "-64 -64 -96" "maxs" "64 64 96" } func_tfbot_hint { "hint" "0" "origin" "-809.18 -108.5 -112.98" "StartDisabled" "0" "targetname" "hatch_sniper" "team" "2" "mins" "-64 -64 -96" "maxs" "64 64 96" } func_tfbot_hint { "hint" "0" "origin" "-1070.59 78.28 -1.26" "StartDisabled" "0" "targetname" "hatch_sniper" "team" "2" "mins" "-64 -64 -96" "maxs" "64 64 96" } func_tfbot_hint { "hint" "0" "origin" "746.18 -108.5 -154.84" "StartDisabled" "0" "targetname" "hatch_sniper" "team" "2" "mins" "-64 -64 -96" "maxs" "64 64 96" } func_tfbot_hint { "hint" "0" "origin" "-889.1 -3574.8 -158.9" "StartDisabled" "0" "targetname" "hatch_sniper" "team" "2" "mins" "-64 -64 -96" "maxs" "64 64 96" } func_tfbot_hint { "hint" "0" "origin" "-889.1 -3574.8 -158.9" "StartDisabled" "0" "targetname" "hatch_sniper" "team" "2" "mins" "-64 -64 -96" "maxs" "64 64 96" } func_tfbot_hint { "hint" "0" "origin" "861.3 -3638.7 -158.5" "StartDisabled" "0" "targetname" "hatch_sniper" "team" "2" "mins" "-64 -64 -96" "maxs" "64 64 96" } func_tfbot_hint { "hint" "0" "origin" "861.3 -3638.7 -158.5" "StartDisabled" "0" "targetname" "hatch_sniper" "team" "2" "mins" "-64 -64 -96" "maxs" "64 64 96" } } spawntele { NoFixup 1 trigger_teleport { //"filtername" "filter_bluteam" "origin" "-1428.5 -5034.5 -28.5" "spawnflags" "1" "StartDisabled" "0" "target" "teledest" "targetname" "fix_rightspawn" "mins" "-88 -103 -52" "maxs" "88 103 52" } info_teleport_destination { "targetname" "teledest" "origin" "-672 -5824 -80" "start_active" "1" } } textualtimer // by lite { NoFixup 1 OnSpawnOutput { Param 10 Target minutehand Action SetValue } OnSpawnOutput { Param 0 Target secondhand Action SetValue } logic_relay { "targetname" "loserelay" "startdisabled" "1" "ontrigger" "bots_win_red,RoundWin,,2,-1" "ontrigger" "realtimer,cancelpending,,2,-1" "onspawn" "wave_start*,addoutput,ontrigger realtimer:trigger::0:-1,0,-1" "onspawn" "wave_finish*,addoutput,ontrigger realtimer:cancelpending::0:-1,0,-1" "onspawn" "wave_finish*,addoutput,ontrigger loserelay:cancelpending::0:-1,0,-1" } NoFixup 1 math_counter { "targetname" "minutehand" "max" "9999" "outvalue" "timerformat,$setkey$case01,,0,-1" "onhitmin" "loserelay,enable,,1,-1" } math_counter { "targetname" "secondhand" "max" "60" "outvalue" "timerformat,$setkey$case02,,0,-1" "outvalue" "zerocompare,setvaluecompare,,0,-1" "onhitmin" "loserelay,trigger,,0,-1" "onhitmin" "!self,setvalue,60,1,-1" "onhitmin" "minutehand,subtract,1,1,-1" } logic_compare { "targetname" "zerocompare" "comparevalue" "9" "onequalto" "timerformat,$setkey$case16,%:0%,0,-1" "ongreaterthan" "timerformat,$setkey$case16,%:%,0,-1" } logic_case { "targetname" "timerformat" "case16" "%:%" "ondefault" "timertext,$setkey$message,,0,-1" "ondefault" "timertext,display,0,0,-1" } game_text { "targetname" "timertext" "color" "65 155 255" "holdtime" "2" "spawnflags" "1" "channel" "2" "x" "-0.80" // left go down right go up "y" "0.90" } logic_relay { "targetname" "realtimer" "spawnflags" "2" "ontrigger" "timerformat,$format,,0.01,-1" "ontrigger" "secondhand,subtract,1,0,-1" "ontrigger" "!self,trigger,,1,-1" } game_round_win { "teamnum" "2" "targetname" "bots_win_red" "force_map_reset" "1" } } annotation { training_annotation { "display_text" "Melee bots do 2x more damage to Giants" "lifetime" "5" "offset" "0" "targetname" "melee" "origin" "-9 -3531 -47" } } NoCheeseStrats { //fixes players abusing aggro NoFixup 1 OnSpawnOutput { Target "check_blu_relay" Action "Trigger" } filter_tf_condition { "condition" "51" "Negated" "0" "targetname" "damage_penalty_check" "OnPass" "!activator,$AddPlayerAttribute,ignored by bots|1,0.1,-1" "OnPass" "!activator,$AddPlayerAttribute,special item description|Ignored by enemy bots,0.1,-1" //"OnPass" "player,$displaytextchat,pass,0.05,-1" "OnFail" "!activator,$RemovePlayerAttribute,ignored by bots,0.1,-1" "OnFail" "!activator,$RemovePlayerAttribute,special item description,0.1,-1" //"OnFail" "player,$displaytextchat,fail,0.05,-1" } logic_relay { "targetname" "check_blu_relay" "spawnflags" "2" "OnTrigger" "damage_penalty_check,TestActivator,!activator,0,-1" "OnTrigger" "!self,Trigger,,0.05,-1" //"OnTrigger" "player,$displaytextchat,added ignore,0.05,-1" } //trigger_add_tf_player_condition //{ // "condition" "51" // "duration" "-1" // "filtername" "filter_bluteam" // "origin" "510 -5603 22.5" // "spawnflags" "1" // "StartDisabled" "0" // "targetname" "fixcheese1" // "mins" "-816 -730 -281" // "maxs" "816 730 281" // "OnStartTouch" "!activator,$AddPlayerAttribute,ignored by bots|1,0,-1" // "OnEndTouch" "!activator,$RemovePlayerAttribute,ignored by bots,0,-1" //} } objective_w1 { NoFixup 1 func_capturezone { "capturepoint" "0" "shouldBlock" "0" "StartDisabled" "0" "targetname" "capzone_blu_w1" "origin" "29 -4286 -244.88" "TeamNum" "0" "OnCapTeam2" "count_score_w1,Add,1,0,-1" //adds +1 to amount of times the bomb must be deployed "OnCapTeam2" "player,$DisplayTextCenter,We have captured a bomb part!,0,-1" "OnCapTeam2" "flag_spells_teamflag,SetTeam,2,0,-1" "OnCapTeam2" "passtime_prop,SetModel,models\empty.mdl,0.1,-1" "mins" "-97 -69 -74" "maxs" "97 69 74" } game_round_win { "force_map_reset" "0" "switch_teams" "0" "targetname" "win_bots_w1" "TeamNum" "3" "origin" "165 -4261 -374" } math_counter // display this to players, i.e. 0/5 { "max" "5" "min" "0" "startvalue" "0" "targetname" "count_score_w1" "OnHitMax" "win_bots_w1,RoundWin,,0,-1" "OnHitMax" "compare_score,Compare,,0,-1" "outvalue" "GetScore,$setkey$case01,,0,-1" "OutValue" "compare_score_w1,SetValueCompare,,0,-1" "origin" "201 -4221 -371.053" } OnSpawnOutput { Target GetScore Action $SetKey$case01 Param 0 } logic_compare { "CompareValue" "5" "InitialValue" "0" "targetname" "compare_score_w1" //"OnEqualTo" "win_bots,RoundWin,,0,-1" "OnGetValue" "compare_score_w1,GetValue,,0,-1" "origin" "165 -4235 -369.558" } logic_case { "targetname" "GetScore" "Case16" "Parts Collected: %/5" "OnDefault" "ScoreText,$setkey$message,,0,-1" "OnDefault" "ScoreText,display,0,0,-1" } game_text { "targetname" "ScoreText" "color" "65 225 65" "holdtime" "2" "spawnflags" "1" "channel" "4" "x" "0.4" "y" "-0.65" } logic_relay { "targetname" "ScoreRelay" "spawnflags" "2" "OnTrigger" "count_score_w1,GetValue,GetScore|$SetKey$case01,0.01,-1" "OnTrigger" "GetScore,$format,,0.02,-1" "OnTrigger" "!self,trigger,,1,-1" //"OnTrigger" "count_score_w1,GetValue,,0.01,-1" "OnTrigger" "count_score_w1,GetValueCompare,,0.03,-1" } OnSpawnOutput { Target ScoreRelay Action Trigger } prop_dynamic { "angles" "0 180 0" "disableselfshadowing" "0" "disableshadows" "0" "model" "models/props_medieval/ticket_booth/ticket_booth.mdl" "skin" "0" "solid" "2" "origin" "17 -4241 -349" } prop_dynamic { "angles" "0 270 0" "DefaultAnim" "idle" "model" "models/bots/bot_worker/bot_worker_a.mdl" "modelscale" "1.0" "skin" "1" "solid" "2" "spawnflags" "0" "StartDisabled" "0" "targetname" "botman" "origin" "27.9998 -4242 -315" } //intel handle logic_case // teleports the carrier to a random bot spawn { "Case01" "1" "Case02" "2" "Case03" "3" "Case04" "4" "Case05" "5" "targetname" "tele_random" "OnCase01" "tele_dest_botspawn_spelled,$TeleportToEntity,redholo_frontmid,0,-1" "OnCase02" "tele_dest_botspawn_spelled,$TeleportToEntity,redholo_midhatch,0,-1" "OnCase03" "tele_dest_botspawn_spelled,$TeleportToEntity,redholo_midbelowhatch,0,-1" "OnCase04" "tele_dest_botspawn_spelled,$TeleportToEntity,redholo_lefthatch,0,-1" "OnCase05" "tele_dest_botspawn_spelled,$TeleportToEntity,redholo_churchright,0,-1" } item_teamflag { "angles" "0 -90 0" "flag_icon" "../hud/objectives_flagpanel_carried" "flag_model" "models/empty.mdl" "flag_paper" "player_intel_papertrail" "flag_trail" "flagtrail" "GameType" "4" "NeutralType" "0" "PointValue" "0" "ReturnBetweenWaves" "0" "ReturnTime" "60000" "ScoringType" "0" "StartDisabled" "0" "tags" "bomb_carrier" "targetname" "flag_spells_teamflag" "TeamNum" "2" "trail_effect" "3" "VisibleWhenDisabled" "1" //"OnDrop" "flag_spells_teamflag,Kill,,30,-1" //"OnPickupTeam1" "flag_spells_teamflag,SetTeam,3,0,-1" "OnPickup1" "!activator,$RemoveCond,57,0,-1" "OnPickup" "filter_has_intel,Disable,,0,-1" "OnDrop" "!self,SetTeam,3,0,-1" "OnReturn" "!self,SetTeam,2,0,-1" //"OnDrop" "flag_spells_teamflag,AddOutput,renderfx 10,25,-1" "origin" "0 0 0" //"$modules" "fakeparent" //"$rotationonly" "1" } trigger_multiple { "origin" "-2.1 918.4 -95.0" "solid" "1" "spawnflags" "1" "StartDisabled" "0" "targetname" "trigger_spells_set_spawner" "wait" "0" "mins" "-128 -128 -152" "maxs" "128 128 152" "OnStartTouch" "temp_spells_flag,ForceSpawn,,0,-1" "OnStartTouch" "tele_botspawn_spells,Enable,,0.01,-1" "OnStartTouch" "flag_spells_teamflag,SetTeam,2,0.02,-1" "OnStartTouch" "tele_botspawn_spells,Disable,,0.03,-1" "OnStartTouch" "tele_random,PickRandom,0.05,0,-1" "OnStartTouch" "flag_spells_teamflag,$TeleportToEntity,spawn_on_carrier,0.03,-1" "OnStartTouch" "passtime_prop,SetModel,models\weapons\c_models\c_toolbox\c_toolbox.mdl,0.1,-1" } trigger_teleport { "angles" "0 0 0" "origin" "-2.1 918.4 -95.0" "solid" "1" "spawnflags" "1" "StartDisabled" "1" "target" "tele_dest_botspawn_spelled" "targetname" "tele_botspawn_spells" "mins" "-128 -128 -152" "maxs" "128 128 152" } point_template { "spawnflags" "0" "targetname" "temp_spells_flag" "Template01" "flag_spells_teamflag" "origin" "-356 -724 224" } info_teleport_destination { "angles" "0 180 0" "targetname" "tele_dest_botspawn_spelled" "origin" "0 0 0" } //fix the bomb NoFixup 1 logic_auto { "OnMapSpawn" "intel_event_trigger,Trigger,,0,-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger intel_event_trigger:Trigger:0:-1" } logic_relay { "targetname" "intel_event_trigger" "spawnflags" "2" "OnTrigger" "flag_spells_teamflag,Enable,,0,-1" "OnTrigger" "intel,Disable,,0,-1" "OnTrigger" "passtime_prop,Enable,,0,-1" "OnTrigger" "passtime_prop,SetParent,flag_spells_teamflag,0.1,-1" //"modules" "$fakeparent" } logic_relay { "targetname" "intel_event_disable" "OnTrigger" "flag_spells_teamflag,Disable,,0,-1" "OnTrigger" "passtime_prop,Disable,,0,-1" } prop_dynamic { "origin" "0 0 0" "targetname" "passtime_prop" "spawnflags" "0" "solid" "0" "RandomAnimation" "0" "pressuredelay" "0" "PerformanceMode" "0" "model" "models\empty.mdl" "body" "0" "angles" "270 0 0" "StartDisabled" "1" //"$modules" "fakeparent" } } objective_w2 { OnSpawnOutput { Target control_point_wave2 Action SetTeam Param 0 } OnSpawnOutput { Target spawnbot_* Action Disable } OnSpawnOutput { Target cap_point Action Show } training_annotation { "display_text" "Capture the point to begin the wave!" "lifetime" "5" "offset" "0" "targetname" "cap_point" "origin" "9 -2208 -233.665" } training_annotation { "display_text" "Bots spawn in 5..." "lifetime" "1" "offset" "0" "targetname" "5" "origin" "9 -2208 -233.665" } training_annotation { "display_text" "Bots spawn in 4..." "lifetime" "1" "offset" "0" "targetname" "4" "origin" "9 -2208 -233.665" } training_annotation { "display_text" "Bots spawn in 3..." "lifetime" "1" "offset" "0" "targetname" "3" "origin" "9 -2208 -233.665" } training_annotation { "display_text" "Bots spawn in 2..." "lifetime" "1" "offset" "0" "targetname" "2" "origin" "9 -2208 -233.665" } training_annotation { "display_text" "Bots spawn in 1..." "lifetime" "1" "offset" "0" "targetname" "1" "origin" "9 -2208 -233.665" } NoFixup 1 trigger_capture_area { "area_cap_point" "control_point_wave2" "area_time_to_cap" "5" // is multiplied by 2 "StartDisabled" "0" "targetname" "capturepoint_w2" "team_cancap_2" "1" "team_cancap_3" "1" "spawnflags" "1" "origin" "8 -2203 -140" "team_numcap_2" "1" // dont change cuz giants "team_numcap_3" "1" // dont change cuz giants "team_startcap_2" "1" // dont change cuz giants "team_startcap_3" "1" // dont change cuz giants "OnCapTeam2" "5,Show,,3,1" "OnCapTeam2" "4,Show,,4,1" "OnCapTeam2" "3,Show,,5,1" "OnCapTeam2" "2,Show,,6,1" "OnCapTeam2" "1,Show,,7,1" "OnCapTeam2" "spawnbot_*,Enable,,8,-1" "OnCapTeam1" "capturepoint_prop_wave2,Skin,1,0,-1" "OnCapTeam2" "capturepoint_prop_wave2,Skin,2,0,-1" "OnCapTeam1" "realtimer,Trigger,,0,-1" // red cap = start timer "OnCapTeam2" "realtimer,$cancelpending,,0,-1" // blu cap = stop timer //"OnCapTeam1" "pop_interface,ChangeBotAttributes,RevertGateBotsBehavior,0.01,-1" // red caps: become weaker "OnCapTeam1" "player,$ChangeAttributes,RevertGateBotsBehavior,0.01,-1" // red caps: become weaker "OnCapTeam1" "pop_interface,ChangeDefaultEventAttributes,RevertGateBotsBehavior,0.02,-1" // red caps: become weaker //"OnCapTeam2" "pop_interface,ChangeBotAttributes,Default,0.01,-1" // blu caps: become stronger "OnCapTeam2" "player,$ChangeAttributes,Default,0.01,-1" // blu caps: become stronger "OnCapTeam2" "pop_interface,ChangeDefaultEventAttributes,Default,0.02,-1" // red caps: become stronger "mins" "-128 -128 -128" "maxs" "128 128 128" } point_populator_interface { "targetname" "pop_interface" } OnSpawnOutput // stops round from being auto-won { Target control_point_master_wave2 Action RoundSpawn } OnSpawnOutput { Target control_point_wave2 Action SetUnlockTime Param 7 } OnSpawnOutput //very important to keep this output otherwise the control point will not function { Target capturepoint_w2 Action SetControlPoint Param control_point_wave2 Delay 7 } team_control_point_master { "cpm_restrict_team_cap_win" "1" "custom_position_x" "0.3" "custom_position_y" "-1" "partial_cap_points_rate" "0" "play_all_rounds" "0" "score_style" "0" "switch_teams" "0" "targetname" "control_point_master_wave2" "team_base_icon_2" "sprites/obj_icons/icon_base_red" "team_base_icon_3" "sprites/obj_icons/icon_base_blu" "origin" "159 -2212 -235.214" } team_control_point { "angles" "0 0 0" "point_default_owner" "0" "point_group" "0" "point_index" "0" "point_printname" "Snowfall!" "point_start_locked" "0" "point_warn_on_cap" "2" "point_warn_sound" "ControlPoint.CaptureWarn" //"mvm_cpoint_klaxon.wav" "random_owner_on_restart" "0" "spawnflags" "0" "targetname" "control_point_wave2" "team_bodygroup_0" "3" "team_bodygroup_2" "1" "team_bodygroup_3" "1" "team_capsound_0" "sound\mvm\mvm_revive.wav" "team_capsound_2" "sound\ui\duel_challenge_rejected_with_restriction.wav" "team_capsound_3" "sound\ui\duel_challenge_accepted_with_restriction.wav" "team_icon_0" "sprites/obj_icons/icon_obj_neutral" "team_icon_2" "sprites/obj_icons/icon_obj_red" "team_icon_3" "sprites/obj_icons/icon_obj_blu_mannhattan" "team_model_0" "models/effects/cappoint_hologram.mdl" "team_model_2" "models/effects/cappoint_hologram.mdl" "team_model_3" "models/effects/cappoint_hologram.mdl" "team_timedpoints_2" "0" "team_timedpoints_3" "0" "origin" "9 -2207 -232" } prop_dynamic { "angles" "0 0 0" "model" "models/props_gameplay/cap_point_base.mdl" "modelscale" "1.0" "skin" "0" "solid" "6" "spawnflags" "0" "targetname" "capturepoint_prop_wave2" "origin" "9 -2208 -233.665" } } //popinter //{ //point_populator_interface //{ // "targetname" "popinterface" // "origin" "17 -2342 -238.13" //} //} textualtimer_w2 // by lite { NoFixup 1 OnSpawnOutput { Param 3 Target minutehand Action SetValue } OnSpawnOutput { Param 0 Target secondhand Action SetValue } OnSpawnOutput { Target realtimer Action $cancelpending // to let players capture the point before the start of the wave } logic_relay { "targetname" "loserelay" "startdisabled" "1" "ontrigger" "bots_win_red,RoundWin,,2,-1" "ontrigger" "realtimer,cancelpending,,2,-1" "onspawn" "wave_start*,addoutput,ontrigger realtimer:trigger::0:-1,0,-1" "onspawn" "wave_finish*,addoutput,ontrigger realtimer:cancelpending::0:-1,0,-1" "onspawn" "wave_finish*,addoutput,ontrigger loserelay:cancelpending::0:-1,0,-1" } NoFixup 1 math_counter { "targetname" "minutehand" "max" "9999" "outvalue" "timerformat,$setkey$case01,,0,-1" "onhitmin" "loserelay,enable,,1,-1" } math_counter { "targetname" "secondhand" "max" "60" "outvalue" "timerformat,$setkey$case02,,0,-1" "outvalue" "zerocompare,setvaluecompare,,0,-1" "onhitmin" "loserelay,trigger,,0,-1" "onhitmin" "!self,setvalue,60,1,-1" "onhitmin" "minutehand,subtract,1,1,-1" } logic_compare { "targetname" "zerocompare" "comparevalue" "9" "onequalto" "timerformat,$setkey$case16,%:0%,0,-1" "ongreaterthan" "timerformat,$setkey$case16,%:%,0,-1" } logic_case { "targetname" "timerformat" "case16" "%:%" "ondefault" "timertext,$setkey$message,,0,-1" "ondefault" "timertext,display,0,0,-1" } game_text { "targetname" "timertext" "color" "211 27 0" "holdtime" "2" "spawnflags" "1" "channel" "2" "x" "-0.80" // left go down right go up "y" "0.90" } logic_relay { "targetname" "realtimer" "spawnflags" "2" "ontrigger" "timerformat,$format,,0.01,-1" "ontrigger" "secondhand,subtract,1,0,-1" "ontrigger" "!self,trigger,,1,-1" } game_round_win { "teamnum" "2" "targetname" "bots_win_red" "force_map_reset" "1" } //stop timer on spawn + disable all bot spawns } wood { prop_dynamic { "angles" "0 0 0" "model" "models/props_forest/wood_platform2.mdl" "modelscale" "3" "skin" "0" "solid" "6" "spawnflags" "0" "targetname" "wood" "origin" "9 68 -162.814" } } batterything { prop_dynamic { "angles" "0 90 0" "model" "models\props_moonbase\powersupply_flag.mdl" //"modelscale" "3" "skin" "0" "solid" "6" "spawnflags" "0" "targetname" "battery" "origin" "0 0 35" } } dummy { NoFixup 1 prop_dynamic { "origin" "0 0 0" "targetname" "spawn_on_carrier" "spawnflags" "0" "solid" "0" "rendercolor" "255 255 255" "renderamt" "255" "RandomAnimation" "0" "pressuredelay" "0" "physdamagescale" "1.0" "PerformanceMode" "0" //"modelscale" "1.4" "model" "models\empty.mdl" "MinAnimTime" "5" "MaxAnimTime" "10" "body" "0" "angles" "-90 -180 -90" "StartDisabled" "0" //"$modules" "fakeparent" //"$bone" "siren" //"$rotationonly" "1" } logic_relay { "spawnflags" "2" "StartDisabled" "0" "targetname" "filter_has_intel" "OnTrigger" "!self,Trigger,,0.5,-1" "OnTrigger" "flag_spells_teamflag,$TeleportToEntity,spawn_on_carrier,0,-1" // fucks with the placement of the prop_dynamic toolbox when enabled "OnTrigger" "flag_spells_teamflag,SetTeam,2,0,-1" //"OnTrigger" "player,$DisplayTextCenter,carrier intel,0,-1" } OnSpawnOutput { Target filter_has_intel Action Trigger Delay 0.01 } } extraspawnbot { info_player_teamspawn { "angles" "0 0 0" "spawnflags" "511" "SpawnMode" "0" "StartDisabled" "0" "targetname" "spawnbot_spell" "TeamNum" "3" "origin" "-2.1 918.4 -95.0" } } bluspawn_left_fix { NoFixup 1 prop_dynamic { "angles" "0 165 0" "model" "models/props_forest/rock001.mdl" "modelscale" "2" "skin" "0" "solid" "6" "spawnflags" "0" "targetname" "botspawn_fix2" "origin" "1601.5 -5648.98 -87.3781" } prop_dynamic { "angles" "0 240 0" "model" "models/props_forest/rock003.mdl" "modelscale" "2" "skin" "0" "solid" "6" "spawnflags" "0" "targetname" "botspawn_fix1" "origin" "1424.91 -5245.53 187" } prop_dynamic { "angles" "0 255 0" "model" "models/props_forest/rock003.mdl" "modelscale" "2" "skin" "0" "solid" "6" "spawnflags" "0" "targetname" "botspawn_fix3" "origin" "1406.85 -5266.57 -21.6242" } prop_dynamic { "angles" "0 255 0" "model" "models/props_forest/rock004.mdl" "modelscale" "1.5" "skin" "0" "solid" "6" "spawnflags" "0" "targetname" "fix4" "origin" "1253.76 -5296.99 -133.534" } } warhawk_heavy { NoFixup 1 OnSpawnOutput { Target rocket_triple_shoot Action $SetOwner Param !activator } OnSpawnOutput { Target shooter_relay Action Trigger Delay 10 } prop_dynamic { "angles" "-75 0 0" "model" "models\props_frontline\tank_turret.mdl" "modelscale" "0.5" "skin" "1" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "origin" "-0.742924 8 186.549" } logic_relay { "targetname" "shooter_relay" "spawnflags" "2" "OnTrigger" "rocket_triple_shoot,FireOnce,,0,-1" "OnTrigger" "!self,Trigger,,12,-1" } tf_point_weapon_mimic { "angles" "-75 0 0" "Crits" "1" "Damage" "180" "ModelScale" "1" "SpeedMax" "1000" "SpeedMin" "1000" "teamnum" "2" "SplashRadius" "145" "SpreadAngle" "0" "targetname" "rocket_triple_shoot" "WeaponType" "0" "origin" "-43.3588 8 263.19" "$preventshootparent" "1" "$weaponname" "rocket_shooter" } tf_point_weapon_mimic { "angles" "-56.7741 65.8539 -61.8132" "Crits" "1" "Damage" "180" "ModelScale" "1" "teamnum" "2" "SpeedMax" "1000" "SpeedMin" "1000" "SplashRadius" "145" "SpreadAngle" "0" "targetname" "rocket_triple_shoot" "WeaponType" "0" "origin" "-43.3588 8 263.19" "$preventshootparent" "1" "$weaponname" "rocket_shooter" } tf_point_weapon_mimic { "angles" "-56.7741 294.146 61.8132" "Crits" "1" "Damage" "180" "ModelScale" "1" "SpeedMax" "1000" "teamnum" "2" "SpeedMin" "1000" "SplashRadius" "145" "SpreadAngle" "0" "targetname" "rocket_triple_shoot" "WeaponType" "0" "origin" "-43.3588 8 263.19" "$preventshootparent" "1" "$weaponname" "rocket_shooter" } //BISON //OnSpawnOutput //{ // Target laser_shoot // Action $SetOwner // Param !activator //} //OnSpawnOutput //{ // Target shooter_relay // Action Trigger // Delay 10 //} //tf_point_weapon_mimic //{ // "angles" "0 0 0" // "Crits" "1" // "Damage" "180" // "ModelScale" "1" // "SpeedMax" "1000" // "SpeedMin" "1000" // "SplashRadius" "145" // "parentname" "rotater" // "SpreadAngle" "0" // "targetname" "laser_shoot" // "WeaponType" "0" // "origin" "36 3 178" // "$preventshootparent" "1" // "$weaponname" "laser" //} //func_rotating //{ // "angles" "0 0 0" // "disablereceiveshadows" "0" // "disableshadows" "0" // "dmg" "0" // "fanfriction" "20" // "maxspeed" "100" // "origin" "0 0 0" // "solidbsp" "0" // "spawnflags" "1" // "targetname" "rotater" // "volume" "10" //} //logic_timer //{ // "spawnflags" "0" // "targetname" "timer_laser" // "UpperRandomBound" "10" // "LowerRandomBound" "3" // "UseRandomTime" "1" // "origin" "36 91 170.598" // "OnTimer" "laser_relay,Trigger,,0,-1" // "OnTimer" "rotater,Stop,,0,-1" // "OnTimer" "!self,Stop,,0,-1" //} //logic_relay //{ // "targetname" "laser_relay" // "spawnflags" "2" // "OnTrigger" "laser_shoot,$StartFiring,,0,-1" // "OnTrigger" "laser_shoot,$StopFiring,,5,-1" // "OnTrigger" "!self,$CancelPending,,5,-1" // "OnTrigger" "timer_laser,Start,,12,-1" // "OnTrigger" "rotater,Start,,12,-1" //} } colortank { OnSpawnOutput { Target "!activator" Action "color" //Change to any RGB value Param "219 191 12" } } tankreddrill { logic_relay { "onspawn" "!parent,addoutput,onuser4 @c@!self:fireuser1::0:-1,0,-1" } prop_dynamic { "targetname" "tank_drill" "model" "models/bots/boss_bot/tank_red_drill.mdl" "defaultanim" "drill_spin" "onuser1" "!self,setanimation,drill_deploy,0,-1" "onuser1" "!self,setdefaultanimation,drill_deploy_idle,0.1,-1" } } tank_hologram { prop_dynamic { "angles" "0 0 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "disableshadows" "1" "fademaxdist" "0" "model" "models/bots/boss_bot/static_boss_tank.mdl" "modelscale" "1.0" "renderamt" "0" "rendercolor" "219 191 12" "renderfx" "16" "rendermode" "0" "SetBodyGroup" "0" "skin" "0" "solid" "0" "spawnflags" "0" "StartDisabled" "1" "origin" "-655 -6025 -118" "targetname" "holotank2" } prop_dynamic { "angles" "0 0 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "disableshadows" "1" "fademaxdist" "0" "model" "models/bots/boss_bot/tank_red_drill.mdl" "modelscale" "1.0" "renderamt" "0" "rendercolor" "219 191 12" "renderfx" "16" "rendermode" "0" "SetBodyGroup" "0" "skin" "1" "solid" "0" "spawnflags" "0" "origin" "-655 -6025 -118" "targetname" "holotank1" "StartDisabled" "1" } } objective_w3 { game_round_win { "teamnum" "2" "targetname" "bots_win_red" "force_map_reset" "1" } OnSpawnOutput { Target stop_tank_1 Action Trigger } logic_relay { "targetname" "stop_tank_1" "spawnflags" "2" "OnTrigger" "drilldozer,SetSpeed,0,73,-1" "OnTrigger" "player,$DisplayTextCenter,Refuel the tank by killing Giants with batteries!,75,-1" //"OnTrigger" "player,$AddPlayerAttribute,fire input on kill name restrict|Charged*,70,-1" //"OnTrigger" "player,$AddPlayerAttribute,fire input on kill|count_score_w3^Add^10,70,-1" } math_counter { "max" "100" "min" "0" "startvalue" "0" "targetname" "count_score_w3" "OnHitMax" "drilldozer,SetSpeed,75,5,-1" "OnHitMax" "compare_score,Compare,,0,-1" "OnHitMax" "stop_tank_2,Trigger,,0,-1" "outvalue" "GetScore,$setkey$case01,,0,-1" "OutValue" "compare_score_w3,SetValueCompare,,0,-1" "OnHitMax" "compare_score_w3,Disable,,5,-1" "OnHitMax" "ScoreText,Disable,,5,-1" "OnHitMax" "GetScore,Disable,,5,-1" "OnHitMax" "ScoreRelay,Disable,,5,-1" "origin" "201 -4221 -371.053" } OnSpawnOutput { Target GetScore Action $SetKey$case01 Param 0 Delay 75 } logic_compare { "CompareValue" "100" "InitialValue" "0" "targetname" "compare_score_w3" //"OnEqualTo" "win_bots,RoundWin,,0,-1" "OnGetValue" "compare_score_w3,GetValue,,0,-1" "origin" "165 -4235 -369.558" } logic_case { "targetname" "GetScore" "Case16" "Drill Fuel: %/100" "OnDefault" "ScoreText,$setkey$message,,0,-1" "OnDefault" "ScoreText,display,0,0,-1" } game_text { "targetname" "ScoreText" "color" "65 225 65" "holdtime" "2" "spawnflags" "1" "channel" "4" "x" "0.4" "y" "-0.65" } logic_relay { "targetname" "ScoreRelay" "spawnflags" "2" "OnTrigger" "count_score_w3,GetValue,GetScore|$SetKey$case01,0.01,-1" "OnTrigger" "GetScore,$format,,0.02,-1" "OnTrigger" "!self,trigger,,1,-1" //"OnTrigger" "count_score_w1,GetValue,,0.01,-1" "OnTrigger" "count_score_w3,GetValueCompare,,0.03,-1" } OnSpawnOutput { Target ScoreRelay Action Trigger Delay 75 } logic_relay { "targetname" "stop_tank_2" "spawnflags" "2" "OnTrigger" "drilldozer,SetSpeed,0,30,-1" "OnTrigger" "player,$DisplayTextCenter,Now defend the tank with all your might until the tank breaks through! No more tank heals!,33,-1" //"OnTrigger" "player,$AddPlayerAttribute,fire input on kill name restrict|Charged*,70,-1" //"OnTrigger" "player,$AddPlayerAttribute,fire input on kill|count_score_w3^Add^10,70,-1" } } redhatchbarricade { prop_dynamic { "angles" "0 90 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "disableshadows" "1" "fademaxdist" "0" "model" "models/props_island/parts/guard_tower01.mdl" "modelscale" "1.2" "RandomAnimation" "0" "renderamt" "255" "rendercolor" "227 19 1" "renderamt" "0" "renderfx" "16" "rendermode" "0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "red_barricade" "origin" "10 68 -182" } } } CustomWeapon { "rocket_shooter" { OriginalItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "projectile gravity" 650 "blast radius increased" 1.5 "projectile speed decreased" 0.6 "mod projectile heat no predict target speed" 1 "mod projectile heat seek power" 75 "mod projectile heat aim error" 25 } "laser" { OriginalItemName "The Righteous Bison" "faster reload rate" -0.8 } } SpawnTemplate UpgradeStations SpawnTemplate redholograms SpawnTemplate bluforcefields //SpawnTemplate redhatch SpawnTemplate sniperhints SpawnTemplate spawntele SpawnTemplate annotation SpawnTemplate extraspawnbot //SpawnTemplate dispenserthing SpawnTemplate bluspawn_left_fix SpawnTemplate tank_hologram PlayerSpawnTemplate //Spawn custom player template { Name "NoCheeseStrats" // Name of the template //Class Soldier // Limit template to this player class only Origin "0 0 50" //Position where to spawn the template // Bone "bip_spine_2" //Player bone where the template would be positioned } ExtraTankPath { Name "tankpath1" Node "-656 -6024 -80" Node "-144 -5920 -128" Node "-80 -5904 -128" Node "-32 -5872 -128" Node "-16 -5808 -128" Node "0 -5680 -128" Node "0 -4864 -128" Node "0 -4528 -224" Node "839.2 -3629.5 -56.7" Node "816 -3200 -176" Node "816 -2848 -176" Node "688 -2720 -176" Node "576 -2608 -176" Node "416 -2448 -176" Node "112 -2072 -176" Node "-63.7 -2126.7 -132.7" // first stop Node "-804.6 -1958.0 -170.7" Node "-727.1 64.9 -68.3" Node "-292.0 62.9 -98.1" } //SpawnTemplate giant_intel spawn past w4 ////////////////////////////////////MISSIONS //////////////////////////////////////////// Mission // Spies1 { Where spawnbot_midbelowhatch Objective Spy BeginAtWave 1 RunForThisManyWaves 1 DesiredCount 2 InitialCooldown 20 CooldownTime 60 TFBot { Template T_TFBot_Spy Skill Expert AddCond { Index 51 Duration 1.5 } AddCond { Index 43 } } } Wave // Wave 1 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } Explanation { Line "{DARK BLUE}INITIATE OPERATION: DEFROST DEMOLITION" Line "{BLUE}Your first task is to find parts for a Bomb." Line "{green}They are dropped by the Giants that appear this wave." Line "{green}Ambassador Spies can headshot, but not Snipers!" } SpawnTemplate objective_w1 SpawnTemplate wood SpawnTemplate textualtimer /////////ROUND 1 WaveSpawn { Name "bombcarrier_1" Where spawnbot_spell TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 20 WaitBetweenSpawns 0 TotalCurrency 100 //DoneMessage "{green}Bots have stopped spawning until the dropped parts have been handed in at the 'ticket' booth" //Chat message when the wavespawn is finished Squad { TFBot { Template T_TFBot_Giant_DemoMan_PrinceTavish InterruptAction // Stop current bot ai and force the bot to move to a location { AimTarget "RandomEnemy" KillAimTarget 1 AlwaysLook 1 Distance 150 } SpawnTemplate dummy AddCond { index 57 Duration 999 } AddCond { Index 43 } CharacterAttributes { "damage force reduction" 0 "voice pitch scale" 0 } } TFBot { Template T_TFBot_Medic AddCond { Index 51 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Medic AddCond { Index 51 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Medic AddCond { Index 51 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "cannot pick up intelligence" 1 } } } } WaveSpawn { Name "redbots_1" Where spawnbot_churchleft Where spawnbot_churchright Where spawnbot_rightfountain Where spawnbot_leftfountain TotalCount 30 MaxActive 13 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 5 TotalCurrency 100 StartWaveMessage "{DARK BLUE} Scouts, Huntsmans, Demoknights and SMGs incoming!" RandomChoice { TFBot { Class Scout Skill Easy Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Demoman_Knight Skill Expert Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Sniper_Huntsman ItemAttributes { Itemname "The huntsman" "cannot headshot" 1 } Skill Hard Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Sniper_SMG Skill Easy Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } } } /////////ROUND 2 WaveSpawn { Name "redbots_2" WaitForAllDead "bombcarrier_1" Where spawnbot_churchleft Where spawnbot_churchright Where spawnbot_rightfountain Where spawnbot_leftfountain TotalCount 30 MaxActive 13 SpawnCount 3 WaitBeforeStarting 20 WaitBetweenSpawns 5 TotalCurrency 100 StartWaveMessage "{DARK BLUE}Soldiers, GRU Heavies, Flare Pyros and Widowmakers next up!" RandomChoice { TFBot { Class Soldier Skill Normal Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast Skill Expert Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Pyro_Flaregun Skill Hard Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Engineer_Widowmaker Skill Easy Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } } } WaveSpawn { Name "bombcarrier_2" WaitForAllDead "bombcarrier_1" Where spawnbot_spell TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 30 WaitBetweenSpawns 0 TotalCurrency 100 FirstSpawnOutput { Target intel_event_trigger Action Trigger } Squad { TFBot { Template T_TFBot_Giant_Soldier_Beggars SpawnTemplate dummy InterruptAction // Stop current bot ai and force the bot to move to a location { AimTarget "RandomEnemy" KillAimTarget 1 AlwaysLook 1 Distance 300 } AddCond { index 57 Duration 999 } AddCond { Index 43 } CharacterAttributes { "damage force reduction" 0 "voice pitch scale" 0 } } TFBot { Template T_TFBot_Medic AddCond { Index 51 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Medic AddCond { Index 51 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Medic AddCond { Index 51 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "cannot pick up intelligence" 1 } } } } /////////ROUND 3 WaveSpawn { Name "redbots_3" WaitForAllDead "bombcarrier_2" Where spawnbot_churchleft Where spawnbot_churchright Where spawnbot_rightfountain Where spawnbot_leftfountain TotalCount 30 MaxActive 13 SpawnCount 3 WaitBeforeStarting 20 WaitBetweenSpawns 5 TotalCurrency 100 StartWaveMessage "{DARK BLUE} Shotgun/Minigun Heavies, Dragon Pyros, Popper Scouts and Demomen on the way!" RandomChoice { TFBot { Template T_TFBot_Heavyweapons_Shotgun Skill Expert Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Scout_Popper Skill Hard Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Demoman Skill Hard Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Pyro_Dragon Skill Normal Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Class Heavyweapons Skill Easy Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } } } WaveSpawn { Name "bombcarrier_3" WaitForAllDead "bombcarrier_2" Where spawnbot_spell TotalCount 6 MaxActive 6 SpawnCount 6 WaitBeforeStarting 30 WaitBetweenSpawns 0 TotalCurrency 100 FirstSpawnOutput { Target intel_event_trigger Action Trigger } Squad { TFBot { Template T_TFBot_Giant_Pyro SpawnTemplate dummy InterruptAction // Stop current bot ai and force the bot to move to a location { AimTarget "RandomEnemy" KillAimTarget 1 AlwaysLook 1 Distance 150 } AddCond { index 57 Duration 999 } AddCond { Index 43 } CharacterAttributes { "damage force reduction" 0 "voice pitch scale" 0 } } TFBot { Template T_TFBot_Medic AddCond { Index 51 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Medic AddCond { Index 51 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Medic AddCond { Index 51 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Medic AddCond { Index 51 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Medic AddCond { Index 51 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "cannot pick up intelligence" 1 } } } } /////////ROUND 4 WaveSpawn { Name "redbots_4" WaitForAllDead "bombcarrier_3" Where spawnbot_churchleft Where spawnbot_churchright Where spawnbot_rightfountain Where spawnbot_leftfountain Where spawnbot_lefthatch Where spawnbot_righthatch TotalCount 30 MaxActive 13 SpawnCount 3 WaitBeforeStarting 20 WaitBetweenSpawns 5 TotalCurrency 100 StartWaveMessage "{DARK BLUE} Pyros, Cola Scouts, Dead Ringer Spies, Hybrid Knights and Soldiers en route!" RandomChoice { TFBot { Class Pyro Skill Hard Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 "airblast disabled" 1 } } TFBot { Template T_TFBot_Scout_Cola Skill Normal Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Class Soldier Skill Normal Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Demoknight_Hybrid Skill Expert Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 "deploy time decreased" -1 } } TFBot { Template T_TFBot_Spy_Deadringer AimAt Head Item "The Ambassador" Skill Expert Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } } } WaveSpawn { Name "bombcarrier_4" WaitForAllDead "bombcarrier_3" Where spawnbot_spell TotalCount 6 MaxActive 6 SpawnCount 6 WaitBeforeStarting 30 WaitBetweenSpawns 0 TotalCurrency 100 FirstSpawnOutput { Target intel_event_trigger Action Trigger } Squad { TFBot { Template T_TFBot_Giant_Demoman Classicon demo_spammer Attributes AlwaysCrit InterruptAction // Stop current bot ai and force the bot to move to a location { AimTarget "RandomEnemy" KillAimTarget 1 AlwaysLook 1 Distance 400 } SpawnTemplate dummy AddCond { index 57 Duration 999 } AddCond { Index 43 } CharacterAttributes { "damage force reduction" 0 "voice pitch scale" 0 } } TFBot { Template T_TFBot_Medic AddCond { Index 51 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Medic AddCond { Index 51 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Medic AddCond { Index 51 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Medic AddCond { Index 51 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Medic AddCond { Index 51 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "cannot pick up intelligence" 1 } } } } /////////ROUND 5 WaveSpawn { Name "redbots_5" WaitForAllDead "bombcarrier_4" Where spawnbot_churchleft Where spawnbot_churchright Where spawnbot_rightfountain Where spawnbot_leftfountain Where spawnbot_lefthatch Where spawnbot_righthatch Where spawnbot_lefthaystack Where spawnbot_rightcafe TotalCount 40 MaxActive 17 SpawnCount 3 WaitBeforeStarting 20 WaitBetweenSpawns 5 TotalCurrency 200 StartWaveMessage "{DARK BLUE} Strong wave en route! Prepare!" RandomChoice { TFBot { Class Pyro Skill Hard Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 "airblast disabled" 1 } } TFBot { Class Heavyweapons Skill Normal Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 "airblast disabled" 1 } } TFBot { Template T_TFBot_Demoman_RapidFire Skill Hard Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 "airblast disabled" 1 } } TFBot { Template T_TFBot_Scout_Cola Skill Normal Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Class Soldier Skill Hard Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Demo_Burst Skill Expert Action Mobber Attributes DisableDodge Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 "deploy time decreased" -1 } } TFBot { Template T_TFBot_Heavy_FistOfSteel Attributes DisableDodge Classicon red2_lite Skill Expert AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Scout_Pistol Attributes DisableDodge Skill Easy Classicon red2_lite AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Pyro_Flaregun Attributes DisableDodge Classicon red2_lite Skill Hard AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } TFBot { Template T_TFBot_Demoman_Stickybomb_Vanilla Attributes DisableDodge Classicon red2_lite Skill Expert AddCond { Index 43 } AddCond { Index 51 Duration 1.5 } CharacterAttributes { "cannot pick up intelligence" 1 } } } } WaveSpawn { Name "bombcarrier_5" WaitForAllDead "bombcarrier_4" Where spawnbot_spell TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 40 WaitBetweenSpawns 0 TotalCurrency 200 FirstSpawnOutput { Target intel_event_trigger Action Trigger } Squad { TFBot { Template T_TFBot_Giant_Soldier_BurstFire_NoCrit SpawnTemplate dummy InterruptAction // Stop current bot ai and force the bot to move to a location { AimTarget "RandomEnemy" KillAimTarget 1 AlwaysLook 1 Distance 400 } AddCond { index 57 Duration 999 } AddCond { Index 43 } CharacterAttributes { "damage force reduction" 0 "voice pitch scale" 0 } } TFBot { Template T_TFBot_Giant_Medic AddCond { index 51 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "cannot pick up intelligence" 1 "damage force reduction" 0 "voice pitch scale" 0 } } } } //WaveSpawn //{ // Name "bomb_bugged_quickfix" // WaitForAllDead "bombcarrier_5" // Where spawnbot_midrock // TotalCount 999 // MaxActive 1 // SpawnCount 1 // WaitBeforeStarting 0 // WaitBetweenSpawns 0 // TotalCurrency 0 // Support 1 // HideIcon 1 // TFBot // { // Template T_TFBot_Giant_Soldier // SpawnTemplate dummy // AddCond // { // Index 5 // Duration 1.5 // } // CharacterAttributes // { // "voice pitch scale" 0 // "damage force reduction" 0 // } // AddCond // { // Index 43 // } // } //} WaveSpawn { Name "boss" WaitForAllDead "bombcarrier_5" Where boss_spawn TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 0 HideIcon 1 FirstSpawnMessage "{red}It's The Titanium Terror! You can not kill it right now, so hurry up and hand in the last parts!" FirstSpawnWarningSound "vo\mvm\norm\heavy_mvm_domination06.mp3" TFBot { Name "The Titanium Terror" Class Heavyweapons ClassIcon soldier_shako_lite Scale 3 Health 9999999 Attributes MiniBoss Attributes UseBossHealthBar Skill Expert MaxVisionRange 1800 Action Mobber AimLeadProjectileSpeed 1 WeaponRestrictions PrimaryOnly //UseHumanAnimations 1 Item "Steel Shako" SpawnTemplate warhawk_heavy Tag bot_giant AddCond { Index 43 } ItemAttributes { Itemname "TF_WEAPON_MINIGUN" "damage bonus" 10 "fire rate penalty" 15 } CharacterAttributes { "move speed bonus" 0.35 "damage force reduction" 0.2 "cancel falling damage" 1 "airblast vulnerability multiplier" 0.2 "always allow taunt" 1 "no_jump" 1 "voice pitch scale" 0 "cannot pick up intelligence" 1 } } } } Wave // Wave 2 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } SpawnTemplate textualtimer_w2 SpawnTemplate objective_w2 SpawnTemplate wood Explanation { Line "{BLUE}We are now assembling the bomb! In the meantime, a massive horde is approaching!" Line "{green}A control point will appear near the fountain, you must hold it to pause the 3 minute timer!" Line "{red}The wave fails if that timer ticks to 0! Destroy all enemies before that happens!" //Line "{BLUE}A Gate will appear near the fountain that teleports in friendly Bots. Hold that gate for 4 minutes straight!" } WaveSpawn { Name "a1" Where spawnbot_lefthatch Where spawnbot_righthatch TotalCount 20 MaxActive 8 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 100 TFBot { Template T_TFGateBot_Scout_Sandman AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } WaveSpawn { Name "a1.1" Where spawnbot_frontmid TotalCount 2 MaxActive 1 SpawnCount 1 WaitBeforeStarting 35 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Name "Giant Sticky Spam Demo" Class Demoman ClassIcon demo_sticky_spammer_red_daan Scale 1.7 Health 3300 AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } Attributes MiniBoss Skill Expert MaxVisionRange 1500 WeaponRestrictions SecondaryOnly Action Mobber Item "Bomb Beanie" Item "Upgradeable TF_WEAPON_PIPEBOMBLAUNCHER" FireWeapon //Periodically fires weapon { Delay 0.1 Cooldown 0.1 Repeats 0 IfSeeTarget 0 Type "Secondary" } ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "is_passive_weapon" 1 "override projectile type" 27 // Fires nothing "fire rate penalty" 99 } ItemAttributes { ItemName "Upgradeable TF_WEAPON_PIPEBOMBLAUNCHER" "stickybomb charge rate" 0.001 "projectile range decreased" 0.45 "sticky arm time bonus" -0.2 "fire rate bonus" 0.7 "mod no reload display only" 1 "mod max primary clip override" -1 "crit mod disabled" 0 "max pipebombs decreased" -6 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 7 } } } WaveSpawn { Name "a2" WaitForAllSpawned "a1" Where spawnbot_leftrock Where spawnbot_rightrock Where spawnbot_midbelowhatch TotalCount 35 MaxActive 12 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 100 RandomChoice { TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ ClassIcon heavy_champ_red Action Mobber Attributes DisableDodge AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } TFBot { Template T_TFGateBot_Heavyweapons_Heavyweight_Champ AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } } WaveSpawn { Name "a2.1" WaitForAllDead "a1" Where spawnbot_leftfountain Where spawnbot_rightfountain TotalCount 18 MaxActive 10 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Sniper_Huntsman_Spammer ClassIcon sniper_bow_multi Attributes DisableDodge AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } Action Mobber ItemAttributes { Itemname "The huntsman" "cannot headshot" 1 } } } WaveSpawn { Name "a3" WaitForAllSpawned "a2" Where spawnbot_midhatch TotalCount 3 MaxActive 2 SpawnCount 1 WaitBeforeStarting 8 WaitBetweenSpawns 30 TotalCurrency 100 TFBot { Template T_TFGateBot_Giant_Spammer_Soldier AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } WaveSpawn { Name "a3.1" WaitForAllSpawned "a2" Where spawnbot_frontmid TotalCount 50 MaxActive 15 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Demoman_Knight Action Mobber Attributes DisableDodge AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } WaveSpawn { Name "a3.2" WaitForAllSpawned "a3.1" Where spawnbot_frontmid TotalCount 30 MaxActive 10 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 6 TotalCurrency 100 TFBot { Template T_TFBot_Soldier_DirectHit Action Mobber Attributes DisableDodge AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } WaveSpawn { Name "b1" WaitForAllDead "a3" Where spawnbot_lefthatch Where spawnbot_righthatch TotalCount 4 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Template T_TFGateBot_Giant_Shotgun_Heavy AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } WaveSpawn { Name "b2" WaitForAllDead "b1" Where spawnbot_rightfountain Where spawnbot_leftfountain TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 150 DoneOutput { Target holotank* Action Enable } Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Heater_Fix Classicon heavy_deflector_heater_yoovy ItemAttributes { Itemname "Promo Huo Long Heatmaker" "attack projectiles" 2 } AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } TFBot { Template T_TFBot_Medic_Kritz Tag bot_squad_member Classicon medic_kritz_armored Health 450 Scale 1.5 Name "Armored Kritz Medic" AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } TFBot { Template T_TFBot_Medic_Kritz Tag bot_squad_member Health 450 Scale 1.5 Name "Armored Kritz Medic" Classicon medic_kritz_armored AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } } WaveSpawn { Name "support" Where spawnbot_churchleft Where spawnbot_churchright TotalCount 50 MaxActive 2 SpawnCount 2 WaitBeforeStarting 60 WaitBetweenSpawns 18 TotalCurrency 50 Support 1 TFBot { Template T_TFGateBot_Pyro_Melee AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } } Wave // Wave 3 // tank escort { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } SpawnTemplate objective_w3 SpawnTemplate redhatchbarricade Explanation { Line "{BLUE}Bomb is ready! However, the enemy has placed a giant barricade around the hatch." Line "{BLUE}We are deploying a specially made Tank to destroy it!" Line "{green}Escort the Tank to the end, then protect it while it destroys the barricade." //Line "{green}You can repair the tank by hitting it with your melee weapon. Engineers repair 4x faster!" } WaveSpawn // Dummy { TotalCount 1 SpawnCount 1 Support 1 FirstSpawnOutput { Target holotank1 Action Kill } } WaveSpawn // Dummy { TotalCount 1 SpawnCount 1 Support 1 FirstSpawnOutput { Target holotank2 Action Kill } } WaveSpawn // Tank 60k HP { Name "escort_this" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 Tank { Model "models/bots/boss_bot/boss_tank_color.mdl" SpawnTemplate "colortank" SpawnTemplate "tankreddrill" Name "drilldozer" Health 30000 Speed 75 StartingPathTrackNode tankpath1_1 NoScreenShake 1 OnKilledOutput { Target bots_win_red Action RoundWin } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "a1" Where spawnbot_lefthatch Where spawnbot_righthatch TotalCount 30 MaxActive 10 SpawnCount 10 WaitBeforeStarting 25 WaitBetweenSpawns 0 TotalCurrency 200 TFBot { Template T_TFBot_Scout_Popper Attributes DisableDodge Action Mobber AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } WaveSpawn { Name "a1.1" Where spawnbot_rightfountain TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 28 WaitBetweenSpawns 0 TotalCurrency 25 TFBot { Template T_TFBot_Giant_Pyro_Dragon Attributes DisableDodge Action Mobber AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } WaveSpawn { Name "a1.3" WaitForAllSpawned "a1" Where spawnbot_lefthaystack Where spawnbot_rightcafe TotalCount 28 MaxActive 11 SpawnCount 4 WaitBeforeStarting 25 WaitBetweenSpawns 3 TotalCurrency 100 TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Attributes DisableDodge Action Mobber AddCond { Index 57 Duration 4.5 } AddCond { Index 43 } } } WaveSpawn { Name "a1.2" WaitForAllDead "a1.1" // acts as wait between spawns for always spawning tank side Where spawnbot_rightfountain Where spawnbot_lefthaystack TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 30 TotalCurrency 75 StartWaveMessage "Finishing some subwaves heals the tank!" DoneOutput { Target drilldozer Action SetHealth Param 30000 } TFBot { Template T_TFBot_Giant_Pyro_Dragon Attributes DisableDodge Action Mobber AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } WaveSpawn { Name "a2" WaitForAllSpawned "a1.2" Where spawnbot_midbelowhatch TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 0 TotalCurrency 100 //StartWaveMessage "Some Giants have Batteries for heads. Destroy them to refuel the tank!" DoneOutput { Target count_score_w3 Action Add Param 33 } TFBot { Template T_TFBot_Giant_Heavy_GRU Name "Charged GRU Heavy" Attributes AlwaysCrit SpawnTemplate //Spawn custom player template { Name "batterything" Bone "bip_spine_2" } AlwaysGlow 1 Attributes DisableDodge Action Mobber Item "Pugilist's Protector" Classicon heavy_gru_red AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } WaveSpawn { Name "a3" WaitForAllDead "a2" Where spawnbot_frontmid TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 25 TotalCurrency 100 DoneOutput { Target drilldozer Action SetHealth Param 30000 } TFBot { Template T_TFBot_Giant_Demoman_Burst_Fix Attributes DisableDodge Action Mobber Classicon demo_burst_red AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } WaveSpawn { Name "a3.1" WaitForAllDead "a2" Where spawnbot_leftrock Where spawnbot_rightrock TotalCount 28 MaxActive 12 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 100 TFBot { Template T_TFBot_Heavyweapons_Fist CharacterAttributes { "alt-fire disabled" 1 } AimAt Head Skill Expert Action Mobber Attributes DisableDodge AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } WaveSpawn { Name "b1" WaitForAllSpawned "a3.1" Where spawnbot_righthatch Where spawnbot_lefthatch TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 DoneOutput { Target count_score_w3 Action Add Param 33 } TFBot { Template T_TFBot_Giant_Scout_Baseball_Armored Name "Charged Armored Scout" Attributes AlwaysCrit SpawnTemplate //Spawn custom player template { Name "batterything" Bone "bip_spine_2" } AlwaysGlow 1 Attributes DisableDodge Action Mobber AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } WaveSpawn { Name "b1.1" WaitForAllSpawned "a3.1" Where spawnbot_rightcafe Where spawnbot_lefthatch TotalCount 20 MaxActive 10 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 8 TotalCurrency 100 TFBot { Class Heavyweapons Skill Normal Action Mobber AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } WaveSpawn { Name "b2" WaitForAllDead "b1" Where spawnbot_midhatch TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 30 TotalCurrency 100 DoneOutput { Target count_score_w3 Action Add Param 34 } Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun Action Mobber AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } Classicon heavy_shotgun_red } TFBot { Template T_TFBot_Giant_Medic_Kritz Tag bot_squad_member AlwaysGlow 1 Name "Charged Kritz Medic" Attributes AlwaysCrit SpawnTemplate //Spawn custom player template { Name "batterything" Bone "bip_spine_2" } AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } Classicon medic_kritz_red } } } WaveSpawn // Dummy { WaitForAllDead "b2" TotalCount 1 SpawnCount 1 WaitBeforeStarting 0 Support Limited DoneOutput { Target drilldozer Action SetHealth Param 30000 } } WaveSpawn { Name "b3" WaitForAllSpawned "b2" Where spawnbot_lefthatch Where spawnbot_righthatch TotalCount 50 MaxActive 25 SpawnCount 9 WaitBeforeStarting 30 WaitBetweenSpawns 12 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Sniper_Huntsman Action Mobber ItemAttributes { Itemname "The huntsman" "cannot headshot" 1 } AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "airblast disabled" 1 } } TFBot { Template T_TFBot_Pyro AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } CharacterAttributes { "airblast disabled" 1 } } } } WaveSpawn // Dummy { WaitForAllDead "c1" TotalCount 1 SpawnCount 1 WaitBeforeStarting 0 Support Limited DoneOutput { Target drilldozer Action SetHealth Param 40000 } } WaveSpawn { Name "c1" WaitForAllDead "b3" Where spawnbot_leftrock Where spawnbot_rightrock TotalCount 15 MaxActive 10 SpawnCount 5 WaitBeforeStarting 20 WaitBetweenSpawns 40 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons Action Mobber AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } TFBot { Template T_TFBot_Soldier_Extended_Battalion Tag bot_squad_member ClassIcon red2_lite AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } TFBot { Template T_TFBot_Soldier_Extended_Battalion Tag bot_squad_member ClassIcon red2_lite AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } TFBot { Template T_TFBot_Soldier_Extended_Battalion Tag bot_squad_member ClassIcon red2_lite AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } TFBot { Template T_TFBot_Soldier_Extended_Battalion Tag bot_squad_member ClassIcon red2_lite AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } } WaveSpawn { Name "c1.1" WaitForAllDead "b3" Where spawnbot_churchleft Where spawnbot_churchright TotalCount 24 MaxActive 12 SpawnCount 6 WaitBeforeStarting 15 WaitBetweenSpawns 8 TotalCurrency 50 TFBot { Template T_TFBot_Pyro_Dragon ClassIcon red2_lite AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } WaveSpawn { Name "c2" WaitForAllSpawned "c1" Where spawnbot_rightcafe TotalCount 24 MaxActive 8 SpawnCount 2 WaitBeforeStarting 30 WaitBetweenSpawns 2 TotalCurrency 50 TFBot { Template T_TFBot_Demoman_Stickybomb_Vanilla ClassIcon red2_lite AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } WaveSpawn { Name "c2.1" WaitForAllSpawned "c1" Where spawnbot_leftfountain TotalCount 36 MaxActive 8 SpawnCount 4 WaitBeforeStarting 30 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Scout_Bonk Attributes AlwaysCrit ClassIcon red2_lite AddCond { Index 57 Duration 1.5 } AddCond { Index 43 } } } } }