// mvm_metro_rc3 Extra mission: Jack5 and DoMess' Single Player (SP) // Version 2 // Authors: DoMess (concept), Jack5 (programming and testing) // Custom class icons from https://novus.titan.tf/tf/materials/hud/ // Difficulty: Single Player // ---------------------------------------------------------------------- #base robot_giant.pop WaveSchedule { StartingCurrency 600 RespawnWaveTime 0 FixedRespawnWaveTime Yes CanBotsAttackWhileInSpawnRoom No Advanced 1 // Required to display beside other difficulties. Templates { T_MetroSP_ScoutSandman { Name "Sandman Scout" ClassIcon scout_stun Class Scout Skill Hard Health 75 // Reduced from 110 Item "The Sandman" Item "Batter's Helmet" WeaponRestrictions MeleeOnly ItemAttributes { ItemName "The Sandman" "move speed penalty" 1.25 // 25% slower move speed } } T_MetroSP_SoldierTouhou { Name "Bullet Hell Soldier" ClassIcon soldier_spammer Class Soldier Skill Expert Health 90 // Reduced from 200 WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "projectile speed increased" 0.5 // Travels 50% slower "fire rate bonus" 0.5 // Unknown firing speed increase "faster reload rate" 0 // Inf% faster reload speed "move speed penalty" 1.25 // 25% slower move speed "blast radius decreased" 0.25 // 25% explosion radius decrease } } T_MetroSP_SoldierTouhouBackup { Name "Backup Hell Soldier" ClassIcon soldier_buff_infinite // Custom class icon Class Soldier Skill Expert Health 90 // Reduced from 200 (v2) CharacterAttributes { "increase buff duration" 100 // Longer buff duration (v2) } Item "The Bonedolier" Item "The Battalion's Backup" Attributes HoldFireUntilFullReload Attributes SpawnWithFullCharge ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "projectile speed increased" 0.5 // Travels 50% slower (v2) "fire rate bonus" 0.5 // Unknown firing speed increase "faster reload rate" 0 // Inf% faster reload speed "move speed penalty" 1.25 // 25% slower move speed "blast radius decreased" 0.25 // 25% explosion radius decrease } } T_MetroSP_MedicQuickFix { Name "Quick-Fix Medic" ClassIcon medic_quickfix // Custom class icon Class Medic Skill Normal Health 90 // Reduced from 150 Item "The Quick-Fix" WeaponRestrictions SecondaryOnly ItemAttributes { ItemName "The Quick-Fix" "ubercharge rate bonus" 0 // -100% charge rate (v2) } } T_MetroSP_Sniper { Class Sniper Skill Expert WeaponRestrictions PrimaryOnly MaxVisionRange 5000 ItemAttributes { ItemName "TF_WEAPON_SNIPERRIFLE" "sniper charge per sec" 0 // -100% charge rate (v2) "damage penalty" 0.2 // 20% damage penalty (v2) } } T_MetroSP_PyroFireAxe { Name "Igniting Pyro" ClassIcon pyro_volcano // Custom class icon Class Pyro Skill Hard Health 60 // Reduced from 175 Item "Firewall Helmet" Item "Sharpened Volcano Fragment" WeaponRestrictions MeleeOnly ItemAttributes { ItemName "Sharpened Volcano Fragment" "set damagetype ignite" 1 "move speed bonus" 1.3 // 30% faster move speed } } T_MetroSP_ScoutFireStick { Name "Sun-on-a-Stick Scout" ClassIcon scout_sunstick // Custom class icon Class Scout Skill Hard Health 100 // Reduced from 125 Item "Sun-on-a-Stick" WeaponRestrictions MeleeOnly ItemAttributes { ItemName "Sun-on-a-Stick" "move speed penalty" 1.25 // 25% slower move speed } } T_MetroSP_Scout { Class Scout Skill Normal } T_MetroSP_HeavyShotgun { Name "Shotgun Heavy" ClassIcon heavy_shotgun Class Heavy Skill Normal Health 150 // Reduced from 300 Item "Starboard Crusader" WeaponRestrictions SecondaryOnly Attributes HoldFireUntilFullReload ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_HWG" "faster reload rate" 0 // Inf% faster reload speed "damage penalty" 0.2 // 20% damage penalty } } T_MetroSP_HeavyShotgunBoss { Name "Do-Messy Heavy" ClassIcon heavy_shotgun Class Heavy Skill Expert Health 6000 Scale 1.9 CharacterAttributes { "move speed bonus" 0.5 // 50% move speed increase "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } Item "The Bunsen Brave" WeaponRestrictions SecondaryOnly Attributes HoldFireUntilFullReload Attributes MiniBoss Attributes UseBossHealthBar ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_HWG" "fire rate bonus" 0.85 // 15% faster fire rate "faster reload rate" 0 // Inf% faster reload speed } } T_MetroSP_HeavyMittens { Name "Heavy Mittens" ClassIcon heavy_mittens Class Heavy Skill Normal Health 60 Item "Point And Shoot" Item "The All-Father" Item "The Holiday Punch" WeaponRestrictions MeleeOnly Attributes AlwaysCrit ItemAttributes { ItemName "The Holiday Punch" "add jingle to footsteps" 1 } } } Mission { // Sentry Buster Objective DestroySentries InitialCooldown 15 Where spawnbot_rand BeginAtWave 1 RunForThisManyWaves 7 CooldownTime 45 TFBot { Template T_TFBot_SentryBuster } } // ---------------------------------------------------------------------- // Wave 1 ($600 + $700 (this wave) + $100 (bonus) = $1400) // Sandman Scouts, Bullet Hell Soldiers Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } Checkpoint Yes WaveSpawn { Name "wave1-group1" TotalCount 15 SpawnCount 3 MaxActive 4 WaitBetweenSpawns 12 TotalCurrency 460 Where spawnbot_left Squad { TFBot { Template T_MetroSP_ScoutSandman } TFBot { Template T_MetroSP_ScoutSandman } TFBot { Template T_MetroSP_ScoutSandman } } } WaveSpawn { Name "wave1-group2" TotalCount 8 SpawnCount 2 MaxActive 3 WaitBeforeStarting 14 WaitBetweenSpawns 12 TotalCurrency 240 Where spawnbot_right Squad { TFBot { Template T_MetroSP_SoldierTouhou } TFBot { Template T_MetroSP_SoldierTouhou } } } } // ---------------------------------------------------------------------- // Wave 2 ($1400 + $900 (this wave) + $100 (bonus) = $2400) // Bullet Hell Soldiers + Quick-Fix Medics // Support: Snipers Mission { Objective Sniper InitialCooldown 10 Where spawnbot_right BeginAtWave 2 RunForThisManyWaves 1 CooldownTime 20 DesiredCount 1 TFBot { Template T_MetroSP_Sniper } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } Checkpoint Yes WaveSpawn { Name "wave2-group1" TotalCount 9 SpawnCount 3 MaxActive 4 WaitBetweenSpawns 30 TotalCurrency 540 Where spawnbot_right Squad { TFBot { Template T_MetroSP_SoldierTouhou } TFBot { Template T_MetroSP_SoldierTouhou } TFBot { Template T_MetroSP_MedicQuickFix } } } WaveSpawn { Name "wave2-group2" TotalCount 6 SpawnCount 3 MaxActive 4 WaitBeforeStarting 15 WaitBetweenSpawns 30 TotalCurrency 360 Where spawnbot_left Squad { TFBot { Template T_MetroSP_SoldierTouhou } TFBot { Template T_MetroSP_SoldierTouhou } TFBot { Template T_MetroSP_MedicQuickFix } } } } // ---------------------------------------------------------------------- // Wave 3 ($2400 + $900 (this wave) + $100 (bonus) = $3400) // Igniting Pyros + Sun-on-a-Stick Scouts // Support: Snipers, Flanking Sandman Scouts Mission { Objective Sniper InitialCooldown 3 Where spawnbot_left BeginAtWave 3 RunForThisManyWaves 1 CooldownTime 24 DesiredCount 2 TFBot { Template T_MetroSP_Sniper } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } Checkpoint Yes WaveSpawn { Name "wave3-group1" TotalCount 12 SpawnCount 3 MaxActive 4 WaitBetweenSpawns 15 TotalCurrency 450 Where spawnbot_left Squad { TFBot { Template T_MetroSP_PyroFireAxe } TFBot { Template T_MetroSP_PyroFireAxe } TFBot { Template T_MetroSP_ScoutFireStick } } } WaveSpawn { Name "wave3-group2" TotalCount 12 SpawnCount 3 MaxActive 4 WaitBeforeStarting 1 WaitBetweenSpawns 15 TotalCurrency 450 Where spawnbot_right Squad { TFBot { Template T_MetroSP_PyroFireAxe } TFBot { Template T_MetroSP_PyroFireAxe } TFBot { Template T_MetroSP_ScoutFireStick } } } WaveSpawn { Name "wave3-support" Support 1 TotalCount 999 SpawnCount 2 MaxActive 3 WaitBeforeStarting 23 WaitBetweenSpawns 15 TotalCurrency 0 Where spawnbot_right RandomChoice { TFBot { Template T_MetroSP_ScoutSandman Tag flankbot } TFBot { Template T_MetroSP_ScoutSandman Tag flankbot_2 } TFBot { Template T_MetroSP_ScoutSandman Tag flankbot_3 } } } } // ---------------------------------------------------------------------- // Wave 4 ($3400 + $1100 (this wave) + $100 (bonus) = $4600) // Scouts, 6000 HP Tank // Support: Igniting Pyros + Quick-Fix Medics + Sun-on-a-Stick Scouts Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } Checkpoint Yes WaveSpawn { Name "wave4-group1" TotalCount 6 SpawnCount 2 MaxActive 3 WaitBetweenSpawns 20 TotalCurrency 370 Where spawnbot_right TFBot { Template T_MetroSP_Scout } } WaveSpawn { Name "wave4-group2" TotalCount 6 SpawnCount 2 MaxActive 3 WaitBeforeStarting 10 WaitBetweenSpawns 20 TotalCurrency 370 Where spawnbot_left TFBot { Template T_MetroSP_Scout } } WaveSpawn { Name "wave4-tankboss" TotalCount 1 TotalCurrency 360 WaitForAllSpawned "wave4-group2" FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 6000 Speed 60 Name "tank_w1_01" // Keeping original name for logic's sake StartingPathTrackNode "boss_path_a1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { // v2: Removed flanking ability of Sun-on-a-Stick Scouts and added squad formation size Name "wave4-support" Support 1 TotalCount 999 SpawnCount 6 MaxActive 8 WaitForAllSpawned "wave4-group2" WaitBeforeStarting 8 WaitBetweenSpawns 30 TotalCurrency 0 Where spawnbot_right FormationSize 1 // Forces robots to stay together Squad { TFBot { Template T_MetroSP_PyroFireAxe } TFBot { Template T_MetroSP_MedicQuickFix } TFBot { Template T_MetroSP_ScoutFireStick } } } } // ---------------------------------------------------------------------- // Wave 5 ($4600 + $1100 (this wave) + $100 (bonus) = $5800) // Shotgun Heavies, Bullet Hell Soldiers + Quick-Fix Medics // Support: Snipers, Flanking Heavy Mittens, Flanking Sandman Scouts Mission { Objective Sniper InitialCooldown 3 Where spawnbot_right BeginAtWave 5 RunForThisManyWaves 1 CooldownTime 45 DesiredCount 2 TFBot { Template T_MetroSP_Sniper } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } Checkpoint Yes WaveSpawn { Name "wave5-group1" TotalCount 16 SpawnCount 2 MaxActive 2 WaitBetweenSpawns 15 TotalCurrency 570 Where spawnbot_right TFBot { Template T_MetroSP_HeavyShotgun } } WaveSpawn { Name "wave5-group2" TotalCount 15 SpawnCount 3 MaxActive 4 WaitBeforeStarting 1 WaitBetweenSpawns 30 TotalCurrency 530 Where spawnbot_left Squad { TFBot { Template T_MetroSP_SoldierTouhou } TFBot { Template T_MetroSP_SoldierTouhou } TFBot { Template T_MetroSP_MedicQuickFix } } } WaveSpawn { Name "wave5-support1" Support 1 TotalCount 999 SpawnCount 2 MaxActive 3 WaitBeforeStarting 65 WaitBetweenSpawns 15 TotalCurrency 0 Where spawnbot_right RandomChoice { TFBot { Template T_MetroSP_HeavyMittens Tag flankbot } TFBot { Template T_MetroSP_HeavyMittens Tag flankbot_2 } TFBot { Template T_MetroSP_HeavyMittens Tag flankbot_3 } } } WaveSpawn { Name "wave5-support2" Support 1 TotalCount 999 SpawnCount 2 MaxActive 3 WaitBeforeStarting 80 WaitBetweenSpawns 15 TotalCurrency 0 Where spawnbot_left RandomChoice { TFBot { Template T_MetroSP_ScoutSandman Tag flankbot } TFBot { Template T_MetroSP_ScoutSandman Tag flankbot_2 } TFBot { Template T_MetroSP_ScoutSandman Tag flankbot_3 } } } } // ---------------------------------------------------------------------- // Wave 6 ($5800 + $1100 (this wave) + $100 (bonus) = $7000) // Shotgun Heavies + Backup Hell Soldiers, 12000 HP Mecha Tank // Support: Snipers, Igniting Pyros + Sun-on-a-Stick Scouts, Flanking Heavy Mittens Mission { Objective Sniper InitialCooldown 3 Where spawnbot_right BeginAtWave 6 RunForThisManyWaves 1 CooldownTime 45 DesiredCount 2 TFBot { Template T_MetroSP_Sniper } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } Checkpoint Yes WaveSpawn { Name "wave6-group" TotalCount 20 SpawnCount 4 MaxActive 5 WaitBetweenSpawns 20 TotalCurrency 550 Where spawnbot_left Squad { TFBot { Template T_MetroSP_HeavyShotgun } TFBot { Template T_MetroSP_SoldierTouhouBackup } } } WaveSpawn { Name "wave6-tankboss" TotalCount 1 TotalCurrency 550 WaitForAllSpawned "wave6-group" FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 12000 Speed 50 Skin 1 // Mecha Tank Name "tank_w1_01" // Keeping original name for logic's sake StartingPathTrackNode "boss_path_a1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { // v2: Added squad formation size Name "wave6-support1" Support 1 TotalCount 999 SpawnCount 3 MaxActive 4 WaitBeforeStarting 90 WaitBetweenSpawns 40 TotalCurrency 0 Where spawnbot_left FormationSize 1 // Forces robots to stay together Squad { TFBot { Template T_MetroSP_PyroFireAxe } TFBot { Template T_MetroSP_PyroFireAxe } TFBot { Template T_MetroSP_ScoutFireStick } } } WaveSpawn { Name "wave6-support2" Support 1 TotalCount 999 SpawnCount 2 MaxActive 3 WaitBeforeStarting 110 WaitBetweenSpawns 40 TotalCurrency 0 Where spawnbot_right RandomChoice { TFBot { Template T_MetroSP_HeavyMittens Tag flankbot } TFBot { Template T_MetroSP_HeavyMittens Tag flankbot_2 } TFBot { Template T_MetroSP_HeavyMittens Tag flankbot_3 } } } } // ---------------------------------------------------------------------- // Wave 7 ($7000 + $3000 (this wave) = $10000) // Do-Messy Heavy (Boss) // Support: Quick-Fix Medics, Scouts, Flanking Sandman Scouts, Backup Hell Soldiers Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } Checkpoint Yes WaveSpawn { Name "wave7-boss" TotalCount 1 SpawnCount 1 MaxActive 1 TotalCurrency 3000 Where spawnbot_right TFBot { Template T_MetroSP_HeavyShotgunBoss } } WaveSpawn { Name "wave7-support1" Support 1 TotalCount 999 SpawnCount 1 MaxActive 5 WaitBeforeStarting 1 WaitBetweenSpawns 4 TotalCurrency 0 Where spawnbot_right TFBot { Template T_MetroSP_MedicQuickFix } } WaveSpawn { Name "wave7-support2" Support 1 TotalCount 999 SpawnCount 2 MaxActive 3 WaitBeforeStarting 10 WaitBetweenSpawns 30 TotalCurrency 0 Where spawnbot_left TFBot { Template T_MetroSP_Scout } } WaveSpawn { Name "wave7-support3" Support 1 TotalCount 999 SpawnCount 2 MaxActive 3 WaitBeforeStarting 20 WaitBetweenSpawns 30 TotalCurrency 0 Where spawnbot_right RandomChoice { TFBot { Template T_MetroSP_ScoutSandman Tag flankbot } TFBot { Template T_MetroSP_ScoutSandman Tag flankbot_2 } TFBot { Template T_MetroSP_ScoutSandman Tag flankbot_3 } } } WaveSpawn { Name "wave7-support4" Support 1 TotalCount 999 SpawnCount 1 MaxActive 2 WaitBeforeStarting 30 WaitBetweenSpawns 30 TotalCurrency 0 Where spawnbot_left TFBot { Template T_MetroSP_SoldierTouhouBackup } } } }