#base robot_giant.pop #base robot_standard.pop // // Starting Currency: 754 // // +----------+----------+----------+ // | Wave | Currency | A+ | // +----------+----------+----------+ // | Wave 1 | 700 | 800 | // | Wave 2 | 700 | 800 | // | Wave 3 | 700 | 800 | // | Wave 4 | 750 | 850 | // | Wave 5 | 750 | 850 | // | Wave 6 | 750 | 850 | // | Wave 7 | 600 | 700 | // +----------+----------+----------+ // | Total | 4950 | 5650 | // +----------+----------+----------+ // // Decoy Advanced Mission (ALL PYRO) - 7 Waves WaveSchedule { StartingCurrency 754 RespawnWaveTime 4 FixedRespawnWaveTime Yes CanBotsAttackWhileInSpawnRoom No Advanced 1 ForceRedMoney 1 NoCritPumpkin 1 ClassLimit { Scout 0 Soldier 0 Demoman 0 Heavyweapons 0 Engineer 0 Medic 0 Sniper 0 Spy 0 } CustomWeapon { "The Flippin' Hot Pan" { OriginalItemname "Gold Frying Pan" "melee airblast" 1 "damage bonus" 2 "max health additive bonus" 75 "minicrit vs burning player" 1 "fire rate penalty" 1.6 "maxammo primary reduced" 0 "is australium item" 1 "item style override" 0 } "The Reflecting Decision" { OriginalItemname "The Nostromo Napalmer" "special damage type" 4 // used to identify this weapon in vscript, does nothing on its own "airblast_pushback_disabled" 1 "special item description" "Five consecutive projectile reflections will grant 8 seconds of crits" "special item description 2" "Airblast does not push robots" } "The Holy Fire" { OriginalItemname "TF_WEAPON_FLAMETHROWER" "paintkit_proto_def_index" 208 "heal on hit for slowfire" 5 "flame_speed" 5000 "damage penalty" 0.8 "maxammo primary reduced" 0.5 "special item description" "Lifesteal and increased flamethrower range, but reduced ammo and damage" } "The Scorch Strike" { OriginalItemname "The Scorch Shot" "paintkit_proto_def_index" 217 "special damage type" 5 "fire rate penalty" 2 "projectile no deflect" 1 "ignores other projectiles" 1 "special item description" "Increased fire rate while flare jumping" "special item description 2" "Getting a kill with this weapon increases the number of flares fired in a single shot by 1, for a maximum of 10" "special item description 3" "The flare shot count bonus is lost on death" } } ExtraLoadoutItems { AllowEquipOutsideSpawn 0 Pyro { // Cost 1 is because Cost 0 hides the submenu that displays the weapon stats Primary { Item "The Reflecting Decision" Cost 1 AllowedMinWave 1 AllowRefund 0 } Primary { Item "The Holy Fire" Cost 1 AllowedMinWave 1 AllowRefund 0 } Secondary { Item "The Scorch Strike" Cost 1 AllowedMinWave 1 AllowRefund 0 } Melee { Item "The Flippin' Hot Pan" Cost 1 AllowedMinWave 1 AllowRefund 0 } } } ExtendedUpgrades { air_control { Name "+125% increased air control" Attribute "increased air control" Cap 7.25 Increment 1.25 Cost 100 PlayerUpgrade 1 } fall_damage_immunity { Name "Fall damage immunity" Attribute "cancel falling damage" Cap 1.0 Increment 1.0 Cost 300 PlayerUpgrade 1 } pellet_count { Name "+30% bullets per shot" Attribute "bullets per shot bonus" Cap 2.8 Increment 0.3 Cost 200 Slot Secondary AllowedWeapons { ClassName tf_weapon_shotgun_pyro ClassName tf_weapon_shotgun } } incendiary_rounds { Name "Incendiary rounds" Attribute "Set DamageType Ignite" Cap 1.0 Increment 1.0 Cost 200 Slot Secondary AllowedWeapons { ClassName tf_weapon_shotgun_pyro ClassName tf_weapon_shotgun } } explosive_rounds { Name "Explosive rounds (ticks increase blast radius)" Attribute "explosive bullets" Cap 180 Increment 60 Cost 100 AllowedWeapons { ClassName tf_weapon_shotgun_pyro ClassName tf_weapon_shotgun } } bullet_spread { Name "-20% decreased bullet spread" Attribute "weapon spread bonus" Cap 0.2 Increment -0.2 Cost 100 Slot Secondary AllowedWeapons { ClassName tf_weapon_shotgun_pyro ClassName tf_weapon_shotgun } } } Templates { T_TFBot_Soldier_SlowBarrage { Class Soldier Name "Corporal Barrage" ClassIcon soldier_barrage Skill Expert WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload AimOffset "0 0 40" 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 "Projectile speed increased" 0.4 } } T_TFBot_Pyro_Backburner { Name "Backburner Pyro" Class Pyro Skill Easy ClassIcon pyro_backburner_nys Item "The Backburner" Item "Feathered Fiend" } T_TFBot_Giant_Pyro_HomingRocket_Boss { Name "Conehead the Clown" Class Pyro Health 20000 ClassIcon boss_corn Scale 2.0 Skill Expert Attributes MiniBoss Attributes AlwaysCrit Attributes UseBossHealthBar Tag pyro_clown Item "The Flare Gun" Item "The Degreaser" Item "Nose Candy" Item "The Special Eyes" Item "Traffic Cone" RocketCustomParticle eyeboss_projectile HomingRockets { IgnoreDisguisedSpies 1 IgnoreStealthedSpies 1 RocketSpeed 0.5 TurnPower 400 MaxAimError 150 } WeaponSwitch { MaxTargetRange 9999 MinTargetRange 0 Delay 12 Cooldown 3 Repeats 0 IfSeeTarget 0 Type "Primary" } WeaponSwitch { MaxTargetRange 9999 MinTargetRange 0 Delay 12 Cooldown 10.01 Repeats 0 IfSeeTarget 1 Type "Secondary" } ItemAttributes { ItemName "The Flare Gun" "override projectile type" 2 "projectile spread angle penalty" 20 "penetrate teammates" 1 "fire rate bonus" 0.04 } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 "dmg taken from blast increased" 3 } } T_TFBot_Giant_Medic_Shield { Class Medic Health 4500 Name "Giant Shield Medic" ClassIcon medic_shield_lite Skill Expert Attributes MiniBoss Attributes ProjectileShield Attributes SpawnWithFullCharge Attributes IgnoreEnemies Item "Berlin Brain Bowl" ItemAttributes { ItemName "TF_WEAPON_SYRINGEGUN_MEDIC" "damage penalty" 0.1 } ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "generate rage on heal" 2 "increase buff duration" 50 "ubercharge rate bonus" 0.01 "heal rate bonus" 200 } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "bot medic uber deploy delay duration" 90000 } } T_TFBot_Heavy_Armored { Name "Armored Heavy" Class Heavy ClassIcon heavy_armored Health 900 Scale 1.35 Skill Easy Item "The Eliminator's Safeguard" CharacterAttributes { "move speed penalty" 0.8 } } T_TFBot_Heavy_Tomislav { Class Heavy MaxVisionRange 1200 Skill Easy Name "Tomislav Heavy" Item "Tomislav" Item "Modest Metal Pile of Scrap" ClassIcon heavy_accurate WeaponRestrictions PrimaryOnly } T_TFBot_SuicideBuster { Name "Suicide Buster" Class Demoman ClassIcon sentry_buster Health 600 Skill Expert Action SuicideBomber Attributes SuppressFire Item "The Ullapool Caber" UseBusterModel 1 CharacterAttributes { "move speed bonus" 1.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.7 "voice pitch scale" 1.5 } } T_TFBot_Soldier_DirectHit { Class Soldier Skill Hard Name "Direct Hit Soldier" ClassIcon soldier_directhit WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload Item "The Direct Hit" Item "War Pig" } T_TFBot_Pyro_Airblast_Armored { Name "Armored Airblasting Pyro" Class Pyro ClassIcon pyro_airblast_armored Health 525 Scale 1.35 Skill Expert Item "Traffic Cone" } T_TFBot_Medic_Megaheal { Class Medic ClassIcon medic_infpop Name "Permanent Megaheal Medic" Skill Expert Item "The Quick-Fix" Attributes SpawnWithFullCharge Attributes IgnoreEnemies ItemAttributes { ItemName "The Quick-Fix" "ubercharge rate bonus" 100 "uber duration bonus" 999 "bot medic uber health threshold" 9000 "heal rate bonus" 10 } } T_TFBot_Soldier_Crit { Class Soldier Name "Charged Soldier" ClassIcon soldier_crit Skill Normal 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 "penetrate teammates" 1 } } T_TFBot_Sniper_Jarate { Class Sniper Name "Jarate Master" Skill Easy ClassIcon sniper_jarate Item "Jarate" Item "Desert Marauder" WeaponRestrictions SecondaryOnly CharacterAttributes { "effect bar recharge rate increased" 0.1 } } T_TFBot_Giant_Pyro_GasPasser { Class Pyro Health 3000 Name "Giant Gas Passer Pyro" ClassIcon pyro_gastog_blu Skill Expert Item "The Gas Passer" Item "Airtight Arsonist" Attributes MiniBoss AimOffset "0 0 40" ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "airblast disabled" 1 } ItemAttributes { ItemName "The Gas Passer" "item_meter_charge_rate" 20 "single wep deploy time increased" 3 } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 2 } } T_TFBot_Pyro_Axtinguisher { Class Pyro Name "Axtinguisher Pyro" ClassIcon pyro_jug_axtinguisher Skill Expert Item "The Axtinguisher" Item "Firewall Helmet" WeaponRestrictions MeleeOnly } T_TFBot_Giant_Sniper_Bow_Penetrate_Burst { Class Sniper Health 1400 Name "Giant Piercing Bowman" ClassIcon sniper_bow_multi_penetrator_fix Skill Expert Attributes MiniBoss Item "The Huntsman" WeaponRestrictions PrimaryOnly ItemAttributes { ItemName "The Huntsman" "projectile penetration" 1 "fire rate bonus" 0.1 "dmg penalty vs players" 0.25 "mult projectile count" 4 "projectile spread angle penalty" 2 } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 2 } } T_TFBot_Giant_Heavy_BrassBeast { Class Heavy Skill Expert Health 5000 MaxVisionRange 1200 Name "Giant Brass Beast Heavy" ClassIcon heavy_brass Item "The Brass Beast" Item "Der Maschinensoldaten-Helm" WeaponRestrictions PrimaryOnly Attributes MiniBoss ItemAttributes { ItemName "The Brass Beast" "damage bonus" 1.7 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } } T_TFBot_Giant_Heavyweapons_Deflector_HighFrequency { Class Heavyweapons Name "Giant Deflector Heavy" ClassIcon heavy_deflector MaxVisionRange 1200 Skill Expert Health 5000 Item "The U-clank-a" Item "Deflector" WeaponRestrictions PrimaryOnly Attributes MiniBoss ItemAttributes { ItemName "Deflector" "damage bonus" 1.5 "attack projectiles" 50 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } } T_TFBot_Heavyweapons_Deflector_HighFrequency { Class Heavy Name "Deflector Heavy" ClassIcon heavy_deflector Skill Normal Item "The U-clank-a" Item "Deflector" WeaponRestrictions PrimaryOnly MaxVisionRange 1200 ItemAttributes { ItemName "Deflector" "attack projectiles" 50 } } T_TFBot_Heavyweapons_Gnome_NoCrit { Class Heavyweapons Name "Heavy Mittens" Skill Easy ClassIcon heavy_mittens Scale 0.65 WeaponRestrictions MeleeOnly Health 60 Item "The All-Father" Item "Point and Shoot" Item "The Holiday Punch" ItemAttributes { ItemName "The Holiday Punch" "damage bonus" 0.2 } CharacterAttributes { "move speed bonus" 1.3 "voice pitch scale" 1.5 "always gib" 1 } } T_TFBot_Soldier_Crit_Conch { Class Soldier Name "Charged Concheror Soldier" ClassIcon soldier_conch_charged Skill Normal Item "The Original" Item "The Concheror" Attributes AlwaysCrit Attributes SpawnWithFullCharge ItemAttributes { ItemName "The Original" "faster reload rate" 0.2 "fire rate bonus" 2 "Projectile speed increased" 0.5 "penetrate teammates" 1 } CharacterAttributes { "increase buff duration" 9.0 } } T_TFBot_Giant_Soldier_HomingRocket { Class Soldier ClassIcon soldier_homing_nys Name "Giant Homing Rocket Soldier" Health 4000 Skill Expert Attributes MiniBoss Attributes HoldFireUntilFullReload WeaponRestrictions PrimaryOnly Item "warbird_rocketlauncher_warhawk" RocketCustomParticle eyeboss_projectile HomingRockets { IgnoreDisguisedSpies 1 IgnoreStealthedSpies 1 RocketSpeed 0.4 TurnPower 400 MaxAimError 150 } ItemAttributes { ItemName "warbird_rocketlauncher_warhawk" "projectile trail particle" eyeboss_projectile "penetrate teammates" 1 } CharacterAttributes { "move speed bonus" 0.5 "airblast vulnerability multiplier" 0.4 "damage force reduction" 0.4 "override footstep sound set" 3 } } T_TFBot_Giant_Soldier_HomingRocket_Burst { Class Soldier ClassIcon soldier_burstfire_homing Name "Giant Burst Fire Homing Soldier" Health 4000 Skill Expert Attributes MiniBoss Attributes HoldFireUntilFullReload WeaponRestrictions PrimaryOnly Item "warbird_rocketlauncher_warhawk" RocketCustomParticle eyeboss_projectile HomingRockets { IgnoreDisguisedSpies 1 IgnoreStealthedSpies 1 RocketSpeed 0.4 TurnPower 400 MaxAimError 150 } ItemAttributes { ItemName "warbird_rocketlauncher_warhawk" "projectile trail particle" eyeboss_projectile "penetrate teammates" 1 "faster reload rate" 0.6 "fire rate bonus" 0.1 "clip size upgrade atomic" 5.0 } CharacterAttributes { "move speed bonus" 0.5 "airblast vulnerability multiplier" 0.4 "damage force reduction" 0.4 "override footstep sound set" 3 } } T_TFBot_Giant_Soldier_HomingRocket_Spammer { Class Soldier ClassIcon soldier_homing_spammer_nys Name "Giant Rapid Fire Homing Soldier" Health 4000 Skill Expert Attributes MiniBoss Attributes HoldFireUntilFullReload WeaponRestrictions PrimaryOnly Item "warbird_rocketlauncher_warhawk" RocketCustomParticle eyeboss_projectile HomingRockets { IgnoreDisguisedSpies 1 IgnoreStealthedSpies 1 RocketSpeed 0.4 TurnPower 400 MaxAimError 150 } ItemAttributes { ItemName "warbird_rocketlauncher_warhawk" "projectile trail particle" eyeboss_projectile "penetrate teammates" 1 "faster reload rate" -0.8 "fire rate bonus" 0.5 } CharacterAttributes { "move speed bonus" 0.5 "airblast vulnerability multiplier" 0.4 "damage force reduction" 0.4 "override footstep sound set" 3 } } T_TFBot_Giant_Pyro_DragonsFury { Class Pyro Skill Expert Attributes MiniBoss Health 3000 Name "Giant Dragon's Fury Pyro" ClassIcon pyro_dragon_fury_swordstone_giant WeaponRestrictions PrimaryOnly Item "The Dragon's Fury" Item "Burning Beanie" Item "The Special Eyes" CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 } } T_TFBot_Giant_Soldier_Nuke { Class Soldier Name "Giant Nuclear Soldier" ClassIcon soldier_nuke Skill Normal Health 3800 Item "The Original" Item "Breach and Bomb" Attributes AlwaysCrit Attributes MiniBoss WeaponRestrictions PrimaryOnly ItemAttributes { ItemName "The Original" "use large smoke explosion" 1 "Projectile speed increased" 0.2 "fire rate penalty" 8 "clip size penalty" 0.25 "auto fires when full" 1 "Blast radius increased" 2 "damage bonus" 20 "penetrate teammates" 1 } 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 { ClassIcon medic_armored Class Medic Health 450 Scale 1.25 Name "Armored Medic" Item "Berliner's Bucket Helm" Item "The Quick-Fix" Skill Expert ItemAttributes { ItemName "TF_WEAPON_SYRINGEGUN_MEDIC" "damage penalty" 0.1 } ItemAttributes { ItemName "The Quick-Fix" "ubercharge rate bonus" 0.01 } CharacterAttributes { "heal rate bonus" 10 } } T_TFBot_Medic_Vac_Fire { Name "Fire Vaccinator Medic" Class Medic ClassIcon medic_fire Skill Expert Attributes SpawnWithFullCharge Attributes IgnoreEnemies Item "The Vaccinator" Item "Das Metalmeatencasen" Item "Das Ubersternmann" WeaponRestrictions SecondaryOnly ItemAttributes { ItemName "The Vaccinator" "medigun charge is resists" 5 "medigun fire resist passive" 0.9 "medigun fire resist deployed" 0.9 "ubercharge rate bonus" 50 "mod weapon blocks healing" 1 } CharacterAttributes { "bot medic uber health threshold" 500 "voice pitch scale" 0 } } T_TFBot_Giant_Medic_Vac_Fire { Name "Giant Fire Vaccinator Medic" Class Medic ClassIcon medic_fire Skill Expert Health 4500 Attributes MiniBoss Attributes SpawnWithFullCharge Attributes IgnoreEnemies Item "The Vaccinator" Item "Das Metalmeatencasen" Item "Das Ubersternmann" WeaponRestrictions SecondaryOnly ItemAttributes { ItemName "The Vaccinator" "medigun charge is resists" 5 "medigun fire resist passive" 0.9 "medigun fire resist deployed" 0.9 "ubercharge rate bonus" 50 "heal rate bonus" 10 "mod weapon blocks healing" 1 } CharacterAttributes { "bot medic uber health threshold" 9000 "voice pitch scale" 0 } } T_TFBot_Medic_Vac_Fire_Armored { Name "Armored Fire Vaccinator Medic" Class Medic ClassIcon medic_fire_armored_lite Skill Expert Health 450 Scale 1.35 Attributes SpawnWithFullCharge Attributes IgnoreEnemies Item "The Vaccinator" Item "Das Metalmeatencasen" Item "Das Ubersternmann" WeaponRestrictions SecondaryOnly ItemAttributes { ItemName "The Vaccinator" "medigun charge is resists" 5 "medigun fire resist passive" 0.9 "medigun fire resist deployed" 0.9 "ubercharge rate bonus" 50 "heal rate bonus" 10 "mod weapon blocks healing" 1 } CharacterAttributes { "bot medic uber health threshold" 9000 "voice pitch scale" 0 "airblast vulnerability multiplier" 0.2 "damage force reduction" 0.5 } } T_TFBot_Pyro_Powerjack { Name "Powerjack Pyro" Class Pyro Skill Hard ClassIcon pyro_powerjack WeaponRestrictions MeleeOnly Item "The Powerjack" Item "Pyro Helm" } T_TFBot_Giant_Pyro_Powerjack { Name "Giant Powerjack Pyro" Class Pyro Skill Hard Health 3000 Attributes MiniBoss ClassIcon pyro_powerjack_heal WeaponRestrictions MeleeOnly Item "The Powerjack" Item "Pyro Helm" ItemAttributes { ItemName "The Powerjack" "heal on kill" 1475 } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 } } T_TFBot_Sniper_Croc { Name "Crocodile Sniper" Health 650 Scale 1.35 Class Sniper Skill Hard ClassIcon sniper_croc_nys WeaponRestrictions MeleeOnly Item "The Bushwacka" Item "Ol' Snaggletooth" Item "Darwin's Danger Shield" ItemAttributes { ItemName "Prinny Machete" "move speed penalty" 0.8 "dmg taken from bullets increased" 1.75 "dmg taken from blast increased" 1.75 "dmg from melee increased" 1.75 } } T_TFBot_Scout_CandyCane_HealOnHit { Name "Candy Cane Scout" Class Scout Skill Hard ClassIcon scout_cane_heal_lite Item "The Candy Cane" Item "Neckwear Headwear" Item "The Merc's Muffler" WeaponRestrictions MeleeOnly ItemAttributes { ItemName "The Candy Cane" "heal on hit for rapidfire" 65 "fire rate bonus" 0.8 "damage penalty" 0.5 "melee range multiplier" 2 "hand scale" 2 } } T_TFBot_Demo_IronBomber { Name "Iron Bomber Demoman" Class Demoman Skill Normal ClassIcon demo_ironbomber_lite Item "The Iron Bomber" Item "Scotch Bonnet" } T_TFBot_Demo_IronBomber_Burst { Name "Burst Bomber Demoman" Class Demoman Skill Normal ClassIcon demo_clusterbomb Item "The Iron Bomber" Item "Scotch Bonnet" ItemAttributes { ItemName "Iron Bomber" "faster reload rate" 1.75 "fire rate bonus" 0.05 "clip size penalty" 0.5 //"projectile spread angle penalty" 3 } } } // Wave 1 --------------------------------------------------------------------------------------------------------- Wave { InitWaveOutput { Target bignet Action RunScriptCode Param " EntFire(`bombpath_choose_relay`, `Disable`); EntFire(`bombpath_choose_relay`, `CancelPending`); EntFire(`bombpath_clearall_relay`, `Trigger`, ``, 0.1); EntFire(`bombpath_arrows_clear_relay`, `Trigger`, ``, 0.1); EntFire(`bombpath_left_relay`, `Trigger`, ``, 0.2); EntFire(`bignet`, `RunScriptFile`, `melee_deflect_sound.nut`); EntFire(`bignet`, `RunScriptFile`, `customwep_deflect_streak.nut`); EntFire(`bignet`, `RunScriptFile`, `customwep_scorch_strike.nut`); EntFire(`bignet`, `RunScriptFile`, `errorhandler.nut`); for (local ent; ent = Entities.FindByName(ent, `ammopack_script`); ) { ent.Destroy(); } for (local ent; ent = Entities.FindByName(ent, `shotgun_text`); ) { ent.Destroy(); } SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(-404, 674, 360) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(486, 486, 370) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(841, -770, 370) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(-891, -596, 370) automaterialize = true }) SpawnEntityFromTable(`point_worldtext`, { targetname = `shotgun_text` origin = Vector(-970, -2200, 548) angles = Vector(0, 90, 0) textsize = 9 message = `Shotguns have custom upgrades\nsee the custom upgrades menu` }) SpawnEntityFromTable(`point_worldtext`, { targetname = `shotgun_text` origin = Vector(620, -2200, 548) angles = Vector(0, 90, 0) textsize = 9 message = `Shotguns have custom upgrades\nsee the custom upgrades menu` }) " } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name w1a_gcharged Where spawnbot TotalCount 12 SpawnCount 3 MaxActive 6 WaitBeforeStarting 0 WaitBetweenSpawns 25 TotalCurrency 350 Squad { TFBot { Template T_TFBot_Giant_Soldier_Crit Skill Expert ItemAttributes { ItemName "The Original" "penetrate teammates" 1 } } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } } } WaveSpawn { Support Limited Where spawnbot TotalCount 8 SpawnCount 8 MaxActive 8 WaitBeforeStarting 14 TotalCurrency 50 TFBot { Template T_TFBot_Pyro_Powerjack } } WaveSpawn { Support Limited Where spawnbot TotalCount 8 SpawnCount 8 MaxActive 8 WaitBeforeStarting 36 TotalCurrency 50 TFBot { Template T_TFBot_Pyro_Powerjack } } WaveSpawn { Support Limited Where spawnbot TotalCount 8 SpawnCount 8 MaxActive 8 WaitBeforeStarting 60 TotalCurrency 50 TFBot { Template T_TFBot_Pyro_Powerjack } } WaveSpawn { Support Limited Where spawnbot TotalCount 8 SpawnCount 8 MaxActive 8 WaitBeforeStarting 84 TotalCurrency 50 TFBot { Template T_TFBot_Pyro_Powerjack } } WaveSpawn { Support 1 Where spawnbot TotalCount 24 SpawnCount 2 MaxActive 4 WaitBeforeStarting 18 WaitBetweenSpawns 7 TotalCurrency 150 TFBot { Class Pyro Skill Easy } } } // Wave 2 --------------------------------------------------------------------------------------------------------- Wave { InitWaveOutput { Target bignet Action RunScriptCode Param " IncludeScript(`tankextensions_main`, getroottable()); IncludeScript(`tankextensions/jumptank`, getroottable()); EntFire(`bombpath_choose_relay`, `Disable`); EntFire(`bombpath_choose_relay`, `CancelPending`); EntFire(`bombpath_clearall_relay`, `Trigger`, ``, 0.1); EntFire(`bombpath_arrows_clear_relay`, `Trigger`, ``, 0.1); EntFire(`bombpath_left_relay`, `Trigger`, ``, 0.2); EntFire(`bignet`, `RunScriptFile`, `melee_deflect_sound.nut`); EntFire(`bignet`, `RunScriptFile`, `customwep_deflect_streak.nut`); EntFire(`bignet`, `RunScriptFile`, `customwep_scorch_strike.nut`); EntFire(`bignet`, `RunScriptFile`, `errorhandler.nut`); for (local ent; ent = Entities.FindByName(ent, `ammopack_script`); ) { ent.Destroy(); } for (local ent; ent = Entities.FindByName(ent, `shotgun_text`); ) { ent.Destroy(); } SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(-404, 674, 360) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(486, 486, 370) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(841, -770, 370) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(-891, -596, 370) automaterialize = true }) SpawnEntityFromTable(`point_worldtext`, { targetname = `shotgun_text` origin = Vector(-970, -2200, 548) angles = Vector(0, 90, 0) textsize = 9 message = `Shotguns have custom upgrades\nsee the custom upgrades menu` }) SpawnEntityFromTable(`point_worldtext`, { targetname = `shotgun_text` origin = Vector(620, -2200, 548) angles = Vector(0, 90, 0) textsize = 9 message = `Shotguns have custom upgrades\nsee the custom upgrades menu` }) " } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name w2a_demo Where spawnbot TotalCount 15 SpawnCount 3 MaxActive 6 WaitBeforeStarting 0 WaitBetweenSpawns 6 TotalCurrency 100 TFBot { Template T_TFBot_Demo_IronBomber } } WaveSpawn { Name w2a_tank TotalCount 1 WaitBeforeStarting 5 TotalCurrency 200 Tank { Health 20000 Speed 75 Name "jumptank" StartingPathTrackNode "path1" ClassIcon floro_jumping_tank OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name w2a_gscout Where spawnbot TotalCount 2 SpawnCount 1 MaxActive 1 WaitBeforeStarting 22 WaitBetweenSpawns 22 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Scout_FAN } } WaveSpawn { Support 1 Where spawnbot_left TotalCount 21 SpawnCount 3 MaxActive 6 WaitBeforeStarting 6 WaitBetweenSpawns 8 WaitForAllSpawned w2a_demo TotalCurrency 100 TFBot { Template T_TFBot_Demoman_Knight BehaviorModifiers Push } } WaveSpawn { Support Limited Where spawnbot TotalCount 24 SpawnCount 4 MaxActive 8 WaitBeforeStarting 10 WaitBetweenSpawns 9 WaitForAllDead w2a_gscout TotalCurrency 100 TFBot { Class Soldier Skill Easy } } WaveSpawn { Name w2b_gpyro Where spawnbot TotalCount 2 SpawnCount 1 MaxActive 2 WaitBeforeStarting 15 WaitBetweenSpawns 20 WaitForAllDead w2a_gscout TotalCurrency 100 TFBot { Template T_TFBot_Giant_Pyro Attributes AlwaysFireWeapon } } } // Wave 3 --------------------------------------------------------------------------------------------------------- Wave { InitWaveOutput { Target bignet Action RunScriptCode Param " EntFire(`bombpath_choose_relay`, `Disable`); EntFire(`bombpath_choose_relay`, `CancelPending`); EntFire(`bombpath_clearall_relay`, `Trigger`, ``, 0.1); EntFire(`bombpath_arrows_clear_relay`, `Trigger`, ``, 0.1); EntFire(`bombpath_left_relay`, `Trigger`, ``, 0.2); EntFire(`bignet`, `RunScriptFile`, `melee_deflect_sound.nut`); EntFire(`bignet`, `RunScriptFile`, `customwep_deflect_streak.nut`); EntFire(`bignet`, `RunScriptFile`, `customwep_scorch_strike.nut`); EntFire(`bignet`, `RunScriptFile`, `errorhandler.nut`); for (local ent; ent = Entities.FindByName(ent, `ammopack_script`); ) { ent.Destroy(); } for (local ent; ent = Entities.FindByName(ent, `shotgun_text`); ) { ent.Destroy(); } SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(-404, 674, 360) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(486, 486, 370) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(841, -770, 370) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(-891, -596, 370) automaterialize = true }) SpawnEntityFromTable(`point_worldtext`, { targetname = `shotgun_text` origin = Vector(-970, -2200, 548) angles = Vector(0, 90, 0) textsize = 9 message = `Shotguns have custom upgrades\nsee the custom upgrades menu` }) SpawnEntityFromTable(`point_worldtext`, { targetname = `shotgun_text` origin = Vector(620, -2200, 548) angles = Vector(0, 90, 0) textsize = 9 message = `Shotguns have custom upgrades\nsee the custom upgrades menu` }) " } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name w3a_gsniper Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 18 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Sniper_Bow_Penetrate_Burst } TFBot { Template T_TFBot_Giant_Medic_Regen } } } WaveSpawn { Name w3a_heavy Where spawnbot TotalCount 8 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0.1 WaitBetweenSpawns 5 TotalCurrency 50 TFBot { Template T_TFBot_Heavy_Tomislav } } WaveSpawn { Name w3b_gpyro Where spawnbot TotalCount 3 SpawnCount 1 MaxActive 2 WaitForAllDead w3a_gsniper WaitBeforeStarting 0 WaitBetweenSpawns 18 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Pyro_GasPasser } } WaveSpawn { Name w3b_heavy Where spawnbot TotalCount 24 MaxActive 6 SpawnCount 3 WaitForAllSpawned w3a_heavy WaitBeforeStarting 5 WaitBetweenSpawns 5 TotalCurrency 50 TFBot { Template T_TFBot_Heavyweapons_Shotgun } } WaveSpawn { Name w3b_pyro Where spawnbot TotalCount 16 MaxActive 6 SpawnCount 2 WaitForAllSpawned w3a_heavy WaitForAllDead w3a_gsniper WaitBeforeStarting 4 WaitBetweenSpawns 4 TotalCurrency 50 TFBot { Template T_TFBot_Pyro_Axtinguisher } } WaveSpawn { Name w3b_gsoldier Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 1 WaitForAllDead w3a_gsniper WaitBeforeStarting 4 WaitBetweenSpawns 20 TotalCurrency 150 TFBot { Template T_TFBot_Giant_Soldier } } WaveSpawn { Name w3c_crocsniper Where spawnbot TotalCount 12 SpawnCount 3 MaxActive 6 WaitForAllSpawned w3b_pyro WaitForAllDead w3b_gpyro WaitBeforeStarting 8 WaitBetweenSpawns 8 TotalCurrency 50 TFBot { Template T_TFBot_Sniper_Croc } } WaveSpawn { Name w3c_gpyro Where spawnbot TotalCount 2 SpawnCount 1 MaxActive 2 WaitForAllSpawned w3b_pyro WaitForAllDead w3b_gpyro WaitBeforeStarting 4 WaitBetweenSpawns 20 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Soldier } } WaveSpawn { Support 1 Where spawnbot_right SpawnCount 2 MaxActive 6 WaitForAllSpawned w3b_pyro WaitBeforeStarting 10 WaitBetweenSpawns 5 TotalCurrency 50 TFBot { Template T_TFBot_Sniper_Jarate } } } // Wave 4 --------------------------------------------------------------------------------------------------------- Wave { InitWaveOutput { Target bignet Action RunScriptCode Param " EntFire(`bombpath_choose_relay`, `Disable`); EntFire(`bombpath_choose_relay`, `CancelPending`); EntFire(`bombpath_clearall_relay`, `Trigger`, ``, 0.1); EntFire(`bombpath_arrows_clear_relay`, `Trigger`, ``, 0.1); EntFire(`bombpath_left_relay`, `Trigger`, ``, 0.2); EntFire(`bignet`, `RunScriptFile`, `melee_deflect_sound.nut`); EntFire(`bignet`, `RunScriptFile`, `customwep_deflect_streak.nut`); EntFire(`bignet`, `RunScriptFile`, `customwep_scorch_strike.nut`); EntFire(`bignet`, `RunScriptFile`, `errorhandler.nut`); for (local ent; ent = Entities.FindByName(ent, `ammopack_script`); ) { ent.Destroy(); } for (local ent; ent = Entities.FindByName(ent, `shotgun_text`); ) { ent.Destroy(); } SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(-404, 674, 360) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(486, 486, 370) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(841, -770, 370) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(-891, -596, 370) automaterialize = true }) SpawnEntityFromTable(`point_worldtext`, { targetname = `shotgun_text` origin = Vector(-970, -2200, 548) angles = Vector(0, 90, 0) textsize = 9 message = `Shotguns have custom upgrades\nsee the custom upgrades menu` }) SpawnEntityFromTable(`point_worldtext`, { targetname = `shotgun_text` origin = Vector(620, -2200, 548) angles = Vector(0, 90, 0) textsize = 9 message = `Shotguns have custom upgrades\nsee the custom upgrades menu` }) " } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Support Limited Where spawnbot_left TotalCount 16 SpawnCount 4 MaxActive 4 WaitBeforeStarting 10 WaitBetweenSpawns 12 TotalCurrency 50 TFBot { Template T_TFBot_Heavyweapons_Gnome_NoCrit } } WaveSpawn { Name w4a_gsoldier Where spawnbot TotalCount 10 SpawnCount 5 MaxActive 10 WaitBeforeStarting 0 WaitBetweenSpawns 20 TotalCurrency 150 Squad { TFBot { Template T_TFBot_Giant_Soldier_HomingRocket Attributes AlwaysCrit } TFBot { Template T_TFBot_Pyro_Airblast_Armored } TFBot { Template T_TFBot_Pyro_Airblast_Armored } TFBot { Template T_TFBot_Pyro_Airblast_Armored } TFBot { Template T_TFBot_Pyro_Airblast_Armored } } } WaveSpawn { Name w4b_gsoldier Where spawnbot TotalCount 8 SpawnCount 8 MaxActive 8 WaitForAllDead w4a_gsoldier WaitBeforeStarting 0 TotalCurrency 150 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons Skill Normal } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } } } WaveSpawn { Name w4b_demo Where spawnbot TotalCount 10 SpawnCount 10 MaxActive 10 WaitForAllDead w4a_gsoldier WaitBeforeStarting 10 TotalCurrency 100 TFBot { Template T_TFBot_Demo_IronBomber_Burst } } WaveSpawn { Name w4c_gsoldier Where spawnbot TotalCount 6 SpawnCount 6 MaxActive 6 WaitForAllDead w4b_gsoldier WaitBeforeStarting 0 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Soldier_HomingRocket_Burst Attributes AlwaysCrit } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Giant_Heavyweapons_Deflector_HighFrequency Skill Normal } } } WaveSpawn { Name w4c_demo Where spawnbot TotalCount 10 SpawnCount 10 MaxActive 10 WaitForAllSpawned w4b_demo WaitForAllDead w4b_gsoldier WaitBeforeStarting 10 TotalCurrency 100 TFBot { Template T_TFBot_Demo_IronBomber_Burst } } WaveSpawn { Support Limited Where spawnbot_left TotalCount 10 SpawnCount 2 MaxActive 2 WaitForAllDead w4b_gsoldier WaitBeforeStarting 12 WaitBetweenSpawns 12 TotalCurrency 100 TFBot { Template T_TFBot_Heavyweapons_Gnome_NoCrit } } } // Wave 5 --------------------------------------------------------------------------------------------------------- Wave { InitWaveOutput { Target bignet Action RunScriptCode Param " IncludeScript(`tankextensions_main`, getroottable()); IncludeScript(`tankextensions/vactank`, getroottable()); EntFire(`bombpath_choose_relay`, `Disable`); EntFire(`bombpath_choose_relay`, `CancelPending`); EntFire(`bombpath_clearall_relay`, `Trigger`, ``, 0.1); EntFire(`bombpath_arrows_clear_relay`, `Trigger`, ``, 0.1); EntFire(`bombpath_left_relay`, `Trigger`, ``, 0.2); EntFire(`bignet`, `RunScriptFile`, `melee_deflect_sound.nut`); EntFire(`bignet`, `RunScriptFile`, `customwep_deflect_streak.nut`); EntFire(`bignet`, `RunScriptFile`, `customwep_scorch_strike.nut`); EntFire(`bignet`, `RunScriptFile`, `errorhandler.nut`); for (local ent; ent = Entities.FindByName(ent, `ammopack_script`); ) { ent.Destroy(); } for (local ent; ent = Entities.FindByName(ent, `shotgun_text`); ) { ent.Destroy(); } SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(-404, 674, 360) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(486, 486, 370) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(841, -770, 370) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(-891, -596, 370) automaterialize = true }) SpawnEntityFromTable(`point_worldtext`, { targetname = `shotgun_text` origin = Vector(-970, -2200, 548) angles = Vector(0, 90, 0) textsize = 9 message = `Shotguns have custom upgrades\nsee the custom upgrades menu` }) SpawnEntityFromTable(`point_worldtext`, { targetname = `shotgun_text` origin = Vector(620, -2200, 548) angles = Vector(0, 90, 0) textsize = 9 message = `Shotguns have custom upgrades\nsee the custom upgrades menu` }) " } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name w5b_gscout Where spawnbot TotalCount 1 SpawnCount 1 MaxActive 1 WaitBeforeStarting 0 TotalCurrency 50 TFBot { TEmplate T_TFBot_Giant_Scout_Fast } } WaveSpawn { Name w5a_demo Where spawnbot TotalCount 10 SpawnCount 10 MaxActive 10 WaitBeforeStarting 6 TotalCurrency 50 TFBot { Template T_TFBot_Demoman_Knight } } WaveSpawn { Name w5a_tank TotalCount 1 WaitBeforeStarting 5 TotalCurrency 150 Tank { Health 25000 Speed 75 Name "tankboss" StartingPathTrackNode "path2" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name w5a_gpyro Where spawnbot_right TotalCount 2 SpawnCount 1 MaxActive 2 WaitBeforeStarting 5 WaitBetweenSpawns 20 TotalCurrency 150 TFBot { Template T_TFBot_Giant_Pyro_DragonsFury } } WaveSpawn { Name w5a_vactank TotalCount 1 WaitBeforeStarting 30 TotalCurrency 100 Tank { Health 12500 Speed 75 Name "vactank_fire" StartingPathTrackNode "path1" ClassIcon tank_vac_fire OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name w5a_soldier Where spawnbot TotalCount 8 SpawnCount 8 MaxActive 8 WaitBeforeStarting 25 TotalCurrency 50 TFBot { Template T_TFBot_Soldier_SlowBarrage } } WaveSpawn { Name w5b_soldier Where spawnbot TotalCount 24 SpawnCount 4 MaxActive 8 WaitForAllSpawned w5a_soldier WaitBeforeStarting 10 WaitBetweenSpawns 8 TotalCurrency 50 TFBot { Template T_TFBot_Soldier_SlowBarrage } } WaveSpawn { Name w5a_gscout Where spawnbot TotalCount 1 SpawnCount 1 MaxActive 1 WaitForAllDead w5a_vactank WaitBeforeStarting 0 TotalCurrency 50 TFBot { TEmplate T_TFBot_Giant_Scout_Fast } } WaveSpawn { Support 1 Where spawnbot SpawnCount 3 MaxActive 6 WaitForAllSpawned w5b_gscout WaitForAllDead w5b_soldier WaitBeforeStarting 10 WaitBetweenSpawns 5 TFBot { Template T_TFBot_SuicideBuster } } WaveSpawn { Support 1 Where spawnbot SpawnCount 2 MaxActive 4 WaitForAllSpawned w5b_gscout WaitForAllDead w5b_soldier WaitBeforeStarting 8 WaitBetweenSpawns 8 TFBot { Class Heavy Skill Easy } } WaveSpawn { Name w5c_gdemoknight Where spawnbot TotalCount 12 SpawnCount 4 MaxActive 8 WaitForAllSpawned w5b_gscout WaitForAllDead w5b_soldier WaitBeforeStarting 6 WaitBetweenSpawns 12 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_DemoMan_PrinceTavish } TFBot { Template T_TFBot_Medic_Megaheal } TFBot { Template T_TFBot_Medic_Megaheal } TFBot { Template T_TFBot_Medic_Megaheal } } } } // Wave 6 --------------------------------------------------------------------------------------------------------- Wave { InitWaveOutput { Target bignet Action RunScriptCode Param " EntFire(`bombpath_choose_relay`, `Disable`); EntFire(`bombpath_choose_relay`, `CancelPending`); EntFire(`bombpath_clearall_relay`, `Trigger`, ``, 0.1); EntFire(`bombpath_arrows_clear_relay`, `Trigger`, ``, 0.1); EntFire(`bombpath_left_relay`, `Trigger`, ``, 0.2); EntFire(`bignet`, `RunScriptFile`, `melee_deflect_sound.nut`); EntFire(`bignet`, `RunScriptFile`, `customwep_deflect_streak.nut`); EntFire(`bignet`, `RunScriptFile`, `customwep_scorch_strike.nut`); EntFire(`bignet`, `RunScriptFile`, `errorhandler.nut`); for (local ent; ent = Entities.FindByName(ent, `ammopack_script`); ) { ent.Destroy(); } for (local ent; ent = Entities.FindByName(ent, `shotgun_text`); ) { ent.Destroy(); } SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(-404, 674, 360) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(486, 486, 370) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(841, -770, 370) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(-891, -596, 370) automaterialize = true }) SpawnEntityFromTable(`point_worldtext`, { targetname = `shotgun_text` origin = Vector(-970, -2200, 548) angles = Vector(0, 90, 0) textsize = 9 message = `Shotguns have custom upgrades\nsee the custom upgrades menu` }) SpawnEntityFromTable(`point_worldtext`, { targetname = `shotgun_text` origin = Vector(620, -2200, 548) angles = Vector(0, 90, 0) textsize = 9 message = `Shotguns have custom upgrades\nsee the custom upgrades menu` }) " } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name w6a_gpyro Where spawnbot TotalCount 4 SpawnCount 4 MaxActive 4 TotalCurrency 150 Squad { TFBot { Template T_TFBot_Giant_Pyro Attributes AlwaysFireWeapon } TFBot { Template T_TFBot_Medic_BigHeal_Armored } TFBot { Template T_TFBot_Medic_BigHeal_Armored } TFBot { Template T_TFBot_Medic_BigHeal_Armored } } } WaveSpawn { Name w6a_gauntlet Where spawnbot TotalCount 8 SpawnCount 2 MaxActive 8 WaitBeforeStarting 0 WaitBetweenSpawns 6 TotalCurrency 50 TFBot { Template T_TFBot_Heavyweapons_Fist } } WaveSpawn { Name w6a_scout Where spawnbot TotalCount 20 SpawnCount 5 MaxActive 10 WaitBeforeStarting 10 WaitBetweenSpawns 7 TotalCurrency 50 TFBot { Template T_TFBot_Scout_Fish Skill Expert Attributes AlwaysCrit ClassIcon scout_fish_nys } } WaveSpawn { Name w6b_giant Where spawnbot TotalCount 4 SpawnCount 4 MaxActive 4 WaitForAllDead w6a_gpyro WaitBeforeStarting 20 TotalCurrency 150 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons Skill Normal } TFBot { Template T_TFBot_Medic_BigHeal_Armored } TFBot { Template T_TFBot_Medic_BigHeal_Armored } TFBot { Template T_TFBot_Medic_BigHeal_Armored } } } WaveSpawn { Name w6b_giant Where spawnbot TotalCount 2 SpawnCount 2 MaxActive 2 WaitForAllDead w6a_gpyro WaitBeforeStarting 10 TotalCurrency 150 Squad { TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage AimOffset "0 0 40" ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "penetrate teammates" 1 } } TFBot { Template T_TFBot_Giant_Pyro Skill Expert ClassIcon pyro_reflect Attributes AlwaysCrit Item "Traffic Cone" } } } WaveSpawn { Support 1 Where spawnbot_right TotalCount 20 SpawnCount 3 MaxActive 6 WaitForAllSpawned w6a_scout WaitBeforeStarting 10 WaitBetweenSpawns 5 TFBot { Template T_TFBot_Pyro_Powerjack } } WaveSpawn { Name w6c_gsoldier Where spawnbot TotalCount 8 SpawnCount 8 MaxActive 8 WaitBeforeStarting 0 WaitForAllDead w6b_giant TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Soldier_HomingRocket_Spammer } TFBot { Template T_TFBot_Giant_Medic_Regen } TFBot { Template T_TFBot_Medic_Vac_Fire } TFBot { Template T_TFBot_Medic_Vac_Fire } TFBot { Template T_TFBot_Medic_Vac_Fire } TFBot { Template T_TFBot_Medic_Vac_Fire } TFBot { Template T_TFBot_Giant_Pyro Skill Expert ClassIcon pyro_reflect Attributes AlwaysCrit Item "Traffic Cone" } TFBot { Template T_TFBot_Giant_Pyro Skill Expert ClassIcon pyro_reflect Attributes AlwaysCrit Item "Traffic Cone" } } } } // Wave 7 --------------------------------------------------------------------------------------------------------- Wave { InitWaveOutput { Target bignet Action RunScriptCode Param " EntFire(`bombpath_choose_relay`, `Disable`); EntFire(`bombpath_choose_relay`, `CancelPending`); EntFire(`bombpath_clearall_relay`, `Trigger`, ``, 0.1); EntFire(`bombpath_arrows_clear_relay`, `Trigger`, ``, 0.1); EntFire(`bombpath_left_relay`, `Trigger`, ``, 0.2); EntFire(`bignet`, `RunScriptFile`, `melee_deflect_sound.nut`); EntFire(`bignet`, `RunScriptFile`, `customwep_deflect_streak.nut`); EntFire(`bignet`, `RunScriptFile`, `customwep_scorch_strike.nut`); EntFire(`bignet`, `RunScriptFile`, `errorhandler.nut`); EntFire(`bignet`, `RunScriptFile`, `pyro_boss_clown.nut`) for (local ent; ent = Entities.FindByName(ent, `ammopack_script`); ) { ent.Destroy(); } for (local ent; ent = Entities.FindByName(ent, `shotgun_text`); ) { ent.Destroy(); } SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(-404, 674, 360) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(486, 486, 370) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(841, -770, 370) automaterialize = true }) SpawnEntityFromTable(`item_ammopack_medium`, { targetname = `ammopack_script` origin = Vector(-891, -596, 370) automaterialize = true }) SpawnEntityFromTable(`point_worldtext`, { targetname = `shotgun_text` origin = Vector(-970, -2200, 548) angles = Vector(0, 90, 0) textsize = 9 message = `Shotguns have custom upgrades\nsee the custom upgrades menu` }) SpawnEntityFromTable(`point_worldtext`, { targetname = `shotgun_text` origin = Vector(620, -2200, 548) angles = Vector(0, 90, 0) textsize = 9 message = `Shotguns have custom upgrades\nsee the custom upgrades menu` }) " } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name w7a_gsoldier Where spawnbot TotalCount 12 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 15 TotalCurrency 150 Squad { TFBot { Template T_TFBot_Giant_Soldier_RocketPush } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } } } WaveSpawn { Name w7a_soldier Where spawnbot TotalCount 24 SpawnCount 4 MaxActive 8 WaitBeforeStarting 6 WaitBetweenSpawns 5 TotalCurrency 50 TFBot { Template T_TFBot_Soldier_DirectHit } } WaveSpawn { Support 1 Where spawnbot_right SpawnCount 2 MaxActive 4 WaitBeforeStarting 5 WaitBetweenSpawns 12 WaitForAllSpawned w7a_soldier TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ } } WaveSpawn { Name w7b_tank TotalCount 1 WaitBeforeStarting 8 TotalCurrency 150 WaitForAllDead w7a_gsoldier WaitForAllSpawned w7a_soldier Tank { Health 25000 Speed 75 Skin 1 Name "tankboss" StartingPathTrackNode "path1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name w7b_gsniper Where spawnbot TotalCount 8 SpawnCount 2 MaxActive 4 WaitBeforeStarting 3 WaitBetweenSpawns 8 WaitForAllDead w7a_gsoldier WaitForAllSpawned w7a_soldier TotalCurrency 100 TFBot { Template T_TFBot_Giant_Sniper_Bow_Penetrate_Burst Attributes AlwaysCrit } } WaveSpawn { Name w7b_gpyro Where spawnbot TotalCount 4 SpawnCount 1 MaxActive 2 WaitBeforeStarting 8 WaitBetweenSpawns 8 WaitForAllDead w7a_gsoldier WaitForAllSpawned w7a_soldier TotalCurrency 50 TFBot { Template T_TFBot_Giant_Pyro_Powerjack Attributes AlwaysCrit } } WaveSpawn { Name w7c_gsoldier Where spawnbot TotalCount 6 SpawnCount 6 MaxActive 6 WaitBeforeStarting 5 WaitForAllDead w7b_gsniper TotalCurrency 50 Squad { TFBot { Template T_TFBot_Giant_Soldier_Extended_Concheror Attributes AlwaysCrit } TFBot { Template T_TFBot_Heavy_Armored } TFBot { Template T_TFBot_Heavy_Armored } TFBot { Template T_TFBot_Heavy_Armored } TFBot { Template T_TFBot_Heavy_Armored } TFBot { Template T_TFBot_Heavy_Armored } } } WaveSpawn { Name w7c_gsoldier Where spawnbot TotalCount 2 SpawnCount 2 MaxActive 2 WaitBeforeStarting 0 WaitForAllDead w7b_gsniper TotalCurrency 50 Squad { TFBot { Template T_TFBot_Giant_Heavy_BrassBeast Skill Normal } TFBot { Template T_TFBot_Giant_Soldier_Extended_Concheror Attributes AlwaysCrit } } } WaveSpawn { Name w7d_pyroboss Where spawnbot WaitBeforeStarting 5 WaitForAllDead w7c_gsoldier TotalCount 1 MaxActive 1 SpawnCount 1 TFBot { Template T_TFBot_Giant_Pyro_HomingRocket_Boss } } WaveSpawn { Support 1 Where spawnbot TotalCount 10 MaxActive 8 SpawnCount 4 WaitBeforeStarting 5 WaitBetweenSpawns 16 WaitForAllDead w7c_gsoldier Squad { TFBot { Template T_TFBot_Pyro_Backburner } TFBot { Template T_TFBot_Medic_QuickFix ItemAttributes { ItemName "The Quick-Fix" "ubercharge rate penalty" 0.01 } } } } WaveSpawn { Support Limited Where spawnbot_mission_spy TotalCount 5 MaxActive 5 SpawnCount 5 WaitBeforeStarting 35 WaitForAllDead w7c_gsoldier TFBot { Class Spy Skill Expert Item "Halloween Mask - Pyro" } } } }