// "Oz Terror" for Charon, an advanced mission by Lobotomy // Charon by Sntr // My thanks to: // Sntr, for making the map and entertaining my constant nagging of the map; // the folks who made PopExt, for killing the need to reinvent the wheel; // Seelpit, for her SINS script; // fellen, Mince, ocet247, ptyx, lite, ficool2 and a bunch of other folks that I can't remember from the top of my head, // for their help in scripting - without them the gimmicks in this mission would be impossible to realise; // Seelpit again, for making wavebar icons; // Revan, for making vscode-vdf for the entirety of the development of this mission (sponsored segment); // and to the good people who joined tests and gave valuable fb - you know who you are. // I'm going to make this mission pure vscript because why not // No wait, pure vscript means that this gimmicky ass mission is workshop compatible!! // (No randomguy, I'm balls deep into popext I can't go back) // ===== MAP INFO ===== // initB -- start with both gates capped // initA -- start with B capped // initMain -- start with RED owning both gates // -- the above are used with InitWaveOutput! -- // call_gate_uncap -- When triggered, cancels on-going gate cap stuff and gives RED the latest capture back. // Doesn't do anything if RED holds all gates when called // Lobo's tests: will always force bombpath_path1 when called from initB // spawnbot_main0/1/2 -- main spawn // spawnbot_flank0/1/2 -- side spawn // spawnbot_scattered0/1/2 -- either one of the two // 0/1/2 -- front / A / B #base robot_standard.pop #base robot_giant.pop #base robot_gatebot.pop LobotomySchedule { StartingCurrency 2000 RespawnWaveTime 3 FixedRespawnWaveTime Yes CanBotsAttackWhileInSpawnRoom No Advanced 1 Templates { T_TFBot_Lobo_Charon_Boss1 { Class Demoman Skill Expert Name "Carpet Bomber" ClassIcon bot_norm_lite Health 15000 Scale 1.9 Item "Scotch Bonnet" Item "The Iron Bomber" Attributes MiniBoss Attributes UseBossHealthBar Attributes HoldFireUntilFullReload WeaponRestrictions PrimaryOnly Tag bot_giant Tag lobo_boss1 ItemAttributes { ItemName "The Iron Bomber" "damage bonus" 1.15 "faster reload rate" 0.27 "fire rate bonus" 0.07 "clip size upgrade atomic" 21 "projectile spread angle penalty" 5 "fuse bonus" 1.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.1 } } T_TFBot_Lobo_Charon_Boss2 { Class Soldier Skill Expert Name "Divider" ClassIcon bot_norm_lite Health 27000 Scale 1.9 Item "The Hardium Helm" Item "The Jupiter Jumpers" Item "The Space Bracers" Attributes MiniBoss Attributes UseBossHealthBar Attributes HoldFireUntilFullReload Tag bot_giant Tag lobo_boss2 Tag "popext_rocketcustomtrail{ name = `eyeboss_projectile` }" ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "clip size upgrade atomic" 26.0 "faster reload rate" 0.22 "fire rate bonus" 0.2 } CharacterAttributes { "move speed bonus" 0.45 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.1 } } T_TFBot_Lobo_Charon_Boss2A { Class Soldier Skill Expert Name "Blast Component" ClassIcon soldier_libertylauncher_giant Health 4500 Item "The Liberty Launcher" Item "The Hardium Helm" Attributes MiniBoss Attributes UseBossHealthBar Attributes HoldFireUntilFullReload Tag bot_giant Tag lobo_boss2components ItemAttributes { ItemName "The Liberty Launcher" "damage causes airblast" 1 "damage bonus" 0.75 "fire rate bonus" 0.25 "clip size upgrade atomic" 5 "faster reload rate" 0.2 "Blast radius decreased" 1.2 "projectile spread angle penalty" 4 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.1 "healing received bonus" 3 } } T_TFBot_Lobo_Charon_Boss2B { Class Soldier Skill Expert Name "Beam Component" ClassIcon soldier_bison_homing_healspell Health 4500 Item "The Righteous Bison" Item "The Space Bracers" Attributes MiniBoss Attributes UseBossHealthBar WeaponRestrictions SecondaryOnly Tag bot_giant Tag lobo_boss2components Tag lobo_boss2b Tag "popext_spell{ type = SPELL_OVERHEAL, cooldown = 7.5 }" ItemAttributes { ItemName "The Righteous Bison" "fire rate bonus" 0.7 "faster reload rate" -0.8 "dmg bonus vs buildings" 2 "set item tint RGB" 6238390 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.1 "healing received bonus" 3 } } T_TFBot_Lobo_Charon_Boss2C { Class Soldier Skill Expert Name "Blunt Component" ClassIcon soldier_escape_giant Health 4500 Item "The Escape Plan" Item "The Jupiter Jumpers" Attributes MiniBoss Attributes UseBossHealthBar WeaponRestrictions MeleeOnly Tag bot_giant Tag lobo_boss2components Tag lobo_boss2teleportfirst CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.1 } } T_TFBot_Lobo_Charon_Boss3 { Class Heavy Skill Expert Name "Nexus" ClassIcon bot_norm_lite Health 54000 Scale 1.9 Item "The Purity Fist" Item "The Bunsen Brave" Item "The Titanium Towel" Attributes MiniBoss Attributes UseBossHealthBar Tag bot_giant Tag lobo_boss3 ItemAttributes { ItemName "TF_WEAPON_MINIGUN" // these two together makes minigun fires bison proj properly "override projectile type" 13 "energy weapon penetration" 1 "damage bonus" 1.5 "attach particle effect" 704 // energy orb "dmg bonus vs buildings" 3 } CharacterAttributes { "move speed bonus" 0.45 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.1 "healing received bonus" 8 // amputator effect is ~25 hp/s, make it ~200, around 2x rate of qf w/ uber } } T_TFBot_Scout_Batsaber { Class Scout Skill Hard WeaponRestrictions MeleeOnly Name "Batsaber Scout" ClassIcon scout_capper_saber_litenys Item "Batsaber" Item "Cadet Visor" } T_TFBot_Giant_Engineer_Pomson_Spammer { Class Scout // xd Name "Giant Rapid Pomson Engie" ClassIcon engineer_pomson_v2_spammer_giant Skill Expert Health 3000 MaxVisionRange 1200 WeaponRestrictions PrimaryOnly Attributes MiniBoss Tag bot_giant Tag "popext_giveweapon{ weapon = `tf_weapon_drg_pomson`, id = ID_POMSON_6000, attr = { `fire rate bonus`: 0.55, `damage penalty`: 0.8, `faster reload rate`: -0.8 } }" Tag "popext_usecustommodel{ model = `models/bots/engineer/bot_engineer.mdl` }" Item "The Brainiac Hairpiece" Item "The Brainiac Goggles" CharacterAttributes { "move speed bonus" 0.3 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 5 "voice pitch scale" 0 // disables voice responses (guys this is totally an engi) } } T_TFBot_Pyro_Nostromo { Class Pyro ClassIcon pyro_phlog_v2 Skill Easy WeaponRestrictions PrimaryOnly Item "The Nostromo Napalmer" Item "Jupiter Jetpack" } T_TFBot_Medic_Kritz { Class Medic Name "Kritzkrieg Medic" ClassIcon medic_trio_seel Skill Normal Attributes SpawnWithFullCharge Item "The Kritzkrieg" ItemAttributes { ItemName "The Kritzkrieg" "uber duration bonus" 999 "bot medic uber health threshold" 151 // fuck it, *pops on spawn* } ItemAttributes { ItemName "TF_WEAPON_SYRINGEGUN_MEDIC" "damage penalty" 0.1 } CharacterAttributes { "heal rate bonus" 5 } } T_TFGateBot_Minigiant_Scout { Class Scout Name "Minigiant Scout" ClassIcon scout_giant Health 1600 Scale 1.58 EventChangeAttributes { Default { BehaviorModifiers Push Attributes IgnoreFlag Tag nav_prefer_gate1_flank Tag bot_gatebot Item "MvM GateBot Light Scout" Skill Normal WeaponRestrictions PrimaryOnly Attributes MiniBoss Tag bot_giant Item "MNC Mascot Outfit" CharacterAttributes { "move speed bonus" 0.8 "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "override footstep sound set" 5 } } RevertGateBotsBehavior { Item "MvM GateBot Light Scout" ItemAttributes { ItemName "MvM GateBot Light Scout" "item style override" 1 } Skill Normal WeaponRestrictions PrimaryOnly Attributes MiniBoss Tag bot_giant Item "MNC Mascot Outfit" CharacterAttributes { "move speed bonus" 0.8 "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "override footstep sound set" 5 } } } } T_TFGateBot_Minigiant_Pyro_Nostromo { Class Pyro Name "Minigiant Pyro" ClassIcon pyro_phlog_v2_giant Health 2200 Scale 1.58 EventChangeAttributes { Default { BehaviorModifiers Push Attributes IgnoreFlag Tag nav_prefer_gate1_flank Tag bot_gatebot Item "MvM GateBot Light Pyro" Skill Expert WeaponRestrictions PrimaryOnly Item "The Nostromo Napalmer" Item "Jupiter Jetpack" Attributes MiniBoss Attributes AlwaysCrit Tag bot_giant ItemAttributes { ItemName "The Nostromo Napalmer" "airblast disabled" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 6 } } RevertGateBotsBehavior { Item "MvM GateBot Light Pyro" ItemAttributes { ItemName "MvM GateBot Light Pyro" "item style override" 1 } Skill Expert WeaponRestrictions PrimaryOnly Item "The Nostromo Napalmer" Item "Jupiter Jetpack" Attributes MiniBoss Attributes AlwaysCrit Tag bot_giant ItemAttributes { ItemName "The Nostromo Napalmer" "airblast disabled" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 6 } } } } T_TFBot_Giant_Engineer_Widowmaker_Spammer { Class Scout // xd Name "Giant Rapid Widowmaker Engie" ClassIcon engineer_pomson_v2_spammer_giant Health 3000 Skill Hard MaxVisionRange 1200 Attributes MiniBoss WeaponRestrictions PrimaryOnly Tag bot_giant Tag "popext_giveweapon{ weapon = `tf_weapon_shotgun_primary`, id = ID_WIDOWMAKER, attr = { `fire rate bonus`: 0.6, `bullets per shot bonus`: 2, `damage penalty`: 0.5 } }" Tag "popext_usecustommodel{ model = `models/bots/engineer/bot_engineer.mdl` }" Item "The Brainiac Hairpiece" Item "The Brainiac Goggles" CharacterAttributes { "move speed bonus" 0.4 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 6 "voice pitch scale" 0 } } T_TFGateBot_Minigiant_Engineer_Widowmaker_Spammer { Class Scout Name "Minigiant Rapid Widowmaker Engie" ClassIcon engineer_pomson_v2_spammer_giant Health 2200 Scale 1.58 EventChangeAttributes { Default { BehaviorModifiers Push Attributes IgnoreFlag Tag nav_prefer_gate1_flank Tag bot_gatebot Item "MvM GateBot Light Engineer" Skill Hard MaxVisionRange 1200 Attributes MiniBoss WeaponRestrictions PrimaryOnly Tag bot_giant Tag "popext_giveweapon{ weapon = `tf_weapon_shotgun_primary`, id = ID_WIDOWMAKER, attr = { `fire rate bonus`: 0.6, `bullets per shot bonus`: 2, `damage penalty`: 0.5 } }" Tag "popext_usecustommodel{ model = `models/bots/engineer/bot_engineer.mdl` }" Item "The Brainiac Hairpiece" Item "The Brainiac Goggles" CharacterAttributes { "move speed bonus" 0.4 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 6 "voice pitch scale" 0 } } RevertGateBotsBehavior { Item "MvM GateBot Light Engineer" ItemAttributes { ItemName "MvM GateBot Light Engineer" "item style override" 1 } Skill Hard MaxVisionRange 1200 Attributes MiniBoss WeaponRestrictions PrimaryOnly Tag bot_giant Tag "popext_giveweapon{ weapon = `tf_weapon_shotgun_primary`, id = ID_WIDOWMAKER, attr = { `fire rate bonus`: 0.6, `bullets per shot bonus`: 2, `damage penalty`: 0.5 } }" Tag "popext_usecustommodel{ model = `models/bots/engineer/bot_engineer.mdl` }" Item "The Brainiac Hairpiece" Item "The Brainiac Goggles" CharacterAttributes { "move speed bonus" 0.4 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 6 "voice pitch scale" 0 } } } } T_TFGateBot_Minigiant_Soldier_Bison_Spammer { Class Soldier Name "Minigiant Rapid Bison Soldier" ClassIcon soldier_bison_spammer_giant Health 2200 Scale 1.58 EventChangeAttributes { Default { BehaviorModifiers Push Attributes IgnoreFlag Tag nav_prefer_gate1_flank Tag bot_gatebot Item "MvM GateBot Light Soldier" Skill Expert Item "The Righteous Bison" Item "Lord Cockswain's Novelty Mutton Chops and Pipe" Attributes MiniBoss WeaponRestrictions SecondaryOnly Tag bot_giant ItemAttributes { ItemName "The Righteous Bison" "fire rate bonus" 0.3 "faster reload rate" -0.8 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } } RevertGateBotsBehavior { Item "MvM GateBot Light Soldier" ItemAttributes { ItemName "MvM GateBot Light Soldier" "item style override" 1 } Skill Expert Item "The Righteous Bison" Item "Lord Cockswain's Novelty Mutton Chops and Pipe" Attributes MiniBoss WeaponRestrictions SecondaryOnly Tag bot_giant ItemAttributes { ItemName "The Righteous Bison" "fire rate bonus" 0.3 "faster reload rate" -0.8 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } } } } T_TFBot_Giant_Soldier_Bison_Spammer { Class Soldier Name "Giant Rapid Bison Soldier" Health 3000 ClassIcon soldier_bison_spammer_giant Skill Expert Item "The Righteous Bison" Item "Lord Cockswain's Novelty Mutton Chops and Pipe" Attributes MiniBoss WeaponRestrictions SecondaryOnly Tag bot_giant ItemAttributes { ItemName "The Righteous Bison" "fire rate bonus" 0.4 "faster reload rate" -0.8 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } } T_TFBot_Giant_Soldier_Spammer_Reload_Buff { Class Soldier Name "Giant Buff Burst Soldier" ClassIcon soldier_buff_conch_mangler_giant Health 3800 Skill Expert Item "Lord Cockswain's Pith Helmet" Item "Lord Cockswain's Novelty Mutton Chops and Pipe" Item "The Buff Banner" WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes HoldFireUntilFullReload Attributes SpawnWithFullCharge Tag bot_giant ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "move speed bonus" 0.5 "faster reload rate" 0.6 "fire rate bonus" 0.1 "clip size upgrade atomic" 5.0 "Projectile speed increased" 0.65 } CharacterAttributes { "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "increase buff duration" 9 } } T_TFBot_Giant_Pyro_Phlog { Class Pyro Name "Giant Phlogistinator Pyro" ClassIcon pyro_phlog_v2_giant Skill Expert Health 3000 WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes SpawnWithFullCharge Tag bot_giant Item "The Bubble Pipe" Item "The Phlogistinator" ItemAttributes { ItemName "The Phlogistinator" "airblast disabled" 0 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 6 } } T_TFGateBot_Minigiant_Soldier_Mangler { Class Soldier Name "Minigiant Mangler Soldier" ClassIcon soldier_buff_conch_mangler_giant Health 2200 Scale 1.58 EventChangeAttributes { Default { BehaviorModifiers Push Attributes IgnoreFlag Tag nav_prefer_gate1_flank Tag bot_gatebot Item "MvM GateBot Light Soldier" Item "The Cow Mangler 5000" Tag bot_giant Tag lobo_mangler Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes SuppressFire ItemAttributes { ItemName "The Cow Mangler 5000" "faster reload rate" -0.8 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } } RevertGateBotsBehavior { Item "MvM GateBot Light Soldier" ItemAttributes { ItemName "MvM GateBot Light Soldier" "item style override" 1 } Item "The Cow Mangler 5000" Tag bot_giant Tag lobo_mangler Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes SuppressFire ItemAttributes { ItemName "The Cow Mangler 5000" "faster reload rate" -0.8 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } } } } T_TFGateBot_Giant_Soldier_Mangler_Conch { Class Soldier Name "Giant Concheror Mangler Soldier" ClassIcon soldier_buff_conch_mangler_giant Health 3800 EventChangeAttributes { Default { BehaviorModifiers Push Attributes IgnoreFlag Tag nav_prefer_gate1_flank Tag bot_gatebot Item "MvM GateBot Light Soldier" Item "The Cow Mangler 5000" Item "The Concheror" Tag bot_giant Tag lobo_mangler Skill Expert WeaponRestrictions PrimaryOnly Attributes SpawnWithFullCharge Attributes MiniBoss Attributes SuppressFire ItemAttributes { ItemName "The Cow Mangler 5000" "faster reload rate" -0.8 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "increase buff duration" 9 } } RevertGateBotsBehavior { Item "MvM GateBot Light Soldier" ItemAttributes { ItemName "MvM GateBot Light Soldier" "item style override" 1 } Item "The Cow Mangler 5000" Item "The Concheror" Tag bot_giant Tag lobo_mangler Skill Expert WeaponRestrictions PrimaryOnly Attributes SpawnWithFullCharge Attributes MiniBoss Attributes SuppressFire ItemAttributes { ItemName "The Cow Mangler 5000" "faster reload rate" -0.8 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "increase buff duration" 9 } } } } T_TFBot_Giant_Soldier_Mangler_Conch { Class Soldier Name "Giant Concheror Mangler Soldier" ClassIcon soldier_buff_conch_mangler_giant Health 3800 Item "The Cow Mangler 5000" Item "The Concheror" Tag bot_giant Tag lobo_mangler Skill Expert WeaponRestrictions PrimaryOnly Attributes SpawnWithFullCharge Attributes MiniBoss Attributes SuppressFire ItemAttributes { ItemName "The Cow Mangler 5000" "faster reload rate" -0.8 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "increase buff duration" 9 } } T_TFGateBot_Giant_Soldier_SlowBarrage_Conch { Class Soldier Name "Concheror Colonel Barrage" ClassIcon soldier_buff_conch_mangler_giant Health 4000 EventChangeAttributes { Default { BehaviorModifiers Push Attributes IgnoreFlag Tag nav_prefer_gate1_flank Tag bot_gatebot Item "MvM GateBot Light Soldier" Tag bot_giant Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes HoldFireUntilFullReload Attributes SpawnWithFullCharge Item "The Concheror" ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "clip size upgrade atomic" 26.0 "faster reload rate" 0.22 "fire rate bonus" 0.2 "projectile spread angle penalty" 5 } CharacterAttributes { "move speed bonus" 0.5 "damage bonus" 1.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "airblast vertical vulnerability multiplier" 0.1 "Projectile speed increased" 0.4 "increase buff duration" 9 } } RevertGateBotsBehavior { Item "MvM GateBot Light Soldier" ItemAttributes { ItemName "MvM GateBot Light Soldier" "item style override" 1 } Tag bot_giant Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes HoldFireUntilFullReload Attributes SpawnWithFullCharge Item "The Concheror" ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "clip size upgrade atomic" 26.0 "faster reload rate" 0.22 "fire rate bonus" 0.2 "projectile spread angle penalty" 5 } CharacterAttributes { "move speed bonus" 0.5 "damage bonus" 1.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "airblast vertical vulnerability multiplier" 0.1 "Projectile speed increased" 0.4 "increase buff duration" 9 } } } } T_TFBot_Giant_Soldier_SlowBarrage_Conch { Class Soldier Name "Concheror Colonel Barrage" ClassIcon soldier_buff_conch_mangler_giant Health 4000 Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes HoldFireUntilFullReload Attributes SpawnWithFullCharge Item "The Concheror" ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "clip size upgrade atomic" 26.0 "faster reload rate" 0.22 "fire rate bonus" 0.2 "projectile spread angle penalty" 5 } CharacterAttributes { "move speed bonus" 0.5 "damage bonus" 1.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "airblast vertical vulnerability multiplier" 0.1 "Projectile speed increased" 0.4 "increase buff duration" 9 } } T_TFBot_Giant_Demo_Carpetbomber { Class Demoman Name "Lesser Carpet Bomber" ClassIcon demo_clusterbomb_giant Health 3300 Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes HoldFireUntilFullReload Tag bot_giant Item "Scotch Bonnet" Item "The Iron Bomber" ItemAttributes { ItemName "The Iron Bomber" "faster reload rate" 0.27 "fire rate bonus" 0.07 "clip size upgrade atomic" 11 "projectile spread angle penalty" 7 "Projectile speed increased" 1.1 "fuse bonus" 1.25 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 4 } } T_TFBot_Pyro_Phlog { Class Pyro Name "Phlogistinator Pyro" ClassIcon pyro_phlog_v2 Skill Expert // it's the final part, going ham WeaponRestrictions PrimaryOnly Attributes SpawnWithFullCharge Item "The Bubble Pipe" Item "The Phlogistinator" ItemAttributes { ItemName "The Phlogistinator" "airblast disabled" 0 } } T_TFBot_Medic_Bigheal_Fixed { Class Medic Name "Bigheal Medic" Skill Normal Item "The Quick-Fix" ClassIcon medic_trio_seel ItemAttributes { ItemName "The Quick-Fix" "ubercharge rate bonus" 0.1 "heal rate bonus" 50 } ItemAttributes { ItemName "TF_WEAPON_SYRINGEGUN_MEDIC" "damage penalty" 0.1 } } T_TFBot_Soldier_Crit { Class Soldier Name "Charged Soldier" ClassIcon soldier_and_demo Skill Expert Item "The Original" Attributes AlwaysCrit WeaponRestrictions PrimaryOnly ItemAttributes { ItemName "The Original" "faster reload rate" 0.2 "fire rate bonus" 2 "Projectile speed increased" 0.5 } } T_TFBot_Heavy_Fist_Light { Class Heavy Name "Mini Gauntlet" Skill Hard ClassIcon heavy_fist_nys WeaponRestrictions MeleeOnly Item "Fists of Steel" } T_TFBot_Scout_Capper { Class Scout Name "C.A.P.P.E.R Scout" Skill Easy ClassIcon scout_capper_saber_litenys WeaponRestrictions SecondaryOnly Item "The C.A.P.P.E.R" Item "Cadet Visor" } T_TFBot_Bigger_Scout_Capper { Class Scout Name "Bigger C.A.P.P.E.R Scout" Skill Normal ClassIcon scout_capper_saber_litenys WeaponRestrictions SecondaryOnly Item "The C.A.P.P.E.R" Item "Cadet Visor" Health 650 Scale 1.4 CharacterAttributes { "move speed bonus" 0.7 "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "head scale" 0.8 } } T_TFGateBot_Giant_Scout_Fast { Class Scout Name "Super Scout" ClassIcon scout_giant_fast Health 1200 EventChangeAttributes { Default { BehaviorModifiers Push Attributes IgnoreFlag Tag nav_prefer_gate1_flank Tag bot_gatebot Item "MvM GateBot Light Scout" Skill Easy Item "MNC Mascot Outfit" Item "The Holy Mackerel" Tag bot_giant WeaponRestrictions MeleeOnly Attributes MiniBoss CharacterAttributes { "move speed bonus" 2 "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "override footstep sound set" 5 } } RevertGateBotsBehavior { Item "MvM GateBot Light Scout" ItemAttributes { ItemName "MvM GateBot Light Scout" "item style override" 1 } Skill Easy Item "MNC Mascot Outfit" Item "The Holy Mackerel" Tag bot_giant WeaponRestrictions MeleeOnly Attributes MiniBoss CharacterAttributes { "move speed bonus" 2 "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "override footstep sound set" 5 } } } } T_TFBot_Engineer_Pomson { Class Scout Name "Pomson Engineer" ClassIcon engineer_pomson_v2 Skill Expert MaxVisionRange 1200 WeaponRestrictions PrimaryOnly Tag "popext_giveweapon{ weapon = `tf_weapon_drg_pomson`, id = ID_POMSON_6000 }" Tag "popext_usecustommodel{ model = `models/bots/engineer/bot_engineer.mdl` }" Item "The Brainiac Hairpiece" Item "The Brainiac Goggles" CharacterAttributes { "move speed bonus" 0.75 // normal engi move speed "voice pitch scale" 0 } } T_TFBot_Soldier_Bison { Class Soldier Name "Bison Soldier" ClassIcon soldier_bison Skill Expert MaxVisionRange 1200 Item "The Righteous Bison" Item "Lord Cockswain's Pith Helmet" WeaponRestrictions SecondaryOnly } T_TFBot_Giant_Medic_Uber { Class Medic Name "Giant Uber Medic" ClassIcon medic_uber_giant Skill Expert Health 4500 Attributes SpawnWithFullCharge WeaponRestrictions SecondaryOnly Attributes MiniBoss Tag bot_giant ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "bot medic uber health threshold" 1500 "heal rate bonus" 200 "uber duration bonus" -3 } ItemAttributes { ItemName "TF_WEAPON_SYRINGEGUN_MEDIC" "damage penalty" 0.1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 } } T_TFBot_Soldier_Mangler { Class Soldier Name "Mangler Soldier" Skill Expert ClassIcon soldier_and_demo WeaponRestrictions PrimaryOnly Attributes SuppressFire Tag lobo_mangler Item "The Cow Mangler 5000" ItemAttributes { ItemName "The Cow Mangler 5000" "faster reload rate" -0.8 } } T_TFBot_Soldier_Mangler_Bigger { Class Soldier Name "Bigger Mangler Soldier" Skill Expert ClassIcon soldier_and_demo Health 650 Scale 1.4 WeaponRestrictions PrimaryOnly Attributes SuppressFire Tag lobo_mangler Item "The Cow Mangler 5000" ItemAttributes { ItemName "The Cow Mangler 5000" "faster reload rate" -0.8 } CharacterAttributes { "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "head scale" 0.8 } } T_TFBot_Pyro_Manmelter_Spammer { Class Pyro Skill Expert WeaponRestrictions SecondaryOnly ClassIcon pyro_phlog_v2 Name "Rapid Manmelter Pyro" Item "The Manmelter" Item "The Moonman Backpack" ItemAttributes { ItemName "The Manmelter" "fire rate bonus" 0.4 } } T_TFGateBot_Pyro_Manmelter_Spammer_Crit { Class Pyro Name "Rapid Manmelter Pyro" ClassIcon pyro_phlog_v2 EventChangeAttributes { Default { BehaviorModifiers Push Attributes IgnoreFlag Tag nav_prefer_gate1_flank Tag bot_gatebot Item "MvM GateBot Light Pyro" Skill Expert WeaponRestrictions SecondaryOnly Attributes AlwaysCrit Item "The Manmelter" Item "The Moonman Backpack" ItemAttributes { ItemName "The Manmelter" "fire rate bonus" 0.4 } } RevertGateBotsBehavior { Item "MvM GateBot Light Pyro" ItemAttributes { ItemName "MvM GateBot Light Pyro" "item style override" 1 } Skill Expert WeaponRestrictions SecondaryOnly Attributes AlwaysCrit Item "The Manmelter" Item "The Moonman Backpack" ItemAttributes { ItemName "The Manmelter" "fire rate bonus" 0.4 } } } } } Mission { Objective DestroySentries Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 DesiredCount 1 BeginAtWave 1 RunForThisManyWaves 1 InitialCooldown 40 CooldownTime 40 TFBot { Template T_TFBot_SentryBuster Tag bot_giant Attributes IgnoreEnemies Attributes DisableDodge } } Mission { Objective Sniper Where spawnbot_flank0 Where spawnbot_flank1 Where spawnbot_flank2 BeginAtWave 1 RunForThisManyWaves 1 DesiredCount 2 InitialCooldown 50 CooldownTime 80 TFBot { Template T_TFBot_Sniper ClassIcon spy_sniper Item "Shooting Star" Item "Corona Australis" ItemAttributes { ItemName "Shooting Star" "sniper full charge damage bonus" 1 // revert machina dmg bonus } } } Mission { Objective Spy Where spawnbot_flank0 Where spawnbot_flank1 Where spawnbot_flank2 BeginAtWave 1 RunForThisManyWaves 1 DesiredCount 2 InitialCooldown 90 CooldownTime 80 TFBot { Template T_TFBot_Spy ClassIcon spy_sniper Item "Belltower Spec Ops" } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " // we start the mission at gate B EntFire(`initB`, `Trigger`) // load popext and the mission script IncludeScript(`popextensions_main`, getroottable()) IncludeScript(`charon_lobo`, getroottable()) IncludeScript(`seel_ins`, getroottable()) // couple of popext beautification if (LOBO.is_sigmod) { MissionAttrs( { NoRome = 2 }) } else // less pain in local tests and self hosts. { MissionAttrs( { NoRome = 2 EnableGlobalFixes = 1 ForceHoliday = 2 // I WANT MY KRITZ OR TREAT CANTEEN OK??? }) } // bomb attributes EntFire(`intel`, `SetReturnTime`, 35) " } StartWaveOutput { Target wave_start_relay Action Trigger } // No need for DoneOutput because wave end logic has been handled by IWO //////////////////////////////////////////////////////////////////////////////// // Part 1 has defenders stuck at gate B. It pays $1000. WaveSpawn { Name "1-1" Where spawnbot_main2 TotalCount 24 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 8 TotalCurrency 80 Squad { TFBot { Class Pyro Skill Expert ClassIcon pyro_phlog_v2 Name "Manmelter Pyro" Item "The Manmelter" WeaponRestrictions SecondaryOnly } TFBot { Template T_TFBot_Medic_QuickFix ClassIcon medic_trio_seel } } // wip announcement StartWaveOutput { Target BigNet Action RunScriptCode Param "ClientPrint(null, 3, `\x07FFB4B4Some icons are slightly inaccurate. This will all be sorted out when the judging process is complete.`)" } } WaveSpawn { Name "1-1" Where spawnbot_main2 TotalCount 24 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 8 TotalCurrency 80 Squad { TFBot { Class Soldier Skill Normal ClassIcon soldier_and_demo } TFBot { Template T_TFBot_Medic_QuickFix ClassIcon medic_trio_seel } } } WaveSpawn { Name "1-2" // spawns across 1-1 and 1-2 Where spawnbot_flank2 TotalCount 30 MaxActive 8 SpawnCount 4 WaitBeforeStarting 16 WaitBetweenSpawns 10 TotalCurrency 64 TFBot { Template T_TFBot_Scout_Batsaber } } ///////////////////////////////////////////// WaveSpawn { Name "1-2" Where spawnbot_main2 WaitForAllSpawned "1-1" TotalCount 8 MaxActive 4 SpawnCount 2 WaitBeforeStarting 7 WaitBetweenSpawns 9 TotalCurrency 300 TFBot { Template T_TFBot_Giant_Engineer_Pomson_Spammer } } WaveSpawn { Name "1-2" Where spawnbot_main2 WaitForAllSpawned "1-1" TotalCount 24 MaxActive 12 SpawnCount 4 WaitBeforeStarting 7 WaitBetweenSpawns 7 TotalCurrency 76 RandomChoice { TFBot { Template T_TFBot_Pyro_Nostromo } TFBot { Template T_TFBot_Pyro_Nostromo } TFBot { Class Demoman Name "Loch-n-Load Demo" ClassIcon soldier_and_demo Skill Normal Item "The Loch-n-Load" } } } ///////////////////////////////////////////// WaveSpawn { Name "1-3" Where spawnbot_main2 WaitForAllSpawned "1-2" TotalCount 9 MaxActive 6 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 14 TotalCurrency 150 Squad { TFBot { Template T_TFBot_Giant_Soldier_Crit ClassIcon soldier_buff_conch_mangler_giant } TFBot { Template T_TFBot_Medic_Bigheal_Fixed } TFBot { Template T_TFBot_Medic_Bigheal_Fixed } } } WaveSpawn { Name "1-3" Where spawnbot_main2 WaitForAllSpawned "1-2" TotalCount 20 MaxActive 10 SpawnCount 4 WaitBeforeStarting 7 WaitBetweenSpawns 8 TotalCurrency 64 TFBot { Class Heavy Skill Easy } } WaveSpawn { Name "1-3" Where spawnbot_flank2 WaitForAllSpawned "1-2" TotalCount 15 MaxActive 6 SpawnCount 3 WaitBeforeStarting 11 WaitBetweenSpawns 12 TotalCurrency 36 TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast ClassIcon heavy_fist_nys } } ///////////////////////////////////////////// WaveSpawn { Name "1-Boss" Where spawnbot_main2 WaitForAllDead "1-3" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 0 TotalCurrency 80 TFBot { Template T_TFBot_Lobo_Charon_Boss1 } StartWaveOutput { Target BigNet Action RunScriptCode Param " ClientPrint(null, 3, `\x079C1010A boss approaches..`) // reset just before boss spawns, makes him carry the bomb EntFire(`intel`, `ForceResetSilent`, null, 3.9, null) " } FirstSpawnWarningSound mvm/mvm_tele_deliver.wav } WaveSpawn { Name "1-Boss" Where spawnbot_scattered2 WaitForAllDead "1-3" TotalCount 12 MaxActive 8 SpawnCount 3 WaitBeforeStarting 6 WaitBetweenSpawns 8 TotalCurrency 35 RandomChoice { TFBot { Template T_TFBot_Scout_Capper Skill Easy } TFBot { Class Heavy Skill Easy } } } WaveSpawn { Name "1-Boss" Where spawnbot_scattered2 WaitForAllDead "1-3" TotalCount 6 MaxActive 4 SpawnCount 2 WaitBeforeStarting 6 WaitBetweenSpawns 11 TotalCurrency 35 TFBot { Template T_TFBot_Pyro_Phlog } } //////////////////////////////////////////////////////////////////////////////// // Time for our union-regulated break. WaveSpawn { WaitForAllDead "1-Boss" FirstSpawnOutput { Target BigNet Action RunScriptCode Param " EntFire(`break1_relay`, `Trigger`) EntFire(`break1_relay`, `Kill`, null, 70) // TODO: MAKE THESE OVERLAYS ClientPrint(null, 3, `\x0799CCFFMid-wave break! Gate B is reclaimed, and the \x07FFFF66front upgrade station \x0799CCFFis open!`) ClientPrint(null, 3, `\x0799CCFFThe bomb will now \x07FFFF66reset every 40 seconds\x0799CCFF! (WIP: An overlay works better.)`) LOBO.KillAllBotsOnMap() " } FirstSpawnWarningSound vo/mvm_get_to_upgrade01.mp3 // Get to an upgrade station before they return. } WaveSpawn { WaitForAllDead "1-Boss" WaitBeforeStarting 6 FirstSpawnOutput { Target BigNet Action RunScriptCode Param " PopExtUtil.ShowAnnotation( { text = `The front upgrade station is located here.` pos = Vector(1951, 108, -320) lifetime = -1.0 id = 2 }) EntFire(`wave_start_relay`, `RunScriptCode`, `PopExtUtil.HideAnnotation(2)`, 12) " } } ///////////////////////////////////////////// // tranquility tutorial time. WaveSpawn { WaitForAllDead "1-Boss" WaitBeforeStarting 35 FirstSpawnOutput { Target BigNet Action RunScriptCode Param " PopExtUtil.ShowAnnotation( { text = `These dispensers provide a robot with radial healing when activated.` entity = FindByName(null, `tranquility2_bp`) lifetime = 4.25 }) " } } WaveSpawn { WaitForAllDead "1-Boss" WaitBeforeStarting 39.25 FirstSpawnOutput { Target BigNet Action RunScriptCode Param " PopExtUtil.ShowAnnotation( { text = `These dispensers provide a robot with radial healing when activated.` entity = FindByName(null, `tranquility1_bp`) lifetime = 4.25 }) " } } WaveSpawn { WaitForAllDead "1-Boss" WaitBeforeStarting 43.5 FirstSpawnOutput { Target BigNet Action RunScriptCode Param " PopExtUtil.ShowAnnotation( { text = `Destroy them to stop the effect.` entity = FindByName(null, `tranquility1_bp`) lifetime = 7 }) " } } WaveSpawn { WaitForAllDead "1-Boss" WaitBeforeStarting 50.5 FirstSpawnOutput { Target BigNet Action RunScriptCode Param " PopExtUtil.ShowAnnotation( { text = `These particles signify that a dispenser is about to activate.` entity = FindByName(null, `tranquility1_bp`) lifetime = 8.5 }) EntFire(`tranquility1_ready_particles`, `Start`) EntFire(`tranquility2_ready_particles`, `Start`) " } } WaveSpawn { WaitForAllDead "1-Boss" WaitBeforeStarting 58.5 FirstSpawnOutput { Target BigNet Action RunScriptCode Param " PopExtUtil.ShowAnnotation( { text = `This sound is played on activation.` entity = FindByName(null, `tranquility1_bp`) lifetime = 7 sound = `tranquility.mp3` }) EntFire(`tranquility1_ready_particles`, `Stop`) EntFire(`tranquility2_ready_particles`, `Stop`) " } } WaveSpawn { WaitForAllDead "1-Boss" WaitBeforeStarting 65.5 FirstSpawnOutput { Target BigNet Action RunScriptCode Param " PopExtUtil.ShowAnnotation( { text = `But beware.. some robots resonate with these signals much more strongly than the rest..` entity = FindByName(null, `tranquility1_bp`) lifetime = 8.5 }) " } } ///////////////////////////////////////////// WaveSpawn { WaitForAllDead "1-Boss" WaitBeforeStarting 75 FirstSpawnWarningSound vo/announcer_begins_5sec.mp3 } WaveSpawn { WaitForAllDead "1-Boss" WaitBeforeStarting 76 FirstSpawnWarningSound vo/announcer_begins_4sec.mp3 } WaveSpawn { WaitForAllDead "1-Boss" WaitBeforeStarting 77 FirstSpawnWarningSound vo/announcer_begins_3sec.mp3 } WaveSpawn { WaitForAllDead "1-Boss" WaitBeforeStarting 78 FirstSpawnWarningSound vo/announcer_begins_2sec.mp3 } WaveSpawn { WaitForAllDead "1-Boss" WaitBeforeStarting 79 FirstSpawnWarningSound vo/announcer_begins_1sec.mp3 } //////////////////////////////////////////////////////////////////////////////// // Part 2 opens up the map and RED has gate B reclaimed. It pays $1500. WaveSpawn { Name "2-gatehint" WaitForAllDead "1-Boss" WaitBeforeStarting 82 FirstSpawnOutput { Target BigNet Action RunScriptCode Param " PopExtUtil.ShowAnnotation( { text = `Gatebots will flank regularly from here! Watch out!` lifetime = -1 id = 1 pos = Vector(3297, 462, -355) }) EntFire(`wave_start_relay`, `RunScriptCode`, `PopExtUtil.HideAnnotation(1)`, 8.5) " } } ///////////////////////////////////////////// WaveSpawn { Name "2-1" Where spawnbot_main1 Where spawnbot_main2 WaitForAllDead "1-Boss" TotalCount 9 MaxActive 4 SpawnCount 3 WaitBeforeStarting 80 WaitBetweenSpawns 14 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Soldier ClassIcon soldier_buff_conch_mangler_giant Tag bot_giant Tag lobo_kotg1 } TFBot { Template T_TFBot_Medic_Kritz } TFBot { Template T_TFBot_Medic_Kritz } } FirstSpawnOutput { Target tranquility1_ready_particles Action Start } DoneOutput { Target BigNet Action RunScriptCode Param "LOBO.is_tranquility_on_hold = false" } } WaveSpawn { Name "2-1" Where spawnbot_main1 Where spawnbot_main2 WaitForAllDead "1-Boss" TotalCount 28 MaxActive 8 SpawnCount 4 WaitBeforeStarting 81 WaitBetweenSpawns 8 TotalCurrency 75 TFBot { Class Demoman Skill Expert ClassIcon soldier_and_demo } } ////////////////////////////// WaveSpawn { Name "2-gate-1" Where spawnbot_flank1 Where spawnbot_flank2 WaitForAllDead "1-Boss" TotalCount 12 MaxActive 6 SpawnCount 4 WaitBeforeStarting 90 WaitBetweenSpawns 10 TotalCurrency 50 TFBot { Template T_TFGateBot_Scout_Normal } } ///////////////////////////////////////////// WaveSpawn { Name "2-2" Where spawnbot_main1 Where spawnbot_main2 WaitForAllSpawned "2-1" TotalCount 3 MaxActive 2 SpawnCount 1 WaitBeforeStarting 14 WaitBetweenSpawns 15 TotalCurrency 150 TFBot { Template T_TFBot_Giant_Heavyweapons Tag bot_giant Skill Easy CharacterAttributes { "reduced_healing_from_medics" 0.025 } } } WaveSpawn { Name "2-2" Where spawnbot_main1 Where spawnbot_main2 WaitForAllSpawned "2-1" TotalCount 30 MaxActive 14 SpawnCount 6 WaitBeforeStarting 13 WaitBetweenSpawns 10 TotalCurrency 125 Squad { TFBot { Template T_TFBot_Sniper_Huntsman } TFBot { Template T_TFBot_Medic_Bigheal_Fixed } } } ////////////////////////////// WaveSpawn { Name "2-gate-2" // spawns across the rest of part 2. Where spawnbot_flank1 Where spawnbot_flank2 WaitForAllSpawned "2-gate-1" TotalCount 10 MaxActive 2 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 17 TotalCurrency 275 RandomChoice { TFBot { Template T_TFGateBot_Minigiant_Pyro_Nostromo } TFBot { Template T_TFGateBot_Minigiant_Scout } TFBot { Template T_TFGateBot_Giant_Soldier Name "Minigiant Soldier" ClassIcon soldier_buff_conch_mangler_giant Health 2200 Scale 1.58 } } } ///////////////////////////////////////////// WaveSpawn { Name "2-3" Where spawnbot_main1 Where spawnbot_main2 WaitForAllSpawned "2-2" TotalCount 5 MaxActive 3 SpawnCount 1 WaitBeforeStarting 15 WaitBetweenSpawns 9 TotalCurrency 200 TFBot { Template T_TFBot_Giant_Soldier_Bison_Spammer Tag lobo_kotg2 } StartWaveOutput { Target tranquility2_ready_particles Action Start Delay 10 } DoneOutput { Target BigNet Action RunScriptCode Param "LOBO.is_tranquility_on_hold = false" } } WaveSpawn { Name "2-3" Where spawnbot_main1 Where spawnbot_main2 WaitForAllSpawned "2-2" TotalCount 28 MaxActive 12 SpawnCount 4 WaitBeforeStarting 8 WaitBetweenSpawns 7 TotalCurrency 75 TFBot { Template T_TFBot_Soldier_RocketShotgun ClassIcon soldier_and_demo } } ///////////////////////////////////////////// WaveSpawn { Name "2-4" Where spawnbot_main1 Where spawnbot_main2 WaitForAllSpawned "2-3" TotalCount 3 MaxActive 2 SpawnCount 1 WaitBeforeStarting 9 WaitBetweenSpawns 13 TotalCurrency 125 TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload_Buff } } WaveSpawn { Name "2-4" Where spawnbot_main1 Where spawnbot_main2 WaitForAllSpawned "2-3" TotalCount 30 MaxActive 10 SpawnCount 5 WaitBeforeStarting 10 WaitBetweenSpawns 8 TotalCurrency 75 TFBot { Template T_TFBot_Pyro_Manmelter_Spammer } } WaveSpawn { Name "2-4" Where spawnbot_main1 Where spawnbot_main2 WaitForAllSpawned "2-2" TotalCount 20 MaxActive 5 SpawnCount 2 WaitBeforeStarting 8 WaitBetweenSpawns 8 TotalCurrency 50 TFBot { Template T_TFBot_Bigger_Scout_Capper } } ///////////////////////////////////////////// WaveSpawn { Name "2-Boss0" Where spawnbot_main1 Where spawnbot_main2 WaitForAllDead "2-4" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 0 TotalCurrency 0 TFBot { Template T_TFBot_Lobo_Charon_Boss2 } StartWaveOutput { Target BigNet Action RunScriptCode Param " ClientPrint(null, 3, `\x079C1010A boss approaches..`) // reset just before boss spawns, makes him carry the bomb EntFire(`intel`, `ForceResetSilent`, null, 3.9) if (LOBO.gateb_captured) EntFire(`intel2`, `ForceResetAndDisableSilent`, null, 3) " } FirstSpawnWarningSound mvm/mvm_tele_deliver.wav } WaveSpawn { Name "2-Boss" Where spawnbot_main1 Where spawnbot_main2 WaitForAllDead "2-Boss0" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 40 RandomChoice { RandomChoice { TFBot { Template T_TFBot_Lobo_Charon_Boss2A } } } } WaveSpawn { Name "2-Boss" Where spawnbot_main1 Where spawnbot_main2 WaitForAllDead "2-Boss0" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 40 RandomChoice { RandomChoice { TFBot { Template T_TFBot_Lobo_Charon_Boss2B } } } } WaveSpawn { Name "2-Boss" Where spawnbot_main1 Where spawnbot_main2 WaitForAllDead "2-Boss0" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 40 RandomChoice { RandomChoice { TFBot { Template T_TFBot_Lobo_Charon_Boss2C } } } } WaveSpawn { Name "2-Boss" Where spawnbot_scattered1 Where spawnbot_scattered2 WaitForAllDead "2-4" TotalCount 20 MaxActive 10 SpawnCount 4 WaitBeforeStarting 7 WaitBetweenSpawns 6 TotalCurrency 80 RandomChoice { TFBot { Template T_TFBot_Engineer_Pomson } TFBot { Template T_TFBot_Heavy_Fist_Light } TFBot { Template T_TFBot_Pyro_Phlog } } } //////////////////////////////////////////////////////////////////////////////// // Another union-regulated break. WaveSpawn { WaitForAllDead "2-Boss" FirstSpawnOutput { Target BigNet Action RunScriptCode Param " LOBO.gateb_captured ? EntFire(`break2_double_relay`, `Trigger`) : EntFire(`break2_single_relay`, `Trigger`) EntFire(`break2_single_relay`, `Kill`, null, 70) EntFire(`break2_double_relay`, `Kill`, null, 70) LOBO.gateb_captured = false // TODO: MAKE THESE OVERLAYS ClientPrint(null, 3, `\x0799CCFFFinal 60-second break! All gates are reclaimed, and the \x07FFFF66front station \x0799CCFFis open again!`) ClientPrint(null, 3, `\x0799CCFFThe bomb will now \x07FFFF66reset every 45 seconds\x0799CCFF! (WIP: An overlay works better.)`) LOBO.KillAllBotsOnMap() // we want 2 bombs to only appear when gate B is capped. EntFire(`enable_bomb_1`, `Disable`) EntFire(`intel2`, `ForceResetAndDisableSilent`) // random bullshit gooo LOBO.gatea_captured <- false " } FirstSpawnWarningSound vo/mvm_get_to_upgrade04.mp3 // Get to an upgrade station. } WaveSpawn { WaitForAllDead "2-Boss" WaitBeforeStarting 40 FirstSpawnWarningSound vo/announcer_begins_20sec.mp3 } WaveSpawn { WaitForAllDead "2-Boss" WaitBeforeStarting 55 FirstSpawnWarningSound vo/mvm_general_wav_start01.mp3 } //////////////////////////////////////////////////////////////////////////////// // Part 3 opens the map fully. // For some reason, it pays a peculiar number of 1337. WaveSpawn { Name "3-gate" Where spawnbot_flank0 Where spawnbot_flank1 Where spawnbot_flank2 WaitForAllDead "2-Boss" TotalCount 12 MaxActive 4 SpawnCount 4 WaitBeforeStarting 70 WaitBetweenSpawns 60 TotalCurrency 55 TFBot { Template T_TFGateBot_Scout_FAN ClassIcon scout } } WaveSpawn { Name "3-gate" Where spawnbot_flank0 Where spawnbot_flank1 Where spawnbot_flank2 WaitForAllDead "2-Boss" TotalCount 12 MaxActive 4 SpawnCount 4 WaitBeforeStarting 90 WaitBetweenSpawns 60 TotalCurrency 55 TFBot { Template T_TFGateBot_Soldier_RocketShotgun_Expert ClassIcon soldier_and_demo } } WaveSpawn { Name "3-gate" Where spawnbot_flank0 Where spawnbot_flank1 Where spawnbot_flank2 WaitForAllDead "2-Boss" TotalCount 12 MaxActive 4 SpawnCount 4 WaitBeforeStarting 110 WaitBetweenSpawns 60 TotalCurrency 56 TFBot { Template T_TFGateBot_Pyro_Manmelter_Spammer_Crit } } ///////////////////////////////////////////// WaveSpawn { Name "3-1" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 WaitForAllDead "2-Boss" TotalCount 6 MaxActive 3 SpawnCount 2 WaitBeforeStarting 60 WaitBetweenSpawns 14 TotalCurrency 135 Squad { TFBot { Template T_TFBot_Giant_Pyro_Phlog } TFBot { Template T_TFBot_Giant_Medic_Uber } } } WaveSpawn { Name "3-1" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 WaitForAllDead "2-Boss" TotalCount 30 MaxActive 10 SpawnCount 6 WaitBeforeStarting 61 WaitBetweenSpawns 7 TotalCurrency 64 RandomChoice { TFBot { Template T_TFBot_Demo_Burst ClassIcon soldier_and_demo } TFBot { Template T_TFBot_Soldier_Mangler } } } ///////////////////////////////////////////// WaveSpawn { Name "3-2" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 WaitForAllSpawned "3-1" TotalCount 4 MaxActive 2 SpawnCount 1 WaitBeforeStarting 14 WaitBetweenSpawns 13 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Demo_Carpetbomber Tag lobo_kotg1 } StartWaveOutput { Target tranquility1_ready_particles Action Start Delay 9 } DoneOutput { Target BigNet Action RunScriptCode Param "LOBO.is_tranquility_on_hold = false" } } WaveSpawn { Name "3-2" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 WaitForAllSpawned "3-1" TotalCount 20 MaxActive 8 SpawnCount 4 WaitBeforeStarting 7 WaitBetweenSpawns 7 TotalCurrency 50 TFBot { Class Heavy Skill Easy } } WaveSpawn { Name "3-2" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 WaitForAllSpawned "3-1" TotalCount 15 MaxActive 6 SpawnCount 3 WaitBeforeStarting 7 WaitBetweenSpawns 7 TotalCurrency 50 TFBot { Template T_TFBot_Soldier_Crit } } ///////////////////////////////////////////// WaveSpawn { Name "3-3" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 WaitForAllSpawned "3-2" TotalCount 3 MaxActive 2 SpawnCount 1 WaitBeforeStarting 16 WaitBetweenSpawns 14 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Heavyweapons } } WaveSpawn { Name "3-3" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 WaitForAllSpawned "3-2" TotalCount 24 MaxActive 12 SpawnCount 6 WaitBeforeStarting 8 WaitBetweenSpawns 8 TotalCurrency 62 Squad { TFBot { Template T_TFBot_Pyro_Phlog } TFBot { Template T_TFBot_Medic_Bigheal_Fixed } } } WaveSpawn { Name "3-3" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 WaitForAllSpawned "3-2" TotalCount 24 MaxActive 10 SpawnCount 4 WaitBeforeStarting 13 WaitBetweenSpawns 6 TotalCurrency 50 RandomChoice { TFBot { Template T_TFBot_Scout_Capper } TFBot { Template T_TFBot_Scout_Capper } TFBot { Template T_TFBot_Scout_Capper Skill Hard } } } ///////////////////////////////////////////// WaveSpawn { Name "3-4" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 WaitForAllSpawned "3-3" TotalCount 3 MaxActive 2 SpawnCount 1 WaitBeforeStarting 13 WaitBetweenSpawns 26 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Soldier_Mangler_Conch Tag lobo_kotg2 } StartWaveOutput { Target tranquility2_ready_particles Action Start Delay 8 } DoneOutput { Target BigNet Action RunScriptCode Param "LOBO.is_tranquility_on_hold = false" } } WaveSpawn { Name "3-4" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 WaitForAllSpawned "3-3" TotalCount 3 MaxActive 2 SpawnCount 1 WaitBeforeStarting 26 WaitBetweenSpawns 26 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage_Conch } } WaveSpawn { Name "3-4" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 WaitForAllSpawned "3-3" TotalCount 50 MaxActive 12 SpawnCount 5 WaitBeforeStarting 10 WaitBetweenSpawns 7 TotalCurrency 100 RandomChoice { TFBot { Template T_TFBot_Engineer_Pomson Attributes AlwaysCrit } TFBot { Template T_TFBot_Soldier_Bison } } } WaveSpawn { Name "3-4" Where spawnbot_flank0 Where spawnbot_flank1 Where spawnbot_flank2 WaitForAllSpawned "3-3" TotalCount 21 MaxActive 6 SpawnCount 3 WaitBeforeStarting 13 WaitBetweenSpawns 10 TotalCurrency 80 TFBot { Template T_TFBot_Heavy_Fist_Light Attributes AlwaysCrit } } ///////////////////////////////////////////// WaveSpawn { Name "3-Boss" Where spawnbot_main0 Where spawnbot_main1 Where spawnbot_main2 WaitForAllDead "3-4" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 15 WaitBetweenSpawns 0 TotalCurrency 25 TFBot { Template T_TFBot_Lobo_Charon_Boss3 } StartWaveOutput { Target BigNet Action RunScriptCode Param " ClientPrint(null, 3, `\x079C1010The source of the terrors approaches from the \x07FFFF66farthest spawn\x079C1010.. make your last stand!`) LOBO.KillAllBotsOnMap() EntFire(`tranquility1_ready_particles`, `Start`, null, 2) EntFire(`tranquility2_ready_particles`, `Start`, null, 2) if (LOBO.gateb_captured) EntFire(`boss3_pre_double_relay`, `Trigger`) else if (LOBO.gatea_captured) EntFire(`boss3_pre_single_relay`, `Trigger`) else { EntFire(`pop_interface`, `PauseBotSpawning`) EntFire(`pop_interface`, `UnpauseBotSpawning`, null, 15) } EntFire(`boss3_pre_double_relay`, `Kill`, null, 20) EntFire(`boss3_pre_single_relay`, `Kill`, null, 20) EntFire(`intel`, `ForceResetSilent`, null, 14.9) " } FirstSpawnWarningSound mvm/mvm_tele_deliver.wav } WaveSpawn { Name "3-Boss" Where spawnbot_scattered0 Where spawnbot_scattered1 Where spawnbot_scattered2 WaitForAllDead "3-4" TotalCount 28 MaxActive 8 SpawnCount 4 WaitBeforeStarting 26 WaitBetweenSpawns 8 TotalCurrency 48 RandomChoice { TFBot { Template T_TFBot_Bigger_Scout_Capper Skill Hard CharacterAttributes { "healing received bonus" 3 } } TFBot { Class Scout Skill Hard CharacterAttributes { "healing received bonus" 3 // slightly weaker than qf uber, if under tranquility } } TFBot { Class Scout Skill Hard CharacterAttributes { "healing received bonus" 3 // slightly weaker than qf uber, if under tranquility } } } } WaveSpawn { Name "3-Boss" Where spawnbot_scattered0 Where spawnbot_scattered1 Where spawnbot_scattered2 WaitForAllDead "3-4" TotalCount 24 MaxActive 8 SpawnCount 3 WaitBeforeStarting 30 WaitBetweenSpawns 7 TotalCurrency 72 RandomChoice { TFBot { Class Soldier Skill Expert ClassIcon soldier_and_demo CharacterAttributes { "healing received bonus" 3 } } TFBot { Class Demoman Skill Expert ClassIcon soldier_and_demo CharacterAttributes { "healing received bonus" 3 } } TFBot { Template T_TFBot_Pyro_Manmelter_Spammer Attributes AlwaysCrit CharacterAttributes { "healing received bonus" 3 } } } } WaveSpawn { Name "3-Boss" Where spawnbot_scattered0 Where spawnbot_scattered1 Where spawnbot_scattered2 WaitForAllDead "3-4" TotalCount 4 MaxActive 3 SpawnCount 1 WaitBeforeStarting 37 WaitBetweenSpawns 10 TotalCurrency 35 TFBot { Template T_TFBot_Soldier_Mangler_Bigger CharacterAttributes { "healing received bonus" 3 } } } //////////////////////////////////////////////////////////////////////////////// // "Precaching" icons for seel_ins.nut WaveSpawn { TotalCount 0 MaxActive 0 SpawnCount 0 RandomChoice { RandomChoice { TFBot { Class Scout ClassIcon demo_robot_nys } TFBot { Class Scout ClassIcon soldier_robot_nys } TFBot { Class Scout ClassIcon heavy_robot_nys } } } Support 1 } } }