#base robot_standard.pop #base robot_giant.pop #base robot_moonlight.pop WaveSchedule { StartingCurrency 400 RespawnWaveTime 1 FixedRespawnWaveTime No Advanced 1 NoRomevisionCosmetics 1 CanBotsAttackWhileInSpawnRoom No PointTemplates { fixthefuckingtrainspeed { path_track { "targetname" "path_trainStart03" "New Train Speed" 200 } path_track { "targetname" "path_trainStart02" "New Train Speed" 200 } path_track { "targetname" "path_trainStart01" "New Train Speed" 150 } } } Templates { T_TFBot_Giant_Huntsman { Name "Giant Bowman" Class Sniper ClassIcon sniper_bow Skill Expert Health 3000 Item "The Huntsman" Attributes MiniBoss Attributes IgnoreFlag Attributes SuppressFire MaxVisionRange 1500 UseMeleeThreatPrioritization 1 UseCustomModel models/bots/sniper_boss/bot_sniper_boss.mdl FOV 120 FireWeapon { Type Primary Delay 0.1 Duration 1.5 Cooldown 4.5 IfSeeTarget 1 IfLeftSpawn 1 } ItemAttributes { ItemName "The Huntsman" "fire rate bonus" 0 "dmg penalty vs players" 0.33 "dmg bonus vs buildings" 1.5 } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.35 "airblast vulnerability multiplier" 0.35 "airblast vertical vulnerability multiplier" 0.5 "override footstep sound set" 2 "increase player capture value" -1 } } } SpawnTemplate fixthefuckingtrainspeed Mission { Where spawnbot Objective DestroySentries InitialCooldown 30 CooldownTime 40 TFBot { Template T_TFBot_SentryBuster Attributes DisableDodge Attributes IgnoreEnemies Skill Expert CharacterAttributes { "head scale" 2.5 "torso scale" 0.3 "voice pitch scale" 2 "dmg penalty vs players" 0 } } } Mission { Where spawnbot_mission_sniper Objective Sniper BeginAtWave 3 RunForThisManyWaves 1 InitialCooldown 40 CooldownTime 70 DesiredCount 2 TFBot { Template T_TFBot_Sniper Skill Hard } } Mission { Where spawnbot_mission_spy Objective Spy BeginAtWave 2 RunForThisManyWaves 1 InitialCooldown 90 CooldownTime 60 DesiredCount 2 TFBot { Template T_TFBot_Spy } } Wave { StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger` ) " } InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_reset_relay`, `Trigger` ) EntFire(`tf_objective_resource`, `$SetClientProp$m_iszMvMPopfileName`, `Locomotive Express (EXP)`) " } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn //startacker says no touchy { Name "wave_1_dynamic_element" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target wave_start_events_1 Action Trigger } } WaveSpawn { Where spawnbot Name "Tutorial" TotalCount 2 MaxActive 2 SpawnCount 2 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 0 TFBot { Template T_TFBot_Giant_Scout Health 500 Skill Easy BehaviorModifiers Push Attributes IgnoreFlag MaxVisionRange 1 Tag bot_gatebot CharacterAttributes { "increase player capture value" 10 } } } WaveSpawn { Where spawnbot_left Name "Tutorial2" TotalCount 4 MaxActive 4 SpawnCount 4 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 0 TFBot { Template T_TFBot_Heavyweapons_Fist Health 250 Skill Easy BehaviorModifiers Push Attributes IgnoreFlag Tag bot_hoverbot CharacterAttributes { "increase player capture value" -1 } } } WaveSpawn { Name Annotation1 WaitBeforeStarting 0 FirstSpawnOutput { Target gamerules Action RunScriptCode Param " SendGlobalGameEvent(`show_annotation`, { text = `TUTORIAL` lifetime = 2.5 worldPosX = 1664 worldPosY = -1052 worldPosZ = 192 id = -1 play_sound = `misc/null.wav` show_distance = false show_effect = false visibilityBitfield = 0 }) " } } WaveSpawn { Name Annotation2 WaitBeforeStarting 7.5 FirstSpawnOutput { Target gamerules Action RunScriptCode Param " SendGlobalGameEvent(`show_annotation`, { text = `Bots will occupy the train to push it` lifetime = 4 worldPosX = 1664 worldPosY = -1052 worldPosZ = 192 id = -1 play_sound = `misc/null.wav` show_distance = false show_effect = false visibilityBitfield = 0 }) " } } WaveSpawn { Name Annotation3 WaitBeforeStarting 14.5 FirstSpawnOutput { Target gamerules Action RunScriptCode Param " SendGlobalGameEvent(`show_annotation`, { text = `There's also bots that will stand near the train to defend it` lifetime = 4 worldPosX = 1664 worldPosY = -1052 worldPosZ = 128 id = -1 play_sound = `misc/null.wav` show_distance = false show_effect = false visibilityBitfield = 0 }) " } } WaveSpawn { Name Annotation4 WaitForAllDead "Tutorial" WaitBeforeStarting 0 FirstSpawnOutput { Target gamerules Action RunScriptCode Param " SendGlobalGameEvent(`show_annotation`, { text = `The train will not back track and cannot be blocked` lifetime = 3 worldPosX = 1696 worldPosY = 395 worldPosZ = 37 id = -1 play_sound = `misc/null.wav` show_distance = false show_effect = false visibilityBitfield = 0 }) " } } WaveSpawn { Name Annotation5 WaitForAllDead "Tutorial" WaitBeforeStarting 3.5 FirstSpawnOutput { Target gamerules Action RunScriptCode Param " SendGlobalGameEvent(`show_annotation`, { text = `Robots win once the train reaches the hologram` lifetime = 3 worldPosX = 42 worldPosY = 3168 worldPosZ = 40 id = -1 play_sound = `misc/null.wav` show_distance = false show_effect = false visibilityBitfield = 0 }) " } } WaveSpawn { Name Annotation6 WaitForAllDead "Tutorial" WaitBeforeStarting 7 FirstSpawnWarningSound mvm/mvm_warning.wav FirstSpawnOutput { Target gamerules Action RunScriptCode Param " SendGlobalGameEvent(`show_annotation`, { text = `Good Luck!` lifetime = 2.5 worldPosX = 1728 worldPosY = 256 worldPosZ = 64 id = -1 play_sound = `misc/null.wav` show_distance = false show_effect = false visibilityBitfield = 0 }) " } } WaveSpawn { Where spawnbot_left Name "BigBot1A" TotalCount 6 MaxActive 6 SpawnCount 3 WaitForAllDead "Annotation6" WaitBetweenSpawns 26 WaitBeforeStarting 7 TotalCurrency 200 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFBot_Giant_Soldier_Crit Attributes IgnoreFlag BehaviorModifiers Push Tag bot_hoverbot Tag bot_giant } TFBot { Template T_TFBot_Sniper_Huntsman_Spammer Attributes IgnoreFlag BehaviorModifiers Push ClassIcon sniper_bow_multi Tag bot_hoverbot Tag bot_giant } TFBot { Template T_TFBot_Sniper_Huntsman_Spammer Attributes IgnoreFlag BehaviorModifiers Push ClassIcon sniper_bow_multi Tag bot_hoverbot Tag bot_giant } } } WaveSpawn { Where spawnbot Name "SmallBot1A" TotalCount 18 MaxActive 6 SpawnCount 2 WaitForAllDead "Annotation6" WaitBetweenSpawns 4.5 WaitBeforeStarting 7 TotalCurrency 100 TFBot { Template T_TFBot_Pyro_Flaregun Attributes IgnoreFlag BehaviorModifiers Push Skill Normal Tag nav_prefer_gate1_flank Tag bot_gatebot } } WaveSpawn { Where spawnbot_right Name "BigBot1B" TotalCount 2 MaxActive 2 SpawnCount 1 WaitForAllDead "BigBot1A" WaitBetweenSpawns 26 WaitBeforeStarting 2 TotalCurrency 200 TFBot { Template T_TFBot_Giant_Huntsman Attributes IgnoreFlag BehaviorModifiers Push Tag bot_hoverbot Tag bot_giant } } WaveSpawn { Where spawnbot Where spawnbot_right Where spawnbot_left Name "SmallBot1B" TotalCount 18 MaxActive 6 SpawnCount 3 WaitForAllDead "BigBot1A" WaitBetweenSpawns 0 WaitBeforeStarting 3 TotalCurrency 150 RandomChoice { TFBot { Class Soldier BehaviorModifiers Push Attributes IgnoreFlag Skill Normal Tag nav_prefer_gate1_flank Tag bot_gatebot } TFBot { Class Soldier BehaviorModifiers Push Attributes IgnoreFlag Skill Normal Tag nav_prefer_gate1_flank Tag bot_hoverbot } } } WaveSpawn { Where spawnbot Where spawnbot_left Where spawnbot_right Name "BigBot1B" TotalCount 100 MaxActive 5 SpawnCount 3 WaitForAllDead "Tutorial" Support 1 WaitBeforeStarting 20 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Scout_Melee Skill Normal ClassIcon scout_bat_nys Action Mobber BehaviorModifiers Push Attributes IgnoreFlag CharacterAttributes { "increase player capture value" -2 } } } } }