#base robot_standard.pop #base robot_giant.pop WaveSchedule { StartingCurrency 4000 CanBotsAttackWhileInSpawnRoom no RespawnWaveTime 3 AddSentryBusterWhenDamageDealtExceeds 3000 AddSentryBusterWhenKillCountExceeds 15 Advanced 1 AllowBotExtraSlots 1 RobotLimit 30 PrecacheModel "models/props_tumb/mvm/tank_shield.mdl" PrecacheSound "act4w1placeholder.mp3" PrecacheSound "youngmanyoulldieaterribledeath.mp3" PrecacheSound "beamshit.mp3" ExtraTankPath { Name "tank_path_australium" Node "-2776 6656 712" // tank_path_1 Node "-2416 6656 712" // tank_path_2 Node "-2280 6600 712" // tank_path_3 Node "-2200 6464 712" // tank_path_4 Node "-2184 6240 720" // tank_path_5 Node "-2224 6048 728" // tank_path_6 Node "-2256 5984 728" // tank_path_7 Node "-2264 5872 728" // tank_path_8 Node "-2240 5720 728" // tank_path_9 Node "-2200 5608 728" // tank_path_10 Node "-2112 5536 728" // tank_path_11 Node "-2040 5496 728" // tank_path_12 Node "-1952 5472 728" // tank_path_13 Node "-2480 5848 728" // tank_path_14 Node "-2696 5936 736" // tank_path_15 Node "-3072 5944 736" // tank_path_16 Node "-3344 5944 736" // tank_path_17 Node "-4216 5920 560" // tank_path_18 Node "-4512 5880 560" // tank_path_19 Node "-4744 5736 560" // tank_path_20 Node "-4928 5568 560" // tank_path_21 Node "-5072 5400 560" // tank_path_22 Node "-5216 5152 560" // tank_path_23 Node "-5264 4936 560" // tank_path_24 Node "-5272 4696 560" // tank_path_25 Node "-5232 4488 552" // tank_path_26 Node "-5144 4280 552" // tank_path_27 Node "-5024 4048 560" // tank_path_28 Node "-4920 3880 560" // tank_path_29 Node "-4752 3712 560" // tank_path_30 Node "-4624 3568 560" // tank_path_31 Node "-4552 3400 552" // tank_path_32 Node "-4560 3192 552" // tank_path_33 Node "-4616 3040 552" // tank_path_34 Node "-4704 2856 552" // tank_path_35 Node "-4720 2672 552" // tank_path_36 Node "-4696 2512 552" // tank_path_37 Node "-4624 2336 560" // tank_path_38 Node "-4536 2160 560" // tank_path_39 Node "-4432 2024 560" // tank_path_40 Node "-4280 1912 552" // tank_path_41 Node "-4136 1872 560" // tank_path_42 Node "-3960 1912 560" // tank_path_43 Node "-3808 1992 560" // tank_path_44 Node "-3648 2104 560" // tank_path_45 Node "-3512 2192 560" // tank_path_46 Node "-3392 2256 560" // tank_path_47 Node "-3184 2328 560" // tank_path_48 Node "-3000 2328 560" // tank_path_49 Node "-2848 2264 552" // tank_path_50 Node "-2744 2128 552" // tank_path_51 Node "-2696 1984 552" // tank_path_52 Node "-2616 1848 552" // tank_path_53 Node "-2504 1728 560" // tank_path_54 Node "-2224 1456 560" // tank_path_55 Node "-2080 1080 552" // tank_path_56 } PointTemplates { autologic { OnSpawnOutput { Target "oleada6" Action "trigger" } logic_relay { "targetname" "oleada6" "OnTrigger" "item_teamflag*,SetReturnTime,60,0,-1" "OnTrigger" "sky_sunset_relay,Trigger,,0,-1" "OnTrigger" "05_door,setspeed,400,0,-1" "OnTrigger" "01_door_lock_relay,trigger,,0,-1" "OnTrigger" "pop_interface,$PauseWavespawn,secondchief,0,-1" "OnTrigger" "pop_interface,$PauseWavespawn,suddenambush,0,-1" "OnTrigger" "pop_interface,$PauseWavespawn,third_chief,0,-1" "OnTrigger" "tank_path_australium_10,AddOutput,OnPass payloadtank:SetSpeed:36:0:-1,0,-1" "OnTrigger" "tank_path_australium_10,AddOutput,OnPass payloadtank:SetSpeed:23:1.5:-1,0,-1" "OnTrigger" "tank_path_australium_13,AddOutput,OnPass payloadtank:SetSpeed:0:0:-1,0,-1" "OnTrigger" "tank_path_australium_13,AddOutput,OnPass payloadtank:SetSpeed:75:4:-1,0,-1" "OnTrigger" "tank_path_australium_19,AddOutput,OnPass pop_interface:$ResumeWavespawn:secondchief:0:-1,0,-1" "OnTrigger" "tank_path_australium_31,AddOutput,OnPass pop_interface:$ResumeWavespawn:suddenambush:4:-1,0,-1" "OnTrigger" "tank_path_australium_43,AddOutput,OnPass pop_interface:$ResumeWavespawn:third_chief:0:-1,0,-1" "OnTrigger" "tank_path_australium_56,AddOutput,OnPass pop_interface:$FinishWave::0:-1,0,-1" "OnTrigger" "tank_path_australium_54,AddOutput,OnPass moosic:FadeOut:5:0:-1,0,-1" "OnTrigger" "tank_path_australium_54,AddOutput,OnPass moosic:Kill::5:-1,0,-1" "OnTrigger" "tank_path_australium_54,AddOutput,OnPass musiccontroler:disable:0:0:-1,0,-1" "OnTrigger" "tank_path_australium_31,AddOutput,OnPass payloadtank:SetSpeed:0:4:-1,0,-1" "OnTrigger" "tank_path_australium_31,AddOutput,OnPass 05_door_lock_relay:trigger:0:3:-1,0,-1" "OnTrigger" "tank_path_australium_31,AddOutput,OnPass 05_door:setspeed:100:7:-1,0,-1" "OnTrigger" "tank_path_australium_31,AddOutput,OnPass drill_repairzone:disable::0:-1,0,-1" "OnTrigger" "tank_path_australium_31,AddOutput,OnPass drill_repairzone_2:enable::0:-1,0,-1" "OnTrigger" "tank_path_australium_31,AddOutput,OnPass merascoloshuevosadosmanos:enable::0:-1,0,-1" "OnTrigger" "tank_path_australium_33,AddOutput,OnPass merascoloshuevosadosmanos:disable::0:-1,0,-1" "OnTrigger" "tank_path_australium_31RunScriptCodeEntityOutputs.AddOutput(self, `OnPass`, `player`, `runscriptcode`, `ScreenShake(self.GetOrigin(), 5, 5, 2, 50000, 0, true)`, 3.45, -1)0-1" "OnTrigger" "tank_path_australium_31,AddOutput,OnPass tf_gamerules:playvo:ambient_mp3\rottenburg\tunneldoor_closed_loud.mp3:3.45:-1,0,-1" "OnTrigger" "tank_path_australium_30,AddOutput,OnPass 04_door_lock_relay:trigger::0:-1,0,-1" "OnTrigger" "tank_path_australium_7,AddOutput,OnPass retracting_the_bridge_and_come_forth_all_mighty_patrol_chiefs:trigger:0:0:-1,2,-1" "OnTrigger" "tank_path_australium_5,AddOutput,OnPass tf_gamerules:playvo:youngmanyoulldieaterribledeath.mp3:2:-1,0,-1" "OnTrigger" "tank_path_australium_10,AddOutput,OnPass engi_voicelines1:trigger::0:-1,0,-1" } point_populator_interface { "targetname" "pop_interface" } info_target { "targetname" "gothere" "origin" "-2307 8186 678" } logic_relay { "targetname" "retracting_the_bridge_and_come_forth_all_mighty_patrol_chiefs" "OnTrigger" "shortcut_bridge_retract_relay,trigger,,0,-1" "OnTrigger" "01_door_unlock_relay,trigger,,10,-1" "OnTrigger" "musiccontroler,trigger,,10,-1" "OnTrigger" "tf_gamerules,PlayVO,vo\mvm\mght\heavy_mvm_m_domination13.mp3,14,-1" "OnTrigger" "tf_gamerules,PlayVO,vo\mvm\mght\heavy_mvm_m_domination13.mp3,14,-1" "OnTrigger" "tf_gamerules,playvo,ambient\machines\spindown.wav,9.5,1" "OnTrigger" "tf_gamerules,playvo,ambient\machines\spindown.wav,9.5,1" "OnTrigger" "tf_gamerules,playvo,npc\combine_gunship\ping_patrol.wav,6,1" } logic_relay { "targetname" "engi_voicelines1" "OnTrigger" "tf_gamerules,playvo,vo\mvm\norm\engineer_mvm_negativevocalization02.mp3,0,-1" "OnTrigger" "tf_gamerules,playvo,vo\mvm\norm\engineer_mvm_negativevocalization05.mp3,11,-1" "OnTrigger" "tf_gamerules,playvo,vo\mvm\norm\engineer_mvm_incoming03.mp3,14,-1" "OnTrigger" "tf_gamerules,playvo,vo\mvm\norm\engineer_mvm_negativevocalization04.mp3,21,-1" "OnTrigger" "tf_gamerules,playvo,vo\mvm\norm\engineer_mvm_helpme03.mp3,22.7,-1" "OnTrigger" "tf_gamerules,playvo,vo\mvm\norm\engineer_mvm_negativevocalization02.mp3,0,-1" "OnTrigger" "tf_gamerules,playvo,vo\mvm\norm\engineer_mvm_negativevocalization05.mp3,11,-1" "OnTrigger" "tf_gamerules,playvo,vo\mvm\norm\engineer_mvm_incoming03.mp3,14,-1" "OnTrigger" "tf_gamerules,playvo,vo\mvm\norm\engineer_mvm_negativevocalization04.mp3,21,-1" "OnTrigger" "tf_gamerules,playvo,vo\mvm\norm\engineer_mvm_helpme03.mp3,22.7,-1" "OnTrigger" "playerrunscriptcodeScreenShake(self.GetOrigin(), 5, 8, 2, 50000, 0, true)1-1" } logic_relay { "targetname" "musiccontroler" "OnTrigger" "moosic,PlaySound,,0,-1" "OnTrigger" "moosic,StopSound,,194.7,-1" "OnTrigger" "musiccontroler,trigger,,194.72,-1" "spawnflags" "2" } ambient_generic { "targetname" "moosic" "message" "#act4w1placeholder.mp3" "health" "6" "pitch" "100" "spawnflags" "17" } } ThisIsTheEnd { logic_relay { "targetname" "cantbelievethataftersolong_wearefinallyatthehomestretch" "OnTrigger" "sky_sunset_relay,trigger,,0.02,-1" } } fuelflag { KeepAlive 1 item_teamflag { "targetname" "scrapflag" "TeamNum" "2" "StartDisabled" "1" "flag_model" "models/weapons/c_models/c_gascan/c_gascan.mdl" "origin" "0 0 15" "OnReturn" "!self,Kill,,0.017,1" "OnReturn" "player,$DisplayTextChat,n1,0.007,1" "OnReturn" "merascoloshuevosadosmanos,add,1,0,1" "OnPickup1" "!activatorRunScriptCodeClientPrint(self, 4, `YOU PICKED UP A GAS CAN!`)01" "OnPickup1" "!activator,$PlaySoundToSelf,ui\item_bag_pickup.wav,0,1" } tf_glow { "GlowColor" "0 176 199 255" "target" "scrapflag" "targetname" "flag_glow" "startdisabled" "1" } OnParentKilledOutput { Target flag_glow Action Enable } OnParentKilledOutput { Target scrapflag Action Enable } OnParentKilledOutput { Target scrapflag Action SetTeam Param 3 } } spybasemusicawesome { logic_relay { "OnSpawn" "player,$DisplayTextChat,{yellow}[ Now Playing: {6383ff} Unnamed Track - OrangeGlazer {yellow}],5,-1" "OnSpawn" "wave2spybasing,PlaySound,,0,-1" } ambient_generic { "targetname" "wave2spybasing" "message" "spybase8.mp3" "health" "10" "pitch" "100" "spawnflags" "17" } } combattankwarning { training_annotation { "targetname" "combatwarning" "lifetime" "5" "display_text" "Something is coming! Back up!" "origin" "-2560 6664 820" } } tank_shit { NoFixUp 1 math_counter { "targetname" "merascoloshuevosadosmanos" "startvalue" "0" //Probably defaults to 0, but still. "min" "0" "max" "12" //Whatever value you desire "OnHitMax" "payloadtank,setspeed,200,0,1" //Fired when the value changes. "OnHitMax" "payloadtank,setspeed,60,5,1" "OnHitMax" "05_door_unlock_relay,trigger,,0.2,1" "OnHitMax" "05_door,kill,,0.2,1" "OnHitMax" "merascoloshuevosadosmanos,disable,,0.22,1" "startdisabled" "1" } prop_dynamic { "targetname" "slowdownshield" "model" "models/props_tumb/mvm/tank_shield.mdl" "origin" "0 0 0" "rendercolor" "0 0 0" "disableshadows" "1" "renderfx" "24" "startdisabled" "1" } func_flagdetectionzone { "targetname" "drill_repairzone" "mins" "-200 -200 -60" "maxs" "200 200 60" "OnStartTouchFlag" "payloadtank,setspeed,100,0,-1" "OnStartTouchFlag" "payloadtank,setspeed,60,5,-1" "OnStartTouchFlag" "drill_repairaccept,Enable,,0,-1" "OnStartTouchFlag" "drill_repairaccept,Disable,,0.02,-1" "OnStartTouchFlag" "!activatorRunScriptCodeClientPrint(self, 4, `YOU DEPOSITED GAS, SPEED UP!`)0-1" "OnStartTouchFlag" "!activator,$PlaySoundToSelf,weapons\gas_can_inspect_movement1.wav,0,-1" "OnStartTouchFlag" "!activator,$PlaySoundToSelf,weapons\gas_can_inspect_movement1.wav,0,-1" } func_flagdetectionzone { "targetname" "drill_repairzone_2" "mins" "-200 -200 -60" "maxs" "200 200 60" "startdisabled" "1" "OnStartTouchFlag" "drill_repairaccept,Enable,,0,-1" "OnStartTouchFlag" "drill_repairaccept,Disable,,0.02,-1" "OnStartTouchFlag" "!activator,$PlaySoundToSelf,weapons\gas_can_inspect_movement1.wav,0,-1" "OnStartTouchFlag" "!activator,$PlaySoundToSelf,weapons\gas_can_inspect_movement1.wav,0,-1" } func_respawnflag { StartDisabled 1 "targetname" "drill_repairaccept" "mins" "-300 -200 -60" "maxs" "300 200 60" "ReturnTime" "15" } training_annotation { "targetname" "gimmicktuto" "display_text" "Patrol Chiefs will zap the tank and slow it down! Take them out!" "lifetime" "10" "origin" "0 0 140" } prop_dynamic { "targetname" "kill_me_if_you_dare" "model" "models/empty.mdl" "solid" "0" "origin" "0 0 120" } logic_relay { "targetname" "beam_stuff_ig" "OnTrigger" "ihatethisentity,strikeonce,,0,-1" "OnTrigger" "beam_stuff_ig,trigger,,0.15,-1" "OnTrigger" "payloadtank,removehealth,3,0.15,-1" "spawnflags" "2" } logic_relay { "targetname" "beam_stuff_ig2" "OnTrigger" "ihatethisentity2,strikeonce,,0,-1" "OnTrigger" "beam_stuff_ig2,trigger,,0.15,-1" "OnTrigger" "payloadtank,removehealth,3,0.15,-1" "spawnflags" "2" } logic_relay { "targetname" "beam_stuff_ig3" "OnTrigger" "ihatethisentity3,strikeonce,,0,-1" "OnTrigger" "beam_stuff_ig3,trigger,,0.15,-1" "OnTrigger" "payloadtank,removehealth,3,0.15,-1" "spawnflags" "2" } logic_relay { "targetname" "starttheslowdown" "OnTrigger" "beam_stuff_ig,trigger,,0,-1" "OnTrigger" "gimmicktuto,show,8,5,1" "OnTrigger" "payloadtank,setspeed,0,0,-1" "OnTrigger" "tf_gamerules,playvo,beamshit.mp3,0,-1" "OnTrigger" "playerrunscriptcodeScreenShake(self.GetOrigin(), 5, 5, 2, 50000, 0, true)0-1" "OnTrigger" "tf_gamerules,playvo,items\powerup_pickup_supernova.wav,0,-1" "OnTrigger" "slowdownshield,enable,,0,-1" "OnTrigger" "drill_repairzone,disable,,0,-1" "spawnflags" "2" } logic_relay { "targetname" "starttheslowdown2" "OnTrigger" "beam_stuff_ig2,trigger,,0,-1" "OnTrigger" "payloadtank,setspeed,0,0,-1" "OnTrigger" "tf_gamerules,playvo,beamshit.mp3,0,-1" "OnTrigger" "playerrunscriptcodeScreenShake(self.GetOrigin(), 5, 5, 2, 50000, 0, true)0-1" "OnTrigger" "tf_gamerules,playvo,items\powerup_pickup_supernova.wav,0,-1" "OnTrigger" "slowdownshield,enable,,0,-1" "OnTrigger" "drill_repairzone,disable,,0,-1" "spawnflags" "2" } logic_relay { "targetname" "starttheslowdown3" "OnTrigger" "beam_stuff_ig3,trigger,,0,-1" "OnTrigger" "payloadtank,setspeed,0,0,-1" "OnTrigger" "tf_gamerules,playvo,beamshit.mp3,0,-1" "OnTrigger" "playerrunscriptcodeScreenShake(self.GetOrigin(), 5, 5, 2, 50000, 0, true)0-1" "OnTrigger" "tf_gamerules,playvo,items\powerup_pickup_supernova.wav,0,-1" "OnTrigger" "slowdownshield,enable,,0,-1" "OnTrigger" "drill_repairzone,disable,,0,-1" "spawnflags" "2" } logic_relay { "targetname" "canyoumoveyourfatassagain" "OnTrigger" "payloadtank,setspeed,60,1.5,-1" "OnTrigger" "slowdownshield,disable,,1.5,-1" "OnTrigger" "slowdownshield,$setkey$renderfx,6,0,-1" "OnTrigger" "slowdownshield,$setkey$renderfx,24,2,-1" "OnTrigger" "tf_gamerules,playvo,misc\halloween\spell_spawn_boss_disappear.wav,0.5,-1" "OnTrigger" "drill_repairzone,enable,,0,-1" } env_beam { "targetname" "ihatethisentity" "BoltWidth" "10" "LightningStart" "beamstart" "LightningEnd" "kill_me_if_you_dare" "origin" "0 0 140" "renderamt" "200" "rendercolor" "200 200 255" "damage" "0" "NoiseAmplitude" "1" "dissolvetype" "1" "texture" "sprites/laserbeam.spr" "TouchType" "1" "life" "0.16" "spawnflags" "96" } env_beam { "targetname" "ihatethisentity2" "BoltWidth" "10" "LightningStart" "beamstart2" "LightningEnd" "kill_me_if_you_dare" "origin" "0 0 140" "renderamt" "200" "rendercolor" "200 200 255" "damage" "0" "NoiseAmplitude" "1" "dissolvetype" "1" "texture" "sprites/laserbeam.spr" "TouchType" "1" "life" "0.16" "spawnflags" "96" } env_beam { "targetname" "ihatethisentity3" "BoltWidth" "10" "LightningStart" "beamstart3" "LightningEnd" "kill_me_if_you_dare" "origin" "0 0 140" "renderamt" "200" "rendercolor" "200 200 255" "damage" "0" "NoiseAmplitude" "1" "dissolvetype" "1" "texture" "sprites/laserbeam.spr" "TouchType" "1" "life" "0.16" "spawnflags" "96" } } stoprighttheremotherfucker { OnParentKilledOutput { Target "beam_stuff_ig" Action "disable" } OnParentKilledOutput { Target "canyoumoveyourfatassagain" Action Trigger } prop_dynamic { "targetname" "beamstart" "model" "models/empty.mdl" "solid" "0" "origin" "0 0 120" } } stoprighttheremotherfucker2 { OnParentKilledOutput { Target "beam_stuff_ig2" Action "disable" } OnParentKilledOutput { Target "canyoumoveyourfatassagain" Action Trigger } prop_dynamic { "targetname" "beamstart2" "model" "models/empty.mdl" "solid" "0" "origin" "0 0 100" } } stoprighttheremotherfucker3 { OnParentKilledOutput { Target "beam_stuff_ig3" Action "disable" } OnParentKilledOutput { Target "canyoumoveyourfatassagain" Action Trigger } prop_dynamic { "targetname" "beamstart3" "model" "models/empty.mdl" "solid" "0" "origin" "0 0 120" } } unstablecharge { OnSpawnOutput { Target popscript Action "$unstablesetup" } OnParentKilledOutput { Target boomtime Action Trigger } trigger_ignite { "targetname" "blastzone" "origin" "0 0 0" "angles" "0 0 0" "mins" "-270 -270 -120" "maxs" "270 270 600" "spawnflags" "1" "burn_duration" "7" "damage_percent_per_second" "25" "filtername" "redteam" "StartDisabled" "1" } KeepAlive 1 filter_activator_tfteam { "targetname" "redteam" "teamnum" "2" } KeepAlive 1 logic_relay { "targetname" "boomtime" "ontrigger" "blastzone,Enable,,0,-1" "ontrigger" "blastzone,Kill,,4,-1" "ontrigger" "buffzone,Enable,,0,-1" "ontrigger" "buffzone,Kill,,0.5,-1" "OnTrigger" "bigblast,start,,0,-1" "OnTrigger" "bigblast,Kill,,4,-1" "OnTrigger" "shake,StartShake,,0,-1" "OnTrigger" "shake,Kill,,2,-1" "OnTrigger" "!self,Kill,,5,-1" } KeepAlive 1 info_particle_system { "targetname" "bigblast" "origin" "0 0 90" "angles" "0 0 0" "effect_name" "cinefx_goldrush" } KeepAlive 1 env_shake { "targetname" "shake" "amplitude" "7" "duration" "1.5" "frequency" "255" "radius" "300" "spawnflags" "4" } } } SpawnTemplate combattankwarning Mission { Objective DestroySentries Where spawnbot BeginAtWave 2 RunForThisManyWaves 1 InitialCooldown 30 CooldownTime 50 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster } } Mission { Objective Engineer Where spawnbot BeginAtWave 2 RunForThisManyWaves 1 InitialCooldown 25 CooldownTime 22 DesiredCount 1 TFBot { Template T_TFBot_Engineer_Sentry_Teleporter Health 275 } } Templates { unstablecharge { SpawnTemplate unstablecharge Item "Wavefinder" FireInput { Target "!self" Action "IgnitePlayer" Repeats 9999 Delay 1 Cooldown 1 } AddCond { Index 70 } FireInput { IfHealthBelow 2 Delay 2 Target !self Action $suicide } FireInput { IfHealthBelow 2 Delay 1.3 Target !self Action $PlaySound Param "items\cart_explode_trigger.wav" } CharacterAttributes { "attach particle effect" 236 "voice pitch scale" 1.45 } VoiceCommand { Delay 3 Cooldown 3 Type "Help" } } GiantHeavyDeflector { Class Heavyweapons Name "Giant Deflector Heavy" ClassIcon heavy_deflector Skill Expert Health 5000 Scale 1.8 WeaponRestrictions PrimaryOnly Attributes MiniBoss Item "The U-clank-a" CharacterAttributes { "move speed bonus" 0.4 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.4 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.9 "override footstep sound set" 2 "damage bonus" 1.2 "attack projectiles" 2 } } GiantKritzMedic { Class Medic Name "Giant Kritz Medic" ClassIcon medic_kritz2 Skill Expert Health 4500 Attributes SpawnWithFullCharge WeaponRestrictions SecondaryOnly Attributes MiniBoss Item "The Kritzkrieg" CharacterAttributes { "bot medic uber health threshold" 10000 "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "heal rate bonus" 200 "uber duration bonus" 999.0 } } PyroFury { Class Pyro ClassIcon pyro_dragon_fury_swordstone Name "Dragon's Fury Pyro" WeaponRestrictions PrimaryOnly Item "The Dragon's Fury" CharacterAttributes { "fire rate bonus" 0.8 } } GiantStickyDemo { Class Demoman Name "Giant Burst Fire Demo" ClassIcon demo_sticky_DAAN Skill Expert Health 4500 Item "Bomb Beanie" Attributes HoldFireUntilFullReload Attributes MiniBoss WeaponRestrictions SecondaryOnly Tag giant UseHumanAnimations 1 ItemAttributes { ItemName "Bomb Beanie" "set item tint rgb" 6535423 } ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "is_passive_weapon" 1 "override projectile type" 27 //"clip size bonus" 2 } ItemAttributes { ItemName "TF_WEAPON_PIPEBOMBLAUNCHER" "stickybomb charge rate" 0.001 "faster reload rate" 0.5 "fire rate bonus" 0.01 "Projectile range increased" 0.35 "projectile spread angle penalty" 15 "clip size upgrade atomic" 6 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 4 } } FamilyBusiness { Class Heavyweapons Skill Hard ClassIcon heavy_family_business Name "Family Business Heavy" WeaponRestrictions SecondaryOnly Item "The Family Business" } DemoRapidMinigiant { Class Demoman Skill Hard ClassIcon demo_spammer_armored Name "Rapidfire Minigiant Demoman" WeaponRestrictions PrimaryOnly Scale 1.35 Health 750 CharacterAttributes { "faster reload rate" 0.01 } } SoldierGigaburst { Class Soldier Name "Giant Burst Fire Soldier" ClassIcon soldier_burstfire Health 4200 Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes HoldFireUntilFullReload ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "damage bonus" 2.0 "faster reload rate" 0.4 "fire rate bonus" 0.2 "clip size upgrade atomic" 5.0 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "Projectile speed increased" 0.9 } } } Wave // Wave 1 { CustomWaveNumber 6 CustomMaxWaveNumber 7 StartWaveOutput { Target wave_start_relay Action Trigger } InitWaveOutput { Target wave_start_relay Action runscriptcode Param " IncludeScript(`tankextensions_main`, getroottable()) IncludeScript(`claudz_logic_v3`) IncludeScript(`tankextensions/combattank`, getroottable()) IncludeScript(`tankextensions/combattank_weapons/minigun`, getroottable()) IncludeScript(`tankextensions/combattank_weapons/rocketpod`, getroottable()) EntFire(`autologic`,`forcespawn`) " } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name "carreta1" TotalCurrency 0 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 Tank { Health 30000 Name payloadtank Speed 75 Scale 1 Classicon payload_vip //thanks for the icon nys SpawnTemplate tank_shit MaxTurnRate 40 Model {Default "models/robot_factory/australium_tank.mdl" Destruction "models/empty.mdl"} PingSound "misc/null.wav" DisableBomb 1 StartingPathTrackNode tank_path_australium_1 TeamNum 2 OnKilledOutput { Target red_lose_relay Action Trigger } OnBombDroppedOutput { Target redwin_relay Action Trigger } } } WaveSpawn { Name "" WaitForAllDead "" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 25 WaitBetweenSpawns 0 TotalCurrency 0 FirstSpawnWarningSound "mvm/giant_heavy/giant_heavy_entrance.wav" TFBot { Template T_TFBot_Giant_Heavyweapons Name "Heavy Patrol Chief" Attributes UseBossHealthBar ClassIcon heavy_head_nys Action Mobber Scale 1.9 Health 20000 UseCustomModel "models/bots/heavy_boss/bot_heavy_boss_gibby.mdl" SpawnTemplate stoprighttheremotherfucker FireInput { Target "!self" Action "$PlaySequence" Param "taunt_burstchester_heavy" Delay 15 Cooldown 9999 } FireInput { Target "starttheslowdown" Action "Trigger" Delay 15 Cooldown 9999 } FireInput { Target !self Action $teleporttoentity Param "gothere" Delay -1 Repeats 1 } Taunt //Taunt periodically { Delay 15 //Time before the first taunt starts (Default: 10) Cooldown 1 //Time between each taunt (Default: 10) Repeats 1 //How many times the bot should taunt in total (Default: 0 - Infinite) Duration 1 //Duration of a looping taunt (Default: 0.1) Name "Taunt: Burstchester" } } } WaveSpawn { Name "secondchief" WaitForAllDead "" Where spawnbot_side_3 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 FirstSpawnWarningSound "mvm/giant_heavy/giant_heavy_entrance.wav" TotalCurrency 0 TFBot { ClassIcon pyro_degreaser_flare Scale 1.9 Health 23000 Name "Pyro Patrol Chief" Class Pyro Skill Expert Action Mobber Attributes MiniBoss Attributes UseBossHealthBar UseMeleeThreatPrioritization 1 Item "the flare gun" Item "the degreaser" Item "the axtinguisher" UseCustomModel "models/bots/pyro_boss/bot_pyro_boss_gibby.mdl" SpawnTemplate stoprighttheremotherfucker2 Taunt //Taunt periodically { Delay 9 //Time before the first taunt starts (Default: 10) Cooldown 1 //Time between each taunt (Default: 10) Repeats 1 //How many times the bot should taunt in total (Default: 0 - Infinite) Duration 1 //Duration of a looping taunt (Default: 0.1) Name "Taunt: Burstchester" } FireInput { Target "!self" Action "$PlaySequence" Param "taunt_burstchester_pyro" Delay 9 Cooldown 9999 } FireInput { Target "starttheslowdown2" Action "Trigger" Delay 9 Cooldown 9999 } ItemAttributes { ItemName "The Flare Gun" "fire rate bonus" 0.4 "Reload time decreased" 0.2 "Projectile speed increased" 1.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.1 "airblast vulnerability multiplier" 0.1 "override footstep sound set" 6 "melee range multiplier" 2 } ItemAttributes { ItemName "the degreaser" "weapon burn dmg increased" 2 "flame_drag" 4 "max_flame_reflection_count" 1000 "flame_reflect_on_collision" 1000 "flame_spread_degree" 5 "flame_up_speed" -25 } WeaponSwitch { Type "Primary" MaxTargetRange 500 MinTargetRange 200 Delay 0.1 Repeats 0 Cooldown 0 IfSeeTarget 1 } WeaponSwitch { Type "Secondary" MaxTargetRange 9999 MinTargetRange 500 Delay 0.1 Repeats 0 Cooldown 0 IfSeeTarget 1 } WeaponSwitch { Type "Melee" MaxTargetRange 200 MinTargetRange 1 Delay 0.1 Repeats 0 Cooldown 0 IfSeeTarget 1 } } } WaveSpawn { Name "third_chief" WaitForAllDead "" Where spawnbot_07 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 TFBot { SpawnTemplate stoprighttheremotherfucker3 ClassIcon demo_robot_nys Health 25000 Name "Heavy Patrol Chief" Template T_TFBot_Giant_Demo_Burst Attributes "UseBossHealthBar" UseCustomModel "models\bots\demo_boss\bot_demo_boss_gibby.mdl" Action Mobber Attributes DisableDodge Tag giant Taunt //Taunt periodically { Delay 9 //Time before the first taunt starts (Default: 10) Cooldown 1 //Time between each taunt (Default: 10) Repeats 1 //How many times the bot should taunt in total (Default: 0 - Infinite) Duration 1 //Duration of a looping taunt (Default: 0.1) Name "Taunt: Burstchester" } FireInput { Target "starttheslowdown3" Action "Trigger" Delay 9 Cooldown 9999 } } } WaveSpawn { Name "" WaitForAllDead "" Where spawnbot TotalCount 22 MaxActive 22 SpawnCount 11 WaitBeforeStarting 8 WaitBetweenSpawns 15 TotalCurrency 0 TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ Attributes AlwaysCrit Action Mobber } } } Wave { CustomWaveNumber 7 CustomMaxWaveNumber 7 WaitWhenDone 65 Checkpoint Yes InitWaveOutput { Target wave_start_relay Action runscriptcode Param " IncludeScript(`tankextensions_main`, getroottable()) IncludeScript(`tankextensions/combattank`, getroottable()) IncludeScript(`tankextensions/combattank_weapons/minigun`, getroottable()) IncludeScript(`tankextensions/combattank_weapons/rocketpod`, getroottable()) IncludeScript(`tankextensions/combattank_weapons/railgun`, getroottable()) TankExt.CreateLoopPaths({ tank_loop = [ Vector(-2816, 6656, 696) //start of path Vector(-2413, 6656, 696) //first node of curve 1 Vector(-2350, 6649, 696) Vector(-2289, 6630, 696) Vector(-2234, 6598, 696) Vector(-2187, 6555, 696) Vector(-2150, 6504, 696) Vector(-2124, 6446, 696) Vector(-2111, 6384, 696) Vector(-2111, 6320, 696) Vector(-2124, 6258, 696) Vector(-2153, 6200, 696) Vector(-2192, 6141, 696) Vector(-2239, 6087, 696) Vector(-2293, 6040, 696) Vector(-2352, 6001, 696) Vector(-2416, 5969, 696) Vector(-2483, 5947, 696) Vector(-2553, 5933, 696) Vector(-2624, 5928, 696) //last node of first curve Vector(-4088, 5928, 520) //first node of curve 2 (waterfall) Vector(-4192, 5923, 520) Vector(-4295, 5910, 520) Vector(-4397, 5887, 520) Vector(-4496, 5856, 520) Vector(-4592, 5816, 520) Vector(-4684, 5768, 520) Vector(-4772, 5712, 520) Vector(-4854, 5649, 520) Vector(-4931, 5579, 520) Vector(-5001, 5502, 520) Vector(-5064, 5420, 520) Vector(-5120, 5332, 520) Vector(-5168, 5240, 520) Vector(-5208, 5144, 520) Vector(-5239, 5045, 520) Vector(-5262, 4943, 520) Vector(-5275, 4840, 520) Vector(-5280, 4736, 520) //middle node of curve 2 (waterfall bridge) Vector(-5275, 4632, 520) Vector(-5262, 4529, 520) Vector(-5239, 4427, 520) Vector(-5208, 4328, 520) Vector(-5168, 4232, 520) Vector(-5120, 4140, 520) Vector(-5064, 4052, 520) Vector(-5001, 3970, 520) Vector(-4931, 3893, 520) Vector(-4854, 3823, 520) Vector(-4785, 3759, 520) Vector(-4711, 3702, 520) Vector(-4632, 3652, 520) Vector(-4549, 3608, 520) Vector(-4463, 3573, 520) Vector(-4374, 3545, 520) Vector(-4284, 3524, 520) Vector(-4189, 3512, 520) Vector(-4096, 3508, 520) //last node of curve 2 Vector(-3584, 3508, 616) //first node of slalom 1 (concrete barrier) loop the last path alt route to this node Vector(-3491, 3520, 616) Vector(-3404, 3556, 616) Vector(-3224, 3704, 616) Vector(-3137, 3740, 616) Vector(-3044, 3752, 616) Vector(-2949, 3749, 616) Vector(-2858, 3725, 616) Vector(-2698, 3643, 616) Vector(-2630, 3624, 616) Vector(-2560, 3616, 616) //last node of slalom 1 Vector(-1640, 3616, 520) //first node of curve 3 Vector(-1547, 3604, 520) Vector(-1460, 3568, 520) Vector(-1386, 3511, 520) Vector(-1328, 3436, 520) Vector(-1292, 3349, 520) Vector(-1280, 3256, 520) //last node of curve 3 Vector(-1280, 3200, 520) //first node of curve 4 Vector(-1297, 3025, 520) Vector(-1348, 2857, 520) Vector(-1431, 2702, 520) Vector(-1543, 2566, 520) Vector(-1678, 2455, 520) Vector(-1833, 2372, 520) Vector(-2001, 2321, 520) Vector(-2176, 2304, 520) //last node of curve 4 Vector(-3184, 2304, 520) //first node of slalom 2 (next to rocket) Vector(-3319, 2286, 520) Vector(-3444, 2234, 520) Vector(-3552, 2152, 520) Vector(-3643, 2035, 520) Vector(-3739, 1939, 520) Vector(-3857, 1872, 520) Vector(-3988, 1836, 520) //last node of slalom 2 Vector(-4172, 1832, 520) //first node of curve 5 Vector(-4307, 1850, 520) Vector(-4432, 1902, 520) Vector(-4540, 1984, 520) Vector(-4622, 2092, 520) Vector(-4674, 2217, 520) Vector(-4692, 2352, 520) //last node of curve 5 Vector(-4692, 2988, 520) //first node of curve 6 Vector(-4674, 3123, 520) Vector(-4622, 3248, 520) Vector(-4540, 3356, 520) Vector(-4432, 3438, 520) Vector(-4307, 3490, 520) Vector(-4172, 3508, 520) //last node of curve 6 Vector(-3584, 3508, 616) ] }) TankExt.StartingPathNames([ `tank_loop_1` ])" } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } SpawnTemplate spybasemusicawesome WaveSpawn { Name Main1 TotalCurrency 50 TotalCount 7 MaxActive 5 SpawnCount 1 Where spawnbot Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 7 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Soldier_Extended_Concheror } } WaveSpawn { Name Main1b TotalCurrency 25 TotalCount 15 MaxActive 8 SpawnCount 3 Where spawnbot Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 5 RandomSpawn 1 TFBot { Class Heavyweapons Skill Hard Attributes "AlwaysCrit" } } WaveSpawn { Name Main1b TotalCurrency 50 TotalCount 18 MaxActive 12 SpawnCount 2 Where spawnbot Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 2 RandomSpawn 1 Squad { TFBot { Template T_TFBot_Soldier_Extended_Concheror ClassIcon banner_buff_conch } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner ClassIcon banner_buff_conch } } } WaveSpawn { WaitForAllDead Main1 WaitForAllSpawned Main1b Name Main2 TotalCurrency 50 TotalCount 6 MaxActive 6 SpawnCount 2 Where spawnbot WaitBeforeStarting 0 WaitBetweenSpawns 12 RandomSpawn 1 TFBot { Template GiantStickyDemo } } WaveSpawn { WaitForAllDead Main1 WaitForAllSpawned Main1b Name Main2b TotalCurrency 50 TotalCount 30 MaxActive 12 SpawnCount 3 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 3 RandomSpawn 1 TFBot { Template FamilyBusiness } } WaveSpawn { WaitForAllDead Main2 WaitForAllSpawned Main2b Name Main3Pre TotalCurrency 25 TotalCount 14 MaxActive 14 SpawnCount 2 Where spawnbot_left Where spawnbot Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 1 RandomSpawn 1 DoneOutput { Target combatwarning Action Show } TFBot { Class Scout Name "Scout" WeaponRestrictions PrimaryOnly Attributes "AlwaysCrit" } } WaveSpawn { WaitForAllDead Main3Pre Name CombatTank1 TotalCurrency 50 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 10 WaitBetweenSpawns 4 Tank { Health 22500 Speed 75 Skin 0 Name "combattank|rocketpod|rocketpod" //OPTIONS: rocketpod/rocketpod_homing/minigun/railgun StartingPathTrackNode "tank_loop_1" ClassIcon tank_small_turret //PLACEHOLDER ICON } } WaveSpawn { WaitForAllDead CombatTank1 Name CombatTank2 TotalCurrency 50 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 20 WaitBetweenSpawns 4 Tank { Health 22500 Speed 75 Skin 0 Name "combattank|rocketpod|rocketpod" //OPTIONS: rocketpod/rocketpod_homing/minigun/railgun StartingPathTrackNode "tank_loop_1" ClassIcon tank_small_turret //PLACEHOLDER ICON } } WaveSpawn { WaitForAllSpawned Main3Pre Name Main3 TotalCurrency 50 TotalCount 4 MaxActive 4 SpawnCount 2 Where spawnbot WaitBeforeStarting 0 WaitBetweenSpawns 22 RandomSpawn 1 TFBot { Template GiantHeavyDeflector } } WaveSpawn { WaitForAllSpawned Main3Pre Name Main3b TotalCurrency 50 TotalCount 26 MaxActive 14 SpawnCount 2 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 3 RandomSpawn 1 TFBot { Template T_TFBot_Demo_Burst } } WaveSpawn { WaitForAllDead Main3 WaitForAllSpawned Main3b Name Main4 TotalCurrency 50 TotalCount 7 MaxActive 5 SpawnCount 1 Where spawnbot WaitBeforeStarting 0 WaitBetweenSpawns 8 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Soldier_Spammer AddTemplate unstablecharge Item "The Buff Banner" ClassIcon soldier_spammer_buff CharacterAttributes { "increase buff duration" 9.0 } } } WaveSpawn { WaitForAllDead Main3 TotalCurrency 50 TotalCount 2 MaxActive 2 SpawnCount 1 Where spawnbot WaitBeforeStarting 10 WaitBetweenSpawns 30 Tank { Health 20000 Speed 75 Skin 0 Name "combattank|minigun|minigun" //OPTIONS: rocketpod/rocketpod_homing/minigun/railgun StartingPathTrackNode "tank_loop_1" ClassIcon tank_small_turret //PLACEHOLDER ICON } } WaveSpawn { WaitForAllDead Main3 WaitForAllSpawned Main3b Name Main4b TotalCurrency 50 TotalCount 32 MaxActive 9 SpawnCount 1 Where spawnbot Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 1.3 RandomSpawn 1 TFBot { Template T_TFBot_Scout_Bonk Attributes "AlwaysCrit" } } WaveSpawn { WaitForAllDead Main4 WaitForAllSpawned Main4b Name Finale1 TotalCurrency 50 TotalCount 2 MaxActive 2 SpawnCount 2 Where spawnbot WaitBeforeStarting 0 WaitBetweenSpawns 15 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Heavyweapons_BrassBeast AddTemplate unstablecharge ClassIcon heavy_brass_nys } } WaveSpawn { WaitForAllDead Main4 Name Finale1b TotalCurrency 50 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 0 WaitBetweenSpawns 15 RandomSpawn 1 Tank { Health 25000 Speed 75 Skin 0 Name "combattank|railgun|railgun" //OPTIONS: rocketpod/rocketpod_homing/minigun/railgun StartingPathTrackNode "tank_loop_1" ClassIcon tank_small_turret //PLACEHOLDER ICON } } WaveSpawn { WaitForAllDead Finale1b WaitForAllSpawned Finale1b Name Finale2b TotalCurrency 50 TotalCount 16 MaxActive 12 SpawnCount 2 Where spawnbot WaitBeforeStarting 0 WaitBetweenSpawns 4.5 RandomSpawn 1 Support 1 TFBot { Template DemoRapidMinigiant Attributes "AlwaysCrit" } } WaveSpawn { WaitForAllSpawned Finale1 Name Finale2 TotalCurrency 50 TotalCount 5 MaxActive 5 SpawnCount 5 Where spawnbot WaitBeforeStarting 10 WaitBetweenSpawns 15 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Scout_Fast AddTemplate unstablecharge } } WaveSpawn { WaitForAllSpawned Finale2 Name Finale3 TotalCurrency 50 TotalCount 10 MaxActive 6 SpawnCount 2 Where spawnbot WaitBeforeStarting 25 WaitBetweenSpawns 10 RandomSpawn 1 Squad { TFBot { Template SoldierGigaburst ClassIcon soldier_burstfire_hyper } TFBot { Template GiantKritzMedic Attributes "AlwaysCrit" //So braindead players actually register there are crits on wavebar } } } } }