//Accursed Aggrievocation, by Seelpit //Advanced difficulty //Various models by lite: //- Robot spawnpoint //- Crit banner flag //A scary advanced that utilizes a little bit of rafmod for some funky bots and waves! //Main gimmicks: //- RED Bots //- Powered-up, Australium bots //- A few alternative objectives //spawnbot names: //spawnbot_invasion (drop right), spawnbot_tunnel (tunnel left), spawnbot (middle), //spawnbot_scattered (all), spawnbot_mission_sniper (shack), spawnbot_mission_spy //spawnbot_limited_a, spawnbot_limited_b, spawnbot_limited_c, spawnbot_limited_d //spawnbot_invasion_limited_a, spawnbot_invasion_limited_b, spawnbot_invasion_limited_c, spawnbot_invasion_limited_d //spawnbot_tunnel_limited_a, spawnbot_tunnel_limited_b, spawnbot_tunnel_limited_c, spawnbot_tunnel_limited_d //spawnbot relays: //limited_spawns_enable_a_relay, limited_spawns_enable_b_relay, limited_spawns_enable_c_relay, limited_spawns_enable_d_relay //limited_spawns_disable_a_relay, limited_spawns_disable_b_relay, limited_spawns_disable_c_relay, limited_spawns_disable_d_relay //Tank stuff: //boss_deploy_relay, tank_path_1; I assume dead relay not necessary //Flank tags: //flank_frontright, flank_frontleft //flank_upperright, flank_upperleft //InitWaveOutput path choices: //bombpath_centerleft_relay, bombpath_centerright_relay //bombpath_upperleft_relay, bombpath_upperright_relay //Themes, because I love using those! //Main theme: a cult raises a bunch of stuff from the dead, or elsewhere. //Might also involve eldritch gods. //Payout: (Bonuses incl.) // Start Paid End //W1 950 850 1800 //W2 1800 900 2800 //W3 2800 850 3750 //W4 3750 950 4800 //W5 4800 1400 6300 //W6 6300 500 6900 //Wave 1 - Afterlife Atrocities THEME: general "reanimated" bots, zombies, and disease. //Wave 2 - Cultist Calamity THEME: fevered followers of the Monocultus. //Wave 4 - Terrorized Tomb THEME: Sun God's worshipers. Ends with duo boss (wow multiple multi bosses in a row; maybe swap..?) //Wave 5 - Forlorn Flameborn THEME: DS3 references (and thus, fire damage once more). //Wave 6 - Warzone Wreaking THEME: War-themed bots and such. //Wave ? - Pumpkinton Patricide THEME: kill the entire Sir Pumpkinton family tree. //Wave 7 - Universal Uncertainty: Entropy // // Universal Collapse - trigger_push stuff, maybe? Reverse airblast? // Check if push works with negative value! // Falling Star: maybe falling tank, like Radahn attack! // Meteor Rain (duh) // Supernova (note: stuns SUCK to fight!!) // Final Entropy: //Division of boss/non-boss waves PER THEME: //Afterlife Atrocities No boss (early wave) //Cultist Calamity MiniBoss (only ~2x health, but still UseBossHealthBar) //Terrorized Tomb 2x boss //Forlorn Flameborn 0x boss //Warzone Wreaking 1x or 2x MiniBoss //Pumpkinton Patricide 3x boss //Universal Uncertainty 1x superboss //Note on Healing Aura: restores 324 health at max, and 141 health at minimum, with 32 hp/sec for slow. //Technically a little less than 4 sec since 96 hp/sec for max? 3.375? //basically a little more than 3 sec. //! might also heal 50 health instantly? //yes! //at 50% healing it restores only 98 at max, with 25 coming from instaheal, so about 72-3 otherwise. //and 2x healing correctly results in 648/282 //basically about qfix heal rate??? //Testing notes! //Overall Sniper still has a very easy time, "uncontested". //Could increase some projspeed of xbow meds? //W1 //- Finale came out too disconnected from rest, make it spawn more fluently into the rest!! //- //W2 //- Monoculus may be blocking bullets...make non-solid if possible. //W3 //- Start remains palatable, maybe even too easy. Syringe Meds still don't do much, alas. //- Scouts + Pyros can come out a bit late, maybe have them split in 2 wavespawns? //- Deity of Dawn could have way less health in phase 2, to have it be a true glass rusher //- It could be interesting to have some bots start to use the flanks, here. //W4 //- "Fodder" bots should have ranged attacks to up the general spam. The team can take it. //- Needs to be a bit longer. Enlengthen some subs. //- Does Lord of Cinders Past need to be human, perhaps? //W5 //W6 // //Judge demo notes //W1 //W2 //W3 //W4 //W5 //W6 //Changelog //W1 //- NoFormation 1 put on the Demos and Medics due to weird Medic behavior. //- Added a tank to the second subwave! //W2 //- Turned all Tri-Burst soldiers into Direct Hit variants. //W3 //- Giant Solar Scholar Medic is now a Blutsauger Medic. Its skill is upped to Hard (was default, Easy, by accident) //- Giant Pharaoh Heavy fires and reloads faster, but deals less damage. Swaps to Fists of Steel when its target is at range now! //- //W4 //W5 //W6 #base robot_standard.pop #base robot_giant.pop // #base athazar_weapon_pack //TEMP - TESTING ONLY. #base judge_restricts.pop popuwashyon { StartingCurrency 950 //A safe and solid amount that allows comfy upgrades...and lets me use stronger subwaves >:3 RespawnWaveTime 3 FixedRespawnWaveTime 1 //Feels better...probably CanBotsAttackWhileInSpawnRoom No //Absolutely not. // EventPopFile Halloween // ZombiesNoWave666 1 RobotLimit 25 //Delicious extra slots. TextPrintTime 0 ForceHoliday 2 //Enforces Halloween mode, but does not enable wave 666 and zombie bots BotsUsePlayerTeleporters 0 //just walk lmao NoThrillerTaunt 1 //disabled! You can tauntkill to your heart's content. NoCritPumpkin 1 //TEMP - TESTING ONLY. // MaxRedPlayers 5 // BonusRatioHalf 1.1 // BonusRatioFull 1.1 PrecacheModel "models/props_mvm/robot_hologram_color.mdl" PrecacheModel "models/props_mvm/mvm_revive_tombstone_blu.mdl" PrecacheModel "models/props_mvm/robot_spawnpoint.mdl" PrecacheModel "models/weapons/c_models/c_critbanner/c_critbanner.mdl" PrecacheModel "models/props_moonbase/moon_rock_small001.mdl" //Athazar's weapon pack // PrecacheModel "models/ctf2w/weapons/c_models/c_payoff/c_payoff.mdl" // PrecacheModel "models/workshop/weapons/c_models/c_nailgun/c_nailgun.mdl" // PrecacheModel "models/ctf2w/weapons/c_models/c_spitfire_rocketlauncher/c_spitfire_rocketlauncher.mdl" // PrecacheModel "models/ctf2w/weapons/c_models/c_spitfire_rocketlauncher/w_rocket_spitfire.mdl" // PrecacheModel "models/weapons/c_models/c_solar_carbonizer/c_solar_carbonizer.mdl" // PrecacheModel "models/weapons/c_models/c_calefactor/c_calefactor.mdl" // PrecacheModel "models/ctf2w/weapons/c_models/c_techlauncher/c_techlauncher.mdl" // PrecacheModel "models/ctf2w/weapons/c_models/c_techlauncher/shellprojectile.mdl" // PrecacheModel "models/weapons/c_models/c_canned_ration/c_canned_ration.mdl" // PrecacheModel "models/weapons/c_models/c_canned_ration/c_ration_plate.mdl" // PrecacheModel "models/weapons/c_models/c_gamma_gazer/c_gamma_gazer_1.mdl" // PrecacheModel "models/ctf2w/weapons/w_models/w_mini_pda.mdl" // PrecacheModel "models/weapons/w_models/w_pill.mdl" // PrecacheModel "models/weapons/c_models/c_hypodermic_injector/c_hypodermic_injector.mdl" // PrecacheModel "models/ctf2w/weapons/c_models/c_atgun/c_atgun.mdl" // PrecacheModel "models/weapons/c_models/c_laserbow/c_laserbow_nocull.mdl" // PrecacheModel "models/weapons/c_models/c_brick/c_brick.mdl" // PrecacheModel "models/weapons/c_models/c_tranquilizer/c_revolver.mdl" // PrecacheModel "models/weapons/c_models/c_timely_demise/c_timely_demise.mdl" // PrecacheModel "models/weapons/v_models/v_timebomb/v_timebomb.mdl" // PrecacheModel "models/weapons/w_models/w_rocketbullet.mdl" // PrecacheModel "models/buildables/mini_dispenser_faithful.mdl" // PrecacheModel "models/buildables/mini_dispenser_faithful_light.mdl" PointTemplates { PT_AutoRemove { logic_relay { "OnSpawn" "!self,Kill,0.01,-1" } } //Massive shoutout to Pealover for making this in Skull Scamper //The tech was there in rafmod, but this was the first time I recall it being used. //Well, outside of washy's randomizer. PT_InfoBooth { trigger_multiple { "targetname" "infobooth_trigger" "StartDisabled" "0" "spawnflags" "1" "origin" "3542 -366 -12" "mins" "-46 -46 -51" //can stay assuming same prop is used "maxs" "62 46 151" "OnStartTouch" "infobooth_menu,$DisplayMenu,!activator,0,-1" "OnEndTouch" "infobooth_menu,$HideMenu,!activator,1,-1" "OnEndTouch" "menu*,$HideMenu,!activator,1,-1" } func_forcefield { "targetname" "infobooth_wall" "origin" "3542 -366 -12" "mins" "-26 -46 -51" //can stay assuming same prop is used "maxs" "42 36 151" "TeamNum" "3" "StartDisabled" "0" "renderfx" "0" "rendermode" "10" } prop_dynamic { "origin" "3542 -376 -12" //CHANGE (identical to trigger) "targetname" "infobooth" "solid" "0" "rendermode" "0" "renderfx" "0" "renderamt" "255" "modelscale" "0.8" "model" "models/props_medieval/ticket_booth/ticket_booth.mdl" "fadescale" "1" "fademindist" "-1" "disableshadows" "1" "disablereceiveshadows" "0" "DisableBoneFollowers" "1" "angles" "0 -90 0" } prop_dynamic { "origin" "3542 -366 -12" "targetname" "infobooth_fella" "solid" "0" "rendermode" "0" "renderfx" "0" "renderamt" "255" "model" "models/player/spy.mdl" "DefaultAnim" "competitive_winnerstate_idle" "fadescale" "1" "fademindist" "-1" "disableshadows" "1" "disablereceiveshadows" "0" "DisableBoneFollowers" "1" "angles" "0 0 0" } prop_dynamic_ornament //assassin's attire { "targetname" "infobooth_fella_cloths" "InitialOwner" "infobooth_fella" "spawnflags" "256" "DisableBoneFollowers" "1" "disableshadows" "1" "solid" "0" "model" "models/workshop/player/items/spy/spr18_assassins_attire/spr18_assassins_attire.mdl" } prop_dynamic_ornament //hat of cards { "targetname" "infobooth_fella_cloths" "InitialOwner" "infobooth_fella" "spawnflags" "256" "DisableBoneFollowers" "1" "disableshadows" "1" "solid" "0" "model" "models/player/items/spy/spy_cardhat.mdl" } prop_dynamic_ornament //hopeful heart { "targetname" "infobooth_fella_cloths" "InitialOwner" "infobooth_fella" "spawnflags" "256" "DisableBoneFollowers" "1" "disableshadows" "1" "solid" "0" "model" "models/workshop/player/items/all_class/robotarm_donator/robotarm_donator_gem.mdl" } logic_case { "targetname" "infobooth_menu" "case16" "Welcome to the info booth! Select an option for more details!|0|Cancel" "case01" "Bonus cash?" "case02" "Bomb slowdown?" "case03" "Friendly bots?" "case04" "Battalion's effect?" "OnCase01" "menu_bonus,$DisplayMenu,!activator,0,-1" "OnCase02" "menu_bombslow,$DisplayMenu,!activator,0,-1" "OnCase03" "menu_ally,$DisplayMenu,!activator,0,-1" "OnCase04" "menu_batts,$DisplayMenu,!activator,0,-1" } logic_case { "targetname" "menu_bonus" "case16" "Bonus cash changes|0|Cancel" "case01" "Bonuses are no longer rewarded." "case02" "But don't worry! Your pay will be more than adequate." "case03" "If anything, you won't be penalized for missing a single stack now." "case04" "Click anywhere to go back." "OnCase01" "infobooth_menu,$DisplayMenu,!activator,0,-1" "OnCase02" "infobooth_menu,$DisplayMenu,!activator,0,-1" "OnCase03" "infobooth_menu,$DisplayMenu,!activator,0,-1" "OnCase04" "infobooth_menu,$DisplayMenu,!activator,0,-1" } logic_case { "targetname" "menu_bombslow" "case16" "Bomb slowdown changes|0|Cancel" "case01" "Normally, enemies will move at reduced speed when carrying the bomb." "case02" "However..." "case03" "If an enemy is using a melee weapon, this reduction is lessened!" "case04" "Click anywhere to go back." "OnCase01" "infobooth_menu,$DisplayMenu,!activator,0,-1" "OnCase02" "infobooth_menu,$DisplayMenu,!activator,0,-1" "OnCase03" "infobooth_menu,$DisplayMenu,!activator,0,-1" "OnCase04" "infobooth_menu,$DisplayMenu,!activator,0,-1" } logic_case { "targetname" "menu_ally" "case16" "Ally bots|0|Cancel" "case01" "Eventually, you'll start receiving some ally bots." "case02" "You'll be able to see where they spawn - just outside here, usually." "case03" "Don't worry, they won't suddenly turn evil on you. Probably." "case04" "Click anywhere to go back." "OnCase01" "infobooth_menu,$DisplayMenu,!activator,0,-1" "OnCase02" "infobooth_menu,$DisplayMenu,!activator,0,-1" "OnCase03" "infobooth_menu,$DisplayMenu,!activator,0,-1" "OnCase04" "infobooth_menu,$DisplayMenu,!activator,0,-1" } logic_case { "targetname" "menu_batts" "case16" "Battalion's Effect|0|Cancel" "case01" "Your Battalion's Backup normally blocks crits, as you know." "case02" "For some reason, however, the effect for your enemies is weaker." "case03" "They still receive less damage, but do not block critical hits at all!" "case04" "Click anywhere to go back." "OnCase01" "infobooth_menu,$DisplayMenu,!activator,0,-1" "OnCase02" "infobooth_menu,$DisplayMenu,!activator,0,-1" "OnCase03" "infobooth_menu,$DisplayMenu,!activator,0,-1" "OnCase04" "infobooth_menu,$DisplayMenu,!activator,0,-1" } } ///////////////////////////////////////////////// // Afterlife Atrocities ///////////////////////////////////////////////// PT_CaberToss { OnSpawnOutput { Target "cabertoss_mimic" Action $SetOwner Param !activator //as it turns out, !parent does not exist in I/O??? Delay 0.02 } OnSpawnOutput { Target "cabertoss_mimic" Action FireOnce Delay 0.05 } OnSpawnOutput { Target "cabertoss_mimic" Action Kill Delay 0.08 } tf_point_weapon_mimic { "targetname" "cabertoss_mimic" "origin" "0 0 0" "angles" "0 -90 0" "teamnum" "3" //blue "$weaponname" "Caber Toss" } } ///////////////////////////////////////////////// // Cultist Calamity ///////////////////////////////////////////////// PT_JarateJarProjectile { tf_projectile_jar { "origin" "40 0 0" "teamnum" "3" // 2 - Red team, 3 - Blu team } } ///////////////////////////////////////////////// // Terrorized Tomb ///////////////////////////////////////////////// PT_RotatingAxe { OnSpawnOutput { Target "!activator" Action "addoutput" Param "rendermode 10" Delay 0.01 } prop_dynamic { "targetname" "axe1" "parentname" "rot" "model" "models/weapons/c_models/c_axtinguisher/c_axtinguisher_pyro.mdl" "angles" "0 0 0" } func_rotating { "targetname" "rot" "spawnflags" 73 //not solid, spin on Y, start active "fanfriction" 100 "maxspeed" 400 } } PT_SunShot { NoFixup 1 OnSpawnOutput { Target "sunshot_mimic" Action SetParent Param !activator Delay 0.05 } OnSpawnOutput { Target "sunshot_mimic" Action $SetOwner Param !activator //as it turns out, !parent does not exist in I/O??? Delay 0.1 } tf_point_weapon_mimic { "targetname" "sunshot_mimic" "origin" "0 0 0" "angles" "0 -90 0" "teamnum" "3" //blue "$weaponname" "Sun Shooter" } } PT_Deity_Titles { //Title cards I stole from royal with permission. //In that sense, it's no longer stealing! game_text { "origin" "1984 1984 99999" "targetname" "upper_text" "message" "SOLAR TWINS" "x" "-1" "y" "0.4" "spawnflags" "1" "effect" "2" "channel" "2" "color" "255 245 210" "fxtime" "0.2" "fadeout" "1" //"fadein" "0" "holdtime" "5" } game_text { "origin" "1984 1984 99999" "targetname" "middle_text" "message" "DEITY OF DAWN" "x" "-1" "y" "0.45" "channel" "4" "spawnflags" "1" "color" "255 225 130" "fadein" "0.2" "fadeout" "1" "holdtime" "4.6" } game_text { "origin" "1984 1984 99999" "targetname" "lower_text" "message" "DEITY OF DUSK" "x" "-1" "y" "0.5" "channel" "1" "spawnflags" "1" "color" "255 190 100" "fadein" "0.2" "fadeout" "1" "holdtime" "4.2" } logic_relay { "targetname" "deity_text_relay" "OnTrigger" "upper_text,Display,,0,-1" "OnTrigger" "middle_text,Display,,0.4,-1" "OnTrigger" "lower_text,Display,,0.8,-1" } } PT_Deity_Dawn_dest { KeepAlive 1 NoFixup 1 OnParentKilledOutput { Target prop_dawn Action Enable Delay 0 } OnParentKilledOutput { Target particle_dawn* Action Start Delay 0 } OnParentKilledOutput { Target prop_dawn Action Kill Delay 2 } OnParentKilledOutput { Target particle_dawn* Action Stop Delay 2 } OnParentKilledOutput { Target particle_dawn* Action Kill Delay 2.1 } info_target //Will serve as the destination { "targetname" "destination_dawn" "origin" "0 0 -10" //Slightly lower than origin; may prevent stucking in ceiling/ground? } prop_dynamic { "targetname" "prop_dawn" "model" "models/props_mvm/mvm_revive_tombstone_blu.mdl" "solid" 0 "DisableBoneFollowers" 1 "defaultanim" "idle" "StartDisabled" 1 } info_particle_system { "targetname" "particle_dawn" "start_active" 0 "effect_name" "utaunt_arcane_yellow_parent" } info_particle_system { "targetname" "particle_dawn" "start_active" 0 "effect_name" "utaunt_spotlight_parent" } } ///////////////////////////////////////////////// // Forlorn Flameborn ///////////////////////////////////////////////// PT_SpellHealLogic { logic_relay { "targetname" "postheal_relay" "OnTrigger" "!activator,$ChangeAttributes,Heal,0,-1" "OnTrigger" "!activator,$ChangeAttributes,PostHeal,0.2,-1" } } //Rotating Eyelander template - made by rafradek!! Super cool from Midnight Patrol :3 PT_RotatingBlade { // OnSpawnOutput // { // Target "rot" // Action "addoutput" // Param "avelocity 0 400 0" // Delay 0.01 // } OnSpawnOutput { Target "!activator" Action "addoutput" Param "rendermode 10" Delay 0.01 } prop_dynamic { "targetname" "blade1" "parentname" "rot" "model" "models/weapons/c_models/c_claymore/c_claymore.mdl" "angles" "0 90 90" } func_rotating { "targetname" "rot" "spawnflags" 73 //not solid, spin on Y, start active "fanfriction" 100 "maxspeed" 400 } } PT_RotatingBladeShooter { tf_point_weapon_mimic { "targetname" "aimrocket_mimic" "origin" "0 0 0" "angles" "0 0 0" "teamnum" "3" //blue "$firetime" "1.6" "$preventshootparent" 1 "$weaponname" "Fire Blade" } } ///////////////////////////////////////////////// //Warzone Wreaking ///////////////////////////////////////////////// //Special thanks to lite for providing these + the base for texts! //Includes both the props, nobuild, and relays. PT_SpawnPoint { NoFixup 1 prop_dynamic { "targetname" "spawnpointprops" "model" "models/props_mvm/robot_spawnpoint.mdl" "defaultanim" "idle" "disableshadows" "1" // prevents shadow from nothing while disabled "skin" "3" // Skin 0 for Red, Skin 1 for Blue, Skin 2 for Gray, and Skin 3 to disable the hologram } //Preventing any trollage with sentries or teleporters func_nobuild { "targetname" "spawnpoint_nobuild" "origin" "3650 430 -17" "mins" "-36 -36 -10" "maxs" "36 36 98" //min 96 to not build on top, here's 2 free units of caution "TeamNum" "2" } logic_relay { "targetname" "spawnpoint_relay_r" "OnTrigger" "spawnpointprops,skin,0,0,-1" // When triggered, changes all "spawnpointprops" to use the Red skin (0) } logic_relay { "targetname" "spawnpoint_relay" "OnTrigger" "spawnpointprops,skin,3,0,-1" // When triggered, changes all "spawnpointprops" to use the Disabled skin (3) } } //Simple logics for engineers to swap between their shotgun and PDA. Original by royal. PT_SwitchShotgunSentry_Logic { logic_relay { "targetname" "switch_to_sentry_mode" "spawnflags" "2" "OnTrigger" "!self,EnableRefire,,0,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,5,0,-1" "OnTrigger" "!activator,$AddPlayerAttribute,disable weapon switch|1,0.01,-1" } logic_relay { "targetname" "switch_to_shotgun_mode" "spawnflags" "2" "OnTrigger" "!self,EnableRefire,,0,-1" "OnTrigger" "!activator,$RemovePlayerAttribute,disable weapon switch,0,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,0,0.1,-1" } } PT_RocketTurret { // NoFixup 1 OnSpawnOutput { Target "aimrocket_mimic" Action $SetOwner Param @e@m_hOwnerEntity@!activator Delay 0.05 } OnSpawnOutput { Target "aimrocket_mimic" Action SetParent Param !activator Delay 0.05 } logic_relay { "spawnflags" "2" "targetname" "aimrocket_firer" "OnSpawn" "aimrocket_firer,Trigger,,0.2,-1" "OnTrigger" "aimrocket_mimic,FireOnce,,0.2,-1" "OnTrigger" "aimrocket_mimic,FireOnce,,0.4,-1" "OnTrigger" "aimrocket_mimic,FireOnce,,0.6,-1" "OnTrigger" "aimrocket_mimic,FireOnce,,0.8,-1" "OnTrigger" "aimrocket_firer,Trigger,,1.8,-1" } tf_point_weapon_mimic { "targetname" "aimrocket_mimic" "origin" "0 0 0" "angles" "0 0 0" "teamnum" "3" //blue "$firetime" "1.6" "$preventshootparent" 1 "$weaponname" "Back Rocket" } } PT_BlimpBotTeleDest_A { OnSpawnOutput { Target "!activator" Action "color" Param "77 114 52" } OnParentKilledOutput { Target "destination_air" Action Kill Delay 1 } KeepAlive 1 info_target { "targetname" "destination_air" } } PT_BlimpBotTeleDest_B { OnSpawnOutput { Target "!activator" Action "color" Param "77 114 52" } OnParentKilledOutput { Target "destination_strike" Action Kill Delay 1 } KeepAlive 1 info_target { "targetname" "destination_strike" } } ///////////////////////////////////////////////// // Universal Uncertainty ///////////////////////////////////////////////// PT_Chief_Phase3Ent { //Dummy entity used to bar bots from spawning til phase swap. info_teleport_destination { "targetname" "chief_phase3_ent" } } PT_Chief_Phase4Ent { //Dummy entity used to bar bots from spawning til phase swap. info_teleport_destination { "targetname" "chief_phase4_ent" } } //Title for Entropy PT_Chief_Title { OnSpawnOutput { Target "upper_text" Action "Display" Delay 0 } OnSpawnOutput { Target "middle_text" Action "Display" Delay 0.4 } //Title cards I stole from royal with permission. //In that sense, it's no longer stealing! game_text { "origin" "1984 1984 99999" "targetname" "upper_text" "message" "SCOURGE OF STARS AND PLANETS, UNIVERSAL CERTAINTY" "x" "-1" "y" "0.4" "spawnflags" "1" "effect" "2" "channel" "2" "color" "230 99 170" "fxtime" "0.2" "fadeout" "1" //"fadein" "0" "holdtime" "5" } game_text { "origin" "1984 1984 99999" "targetname" "middle_text" "message" "ENTROPY" "x" "-1" "y" "0.5" "channel" "4" "spawnflags" "1" "color" "255 128 78" "fadein" "0.4" "fadeout" "1" "holdtime" "4.6" } } PT_MeteorPortal { // OnSpawnOutput // { // Target "meteorshooter_mimic" // Action $SetOwner // Param !activator // Delay 0.01 // } OnSpawnOutput { Target "meteorshooter_mimic" Action $RotateTowards Param hologram_middle Delay 0.01 } OnSpawnOutput { Target "meteorshooter_mimic" Action Kill Delay 10 } OnSpawnOutput { Target "meteorshooter_mimic" Action $StartFiring Delay 4 } tf_point_weapon_mimic { "targetname" "meteorshooter_mimic" "origin" "0 0 0" "angles" "0 0 0" "teamnum" "3" //blue "$weaponname" "Meteor Shooter" "$firetime" "0.8" "$weaponnosound" "1" "$modules" "rotator" // "$lookat" "aim" "$rotationspeedx" "350" "$rotationspeedy" "350" "$rotationlimitx" "180" "$rotationlimity" "180" } info_particle_system { "origin" "0 0 0" "targetname" "meteors_particle" "effect_name" "eb_death_vortex01" "start_active" 1 "parentname" "meteorshooter_mimic" } } PT_TeleportSpot { NoFixup 1 info_particle_system { "targetname" "$Particlename$" "effect_name" "eyeboss_tp_vortex" "start_active" "0" } info_teleport_destination { "targetname" "$Targetname$" } } PT_Chief_FinalAttack { OnSpawnOutput { Target "mimic_chief*" Action "$SetOwner" Param "!activator" Delay 0.016 } logic_relay { "targetname" "front_tele_relay" "OnTrigger" "particle_front*,Start,,0,-1" "OnTrigger" "particle_front*,Stop,,4,-1" "OnTrigger" "particle_front*,Kill,,4.1,-1" } logic_relay { "targetname" "finalattack_relay" "OnTrigger" "particle_chief_finalattack,Start,,0,-1" "OnTrigger" "!self,RunScriptCode,BossAttack_RelativeKnockback(),,0,-1" "OnTrigger" "particle_base*,Start,,0,-1" "OnTrigger" "particle_base*,Stop,,4,-1" "OnTrigger" "particle_base*,Kill,,4.1,-1" "OnTrigger" "mimic_chief_pomson,$StartFiring,,0.034,-1" "OnTrigger" "mimic_chief_pomson,$StopFiring,,3.034,-1" "OnTrigger" "mimic_chief_bison,$StartFiring,,2.934,-1" "OnTrigger" "mimic_chief_bison,$StopFiring,,5.934,-1" "OnTrigger" "mimic_chief_nuke,$StartFiring,,0.034,-1" "OnTrigger" "mimic_chief_nuke,$StopFiring,,3.034,-1" "OnTrigger" "particle_chief_finalattack,Stop,,2.5,-1" "OnTrigger" "particle_chief_finalattack,Kill,,2.52,-1" } info_particle_system { "targetname" "particle_chief_finalattack" "effect_name" "powerup_supernova_explode_blue" "start_active" 0 } tf_point_weapon_mimic { "targetname" "mimic_chief_pomson" "origin" "0 0 0" "angles" "0 -90 0" "teamnum" "3" //blue "$weaponname" "Desperation of Miquella" "$firetime" "0.07" } tf_point_weapon_mimic { "targetname" "mimic_chief_bison" "origin" "0 0 0" "angles" "0 -90 0" "teamnum" "3" //blue "$weaponname" "Miquella's Piercer" "$firetime" "0.07" } tf_point_weapon_mimic { "targetname" "mimic_chief_nuke" "origin" "0 0 0" "angles" "-80 0 0" "teamnum" "3" //blue "$weaponname" "True Light of Miquella" "$firetime" "3" } } ///////////////////////////////////////////////// // OLD: Doomsday of Darkness ///////////////////////////////////////////////// PT_ThunderStrike { // NoFixup 1 OnSpawnOutput { Target thunderstrike Action Kill Delay 2 } OnSpawnOutput { Target thunderstrike_warn Action Kill Delay 2 } OnSpawnOutput { Target thunderstrike_hurt Action Kill Delay 1.9 } OnSpawnOutput { Target thunderstrike Action Start Delay 1.8 } OnSpawnOutput { Target thunderstrike_hurt Action Enable Delay 1.8 } info_particle_system { "targetname" "thunderstrike" "start_active" 0 "effect_name" "utaunt_lightning_bolt" } info_particle_system { "targetname" "thunderstrike_warn" "start_active" 1 "effect_name" "utaunt_electricity_cloud_parent_WB" } trigger_hurt { "targetname" "thunderstrike_hurt" "origin" "0 0 0" "damage" "150" //actually 75 "damagetype" "256" //shock "damagemodel" "0" //normal "filtername" "filter_redteam" "spawnflags" "64" "StartDisabled" "1" "nodmgforce" "0" "mins" "-64 -64 -64" //this could probably catch you if you jump too low "maxs" "64 64 96" //either way this covers the indicator well enough } } PT_ThunderTarget { // NoFixup 1 env_entity_maker { "targetname" "thunderspawner" "spawnflags" "0" "EntityTemplate" "ThunderStrike" "PostSpawnSpeed" "0" "PostSpawnInheritAngles" "0" } info_target { "targetname" "target_thunder" "origin" "0 0 5" //just in case it'll clip into the floor or something } logic_relay { "targetname" "thunder_trigger" "OnSpawn" "!self,Trigger,,0.1,-1" "OnTrigger" "!self,FireUser1,,2,-1" "OnTrigger" "thunderspawner,ForceSpawnAtEntityOrigin,@p@!self,0,-1" "OnUser1" "!self,Trigger,,0.1,-1" } } //directly taken from Jurrell, gotem PT_PowerupLogic { NoFixup 1 logic_relay { "targetname" "powerup_logic_relay" "spawnflags" 2 "OnTrigger" "@p@powerup_haver_target*,$RemoveCond,91,0.1,-1" } } PT_PowerupLogic_Owned { OnSpawnOutput { Target "powerup_haver_target" Action SetParent Param "!activator" Delay 0.01 } OnParentKilledOutput { Target "item_powerup_rune" Action Kill Delay 0 } info_target { "targetname" "powerup_haver_target" } } PT_PowerupLogic_Medic { OnParentKilledOutput { Target "item_powerup_rune" Action Kill Delay 0 } OnParentKilledOutput { Target "powerup_logic_relay" Action Trigger Delay 0.001 } } // Wave 7 //"Unused" BossLogic { logic_relay { "targetname" "boss_phasechange" //Trigger: enter phase 2 "OnTrigger" "!activator,$AddCond,52,0,-1" "OnTrigger" "!activator,$AddPlayerAttribute,move speed penalty|0.01,0,-1" //User1: exit phase 2, enter phase 3 "OnUser1" "!activator,$RemoveCond,52,0,-1" "OnUser1" "!activator,$RemoveCond,52,0.05,-1" "OnUser1" "!activator,$RemovePlayerAttribute,move speed penalty,0,-1" } } // UNUSED PTs //Pumpkin bomb spell projectile as PT PT_PumpkinShot { OnSpawnOutput { Target "pumpkinbomb_shot" Action $SetOwner Param !activator //as it turns out, !parent does not exist in I/O??? Delay 0.05 } tf_projectile_spellmirv { "targetname" "pumpkinbomb_shot" "origin" "0 0 0" "angles" "0 0 0" } } //Skelly tank-related fluff! //Recolors tank, adds a cool skull (also recolored), + teleport logic for skellies. PT_Tank_Skeleton { OnSpawnOutput { Target "!activator" Action "color" Param "144 204 253" } OnSpawnOutput { Target "stopspawner" Action Trigger } OnParentKilledOutput { Target "spawnbot_mission_sniper" Action Enable } logic_relay { "targetname" "stopspawner" "OnTrigger" "tank_path_33,AddOutput,OnPass spawnbot_mission_sniper:Disable::0:-1,0,-1" "OnTrigger" "tank_path_34,AddOutput,OnPass spawnbot_mission_sniper:Enable::0:-1,0,-1" } prop_dynamic { "targetname" "skelehat" "origin" "20 0 158" "angles" "0 90 0" "rendercolor" "144 204 253" "model" "models/props_viaduct_event/skull_island01.mdl" "modelscale" "0.1" "solid" "0" "disableshadows" "1" } info_target //Will serve as the destination { "targetname" "destination_skele" "origin" "20 0 210" //Put it where you want the bot to be } } //Title for the Incorporeal Phaser PT_Phaser_Title { //Title cards I stole from royal with permission. //In that sense, it's no longer stealing! game_text { "origin" "1984 1984 99999" "targetname" "upper_text" "message" "INEXPLICABLE ANOMALY, GHOST OF AN AUTOMATON" "x" "-1" "y" "0.4" "spawnflags" "1" "effect" "2" "channel" "2" "color" "65 120 252" "fxtime" "0.2" "fadeout" "1" //"fadein" "0" "holdtime" "5" } game_text { "origin" "1984 1984 99999" "targetname" "middle_text" "message" "INCORPOREAL PHASER" "x" "-1" "y" "0.5" "channel" "4" "spawnflags" "1" "color" "65 120 252" "fadein" "0.4" "fadeout" "1" "holdtime" "4.6" } logic_relay { "targetname" "phaser_text_relay" "OnTrigger" "upper_text,Display,,0,-1" "OnTrigger" "middle_text,Display,,0.4,-1" } } //Canteen Logic for giving a canteen, I think? PT_CanteenLogic_Medic { NoFixup 1 OnParentKilledOutput { Target "@p@canteen_target" Action $AddItemAttribute Param "powerup charges|1|Battery Canteens" } OnParentKilledOutput { Target "@p@canteen_target" Action $AddItemAttribute Param "faster reload rate|0|0" } OnParentKilledOutput { Target "@p@canteen_target" Action $AddItemAttribute Param "fire rate bonus|0.35|0" } } PT_CanteenLogic_Owned { NoFixup 1 info_target { "targetname" "canteen_target" } } //Dispenser on a bot test things. PT_DispenserTest is used but will be removed. PT_Dispenser_Heavy { NoFixup 1 OnSpawnOutput { Target dispenserpocket Action SetBuilder Param !parent Delay 0.01 } OnSpawnOutput { Target dispenserpocket Action SetHealth Param 1296 Delay 0.01 } obj_dispenser { "targetname" "dispenserpocket" "angles" "90 -100 105" "origin" "55 0 30" "teamnum" 2 //red "spawnflags" 2 //inv, inf ammo "solid" 0 "defaultupgrade" 2 //"rendermode" 10 if needed to be invis } } PT_DispenserTest { OnSpawnOutput { Target disp_test_heal Action $SetProp$m_iHighestUpgradeLevel //normal limit is 1, breaks at 4 Param 3 Delay 0.01 } OnSpawnOutput { Target disp_test_heal Action SetDispenserLevel Param 3 Delay 0.02 } dispenser_touch_trigger { "targetname" "disp_test_bound" "origin" "0 0 0" "StartDisabled" "0" "mins" "-188 -188 -128" "maxs" "188 188 128" } mapobj_cart_dispenser { "targetname" "disp_test_heal" "touch_trigger" "disp_test_bound" "origin" "0 0 0" "teamnum" "2" "spawnflags" "2" } } //Grenade weapon mimic. GrenadeSpawner { OnSpawnOutput { Target "nadeshot_mimic" Action $SetOwner Param !activator //as it turns out, !parent does not exist in I/O??? Delay 0.02 } OnSpawnOutput { Target "nadeshot_mimic" Action $StartFiring Param 1 Delay 0.5 } OnParentKilledOutput { Target nadeshot_mimic Action Kill } tf_point_weapon_mimic { "targetname" "nadeshot_mimic" "origin" "0 0 0" "angles" "0 0 0" "teamnum" "3" //blue "$weaponname" "Grenade Generator" "$firetime" "0.8" "$weaponnosound" "1" } } } ExtraSpawnPoint { Name "spawnbot_reprogrammed" // Spawns just outside of RED's right-side exit TeamNum 3 X 3650 Y 430 Z 24 //really idk how high it NEEDS to be off the ground. This is like, 41 units higher. } ExtraTankPath // Blimp spawn { Name "tank_path_blimp_a" Node "-1700 -1650 -40" Node "-1360 -1200 240" Node "-1020 -750 240" Node "900 -750 240" Node "1200 -750 500" Node "1750 -750 250" Node "2750 -750 220" Node "2975 -360 220" } ExtraTankPath // Blimp spawn { Name "tank_path_blimp_b" Node "-2300 1100 -160" Node "-1550 850 240" Node "-550 450 300" Node "1600 450 300" Node "3000 -140 300" } Templates { Zombie_Scout { Item "Zombie Scout" // UseCustomModel "models/player/scout.mdl" UseHumanModel 2 NoIdleSound 1 } Zombie_Soldier { Item "Zombie Soldier" // UseCustomModel "models/player/soldier.mdl" UseHumanModel 2 NoIdleSound 1 } Zombie_Pyro { Item "Zombie Pyro" // UseCustomModel "models/player/pyro.mdl" UseHumanModel 2 NoIdleSound 1 } Zombie_Demo { Item "Zombie Demo" // UseCustomModel "models/player/demo.mdl" UseHumanModel 2 NoIdleSound 1 } Zombie_Heavy { Item "Zombie Heavy" // UseCustomModel "models/player/heavy.mdl" UseHumanModel 2 NoIdleSound 1 } Zombie_Engineer { Item "Zombie Engineer" // UseCustomModel "models/player/engineer.mdl" UseHumanModel 2 NoIdleSound 1 } Zombie_Medic { Item "Zombie Medic" // UseCustomModel "models/player/medic.mdl" UseHumanModel 2 NoIdleSound 1 } Zombie_Sniper { Item "Zombie Sniper" // UseCustomModel "models/player/sniper.mdl" UseHumanModel 2 NoIdleSound 1 } Zombie_Spy { Item "Zombie Spy" // UseCustomModel "models/player/spy.mdl" UseHumanModel 2 NoIdleSound 1 } //Turns bots red; goes to bomb. RedBot_Bomb { Action EscortFlag //ignore escort limit! AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "cannot pick up intelligence" 1 } } //Turns bots red; goes to bomb; fix for giant disp heavy. RedBot_Bomb_Fetch { Action FetchFlag AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "cannot pick up intelligence" 1 } } //Turns bots red + adds mobber behavior. RedBot_Hunt { Attributes DisableDodge Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } } //Add inside a Tank{} block to turn a Tank into a Skeleton tank when paired with a Skeleton Sniper WaveSpawn Skeleton_Tank { ClassIcon tank_skeleton DisableSmokestack 1 Model "models/bots/boss_bot/boss_tank_color.mdl" SpawnTemplate "PT_Tank_Skeleton" PingSound "\misc\halloween\skeletons\skelly_giant_01.wav" } //////////////////////////////////////////////////////////////////////////// /////////////////////// Red bots //////////////////////// //////////////////////////////////////////////////////////////////////////// Red_Soldier_Buff { Class Soldier Name "Buff Direct Hit Soldier" Skill Expert ClassIcon soldier_buff Item "The Direct Hit" Item "The Buff Banner" Attributes SpawnWithFullCharge Attributes HoldFireUntilFullReload AimLeadProjectileSpeed 2000 ItemAttributes { ItemName "The Direct Hit" "reload time decreased while healed" 0.25 "faster reload rate" 0.4 "heal on kill" 50 } CharacterAttributes { "increase buff duration" 5 "deploy time decreased" 0.5 "move speed bonus" 1.3 "health regen" 4 "dmg taken from bullets reduced" 0.5 "dmg taken from blast reduced" 0.5 "dmg taken from fire reduced" 0.5 "dmg taken from crit reduced" 0.1 } Template RedBot_Hunt } Red_Pyro_Flaregun { Template T_TFBot_Pyro_Flaregun Name "Healing Flare Pyro" ClassIcon pyro_flare_heal_seel ItemAttributes { ItemName "The Flare Gun" "heal on hit for rapidfire" 100 "reload time decreased while healed" 0.25 } AddTemplate RedBot_Hunt } Red_Giant_Soldier_Buff { Class Soldier Name "Giant Buff Direct Soldier" Health 4000 Skill Expert ClassIcon soldier_burstfire_buff Item "The Direct Hit" Item "The Buff Banner" Attributes MiniBoss Attributes SpawnWithFullCharge Attributes HoldFireUntilFullReload AimLeadProjectileSpeed 2000 ItemAttributes { ItemName "The Direct Hit" "fire rate bonus" 0.1 "faster reload rate" 0.6 "clip size upgrade atomic" 5 "reload time decreased while healed" 0.75 //a little faster but not a ton } ItemAttributes { ItemName "The Buff Banner" "increase buff duration" 9 "mod soldier buff range" 1.5 } CharacterAttributes { "deploy time decreased" 0.5 "move speed penalty" 0.55 "damage force reduction" 0.5 "health from healers reduced" 0.1 "health from packs increased" 0.25 //smol -> 1/20 (200), mid -> 1/8 (500) "health regen" 20 } Template RedBot_Hunt } Red_Giant_Soldier_Backup { Template T_TFBot_Giant_Soldier Class Soldier Name "Giant Ally Backup Soldier" Health 4000 ClassIcon soldier_backup Item "The Black Box" Item "The Battalion's Backup" Item "The Grenadier's Softcap" Attributes SpawnWithFullCharge Attributes UseBossHealthBar ItemAttributes { ItemName "The Battalion's Backup" "increase buff duration" 6 //750$ - 3 ticks of 250$ sure "mod soldier buff range" 2 //300$ - 2 ticks of 150$ or w/e "deploy time decreased" 0.5 //fix for weapon deploy. juuust in case! } ItemAttributes { ItemName "The Black Box" //he bought some upgrades "health on radius damage" 60 //400$ - let's say this is like hok, 200$ per 10, so "fire rate bonus" 0.8 //200$ "faster reload rate" 0.6 //500$ "reload time decreased while healed" 0.75 //$2150 spent. yeah bby } CharacterAttributes { "move speed bonus" 0.55 "health from healers reduced" 0.1 "health from packs increased" 0.25 //smol -> 1/20 (200), mid -> 1/8 (500) "health regen" 20 } AddTemplate RedBot_Bomb } //Previous version. Too tanky for its own good! Red_Giant_Soldier_TankBuster { Template T_TFBot_Giant_Soldier Class Soldier Name "Chief Tank Buster Soldier" Health 4000 ClassIcon soldier_blackbox_backup Item "The Black Box" Item "The Battalion's Backup" Item "The Grenadier's Softcap" Attributes SpawnWithFullCharge Attributes UseBossHealthBar ItemAttributes { ItemName "The Battalion's Backup" "increase buff duration" 6 "mod soldier buff range" 2 } ItemAttributes { ItemName "The Black Box" "health on radius damage" 0 "fire rate bonus" 0.001 "reload time decreased while healed" 0.75 "projectile spread angle penalty" 3 "heal on hit for rapidfire" 200 } CharacterAttributes { "move speed bonus" 0.55 "health from healers reduced" 0.1 "health from packs increased" 0.25 //smol -> 1/20 (200), mid -> 1/8 (500) "health regen" 10 } AddTemplate RedBot_Bomb } Red_Giant_Heavy_Deflector { Template T_TFBot_Giant_Heavyweapons_Deflector CharacterAttributes { "damage force reduction" 0.25 "override footstep sound set" 2 } AddTemplate RedBot_Bomb_Fetch } Red_Giant_Heavy_Dispenser { Template T_TFBot_Giant_Heavyweapons_Deflector Name "Giant Dispenser Heavy" ClassIcon heavy_dispenser_red Item "Provisions Cap" Item "Packable Provisions" CharacterAttributes { "damage force reduction" 0.25 "health from healers reduced" 0.1 "health from packs increased" 0.25 //smol -> 1/20 (200), mid -> 1/8 (500) "health regen" 20 } SpawnTemplate { Name "PT_DispenserTest" Bone bip_spine_2 Origin "-20 0 0" Delay 0.4 } AddTemplate RedBot_Bomb_Fetch } //////////////////////////////////////////////////////////////////////////// /////////////////////// After bots //////////////////////// //////////////////////////////////////////////////////////////////////////// //Scout with an arm. He's armed. After_Scout_Melee { Class Scout Name "Armed Scout" Item "Unarmed Combat" Item "The Tomb Wrapper" Item "A Handsome Handy Thing" ClassIcon scout_bat_nys WeaponRestrictions MeleeOnly Attributes DisableDodge Template Zombie_Scout CharacterAttributes { "mult flag carrier move speed" 1.34 //too fast when fully canceled } } //A mini-giant soldier variant of the Giant Bazooka Backup Soldier. //Allows for blast damage to be more effective thanks to the health being spread over more targets, //while being more threatening with more rockets being shot! After_Soldier_Bazooka_Backup { Class Soldier Skill Normal Health 650 Scale 1.3 ClassIcon soldier_bazooka_backup Name "Bumbling Backup Soldier" Item "The Beggar's Bazooka" Item "The Battalion's Backup" Item "Helmet without a Home" Item "The Captain's Cocktails" Item "Lieutenant Bites the Dust" Attributes SpawnWithFullCharge Attributes HoldFireUntilFullReload //PLEASE just obey this ItemAttributes { ItemName "The Beggar's Bazooka" "can overload" 0 "auto fires full clip" 0 "reload time increased hidden" 1 } ItemAttributes { ItemName "The Battalion's Backup" "increase buff duration" 2 //longer but not super long "max health additive bonus" 0 "deploy time increased" 0.5 "gesture speed increase" 0.66 //EXPERIMENTAL: regular backup effect, not overridden. // "effect cond override" 42 //bomb buff: not crit immune } AddTemplate Zombie_Soldier } //Demo that throws Cabers without any passive-weapon jank. After_Demoman_CaberToss_PT { Class Demoman Skill Expert Health 650 Scale 1.4 Name "Caber-Tossing Demo" Item "The Ullapool Caber" ClassIcon demo_caber_nys WeaponRestrictions MeleeOnly ItemAttributes { ItemName "The Ullapool Caber" "regenerate stickbomb" 1 "fire rate penalty" 1.5 //1.2 } ShootTemplate { Name "PT_CaberToss" Speed 0 Origin "0 0 94" } CharacterAttributes { "move speed bonus" 0.75 "health regen" 1 "mult flag carrier move speed" 1.34 //Consistency } AddTemplate Zombie_Demo } //Demo that throws Cabers, but with passive-weapon jank. After_Demoman_CaberToss { Class Demoman Skill Expert Health 650 Scale 1.4 Name "Caber-Tossing Demo" Item "The Ullapool Caber" Item "Head Banger" Item "Mad Lad" ClassIcon demo_caber_nys WeaponRestrictions PrimaryOnly ItemAttributes { ItemName "The Ullapool Caber" "is_passive_weapon" 1 "regenerate stickbomb" 1 "fire rate penalty" 1.5 //1.2 } ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "custom item model" "models/workshop/weapons/c_models/c_caber/c_caber.mdl" "custom projectile model" "models/workshop/weapons/c_models/c_caber/c_caber.mdl" "projectile speed decreased" 0.9 "grenade explode on impact" 1 "damage penalty" 0.75 "fire rate penalty" 2 //1.2 "faster reload rate" 0 "custom kill icon" "ullapool_caber_explosion" } CharacterAttributes { "move speed bonus" 0.75 "health regen" 1 "mult flag carrier move speed" 1.34 } AddTemplate Zombie_Demo } //Punchy Heavy! An oldie goldie. //Does not target the bomb. After_Heavy_Fist { Class Heavyweapons Name "Fist Heavy" Item "Ghastly Gibus 2010" //ghastlier! ClassIcon heavy_zombie_lite WeaponRestrictions MeleeOnly Attributes DisableDodge Action Mobber Template Zombie_Heavy ItemAttributes { ItemName "Ghastly Gibus 2010" "item style override" 1 } CharacterAttributes { "mult flag carrier move speed" 1.34 } } //A crossbow medic that can penetrate allies and enemies alike! After_Medic_Infpop { Class Medic Name "Death-Defying Medic" Skill Hard Item "The Quick-Fix" Item "Das Ubersternman" Item "Herzensbrecher" Item "Medi-Mask" Item "The Second Opinion" Attributes SpawnWithFullCharge ClassIcon medic_infpop ItemAttributes { ItemName "The Quick-Fix" "heal rate bonus" 4.17 //Base 300 HP/sec heals "overheal penalty" 0.001 "health from healers reduced" 0.5 //150 HP/sec selfheal "uber duration bonus" -9 //Infinite uber duration } CharacterAttributes { "bot medic uber health threshold" 160 } Template Zombie_Medic } //A crossbow medic that can penetrate allies and enemies alike! After_Medic_Xbow { Class Medic Name "Infestinger Medic" // Health 350 // Scale 1.2 Skill Normal Item "The Crusader's Crossbow" Item "Berliner's Bucket Helm" ClassIcon medic_crossbow_penetration WeaponRestrictions PrimaryOnly Action FetchFlag AimAt Head ItemAttributes { ItemName "The Crusader's Crossbow" "projectile penetration" 1 "projectile speed decreased" 0.45 //1080 HU/s // "health drain medic" -1 //this is to show their health! } Template Zombie_Medic } //A giant soldier using the Beggar's Bazooka. Pretty standard. After_Giant_Soldier_Bazooka { Template T_TFBot_Giant_Soldier ClassIcon soldier_bazooka Name "Giant Unstable Soldier" Item "The Beggar's Bazooka" Item "Helmet without a Home" Item "The Captain's Cocktails" Attributes HoldFireUntilFullReload //PLEASE just obey this ItemAttributes { ItemName "The Beggar's Bazooka" "can overload" 0 "auto fires full clip" 0 "reload time increased hidden" 1 "faster reload rate" 0.6 "clip size upgrade atomic" 5 "projectile speed decreased" 0.65 } AddTemplate Zombie_Soldier } //A giant burst backup soldier, using the Beggar's Bazooka. Pretty standard, though bulky. After_Giant_Soldier_Bazooka_Backup { Template T_TFBot_Giant_Soldier ClassIcon soldier_bazooka_backup Name "Giant Unstable Backup Soldier" Item "The Beggar's Bazooka" Item "The Battalion's Backup" Item "Helmet without a Home" Item "The Captain's Cocktails" Attributes SpawnWithFullCharge Attributes HoldFireUntilFullReload //PLEASE just obey this ItemAttributes { ItemName "The Beggar's Bazooka" "can overload" 0 "auto fires full clip" 0 "reload time increased hidden" 1 "faster reload rate" 0.6 "clip size upgrade atomic" 5 "projectile speed decreased" 0.65 } ItemAttributes { ItemName "The Battalion's Backup" "increase buff duration" 3.5 //longer but not super long "effect cond override" 42 //bomb buff: not crit immune "max health additive bonus" 0 "deploy time increased" 0.5 "gesture speed increase" 0.66 } AddTemplate Zombie_Soldier } //A Giant Short Circuit engineer, occassionally alt-firing! After_Giant_Engineer_ShortCircuit { Class Engineer Skill Expert Name "Giant Electro-charged Engineer" Health 3000 ClassIcon engineer_shortcircuit_lite Action FetchFlag MaxVisionRange 750 UseMeleeThreatPrioritization 1 WeaponRestrictions SecondaryOnly Item "The Short Circuit" //Old set // Item "Life Support System" // Item "Iron Lung" // Item "Defragmenting Hard Hat 17%" //New set Item "Tin-1000" Item "Roboot" Item "Iron Fist" Item "Arsonist Apparatus" Item "Iron Lung" Attributes MiniBoss FireWeapon { Type Secondary Cooldown 8.7 Duration 0.7 //2 orbs Delay 10 Repeats 0 IfSeeTarget 1 } VoiceCommand { Type "Battle Cry" Cooldown 8.7 Delay 8.5 Repeats 0 IfSeeTarget 1 } ItemAttributes { ItemName "The Short Circuit" "dmg penalty vs players" 2.5 //25 on normal hit, 37.5 on orb "disable buildings on hit" 2 //electricity could overcharge them, right? "damage blast push" 1.5 "max bullet range" 175 //does indeed work, and can even increase range! } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 } Template Zombie_Engineer } //A Giant Short Circuit engineer that moves extra fast, but is less bulky! After_Giant_Engineer_ShortCircuit_Fast { Class Engineer Skill Expert Name "Giant Undead Android Engie" Health 1250 //Eat your heart out, Super Scout. ClassIcon engineer_shortcircuit_lite //_fast? _blast? Action FetchFlag MaxVisionRange 750 UseMeleeThreatPrioritization 1 WeaponRestrictions SecondaryOnly Item "The Short Circuit" Item "Tin-1000" Item "Roboot" Item "Iron Fist" Item "Arsonist Apparatus" Item "Iron Lung" Attributes MiniBoss VoiceCommand { Type "Battle Cry" Cooldown 8.7 Delay 3 Repeats 0 IfSeeTarget 1 } ItemAttributes { ItemName "The Short Circuit" "dmg penalty vs players" 3.5 //35 per normal hit "fire rate penalty" 4 //0.4s between hits "disable buildings on hit" 2 //electricity could overcharge them, right? "damage blast push" 1.5 "max bullet range" 175 //does indeed work, and can even increase range! } CharacterAttributes { "move speed bonus" 1.15 //Test out some different values. "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 } Template Zombie_Engineer } //A giant medic that spreads damaging areas around itself, and deals damage relative to current heatlth. //A bit too confusing for common use... After_Giant_Medic_Plague { Class Medic Name "Giant Plague Spreading Medic" Health 4000 Action FetchFlag Item "The Ubersaw" Item "Platinum Pickelhaube" Item "The Steam Pipe" Attributes MiniBoss Attributes DisableDodge ClassIcon medic_jug_ubersaw WeaponRestrictions MeleeOnly SpawnTemplate PT_PoisonArea_Target DesiredAttackRange 110 ItemAttributes { ItemName "The Ubersaw" "damage penalty" 0.2 //13 + 8% of curr hp, so medic-less max is 30 on direct hit "fire rate penalty" 1.5 "melee range multiplier" 1.5 //this gives them a minor edge without being too punishing "mult bleeding damage" 0.01 "mult bleeding delay" 2 } ItemModel // Replaces item model { ItemName "Platinum Pickelhaube" Model "models/workshop/player/items/medic/robo_medic_grimm_hatte/robo_medic_grimm_hatte.mdl" } ItemModel { ItemName "The Steam Pipe" Model "models/workshop/player/items/medic/robo_medic_blighted_beak/robo_medic_blighted_beak.mdl" } CharacterAttributes { "dmg current health" 0.08 "bleeding duration" 5 //10 ticks "move speed penalty" 0.45 //they'd be a bit fast otherwise: 144 HU/s, about giant demo speed "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 } AddTemplate Zombie_Medic } //////////////////////////////////////////////////////////////////////////// /////////////////////// Cult bots //////////////////////// //////////////////////////////////////////////////////////////////////////// //A soldier. Very simple, but this one shoots eyeballs. Cult_Soldier { Name "Monocultus Soldier" Class Soldier Attributes HoldFireUntilFullReload Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Item "MONOCULUS!" RocketCustomModel "models/props_halloween/eyeball_projectile.mdl" UseHumanModel 2 //add item zombie soldier to some } //A regular ol' pyro! No longer slows speed, because that's mean. Cult_Pyro { Name "Monocultus Pyro" Class Pyro Skill Normal Attributes AlwaysFireWeapon Item "Upgradeable TF_WEAPON_FLAMETHROWER" Item "The Seared Sorcerer" Item "dec2014 Pyromancer's Raiments" UseHumanModel 2 ItemAttributes { ItemName "Upgradeable TF_WEAPON_FLAMETHROWER" "paintkit_proto_def_index" 269 //Spider Season "set_item_texture_wear" 0.2 } } //Bigger punchy packin' a punch! //Does not suffer bomb slowdown. Cult_Heavy_Fist { Class Heavyweapons Name "Resurrected Flesh Gauntlet" Health 900 Scale 1.5 ClassIcon heavy_zombie_arm2_lite WeaponRestrictions MeleeOnly Attributes DisableDodge Item "Immobile Suit" Item "Life Support System" Item "Steel-Toed Stompers" Item "Soviet Stitch-Up" Template Zombie_Heavy CharacterAttributes { "mult flag carrier move speed" 1.5 } } //A human Kritz BigHeal Medic! //The high heal rate makes them well-suited for giants. Cult_Medic_Kritz { Class Medic Name "Monocultus Enrager Medic" ClassIcon medic_kritz Skill Expert Attributes SpawnWithFullCharge Item "The Kritzkrieg" Item "Prussian Pickelhaube" Item "Smock Surgeon" Item "BINOCULUS!" ItemAttributes { ItemName "The Kritzkrieg" "bot medic uber health threshold" 160 "heal rate bonus" 10 "uber duration bonus" -9 //Infinite uber duration } ItemAttributes { ItemName "BINOCULUS!" "set item tint rgb" 12073019 //Team Spirit, RED } UseHumanModel 2 } //A human Superheal Medic! Cult_Medic_Superheal { Class Medic Name "Necrotic Summoner Medic" Item "Templar's Spirit" Item "The Quick-Fix" Attributes SpawnWithFullCharge ClassIcon medic_infpop ItemAttributes { ItemName "The Quick-Fix" "heal rate bonus" 4.17 //Base 300 HP/sec heals "overheal penalty" 0.001 "health from healers reduced" 0.5 //150 HP/sec selfheal "uber duration bonus" -9 //Infinite uber duration } CharacterAttributes { "bot medic uber health threshold" 160 } UseHumanModel 2 } //A Skeleton! ...which is just a melee-only sniper. Cult_Sniper_Skele { Class Sniper WeaponRestrictions MeleeOnly Attributes DisableDodge Name "Summoned Skeleton" FireInput { Target !activator Action $TeleportToEntity Param "destination_skele" Delay 0.1 Repeats 1 } AddCond //spawn protection { Index 52 Duration 3.5 //they walk off a tank and die too instantaneously } //Credit to CreatorForce, from Undead Rising! //Does not include the ambient_generics. ClassIcon dead_blu_lite Skin 1 //blue skin Scale 1.001 //so they break apart UseCustomModel "models/bots/skeleton_sniper/skeleton_sniper.mdl" //skelly DeathSound "misc/halloween/skeleton_break.wav" //appropriate death sound! ItemAttributes { ItemName "TF_WEAPON_CLUB" "custom kill icon" "spellbook_skeleton" "is invisible" 1 } CharacterAttributes { "mult flag carrier move speed" 1.5 } } //Rattle 'em, boys! Cult_Sniper_Skele_SMG { Template Cult_Sniper_Skele WeaponRestrictions SecondaryOnly Name "Summoned Rattler" Item "Trophy Belt" } //A Sn-eye-per, firing regular ol' arrows. Cult_Sniper_Bow { Template T_TFBot_Sniper_Huntsman Name "Monocultus Bowman" Item "MONOCULUS!" ItemAttributes { ItemName "The Huntsman" "damage bonus" 1 "damage penalty" 0.5 } UseCustomModel "models/player/sniper.mdl" //add item zombie sniper to some } //A Sn-eye-per, firing arrows and tossin' Jarate. Cult_Sniper_Bow_Jarate { Template T_TFBot_Sniper_Huntsman Name "Monocultus Sneyeper" Item "Jarmaments" Item "MONOCULUS!" Item "Jarate" WeaponRestrictions SecondaryOnly // ClassIcon sniper_jarate_bow //weirder naming convention cause sniper_bow_jarate is already taken. ItemAttributes { ItemName "The Huntsman" "damage bonus" 1 "damage penalty" 0.5 } ItemAttributes { ItemName "Jarate" "effect bar recharge time increased" 0.3 } FireInput { Target "!self" Action "CallScriptFunction" Param "ShouldTossJarate" IfSeeTarget 1 //The whole reason I'm doing this with rafmod. MaxTargetRange 1600 Delay 2 Cooldown 0.25 } UseCustomModel "models/player/sniper.mdl" //add item zombie sniper to some } //A Sn-eye-per, firing jarate-coated arrows. Cult_Sniper_Bow_Wet { Template T_TFBot_Sniper_Huntsman Name "Monocultus Sneyeper" Item "Jarmaments" Item "MONOCULUS!" ClassIcon sniper_bow_jarate ItemAttributes { ItemName "The Huntsman" "damage bonus" 1 "damage penalty" 0.5 "add cond on hit" 24 "add cond on hit duration" 5 } UseCustomModel "models/player/sniper.mdl" //add item zombie sniper to some } //A Sn-eye-per, firing arrows...with Jarate attached to it, instead of being coated. //Yes, actual Jarate, which impacts. //...doesn't work properly though so scrapping that for now. Cult_Sniper_Bow_JarateArrow { Template T_TFBot_Sniper_Huntsman Name "Monocultus Sneyeper" Item "Jarmaments" Item "MONOCULUS!" ClassIcon sniper_bow_jar ItemAttributes { ItemName "The Huntsman" "damage bonus" 1 "damage penalty" 0.5 "ignores other projectiles" 1 } ShootTemplate { Name PT_JarateJarProjectile AttachToProjectile 1 } UseCustomModel "models/player/sniper.mdl" //add item zombie sniper to some } Cult_Giant_Soldier_Trirocket { Template T_TFBot_Giant_Soldier Name "Giant Third Eye Soldier" Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Item "Spooky Head-Bouncers" Item "Veteran's Attire" Item "Warhood" MaxVisionRange 1500 //They get a little insane w/o it... ClassIcon soldier_rocketshotgun_lite RocketCustomModel "models/props_halloween/eyeball_projectile.mdl" // RocketCustomParticle "eyeboss_projectile" ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "paintkit_proto_def_index" 265 //Eyestalker "set_item_texture_wear" 0.2 "fire rate bonus" 0.15 "clip size penalty" 0.75 "reload time increased" 1.2 "projectile speed decreased" 0.65 "projectile spread angle penalty" 0.5 } AddTemplate Zombie_Soldier } Cult_Giant_Soldier_Trirocket_Direct { Template T_TFBot_Giant_Soldier Name "Giant Fourth Eye Soldier" Item "The Direct Hit" Item "Spooky Head-Bouncers" Item "Veteran's Attire" Item "BINOCULUS!" Item "War Pig" MaxVisionRange 1500 //They get a little insane w/o it... ClassIcon soldier_rocketshotgun_dh_lite RocketCustomModel "models/props_halloween/eyeball_projectile.mdl" // RocketCustomParticle "eyeboss_projectile" ItemAttributes { ItemName "The Direct Hit" "fire rate bonus" 0.15 "clip size penalty" 0.75 "reload time increased" 1.2 "projectile spread angle penalty" 0.5 } ItemAttributes { ItemName "War Pig" "item style override" 1 "set item tint rgb" 6901050 //Radigan Conagher Brown } AddTemplate Zombie_Soldier } Cult_Giant_Demoman { Template T_TFBot_Giant_Demoman Name "Giant Revived Ravager Demo" Health 3300 Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" Item "Ethereal Hood" Item "The Hurt Locher" ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "paintkit_proto_def_index" 297 //Necromanced "set_item_texture_wear" 0.2 "faster reload rate" 0.5 "fire rate bonus" 0.5 } AddTemplate Zombie_Demo } Cult_Giant_Demoman_Loch { Template T_TFBot_Giant_Demoman Name "Giant Third Eye Demo" Health 3300 Item "The Loch-n-Load" Item "Spooky Head-Bouncers" Item "Dead of Night" Item "The Dread Hiding Hood" Item "Pocket Halloween Boss" ClassIcon demo_loch_nys ItemAttributes { ItemName "The Loch-n-Load" "paintkit_proto_def_index" 265 //Eyestalker "set_item_texture_wear" 0.2 "projectile speed increased" 0.95 //Never forget to undo overaim! "faster reload rate" 0.5 "fire rate bonus" 0.5 } ItemAttributes { ItemName "Pocket Halloween Boss" "item style override" 2 //Monoculus - duh. } AddTemplate Zombie_Demo } Cult_Giant_Demoman_Sticky { Template T_TFBot_Giant_Demoman Name "Giant Monocultus Demo" Health 3300 MaxVisionRange 1800 Item "harvest_stickybomblauncher_pumpkinpatch" Item "MONOCULUS!" Item "Dead of Night" //Dark, hide grenades Item "Pocket Halloween Boss" ExtAttr AlwaysFireWeaponAlt ClassIcon pumpkin_lord2 ItemAttributes { ItemName "harvest_stickybomblauncher_pumpkinpatch" "max pipebombs decreased" -7 //Monocultus so just 1! "sticky arm time bonus" -0.3 //additive value "projectile range decreased" 0.34 "stickybomb charge rate" 0.001 "faster reload rate" 0.2 //technically could use SR here but meh } ItemAttributes { ItemName "Pocket Halloween Boss" "item style override" 2 //Monoculus - duh. } CharacterAttributes { "SPELL: Halloween pumpkin explosions" 1 } AddTemplate Zombie_Demo } Cult_Giant_Demoknight { Template T_TFBot_Giant_Demoman Name "Giant Summoned Headtaker Demo" Health 3000 ClassIcon demoknight_headtaker_nys WeaponRestrictions MeleeOnly Item "The Horseless Headless Horseman's Headtaker" Item "Ethereal Hood" Attributes DisableDodge ItemAttributes { ItemName "The Headless Horseless Horsemann's Headtaker" "critboost on kill" 5 "max health additive penalty" 0 } CharacterAttributes { "move speed bonus" 0.62 //approx as fast as a gdemoknight with 3 heads } AddTemplate Zombie_Demo } //A giant heavy that has a permanent MONOCULUS spell attached to him! //...well, it's more a passive rocket launcher at that point... Cult_Chief_Heavy_Spell { Template T_TFBot_Giant_Heavyweapons Name "Monocultus Menace" Health 11000 ClassIcon heavy_monoculus Skill Normal //holy shit it's overtuned with good aim. Attributes UseBossHealthBar Tag "cultchief" Item "Upgradeable TF_WEAPON_MINIGUN" Item "MONOCULUS!" Item "Moccasin Machinery" Item "Purity Fist" Item "Bone-Cut Belt" Item "Pocket Halloween Boss" ItemAttributes { ItemName "Upgradeable TF_WEAPON_MINIGUN" "paintkit_proto_def_index" 265 //Eyestalker "set_item_texture_wear" 0.2 "damage bonus" 1.2 } ItemAttributes { ItemName "Pocket Halloween Boss" "item style override" 2 //Monoculus - duh. } AddTemplate Zombie_Heavy } //////////////////////////////////////////////////////////////////////////// ///////////////////// Pumpkin bots //////////////// //////////////////////////////////////////////////////////////////////////// //A Widowmaker engie. Plain and simple. //Kind of a "rapid fire" shotgun, if you think about it? Pumpkin_Engineer { Class Engineer Name "Pumpkinton's Engie" Action FetchFlag Item "The Widowmaker" Item "Hollowed Helm" Item "Gourd Grin" Item "The Gunslinger" //slightly more health to compensate for having more cash. ClassIcon engineer_widowmaker_nys ItemAttributes { ItemName "The Widowmaker" "fire rate penalty" 1.3 //reduces overall spam, kinda like Shotgun Heavies! } Template Zombie_Engineer } //A human Quick-Fix Medic! Can pop a charge, too. //Similar stats to regular Uber Medic. Pumpkin_Medic { Class Medic Name "Pumpkinton's Patch-Up Medic" Skill Normal Item "Towering Patch of Pumpkins" Item "Gourd Grin" Item "The Quick-Fix" Attributes SpawnWithFullCharge ClassIcon medic_quickfix_seel2 ItemAttributes { ItemName "The Quick-Fix" "heal rate bonus" 5 "ubercharge rate bonus" 2 //don't leave 'em living! } CharacterAttributes { "bot medic uber health threshold" 51 } Template Zombie_Medic } Pumpkin_Spy { Class Spy Name "Pumpkinton Py" Skill Expert Item "Showstopper" Item "Big Topper" Item "Gruesome Gourd" ItemAttributes { ItemName "Gruesome Gourd" "set item tint rgb" 8289918 } Template Zombie_Spy } //TEST: does this work better if pumpkin explosion is instead done with ShootTemplate? //Pair with "projectile detonate time" instead of m2! Pumpkin_Chief_I { Name "Sir Pumpkinton I" Template T_TFBot_Giant_Demoman Health 3300 MaxVisionRange 1800 Item "Sir Pumpkinton" Item "The Whiskey Bib" Item "harvest_stickybomblauncher_pumpkinpatch" Item "Secret Diary" StripItemSlot 0 //Spell use requires them to be able to swap weapons StripItemSlot 2 //And for some reason they switch to their melee??? ExtAttr AlwaysFireWeaponAlt ClassIcon pumpkin_lord2 ItemAttributes { ItemName "harvest_stickybomblauncher_pumpkinpatch" "fire rate penalty" 1.25 "max pipebombs decreased" -6 //two! "sticky arm time penalty" 0.8 //additive value "projectile range decreased" 0.34 "stickybomb charge rate" 0.001 "faster reload rate" 0.2 //technically could use SR here but meh } CharacterAttributes { "SPELL: Halloween pumpkin explosions" 1 } FireWeapon { Type "Action" Delay 3 Cooldown 4 IfSeeTarget 1 Duration 0.4 } Spell //Gives specified spell to bots. { Delay 3 Cooldown 6 IfSeeTarget 1 Charges 1 //spells to give Limit 1 //spells the bot can store Type "Pumpkin MIRV" } AddTemplate Zombie_Demo } //////////////////////////////////////////////////////////////////////////// /////////////////////// Tomb bots ///////////////////// //////////////////////////////////////////////////////////////////////////// Tomb_Scout_Sun { Name "Scorching Scout" Class Scout Skill Expert Health 350 Scale 1.2 Item "Wrap Battler" Item "B-ankh!" Item "Futankhamun" Item "Sharpened Volcano Fragment" WeaponRestrictions MeleeOnly Attributes DisableDodge ClassIcon pyro_volcano CharacterAttributes { "mult flag carrier move speed" 1.34 //lesser reduction } Template Zombie_Scout } Tomb_Pyro_Torch { Name "Torcher Pyro" Class Pyro Skill Normal Item "The Macabre Mask" Item "The Maniac's Manacles" Item "The Manmelter" WeaponRestrictions SecondaryOnly ClassIcon pyro_manmelter_spammer ItemAttributes { ItemName "The Manmelter" "fire rate bonus" 0.2 } Template Zombie_Pyro } Tomb_Demo_Sticky { Class Demoman Skill Hard Name "Tomb-Trashing Demo" Item "The Pithy Professional" ClassIcon demo_sticky_daan WeaponRestrictions SecondaryOnly ItemAttributes { ItemName "Upgradeable TF_WEAPON_PIPEBOMBLAUNCHER" "paintkit_proto_def_index" 268 //mummified mimic "set_item_texture_wear" 0.2 "projectile range increased" 0.35 "stickybomb charge rate" 0.001 "max pipebombs decreased" -7 "faster reload rate" 0.1 //0.109 } Template Zombie_Demo } Tomb_Demo_Quickie { Class Demoman Skill Hard Name "Torturer Demo" Health 650 Scale 1.4 Item "The Quickiebomb Launcher" Item "The Blast Blocker" ClassIcon demo_quickie_pda WeaponRestrictions SecondaryOnly AimAt Body AimOffset "0 0 -5" ItemAttributes { ItemName "The Quickiebomb Launcher" "projectile range increased" 0.45 "stickybomb charge rate" 0.001 "max pipebombs decreased" -7 "faster reload rate" 0 "fire rate penalty" 1.5 //0.9s "stickybomb stick to enemies" 1 } CharacterAttributes { "move speed penalty" 0.9 "health regen" 1 } Template Zombie_Demo } Tomb_Sniper_Croc { Class Sniper Name "Ferocious Nile Crocodile" Health 650 Scale 1.4 Item "Crocodile Mun-dee" Item "Scopers Scales" WeaponRestrictions MeleeOnly Attributes DisableDodge ClassIcon sniper_kukri_lite ItemAttributes { ItemName "TF_WEAPON_CLUB" "custom kill icon" "crocodile" "bleeding duration" 3 "is invisible" 1 } CharacterAttributes { "health regen" 1 "mult flag carrier move speed" 1.5 } Template Zombie_Sniper } Tomb_Spy_Mummy { Class Spy Name "Mummy Masquerade Spy" Skill Hard Item "Under Cover" Item "Your Eternal Reward" Template Zombie_Spy } Tomb_Giant_Pyro_Douse { Template T_TFBot_Giant_Pyro Name "Giant Daylight Douser Pyro" WeaponRestrictions PrimaryOnly ClassIcon pyro_jug_axtinguisher_bright Item "Deity's Dress" Item "Feathered Fiend" Item "The Rescue Ranger" Item "The Axtinguisher" Attributes SuppressFire ItemAttributes { ItemName "The Rescue Ranger" "projectile gravity" -1 "projectile speed decreased" 0.4 "penetrate teammates" 1 "no damage falloff" 1 "damage bonus" 1.1 //44 "grenade bounce speed" 0.3 "minicrit vs burning player" 1 "damage bonus vs burning" 1.5 //66 base damage "projectile penetration" 1 "fire rate bonus" 0.35 "fire input on hit" "!self^ExtinguishPlayer^" //extinguish the player "custom projectile model" "models/weapons/w_models/w_drg_ball.mdl" "custom item model" "models/weapons/c_models/c_axtinguisher/c_axtinguisher_pyro.mdl" "custom weapon fire sound" "common/null.wav" "projectile lifetime" 10 "custom kill icon" "axtinguisher" } ItemAttributes { ItemName "The Axtinguisher" "is_passive_weapon" 1 "fire rate bonus" 0.9 //just in case. } ShootTemplate { Name PT_RotatingAxe AttachToProjectile 1 } FireWeapon { Type "Primary" Cooldown 0.8 Duration 0.2 Delay 4 IfSeeTarget 1 } AddTemplate Zombie_Pyro } //A giant Family Business Heavy, firing fast bursts of bullets. //At range, swaps to the Fists of Steel to keep itself safe. Tomb_Giant_Heavy_Business { Template T_TFBot_Giant_Heavyweapons Name "Giant Pharaoh Heavy" AimTrackingInterval 0.2 Class Heavyweapons ClassIcon heavy_familybusiness_fist StripItemSlot 0 Item "The Crown of the Old Kingdom" Item "Kapitan's Kaftan" Item "The Family Business" Item "Fists of Steel" ItemAttributes { ItemName "The Family Business" "paintkit_proto_def_index" 268 //mummified mimic "set_item_texture_wear" 0.2 "bullets per shot bonus" 1.5 //1.275x damage, still a decent buff given the buffs to fire and reload rate "faster reload rate" 0.75 "fire rate bonus" 0.55 "auto fires when full" 1 "auto fires full clip" 1 } ItemAttributes { ItemName "The Fists of Steel" "provide on active" 1 "move speed penalty" 0.75 //0.525x speed "item color rgb" 15185211 //Australium Gold. TEMP - may be removed if confusing. } WeaponSwitch { Type "Melee" Delay 0 Repeats 1 } WeaponSwitch { Type "Melee" IfSeeTarget 1 MinTargetRange 400 Cooldown 1.5 } WeaponSwitch { Type "Secondary" IfSeeTarget 1 MaxTargetRange 450 Cooldown 1.5 } CharacterAttributes { "move speed bonus" 0.7 } AddTemplate Zombie_Heavy } //A giant Blutsauger medic, with excellent aim! //Can be quite deadly...don't move predictably! Tomb_Giant_Medic_Sun { Name "Giant Solar Scholar Medic" Class Medic Health 4000 Skill Hard ClassIcon medic_blutsauger_lite Action FetchFlag Attributes MiniBoss WeaponRestrictions PrimaryOnly Item "The Blutsauger" Item "Teutonkahmun" Item "Ramses' Regalia" AimAt Head AimOffset "0 0 5" AimLeadProjectileSpeed 1100 ItemAttributes { ItemName "The Blutsauger" "fire rate bonus" 0.6 "damage bonus" 2 //24 dmg point blank! "clip size penalty" 0.4 //16 shots "heal on hit for rapidfire" 100 //Total max HP restored: 1600 "item style override" 1 } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 } Template Zombie_Medic } //Deity of Dawn, a Scout that "respawns" itself, like a new dawn! Tomb_Chief_Scout { Class Scout Name "Deity of Dawn" Health 7400 Item "Olympic Leapers" Item "Athenian Attire" Item "Sun-on-a-Stick" Item "Jungle Wreath" WeaponRestrictions MeleeOnly ClassIcon scout_sunstick_swordstone_giant Attributes DisableDodge Attributes MiniBoss Attributes UseBossHealthBar NoIdleSound 1 RingOfFire 15 ItemAttributes { ItemName "Sun-on-a-Stick" "damage penalty" 1 "fire rate penalty" 1.2 "attack_minicrits_and_consumes_burning" 1 "dmg taken from fire reduced on active" 1 } CharacterAttributes { "move speed penalty" 0.6 //240 hu/s, soldier speed "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.3 } UseHumanModel 2 } //Deity of Dusk, a Heavy that "persists" for a bit longer, like dusk staying longer at the poles! //Alternatively, night = death. Tomb_Chief_Heavy { Template T_TFBot_Giant_Heavyweapons Name "Deity of Dusk" Health 15000 Item "The Unshaved Bear" Item "Kapitan's Kaftan" // Item "The Family Business" Item "The Freedom Staff" Item "Bedouin Bandana" Attributes UseBossHealthBar Attributes DisableDodge ClassIcon soldier_incendiary_nys WeaponRestrictions MeleeOnly NoIdleSound 1 ItemAttributes { ItemName "The Freedom Staff" "damage blast push" 4 //get OFF of me, feeble peasant! } ItemAttributes { ItemName "Bedouin Bandana" "attach particle effect" 90 //Death at Dusk } SpawnTemplate { Name PT_SunShot Angles "0 90 -80" Origin "0 0 132" } FireInput { Target "@c@!activator" Action FireOnce Delay 0.2 IfSeeTarget 1 Cooldown 0.8 Repeats 0 IfHealthBelow 13501 IfHealthAbove 5001 } FireInput { Target player Action $PlaySoundToSelf Param "=35|mvm/mvm_used_powerup.wav" Delay 0 Repeats 1 IfHealthBelow 5001 } Message { Name "{blue}Deity of Dusk {FBECCB}has used their {FFBE64}FINAL DUSK {FBECCB}Power Up Canteen!" Delay 0 Repeats 1 IfHealthBelow 5001 } FireInput { Target "@c@!activator" Action FireOnce Delay 0.2 IfSeeTarget 1 Cooldown 0.05 Repeats 8 IfHealthBelow 5001 } FireInput { Target "@c@!activator" Action FireOnce Delay 0.65 IfSeeTarget 1 Cooldown 0.6 Repeats 0 IfHealthBelow 5001 } AddCond { Index 42 //bomb buff effect Duration 999 IfHealthBelow 5001 } UseHumanModel 2 } //////////////////////////////////////////////////////////////////////////// /////////////////////// Flameborn bots //////////////////// //////////////////////////////////////////////////////////////////////////// //A Scout. Simple. Flameborn_Scout { Class Scout Skill Normal Name "Dogged Hound" Item "Upgradeable TF_WEAPON_SCATTERGUN" Item "The Hound's Hood" Item "The Terrier Trousers" Item "Claws And Infect" ItemAttributes { ItemName "Upgradeable TF_WEAPON_SCATTERGUN" "paintkit_proto_def_index" 291 //Broken Bones "set_item_texture_wear" 0.4 } UseHumanModel 2 } //A clever swapping soldier! Flameborn_Soldier_Swapper { Class Soldier Health 650 Scale 1.4 Skill Hard Name "Black Knight" Item "Dark Falkirk Helm" Item "Dark Age Defender" Item "Forgotten King's Pauldrons" Item "The Sole Saviors" Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" ClassIcon soldier_shotgun_spammer ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "faster reload rate" 0 } ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_SOLDIER" "faster reload rate" 0 } WeaponSwitch { Type "Primary" IfSeeTarget 1 MinTargetRange 300 Cooldown 1.5 } WeaponSwitch { Type "Secondary" IfSeeTarget 1 MaxTargetRange 350 Cooldown 1.5 } Template Zombie_Soldier } //A Direct Hit soldier! Fairly standard fellow. Flameborn_Soldier_DH { Class Soldier Skill Normal Name "Hollow Knight" Item "Crit Cloak" Item "The Sole Saviors" Item "The Caped Crusader" Item "The Direct Hit" ClassIcon soldier_directhit_lite Attributes HoldFireUntilFullReload Template Zombie_Soldier } //A minigiant Direct Hit soldier with two charges of a healing spell! Flameborn_Soldier_DH_HealSpell { Class Soldier Health 650 Scale 1.4 Skill Hard Name "Hollow Cleric" Item "The Direct Hit" Item "TF_WEAPON_SPELLBOOK" Item "Mighty Mitre" Item "Warlock's Warcloak" Item "The Exorcizor" Attributes HoldFireUntilFullReload ClassIcon soldier_directhit_heal_spell Spell { Delay 8 Type "Healing Aura" Repeats 1 IfSeeTarget 0 } Spell { IfHealthBelow 500 Type "Healing Aura" Repeats 1 } Template Zombie_Soldier } //A classy pyro. Its airblast deflects, but it can refire a little slower. Flameborn_Pyro { Name "Kindling Hollow" Class Pyro Skill Normal Item "Upgradeable TF_WEAPON_FLAMETHROWER" Item "The Hollowhead" Item "The Maniac's Manacles" // ClassIcon pyro_heal ItemAttributes { ItemName "Upgradeable TF_WEAPON_FLAMETHROWER" "paintkit_proto_def_index" 406 //health n hell "set_item_texture_wear" 0.2 "airblast_destroy_projectile" 1 "mult airblast primary refire time" 1.25 //airblast pauses their flames for a longer while // "damage penalty" 0.9 // "flame_speed" 1960 //decreased range // "heal on hit for rapidfire" 6 //6/0.075 = 80 hp/s } UseHumanModel 2 } //A melee pyro. Can be scary with its crits! Flameborn_Pyro_TDegree { Class Pyro Name "Ragged Hollow" Skill Normal Item "The Hollowhead" Item "The Maniac's Manacles" Item "The Abhorrent Appendages" Item "The Third Degree" Skin 5 ClassIcon pyro_thirddegree_blu Attributes AlwaysCrit WeaponRestrictions MeleeOnly CharacterAttributes { "mult flag carrier move speed" 1.5 } Template Zombie_Pyro } //A demoknight that sets you on fire! Uses the Splendid Screen. No HP penalty makes it bulkier anyway! Flameborn_Demo_Knight_Fire { Class Demoman Name "Rekindled Knight" ClassIcon demoknight_fire Item "Dark Falkirk Helm" Item "Dark Age Defender" Item "The Splendid Screen" Item "The Eyelander" WeaponRestrictions MeleeOnly Attributes DisableDodge ItemAttributes { ItemName "The Eyelander" "attach particle effect" 2 "set damagetype ignite" 1 "fire rate penalty" 1.2 "max health additive penalty" 0 } Template Zombie_Demo } //A minigiant axeknight that can fire deadly fireball spells! Flameborn_Demo_Knight_Spell { Class Demoman Name "Executioner of Embers" Health 650 Scale 1.4 ClassIcon demoknight_skullcutter_fireball Item "The Dark Helm" Item "Dark Age Defender" Item "The Splendid Screen" Item "The Scotsman's Skullcutter" Item "TF_WEAPON_SPELLBOOK" Attributes DisableDodge StripItemSlot 0 ItemAttributes { ItemName "The Scotsman's Skullcutter" "paintkit_proto_def_index" 293 //Searing Souls "set_item_texture_wear" 0.2 } ItemAttributes { ItemName "TF_WEAPON_SPELLBOOK" "projectile speed decreased" 0.25 //~1020 * 0.25 = 255 "projectile acceleration" 510 "projectile acceleration time" 1 "projectile acceleration start time" 0.8 "mod projectile heat seek power" 15 "mod projectile heat aim time" 0.8 "mod projectile heat no predict target speed" 1 "damage penalty" 0.8 } CharacterAttributes { "health regen" 2 "damage force reduction" 0.75 } Spell { Delay 5 Cooldown 6 Type "Fireball" } Template Zombie_Demo } //A SlowRecharge & BigHeal Uber Medic fusion. At this point, it's its own thing, really. Flameborn_Medic_Uber { Class Medic Name "Defensive Deacon" ClassIcon medic_uber Item "TF_WEAPON_MEDIGUN" Item "Mighty Mitre" Item "Wings of Purity" Attributes SpawnWithFullCharge ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "heal rate bonus" 10 "ubercharge rate penalty" 0.5 //you simply do not deserve more uber } Template Zombie_Medic } Flameborn_Medic_Shield { Class Medic Name "Defensive Deacon" ClassIcon medic_shield_lite Item "TF_WEAPON_MEDIGUN" Item "Nunhood" Attributes SpawnWithFullCharge Attributes ProjectileShield Attributes IgnoreEnemies CharacterAttributes { "increase buff duration" 9 "bot medic uber deploy delay duration" 900 } ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "heal rate bonus" 5 } Template Zombie_Medic } //A spy that heals on kill, through the kunai! Flameborn_Spy_Kunai { Class Spy Skill Expert Name "Black Knife Assassin" Item "Conniver's Kunai" Item "Bedouin Bandana" ClassIcon spy_heal ItemAttributes { ItemName "Bedouin Bandana" "set item tint rgb" 8626083 //Balaclavas Are Forever } UseHumanModel 2 } Flameborn_Giant_Scout_HealSpell { Class Scout Health 1600 Name "Outrider Knight" Attributes MiniBoss ClassIcon scout_fast_heal_spell StripItemSlot 0 StripItemSlot 1 Item "The Dark Helm" Item "Squire's Sabatons" Item "Coldfront Carapace" Item "TF_WEAPON_SPELLBOOK" Item "Three-Rune Blade" ItemAttributes { ItemName "Three-Rune Blade" "bleeding duration" 0 "hit self on miss" 0 } Spell { Delay 0 IfHealthBelow 1000 Type "Healing Aura" Repeats 1 } CharacterAttributes { "health from healers increased" 5 // "move speed bonus" 1.3 "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 } } //A Pyro that swaps between their flamer and flare gun based on target range. //Also overheals their allies and heals themselves when below half health! Flameborn_Giant_Pyro_Combo_HealSpell { Class Pyro Skill Expert Name "Lord of Cinders Past" Health 3000 Attributes MiniBoss ClassIcon pyro_combo_heal_spell Item "Upgradeable TF_WEAPON_FLAMETHROWER" Item "TF_WEAPON_SPELLBOOK" Item "dec2014 Pyromancer's Raiments" Item "Hard-Headed Hardware" Item "The Manneater" ItemAttributes { ItemName "The Manneater" "set item tint rgb" 13595446 } ItemAttributes { ItemName "Upgradeable TF_WEAPON_FLAMETHROWER" "paintkit_proto_def_index" 2 //Wrapped Reviver "set_item_texture_wear" 0.2 "damage bonus" 1.25 "mult airblast refire time" 1.5 } ItemAttributes { ItemName "TF_WEAPON_SPELLBOOK" "deploy time decreased" 0.01 } CharacterAttributes { "max health additive bonus" 3000 "health from healers increased" 10 "move speed penalty" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 6 } SpawnTemplate PT_SpellHealLogic ChangeAttributes { Name "PostHeal" Repeats 1 Delay 0 IfHealthAbove 3001 } FireInput { Target "postheal_relay" Action Trigger Delay 0 Repeats 1 IfHealthBelow 1500 } EventChangeAttributes { Default { Spell { Delay 10 Type "Healing Aura" Repeats 1 } } Heal { Spell { Delay 0 IfHealthBelow 1500 Type "Healing Aura" Repeats 1 } } PostHeal { Item "The Flare Gun" ItemAttributes { ItemName "The Flare Gun" "fire rate bonus" 0.15 } WeaponSwitch { Type "Primary" IfSeeTarget 1 MaxTargetRange 350 Delay 2 Cooldown 4 } WeaponSwitch { Type "Secondary" Delay 0 Cooldown 4 } } } } //A giant demoknight that fires flares! ...so, a giant rapid flare pyro with a passive melee? Maybe so. Flameborn_Giant_Demoknight_Cinder { Template T_TFBot_Giant_Demoman WeaponRestrictions SecondaryOnly Name "Lord of Cinder" ClassIcon demoknight_fire_giant Attributes SuppressFire MaxVisionRange 1500 Item "The Flare Gun" Item "The Eyelander" Item "Forgotten King's Restless Head" Item "Forgotten King's Pauldrons" // CustomEyeParticle "unusual_demonhorns_orange_parent" ItemAttributes { ItemName "The Flare Gun" "projectile gravity" -1 "projectile speed decreased" 0.6 "penetrate teammates" 1 "damage bonus" 2.2 //66, +132 on crit when no resists "dmg bonus vs buildings" 1.5 //99, about as much as a pipe "fire rate bonus" 0.15 //0.3s min "custom kill icon" "sword" "custom projectile model" "models/weapons/w_models/w_drg_ball.mdl" // "projectile trail particle" "burningplayer_flyingbits" "attach particle effect" 1 "custom item model" "models/weapons/c_models/c_claymore/c_claymore.mdl" "custom weapon fire sound" "common/null.wav" //gets spammed around it so nty } ItemAttributes { ItemName "The Eyelander" "is_passive_weapon" 1 "fire rate bonus" 0.4 //0.32s min. "max health additive penalty" 0 "set damagetype ignite" 1 } ShootTemplate { Name PT_RotatingBlade AttachToProjectile 1 } FireWeapon { Type "Primary" Cooldown 0.8 Duration 0.1 Delay 0.1 IfSeeTarget 1 IfHealthAbove 1601 } FireWeapon { Type "Primary" Cooldown 0.4 Duration 0.1 Delay 0.1 IfSeeTarget 1 IfHealthBelow 1600 } AddTemplate Zombie_Demo } //A giant demoknight that fires flares! ...so, a giant rapid flare pyro with a passive melee? Maybe so. Flameborn_Giant_Demoman_Cinder { Template T_TFBot_Giant_Demoman WeaponRestrictions SecondaryOnly Name "Lord of Cinder" ClassIcon demoman_axtinguisher_hybrid_fire Item "The Iron Bomber" Item "The Splendid Screen" Item "The Scotsman's Skullcutter" Item "Forgotten King's Restless Head" Item "Forgotten King's Pauldrons" ItemAttributes { ItemName "The Iron Bomber" "paintkit_proto_def_index" 293 //Searing Souls "set_item_texture_wear" 0.2 "fire rate bonus" 0.5 "faster reload rate" 0.5 "set damagetype ignite" 1 "no self effect" 1 "projectile trail particle" "rocketpack_exhaust_fire" } ItemAttributes { ItemName "The Scotsman's Skullcutter" "custom item model" "models/weapons/c_models/c_axtinguisher/c_axtinguisher_pyro.mdl" "move speed penalty" 1 "damage bonus" 1 "attack_minicrits_and_consumes_burning" 1 } WeaponSwitch { Type "Melee" IfSeeTarget 1 MaxTargetRange 220 Delay 1 Cooldown 2 } WeaponSwitch { Type "Primary" Delay 0 Cooldown 2 } AddTemplate Zombie_Demo } Flameborn_Giant_Engineer_Ranger_Burst { Name "Giant Dark Hail Engie" Class Engineer Skill Hard Health 3000 ClassIcon engineer_ranger_nys_spammer WeaponRestrictions PrimaryOnly Attributes MiniBoss Action FetchFlag Item "The Rescue Ranger" Item "Underminer's Overcoat" Item "Demonic Dome" Item "The Cryptic Keepsake" ItemAttributes { ItemName "The Rescue Ranger" "paintkit_proto_def_index" 412 //Secretly Serviced "set_item_texture_wear" 0 "mult projectile count" 6 "fire rate penalty" 1.5 "projectile spread angle penalty" 2.5 "projectile speed decreased" 0.75 "mod max primary clip override" -1 } ItemAttributes { ItemName "Underminer's Overcoat" "item style override" 2 } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "voice pitch scale" 0.2 } UseHumanModel 2 } //A giant crossbow medic that fires in bursts! And it penetrates, too, allowing it to heal at the same time! Flameborn_Giant_Medic_Crossbow_Burst { Name "Giant Repeating Crossbow Knight" Class Medic Skill Hard Health 4000 ClassIcon medic_crossbow_burst_penetration Item "The Crusader's Crossbow" Item "Bushi-dou" Item "The War on Smissmas Battle Hood" Item "The Ruffled Ruprecht" Item "The Foul Cowl" WeaponRestrictions PrimaryOnly Attributes MiniBoss Action FetchFlag ItemAttributes { ItemName "The Crusader's Crossbow" "paintkit_proto_def_index" 297 //Necromanced "set_item_texture_wear" 0.4 "clip size upgrade atomic" 9 "faster reload rate" 1.5 "reload full clip at once" 1 "projectile penetration" 1 } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 } UseHumanModel 2 } //////////////////////////////////////////////////////////////////////////// /////////////////////// UNSORTED bots //////////////////// //////////////////////////////////////////////////////////////////////////// Eldr_Medic_Syringe { Class Medic Name "Sinful Shaman" Health 350 Scale 1.2 ClassIcon medic_syringe_spammer WeaponRestrictions PrimaryOnly Item "Upgradeable TF_WEAPON_SYRINGEGUN_MEDIC" Item "The Shaman's Skull" Attributes AlwaysCrit Action FetchFlag AimAt Body AimOffset "0 0 10" // AimLeadProjectileSpeed 1100 //overaims slightly ItemAttributes { ItemName "Upgradeable TF_WEAPON_SYRINGEGUN_MEDIC" "fire rate bonus" 0.75 //haha syringe go brrrr "faster reload rate" 0 } CharacterAttributes { "move speed bonus" 0.85 //-48 for 272 HU/s } Template Zombie_Medic } Eldr_Sniper_Bow { Class Sniper Name "Ascender of Arrows" ClassIcon sniper_bow_multi Item "The Huntsman" Item "Holy Hunter" Item "Wings of Purity" ItemAttributes { ItemName "The Huntsman" "arrow mastery" 1 "damage penalty" 0.5 } Template Zombie_Sniper } Eldr_Giant_Scout { Template T_TFBot_Giant_Scout Name "Incorporeal Phaser" ClassIcon scout_ghost Item "Upgradeable TF_WEAPON_SCATTERGUN" Attributes DisableDodge ItemAttributes { ItemName "Upgradeable TF_WEAPON_SCATTERGUN" "faster reload rate" 0.5 } CharacterAttributes { "not solid to players" 1 "move speed bonus" 0.85 "mult flag carrier move speed" 0.75 } FireInput { Target !self Action $SetKey$renderfx Param 15 Delay 0.1 } } //////////////////////////////////////////////////////////////////////////// /////////////////////// Warzone bots //////////////////// //////////////////////////////////////////////////////////////////////////// War_Scout { Class Scout Name "Infantry Scout" Skill Normal // ClassIcon scout_spammer Item "Fortunate Son" Item "Flak Jack" //look. it's just a REALLY solid combo. It just works. Item "craftsmann_scattergun_backcountryblaster" // ItemAttributes // { // ItemName "craftsmann_scattergun_backcountryblaster" // "fire rate bonus" 0.8 // "faster reload rate" 0 // } AddTemplate Zombie_Scout } War_Soldier_Explosive { Name "Explosion Expert Soldier" Class Soldier Item "The Peacebreaker" Item "The Killer's Kit" Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" ClassIcon soldier_explode ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "paintkit_proto_def_index" 217 //bomber soul "set_item_texture_wear" 0.6 "blast radius increased" 1.5 "dmg falloff decreased" 1.25 //slightly more damage } ItemAttributes { ItemName "The Killer's Kit" "item style override" 1 } Template Zombie_Soldier } War_Soldier_CritBanner { Class Soldier Name "Rallying Kritz Soldier" Skill Hard Item "powerhouse_rocketlauncher_shellshocker" Item "The Buff Banner" Item "Public Speaker" Item "Rebel Rouser" Item "The Fortune Hunter" ClassIcon soldier_critbuff Attributes AlwaysCrit Attributes SpawnWithFullCharge ItemAttributes { ItemName "The Buff Banner" "increase buff duration" 9 "effect cond override" 33 } ItemModel { ItemName "The Fortune Hunter" Model "models/weapons/c_models/c_critbanner/c_critbanner.mdl" } Template Zombie_Soldier } War_Pyro_Combo { Name "Trench Clearer Pyro" Class Pyro ClassIcon pyro_degreaser_panic Skill Expert Item "The Degreaser" Item "Panic Attack Shotgun" Item "Full Metal Helmet" Item "Torcher's Trench Coat" WeaponSwitch { Type "Primary" IfSeeTarget 1 MaxTargetRange 350 Delay 2 Cooldown 4 } WeaponSwitch { Type "Secondary" Delay 0 Cooldown 4 } ItemAttributes { ItemName "The Degreaser" "paintkit_proto_def_index" 217 "set_item_texture_wear" 0.4 } ItemAttributes { ItemName "Panic Attack Shotgun" "paintkit_proto_def_index" 217 "set_item_texture_wear" 0.4 "passive reload" 1 "faster reload rate" 0 } Template Zombie_Pyro } War_Demo_Mine { Name "Rapid Mine Layer Demoman" Class Demoman Item "The Iron Bomber" Item "The Frag Proof Fragger" ClassIcon demo_spammer ItemAttributes { ItemName "The Iron Bomber" "paintkit_proto_def_index" 217 "set_item_texture_wear" 0.2 "faster reload rate" 0 "fire rate bonus" 0.8 "grenade damage reduction on world contact" 1.75 //105 base } Template Zombie_Demo } War_Engineer_Frontline { Class Engineer Skill Expert Name "Frontline Engineer" Health 250 //Eat your heart out, Super Scout. Scale 1.2 ClassIcon engineer_shortcircuit_lite //_fast? _blast? Action FetchFlag MaxVisionRange 750 UseMeleeThreatPrioritization 1 WeaponRestrictions SecondaryOnly Item "The Short Circuit" Item "Dogfighter" Item "Head of Defense" ItemAttributes { ItemName "The Short Circuit" "dmg penalty vs players" 3.5 //35 per normal hit "dmg bonus vs buildings" 10 //now it deals base damage. "fire rate penalty" 3 //0.3s between hits "disable buildings on hit" 2 //electricity could overcharge them, right? "damage blast push" 1.5 "max bullet range" 150 //does indeed work, and can even increase range! } CharacterAttributes { "move speed bonus" 1.3 "damage force reduction" 0.8 "airblast vulnerability multiplier" 0.8 } Template Zombie_Engineer } War_Engineer_Widowmaker_Sentry { Class Engineer Action FetchFlag Name "Frontline Engineer" Tag engineer_frontline Health 350 Scale 1.2 Skill Hard Item "The Widowmaker" Item "The Gunslinger" Item "Dogfighter" Item "Head of Defense" ClassIcon engineer_widowmaker_nys ClientCommand { Name "build 2" Delay 15 Cooldown 10 IfSeeTarget 1 } AddAttribute { Item "TF_WEAPON_BUILDER" Name "disable weapon switch" Value 1 Delay 15 Cooldown 10 IfSeeTarget 1 } AddAttribute { Item "TF_WEAPON_BUILDER" Name "disable weapon switch" Value 0 Delay 15.5 Cooldown 1 IfSeeTarget 1 } ClientCommand { Name "destroy 2" Delay 25 Cooldown 10 IfSeeTarget 1 } // FireInput // { // Target "switch_to_sentry_mode" // Action "Trigger" // Delay 3 // Cooldown 4 // IfSeeTarget 0 // } // FireInput // { // Target "switch_to_shotgun_mode" // Action "Trigger" // Delay 0 // Cooldown 3 // IfSeeTarget 1 // } CharacterAttributes { "deploy time decreased" 0.1 } ItemAttributes { ItemName "TF_WEAPON_BUILDER" "provide on active" 1 } ItemAttributes { ItemName "Head of Defense" "item style override" 1 } Template Zombie_Engineer } War_Engineer { Class Engineer Health 500 Name "Backline Engineer" Item "Trash Toter" Item "Tools of the Trade" Item "Winter Backup" Attributes IgnoreFlag ExtAttr BuildDispenserAsTeleporter TeleportWhere spawnbot CharacterAttributes { "engy dispenser radius increased" 4 "health from healers reduced" 0.25 "mult dispenser rate" 4 } Template Zombie_Engineer } War_Medic_UberBigHeal { Template T_TFBot_Medic Name "Armored Combat Medic" Health 300 Scale 1.2 Item "Berlin Brain Bowl" Item "Bunnyhopper's Ballistics Vest" // Item "The Surgical Survivalist" // Item "Battery Canteens" ClassIcon medic_uber_armored_lite ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "heal rate bonus" 2 //stacks with character attributes' heal rate bonus of 5x "uber duration bonus" -3 //I mean come on they have everything else already } // ItemAttributes // { // ItemName "Battery Canteens" // "attachment name" "zombie_body" // "custom item model" "models/player/items/medic/medic_zombie.mdl" // "player skin override" 1 // "zombiezombiezombiezombie" 1 // } // UseHumanModel 2 AddTemplate Zombie_Medic } War_Sniper { Class Sniper Name "Spec Ops Sniper" Skill Expert Item "Cozy Camper" Item "The AWPer Hand" Item "The Triggerman's Tacticals" Item "Rifleman's Regalia" ClassIcon sniper_heal Template Zombie_Sniper } War_Spy { Class Spy Name "Infiltration Spy" Skill Expert AimTrackingInterval 0.2 Item "Lurking Legionnaire" Item "A Hat To Kill For" Item "Upgradeable TF_WEAPON_REVOLVER" Item "Upgradeable TF_WEAPON_KNIFE" ItemAttributes { ItemName "Upgradeable TF_WEAPON_REVOLVER" "paintkit_proto_def_index" 412 "set_item_texture_wear" 0.4 "auto fires when full" 1 } ItemAttributes { ItemName "Upgradeable TF_WEAPON_KNIFE" "paintkit_proto_def_index" 412 "set_item_texture_wear" 0.4 } Template Zombie_Spy } War_Giant_Scout { Class Scout Name "Super Infantry Scout" Skill Hard AimTrackingInterval 0.35 Health 1600 Attributes MiniBoss ClassIcon scout_spammer Item "Fortunate Son" Item "Flak Jack" //look. it's just a REALLY solid combo. It just works. Item "craftsmann_scattergun_backcountryblaster" ItemAttributes { ItemName "craftsmann_scattergun_backcountryblaster" "fire rate bonus" 0.8 "faster reload rate" 0 } CharacterAttributes { "damage force reduction" 0.65 "airblast vulnerability multiplier" 0.65 } AddTemplate Zombie_Scout } War_Giant_Soldier_Crit { Template T_TFBot_Giant_Soldier Name "Giant Frontline Soldier" Attributes AlwaysCrit Item "The Diplomat" Item "The Patriot Peak" Item "gentlemanne_rocketlauncher_coffinnail" AddTemplate Zombie_Soldier } War_Giant_Soldier { Template T_TFBot_Giant_Soldier Name "Giant Commando Soldier" Item "The Diplomat" Item "The Patriot Peak" Item "gentlemanne_rocketlauncher_coffinnail" AddTemplate Zombie_Soldier } War_Giant_Soldier_BBox_Ubercan { Template T_TFBot_Giant_Soldier Name "Colonel Desperation" Item "The Diplomat" Item "The Patriot Peak" Item "The Black Box" Item "Battery Canteens" ClassIcon soldier_blackbox_ubercan ExtAttr SuppressCanteenUse ItemAttributes { ItemName "The Black Box" "damage bonus" 0.45 "fire rate bonus" 0.1 "faster reload rate" 1.5 "Projectile speed increased" 0.8 "projectile spread angle penalty" 4 "heal on hit for rapidfire" 1000 } ItemAttributes { ItemName "Battery Canteens" "ubercharge" 1 "powerup charges" 1 "powerup duration" 5 } FireWeapon { Type "Action" Repeats 1 IfHealthBelow 2000 IfSeeTarget 1 Delay 0.03 Cooldown 1 } AddTemplate Zombie_Soldier } War_Giant_Soldier_Burst { Template T_TFBot_Giant_Soldier Name "Giant Burst Commando Soldier" Item "The Diplomat" Item "Stout Shako" Item "gentlemanne_rocketlauncher_coffinnail" ClassIcon soldier_crit_burstfire AimLeadProjectileSpeed 440 ItemAttributes { ItemName "gentlemanne_rocketlauncher_coffinnail" "faster reload rate" 0.6 "fire rate bonus" 0.1 "projectile speed decreased" 0.4 "clip size upgrade atomic" 5 } AddTemplate Zombie_Soldier } War_Giant_Soldier_Barrage { Template T_TFBot_Giant_Soldier Name "Colonel Cataclysm" Item "The Diplomat" Item "Stout Shako" Item "gentlemanne_rocketlauncher_coffinnail" ClassIcon soldier_barrage_infinite ItemAttributes { ItemName "gentlemanne_rocketlauncher_coffinnail" "faster reload rate" 0 "fire rate bonus" 0.2 "projectile speed decreased" 0.55 "projectile spread angle penalty" 5 "damage bonus" 1.5 } CharacterAttributes { "health regen" 20 //Lesser, to make them not as much of a pain } AddTemplate Zombie_Soldier } //Fancy Giant Heavy. War_Giant_Heavy { Template T_TFBot_Giant_Heavyweapons Name "Giant War-Torn Heavy" Item "The Eliminators Safeguard" Item "warbird_minigun_butcherbird" ItemAttributes { ItemName "warbird_minigun_butcherbird" "damage bonus" 1.5 } AddTemplate Zombie_Heavy } //Giant Blast Heavy! Deals slight knockback on hit, //but shoots slower, less bullets, and in a tighter spread. //Also aims significantly less well! War_Giant_Heavy_Blast { Template T_TFBot_Giant_Heavyweapons Name "Giant War-Torn Heavy" AimTrackingInterval 0.35 //between hard and normal Item "The Eliminators Safeguard" Item "warbird_minigun_butcherbird" ClassIcon heavy_push ItemAttributes { ItemName "warbird_minigun_butcherbird" "minigun spinup time increased" 1.25 "damage blast push" 3 "fire rate penalty" 2 "bullets per shot bonus" 0.75 "weapon spread bonus" 0.6 //reduced spread and bullets minimize odds that you randomly get yeeted "damage bonus" 2 //compensates for greatly reduced damage otherwise; effectively 0.75x dmg "mult dmg vs giants" 2 //but vs giants, still 1.5x dmg } AddTemplate Zombie_Heavy } //A powerful Giant Heavy that fires homing rockets continually! War_Giant_Heavy_Rocket { Template T_TFBot_Giant_Heavyweapons Name "Marshal Misha" ClassIcon heavy_rocket_homing_nys Item "gentlemanne_minigun_topshelf" Item "The Team Captain" Item "Commissar's Coat" Item "The Fortune Hunter" ItemAttributes { ItemName "gentlemanne_minigun_topshelf" "damage bonus" 1.2 } ItemAttributes { ItemName "The Fortune Hunter" "custom item model" "models/weapons/c_models/c_rocketlauncher/c_rocketlauncher.mdl" "attachment name" "head" "attachment angles" "-100 5 25" "attachment offset" "-23 0 -40" "attachment scale" "2.25" } SpawnTemplate { Name PT_RocketTurret Origin "-50 50 100" Angles "-70 0 0" } AddTemplate Zombie_Heavy } Eldr_Chief_Soldier_Ghost { Template T_TFBot_Giant_Soldier_Spammer_Reload Name "Incorporeal Phaser" ClassIcon soldier_burstfire_ghost Health 25000 Attributes UseBossHealthBar CharacterAttributes { "not solid to players" 1 } FireInput { Target !self Action $SetKey$renderfx Param 15 Delay 0.1 } } //////////////////////////////////////////////////////////////////////////// /////////////////////// Doomsday bots //////////////////// //////////////////////////////////////////////////////////////////////////// Doom_Soldier_AirStrike { Class Soldier Name "Aerial Assault Soldier" Skill Hard Item "The Air Strike" Item "Whirly Warrior" Item "The B.A.S.E. Jumper" ClassIcon soldier_airstrike_para Attributes HoldFireUntilFullReload ItemAttributes { ItemName "The Air Strike" "fire rate bonus" 0.35 "clip size upgrade atomic" 4 "faster reload rate" 0.65 } Template Zombie_Soldier } Doom_Pyro_Scorch { Class Pyro Name "Earth Scorcher Pyro" Skill Hard ClassIcon pyro_dragon_fury_swordstone MaxVisionRange 800 Item "The Dragon's Fury" Item "The Raven's Visage" Template Zombie_Pyro } Doom_Pyro_FlareRain { Class Pyro Name "Sky Burner Pyro" Health 650 Scale 1.4 MaxVisionRange 1200 Skill Hard WeaponRestrictions SecondaryOnly Item "The Flare Gun" Item "The Firefly" ClassIcon pyro_flare_rain_nys Tag bot_giant AimAt Body AimOffset "0 0 15" ItemAttributes { ItemName "The Flare Gun" "fire rate bonus" 0.2 "damage bonus" 1.5 "projectile spread angle penalty" 3 "projectile speed decreased" 0.4 } CharacterAttributes { "health regen" 2 "move speed bonus" 0.85 "damage force reduction" 0.75 } Template Zombie_Pyro } Doom_Pyro_Spread { Class Pyro Health 650 Scale 1.4 Name "Endless Fire Pyro" ClassIcon pyro_bigfire Skill Expert Attributes AlwaysFireWeapon Item "Firewall Helmet" Item "teufort_flamethrower_earthskyandfire" ItemAttributes { ItemName "teufort_flamethrower_earthskyandfire" "flame_drag" 4.25 //double range "flame_spread_degree" 4.2 //1.5x spread } CharacterAttributes { "health regen" 2 "move speed bonus" 0.85 "damage force reduction" 0.75 } Template Zombie_Pyro } Doom_Demo_Bomber { Name "Doomsday Demo" Class Demoman ClassIcon demo_bomber Skill Expert Attributes HoldFireUntilFullReload Item "The Blast Blocker" Item "Blast Defense" Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "paintkit_proto_def_index" 296 "set_item_texture_wear" 0.2 "fire rate bonus" 0.25 "faster reload rate" 0.4 "clip size bonus" 2 } Template Zombie_Demo } Doom_Medic_UberBigHeal { Template T_TFBot_Medic Name "Disaster-proof Medic" Health 300 Scale 1.2 Item "Berlin Brain Bowl" Item "Bunnyhopper's Ballistics Vest" // Item "The Surgical Survivalist" // Item "Battery Canteens" ClassIcon medic_uber_armored_lite ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "heal rate bonus" 2 //stacks with character attributes' heal rate bonus of 5x "uber duration bonus" -3 //I mean come on they have everything else already } AddTemplate Zombie_Medic } Doom_Giant_Scout { Template T_TFBot_Giant_Scout Name "Giant Thunderstorm Scout" SpawnTemplate PT_ThunderTarget Item "The Weather Master" Item "Upgradeable TF_WEAPON_SCATTERGUN" ClassIcon scout_atomic ItemAttributes { ItemName "Upgradeable TF_WEAPON_SCATTERGUN" "override projectile type" 13 //Naturally makes proj deal Pomson damage. "projectile spread angle penalty" 4 "mult projectile count" 6 "dmg penalty vs players" 0.4 //24 base damage, -75% -> 6 "fire rate penalty" 1.2 "dmg bonus vs buildings" 5 "paintkit_proto_def_index" 241 //electroshocked "set_item_texture_wear" 0.2 } AddTemplate Zombie_Scout } Doom_Giant_Soldier_Barrage { Template T_TFBot_Giant_Soldier_SlowBarrage Name "Colonel Conflict" Item "Breach and Bomb" AddTemplate Zombie_Soldier } Doom_Giant_Soldier_Barrage_Heal { Template T_TFBot_Giant_Soldier_SlowBarrage Name "Colonel Conflict" Item "Breach and Bomb" // Healing giant + ally giant = bad mix...but let's try it anyway Item "The Black Box" ClassIcon soldier_barrage_heal ItemAttributes { ItemName "The Black Box" "fire rate bonus" 0.2 "damage bonus" 1.5 "mult dmg vs giants" 0.5 //reduces health per hit, too! "Projectile speed increased" 0.65 "projectile spread angle penalty" 6 "faster reload rate" 0.3 "clip size upgrade atomic" 26 "health on radius damage" 250 //Max. 7.5k per full clip } AddTemplate Zombie_Soldier } Doom_Giant_Soldier_Ubercan { Template T_TFBot_Giant_Soldier Name "Desperation" Health 16000 SpawnTemplate PT_PowerupLogic_Owned Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Item "Attack Packs" Item "The Shellmet" Item "Battery Canteens" ExtAttr SuppressCanteenUse Attributes AlwaysCrit Attributes UseBossHealthBar ClassIcon soldier_burstfire_ubercan ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "paintkit_proto_def_index" 403 "set_item_texture_wear" 0.2 "faster reload rate" 0.6 "fire rate bonus" 0.1 "projectile speed decreased" 0.65 // "damage bonus" 1.25 } ItemAttributes { ItemName "Battery Canteens" "ubercharge" 1 "powerup charges" 1 } FireWeapon { IfHealthBelow 8000 Type "Action" Repeats 1 Delay 1 } AddAttribute { Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Name "faster reload rate" Value 0 Delay 0 IfHealthBelow 8000 } AddAttribute { Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Name "projectile speed decreased" Value 0.4 Delay 0 IfHealthBelow 8000 } AddTemplate Zombie_Soldier } //Homing Fireball Heavy, pretty much straight from Demonic Dominance. //Thanks, Hellbabe <3 Doom_Giant_Heavy_Fireball { Class Heavyweapons Name "Giant Sky Burner Heavy" ClassIcon heavy_fireballgun Skill Expert Health 5000 WeaponRestrictions PrimaryOnly MaxVisionRange 1500 Item "The Huo Long Heatmaker" Item "Blazing Bull" Item "dec2014 2014_pyromancer_hood" Attributes MiniBoss ItemAttributes { ItemName "The Huo Long Heatmaker" "damage bonus" 5 "fire rate bonus" 3 // "crits_become_minicrits" 1 POWER "Projectile speed increased" 0.4 "projectile spread angle penalty" 1 "override projectile type" 6 "mod projectile heat seek power" 10 "attach particle effect" 1 "set damagetype ignite" 1 "dmg bonus vs buildings" 5 "projectile trail particle" "spell_fireball_small_red" "custom projectile model" "models/weapons/w_models/w_drg_ball.mdl" "custom kill icon" "spellbook_fireball" } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } AddTemplate Zombie_Heavy } Doom_Giant_Heavy_Burst { Template T_TFBot_Giant_Heavyweapons_Shotgun Name "Giant Cataclysm Heavy" MaxVisionRange 1200 //let's not get crazy here Item "The Eliminators Safeguard" Attributes MiniBoss WeaponRestrictions SecondaryOnly ClassIcon heavy_shotgun_nuclear ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_HWG" "fire rate bonus" 0.2 "bullets per shot bonus" 2 //3x total damage "damage penalty" 1 "damage bonus" 1.5 "weapon spread bonus" 1.3 "faster reload rate" 0.75 } ItemAttributes { ItemName "The Eliminators Safeguard" "item style override" 1 } AddTemplate Zombie_Heavy } Doom_Giant_Heavy_Nuclear { Template T_TFBot_Giant_Heavyweapons_Shotgun Name "Giant Cataclysm Heavy" MaxVisionRange 1200 //let's not get crazy here Item "The Eliminators Safeguard" Attributes MiniBoss WeaponRestrictions SecondaryOnly ClassIcon heavy_shotgun_nuclear ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_HWG" "explosive bullets" 146 //rocket radius "fire rate bonus" 2 //slightly faster "bullets per shot bonus" 2 //3x total damage "damage penalty" 1 "damage bonus" 1.5 "weapon spread bonus" 1.3 "faster reload rate" 0 } ItemAttributes { ItemName "The Eliminators Safeguard" "item style override" 1 } AddTemplate Zombie_Heavy } Doom_Giant_Medic_Haste { Name "Giant Doombringer Medic" Health 4500 Class Medic Item "Upgradeable TF_WEAPON_MEDIGUN" Item "The Nunhood" ClassIcon medic_haste_lite Attributes MiniBoss Attributes SpawnWithFullCharge SpawnTemplate PT_PowerupLogic_Medic ItemAttributes { ItemName "Upgradeable TF_WEAPON_MEDIGUN" "paintkit_proto_def_index" 296 //kiln n conquer "set_item_texture_wear" 0.2 "uber duration bonus" -9 "ubercharge rate bonus" 80 "effect cond override" 91 "medigun passive attributes" "move speed penalty|0.67" //because haste move speed is kinda nutty "heal rate bonus" 150 } CharacterAttributes { "damage force reduction" 0.4 "bot medic uber health threshold" 9999 "airblast vulnerability multiplier" 0.4 "move speed bonus" 0.4 } Template Zombie_Medic } //////////////////////////////////////////////////////////////////////////// /////////////////////// Universe bots //////////////////// //////////////////////////////////////////////////////////////////////////// //A VERY fast-firing Fury pyro. Dangerous up close with crits! Universe_Pyro_Fury_Spammer { Class Pyro Skill Expert Name "Comet Pyro" ClassIcon pyro_dragon_fury_swordstone_spammer Item "The Dragon's Fury" Item "The Spectralnaut" Item "The Space Diver" Attributes AlwaysCrit MaxVisionRange 750 ItemAttributes { ItemName "The Dragon's Fury" "item_meter_charge_rate" 0.6 //25% faster } UseHumanModel 2 } //A mini-giant version of the Axtinguisher-tossing Pyro from Wave 3! //That's right, we're reprising old bots now >:3 Universe_Pyro_Douse { Class Pyro Name "Starkiller Pyro" Scale 1.3 Health 650 WeaponRestrictions PrimaryOnly ClassIcon pyro_jug_axtinguisher_bright Item "The Rescue Ranger" Item "The Axtinguisher" Item "The Space Diver" Item "The HazMat Headcase" Attributes SuppressFire ItemAttributes { ItemName "The Rescue Ranger" "projectile gravity" -1 "projectile speed decreased" 0.4 "penetrate teammates" 1 "no damage falloff" 1 "damage bonus" 1.1 //44 "grenade bounce speed" 0.3 "minicrit vs burning player" 1 "damage bonus vs burning" 1.5 //66 base damage "projectile penetration" 1 "fire rate bonus" 0.35 "remove damage type" 2 //I presume this is included. "add damage type" 128 //DMG_CLUB "fire input on hit" "!self^ExtinguishPlayer^" //extinguish the player "custom projectile model" "models/weapons/w_models/w_drg_ball.mdl" "custom item model" "models/weapons/c_models/c_axtinguisher/c_axtinguisher_pyro.mdl" "custom weapon fire sound" "common/null.wav" "projectile lifetime" 7.5 //25% shorter compared to giant to account for spam "custom kill icon" "axtinguisher" } ItemAttributes { ItemName "The Axtinguisher" "is_passive_weapon" 1 "fire rate bonus" 0.9 //just in case. } ItemAttributes { ItemName "The HazMat Headcase" "item style override" 1 //Reinforced } ShootTemplate { Name PT_RotatingAxe AttachToProjectile 1 } FireWeapon { Type "Primary" Cooldown 0.8 Duration 0.2 Delay 4 IfSeeTarget 1 } AddTemplate Zombie_Pyro } //A mini-giant version of the Short Circuit Engie from wave 1! //Also deals WAY more damage. Universe_Engineer_ShortCircuit { Class Engineer Skill Expert Name "Electron Emitting Engie" Health 650 Scale 1.3 ClassIcon engineer_shortcircuit_lite //_fast? _blast? MaxVisionRange 750 Action FetchFlag UseMeleeThreatPrioritization 1 WeaponRestrictions SecondaryOnly Item "The Short Circuit" Item "Phononaut" Item "Life Support System" Item "Rocket Operator" Item "Roboot" ItemAttributes { ItemName "The Short Circuit" "dmg penalty vs players" 10 //100 | 75 | 50 | 25 "dmg bonus vs buildings" 10 //now it deals base damage. "fire rate penalty" 3 //0.3s between hits "disable buildings on hit" 2 //electricity could overcharge them, right? "damage blast push" 1.5 } CharacterAttributes { "move speed bonus" 1.15 "damage force reduction" 0.8 "airblast vulnerability multiplier" 0.8 } UseHumanModel 2 } Universe_Giant_Scout { Class Scout Skill Expert Name "Lightspeed Scout" Health 1200 ClassIcon scout_giant_fast Attributes MiniBoss Attributes DisableDodge WeaponRestrictions MeleeOnly Item "Batsaber" Item "Cadet Visor" Item "Speedster's Spandex" Item "Fuel Injector" UseHumanModel 2 } Universe_Giant_Scout_Ubercan { Class Scout Skill Expert Name "Beyond Lightspeed" Health 1200 ClassIcon scout_fast_ubercan Attributes MiniBoss Attributes DisableDodge WeaponRestrictions MeleeOnly Item "Batsaber" Item "Cadet Visor" Item "Speedster's Spandex" Item "Fuel Injector" Item "Battery Canteens" ExtAttr SuppressCanteenUse ItemAttributes { ItemName "Battery Canteens" "ubercharge" 1 "powerup charges" 2 "powerup duration" 3 } FireWeapon { Type "Action" Repeats 1 IfHealthBelow 1190 Delay 0.03 Cooldown 1 } FireWeapon { Type "Action" IfHealthBelow 600 IfSeeTarget 1 Delay 0.03 Cooldown 0.5 //SPAM that shit } UseHumanModel 2 } //A giant meteorshowering soldier! //Highly dangerous even with resistances. Universe_Giant_Soldier_Meteor { Template T_TFBot_Giant_Soldier Name "Giant Starfall Soldier" Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Item "Attack Packs" Item "Veteran's Attire" Item "Shortness of Breath" Item "Universal Translator" ClassIcon spell_meteor_swordstonehel //Hellblade <3 ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "paintkit_proto_def_index" 293 "set_item_texture_wear" 0 "faster reload rate" 3.5 "clip size upgrade atomic" -3 "override projectile type extra" "spellmeteorshower" } ItemAttributes { ItemName "Universal Translator" "set item tint rgb" 4345659 //Zepheniah's Greed } UseHumanModel 2 } //A giant demoman with grenades that float in midair past a certain range! Universe_Giant_Demoman_Gravity { Template T_TFBot_Giant_Demo_Burst Name "Beyond Gravity" Item "Blast Defense" Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "fire rate bonus" 0.1 "faster reload rate" 0.45 "projectile spread angle penalty" 5 "clip size upgrade atomic" 7 "paintkit_proto_def_index" 225 //cosmic calamity "set_item_texture_wear" 0.2 "projectile gravity" -20 "projectile acceleration" -1200 "projectile acceleration time" 1 "projectile acceleration start time" 0.4 "blast radius increased" 1.2 //haha yes } AddTemplate Zombie_Demo } Chief_Resists { //Attributes: highly specific vulnerability values, courtesy of Bazooks. WeaponResist //Multiplies damage received from weapons listed below { "TF_WEAPON_SCATTERGUN" 1.449 "tf_weapon_soda_popper" 1.412 "tf_weapon_handgun_scout_primary" 1.63 "tf_weapon_pep_brawler_blaster" 1.875 "TF_WEAPON_ROCKETLAUNCHER" 1.7 "tf_weapon_flamethrower" 1.5 "TF_WEAPON_GRENADELAUNCHER" 1.616 "tf_weapon_cannon" 1.54 "TF_WEAPON_PIPEBOMBLAUNCHER" 1.5767 "tf_weapon_sword" 2 "tf_weapon_knife" 1.25 "TF_WEAPON_MINIGUN" 0.85 "TF_WEAPON_SHOTGUN_PYRO" 2.5 "TF_WEAPON_SHOTGUN_HWG" 2.5 "TF_WEAPON_SHOTGUN_SOLDIER" 2.5 "TF_WEAPON_SHOTGUN_PRIMARY" 2.5 "tf_weapon_sentry_revenge" 2.5 "TF_WEAPON_SNIPERRIFLE" 2 "tf_weapon_compound_bow" 2 } } Universe_Chief { Class Heavy Name "Entropy" Skill Expert Health 68000 Attributes MiniBoss Attributes UseBossHealthBar Attributes HoldFireUntilFullReload UseCustomModel "models/player/engineer.mdl" Item "The Person in the Iron Mask" Item "The Jupiter Jumpers" Item "The Space Bracers" Item "Roboot" Item "Iron Lung" ClassIcon random_lite CharacterAttributes { "move speed penalty" 0.55 "damage force reduction" 0.25 "airblast vulnerability multiplier" 0.25 "health regen" 25 "rage giving scale" 0.1 //Gives more bc of damage taken multipliers. "health from healers increased" 25 } AddTemplate Chief_Resists SpawnTemplate PT_Chief_Title SpawnTemplate { Name PT_Chief_FinalAttack Origin "0 0 120" } //Phase 2 ChangeAttributes { Name "LaserRotator" Delay 0 Repeats 1 IfHealthBelow 51000 } //Phase 3 FireInput { Target "chief_phase3_ent" Delay 0 Action Kill Repeats 1 IfHealthBelow 25000 } ChangeAttributes { Name "SelfHeal" Delay 0 Repeats 1 IfHealthBelow 25000 } //Phase 3.5 FireInput { Target "chief_phase4_ent" Delay 0 Action Kill Repeats 1 IfHealthBelow 13000 } ChangeAttributes { Name "Entropy" Delay 0 Repeats 1 IfHealthBelow 13000 } EventChangeAttributes { Default //Meteors + Fireball { Item "Sun Shooter" Item "TF_WEAPON_SPELLBOOK" ItemAttributes { ItemName "Sun Shooter" "use original class player animations" 1 "projectile spread angle penalty" 10 "faster reload rate" 0.3 "fire rate bonus" 0.1 "clip size upgrade atomic" 6 } Spell { Delay 5 Cooldown 12 Type "Meteor Shower" } } LaserRotator { Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "paintkit_proto_def_index" 232 "set_item_texture_wear" 0.2 "fire rate bonus" 0.5 "faster reload rate" 0 "damage bonus" 1.5 "projectile speed decreased" 0.65 "use original class weapon animations" 1 } FireInput { Target "!self" Action RunScriptCode Param "BossAttack_JumpLaser(self); SINS.ChangeClassIcon(self,`soldier_spammer`)" Delay 0 Repeats 1 } } SelfHeal { Item "TF_WEAPON_SPELLBOOK" Spell { Delay 0.1 Cooldown 15 Type "Healing Aura" } FireInput { Target "laser_mimic*" Action Kill Delay 0 Repeats 1 } FireInput { Target "particle_front*" Action Start Delay 0 Repeats 1 } FireInput { Target "particle_front*" Action Stop Delay 4 Repeats 1 } FireInput { Target "particle_front*" Action Kill Delay 4 Repeats 1 } } Entropy { Item "TF_WEAPON_SPELLBOOK" Sequence { Name "taunt_unleashed_rage_heavy" Delay 0 Repeats 1 } Sequence { Name "RUN_melee" Delay 1 Repeats 1 } AddCond { Index 87 Delay 0 Duration 1 } Spell { Delay 2 Type "Meteor Shower" Repeats 1 Charges 2 } FireInput { Target "finalattack_relay" Action Trigger Delay 1 Repeats 1 } FireInput { Target "!self" Action RunScriptCode Param "SINS.ChangeClassIcon(self,`boss_atomic_admiral`)" Delay 0 Repeats 1 } } } } } CustomWeapon { "Caber Toss" { OriginalItemName "TF_WEAPON_GRENADELAUNCHER" "custom projectile model" "models/workshop/weapons/c_models/c_caber/c_caber.mdl" "projectile speed decreased" 0.9 "grenade explode on impact" 1 "damage penalty" 0.75 "custom kill icon" "ullapool_caber_explosion" "custom weapon fire sound" "weapons/shovel_swing.wav" } "Sun Shooter" { OriginalItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "paintkit_proto_def_index" 293 "set_item_texture_wear" 0 "projectile speed increased" 0.5 "mod projectile heat seek power" 40 "mod projectile heat aim time" 3 "mod projectile heat aim error" 360 "mod projectile heat no predict target speed" 1 "damage bonus" 0.8 //72 base damage, bc full damage always is INSANE "no damage falloff" 1 "projectile spread angle penalty" 15 "set damagetype ignite" 1 "no self effect" 1 //ty Hellblade <3 "projectile trail particle" "spell_fireball_small_blue" "custom projectile model" "models/weapons/w_models/w_drg_ball.mdl" // "explosion particle" "spell_fireball_tendril_parent_blue" "custom impact sound" "=30|misc/halloween/spell_fireball_impact.wav" "custom kill icon" "spellbook_fireball" } //Rocket that homes in briefly, deccelerates after being launched. "Back Rocket" { OriginalItemName "TF_WEAPON_ROCKETLAUNCHER" // "projectile gravity" 400 "projectile trail particle" "eyeboss_projectile" "projectile speed decreased" 0.6 "blast dmg to self increased" 0 "penetrate teammates" 1 "projectile acceleration" -440 "projectile acceleration time" 0.5 "projectile acceleration start time" 0.5 "mod projectile heat seek power" 75 "mod projectile heat aim error" 360 "mod projectile heat aim time" 2 "mod projectile heat no predict target speed" 1 // "custom weapon fire sound" "=20|mvm/giant_soldier/giant_soldier_rocket_shoot.wav" } //Flare Gun that shoots slower, gravityless swords. "Fire Sword" { OriginalItemName "The Flare Gun" "projectile gravity" -1 "projectile speed decreased" 0.6 "penetrate teammates" 1 "custom projectile model" "models/weapons/c_models/c_claymore/c_claymore.mdl" } //Grenades with almost no gravity, no speed, a larger blast radius, and some homing. "Grenade Generator" { OriginalItemName "The Iron Bomber" "mod projectile heat seek power" 60 "projectile gravity" 5 "projectile speed increased" 0.02 "blast radius increased" 1.2 //haha yes } //Rocket Launcher used as intro by final boss. Fires meteors (disguised rockets) "Meteor Shooter" { OriginalItemName "TF_WEAPON_ROCKETLAUNCHER" "custom projectile model" "models/props_moonbase/moon_rock_small001.mdl" "custom kill icon" "spellbook_meteor" "projectile trail particle" "peejar_trail_blu" "projectile spread angle penalty" 4 } "Microcosm Launcher" { OriginalItemName "The Cow Mangler 5000" "projectile no deflect" 1 //Mangler projectiles "projectile speed decreased" 0.6 "blast dmg to self increased" 0 "penetrate teammates" 1 } //W6 boss "Light of Miquella" { OriginalItemName "The Pomson 6000" "set item tint rgb" 15132390 "projectile trail particle" "rockettrail_airstrike_line" "projectile speed decreased" 0.6 "dmg penalty vs players" 3 } "Desperation of Miquella" { OriginalItemName "The Pomson 6000" "set item tint rgb" 15132390 "projectile trail particle" "rockettrail_airstrike_line" "projectile speed decreased" 0.6 "projectile spread angle penalty" 15 "penetrate teammates" 1 "dmg bonus vs buildings" 5 "dmg penalty vs players" 3 } "Miquella's Piercer" { OriginalItemName "The Righteous Bison" "set item tint rgb" 15132390 "projectile speed decreased" 0.5 "mod projectile heat seek power" 60 "mod projectile heat aim time" 3 "mod projectile heat aim error" 360 "mod projectile heat no predict target speed" 1 "dmg penalty vs players" 2 "dmg bonus vs buildings" 10 } "True Light of Miquella" { OriginalItemName "TF_WEAPON_ROCKETLAUNCHER" "mult projectile scale" 2 "projectile speed decreased" 0.3 "projectile no deflect" 1 "mod projectile heat seek power" 60 "mod projectile heat aim time" 10 "mod projectile heat aim error" 360 "mod projectile heat no predict target speed" 1 "damage bonus" 5 "explosion particle" "fireSmokeExplosion3" //big explosion "blast radius increased" 2 } } //W1: afterlife busters Mission { Objective DestroySentries Where spawnbot CooldownTime 45 InitialCooldown 6 DesiredCount 1 BeginAtWave 1 RunForThisManyWaves 1 TFBot { Template T_TFBot_SentryBuster Class Pyro Attributes IgnoreEnemies Attributes DisableDodge Name "Resurrected Buster" Item "The Coffin Kit" Item "The Ullapool Caber" ItemAttributes { ItemName "The Ullapool Caber" "use original class weapon animations" 1 } CharacterAttributes { "damage force reduction" 0 } } } //W2: cult busters Mission { Objective DestroySentries Where spawnbot_scattered CooldownTime 60 InitialCooldown 30 DesiredCount 1 BeginAtWave 2 RunForThisManyWaves 1 TFBot { Template T_TFBot_SentryBuster Attributes IgnoreEnemies Attributes DisableDodge Name "Monocultuster" CharacterAttributes { "damage force reduction" 0 "mod weapon blocks healing" 1 } } } //W3: tomb busters Mission { Objective DestroySentries Where spawnbot_scattered CooldownTime 60 InitialCooldown 30 DesiredCount 1 BeginAtWave 3 RunForThisManyWaves 1 TFBot { Template T_TFBot_SentryBuster Attributes IgnoreEnemies Attributes DisableDodge Name "Sentry-Swallowing Sand Burst" CharacterAttributes { "damage force reduction" 0 "mod weapon blocks healing" 1 } } } //W4: eldritch busters Mission { Objective DestroySentries Where spawnbot_tunnel Where spawnbot_invasion CooldownTime 50 InitialCooldown 20 DesiredCount 1 BeginAtWave 4 RunForThisManyWaves 1 TFBot { Template T_TFBot_SentryBuster Attributes IgnoreEnemies Attributes DisableDodge Name "Bomb of the Beyond" CharacterAttributes { "damage force reduction" 0 "mod weapon blocks healing" 1 } } } //W5: war busters Mission { Objective DestroySentries Where spawnbot_tunnel Where spawnbot_invasion CooldownTime 60 InitialCooldown 30 DesiredCount 1 BeginAtWave 5 RunForThisManyWaves 1 TFBot { Template T_TFBot_SentryBuster Attributes IgnoreEnemies Attributes DisableDodge Name "Trench Clearer" CharacterAttributes { "damage force reduction" 0 "mod weapon blocks healing" 1 } } } //W6+7: space busters Mission { Objective DestroySentries Where spawnbot_tunnel Where spawnbot_invasion CooldownTime 50 InitialCooldown 20 DesiredCount 1 BeginAtWave 6 RunForThisManyWaves 2 TFBot { Template T_TFBot_SentryBuster Attributes IgnoreEnemies Attributes DisableDodge Name "Inverted Black Hole Buster" CharacterAttributes { "damage force reduction" 0 "mod weapon blocks healing" 1 } } } //W3: spy Mission { Objective Spy Where spawnbot_mission_spy CooldownTime 60 InitialCooldown 35 DesiredCount 2 BeginAtWave 3 RunForThisManyWaves 1 TFBot { Template Tomb_Spy_Mummy } } //W4: spy Mission { Objective Spy Where spawnbot_mission_spy CooldownTime 55 InitialCooldown 15 DesiredCount 2 BeginAtWave 4 RunForThisManyWaves 1 TFBot { Template Flameborn_Spy_Kunai } } //W5: war sniper, spy Mission { Objective Sniper Where spawnbot_mission_sniper CooldownTime 50 InitialCooldown 15 DesiredCount 1 BeginAtWave 5 RunForThisManyWaves 1 TFBot { Template War_Sniper } } // Mission // { // Objective Spy // Where spawnbot_mission_spy // CooldownTime 50 // InitialCooldown 35 // DesiredCount 1 // BeginAtWave 5 // RunForThisManyWaves 1 // TFBot // { // Template War_Spy // } // } SpawnTemplate PT_PowerupLogic // SpawnTemplate PT_InfoBooth // SpawnTemplate PT_ColoredHolograms SpawnTemplate { Name "PT_SpawnPoint" "origin" "3650 430 -17" } // PROPOSED CHANGES: //- Remove Plague Medic entirely. Lovely as their concept is, they are just a tad too weird and clunky! //- SC Engies: Primary fire range already reduced, see if it feels fair as Pyro --Needs testing // Wave 1 - Intro to map - Afterlife Atrocities // Payout: $850 // Theme: zombieeees. brrr. shoot them. // How Red Will Win: slight crowds that greatly encourage spread damage. Some key targets to take down in first and last subwave. // Firepower is generally concentrated on single bots and not crowds, but can still threaten damage if not dealt with. // Middle subwave will have a slight DPS / bodyblock check with a faster, bulkier target, but less firepower. // Notable counters: sentries (!!!), AoE (!!), ranged in general (!!). // Fist Heavy (yay), Armed Scout (arm), Caber-Tossing Demo (shoottemplate with custom weapon; shorter-range grenade demo), // Stinger-Spewing Medic (crossbow) // Giant Backup Soldier (weaker ver.) // Giant Short Circuits? --> Doesn't work as well due to low range and slow speed; kb is slightly annoying... // ...but what if we make it akin to a Giant Scout that can deal knockback at melee range? // Using unique SC func of orb is tempting, but nerfs projectile classes unnecessarily --> primary fire only // Final subwave: showoff for custom FireWeapon functionality? // Subwave 1 - Crowds and key targets // - Backup Bazooka Soldier (minigiant) // - Armed Scout (fast support, good health-bags) // Subwave 2 - Bulk and speed (but not much damage) // - Giant Undead Android Engineer (faster Short Circuit engie, akin to gscout; deals light knockback on hit) // - Stinger-Spewing Medic (good ranged attackers) // - Caber-Tossing Demo (low range but higher damage attackers) //Bleeds over into sub 3 // Subwave 3 - Hardest part! Bulk, damage, and key target. // High spam and bulk but slow speed! // - Giant Bazooka Soldier + Death-Defying Medic (infpop qfix) // Support: Fist Heavy (after subwave 1 dies, then after subwave 2, intensify), Armed Scout (when subwave 3's giant spawns) // Wave // { // InitWaveOutput // { // Target bignet // Action RunScriptCode // Param "EntFire(`hologram_color_purple_relay`,`Trigger`) // IncludeScript(`seel_terror.nut`,getroottable())" // } // StartWaveOutput // { // Target wave_start_relay // Action Trigger // } // DoneOutput // { // Target wave_finished_relay // Action trigger // } // WaveSpawn // { // Name "TEST" // Where spawnbot // TotalCount 5 // MaxActive 1 // SpawnCount 1 // TFBot // { // Template Flameborn_Giant_Pyro_Combo_HealSpell // } // } // } Wave { InitWaveOutput { Target "hologram_color_purple_relay" Action Trigger } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name "wave1a1" WaitBeforeStarting 20 Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 30 TFBot { Template After_Giant_Engineer_ShortCircuit_Fast } } WaveSpawn { Name "wave1a" Where spawnbot Where spawnbot_invasion Where spawnbot_tunnel RandomSpawn 1 WaitBetweenSpawns 5 TotalCount 40 MaxActive 15 SpawnCount 5 TotalCurrency 100 Squad { NoFormation 1 TFBot { Template After_Soldier_Bazooka_Backup } NextSpawnerClone 4 TFBot { Template After_Scout_Melee } } } WaveSpawn { Name "wave1a2" Where spawnbot WaitBeforeStarting 7.5 WaitBetweenSpawns 3 //10 spawns, 30 sec TotalCount 30 MaxActive 6 SpawnCount 3 TotalCurrency 60 RandomChoice { TFBot { Template After_Scout_Melee } TFBot { Template After_Scout_Melee } TFBot { Template After_Scout_Melee } TFBot { Template After_Scout_Melee Name "Unarmed Scout" Item "TF_WEAPON_FISTS" ItemAttributes { ItemName "TF_WEAPON_FISTS" "melee attack rate bonus" 0.625 //5/8th, 0.5s "damage penalty" 0.54 //7/13th, 35 dmg } } } } WaveSpawn { Name "wave1b" WaitForAllSpawned "wave1a2" Where spawnbot_tunnel WaitBetweenSpawnsAfterDeath 20 TotalCount 2 MaxActive 1 SpawnCount 1 TotalCurrency 60 TFBot { Template After_Giant_Engineer_ShortCircuit_Fast } } WaveSpawn { Name "wave1b3" WaitForAllDead "wave1a1" WaitForAllSpawned "wave1a" TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 140 FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 13000 Speed 75 Name "tankboss" StartingPathTrackNode "tank_path_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "wave1b2" WaitForAllDead "wave1a" WaitBetweenSpawns 3 Where spawnbot_tunnel Where spawnbot_invasion TotalCount 30 MaxActive 10 SpawnCount 3 TotalCurrency 210 Squad { NoFormation 1 //Unfortunately squadding them does not work out. TFBot { Template After_Demoman_CaberToss } TFBot { Template After_Medic_Xbow } TFBot { Template After_Medic_Xbow } } } WaveSpawn { Name "wave1c" WaitForAllSpawned "wave1b2" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 30 TFBot { Template After_Giant_Engineer_ShortCircuit_Fast } } WaveSpawn { Name "wave1c" WaitForAllSpawned "wave1b2" WaitForAllDead "wave1b" Where spawnbot WaitBetweenSpawns 18 TotalCount 4 MaxActive 4 SpawnCount 2 TotalCurrency 200 Squad { TFBot { Template After_Giant_Soldier_Bazooka } TFBot { Template After_Medic_Infpop } } } WaveSpawn { Name "Support" WaitBeforeStarting 20 Where spawnbot_tunnel Where spawnbot_invasion WaitBetweenSpawns 15 TotalCount 20 MaxActive 2 SpawnCount 1 Support Limited TotalCurrency 20 RandomChoice { TFBot { Template After_Heavy_Fist } TFBot { Template After_Heavy_Fist } TFBot { Template After_Heavy_Fist } TFBot { Template After_Heavy_Fist ItemAttributes { ItemName "Ghastly Gibus 2010" "item style override" 0 } } } } WaveSpawn { Name "Support" WaitForAllDead "wave1b2" Where spawnbot_scattered WaitBetweenSpawns 8 TotalCount 30 MaxActive 3 SpawnCount 2 Support Limited RandomChoice { TFBot { Template After_Heavy_Fist } TFBot { Template After_Heavy_Fist } TFBot { Template After_Heavy_Fist } TFBot { Template After_Heavy_Fist ItemAttributes { ItemName "Ghastly Gibus 2010" "item style override" 0 } } } } WaveSpawn { Name "Support" WaitForAllDead "wave1b" Where spawnbot_scattered WaitBetweenSpawns 8 TotalCount 30 MaxActive 3 SpawnCount 2 Support Limited RandomChoice { TFBot { Template After_Heavy_Fist } TFBot { Template After_Heavy_Fist } TFBot { Template After_Heavy_Fist } TFBot { Template After_Heavy_Fist ItemAttributes { ItemName "Ghastly Gibus 2010" "item style override" 2 } } } } } // Wave 2 - More advanced bots - Cultist Calamity: fevered followers of the Monocultus // Payout: $900 // Still basic bots but with a cultish theme, for MONOCULUS! Use humans! // Flesh Gauntlet (zombie), Necrotic Summoner Medic (qfix), // Spell-casting Medic (heal spell), // Monocultus Soldier (burst fire? slower burst fire? charged?) // Giant Summonoculus Demoman (uses Monoculus spell), Giant Monocultus Soldier // Throughout, per subwave: 1-2 high-priority targets with slight bomb pressure. // - Flesh Gauntlet + Necromancer Medic (superheal) // Subwave 1: mid-range effectiveness, and immediately set the tone. // - Giant Monocultus Demo (loch, 0.5x fire and reload rate) // - Monocultus Bowman (1/4 jarate huntsman, slower projspeed, attach Jarate prop to arrow!) // Subwave 2: longer range; time to strafe nicely! // - Giant Tri-Burst Soldier // - Giant Direct Tri-Burst Soldier + Kritz Medic // - Monocultus Pyro (attempts to flank) // Subwave 3: single target with healers; a trickier giant heavy! //- Monocultus Leader (gheavy with "permanent" Monoculus spell up) // Monocultus Medic (regular ol' qfix medics. no weirdness, keep it snappy.) // - Support: Monocultus Follower (soldier) Wave { InitWaveOutput { Target bignet Action RunScriptCode Param " EntFire(`bombpath_centerleft_relay`,`Trigger`) EntFire(`hologram_color_purple_relay`,`Trigger`) IncludeScript(`seel_terror.nut`,getroottable())" } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name "wave2a1" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 50 TFBot { Template Cult_Giant_Demoman_Loch } } WaveSpawn { Name "wave2a" WaitBeforeStarting 12 Where spawnbot_invasion TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 50 TFBot { Template Cult_Giant_Demoman_Loch } } WaveSpawn { Name "wave2a3" WaitBeforeStarting 24 Where spawnbot_tunnel TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 50 TFBot { Template Cult_Giant_Demoman_Loch } } WaveSpawn { Name "wave2a2" Where spawnbot Where spawnbot_invasion RandomSpawn 1 //Evenly spread WaitBeforeStarting 2 WaitBetweenSpawns 5 TotalCount 30 MaxActive 12 SpawnCount 5 TotalCurrency 120 Squad { NoFormation 1 //easier than LeaveSquad'ing them tbh NextSpawnerClone 4 //instead of ctrl+D'ing! TFBot { Template Cult_Sniper_Bow } TFBot { Template Cult_Sniper_Bow_Jarate Tag flank_frontleft } } } WaveSpawn { Name "Support_a" Where spawnbot_tunnel WaitBeforeStarting 3 WaitBetweenSpawns 8 TotalCount 4 MaxActive 3 SpawnCount 2 TotalCurrency 60 Support Limited Squad { TFBot { Template Cult_Heavy_Fist } TFBot { Template Cult_Medic_Superheal } } } WaveSpawn { Name "wave2a_giants" WaitForAllDead "wave2a1" } WaveSpawn { Name "wave2a_giants" WaitForAllDead "wave2a" } WaveSpawn { Name "wave2a_giants" WaitForAllDead "wave2a3" } WaveSpawn { Name "wave2a_giants_and_support" WaitForAllDead "Support_a" } WaveSpawn { Name "wave2a_giants_and_support" WaitForAllDead "wave2a_giants" } WaveSpawn { Name "wave2b1" WaitForAllDead "wave2a" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 50 TFBot { Template Cult_Giant_Soldier_Trirocket_Direct } } WaveSpawn { Name "wave2b" WaitForAllDead "wave2a3" Where spawnbot_invasion TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 50 TFBot { Template Cult_Giant_Soldier_Trirocket_Direct } } WaveSpawn { Name "wave2b3" WaitForAllDead "wave2b1" Where spawnbot_invasion TotalCount 3 MaxActive 3 SpawnCount 3 TotalCurrency 150 Squad { TFBot { Template Cult_Giant_Soldier_Trirocket_Direct } TFBot { Template Cult_Medic_Kritz } TFBot { Template Cult_Medic_Kritz } } } WaveSpawn { Name "wave2b3" WaitForAllDead "wave2b" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 TotalCurrency 150 Squad { TFBot { Template Cult_Giant_Soldier_Trirocket_Direct } TFBot { Template Cult_Medic_Kritz } TFBot { Template Cult_Medic_Kritz } } } WaveSpawn { Name "wave2b2" WaitForAllDead "wave2a2" Where spawnbot_tunnel TotalCount 24 MaxActive 9 SpawnCount 3 TotalCurrency 120 Squad { NoFormation 1 TFBot { Template Cult_Pyro } TFBot { Template Cult_Pyro Tag flank_frontleft } TFBot { Template Cult_Pyro Tag flank_frontleft } } } WaveSpawn { Name "Support_b" WaitForAllDead "wave2a_giants_and_support" Where spawnbot_tunnel WaitBetweenSpawns 8 TotalCount 4 MaxActive 3 SpawnCount 2 TotalCurrency 50 Support Limited Squad { TFBot { Template Cult_Heavy_Fist } TFBot { Template Cult_Medic_Superheal } } } WaveSpawn { Name "wave2c" WaitForAllDead "wave2b3" FirstSpawnWarningSound "vo/mvm_another_bomb04.mp3" Where spawnbot_limited_a TotalCount 1 MaxActive 1 TotalCount 1 FirstSpawnOutput { Target "bomb_2" Action Enable } TFBot { Template Cult_Chief_Heavy_Spell EventChangeAttributes { Default { VoiceCommand //Periodacally uses voice commands { Delay 3 Cooldown 8 Repeats 2 Type "Battle cry" } InterruptAction { Target "-2120 -100 -180" Delay 1 Repeats 1 Duration 0.1 WaitUntilDone 1 OnDoneChangeAttributes "Taunting" } } Taunting { Taunt { Name "Taunt: Second Rate Sorcery" Delay 0 Repeats 1 } } } } } WaveSpawn { Name "wave2b_giants_and_support" WaitForAllDead "wave2b" } WaveSpawn { Name "Support_c" WaitForAllDead "wave2b_giants_and_support" Where spawnbot_tunnel WaitBetweenSpawns 8 TotalCount 4 MaxActive 3 SpawnCount 2 TotalCurrency 50 Support Limited Squad { TFBot { Template Cult_Heavy_Fist } TFBot { Template Cult_Medic_Superheal } } } WaveSpawn { Name "Support" Where spawnbot_invasion WaitForAllDead "wave2b2" WaitBetweenSpawns 12 TotalCount 10 MaxActive 6 SpawnCount 2 Support 1 RandomChoice { TFBot { Template Cult_Soldier } TFBot { Template Cult_Soldier } TFBot { Template Cult_Soldier } TFBot { Template Cult_Soldier Item "Zombie Soldier" } } } } // Wave 3 - Pumpkinton Patricide - a boss rush where we kill the Pumpkinton family line // Payout: $800 // Subwave 1: Sir Pumpkinton I // - Chief Demo: Uses stickybomb launcher + pumpkin bomb spell. // Subwave 2: Sir Pumpkinton II // - Chief Demo: Rapid Fire Demo, shoots out larger pumpkin bombs alongside pipes. (Use tf_generic_bomb?) // + Pumpkinton's Patch-Up Medic // Subwave 3: Sir Pumpkinton III (& his forefathers) // - Chief Demo: Sometimes tosses axe. Very brutish. // + Support: // - Supporting bots, mainwave: Pumpkinton Widow Engie, Pumpkinton Py (Spy) // Wave 4 - Fancy fiery bots - Terrorized Tomb // Payout: $900 // Based on Egypt's hieroglyphs, because we love obscure references! // Heavy with his Minigun, a Sapper, two small Sticky Bombs, a large Sticky Bomb, a level one Sentry Gun, // the Backstab symbol, a simplified Demoman face, a crocodile, an Ubersaw, a Soldier (sitting down), // the Team Fortress logo, a hamburger and what could be construed as a Pyro // Heavy, Spy, Sticky Demo, Engineer, Ubersaw Medic, Soldier, Pyro // Giant Pharaoh Heavy (FamBus), Tomb Torcher Pyro (flare with torch projectiles), // Tomb Trasher Demo (sticky), Tomb Terror Scout (sun on a stick!), // Giant Solar Scholar Medic (syringe), (Sandstorm Tank (lingering damage)?) // Ferocious Nile Crocodile (sniper w/ bleed?), Mummy Masquerade Spy (YER) // Subwave 1: combo of syringe + shotgun, with spamminess as support // - Giant Solar Scholar Medic (Blutsauger) // - Giant Pharaoh Heavy (Family Business / Fists of Steel) // - Tomb Trasher Demo // - Tomb Torturer Demo (minigiant quickiebomb?) // Subwave 2: weaker version of Lord of Cinder // Commons act as duo together, giant functions as long-range support // - Giant Daylight Douser Pyro -- axtinguisher tosser! minicrits vs burning, and removes flaming effect // - Tomb Torcher Pyro -- spammer Manmelter // - Tomb Terror Scout // Subwave 3 // - Deity of Dawn - Scout: functions as initial push in two steps, letting heavy cover more ground // - Deity of Dusk - Heavy: spawns at the same time, can be chipped away at while scout rushes // Support is not too intense to allow more focus on the bosses themselves // Support: Ferocious Nile Crocodile, Mummy Masquerade Spy Wave { SpawnTemplate PT_Deity_Titles InitWaveOutput { Target "hologram_color_purple_relay" Action Trigger } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name "wave3a" Where spawnbot WaitBetweenSpawns 25 //only spawn next pair if one dies AFTER this time TotalCount 4 MaxActive 3 SpawnCount 2 TotalCurrency 200 FirstSpawnOutput { Target limited_spawns_disable_a_relay Action Trigger } LastSpawnOutput { Target limited_spawns_enable_a_relay Action Trigger Delay 40 } DoneOutput { Target limited_spawns_enable_a_relay Action Trigger } Squad { NoFormation 1 TFBot { Template Tomb_Giant_Medic_Sun } TFBot { Template Tomb_Giant_Heavy_Business } } } WaveSpawn { Name "wave3a2" Where spawnbot_invasion WaitBeforeStarting 5 WaitBetweenSpawns 5 TotalCount 15 //5 pairs MaxActive 6 SpawnCount 3 TotalCurrency 90 Squad { TFBot { Template Tomb_Demo_Quickie } TFBot { Template Tomb_Demo_Sticky } TFBot { Template Tomb_Demo_Sticky } } } WaveSpawn { Name "wave3a3" Where spawnbot WaitBeforeStarting 5 WaitBetweenSpawns 4 TotalCount 20 //5 spawns MaxActive 8 SpawnCount 4 TotalCurrency 80 TFBot { Template Tomb_Demo_Sticky } } WaveSpawn { Name "wave3b" WaitForAllSpawned "wave3a" Where spawnbot_limited_a WaitBetweenSpawns 10 TotalCount 4 MaxActive 2 SpawnCount 1 TotalCurrency 120 TFBot { Template Tomb_Giant_Pyro_Douse } } WaveSpawn { Name "wave3b2" WaitForAllDead "wave3a2" Where spawnbot Where spawnbot_tunnel WaitBetweenSpawns 2.5 TotalCount 20 //15:5 MaxActive 6 SpawnCount 4 //3:1 pyro:scout TotalCurrency 80 Squad { NoFormation 1 TFBot { Template Tomb_Scout_Sun } TFBot { Template Tomb_Pyro_Torch } TFBot { Template Tomb_Pyro_Torch } TFBot { Template Tomb_Pyro_Torch } } } WaveSpawn { Name "wave3b2" WaitForAllDead "wave3a3" Where spawnbot Where spawnbot_tunnel WaitBetweenSpawns 2.5 TotalCount 20 //15:5 MaxActive 6 SpawnCount 4 //3:1 pyro:scout TotalCurrency 80 Squad { NoFormation 1 TFBot { Template Tomb_Scout_Sun } TFBot { Template Tomb_Pyro_Torch } TFBot { Template Tomb_Pyro_Torch } TFBot { Template Tomb_Pyro_Torch } } } WaveSpawn { Name "wave3c1" WaitForAllDead "wave3b" Where spawnbot_invasion TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 0 FirstSpawnOutput { Target deity_text_relay Action Trigger } TFBot { Template Tomb_Chief_Scout SpawnTemplate PT_Deity_Dawn_dest } } WaveSpawn { Name "wave3c" WaitForAllDead "wave3c1" Where spawnbot_invasion WaitBeforeStarting 2 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 100 TFBot { Template Tomb_Chief_Scout Health 1600 Scale 1.6 FireInput { Target !activator Action $TeleportToEntity Param "destination_dawn" Delay 0 Repeats 1 } ItemAttributes { ItemName "Jungle Wreath" "attach particle effect" 89 //morning glory } CharacterAttributes { "move speed penalty" 0.75 //300 HU/s } AddAttribute { Item "Player" Name "move speed penalty" Value 0.2 //60 HU/s Repeats 1 Cooldown 1 Delay 0.05 } AddAttribute { Item "Player" Name "move speed penalty" Value 0.75 //300 HU/s Repeats 1 Cooldown 1 Delay 2 } AddCond { Delay 0 Index 52 Duration 2 } FireInput { Target player Action $PlaySoundToSelf Param "=35|mvm/mvm_revive.wav" Delay 0 Repeats 1 } FireInput { Target player Action $PlaySoundToSelf Param "=35|mvm/mvm_used_powerup.wav" Delay 2 Repeats 1 } Message { Name "{blue}Deity of Dawn {FBECCB}has been {FFE182}REVIVED{FBECCB}, using their {FFE182}NEW DAWN {FBECCB}Power Up Canteen!" Delay 2 Repeats 1 } } } WaveSpawn { Name "wave3c" WaitForAllDead "wave3b" Where spawnbot_tunnel WaitBeforeStarting 0.2 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 100 TFBot { Template Tomb_Chief_Heavy } } WaveSpawn { Name "Support" WaitForAllDead "wave3b2" Where spawnbot_scattered WaitBeforeStarting 5 WaitBetweenSpawns 10 TotalCount 10 MaxActive 4 SpawnCount 1 Support 1 TFBot { Template Tomb_Sniper_Croc } } WaveSpawn { Name "Support" WaitForAllSpawned "wave3c1" Where spawnbot_scattered WaitBeforeStarting 5 WaitBetweenSpawns 7 TotalCount 10 MaxActive 3 SpawnCount 1 Support 1 TFBot { Template Tomb_Sniper_Croc } } } // Wave 5 - Forlorn Flameborn - A massive Dark Souls 3 (and Elden Ring (and DS2)) reference! // Payout: $900 // Bot ideas: greater focus on giants / commons, moreso swarms and groups for a bit. //Giants: mild threats, but primarily bulky. // "Magus & Congregation": //Giant Dark Hail Engie Rescue Ranger with mult proj count and spread. //Cleric Minigiant DH Soldier with Healing Spell, for blast damage //Congregation Melee Pyros (crits), bulkier than Crocodile Snipers! // Giant Flaming Demoknight: can fire flares. (duh! mix of close-range and longer-range effectiveness) // Giant Repeating Crossbow Medic: decent threat, repeats a bit from wave 1, too! //Commons: higher threat, but not as bulky! // Hollow Knight (rocket launcher/shotgun: good vs sentries, won't blow self up) // Defensive Deacon (uber medic or shield medic! both can work) //Support: // Kindling Hollow - Pyros, for a bit of bonus pressure and general compatability. // Black Knife Assassin (Kunai Spy :3 : disruptive, good to keep players on toes against easier giants) // Subwave 1a: Dark Souls 2 reference! A decent squad, can be kinda scary. Sub1b spawns in some time after the full squad spawns. // Heal spell use: buff up commons. // "Magus & Congregation": //Giant Dark Hail Engie Rescue Ranger with mult proj count and spread. //Cleric Minigiant DH Soldier with Healing Spell, for blast damage //Congregation TDegree Pyros (crits) & Pyros, bulkier than Crocodile Snipers! //Cleric + Congregation (Pyros) // Subwave 2: Mixed-range Giants with medic support; giants are low threat but medics help push! // Giants don't fire too much, constant threat could be good. // - Lord of Cinder (hybrid flame grenade/Axtinguisher) // - Giant Repeating Crossbow Medic // - Executioner of Embers (axeknight? with fireball) // Subwave 3: Spammier giants for long range, close-range support! // Heal spell use: self-heal. // - // - Hollow Knight (DH soldier) // - Black Knight (minigiant swapping soldier, no spell) + Defensive Deacon (shield medic) // Support: Rekindled Knight (flaming eyelander, no projectile), Kindling Hollow, Black Knife Assassin Wave { InitWaveOutput { Target bignet Action RunScriptCode Param "EntFire(`hologram_color_purple_relay`,`Trigger`) IncludeScript(`seel_terror.nut`,getroottable())" } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name "wave4a" Where spawnbot TotalCount 10 MaxActive 10 SpawnCount 10 TotalCurrency 150 FirstSpawnOutput { Target limited_spawns_disable_a_relay Action Trigger } LastSpawnOutput { Target limited_spawns_enable_a_relay Action Trigger Delay 20 } DoneOutput { Target limited_spawns_enable_a_relay Action Trigger } Squad { NoWaitForFormation 1 FormationSize 175 TFBot { Template Flameborn_Giant_Engineer_Ranger_Burst CharacterAttributes { "max health additive bonus" 3000 "health from healers increased" 10 } } TFBot { Template Flameborn_Soldier_DH_HealSpell } TFBot { Template Flameborn_Soldier_DH_HealSpell } NextSpawnerClone 7 TFBot { Template Flameborn_Pyro_TDegree Tag leave_squad_delay } } } WaveSpawn { Name "wave4a1" Where spawnbot_invasion TotalCount 4 MaxActive 4 SpawnCount 4 TotalCurrency 60 Squad { NoWaitForFormation 1 FormationSize 175 TFBot { Template Flameborn_Soldier_DH_HealSpell } NextSpawnerClone 3 TFBot { Template Flameborn_Pyro Tag leave_squad_delay } } } WaveSpawn { Name "wave4a2" Where spawnbot_tunnel TotalCount 4 MaxActive 4 SpawnCount 4 TotalCurrency 60 FirstSpawnOutput { Target limited_spawns_disable_c_relay Action Trigger } Squad { NoWaitForFormation 1 FormationSize 175 TFBot { Template Flameborn_Soldier_DH_HealSpell } NextSpawnerClone 3 TFBot { Template Flameborn_Pyro Tag leave_squad_delay } } } WaveSpawn { Name "wave4b1" WaitBeforeStarting 10 Where spawnbot_limited_a TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 50 TFBot { Template Flameborn_Giant_Demoman_Cinder } } WaveSpawn { Name "wave4b" WaitForAllSpawned "wave4b1" WaitBeforeStarting 5 WaitBetweenSpawns 10 Where spawnbot TotalCount 4 MaxActive 3 SpawnCount 2 TotalCurrency 200 FirstSpawnOutput { Target limited_spawns_disable_b_relay Action Trigger } LastSpawnOutput { Target limited_spawns_enable_b_relay Action Trigger Delay 30 } DoneOutput { Target limited_spawns_enable_b_relay Action Trigger } Squad { NoFormation 1 TFBot { Template Flameborn_Giant_Medic_Crossbow_Burst } TFBot { Template Flameborn_Giant_Demoman_Cinder } } } WaveSpawn { Name "wave4b2" Where spawnbot_limited_a Where spawnbot_tunnel_limited_a WaitBeforeStarting 10 WaitBetweenSpawns 1 TotalCount 24 MaxActive 8 SpawnCount 1 TotalCurrency 120 LastSpawnOutput { Target limited_spawns_enable_c_relay Action Trigger Delay 30 } DoneOutput { Target limited_spawns_enable_c_relay Action Trigger } TFBot { Template Flameborn_Scout } } WaveSpawn { Name "wave4c1" WaitForAllDead "wave4a" Where spawnbot_tunnel_limited_b WaitBetweenSpawns 15 TotalCount 3 MaxActive 3 SpawnCount 3 TotalCurrency 60 Squad { TFBot { Template Flameborn_Giant_Pyro_Combo_HealSpell } TFBot { Template Flameborn_Soldier_Swapper CharacterAttributes { "max health additive bonus" 650 "health from healers increased" 4 } } TFBot { Template Flameborn_Soldier_Swapper CharacterAttributes { "max health additive bonus" 650 "health from healers increased" 4 } } } } WaveSpawn { Name "wave4c" WaitForAllSpawned "wave4c1" Where spawnbot_invasion_limited_b WaitBeforeStarting 15 TotalCount 3 MaxActive 3 SpawnCount 3 TotalCurrency 90 Squad { TFBot { Template Flameborn_Giant_Pyro_Combo_HealSpell } TFBot { Template Flameborn_Giant_Engineer_Ranger_Burst CharacterAttributes { "max health additive bonus" 3000 "health from healers increased" 10 } } TFBot { Template Flameborn_Giant_Engineer_Ranger_Burst CharacterAttributes { "max health additive bonus" 3000 "health from healers increased" 10 } } } } WaveSpawn { Name "wave4b2" WaitForAllSpawned "wave4a2" Where spawnbot_invasion_limited_c WaitBetweenSpawns 6 TotalCount 16 MaxActive 9 SpawnCount 4 TotalCurrency 64 TFBot { Template Flameborn_Soldier_DH } } WaveSpawn { Name "wave4b2" WaitForAllSpawned "wave4a2" Where spawnbot_tunnel_limited_c WaitBetweenSpawns 6 TotalCount 8 MaxActive 4 SpawnCount 2 TotalCurrency 96 TFBot { Template Flameborn_Soldier_Swapper } } WaveSpawn { Name "Support" WaitForAllDead "wave4a1" Where spawnbot WaitBetweenSpawnsAfterDeath 10 TotalCount 10 MaxActive 1 SpawnCount 1 Support 1 TFBot { Template Flameborn_Pyro } } } // Wave 5 - RED bots comin' in hot - Warzone Wreaking - Payout: $1400 //REWORK definitively included bots: //- Marshal Misha (heavy with homing rockets) //- Blimp(s) with RED Buff Banner DH Soldiers //- Canteen bots? // - Uber Canteen BBox Soldier? :3c //- Uber BigHeal Medics //REWORK layout: // Subwave 1 // - 2x Blimp // - On Death: spawns Super Infantry Scout // - Giant Uber Box Soldier | Colonel Desperation // - Infiltrator Spy //RED Support: Buff Banner DH Soldiers // Subwave 2 // - Giant Infinite Barrage Soldier | Colonel Cataclysm + Armored Uber Medic // - Combo Pyro (degreaser/panic attack) // - Kritz Banner Soldier (lim support) // Subwave 3 // - Marshal Misha, w/o support // - Marshal Misha, w/ giant kritz medic // SUPPORT: // - Infantry Scout // - Backline Engineer (tele-in) // - Frontline Engineer (Fast Short Circuit mini-giant | Widowmaker/Gunslinger, builds Mini-Sentries) Wave { InitWaveOutput { Target bignet Action RunScriptCode Param "EntFire(`hologram_color_purple_relay`,`Trigger`) EntFire(`spawnpoint_relay_r`,`Trigger`) IncludeScript(`seel_ins.nut`,getroottable())" } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name "wave5a" Where spawnbot WaitBetweenSpawns 15 TotalCount 3 MaxActive 3 SpawnCount 1 TotalCurrency 150 FirstSpawnOutput { Target limited_spawns_disable_a_relay Action Trigger } LastSpawnOutput { Target limited_spawns_enable_a_relay Action Trigger Delay 35 } DoneOutput { Target limited_spawns_enable_a_relay Action Trigger } TFBot { Template War_Giant_Soldier_BBox_Ubercan } } WaveSpawn { Name "wave5a1a" WaitBeforeStarting 2 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 120 Tank { SpawnTemplate "PT_BlimpBotTeleDest_A" //destination_air Health 10000 Speed 65 DisableSmokestack 1 ClassIcon blimp2_lite Skin 2 //grey aka colorable MaxTurnRate 50 Model "models/bots/boss_bot/boss_blimp.mdl" Gravity 0 //prevents it from yeeting itself down RotatePitch 0 //prevents it from turning upwards DisableTracks 1 //prevents its ghooooost tracks from making noise DisableChildModels 1 //HOPEFULLY prevents the bomb from sticking out EngineLoopSound "npc\combine_gunship\dropship_engine_distant_loop1.wav" PingSound "npc\combine_gunship\ping_search.wav" Name "tank" StartingPathTrackNode "tank_path_blimp_a_1" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "wave5a1b" WaitBeforeStarting 10 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 120 Tank { SpawnTemplate "PT_BlimpBotTeleDest_B" //destination_strike Health 10000 Speed 65 DisableSmokestack 1 ClassIcon blimp2_lite Skin 2 //grey aka colorable MaxTurnRate 50 Model "models/bots/boss_bot/boss_blimp.mdl" Gravity 0 //prevents it from yeeting itself down RotatePitch 0 //prevents it from turning upwards DisableTracks 1 //prevents its ghooooost tracks from making noise DisableChildModels 1 //HOPEFULLY prevents the bomb from sticking out EngineLoopSound "npc\combine_gunship\dropship_engine_distant_loop1.wav" PingSound "npc\combine_gunship\ping_search.wav" Name "tank" StartingPathTrackNode "tank_path_blimp_b_1" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "wave5a_blimps" WaitForAllDead "wave5a1a" } WaveSpawn { Name "wave5a_blimps" WaitForAllDead "wave5a1b" } WaveSpawn { Name "wave5a3" WaitForAllDead "wave5a1a" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 50 TFBot { Template War_Giant_Scout FireInput { Target !activator Action $TeleportToEntity Param "destination_air" Delay 0.1 Repeats 1 } } } WaveSpawn { Name "wave5a3" WaitForAllDead "wave5a1b" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 50 TFBot { Template War_Giant_Scout FireInput { Target !activator Action $TeleportToEntity Param "destination_strike" Delay 0.1 Repeats 1 } } } WaveSpawn { Name "wave5b1" WaitForAllSpawned "wave5a" Where spawnbot_limited_a TotalCount 3 MaxActive 3 SpawnCount 3 TotalCurrency 150 Squad { TFBot { Template War_Giant_Soldier_Barrage } TFBot { Template War_Medic_UberBigHeal } TFBot { Template War_Medic_UberBigHeal } } } WaveSpawn { Name "wave5b" WaitForAllSpawned "wave5b1" WaitBeforeStarting 20 Where spawnbot_invasion TotalCount 3 MaxActive 3 SpawnCount 3 TotalCurrency 150 Squad { TFBot { Template War_Giant_Soldier_Barrage } TFBot { Template War_Medic_UberBigHeal } TFBot { Template War_Medic_UberBigHeal } } } WaveSpawn { Name "wave5b3" WaitForAllDead "wave5a" Where spawnbot_tunnel TotalCount 3 MaxActive 3 SpawnCount 3 TotalCurrency 150 Squad { TFBot { Template War_Giant_Soldier_Barrage } TFBot { Template War_Medic_UberBigHeal } TFBot { Template War_Medic_UberBigHeal } } } WaveSpawn { Name "wave5b2" WaitForAllSpawned "wave5a" Where spawnbot_invasion_limited_a Where spawnbot_tunnel_limited_a WaitBetweenSpawns 3 TotalCount 32 MaxActive 8 SpawnCount 3 TotalCurrency 128 TFBot { Template War_Pyro_Combo Attributes AlwaysCrit } } WaveSpawn { Name "wave5c" WaitForAllDead "wave5b" Where spawnbot_invasion TotalCount 2 MaxActive 2 SpawnCount 2 TotalCurrency 102 Squad { TFBot { Template War_Giant_Heavy_Rocket } TFBot { Template War_Medic_UberBigHeal } } } WaveSpawn { Name "wave5c" WaitForAllDead "wave5b3" WaitBeforeStarting 15 Where spawnbot_tunnel TotalCount 4 MaxActive 4 SpawnCount 4 TotalCurrency 200 Squad { TFBot { Template War_Giant_Heavy_Rocket } TFBot { Template War_Medic_UberBigHeal } TFBot { Template War_Medic_UberBigHeal } TFBot { Template War_Medic_UberBigHeal } } } WaveSpawn { Name "RED Support" Support 1 TFBot { Class Pyro ClassIcon red2_lite } } WaveSpawn { Name "RED Support" WaitBeforeStarting 4 Where spawnbot_reprogrammed WaitBetweenSpawnsAfterDeath 30 TotalCount 5 MaxActive 1 SpawnCount 1 TotalCurrency 0 Support Limited TFBot { Template Red_Soldier_Buff InterruptAction { Target "destination_air" Duration 0.1 WaitWhenDone 1 } AddCond { Delay 0 Index 52 Duration 2.5 } } } WaveSpawn { Name "RED Support" WaitBeforeStarting 4 Where spawnbot_reprogrammed WaitBetweenSpawnsAfterDeath 30 TotalCount 5 MaxActive 1 SpawnCount 1 TotalCurrency 0 Support Limited TFBot { Template Red_Soldier_Buff InterruptAction { Target "destination_strike" Duration 0.1 WaitWhenDone 1 } AddCond { Delay 0 Index 52 Duration 2.5 } } } // WaveSpawn // { // Name "RED Support" // WaitBeforeStarting 4 // Where spawnbot_reprogrammed // WaitBetweenSpawns 15 // TotalCount 3 // MaxActive 3 // SpawnCount 1 // TotalCurrency 0 // Support 1 // TFBot // { // Template Red_Pyro_Flaregun // } // } WaveSpawn { Name "Support" Support 1 TFBot { Class Pyro ClassIcon blu2_lite } } WaveSpawn { Name "wave5a2" Where spawnbot_invasion WaitBeforeStarting 10 WaitBetweenSpawns 3.5 TotalCount 15 MaxActive 5 SpawnCount 2 TotalCurrency 30 Support Limited FirstSpawnOutput { Target gamerules Action RunScriptCode Param "SINS.ChangeIconFlags(`spy`,4)" } DoneOutput { Target gamerules Action RunScriptCode Param "SINS.ChangeIconFlags(`spy`,0)" } TFBot { Template War_Spy } } WaveSpawn { Name "Support" Where spawnbot_invasion WaitBeforeStarting 25 WaitBetweenSpawnsAfterDeath 45 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 0 Support 1 TFBot { Template War_Engineer } } WaveSpawn { Name "Support" WaitForAllDead "wave5b2" Where spawnbot_scattered WaitBetweenSpawns 10 TotalCount 10 MaxActive 4 SpawnCount 2 TotalCurrency 0 Support 1 TFBot { Template War_Scout } } } // Wave 7 - Universal Uncertainty: Entropy // An epic boss fight with multiple phases! // Path is forced on cent-left // Boss functions as "secondary" bomb carrier - might be too tricky on map as short as terrorlict? // Gains a little more max health if team has heavy because minigun go vrrrrr ratatatata // Subwave 1: pre-boss // - Lightspeed Scout (super scout) // - Beyond Gravity (gravityless pill demos) // Subwave 2: boss and onward // Phase 1: boss alone, high threat. // - Opening: Meteorite Rain ~ Starfall: rockets from weapon mimic @ spawn, indicated with particles. spams front as boss walks in. // - Afterwards: Meteor Shower + Fireball spells. // Phase 2: Jumpable laser + rapid fire rockets. // - Cosmic Constant ~ Gravity // Phase 3: Spawn bots (giant axtinguisher tossers, burning SoaS scouts ala Dawn Deity) + self-heal, // - New Life ~ Nebula: slow grenade-shooting grenades; + impact rockets that cause harm zone on hit // - Limitless Creation ~ Infinity: slow rocket-shooting rockets; + impact rockets that cause harm zone on hit // Phase 4: Slow down, start tossing everything at once just one time. // - Final: Universal Certainty ~ Entropy Wave { // SpawnTemplate BossLogic // SpawnTemplate PT_SwitchShotgunSentry_Logic SpawnTemplate { Name "PT_TeleportSpot" Origin "-100 250 220" Params { "Particlename" "particle_front_L" "Targetname" "dest_front_L" } } SpawnTemplate { Name "PT_TeleportSpot" Origin "-100 -280 220" Params { "Particlename" "particle_front_R" "Targetname" "dest_front_R" } } SpawnTemplate { Name "PT_TeleportSpot" Origin "-100 250 220" Params { "Particlename" "particle_base_L" "Targetname" "dest_base_L" } } SpawnTemplate { Name "PT_TeleportSpot" Origin "1700 525 300" Params { "Particlename" "particle_base_R" "Targetname" "dest_base_R" } } InitWaveOutput { Target bignet Action RunScriptCode Param "EntFire(`hologram_color_purple_relay`,`Trigger`) EntFire(`bombpath_centerright_relay`,`Trigger`) IncludeScript(`seel_terror.nut`,getroottable()) IncludeScript(`seel_ins.nut`,getroottable())" } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name "wave6a1" WaitBetweenSpawnsAfterDeath 16 Where spawnbot TotalCount 2 MaxActive 1 SpawnCount 1 TotalCurrency 50 TFBot { Template Universe_Giant_Scout_Ubercan } } WaveSpawn { Name "wave6a" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 2 WaitBetweenSpawns 12 TotalCurrency 100 FirstSpawnOutput { Target "bomb_2" Action Enable } TFBot { Template Universe_Giant_Demoman_Gravity Attributes AlwaysCrit } } WaveSpawn { Name "wave6a" Where spawnbot_invasion TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 12 TotalCurrency 100 TFBot { Template Universe_Giant_Demoman_Gravity Attributes AlwaysCrit } } WaveSpawn { Name "wave6a" Where spawnbot_tunnel TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 8 WaitBetweenSpawns 12 TotalCurrency 100 TFBot { Template Universe_Giant_Demoman_Gravity Attributes AlwaysCrit } } WaveSpawn { Name "wave6a2" Where spawnbot Where spawnbot_invasion WaitBeforeStarting 4 WaitBetweenSpawns 1.5 TotalCount 40 MaxActive 16 SpawnCount 4 TotalCurrency 120 Squad { NoFormation 1 TFBot { Template Universe_Engineer_ShortCircuit } TFBot { Template Universe_Pyro_Fury_Spammer } TFBot { Template Universe_Pyro_Fury_Spammer } TFBot { Template Universe_Pyro_Fury_Spammer } } } WaveSpawn { Name "wave6b" WaitForAllDead "wave6a" Where spawnbot_limited_a TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 30 TFBot { Template Universe_Chief ClassIcon random_lite } } WaveSpawn { Name "wave6_phase3block" TotalCount 1 MaxActive 1 SpawnCount 1 Support Limited PointTemplate { Name "PT_Chief_Phase3Ent" } } //Spawns left front WaveSpawn { Name "wave6_phase3" WaitForAllDead "wave6_phase3block" StartWaveWarningSound "misc/halloween/spell_teleport.wav" WaitBeforeStarting 2 Where spawnbot TotalCount 8 MaxActive 8 SpawnCount 8 Support Limited TotalCurrency 80 Squad { NoFormation 1 TFBot { Template Universe_Giant_Soldier_Meteor FireInput { Target "!self" Action "$TeleportToEntity" Param "dest_front_R" Repeats 1 Delay 0 } } TFBot { Template Universe_Giant_Soldier_Meteor FireInput { Target "!self" Action "$TeleportToEntity" Param "dest_front_L" Repeats 1 Delay 0 } } NextSpawnerClone 3 TFBot { Template Universe_Pyro_Douse FireInput { Target "!self" Action "$TeleportToEntity" Param "dest_base_R" Repeats 1 Delay 0 } } NextSpawnerClone 3 TFBot { Template Universe_Pyro_Douse FireInput { Target "!self" Action "$TeleportToEntity" Param "dest_base_L" Repeats 1 Delay 0 } } } } WaveSpawn { Name "wave6_phase4block" TotalCount 1 MaxActive 1 SpawnCount 1 Support Limited PointTemplate { Name "PT_Chief_Phase4Ent" } } //Spawns behind, left side: bridge WaveSpawn { Name "wave6_phase4" WaitForAllDead "wave6_phase4block" StartWaveWarningSound "misc/halloween/spell_teleport.wav" WaitBeforeStarting 2 Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 Support Limited TotalCurrency 20 Squad { NoFormation 1 TFBot { Template Universe_Giant_Scout FireInput { Target "!self" Action "$TeleportToEntity" Param "dest_base_L" Repeats 1 Delay 0 } } TFBot { Template Universe_Giant_Scout FireInput { Target "!self" Action "$TeleportToEntity" Param "dest_base_R" Repeats 1 Delay 0 } } } } //Spawns behind, right side: bunker WaveSpawn { Name "OnlyHereToPrecacheTheIcon" WaitForAllDead "wave6b" TotalCount 1 MaxActive 1 SpawnCount 1 Support Limited HideIcon 1 TFBot { Class Pyro Name "I should not spawn." ClassIcon boss_atomic_admiral } } WaveSpawn { Name "test" WaitForAllSpawned "wave6b" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0.5 Support Limited PointTemplate { Name "PT_MeteorPortal" Origin "-2100 0 150" Angles "0 0 0" SpreadRadius "0 0 200" } } WaveSpawn { Name "test" WaitForAllSpawned "wave6b" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0.5 TotalCurrency 0 Support Limited PointTemplate { Name "PT_MeteorPortal" Origin "-2100 125 150" Angles "0 0 0" SpreadRadius "0 0 200" } } WaveSpawn { Name "test" WaitForAllSpawned "wave6b" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 TotalCurrency 0 Support Limited PointTemplate { Name "PT_MeteorPortal" Origin "-2100 250 150" Angles "0 0 0" SpreadRadius "0 0 200" } } WaveSpawn { Name "test" WaitForAllSpawned "wave6b" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1.5 TotalCurrency 0 Support Limited PointTemplate { Name "PT_MeteorPortal" Origin "-2100 375 150" Angles "0 0 0" SpreadRadius "0 0 200" } } WaveSpawn { Name "test" WaitForAllSpawned "wave6b" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 2 TotalCurrency 0 Support Limited PointTemplate { Name "PT_MeteorPortal" Origin "-2100 500 150" Angles "0 0 0" SpreadRadius "0 0 200" } } WaveSpawn { Name "test" WaitForAllSpawned "wave6b" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 2.5 TotalCurrency 0 Support Limited PointTemplate { Name "PT_MeteorPortal" Origin "-2100 -125 150" Angles "0 0 0" SpreadRadius "0 0 200" } } WaveSpawn { Name "test" WaitForAllSpawned "wave6b" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 3 TotalCurrency 0 Support Limited PointTemplate { Name "PT_MeteorPortal" Origin "-2100 -250 150" Angles "0 0 0" SpreadRadius "0 0 200" } } WaveSpawn { Name "test" WaitForAllSpawned "wave6b" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 3.5 TotalCurrency 0 Support Limited PointTemplate { Name "PT_MeteorPortal" Origin "-2100 -375 150" Angles "0 0 0" SpreadRadius "0 0 200" } } WaveSpawn { Name "test" WaitForAllSpawned "wave6b" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 4 TotalCurrency 0 Support Limited PointTemplate { Name "PT_MeteorPortal" Origin "-2100 -500 150" Angles "0 0 0" SpreadRadius "0 0 200" } } } } /////////////////////////////////////////////// //SCRAPPED STUFF OF THE PAST /////////////////////////////////////////////// //A peek into the slightly-messy development history of this advanced mission! // Subwave 3 - Excessive finale! // Less giants, but more spam from each giant. Shows off the power of the Giant Haste Medic. // First pair uses a known bot; second pair introduces the final bot type. // Commons in this subwave are less spammy, more defensive; allows team to better approach the giant medics. // - Giant Cataclysm Heavy + Giant Doombringer Medic // - Colonel Conflict (barrage) + Giant Doombringer Medic // - Scorched Earth Pyro (fury; limited range, but strong up close; also helps counter shields >:3) //Wave 6 - Doomsday of Darkness - Alternatively...Bloodstained Bashing 2? // Mohg (but fake), as chief pyro with stuff like a Rain of Blood (mimics the localized fire) // Or straight-up copy the burning ground effect from the og fight! // Subwave 2: Summoned invasion // Tank as DPS check, but also calls attention to it thanks to summoned skellies (one large "push force") // Commons here act as assisting threats for otherwise easy-to-dodge giants // Squad prevents them from roaming around, which could be annoying // - Skeleton Tank (summons Skeleton Snipers, not real skeletons) ?