//mvm_hoovydam_b10 //Mission name: Total Collapse //Mission difficulty: Expert //Collab mission between: Automaton Trooper and Alche_ #base robot_giant.pop #base robot_standard.pop #base robot_gatebot.pop WaveSchedule { StartingCurrency 1500 CanBotsAttackWhileInSpawnRoom No RespawnWaveTime 3 AddSentryBusterWhenDamageDealtExceeds 3000 AddSentryBusterWhenKillCountExceeds 15 //Bot Templates Templates { T_TFBot_Soldier_Uncharged { Class Soldier Skill Normal Name "Uncharged Soldier" ClassIcon soldier_crit_normal Item "The Original" WeaponRestrictions PrimaryOnly ItemAttributes { ItemName "The Original" "faster reload rate" 0.2 "fire rate bonus" 2 "Projectile speed increased" 0.5 } } T_TFBot_Soldier_Charged { Class Soldier Skill Normal Name "Charged Soldier" ClassIcon soldier_crit Item "The Original" WeaponRestrictions PrimaryOnly Attributes AlwaysCrit ItemAttributes { ItemName "The Original" "faster reload rate" 0.2 "fire rate bonus" 2 "Projectile speed increased" 0.5 } } T_TFBot_Soldier_Extended_Overclock { Class Soldier Skill Normal Name "Extended Overclock Soldier" ClassIcon soldier_hastebuff Item "The Buff Banner" Item "Armored Authority" Attributes SpawnWithFullCharge CharacterAttributes { "increase buff duration" 9.0 "effect add attributes" "faster reload rate|0.5|fire rate bonus|0.5" "effect cond override" 65 } } T_TFBot_Giant_Soldier_Extended_Overclock { Class Soldier Skill Hard Name "Giant Extended Overclock Solly" ClassIcon soldier_hastebuff_giant Item "The Buff Banner" Item "Armored Authority" Health 3800 Attributes SpawnWithFullCharge Attributes MiniBoss CharacterAttributes { "increase buff duration" 9.0 "effect add attributes" "faster reload rate|0.5|fire rate bonus|0.5" "effect cond override" 65 "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } } T_TFBot_Giant_Soldier_Classic_PanicAttack //classic panic attack soldier giant (more bullets) { Class Soldier ClassIcon soldier_panic_lite_burst Health 3800 Name "Giant Classic Panic Soldier" Skill Expert Item "Panic Attack Shotgun" //only works on rafmod servers Attributes MiniBoss WeaponRestrictions SecondaryOnly ItemAttributes { ItemName "Panic Attack Shotgun" //ItemName "tf_weapon_shotgun_soldier" "panic_attack" 1 "panic_attack_negative" 2.5 "auto fires when full" 1 "auto fires full clip" 1 "fire rate bonus with reduced health" 0.50 "mod max primary clip override" 4 "reload time decreased" 0.50 "damage bonus" 1.20 "bullets per shot bonus" 2.5 "mult_spread_scales_consecutive" 0 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } } T_TFBot_Medic_BigHeal_Armored { Class Medic ClassIcon medic_armored Name "Armored Big-Heal Medic" Health 750 Skill Expert Tag bot_giant Scale 1.37 Item "The Quick-Fix" CharacterAttributes { "heal rate bonus" 10 "ubercharge rate bonus" 0 } } T_TFGateBot_Giant_Soldier_SlowBarrage_Parachute { Class Soldier Name "Colonel Barrage" ClassIcon soldier_barrage Health 4000 EventChangeAttributes { Default { BehaviorModifiers push // having these will cause bots to run towards gates Attributes IgnoreFlag // having these will cause bots to run towards gates Tag nav_prefer_gate1_flank // having these will cause bots to run towards gates Tag bot_gatebot // having these will cause bots to run towards gates Item "MvM GateBot Light Soldier" Tag bot_giant Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes HoldFireUntilFullReload Item "The B.A.S.E. Jumper" 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 { "health regen" 40 "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 } } RevertGateBotsBehavior { Item "MvM GateBot Light Soldier" ItemAttributes // turn off light hat { ItemName "MvM GateBot Light Soldier" "item style override" 1 } Tag bot_giant Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes HoldFireUntilFullReload Item "The B.A.S.E. Jumper" 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 { "health regen" 40 "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 "rage giving scale" 0.1 "Projectile speed increased" 0.4 } } } } T_TFBot_Giant_Demoman_MADS //evil ass "sniper" support { Class Demoman ClassIcon demo_clusterbomb_delay_giant //i should maybe make a hyper icon for this maybe idk Name "Merc Area Denial System" Health 15000 Skill Expert Attributes MiniBoss Attributes UseBossHealthBar //Attributes HoldFireUntilFullReload MaxVisionRange 1200 //WeaponRestrictions PrimaryOnly Tag bot_giant Item "The Iron Bomber" Item "The Razorback" //necessary evil because of mission sniper ai Item "Fused Plates" ItemAttributes { ItemName "The Iron Bomber" "projectile spread angle penalty" 3.0 "faster reload rate" 0.5 "fire rate bonus" 0.05 "clip size upgrade atomic" 6 "fuse bonus" 2.2 "auto fires when full" 1 "auto fires full clip" 1 } CharacterAttributes { "airblast vulnerability multiplier" 0.1 "override footstep sound set" 4 "damage force reduction" 0.1 "move speed bonus" 0.45 } } T_TFGateBot_Giant_Scout_Popper { Class Scout Health 1600 ClassIcon scout_popper Name "Giant Soda Popper Scout" EventChangeAttributes { Default { BehaviorModifiers push // having these will cause bots to run towards gates Attributes IgnoreFlag // having these will cause bots to run towards gates Tag nav_prefer_gate1_flank // having these will cause bots to run towards gates Tag bot_gatebot // having these will cause bots to run towards gates Item "MvM GateBot Light Scout" Tag bot_giant Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Item "The Soda Popper" CharacterAttributes { "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "override footstep sound set" 5 } } RevertGateBotsBehavior { Item "MvM GateBot Light Scout" Tag bot_giant Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Item "The Soda Popper" CharacterAttributes { "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "override footstep sound set" 5 } ItemAttributes { ItemName "MvM GateBot Light Scout" "item style override" 1 } } } } T_TFBot_Medic_Shield { Class Medic ClassIcon medic_shield_ala Name "Shield Medic" Skill Expert Attributes IgnoreEnemies Attributes SpawnWithFullCharge Attributes ProjectileShield WeaponRestrictions SecondaryOnly ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "bot medic uber deploy delay duration" 900 "generate rage on heal" 1 "increase buff duration" 10 } CharacterAttributes { "heal rate bonus" 0.5 } } T_TFGateBot_Pyro_AlwaysFireWeapon_Expert { Class Pyro EventChangeAttributes { Default { Tag bot_gatebot // having these will cause bots to run towards gates Tag nav_prefer_gate1_flank // having these will cause bots to run towards gates BehaviorModifiers push // having these will cause bots to run towards gates Attributes IgnoreFlag // having these will cause bots to run towards gates Item "MvM GateBot Light Pyro" Attributes AlwaysFireWeapon Skill Expert } RevertGateBotsBehavior { Item "MvM GateBot Light Pyro" ItemAttributes // turn off light hat { ItemName "MvM GateBot Light Pyro" "item style override" 1 } Attributes AlwaysFireWeapon Skill Expert } } } } //Mission Bots //Sentry Buster Mission { Objective DestroySentries Where spawnbot_a Where spawnbot_b BeginAtWave 1 RunForThisManyWaves 5 InitialCooldown 15 CooldownTime 25 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster Tag bot_giant } } Mission //w2 spygus { Objective Spy Where spawnbot_a InitialCooldown 30 CooldownTime 40 DesiredCount 2 BeginAtWave 2 RunForThisManyWaves 1 TFBot { Template T_TFBot_Spy } } Mission //w4 not a sniper { Objective Sniper Where spawnbot_c InitialCooldown 75 CooldownTime 120 DesiredCount 1 BeginAtWave 4 RunForThisManyWaves 1 TFBot { Template T_TFBot_Giant_Demoman_MADS } } //Waves //WAVE 1 //AUTO WAVE //1000 PAYOUT //GATE B Wave { StartWaveOutput { Target wave_start_relayB Action Trigger Delay 0.1 } InitWaveOutput { Target bignet Action RunScriptCode Param " EntFire(`initB`, `Trigger`) for (local ent; ent = Entities.FindByClassname(ent, `item_teamflag`); ) { ent.AcceptInput(`RunScriptFile`, `bombhop.nut`, null, null) } " } DoneOutput { Target pickfast Action PickRandomShuffle } WaitWhenDone 60 Sound "Announcer.IncomingMob" Checkpoint Yes WaveSpawn { Name boing-notice WaitBeforeStarting 0 FirstSpawnOutput { Target gamerules Action RunScriptCode Param " SendGlobalGameEvent(`show_annotation`, { text = ` The bomb will periodically backtrack if it's not being carried.` lifetime = 10 worldPosX = -1308 worldPosY = 2327 worldPosZ = 572 id = -1 play_sound = `misc/null.wav` show_distance = false show_effect = false visibilityBitfield = 0 }) " } } WaveSpawn //GDetonator Spammers { Name "Wave1_Subwave1" Where spawnbot_a TotalCount 3 MaxActive 2 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 18 TotalCurrency 150 TFBot { Template T_TFBot_Giant_Pyro_Flare_Spammer ClassIcon pyro_detonator_lite_spammer } } WaveSpawn //Overclockers + Uncharged Soldiers { Name "Wave1_Subwave1" Where spawnbot_a TotalCount 48 MaxActive 12 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Soldier_Extended_Overclock } TFBot { Template T_TFBot_Soldier_Uncharged } TFBot { Template T_TFBot_Soldier_Uncharged } TFBot { Template T_TFBot_Soldier_Uncharged } } } WaveSpawn // Scouts { Name "Wave1_Subwave1" Where spawnbot_a TotalCount 30 MaxActive 5 SpawnCount 5 WaitBeforeStarting 10 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Class Scout Skill Easy } } WaveSpawn //GOverclocker + Steelie Pushers { Name "Wave1_Subwave2" WaitForAllSpawned "Wave1_Subwave1" Where spawnbot_a TotalCount 16 MaxActive 5 SpawnCount 4 WaitBeforeStarting 10 WaitBetweenSpawns 10 TotalCurrency 300 Squad { TFBot { Template T_TFBot_Giant_Soldier_Extended_Overclock } TFBot { Template T_TFBot_Heavy_IronFist_Airblast ClassIcon heavy_steelfist_pusher } TFBot { Template T_TFBot_Heavy_IronFist_Airblast ClassIcon heavy_steelfist_pusher } TFBot { Template T_TFBot_Heavy_IronFist_Airblast ClassIcon heavy_steelfist_pusher } } } WaveSpawn // Bowmen { Name "Wave1_Subwave2" WaitForAllSpawned "Wave1_Subwave1" Where spawnbot_a Support 1 TotalCount 56 MaxActive 10 SpawnCount 2 WaitBeforeStarting 17 WaitBetweenSpawns 1.5 TotalCurrency 125 TFBot { Template T_TFBot_Sniper_Huntsman } } WaveSpawn // Charged Soldiers { Name "Wave1_Subwave2" WaitForAllSpawned "Wave1_Subwave1" Where spawnbot_a Support 1 TotalCount 35 MaxActive 5 SpawnCount 1 WaitBeforeStarting 17 WaitBetweenSpawns 1.5 TotalCurrency 125 TFBot { Template T_TFBot_Soldier_Charged } } } //WAVE 2 //ALCHE WAVE //1000 PAYOUT (1100 A+) //GATE A - LOWER AREA (DAM) Wave { StartWaveOutput { Target wave_start_relayA Action Trigger } InitWaveOutput { Target bignet Action RunScriptCode Param " EntFire(`initA_setLower`, `Trigger`) for (local ent; ent = Entities.FindByClassname(ent, `item_teamflag`); ) { ent.AcceptInput(`RunScriptFile`, `bombhop.nut`, null, null) } " } WaveSpawn //this template is the greatest thing to ever come out of my scrapyard mission and i will die proud of this template { Name 2a Where spawnbot_c TotalCount 3 SpawnCount 1 WaitBetweenSpawns 14 WaitBeforeStarting 0 TotalCurrency 100 MaxActive 2 TFBot { Template T_TFBot_Giant_Soldier_Classic_PanicAttack Tag bot_giant } } WaveSpawn { Name 2a Where spawnbot_a TotalCount 24 SpawnCount 3 WaitBetweenSpawns 5 WaitBeforeStarting 5 TotalCurrency 50 MaxActive 12 TFBot { Template T_TFGateBot_Demo_Burst_Normal } } WaveSpawn { Name 2a Where spawnbot_c TotalCount 12 SpawnCount 3 WaitBetweenSpawns 8 WaitBeforeStarting 8 TotalCurrency 75 MaxActive 7 TFBot { Template T_TFBot_Heavyweapons_Fist Tag bot_giant } } WaveSpawn { Name 2b Where spawnbot_c TotalCount 25 SpawnCount 5 WaitBetweenSpawns 6.5 WaitBeforeStarting 8 TotalCurrency 50 MaxActive 10 WaitForAllSpawned 2a TFBot { Class Heavy Skill Easy } } WaveSpawn { Name 2b Where spawnbot_c TotalCount 8 SpawnCount 4 WaitBetweenSpawns 16 WaitBeforeStarting 11 TotalCurrency 215 MaxActive 8 WaitForAllSpawned 2a Squad { ShouldPreserveSquad 1 TFBot { Template T_TFGateBot_Giant_Soldier_SlowBarrage_Parachute } TFBot { Template T_TFBot_Medic_BigHeal ClassIcon medic_quickfix_seel2 Name "Big Heal Medic" Item "The B.A.S.E. Jumper" } TFBot { Template T_TFBot_Medic_BigHeal ClassIcon medic_quickfix_seel2 Name "Big Heal Medic" Item "The B.A.S.E. Jumper" } TFBot { Template T_TFBot_Medic_BigHeal ClassIcon medic_quickfix_seel2 Name "Big Heal Medic" Item "The B.A.S.E. Jumper" } } } WaveSpawn { Name 2c Where spawnbot_b TotalCount 2 SpawnCount 1 WaitBetweenSpawns 15 //holy shit i thought i fixed this god fucking damn it WaitBeforeStarting 8 //15 TotalCurrency 150 MaxActive 2 WaitForAllSpawned 2b TFBot { Template T_TFBot_Giant_Heavyweapons Tag bot_giant } } WaveSpawn { Name 2c Where spawnbot_a TotalCount 10 SpawnCount 2 WaitBetweenSpawns 7 WaitBeforeStarting 9 TotalCurrency 36 MaxActive 10 WaitForAllSpawned 2b TFBot { Template T_TFBot_Heavyweapons_Fist Tag bot_giant } } WaveSpawn { Name 2c Where spawnbot_a TotalCount 24 SpawnCount 4 WaitBetweenSpawns 5 WaitBeforeStarting 9 TotalCurrency 24 MaxActive 10 WaitForAllSpawned 2b TFBot { Template T_TFGateBot_Soldier_Normal } } //final subwave WaveSpawn { Name 2d Where spawnbot_b //_c //moving them away from c should make them less likely to straggle Where spawnbot_a //_b RandomSpawn 1 TotalCount 24 //30 SpawnCount 6 WaitBetweenSpawns 6 WaitBeforeStarting 0 TotalCurrency 50 MaxActive 12 WaitForAllDead 2c TFBot { Class Soldier Skill Hard } } WaveSpawn { Name 2d Where spawnbot_b Where spawnbot_a RandomSpawn 1 TotalCount 18 SpawnCount 3 WaitBetweenSpawns 8 WaitBeforeStarting 3 TotalCurrency 25 MaxActive 6 WaitForAllDead 2c Support 1 TFBot { Class Pyro Skill Hard Attributes AlwaysFireWeapon } } WaveSpawn { Name 2d Where spawnbot_b TotalCount 6 SpawnCount 3 WaitBetweenSpawns 16 WaitBeforeStarting 7 TotalCurrency 225 MaxActive 6 WaitForAllDead 2c Squad { ShouldPreserveSquad 1 TFBot { Template T_TFBot_Giant_Soldier_Classic_PanicAttack Tag bot_giant } TFBot { Template T_TFBot_Medic_BigHeal_Armored } TFBot { Template T_TFBot_Medic_BigHeal_Armored } } } } //WAVE 3 //AUTO WAVE //??? PAYOUT //GATE A - FRONT AREA (BRIDGE) Wave { StartWaveOutput { Target wave_start_relayA Action Trigger Delay 0.1 } InitWaveOutput { Target bignet Action RunScriptCode Param " EntFire(`initA_setFront`, `Trigger`) for (local ent; ent = Entities.FindByClassname(ent, `item_teamflag`); ) { ent.AcceptInput(`RunScriptFile`, `bombhop.nut`, null, null) } " } DoneOutput { Target pickfast Action PickRandomShuffle } WaitWhenDone 60 Sound "Announcer.IncomingMob" Checkpoint Yes } //WAVE 4 //ALCHE WAVE //1300 PAYOUT //FRONT AREA Wave { StartWaveOutput { Target wave_start_relay Action Trigger } InitWaveOutput { Target bignet Action RunScriptCode Param " EntFire(`initMain`, `Trigger`) for (local ent; ent = Entities.FindByClassname(ent, `item_teamflag`); ) { ent.AcceptInput(`RunScriptFile`, `bombhop.nut`, null, null) } " } WaveSpawn { Name iconthingy //mission supports still don't respect minibosses or crit bots, so i have to do this stupid workaround TotalCount 0 SpawnCount 0 Support 1 WaitBeforeStarting 75 WaitBetweenSpawns 6969 TFBot { Class Demoman ClassIcon demo_clusterbomb_delay_giant Attributes MiniBoss } } //the actual wave goes below here WaveSpawn { Name 4a Where spawnbot_a TotalCount 5 SpawnCount 1 WaitBetweenSpawns 8 WaitBeforeStarting 0 TotalCurrency 150 MaxActive 3 TFBot { Template T_TFBot_Giant_Scout Item "The Soda Popper" ClassIcon scout_popper Name "Giant Soda Popper Scout" Tag bot_giant } } WaveSpawn { Name 4a Where spawnbot_b TotalCount 5 SpawnCount 1 WaitBetweenSpawns 8 WaitBeforeStarting 4 TotalCurrency 150 MaxActive 3 TFBot { Template T_TFGateBot_Giant_Scout_Popper } } WaveSpawn { Name 4a Where spawnbot_a TotalCount 28 SpawnCount 4 WaitBetweenSpawns 5 WaitBeforeStarting 3 TotalCurrency 50 MaxActive 12 TFBot { Class Soldier Skill Expert } } WaveSpawn { Name 4b Where spawnbot_a TotalCount 6 SpawnCount 2 WaitBetweenSpawns 20 WaitBeforeStarting 12 TotalCurrency 250 MaxActive 4 WaitForAllSpawned 4a Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload Tag bot_giant } TFBot { Template T_TFBot_Giant_Medic_Regen Tag bot_giant } } } WaveSpawn { Name 4b Where spawnbot_c TotalCount 14 SpawnCount 2 WaitBetweenSpawns 8 WaitBeforeStarting 6 TotalCurrency 100 MaxActive 6 WaitForAllSpawned 4a TFBot { Template T_TFGateBot_Heavy_Normal } } WaveSpawn { Name 4b Where spawnbot_a Where spawnbot_b TotalCount 24 SpawnCount 3 WaitBetweenSpawns 7 //6 WaitBeforeStarting 6 TotalCurrency 50 MaxActive 9 WaitForAllSpawned 4a TFBot { Class Pyro Skill Expert Attributes AlwaysFireWeapon } } WaveSpawn { Name 4b Where spawnbot_c TotalCount 12 SpawnCount 2 WaitBetweenSpawns 11 WaitBeforeStarting 6 TotalCurrency 100 MaxActive 4 WaitForAllSpawned 4a Squad { TFBot { Template T_TFGateBot_Pyro_AlwaysFireWeapon_Expert } TFBot { Template T_TFBot_Medic_Shield } } } WaveSpawn { Name 4c Where spawnbot_b TotalCount 9 SpawnCount 3 WaitBetweenSpawns 17.5 WaitBeforeStarting 6 TotalCurrency 350 MaxActive 6 WaitForAllDead 4b Squad { TFBot { Template T_TFBot_Giant_Heavyweapons Tag bot_giant } TFBot { Template T_TFBot_Giant_Soldier_Spammer Tag bot_giant } TFBot { Template T_TFBot_Giant_Soldier_Spammer Tag bot_giant } } } WaveSpawn { Name 4c Where spawnbot_a Where spawnbot_b Where spawnbot_c TotalCount 26 SpawnCount 3 WaitBetweenSpawns 6 WaitBeforeStarting 0 TotalCurrency 50 MaxActive 9 WaitForAllDead 4b TFBot { Class Pyro Skill Expert Attributes AlwaysFireWeapon } } WaveSpawn { Name 4c Where spawnbot_b TotalCount 32 SpawnCount 4 WaitBetweenSpawns 8 WaitBeforeStarting 2.5 TotalCurrency 50 MaxActive 9 WaitForAllDead 4b Support 1 TFBot { Class Scout Skill Hard } } } }