#base robot_giant.pop #base robot_standard.pop #base robot_gatebot.pop WaveSchedule { StartingCurrency 800 RespawnWaveTime 5 CanBotsAttackWhileInSpawnRoom no PrecacheGeneric "materials/needles/sprites/spawn_timer_radial.vmt" PrecacheGeneric "materials/needles/sprites/target_radial.vmt" PrecacheGeneric "materials/needles/sprites/target1.vmt" PrecacheGeneric "materials/needles/sprites/target2.vmt" PrecacheGeneric "materials/needles/sprites/health.vmt" PrecacheModel "models/props_mvm/robot_spawnpoint.mdl" Mission // Sniper wave 1 { Objective Sniper InitialCooldown 1 Where spawnbot_a BeginAtWave 2 RunForThisManyWaves 1 CooldownTime 0 DesiredCount 2 TFBot { Template T_TFBot_Sniper Skill Normal CharacterAttributes { "damage bonus" 1.0 } Tag spawn_group_w2_sniper Tag patrol_w2_3_a } } Wave { InitWaveOutput { Target gamerules Action RunScriptCode Param " printl(`*** POPULATION - WAVE INIT`); EntFire(`initB`, `Trigger`); EntFire(`gamerules`, `RunScriptFile`, `needles/missions/mvm_hoovydam_b10_rev_adv_insurgent/wave1.nut`); " } StartWaveOutput { Target gamerules Action RunScriptCode Param " printl(`*** POPULATION - WAVE START`); EntFire(`wave_start_relayB`, `Trigger`); " } DoneOutput { Target gamerules Action RunScriptCode Param " printl(`*** POPULATION - WAVE FINISHED`); EntFire(`wave_finished_relay`, `Trigger`); " } WaveSpawn { Name "main_wave" Where spawnbot_a WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 500 // This is the auto-payout at end of wave TFBot { Name "Core" Class Soldier Classicon engineer Health 15000 Scale 2 WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes IgnoreFlag Attributes SuppressFire Attributes UseBossHealthBar CharacterAttributes { "dmg taken increased" 0 } Tag core_boss } } WaveSpawn { Name "scout_0" Where spawnbot_a WaitBeforeStarting 1 WaitBetweenSpawns 0 MaxActive 6 SpawnCount 1 Squad { TFBot { Class Scout Skill Easy BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_scout_0 Tag patrol_4_a } } Support 1 } WaveSpawn { Name "huntsman_0_a" Where spawnbot_a WaitBeforeStarting 1 WaitBetweenSpawns 0 MaxActive 2 SpawnCount 1 Squad { TFBot { Template T_TFBot_Sniper_Huntsman BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_huntsman_0 Tag patrol_0_a } } Support 1 } WaveSpawn { Name "huntsman_0_b" Where spawnbot_a WaitBeforeStarting 1 WaitBetweenSpawns 0 MaxActive 2 SpawnCount 1 Squad { TFBot { Template T_TFBot_Sniper_Huntsman BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_huntsman_0 Tag patrol_0_b } } Support 1 } WaveSpawn { Name "huntsman_0_c" Where spawnbot_a WaitBeforeStarting 1 WaitBetweenSpawns 0 MaxActive 2 SpawnCount 1 Squad { TFBot { Template T_TFBot_Sniper_Huntsman BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_huntsman_0 Tag patrol_0_c } } Support 1 } WaveSpawn { Name "soldier_crit_0" Where spawnbot_a WaitBeforeStarting 1 WaitBetweenSpawns 0 MaxActive 1 SpawnCount 1 Squad { TFBot { Template T_TFBot_Giant_Soldier_Crit BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_soldier_crit_0 Tag patrol_1_a Tag bot_gatebot Item "MvM GateBot Light Soldier" } } Support 1 } WaveSpawn { Name "heavy_crit" Where spawnbot_a WaitBeforeStarting 1 WaitBetweenSpawns 0 MaxActive 1 SpawnCount 1 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons Attributes AlwaysCrit BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_heavy_crit Tag patrol_1_a Tag bot_gatebot Item "MvM GateBot Light Heavy" } } Support 1 } WaveSpawn { Name "soldier_uber_0" Where spawnbot_a WaitBeforeStarting 1 WaitBetweenSpawns 0 MaxActive 2 SpawnCount 2 Squad { TFBot { Class Demoman Skill Hard BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_soldier_uber_0 Tag patrol_2_a } TFBot { Template T_TFBot_Medic_Quickuber BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_soldier_uber_0 Tag patrol_2_a } } Support 1 } WaveSpawn { Name "heavy_uber_0" Where spawnbot_a WaitBeforeStarting 1 WaitBetweenSpawns 0 MaxActive 2 SpawnCount 2 Squad { TFBot { Class Heavyweapons Skill Normal BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_heavy_uber_0 Tag patrol_3_a } TFBot { Template T_TFBot_Medic_Quickuber BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_heavy_uber_0 Tag patrol_3_a } } Support 1 } // Wave icons WaveSpawn { Name "support_icons" WaitForAllDead "main_wave" Support 1 TFBot { Template T_TFBot_Giant_Soldier_Crit } } WaveSpawn { Name "support_icons" WaitForAllDead "main_wave" Support 1 TFBot { Class Scout } } WaveSpawn { Name "support_icons" WaitForAllDead "main_wave" Support 1 TFBot { Template T_TFBot_Sniper_Huntsman } } WaveSpawn { Name "support_icons" WaitForAllDead "main_wave" Support 1 TFBot { Class Heavyweapons } } WaveSpawn { Name "support_icons" WaitForAllDead "main_wave" Support 1 TFBot { Class Demoman } } WaveSpawn { Name "support_icons" WaitForAllDead "main_wave" Support 1 TFBot { Template T_TFBot_Medic } } } Wave { InitWaveOutput { Target gamerules Action RunScriptCode Param " printl(`*** POPULATION - WAVE INIT`); EntFire(`initA_setLower`, `Trigger`); EntFire(`gamerules`, `RunScriptFile`, `needles/missions/mvm_hoovydam_b10_rev_adv_insurgent/wave2.nut`); " } StartWaveOutput { Target gamerules Action RunScriptCode Param " printl(`*** POPULATION - WAVE START`); EntFire(`wave_start_relayA`, `Trigger`); " } DoneOutput { Target gamerules Action RunScriptCode Param " printl(`*** POPULATION - WAVE FINISHED`); EntFire(`wave_finished_relay`, `Trigger`); " } WaveSpawn { Name "main_wave" Where spawnbot_a WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 800 // This is the auto-payout at end of wave TFBot { Name "Core" Class Soldier Classicon engineer Health 20000 Scale 2 WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes IgnoreFlag Attributes SuppressFire Attributes UseBossHealthBar CharacterAttributes { "dmg taken increased" 0 } Tag core_boss } } WaveSpawn { Name "w2_soldier_spammer" Where spawnbot_a WaitBeforeStarting 1 WaitBetweenSpawns 0 MaxActive 2 SpawnCount 2 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer Attributes AlwaysCrit BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_w2_soldier_spammer Tag patrol_w2_gatebot_a Tag bot_gatebot Item "MvM GateBot Light Soldier" } TFBot { Template T_TFBot_Medic_Quickuber BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_w2_soldier_spammer Tag patrol_w2_gatebot_a } } Support 1 } WaveSpawn { Name "w2_dragonfury" Where spawnbot_a WaitBeforeStarting 1 WaitBetweenSpawns 0 MaxActive 3 SpawnCount 1 Squad { TFBot { Template T_TFBot_Pyro_DragonFury Skill Easy BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_w2_pyro_dragonfury Tag patrol_w2_0_a } } Support 1 } WaveSpawn { Name "w2_demo" Where spawnbot_a WaitBeforeStarting 1 WaitBetweenSpawns 0 MaxActive 4 SpawnCount 1 Squad { TFBot { Class Demoman Skill Normal BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_w2_demo Tag patrol_w2_1_a } } Support 1 } WaveSpawn { Name "w2_pyro_uber" Where spawnbot_a WaitBeforeStarting 1 WaitBetweenSpawns 0 MaxActive 2 SpawnCount 2 Squad { TFBot { Class Pyro Skill Hard Attributes AlwaysFireWeapon BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_w2_pyro_uber Tag patrol_w2_2_a //CharacterAttributes //{ // "move speed bonus" 0.75 //} } TFBot { Template T_TFBot_Medic BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_w2_pyro_uber Tag patrol_w2_2_a } } Support 1 } WaveSpawn { Name "heavy_crit" Where spawnbot_a WaitBeforeStarting 1 WaitBetweenSpawns 0 MaxActive 2 SpawnCount 2 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons Attributes AlwaysCrit BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_heavy_crit Tag patrol_w2_gatebot_a Tag bot_gatebot Item "MvM GateBot Light Heavy" } TFBot { Template T_TFBot_Medic BehaviorModifiers push Attributes IgnoreFlag Tag spawn_group_heavy_crit Tag patrol_w2_gatebot_a } } Support 1 } // Wave icons WaveSpawn { Name "support_icons" WaitForAllDead "main_wave" Support 1 TFBot { Template T_TFBot_Giant_Soldier_Spammer Attributes AlwaysCrit } } WaveSpawn { Name "support_icons" WaitForAllDead "main_wave" Support 1 TFBot { Template T_TFBot_Pyro_DragonFury } } WaveSpawn { Name "support_icons" WaitForAllDead "main_wave" Support 1 TFBot { Class Pyro } } WaveSpawn { Name "support_icons" WaitForAllDead "main_wave" Support 1 TFBot { Class Demoman } } WaveSpawn { Name "support_icons" WaitForAllDead "main_wave" Support 1 TFBot { Template T_TFBot_Medic } } } Templates { T_TFBot_Pyro_DragonFury { ClassIcon pyro_dragonfury Name "Dragons Fury Pyro" Class Pyro Skill Normal WeaponRestrictions PrimaryOnly MaxVisionRange 800 ItemAttributes { ItemName "The Dragon's Fury" "damage bonus" 1.5 } Item "The Dragon's Fury" } T_TFBot_Heavy_IronFist { Class Heavyweapons Name "Steel Gauntlet" ClassIcon heavy_steelfist Health 900 Skill Expert Scale 1.5 WeaponRestrictions MeleeOnly Item "Fists of Steel" } T_TFBot_Medic_Kritzkrieg { Name "Kritzkrieg Medic" Class Medic Health 150 ClassIcon medic_kritz Attributes SpawnWithFullCharge Item "Berlin Brain Bowl" Item "The Kritzkrieg" ItemAttributes { ItemName "The Kritzkrieg" "heal rate bonus" 0.1 // Purpose is to give crits, nothing else. When the medic dies, the crits stop, that's all. "uber duration bonus" 999 "ubercharge rate bonus" 100 } CharacterAttributes { "bot medic uber health threshold" 999 } } } }