//Bytes and Blizzards, by Seelpit //Endurance adv for Shiverpeak //Where names: //spawnbot, spawnbot_flank, spawnbot_mission_sniper //Planned ideas: //- Festive weapon spam (but the cheap ones for mediocre weapons) //- Milk Syringe Red Medic bots //- Deccel ("Frost") projectiles //- Some stuff with Caribous //- Giant Santa Heavy (with a gun. red bot) //- Red Banner bots using Action Medic to stick to players. Prevent secondary with disable weapon switch addattribute //W1 - "Festive" weapons; primarily weaker ones and the ones wintery-themed (Candy Cane) //Red bots could be used to distract; perhaps for a good finale? //W2 - Australian Christmas: summer-themed bots (drinks, drunks, and snipers) //Red bots could help negate effects: Backup! //W3 - Snow/ice-themed bots; deccel / accel projectiles, speed up / slow down bots //Red bots could help distract or power up //W4 - Combination of earlier parts; in particular the "strong" festive weapons //Red bots could be powerful forces or strong support //Testing notes 7-08 //W1 //- Generally pushes too little until Shortstop section, which is too rough //- Try adding Superheal Medic to initial Pyro, too //- Add some more bots to shotguns, but not many! //- Fish/Fan/Demo/Powerjack part is probably just fine. //- Finale: split bomb properly? Check that out! //W2 //- Similar issue: one subwave pushes hard (tank and sticky demos), rest falls behind. //- Reconsider shield subwave? Gets far quite easily, while combo gets fucked up by tank. //- Shivs don't do that much, maybe make them a smidge faster...? //- Sandvich Boss is underwhelming, healing too little and being too one-dimensional //W3 //- Double Tele Scout is brutal, while first lone one is easy --CHANGED: 1 Teleporter Scout, not 2 //- Aside from that, could use more aggressive spawning to keep up the pressure // if bomb were to be on hatch. As Sntr put it, "wave begs for engie bots". //- Stretchy cosmetics on Giant Heavy and some other things! //- Back Scratcher / Tour Grinder Soldier part may be a bit slow...? Careful buff? //BIG PLAN: Add in more specific, prominent red bots. Re-center mission around them. Let's do it. //W1 //- Red bots to take inspiration from: // Dismal Devilry: Bullet Vacc Banner Soldiers. "Deny" otherwise strong giant, but gets countered slightly by support. // Unholy Assault: Giant Bonk! Bauble Scout. Functions as low-damage, high-hp "tank" with powerful distraction. // Fits with the wave having relatively hard-hitters: crits on Giant Soldiers & Demoknights, and crit Punchies and Bisons. // The Bisons also semi-counter the Scouts by hitting reds behind them! // Both missions i.e. add more "bulk" to red, while the waves have hard hitters to start with. // Note the giant bots used in my wave 1: // Giant Backburner Pyro: Limited range, moderate damage. Health pressure (moderate). // Giant Burst Fire Demo: High burst damage, but dodgable. Damage pressure (moderate). // Giant Barrage Soldier: High damage and relatively longer threat level, but lower effective range, and somewhat dodgable. // Damage pressure (moderate), health pressure (moderate). // Giant Powerjack Pyro: Very limited range, higher speed and some survivability. Speed pressure (moderate-big). // Giant Shielded Shotgun Heavy: High damage + defensive gimmick. Omni pressure, with moderately-exploitable weakness. #base robot_standard.pop #base robot_giant.pop #base judge_restricts.pop Embrace_Eachother_For_It_Is_Winter { StartingCurrency 850 RespawnWaveTime 3 FixedRespawnWaveTime 1 CanBotsAttackWhileInSpawnRoom No PrecacheModel "models/bots/sniper_boss/bot_sniper_boss.mdl" PrecacheModel "models/props_gameplay/cap_square_512.mdl" LuaScriptFile "scripts/bytesnblizzes.lua" CustomNavFile "mvm_shiverpeak_rc3_seelpit.nav" BotTeleportUberDuration 3 MaxRedPlayers 5 //TESTING ONLY TextPrintTime 0 PointTemplates { //All waves FakeIcon { logic_auto { "OnMapSpawn" "!self,Kill,,0,-1" } } NoTimerOnReset { OnSpawnOutput { Target intel_ironman Action AddOutput Param "OnReturn !self:SetReturnTime:60000:0:-1" Delay 0.1 } OnSpawnOutput { Target wave_start_relay_endurance Action AddOutput Param "OnTrigger intel_ironman:SetReturnTime:35:0:-1" Delay 0.1 } } //Wave 1 SecondBomb { NoFixup 1 logic_relay { "targetname" "bomb2_enable_relay" "OnTrigger" "intel2,Enable,,-1,-1" "OnTrigger" "player,$PlaySoundToSelf,vo\mvm_another_bomb04.mp3,0,-1" "OnUser1" "intel2,Enable,,-1,-1" "OnUser1" "player,$PlaySoundToSelf,vo\mvm_another_bomb07.mp3,0,-1" } item_teamflag { "targetname" "intel2" "trail_effect" "3" "TeamNum" "3" "tags" "bomb_carrier" "ReturnTime" "60000" "ReturnBetweenWaves" "1" "GameType" "1" "StartDisabled" "1" "flag_trail" "flagtrail" "flag_paper" "player_intel_papertrail" "flag_model" "models/props_td/atom_bomb.mdl" "flag_icon" "../hud/objectives_flagpanel_carried" "OnPickupTeam2" "!self,SetTeam,0,0,-1" //Enables some nice colors. "OnDrop" "!self,SetTeam,3,0,-1" } } ProjShield { NoFixup 1 OnSpawnOutput { Target "projectile_shield" Action "$SetOwner" Param "!activator" Delay 0.05 } entity_medigun_shield { "targetname" "projectile_shield" "origin" "150 0 0" "spawnflags" "1" //No expire, no blocking line-of-sight "teamnum" "3" "skin" "1" } } //Wave 2 Annotations_W2 { training_annotation { "targetname" "mobber_infotext" "display_text" "Human enemies ignore the bomb, but will relentlessly hunt you down!" "lifetime" "5" "origin" "-7080 -300 250" } training_annotation { "targetname" "skyspawner_infotext" "display_text" "Airdrop incoming! Look up!" "lifetime" "5" "origin" "-7080 -300 250" } } SkyTeleports { logic_case { "targetname" "skyspawner_logic" "OnCase01" "!activator,$SetLocalOrigin,-3100 1000 800,0,-1" "OnCase02" "!activator,$SetLocalOrigin,-3100 1400 800,0,-1" "OnCase03" "!activator,$SetLocalOrigin,-3800 1400 800,0,-1" "OnCase04" "!activator,$SetLocalOrigin,-3800 1000 800,0,-1" } } ArrowRain { OnSpawnOutput { Target arrow_launcher Action $InheritOwner Param !activator //!activator is the projectile for templates in ShootTemplate with AttachToProjectile 1 Delay 0.1 } OnSpawnOutput { Target arrow_launcher Action $StartFiring Delay 0.1 } tf_point_weapon_mimic { "targetname" "arrow_launcher" "origin" "0 0 0" "angles" "-90 0 0" "$weaponname" "Arrow Launcher" "$firetime" 0.07 } } //Wave 3 SpawnbotRelay { logic_relay { "targetname" "spawn_control_relay" "OnSpawn" "spawnbot,Disable,,0.1,-1" "OnTrigger" "spawnbot,Enable,,0.1,-1" "OnUser1" "spawnbot,Disable,,0.1,-1" } } //"Phalanx" attack: creates a prop_dynamic and weapon mimic above parent. //Fires "sword" thru firing weapon mimic and disabling prop, then re-enabling prop (through $OnFire) //Rotation may not be required. SwordSummons { OnSpawnOutput { Target "sword_prop_mid" Action $RotateTowards Param !activator Delay 0.01 } OnSpawnOutput { Target "sword_mimic_mid" Action $RotateTowards Param !activator Delay 0.01 } prop_dynamic { "targetname" "sword_prop_mid" "origin" "0 0 0" //check offset "angles" "0 0 180" "model" "models/weapons/c_models/c_claymore/c_claymore_xmas.mdl" "skin" 1 } info_particle_system { "targetname" "sword_particle_mid" "parentname" "sword_prop_mid" //candidates: unusual_snowfall_blue_cone, utaunt_ice_bodyglow, weapon_unusual_cool_claidheamohmor, //outerspace_belt_glow_blue, flaregun_energyfield_blue, "effect_name" "utaunt_ice_bodyglow" //flare glow, crit glow of some projs? "start_active" 1 "origin" "0 0 0" //check offset } tf_point_weapon_mimic { "targetname" "sword_mimic_mid" "origin" "0 0 0" "angles" "0 0 0" "$weaponname" "Sword Shooter" "$OnFire" "sword_prop_mid,Disable,,0,-1" "$OnFire" "sword_particle_mid,Stop,,0,-1" "$OnFire" "sword_prop_mid,Enable,,3,-1" "$OnFire" "sword_particle_mid,Start,,3,-1" "$modules" "rotator" // "$projectilespeed" "1500" // "$aimoffset" "5" "$lookat" "aim" "$rotationspeedx" "350" "$rotationspeedy" "350" "$rotationlimitx" "180" "$rotationlimity" "180" } } SwordProp { prop_dynamic { "targetname" "sword_proj" "origin" "0 0 0" "angles" "0 90 90" "model" "models/weapons/c_models/c_claymore/c_claymore.mdl" // "skin" 1 } } EscortRockets //TODO: check if $fakeparent also moves an entity if the parent rotates! { OnSpawnOutput { Target "escort_prop_left" Action $RotateTowards Param !activator Delay 0.01 } OnSpawnOutput { Target "escort_mimic_left" Action $RotateTowards Param !activator Delay 0.01 } prop_dynamic { "targetname" "escort_prop_left" "origin" "-50 0 0" //check if actually left? "angles" "90 0 90" "model" "models/weapons/c_models/c_rocketlauncher/c_rocketlauncher.mdl" "skin" 1 } // info_particle_system // { // "targetname" "escort_particle_left" // "parentname" "escort_prop_left" // "effect_name" "utaunt_astralbodies_teamcolor_blue" // "start_active" 1 // "origin" "0 0 0" //check offset // } tf_point_weapon_mimic { "targetname" "escort_mimic_left" "origin" "-50 0 0" "angles" "90 0 90" "$weaponname" "Giant Launcher" "$preventshootparent" 1 "$modules" "rotator" // "$projectilespeed" "715" "$lookat" "aim" "$rotationspeedx" "350" "$rotationspeedy" "350" } } EscortRocketsFire { OnSpawnOutput { Target "escort_mimic*" Action FireOnce Delay 0.01 } } PortableTeleport { OnParentKilledOutput { Target popscript Action $SpawnTele } // prop_dynamic // { // "targetname" "tp_prop" // "model" "models/weapons/w_models/w_toolbox.mdl" // "skin" 1 // } // info_particle_system // { // "targetname" "tp_fx_plate" // "parentname" "tp_prop" // "effect_name" "teleporter_blue_charged_level1" // "start_active" 1 // "origin" "0 0 0" //check offset // } // info_particle_system // { // "targetname" "tp_fx_plate" // "parentname" "tp_prop" // "effect_name" "teleporter_blue_exit" // "start_active" 1 // "origin" "0 0 0" //check offset // } } PortableTeleportCreater { NoFixup 1 OnSpawnOutput { Target "tp" Action RemoveHealth Param 5000 Delay 5 } obj_teleporter { "targetname" "tp" "spawnflags" "2" "teamnum" "3" "origin" "0 0 0" "solid" "0" "teleportertype" "2" "$TeleportWhere" "spawnbot_limited" } } StickyMimic { OnSpawnOutput { Target "sticky_mimic" Action "$SetOwner" Param "!activator" } OnSpawnOutput { Target "sticky_mimic" Action "$SetFakeParent" Param "!activator" } OnSpawnOutput { Target "sticky_mimic" Action "SetParent" Param "" } OnSpawnOutput { Target "sticky_mimic" Action "SetLocalAngles" Param "0 0 0" } tf_point_weapon_mimic { "targetname" "sticky_mimic" "origin" "0 0 0" "angles" "-90 0 0" "$weaponname" "Loretta Sticky Launcher" "$preventshootparent" 1 "$modules" "fakeparent" "$positiononly" 1 "$fakeparentoffset" "0 0 140" // "WeaponType" "3" // "TeamNum" "2" // "ModelScale" "1" // "SpeedMax" "525" // "SpeedMin" "525" // "Crits" "0" // "Damage" "105" // "SpreadAngle" "25" // "SplashRadius" "125" } } //Wave 4 BombSections { //X: -7300 to -4600 | 2700 -> -1350 | -5950 //Y: 2500 to 250 | 2250 -> 1125 | 1375 //Z: 400 to -200 | 600 -> 300 | 100 func_flagdetectionzone { "targetname" "bombsection_front" "origin" "-5950 1375 100" "mins" "-1350 -1125 -300" "maxs" "1350 1125 300" "alarm" 0 "TeamNum" 3 "OnStartTouchFlag" "popscript,$UpdateBombSection,front,0,-1" "OnDroppedFlag" "popscript,$UpdateBombSection,front,0,-1" } //X: -4600 to -2000 | 2600 -> -1300 | -3300 //Y: 2500 to 50 | 2450 -> 1225 | 1275 //Z: 400 to -200 | 600 -> 300 | 100 func_flagdetectionzone { "targetname" "bombsection_mid" "origin" "-3300 1275 100" "mins" "-1300 -1225 -300" "maxs" "1300 1225 300" "alarm" 0 "TeamNum" 3 "OnStartTouchFlag" "popscript,$UpdateBombSection,mid,0,-1" "OnDroppedFlag" "popscript,$UpdateBombSection,mid,0,-1" } //X: -2000 to 100 | 2100 -> -1050 | -950 //Y: 2500 to -600 | 3100 -> 1550 | 950 //Z: 400 to -200 | 600 -> 300 | 100 func_flagdetectionzone { "targetname" "bombsection_hatch" "origin" "-950 950 100" "mins" "-1050 -1125 -300" "maxs" "1050 1125 300" "alarm" 0 "TeamNum" 3 "OnStartTouchFlag" "popscript,$UpdateBombSection,hatch,0,-1" "OnDroppedFlag" "popscript,$UpdateBombSection,hatch,0,-1" } } //From royal: Dover's Undying Runner lua script, repurposed! RecallBot { OnSpawnOutput { Target "popscript" Action "$UndyingSpawn" Param "$RechargeTime$" // recharge time } } KillPowerupsOnDeath { OnParentKilledOutput { Target item_powerup_rune* Action Kill Delay 0 } } BossPositions { info_target { "targetname" "boss_target_front" "origin" "-4940 1340 -134" } info_target { "targetname" "boss_target_mid" "origin" "-3290 1200 -50" } info_target { "targetname" "boss_target_hatch" "origin" "0 0 0" } } BossEntities { logic_relay { "targetname" "boss_logic" //OnUser1: Change to phase 2, teleport to mid "OnUser1" "popscript,$TeleInParticle,,0,-1" "OnUser1" "!parent,$TeleportToEntity,boss_target_mid,0.016,-1" "OnUser1" "player,$PlaySoundToSelf,=35|mvm/mvm_tele_deliver.wav,0.016,-1" //Anti-cheese, hopefully. "OnUser1" "!activator,$AddPlayerAttribute,stomp building damage|3000,0.016,-1" "OnUser1" "!activator,$AddPlayerAttribute,stomp player force|300,0.016,-1" "OnUser1" "!activator,$AddPlayerAttribute,stomp player time|0.05,0.016,-1" "OnUser1" "!activator,$AddPlayerAttribute,not solid to players|1,0.016,-1" "OnUser1" "!activator,$RemovePlayerAttribute,stomp building damage,0.517,-1" "OnUser1" "!activator,$RemovePlayerAttribute,stomp player force,0.517,-1" "OnUser1" "!activator,$RemovePlayerAttribute,stomp player time,0.517,-1" "OnUser1" "!activator,$RemovePlayerAttribute,not solid to players,0.517,-1" //OnUser2: Change to phase 3, teleport to hatch "OnUser2" "popscript,$TeleInParticle,,0,-1" "OnUser2" "!parent,$TeleportToEntity,boss_target_hatch,0.016,-1" "OnUser2" "player,$PlaySoundToSelf,=35|mvm/mvm_tele_deliver.wav,0.016,-1" "OnUser2" "!activator,$AddPlayerAttribute,stomp building damage|3000,0.016,-1" "OnUser2" "!activator,$AddPlayerAttribute,stomp player force|300,0.016,-1" "OnUser2" "!activator,$AddPlayerAttribute,stomp player time|0.05,0.016,-1" "OnUser2" "!activator,$AddPlayerAttribute,not solid to players|1,0.016,-1" "OnUser2" "!activator,$RemovePlayerAttribute,stomp building damage,0.517,-1" "OnUser2" "!activator,$RemovePlayerAttribute,stomp player force,0.517,-1" "OnUser2" "!activator,$RemovePlayerAttribute,stomp player time,0.517,-1" "OnUser2" "!activator,$RemovePlayerAttribute,not solid to players,0.517,-1" } point_push { "targetname" "boss_push" "radius" "450" "magnitude" "320" "innerradius" "130" //49 * 1.75 = ~86 HU wide "startdisabled" 1 "spawnflags" 11 //Test LOS, use angles, push players } info_particle_system { "targetname" "boss_particle_rejection" "effect_name" "powerup_supernova_ready" "start_active" 0 "origin" "0 0 5" } prop_dynamic { "model" "models/props_gameplay/cap_square_512.mdl" "targetname" "boss_prop_gravity" "solid" "6" "skin" "2" //set to 0 for neutral, 1 for red, 2 for blu "origin" "0 0 5" "StartDisabled" 1 } trigger_multiple { "targetname" "boss_trigger_gravity" "mins" "-256 -256 -64" "maxs" "256 256 64" "StartDisabled" 1 "spawnflags" 64 "wait" 0.8 "filtername" "red_filter" "OnTrigger" "popscript,$ReverseGravity,,0,-1" } //utaunt_arcane_purple_parent, utaunt_elebound_purple_parent, utaunt_electricity_cloud_parent_WP info_particle_system { "targetname" "boss_particle_gravity" "effect_name" "utaunt_elebound_purple_parent" "start_active" 0 "origin" "0 0 5" } info_particle_system { "targetname" "boss_particle_gravity" "effect_name" "utaunt_electricity_cloud_parent_WP" "start_active" 0 "origin" "0 64 2" } info_particle_system { "targetname" "boss_particle_gravity" "effect_name" "utaunt_electricity_cloud_parent_WP" "start_active" 0 "origin" "0 -64 2" } info_particle_system { "targetname" "boss_particle_gravity" "effect_name" "utaunt_electricity_cloud_parent_WP" "start_active" 0 "origin" "64 0 2" } info_particle_system { "targetname" "boss_particle_gravity" "effect_name" "utaunt_electricity_cloud_parent_WP" "start_active" 0 "origin" "-64 0 2" //check offset } } GravityManip { filter_activator_tfteam { "targetname" "filter_gravityrev" "Negated" 0 "TeamNum" "2" "OnPass" "popscript,$ReverseGravity,,0,-1" } filter_activator_class { "targetname" "filter_gravityless" "Negated" 0 "filterclass" "player" "OnPass" "!activator,$SetData$m_flGravity,0.1,0,-1" } filter_activator_class { "targetname" "filter_gravityful" "Negated" 0 "filterclass" "player" "OnPass" "!activator,$SetData$m_flGravity,0,0,-1" "OnPass" "!activator,$DisplayTextChat,Restored!,0,-1" } } } CustomWeapon { "Sword Shooter" { OriginalItemName "The Rescue Ranger" "custom projectile model" "models/empty.mdl" "custom weapon fire sound" "null.wav" "no damage falloff" 1 "damage bonus" 1.6 //64 damage "remove damage type" 2 //not bullet, "add damage type" 128 //but "CLUB" or melee! "dmg bonus vs buildings" 2 //128 damage to actually have more impact "projectile speed decreased" 0.65 "mod projectile heat seek power" 30 "mod projectile heat no predict target speed" 1 "penetrate teammates" 1 "projectile no deflect" 1 "arrow hit kill time" 0.1 } "Giant Launcher" { OriginalItemName "TF_WEAPON_ROCKETLAUNCHER" "custom weapon fire sound" "=25|mvm/giant_soldier/giant_soldier_rocket_shoot.wav" "projectile speed decreased" 0.65 "penetrate teammates" 1 } "Arrow Launcher" { OriginalItemName "The Huntsman" "can headshot" 0 //just in case... "projectile penetration" 1 "Projectile speed increased" 0.25 "projectile gravity" 1200 //experiment "arrow hit kill time" 0.05 // "custom projectile model" "models/weapons/w_models/w_arrow.mdl" "projectile spread angle penalty" 5 } "Loretta Sticky Launcher" { OriginalItemName "TF_WEAPON_PIPEBOMBLAUNCHER" "projectile range decreased" 0.1 "blast dmg to self increased" 0.01 "self dmg push force decreased" 0.01 } "Lightning Launcher" { OriginalItemName "TF_WEAPON_ROCKETLAUNCHER" "explosion particle" "wrenchmotron_teleport_beam" "projectile detonate time" 0.1 "projectile speed increased" 0.1 "custom projectile model" "models/empty.mdl" "projectile trail particle" "~" // "custom impact sound" "fdfdf" } } Templates { // Turns the bot red and modifies behavior. // Cannot carry intel and auto-money collect is enabled. RedBot_Base { AddCond { Name TF_COND_REPROGRAMMED } CharacterAttributes { "cannot pick up intelligence" 1 "collect currency on kill" 1 } } RedBot_Bomb { Template RedBot_Base Action FetchFlag } RedBot_Bomb_H { Template RedBot_Base UseHumanModel 1 Action FetchFlag } RedBot_Mobber { Template RedBot_Base Action Mobber } RedBot_Mobber_H { Template RedBot_Base UseHumanModel 1 Action Mobber } RedBot_Sniper { Template RedBot_Base Action Sniper } RedBot_Sniper_H { Template RedBot_Base UseHumanModel 1 Action Sniper } //Adds basic upgrades as attributes: //- 2 ticks heal on kill, 1 tick regen //- 1 tick in move speed //- 1 tick in resists, 2 for crit (2050$ total) Upgrades_1 { CharacterAttributes { "heal on kill" 50 "health regen" 2 "move speed bonus" 1.1 "dmg taken from bullets reduced" 0.75 "dmg taken from blast reduced" 0.75 "dmg taken from fire reduced" 0.75 "dmg taken from crit reduced" 0.4 } } //Same as above but without fire resist. Upgrades_1_NoFire { CharacterAttributes { "heal on kill" 50 "health regen" 2 "move speed bonus" 1.1 "dmg taken from bullets reduced" 0.75 "dmg taken from blast reduced" 0.75 "dmg taken from crit reduced" 0.4 } } //Natural progression, for stronger bots. //- 3 ticks in hok, 2 in regen. //- 2 ticks in move speed //- 2 ticks in resists, 3 in crit (3350$) Upgrades_2 { CharacterAttributes { "heal on kill" 75 "health regen" 4 "move speed bonus" 1.2 "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 } } //Maxed-out upgrades for the strongest support. //- 4 ticks in hok, 5 in regen. //- 3 ticks in move speed //- 3 ticks in resists, 3 in crit (5100$) //- 3 sec critboost on kill: bonus attrib! Upgrades_3 { CharacterAttributes { "heal on kill" 100 "health regen" 4 "move speed bonus" 1.2 "dmg taken from bullet reduced" 0.5 "dmg taken from blast reduced" 0.5 "dmg taken from fire reduced" 0.5 "dmg taken from crit reduced" 0.1 } } RedVCs { VoiceCommand { Delay 0.5 Repeats 1 Type "Battle Cry" } VoiceCommand { Delay 5.5 Repeats 1 Type "Go" } VoiceCommand { Cooldown 15 Repeats 2 IfSeeTarget 1 Type "Incoming" //Medic //Help //Go //Move up //Incoming //Battle cry //Cheers } VoiceCommand { Cooldown 10 Repeats 0 IfHealthBelow 100 Type "Medic" } } /////////////////////////////////////////////////////////////////// /////////////////////// Red Bots /////////////////////// /////////////////////////////////////////////////////////////////// //A Scout using both Bonk! and the Force-a-Nature. T_TFBot_Red_Scout_Bonk { Template RedBot_Mobber Class Scout Skill Hard Name "Bonk!-a-Nature Scout" WeaponRestrictions PrimaryOnly ClassIcon scout_fan Item "Festive Force-a-Nature" Item "Festive Bonk 2014" Item "Bottle Cap" Item "Blizzard Britches" Item "Wipe Out Wraps" DesiredAttackRange 150 MoveBehindEnemy 1 ItemAttributes { ItemName "Festive Force-a-Nature" "damage bonus" 2 "clip size bonus" 2 "projectile penetration" 1 "scattergun has knockback" 0 "reload time decreased while healed" 0.5 } AddTemplate Upgrades_1_NoFire } T_TFBot_Red_Pyro_Shotgun { Template RedBot_Mobber Class Pyro Name "Pole Explorer Pyro" Skill Expert DesiredAttackRange 300 Item "Blizzard Breather" Item "Spawn Camper" Item "Sub Zero Suit" Item "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" Attributes AlwaysCrit ClassIcon heavy_shotgun_burst ItemAttributes { ItemName "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" "paintkit_proto_def_index" 282 //Glacial Glazed "set_item_texture_wear" 0.4 "is_festivized" 1 "auto fires when full" 1 "auto fires full clip" 1 "fire rate bonus" 0.1 "faster reload rate" 0.75 "damage bonus" 1.5 "weapon spread bonus" 0.75 } AddTemplate Upgrades_1 AddTemplate RedVCs VoiceCommand { Cooldown 10 Repeats 0 IfHealthBelow 125 Type "Help" } } T_TFBot_Red_Demoknight_Sol { Class Demoman Name "Soleir, Knight of Sunlight" Health 2500 Skill Expert ClassIcon demoknight_golden_lite StripItemSlot 0 Item "Brass Bucket" Item "Shin Shredders" Item "The Toowoomba Tunic" Item "The Eyelander" Item "TF_WEAPON_SPELLBOOK" //This is basically a Miracle catalyst. ItemAttributes { ItemName "The Eyelander" "item style override" 1 "max health additive penalty" 0 "fire rate penalty" 1.25 "damage bonus" 2 "decapitate type" 0 //Sozzers, Soleir. No heads for you :P } CharacterAttributes { "damage force reduction" 0.1 "airblast vulnerability multiplier" 0.3 } //Particles to check out: utaunt_storm_lightning2_k, utaunt_lightning_fingers, utaunt_lightning_fingers, } //Very bulky Natascha-Backup Heavy, providing a mix of both slowing and defense boosting. T_TFBot_Red_Heavy_Natascha_Backup { Template RedBot_Bomb Class Heavyweapons Name "Polar Unit Heavy" Skill Hard Action Medic //See if this works and doesn't force them to hold out their banner ClassIcon heavy_natascha_nys_backup Item "Gone Commando" Item "Siberian Tigerstripe" Item "Polar Bear" Item "The Battalion's Backup" Item "Natascha" ItemAttributes { ItemName "Natascha" "is_festivized" 1 "projectile penetration heavy" 1 "fire rate bonus" 0.9 } ItemAttributes { ItemName "The Battalion's Backup" "increase buff duration" 48 //8 minutes "mod soldier buff range" 1.6 //720 units } AddTemplate Upgrades_2 AddTemplate RedVCs VoiceCommand { Cooldown 10 Repeats 0 IfHealthBelow 250 Type "Help" } } //Bulkier Medic ally, using their Crossbow to heal players and Amputator to hit nearby enemies. //Amputator hits also generate more healing! T_TFBot_Red_Medic_Healer { Template RedBot_Sniper_H Class Medic Name "Combat Crossbow Medic" MaxVisionRange 900 // DesiredAttackRange 700 Skill Expert ClassIcon medic_crossbow Item "The Crusader's Crossbow" Item "The Amputator" Action EscortFlag AimLeadProjectileSpeed 2400 StripItemSlot 1 ItemAttributes { ItemName "The Amputator" "is_festivized" 1 "melee attack rate bonus" 0.8 //0.64 refire time "aoe heal chance" 120 //0.64 * 120/60 = >100% chance "heal on hit for rapidfire" 25 } ItemAttributes { ItemName "The Crusader's Crossbow" "is_festivized" 1 "projectile penetration" 1 "faster reload rate" 0.4 } AddTemplate Upgrades_1 InterruptAction { Target ClosestPlayer AimTarget ClosestPlayer Distance 700 KillAimTarget 1 Cooldown 12 Duration 5 } WeaponSwitch { Delay 1 //Time before the first weapon switch starts (Default: 10) Cooldown 3 //Time between each weapon switch (Default: 10) Repeats 0 //How many times should bot switch weapons in total (Default: 0 - Infinite) //IfSeeTarget 1 //When set to 1, this task activates only when the bot can see the target player (Default 0 - Always activate) Type "Primary" } } /////////////////////////////////////////////////////////////////// /////////////////////// Common Bots /////////////////////// /////////////////////////////////////////////////////////////////// //A Scout that drinks Festive Bonk with a Festive Fish to Festive Slap you. T_TFBot_Scout_Bonk_Fish { Class Scout Skill Hard Name "Feisty Bonk! Fish Scout" Item "Festive Bonk 2014" Item "Festive Holy Mackerel" Item "Bonk Leadwear" WeaponRestrictions MeleeOnly ClassIcon scout_bonk_nys // Item "Merc's Muffler" } //A Scout with a powerful Soda Popper! T_TFBot_Scout_SodaPopper { Class Scout Skill Normal Name "Icy Popper Scout" Item "The Soda Popper" Item "Weight Room Warmer" Item "Snowwing" WeaponRestrictions PrimaryOnly MaxVisionRange 900 DesiredAttackRange 150 ClassIcon scout_popper ItemAttributes { ItemName "The Soda Popper" "paintkit_proto_def_index" 248 //Igloo "set_item_texture_wear" 0.2 } } //A VERY angry human Scout. Relentlessly chases players at close range, //but ignores the bomb. T_TFBot_Scout_Aggressive { Class Scout Skill Normal Name "Sweaty Scout" Item "Upgradeable TF_WEAPON_SCATTERGUN" Item "Summer Hat" Item "Summer Shades" Item "Scout Flip-Flops" WeaponRestrictions PrimaryOnly UseHumanModel 1 Action Mobber DesiredAttackRange 150 ItemAttributes { ItemName "Summer Hat" "item style override" 1 "set item tint rgb" 15132390 //Abundance of Tinge - aka white! } ItemAttributes { ItemName "Upgradeable TF_WEAPON_SCATTERGUN" "paintkit_proto_def_index" 213 //Miami Element "set_item_texture_wear" 0.2 } } //Similar to the previous angry Scout, but with more burst potential! //Reloads a little slower to be more forgiving. T_TFBot_Scout_Aggressive_Soda { Class Scout Skill Normal Name "Sweaty Soda Scout" Item "The Soda Popper" Item "Lucky No. 42" Item "Summer Shades" Item "Scout Flip-Flops" WeaponRestrictions PrimaryOnly UseHumanModel 1 Action Mobber DesiredAttackRange 150 ClassIcon scout_popper ItemAttributes { ItemName "The Soda Popper" "paintkit_proto_def_index" 207 //Bonk Varnished "set_item_texture_wear" 0.2 "Reload time decreased" 1 //Slight nerf to make it a tad less spammy } } //A bulky Sandman Scout! Functional as a decent bulk-bot. T_TFBot_Scout_Sandman_Armored { Template T_TFBot_Scout_Sandman Name "Winter League Scout" Health 650 Scale 1.4 ClassIcon scout_stun_armored ItemAttributes { ItemName "The Sandman" "is_festivized" 1 "effect bar recharge rate increased" 0.5 } CharacterAttributes { "health regen" 1 "move speed penalty" 0.8 } } //A tough Wrap Assassin Scout! Can deal good chip damage! T_TFBot_Scout_Wrap_Armored { Template T_TFBot_Scout_Melee Name "Winter League Scout" Health 650 Scale 1.4 ClassIcon scout_wrap_armored FireWeapon { Delay 0 Type "Secondary" Duration 0.2 Cooldown 3 IfSeeTarget 1 } ItemAttributes { ItemName "The Wrap Assassin" "effect bar recharge rate increased" 0.25 "mult bleeding dmg" 2 } CharacterAttributes { "health regen" 1 "move speed penalty" 0.8 } } //A bulky FaN Scout, though not *as* bulky as their fellows. T_TFBot_Scout_FaN_Armored { Class Scout Name "Force-a-Festivity Scout" Skill Normal Health 350 Scale 1.3 MaxVisionRange 750 Item "Festive Force-a-Nature" Item "The Sack Fulla Smissmas" Item "The Bolt Boy" ClassIcon scout_fan_armored ItemAttributes { ItemName "The Force-a-Nature" "scattergun has knockback" 0 "reload time increased" 1.25 //Slight increase to lower spam. Consider removing if too forgiving. } CharacterAttributes { "health regen" 1 "move speed penalty" 0.9 } } //A Shotgun Soldier! Not as fast as a Pyro, not as bulky as a Heavy. //Uses a regular ol' shotty! T_TFBot_Soldier_Shotgun { Class Soldier Skill Hard Name "Shotgun Soldier" Item "Festive Shotgun 2014" Item "Smissmas Saxton" ClassIcon heavy_shotgun WeaponRestrictions SecondaryOnly ItemAttributes { ItemName "Smissmas Saxton" "attachment name" "head" } AddAttribute //"Fixes" the attachment's actual position, for some reason. { Item "Smissmas Saxton" Name "attachment offset" Value "0 0 -80" Delay 0.01 Repeats 1 } } //A smaller version of the Giant Rapid Fire Soldier. T_TFBot_Soldier_Spammer { Name "Rapid Fire Soldier" Class Soldier Skill Normal ClassIcon soldier_spammer Item "Antarctic Parka" Item "The War Pig" Item "Festive Rocket Launcher 2011" Action Mobber UseHumanModel 1 ItemAttributes { ItemName "Festive Rocket Launcher 2011" "faster reload rate" 0 //delicious +100% "fire rate bonus" 0.625 "Projectile speed increased" 0.83 } } //An Air Strike Soldier! Only rocket jumps with enough health *and* a full clip, //but only reloads fully when without a target T_TFBot_Soldier_AirStrike { Class Soldier Skill Normal Name "Sky Diving Soldier" MaxVisionRange 900 Item "The Air Strike" Item "The B.A.S.E. Jumper" Item "The Market Gardener" //this is what we in the business call a "funny move". Item "The Whirly Warrior" ClassIcon soldier_airstrike_para ItemAttributes { ItemName "The Air Strike" "cancel falling damage" 1 "rocket jump damage reduction" 0.05 "self dmg push force increased" 1.35 } ChangeAttributes { Name "NoJump" Delay 1 Cooldown 5 IfHealthBelow 31 } EventChangeAttributes { Default { RocketJump 2 } NoJump { RocketJump 0 } } } //An Air Strike Soldier that spawns in from behind! Also gets its firing boost upon spawning. T_TFBot_Soldier_AirStrike_Airdrop { Class Soldier Skill Normal Name "Sky Diving Soldier" Item "The Air Strike" Item "The B.A.S.E. Jumper" Item "The Whirly Warrior" ClassIcon soldier_airstrike_para Attributes HoldFireUntilFullReload ItemAttributes { ItemName "The Air Strike" "cancel falling damage" 1 "rocket jump damage reduction" 0.05 "self dmg push force increased" 1.35 } AddCond { Index 81 //Rocket-jumping fire rate bonus Delay 0.25 } FireInput { Target "skyspawner_logic" Action PickRandomShuffle Delay 0.12 Repeats 1 } ChangeAttributes { Name "NoJump" Delay 5 Cooldown 5 IfHealthBelow 41 } EventChangeAttributes { Default { RocketJump 2 } NoJump { RocketJump 0 } } } T_TFBot_Soldier_Grinder { Name "Cold Snap Soldier" //"Tour Grinder Soldier" Class Soldier Skill Expert Action Mobber UseHumanModel 1 Item "Cold Snap Coat" Item "Soldier's Stash" Item "The Beggar's Bazooka" Item "The Concheror" ClassIcon soldier_bazooka_conch_seel Attributes SpawnWithFullCharge ItemAttributes { ItemName "The Beggar's Bazooka" "can overload" 0 "auto fires full clip" 1 "faster reload rate" 0.4 "clip size upgrade atomic" 5 } ItemAttributes { ItemName "The Concheror" "increase buff duration" 2 } } //A Pyro with Normal skill, that does NOT airblast. //Who even likes coinflipping to get their attack reflected? T_TFBot_Pyro_NoAirblast { Class Pyro Skill Normal Name "Sunburn Pyro" Item "Melted Mop" ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "airblast disabled" 1 } } //A smaller version of the Giant Flare Pyro! T_TFBot_Pyro_Flare_Infinite { Name "Rapid Flare Pyro" Class Pyro Skill Hard Item "The Flare Gun" Item "The Winter Wonderland Wrap" Item "Sweet Smissmas Sweater" ClassIcon pyro_flare_infinite WeaponRestrictions SecondaryOnly Action Mobber UseHumanModel 1 ItemAttributes { ItemName "The Flare Gun" "faster reload rate" 0.25 } } //A good ol' Dragon's Fury Pyro. Quite powerful, despite its limited range! T_TFBot_Pyro_Fury { Class Pyro Name "Heatwave Pyro" Skill Normal MaxVisionRange 500 Item "The Dragon's Fury" Item "Feathered Fiend" Item "Deity's Dress" ClassIcon pyro_dragon_fury_swordstone } //A minigiant flare (detonator) pyro that attacks in bursts! T_TFBot_Pyro_Detonator_Burst { Name "Candle Burner Pyro" Class Pyro Scale 1.2 Health 350 ClassIcon pyro_flare_burst_nys AimAt Head FireWeapon { Delay 0 Type "Primary" Duration 0.6 Cooldown 2.1 //1.5s between bursts IfSeeTarget 1 } MaxVisionRange 1000 Attributes SuppressFire Skill Hard WeaponRestrictions SecondaryOnly Item "The Detonator" Item "The Waxy Wayfinder" ItemAttributes { ItemName "The Detonator" "is_festivized" 1 "fire rate bonus" 0.1 } CharacterAttributes { "health regen" 0 } } //A somewhat tol powerjack pyro! Bulky and quite speedy! T_TFBot_Pyro_Powerjack { Class Pyro Name "Jolly Powerjack Pyro" Health 350 Scale 1.2 Item "The Attendant" Item "The Powerjack" ClassIcon pyro_powerjack WeaponRestrictions MeleeOnly ItemAttributes { ItemName "The Powerjack" "is_festivized" 1 } CharacterAttributes { "mult flag carrier move speed" 0.75 "health regen" 0 } } T_TFBot_Pyro_BackScratcher { Name "Insulated Snowscraper Pyro" Class Pyro Skill Hard Health 650 Scale 1.3 WeaponRestrictions MeleeOnly Item "The Back Scratcher" Item "The Blizzard Breather" Item "Sub Zero Suit" ClassIcon pyro_backscratcher_lite ItemAttributes { ItemName "The Back Scratcher" "is_festivized" 1 } } //A rather bulky Demoman! Lower range, with a slightly boosted reload rate for scariness. T_TFBot_Demoman_Armored { Class Demoman Name "Insulated Demoman" Health 650 Scale 1.3 Skill Hard AimTrackingInterval 0.15 ClassIcon demo_armored Item "Festive Grenade Launcher" Item "The Hurt Locher" Item "The Tundra Top" ItemAttributes { ItemName "Festive Grenade Launcher" "faster reload rate" 0.75 //Mudun's have fire rate for some reason. } } //A stickybomb demo! Limited range, but with great burst potential. T_TFBot_Demo_Sticky { Class Demoman Skill Normal Name "Tropical Sticky Demo" ClassIcon demo_sticky_daan WeaponRestrictions SecondaryOnly Item "TF_WEAPON_PIPEBOMBLAUNCHER" Item "The Allbrero" // Item "Seeing Double" Item "Six Pack Abs" //Full Love and War set ItemAttributes { ItemName "TF_WEAPON_PIPEBOMBLAUNCHER" "projectile range increased" 0.35 "stickybomb charge rate" 0.001 "max pipebombs decreased" -7 "faster reload rate" 0.5 } ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "is_passive_weapon" 1 "fire rate penalty" 1357 "override projectile type" 29 } } T_TFBot_Demo_Rapid { Class Demoman Skill Hard Name "Arctic Rapid Demo" Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" Item "EOTL_hiphunter_jacket" //Snow Sleeves Item "Trapper's Flap" ClassIcon demo_spammer ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "fire rate bonus" 0.75 "faster reload rate" 0.001 } ItemAttributes { ItemName "Trapper's Flap" "item style override" 1 } } //A burst Business Heavy! Shoots his whole clip fast! T_TFBot_Heavy_Business_Burst { Class Heavyweapons Skill Normal ClassIcon heavy_shotgun_burst WeaponRestrictions SecondaryOnly Name "Burst Business Heavy" Item "The Family Business" Item "Smissmas Saxton" ItemAttributes { ItemName "The Family Business" "auto fires full clip" 1 "auto fires when full" 1 "is_festivized" 1 "faster reload rate" 0.75 "damage penalty" 0.5 "fire rate bonus" 0.25 } } //A Crossbow Medic that aims a little cleverly! T_TFBot_Medic_Crossbow { Class Medic Name "Candy Crossbow Medic" Item "Brain Cane" Item "Festive Crusader's Crossbow" WeaponRestrictions PrimaryOnly AimAt Body AimOffset "0 0 10" Action FetchFlag } //QFix Medic that always ubers. //Heals at the same rate as a fully ramped-up QFix ubercharge! //But, it only heals itself half as fast! T_TFBot_Medic_Superheal { Name "Snowy Superheal Medic" Class Medic Skill Expert Item "Medical Monarch" Item "Professional's Pom Pom" Item "The Quick-Fix" Attributes SpawnWithFullCharge ClassIcon medic_infpop ItemAttributes { ItemName "The Quick-Fix" "is_festivized" 1 "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 } ItemAttributes { ItemName "Medical Monarch" "item style override" 2 } CharacterAttributes { "bot medic uber health threshold" 160 } } //QFix Medic that always ubers, AND has a shield. //An absurd bot type, frankly. T_TFBot_Medic_Superheal_Shield { Name "Insulated Superheal Medic" Class Medic Skill Expert Item "Medical Monarch" Item "Professional's Pom Pom" Item "The Quick-Fix" Attributes SpawnWithFullCharge ClassIcon medic_shield_infpop ItemAttributes { ItemName "The Quick-Fix" "is_festivized" 1 "generate rage on heal" 1 //You do NOT want this to have lvl 2 shield. "increase buff duration" 4 //Shoot in spawn to shorten the shield slightly! "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 } ItemAttributes { ItemName "Medical Monarch" "item style override" 2 } CharacterAttributes { "bot medic uber health threshold" 160 } } T_TFBot_Medic_BigHealKritzUber { Class Medic Name "Winter-Prepped Medic" MaxVisionRange 1000 ClassIcon medic_uber_critcan Item "Battery Canteens" Item "Festive Medigun 2011" ItemAttributes { ItemName "Festive Medigun 2011" "heal rate bonus" 10 "ubercharge rate bonus" 5 "uber duration bonus" -2 //Just to make you feel better. "canteen specialist" 1 } ItemAttributes { ItemName "Battery Canteens" "critboost" 1 "powerup charges" 1 } } //A human Huntsman Sniper. Chases after players instead of the bomb! T_TFBot_Sniper_Huntsman_Mobber { Template T_TFBot_Sniper_Huntsman Name "Holiday Hunter" Item "Festive Huntsman" Item "Poacher's Safari Jacket" Item "EOTL_hiphunter_hat" //Winter Woodsman Action Mobber UseHumanModel 1 } //A rather heal-oriented Bowman, intended to function..as a Sniper. T_TFBot_Sniper_Huntsman_Camper { Template T_TFBot_Sniper_Huntsman Name "Outdoorsy Survival Sniper" ClassIcon sniper_bow_heal MaxVisionRange 2000 Item "Festive Huntsman" ITem "Cozy Camper" Item "Upgradeable TF_WEAPON_CLUB" Item "Tropical Camo" Item "The Fruit Shoot" Action Mobber UseHumanModel 1 ItemAttributes { ItemName "Festive Huntsman" "heal on hit for rapidfire" 25 "heal on kill" 25 } ItemAttributes { ItemName "Upgradeable TF_WEAPON_CLUB" "is_festivized" 1 "heal on hit for rapidfire" 25 } } //A Sniper with a fast-firing SMG to spray down enemies! //Scary, but dodgable thanks to its lesser aim. T_TFBot_Sniper_SMG_Burst { Class Sniper Name "Sun-tanned Sniper" Skill Normal MaxVisionRange 1200 WeaponRestrictions SecondaryOnly //AimTrackingInterval 0.4 //Optional nerf ClassIcon sniper_smg_tind Item "Festive SMG 2014" Item "Tropical Camo" ItemAttributes { ItemName "Festive SMG 2014" "fire rate bonus" 0.5 "reload time increased" 1.3 "clip size penalty" 0.8 } } //A simple Cozy Camper Sniper that heals off chip damage. T_TFBot_Sniper_Cozy { Template T_TFBot_Sniper Name "Cozy Sniper" ClassIcon sniper_heal //Looks a little better than _camper Item "Festive Sniper Rifle 2011" Item "Cozy Camper" Item "Upgradeable TF_WEAPON_CLUB" Item "Tropical Camo" ItemAttributes { ItemName "Tropical Camo" "item style override" 1 } ItemAttributes { ItemName "Upgradeable TF_WEAPON_CLUB" "is_festivized" 1 } } T_TFBot_Spy_Amby { Class Spy Name "Festivity Spy" Item "Festive Ambassador" // Item "The Cut-Throat Concierge" Item "Towering Pile Of Presents" Action Sniper AimAt Head } /////////////////////////////////////////////////////////////////// /////////////////////// Giant Bots /////////////////////// /////////////////////////////////////////////////////////////////// T_TFBot_Giant_Scout_Teleporter { Template T_TFBot_Giant_Scout Name "Giant Thawing Teleporter Scout" ClassIcon teleporter_seel //scout_ambush as alternative WeaponRestrictions MeleeOnly Item "Telefragger Toque" Item "Robin Walkers" Item "EOTL_Insulated_innovator" //Insulated Inventor Item "The Jag" ItemAttributes { ItemName "The Jag" "is_festivized" 1 } ItemAttributes { ItemName "Robin Walkers" "custom item model" "models/buildables/teleporter_blueprint_exit.mdl" "attachment name" "flag" } SpawnTemplate "PortableTeleport" } //Colonel Barrage taken a step down. T_TFBot_Giant_Soldier_Barrage { Name "Giant Blizzard Barrage Soldier" Class Soldier Skill Expert Health 4000 Attributes MiniBoss Attributes HoldFireUntilFullReload ClassIcon soldier_barrage Item "Climbing Commander" Item "eotl_winter_coat" //Cold Snap Coat ItemAttributes { ItemName "tf_weapon_rocketlauncher" "faster reload rate" 0.4 //V2 has .3 "clip size upgrade atomic" 11 "fire rate bonus" 0.2 "Projectile speed increased" 0.5 //V2 has .6 "projectile spread angle penalty" 5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } } //A Giant Soldier that fires 3 rockets at once, with "escorts" around 'm! T_TFBot_Giant_Soldier_Escort { Template T_TFBot_Giant_Soldier Name "Giant Snow Spirit Soldier" SpawnTemplate { Name EscortRockets Bone bip_head } ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "faster reload rate" 0 // "attach particle effect static" 3040 } UseHumanAnimations 1 CharacterAttributes { "attach particle effect" 3040 } ShootTemplate { Name "EscortRocketsFire" ItemName "TF_WEAPON_ROCKETLAUNCHER" } } T_TFBot_Giant_Pyro_Backburner { Template T_TFBot_Giant_Pyro ClassIcon pyro_backburner_nys Name "Giant Backburner Pyro" DesiredAttackRange 200 Item "Pyro the Flamedeer" Item "Festive Backburner 2014" Attributes AlwaysFireWeapon ItemAttributes { ItemName "Festive Backburner 2014" "flame_drag" 6 //30% more range "flame_spread_degree" 1.4 //50% less spread } } //A fast giant pyro that heals a fair bit on hit! T_TFBot_Giant_Pyro_Powerjack { Template T_TFBot_Giant_Pyro Name "Giant Powerjack Pyro" Item "The Attendant" Item "The Powerjack" ClassIcon pyro_powerjack_heal_giant WeaponRestrictions MeleeOnly ItemAttributes { ItemName "The Powerjack" "move speed bonus" 1 "is_festivized" 1 "heal on hit for slowfire" 250 "heal on kill" 500 } CharacterAttributes { "move speed bonus" 0.65 } } //A Giant Milky Burst Demo! Fires explosive milk bottles that, well, coat you in milk. //Useful support! T_TFBot_Giant_Demo_Burst_Milky { Class Demoman Name "Giant Wave Crasher Demo" Skill Normal //That's right! Their aim is pretty dang off, for forgiveness Health 3500 ClassIcon demo_burst_milky Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" Item "The Milkman" Attributes HoldFireUntilFullReload Attributes MiniBoss ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "paintkit_proto_def_index" 130 //bovine blazemaker bc I am very funny "set_item_texture_wear" 0 "add cond on hit" 27 "add cond on hit duration" 4 "grenade explode on impact" 1 "custom projectile model" "models\weapons\c_models\c_madmilk\c_madmilk.mdl" "explosion particle" "peejar_impact_milk" "projectile trail particle" "~peejar_trail_blu" "custom impact sound" "=35|weapons/jar_explode.wav" "fire rate bonus" 0.1 "faster reload rate" 0.45 "clip size upgrade atomic" 6 "blast radius decreased" 0.6 "projectile spread angle penalty" 2 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 4 } } //A Giant Demoknight that uses a cool "phalanx" attack! //Inspired by Elden Ring's Glintblade Phalanx, naturally. T_TFBot_Giant_Demoknight_Swordshot { Template T_TFBot_Giant_Demoman Name "Giant Frostblade Demo" ClassIcon demoknight_festive WeaponRestrictions MeleeOnly Item "Festive Eyelander" Item "The Hood of Sorrows" AimAt Head FireInput { Target sword_mimic* Action FireOnce Delay 5 IfSeeTarget 1 Repeats 0 Cooldown 4.5 //1.5 second reaction time } SpawnTemplate { Name "SwordSummons" Bone "bip_head" Origin "0 -40 0" } SpawnTemplate { Name "SwordSummons" Bone "bip_head" Origin "20 -10 0" } SpawnTemplate { Name "SwordSummons" Bone "bip_head" Origin "-20 -10 0" } ShootTemplate { Name "SwordProp" ItemName "Sword Shooter" AttachToProjectile 1 } } //A Giant Demo that shoots explode-on-impact pipes, quite quickly! //However, it reloads just as slow as a regular demo. T_TFBot_Giant_Demoman_Iron { Template T_TFBot_Giant_Demoman Name "Giant Bomber Demoman" Item "The Iron Bomber" Item "The Bomber Knight" ClassIcon demo_ironbomber_lite ItemAttributes { ItemName "The Iron Bomber" "grenade explode on impact" 1 "fire rate bonus" 0.5 "is_festivized" 1 } } //A Burst Fire Demo using the Loch-n-Load! Not as spammy, //but very scary for engineers and players at range! T_TFBot_Giant_Demo_Burst_Loch { Name "Giant Burst Loch Demoman" ClassIcon demo_loch Item "The Loch-n-Load" Item "Scotch Bonnet" ItemAttributes { ItemName "The Loch-n-Load" "is_festivized" 1 "faster reload rate" 0.6 "fire rate bonus" 0.15 "clip size upgrade atomic" 5 "projectile spread angle penalty" 1 "projectile speed increased" 1 } } //A Giant Shotgun Heavy with a portable projectile shield, protecting it //from direct frontal attacks. Quite scary! T_TFBot_Giant_Heavy_Shotgun_Shield { Template T_TFBot_Giant_Heavyweapons_Shotgun Name "Giant Insulated Shotgun Heavy" Item "Festive Shotgun 2014" Item "dec2014 heavy_parka" Item "Paka Parka" //heha parka 2x SpawnTemplate ProjShield AimTrackingInterval 0.22 //Slightly better than Normal but slower than Hard ClassIcon heavy_shotgun_armored //alt: heavy_shotgun_shield ItemAttributes { ItemName "Festive Shotgun 2014" "damage penalty" 0.5 "fire rate penalty" 2.5 "bullets per shot bonus" 8 //Slight nerf to make it more bearable. "faster reload rate" 0.1 } } T_TFBot_Giant_Heavy_Sandvich { Template T_TFBot_Giant_Heavyweapons Name "Giant Picnic Heavy" Health 5500 Item "Festive Minigun 2011" Item "Festive Sandvich" Item "Heavy Tourism" Item "Summer Hat" ClassIcon heavy_robosandvich_nys UseHumanAnimations 1 FireInput { Target !activator Action $SetProp$m_iAmmo$4 Param 1 IfHealthBelow 3000 Repeats 2 Cooldown 15 Delay 0.5 } FireInput { Target !activator Action $SetProp$m_iAmmo$4 Param 0 IfHealthAbove 3001 Repeats 0 Cooldown 2.5 Delay 0.5 } ItemAttributes { ItemName "Festive Minigun 2011" "provide on active" 1 "mod minigun can holster while spinning" 1 "single wep holster time increased" 0.2 "damage bonus" 1.5 } ItemAttributes { ItemName "Festive Sandvich" "provide on active" 1 "alt-fire disabled" 1 //fixed by rafmod "lunchbox healing decreased" 20 //20 * 300 = 6000 "gesture speed increase" 0.75 "dmg from ranged reduced" 0.75 "dmg from melee increased" 1.3 //I thought this was cute. "max health additive bonus" 1 //just in case. "always allow taunt" 1 //Prevent some edge cases. } } T_TFBot_Giant_Engineer_Ranger { Class Engineer Name "Giant Winter Ranger Engie" Health 2500 Attributes MiniBoss Action FetchFlag ClassIcon engineer_ranger_nys Item "The Rescue Ranger" Item "The Dogfighter" Item "The Trash Toter" ItemAttributes { ItemName "The Rescue Ranger" "fire rate bonus" 0.75 "faster reload rate" 0 "damage bonus" 1.25 } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 } } T_TFBot_Giant_Sniper_Bow_Multi { Class Sniper Name "Giant Arrow Artist Bowman" Health 2500 Skill Expert Attributes MiniBoss ClassIcon sniper_bow_scatter Item "Festive Huntsman" Item "The Swagman's Swatter" UseCustomModel "models/bots/sniper_boss/bot_sniper_boss.mdl" ItemAttributes { ItemName "Festive Huntsman" "arrow mastery" 2 //5 arrows "faster reload rate" 0.75 } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 } } T_TFBot_Giant_Sniper_Bow_Rain { Class Sniper Name "Giant Arrow Blizzard Bowman" Health 2750 Skill Expert Attributes MiniBoss ClassIcon sniper_bow_barrage AimOffset "0 0 40" AimLeadProjectileSpeed 1 AimAt Head Item "Festive Huntsman" Item "The Cold Killer" Item "Down Tundra Coat" UseCustomModel "models/bots/sniper_boss/bot_sniper_boss.mdl" ItemAttributes { ItemName "Festive Huntsman" "reload time increased" 1.2 "damage penalty" 0.75 //Slightly less total dmg at longer ranges if you get hit by a 2nd "arrow" "projectile speed decreased" 0.35 "arrow hit kill time" 0.01 } ShootTemplate { Name "ArrowRain" ItemName "Festive Huntsman" AttachToProjectile 1 } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 } } T_TFBot_Giant_Sniper_SMG { Class Sniper Name "Giant Sun-tanned Sniper" Health 2500 Skill Hard Attributes MiniBoss MaxVisionRange 1200 ClassIcon sniper_smg_tind_giant WeaponRestrictions SecondaryOnly Item "Festive SMG 2014" Item "Hawaiian Hunter" Item "Tropical Camo" UseCustomModel "models/bots/sniper_boss/bot_sniper_boss.mdl" ItemAttributes { ItemName "Festive SMG 2014" "damage bonus" 1.25 "reload time decreased" 0 } ItemAttributes { ItemName "Hawaiian Hunter" "item style override" 1 } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 } } T_TFBot_Giant_Sniper_Shah { Class Sniper Health 2000 Name "Super Shahanshah Sniper" Skill Expert Item "The Shahanshah" ClassIcon sniper_jug_shahanshah Attributes MiniBoss WeaponRestrictions MeleeOnly UseCustomModel "models/bots/sniper_boss/bot_sniper_boss.mdl" ItemAttributes { ItemName "The Shahanshah" "is_festivized" 1 "fire rate penalty" 1.25 //Allows you to take a shot at going in more safely. "melee range multiplier" 1.25 //48 -> 60 HU "dmg bonus while half dead" 1.5 "move speed as health decreases" 1.3 //195 + (19.5 * 3 = 58.5) -> 253.5 HU/s } CharacterAttributes { "move speed penalty" 0.65 //195 hu/s "damage force reduction" 0.65 "airblast vulnerability multiplier" 0.65 } } T_TFBot_Giant_Sniper_Shah_SpeedCan { Class Sniper Health 2000 Name "Super Shahanshah Sniper" Skill Expert Item "The Shahanshah" ClassIcon sniper_jug_shah_speedcan Attributes MiniBoss UseCustomModel "models/bots/sniper_boss/bot_sniper_boss.mdl" ItemAttributes { ItemName "The Shahanshah" "is_festivized" 1 "fire rate penalty" 1.25 //Allows you to take a shot at going in more safely. "melee range multiplier" 1.25 //48 -> 60 HU "dmg bonus while half dead" 1.5 } CharacterAttributes { "move speed penalty" 0.65 //195 hu/s "damage force reduction" 0.65 "airblast vulnerability multiplier" 0.65 } FireInput { Target player Action $PlaySoundToSelf Param "=35|mvm/mvm_used_powerup.wav" Delay 0.1 IfHealthBelow 1200 } FireInput { Target player Action $DisplayTextChat Param "{blue}{activator} {FBEBCA}has used their {9BBF4D}SPEED BOOST {reset}Power Up Canteen!" Delay 0.1 IfHealthBelow 1200 } AddAttribute { Item "Player" Name "move speed penalty" Value 0.85 //255 hu/s Delay 0.12 IfHealthBelow 1200 } } //A big ol' Giant Shield Medic! Like the small one, no ubercharge, for forgiveness! T_TFBot_Giant_Medic_Shield { Class Medic Name "Giant Insulated Medic" Health 4500 ClassIcon medic_shield_lite Item "The Quick-Fix" Item "Battle Boonie" // Item "Coldfront Commander" // Item "Coldfront Carapace" Attributes SpawnWithFullCharge Attributes ProjectileShield // Attributes IgnoreEnemies Attributes MiniBoss CharacterAttributes { "increase buff duration" 19 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "move speed penalty" 0.5 } ItemAttributes { ItemName "The Quick-Fix" "is_festivized" 1 "heal rate bonus" 200 "generate rage on heal" 2 "ubercharge rate bonus" -1 } } /////////////////////////////////////////////////////////////////// /////////////////////// Chief Bots /////////////////////// /////////////////////////////////////////////////////////////////// T_TFBot_Chief_Loretta { Class Sniper Name "Lowrietta, Hunter of Winter" Health 22000 Skill Expert Attributes MiniBoss Attributes UseBossHealthBar ClassIcon sniper_bow_multi_homing_sticky Item "The Centurion" Item "The Huntsman's Essentials" Item "The Archers Groundings" Item "eotl_winter_coat" //Cold Snap Coat Item "Down Tundra Coat" Item "Festive Huntsman" Item "The Shahanshah" UseCustomModel "models/bots/sniper_boss/bot_sniper_boss.mdl" SpawnTemplate "StickyMimic" FireInput { Target popscript Action "$StickyMimicActivate" Delay 15 Cooldown 8 } ItemAttributes { ItemName "Festive Huntsman" "arrow mastery" 2 //5 arrows "faster reload rate" 1.2 "damage bonus" 1.2 "mod projectile heat seek power" 60 "mod projectile heat aim time" 1 "mod projectile heat follow crosshair" 1 "projectile speed decreased" 0.5 "projectile acceleration" 2600 "projectile acceleration time" 0.5 } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "rage giving scale" 0.25 } } T_TFBot_Chief_Scout_Recall { Template T_TFBot_Giant_Scout Name "Giant Snowblitz Scout" Health 1600 Skill Expert //Redefined for clarity Item "Blizzard Britches" Item "Death Racer's Helmet" Item "Weight Room Warmer" Item "Memes vs Machines Creator 2019" Item "Festive Bat 2011" // ClassIcon powerup_vampire_lite ClassIcon scout_giant_fast Attributes DisableDodge Attributes UseBossHealthBar WeaponRestrictions MeleeOnly ItemAttributes { ItemName "Festive Bat 2011" "heal on kill" 800 "health regen" 20 } AddCond { Index 94 } AddCond { Index 129 } //Removes dmg resist EventChangeAttributes { Default { CharacterAttributes { "cannot pick up intelligence" 0 } } Recharging { Attributes IgnoreFlag CharacterAttributes { "cannot pick up intelligence" 1 } } } SpawnTemplate KillPowerupsOnDeath SpawnTemplate { Name "RecallBot" Params { RechargeTime "20" } } } T_TFBot_Chief_Demo_Recall { Template T_TFBot_Giant_Demoman Name "Giant Hailstorm Demo" Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" Item "The Bomber Knight" Item "EOTL_hiphunter_jacket" //Snow Sleeves Item "Canteen Crasher Gold Uber Medal 2018" Item "Festive Grenade Launcher" // ClassIcon powerup_haste_lite ClassIcon demo_burst_giant Attributes UseBossHealthBar Attributes HoldFireUntilFullReload ItemAttributes { ItemName "Festive Grenade Launcher" "fire rate bonus" 0.1 "faster reload rate" 0.6 "projectile speed increased" 1.1 "clip size upgrade atomic" 6 //14 total grenades "projectile spread angle penalty" 2 } AddCond { Index 91 } EventChangeAttributes { Default { CharacterAttributes { "cannot pick up intelligence" 0 } } Recharging { Attributes IgnoreFlag CharacterAttributes { "cannot pick up intelligence" 1 } } } SpawnTemplate KillPowerupsOnDeath SpawnTemplate { Name "RecallBot" Params { "RechargeTime" "25" } } } //Royal Ravager, a King-boosted Giant Heavy! T_TFBot_Chief_Heavy_Recall { Template T_TFBot_Giant_Heavyweapons Name "Royal Ravager" Item "Class Crown" Item "Commissar's Coat" Item "Madness vs Machines Chaotic Crystal 2019" Item "Festive Minigun 2011" // ClassIcon powerup_king_lite Attributes UseBossHealthBar ItemAttributes { ItemName "Festive Minigun 2011" "damage bonus" 1.3 //Fire rate bonus is about 16.7%, which gets rounded up to once every 6 ticks still //1.3 * 1.16 = ~1.5 total damage bonus, roughly. //But the higher fire rate may make it a bit stronger vs resists, aye? } AddCond { Index 109 } EventChangeAttributes { Default { CharacterAttributes { "cannot pick up intelligence" 0 } } Recharging { Attributes IgnoreFlag CharacterAttributes { "cannot pick up intelligence" 1 } } } SpawnTemplate KillPowerupsOnDeath SpawnTemplate { Name "RecallBot" Params { RechargeTime "30" } } } //The final boss, Eternity Served Cold. A Homestuck *and* computer reference, gottem! //PHASE 1 - FRONT //- Arrow Rain: fires arrows that "rain down" additional arrows, interrupting players. //- If players are too close, it triggers a Rejection attack, launching them back and dealing some damage. //PHASE 2 - MID //- Alternates between sniping players and chasing them down with melee. //- For now, only tries to snipe players. //- Every so often, particle effect starts, then does a taunt which triggers a Reverse Gravity attack. // Lifted players take more damage before being strongly slammed down; buildings are disabled. //PHASE 3 - HATCH //- Spams down players with T_TFBot_Chief_ESC { Name "Eternity Served Cold" Health 75000 Class Sniper Skill Expert Attributes MiniBoss Attributes UseBossHealthBar Action Mobber Item "Bedouin Bandana" Item "The Triggerman's Tacticals" Item "The Snow Scoper" ClassIcon sniper_jug_king UseCustomModel "models/bots/sniper_boss/bot_sniper_boss.mdl" AlwaysGlow 1 SpawnTemplate BossEntities ShootTemplate { Name "ArrowRain" ItemName "Festive Huntsman" AttachToProjectile 1 } ItemAttributes { ItemName "Bedouin Bandana" "set item tint rgb" 15132390 "attach particle effect" 30 //Blizzardy Storm } CharacterAttributes { "move speed penalty" 0.4 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "health regen" 25 "rage giving scale" 0.25 } ChangeAttributes { Name "Phase2" Delay 1 Repeats 1 IfHealthBelow 70000 } FireInput { Target "boss_logic" Action FireUser1 Delay 0 Repeats 1 IfHealthBelow 70000 } ChangeAttributes { Name "Phase3" Delay 1 Repeats 1 IfHealthBelow 30000 } FireInput { Target "boss_logic" Action FireUser2 Delay 0 Repeats 1 IfHealthBelow 30000 } //Special attack: Rejection FireInput { Target "boss_particle_rejection" Action "Start" Delay 8 Cooldown 8 } FireInput { Target "popscript" Action "$Rejection" Delay 10 Cooldown 8 } FireInput { Target "boss_particle_rejection" Action "Stop" Delay 10 Cooldown 8 } EventChangeAttributes { Default //Phase 1 { Item "Festive Huntsman" ItemAttributes { ItemName "Festive Huntsman" "reload time increased" 1.2 "damage penalty" 0.75 //Slightly less total dmg at longer ranges if you get hit by a 2nd "arrow" "projectile speed decreased" 0.35 "arrow hit kill time" 0.01 } InterruptAction { Target "boss_target_front" Delay 5 Cooldown 14 Duration 7 } } Phase2 { Item "Festive Sniper Rifle 2011" AimAt Body AimLeadProjectileSpeed 5000 Attributes SuppressFire ItemAttributes { ItemName "Festive Sniper Rifle 2011" "damage bonus" 2 "sniper charge per sec" 3 //max rate: takes 1.8 secs to fully charge "projectile penetration heavy" 2 } InterruptAction { Target "boss_target_mid" Delay 5 Cooldown 21 //Less frequently leashed Duration 7 } //Firing mechanics FireWeapon { Delay 2 Cooldown 5.6 Repeats 1 Type "Secondary" } FireWeapon { Delay 4 Cooldown 5.6 Repeats 0 Type "Primary" } //Special attack Taunt { Delay 15 Cooldown 25 } FireInput { Target "boss_particle_gravity*" Action "Start" Delay 15 Cooldown 25 } FireInput { Target "boss_prop_gravity" Action "Enable" Delay 15 Cooldown 25 } // FireInput // { // Target "player" // Action "$DisplayTextChat" // Param "Testing Gravity!" // Delay 16 // Cooldown 25 // } FireInput { Target "boss_trigger_gravity" Action "Enable" Delay 17 Cooldown 25 } FireInput { Target "boss_trigger_gravity" Action "Disable" Delay 17.2 Cooldown 25 } FireInput { Target "boss_particle_gravity*" Action "Stop" Delay 17.5 Cooldown 25 } FireInput { Target "boss_prop_gravity" Action "Disable" Delay 17.5 Cooldown 25 } } Phase3 { AimTrackingInterval 0.15 WeaponRestrictions SecondaryOnly Item "Festive SMG 2014" ItemAttributes { ItemName "Festive SMG 2014" "damage bonus" 1.5 "bullets per shot bonus" 4 "weapon spread bonus" 1.5 "fire rate bonus" 0.7 "clip size bonus" 1.2 "faster reload rate" 0.75 } Taunt { Delay 10 Cooldown 15 } FireInput { Target popscript Action $LightningStrike Repeats 0 Delay 10 Cooldown 15 } InterruptAction { Target "boss_target_hatch" Delay 5 Cooldown 12 Duration 5 } } } } } ExtraSpawnPoint { Name "spawnbot_ally1" X -250 Y 1100 Z 80 TeamNum 3 } ExtraSpawnPoint { Name "spawnbot_ally2" X -253 Y 1225 Z 80 TeamNum 3 } ExtraSpawnPoint { Name "spawnbot_limited" StartDisabled 0 X -7464 Y -288 Z 250 TeamNum 3 } ExtraSpawnPoint { Name "spawnbot_undying_front" StartDisabled 0 X -7464 Y -460 Z 250 TeamNum 3 } ExtraSpawnPoint { Name "spawnbot_undying_mid" StartDisabled 1 X -7464 Y -460 Z 250 TeamNum 3 } ExtraSpawnPoint { Name "spawnbot_undying_hatch" StartDisabled 1 X -7464 Y -460 Z 250 TeamNum 3 } //Busters W1+2 Mission { Objective DestroySentries Where spawnbot InitialCooldown 10 //move better CooldownTime 40 BeginAtWave 1 RunForThisManyWaves 2 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster Attributes DisableDodge Attributes IgnoreEnemies } } //Busters W3 Mission { Objective DestroySentries Where spawnbot InitialCooldown 15 CooldownTime 45 BeginAtWave 3 RunForThisManyWaves 1 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster Attributes DisableDodge Attributes IgnoreEnemies } } //Rocket-jumping Soldiers W2 Mission { Objective Sniper Where spawnbot_mission_sniper InitialCooldown 20 CooldownTime 60 BeginAtWave 2 RunForThisManyWaves 1 DesiredCount 2 TFBot { Template T_TFBot_Soldier_AirStrike } } Mission { Objective Spy Where spawnbot_mission_sniper InitialCooldown 25 CooldownTime 65 BeginAtWave 3 RunForThisManyWaves 1 DesiredCount 2 TFBot { Template T_TFBot_Spy AimTrackingInterval 0.25 //haha yes, the good aim Name "Arctic Spy" // Item "dec2014 The Puffy Provocateur" This stretches :< Item "Frostbite Bonnet" Item "Festive Knife" Item "Festive Revolver 2014" ItemAttributes { ItemName "Festive Revolver 2014" "auto fires when full" 1 } } } //Wave 1 //Payout: $1500 + $100 bonus //Subwave 1: Let's break open the defense //SPOTLIGHT: Superheal Medic; force team to focus fire on single target. //- Giant Backburner Pyro (extended range, decreased spread) //- Giant Backburner Pyro (extended range, decreased spread) + Superheal Medic (dps check!) //- Shotgun Soldiers, Burst Business Heavies (2:1) (multiclass, burst spawns) //Subwave 2: Advantage pushing! //CHALLENGE: fast bomb pressure. //This subwave has a lot of melee bots, pushing the most after the sentry had to be moved. //The buster played a major role in that, though Yuugi didn't seem to struggle too harshly as engie? //- Giant Fast Fire Demoman (Bomber; explode-on-impact) //- Giant Powerjack Pyro (functions as attention-puller) //- Bonk! Fish Scouts (constant swarms; excellent ground-coverer) //- Armored FaN Scouts (solo spawns; further advantage pusher and burst damage threat) //- TO CONSIDER: Soldiers (main damage threat, but mostly for buildings!) //- TO CONSIDER: Armored Ornament Scout (burst spawns + solo spawns) //Subwave 4: DPS check! Giants provide consistent damage pressure, //while commons can slip through and deal with dodgers! //Also makes taking out the Superheals far trickier! //CHALLENGE: Superheal Medic with spammier giant //- Giant Barrage Soldier + Superheal Medics //- Feisty Flamer Pyro //Subwave 5: And the strong with the strong. //SPOTLIGHT: Giant Shielded Shotgun Heavy, preventing most typical approaches. //This subwave resembles the prior subwave in approach. Find a way to twist it around better; //Consider using a tank or a hitscan giant! //Commons provide a need for red to focus fire on them, while not dealing well with sentries. //The giant should be able to take those down well; Giant Shotgun, perchance? //- Giant Powerjack Pyro (additional push force!) //- Giant Insulated Shotgun Heavy (has a (temporary) projshield!) //- Burst Detonator Pyros //- RED Support: crossbow medics! Aim and shoot at Players every so often. //OLD: healy amputator medics and demoknights! function as distraction for the strong giants //however, can be taken out by the supporting bots. //This might not work as well because of them being a potential distraction for spies and other close-range classes! //Support: Powerjack Pyros (less bomb slow down) SpawnTemplate GravityManip SpawnTemplate NoTimerOnReset Wave { Explanation { Line "{F8EB00}The bomb will only reset {FF0000}>> ONCE <<{F8EB00} per wave!" Line "{F8EB00}During this wave, you will have ally {red}Crossbow Medics{F8EB00} to heal you." } StartWaveOutput { Target wave_start_relay_endurance Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } SpawnTemplate SecondBomb WaveSpawn { Name "wave1a" Where spawnbot_flank //side spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Pyro_Backburner } } WaveSpawn { Name "wave1a2" Where spawnbot WaitBeforeStarting 0.5 WaitBetweenSpawns 4 TotalCount 24 MaxActive 12 SpawnCount 3 TotalCurrency 120 Squad { NoFormation 1 TFBot { Template T_TFBot_Heavy_Business_Burst } TFBot { Template T_TFBot_Soldier_Shotgun } TFBot { Template T_TFBot_Soldier_Shotgun } } } WaveSpawn { Name "wave1a3" WaitForAllDead "wave1a" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Pyro_Backburner } } WaveSpawn { Name "wave1a3" WaitForAllDead "wave1a" WaitBeforeStarting 15 Where spawnbot_flank TotalCount 2 MaxActive 2 SpawnCount 2 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Pyro_Backburner } TFBot { Template T_TFBot_Medic_Superheal } } } WaveSpawn { Name "wave1b" WaitForAllDead "wave1a3" Where spawnbot WaitBetweenSpawnsAfterDeath 20 TotalCount 2 MaxActive 1 SpawnCount 1 TotalCurrency 80 TFBot { Template T_TFBot_Giant_Demoman_Iron } } WaveSpawn { Name "wave1b2" WaitForAllDead "wave1a2" Where spawnbot WaitBetweenSpawns 6 TotalCount 12 MaxActive 4 SpawnCount 2 TotalCurrency 60 TFBot { Template T_TFBot_Scout_FaN_Armored } } WaveSpawn { Name "wave1b2" WaitForAllDead "wave1a2" Where spawnbot WaitBetweenSpawns 4 TotalCount 48 MaxActive 12 SpawnCount 4 TotalCurrency 80 TFBot { Template T_TFBot_Scout_Bonk_Fish } } WaveSpawn { Name "wave1b3" WaitForAllDead "wave1a3" Where spawnbot_flank WaitBetweenSpawns 15 TotalCount 3 MaxActive 2 SpawnCount 1 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Pyro_Powerjack } } //Scrap this part, potentially // WaveSpawn // { // Name "wave1c" // WaitForAllDead "wave1b" // Where spawnbot // Where spawnbot_flank // WaitBetweenSpawns 6 // TotalCount 2 // MaxActive 2 // SpawnCount 1 // TotalCurrency 160 // TFBot // { // Template T_TFBot_Giant_Demoman_Iron // } // } // WaveSpawn // { // Name "wave1c2" // WaitForAllDead "wave1b2" // Where spawnbot // WaitBetweenSpawns 6 // TotalCount 24 // MaxActive 6 // SpawnCount 3 // TotalCurrency 120 // TFBot // { // Template T_TFBot_Scout_Sandman_Armored // } // } //Ensure these bots do not stack on eachother, trivializing the subwave when focused down! WaveSpawn { Name "wave1d" WaitForAllDead "wave1b" Where spawnbot_flank WaitBetweenSpawns 18 TotalCount 2 MaxActive 2 SpawnCount 2 TotalCurrency 80 Squad { TFBot { Template T_TFBot_Giant_Soldier_Barrage } TFBot { Template T_TFBot_Medic_Superheal } } } WaveSpawn { Name "wave1d" WaitForAllDead "wave1b" Where spawnbot_flank WaitBeforeStarting 12 WaitBetweenSpawns 18 TotalCount 2 MaxActive 2 SpawnCount 2 TotalCurrency 80 Squad { TFBot { Template T_TFBot_Giant_Soldier_Barrage } TFBot { Template T_TFBot_Medic_Superheal } } } WaveSpawn { Name "wave1d2" WaitForAllDead "wave1b2" Where spawnbot WaitBetweenSpawns 6 TotalCount 24 MaxActive 12 SpawnCount 3 TotalCurrency 120 TFBot { Class Scout Skill Normal Name "Sleigh-stop Scout" Item "The Shortstop" Item "The Caribou Companion" ClassIcon scout_shortstop ItemAttributes { ItemName "The Shortstop" "is_festivized" 1 } } } //Subwave 5: And the strong with the strong. //- Giant Burst Fire Demo (Bomber; explode-on-impact; + Superheal Medics) //- Giant Backburner Pyro + Superheal Medic //- Burst Detonator Pyros WaveSpawn { Name "wave1e1" WaitForAllDead "wave1d" WaitBeforeStarting 2 Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 25 TFBot { Template T_TFBot_Giant_Demo_Burst Item "Festive Grenade Launcher" Item "dec2014 Comforter" //Scot Bonnet ItemAttributes { ItemName "Festive Grenade Launcher" "fire rate bonus" 0.1 "faster reload rate" 0.65 "projectile spread angle penalty" 4 "projectile speed increased" 1.1 "clip size upgrade atomic" 6 } FireWeapon { Delay 0.1 Repeats 1 Type "Reload" } } } WaveSpawn { Name "wave1e" WaitForAllDead "wave1d" WaitBeforeStarting 15 Where spawnbot Where spawnbot_flank TotalCount 3 MaxActive 3 SpawnCount 3 TotalCurrency 150 Squad { TFBot { Template T_TFBot_Giant_Pyro_Backburner } TFBot { Template T_TFBot_Heavy_Business_Burst } TFBot { Template T_TFBot_Heavy_Business_Burst } } } WaveSpawn { Name "wave1e" WaitForAllSpawned "wave1d" WaitBeforeStarting 25 Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 TotalCurrency 75 Squad { TFBot { Template T_TFBot_Giant_Demo_Burst Item "Festive Grenade Launcher" Item "dec2014 Comforter" //Scot Bonnet ItemAttributes { ItemName "Festive Grenade Launcher" "fire rate bonus" 0.1 "faster reload rate" 0.65 "projectile spread angle penalty" 4 "projectile speed increased" 1.1 "clip size upgrade atomic" 6 } FireWeapon { Delay 0.1 Repeats 1 Type "Reload" } } TFBot { Template T_TFBot_Medic_Superheal } TFBot { Template T_TFBot_Medic_Superheal } } } WaveSpawn { Name "wave1e3" WaitForAllDead "wave1e1" WaitForAllSpawned "wave1e" WaitBeforeStarting 10 Where spawnbot_flank TotalCount 3 MaxActive 3 SpawnCount 3 TotalCurrency 150 FirstSpawnOutput { Target bomb2_enable_relay Action Trigger Delay -1 } Squad { TFBot { Template T_TFBot_Giant_Heavy_Shotgun_Shield } TFBot { Template T_TFBot_Heavy_Business_Burst } TFBot { Template T_TFBot_Heavy_Business_Burst } } } WaveSpawn { Name "wave1e2" WaitForAllDead "wave1d2" Where spawnbot Where spawnbot_flank WaitBetweenSpawns 5 TotalCount 12 MaxActive 6 //Only spawns next when 2 die! SpawnCount 4 TotalCurrency 80 TFBot { Template T_TFBot_Pyro_Detonator_Burst } } WaveSpawn { Name "Support" WaitForAllDead "wave1b" Where spawnbot_limited WaitBeforeStarting 1 WaitBetweenSpawns 15 TotalCount 10 MaxActive 2 SpawnCount 1 Support 1 TFBot { Template T_TFBot_Pyro_Powerjack } } WaveSpawn { Name "Red Support" TotalCount 1 MaxActive 1 SpawnCount 1 Support 1 PointTemplate { Name "FakeIcon" ClassIcon red2_lite } } WaveSpawn { Name "Red Support" Where spawnbot_ally1 WaitBeforeStarting 15 WaitBetweenSpawnsAfterDeath 25 TotalCount 50 MaxActive 1 SpawnCount 1 Support 1 TFBot { Template T_TFBot_Red_Medic_Healer Item "Breach and Bomb" Item "Vascular Vestment" Item "The Surgical Survivalist" ItemAttributes { ItemName "Breach and Bomb" "set item tint rgb" 15132390 } } } WaveSpawn { Name "Red Support" Where spawnbot_ally1 WaitBeforeStarting 40 WaitBetweenSpawnsAfterDeath 25 TotalCount 50 MaxActive 1 SpawnCount 1 Support 1 TFBot { Template T_TFBot_Red_Medic_Healer Item "Coldfront Commander" Item "Coldfront Carapace" Item "Quadwrangler" } } } //Wave 2: Australian Christmas! Start: $2450 //Payout: $1500 + 100 bonus - Max Total: $4050 //Summer-like bots, primarily snipers. //Giant Multishot Huntsman, Giant Homing Huntsman (crosshair), Giant Shahanshah Sniper (like Super Scout), Giant Sandvich Heavy, //Giant SMG Sniper, Giant Sun Shield Medic (squadleader?), //Force-a-Cola Scouts, SMGers, //Sunburn Pyro, Air Strike Soldier (drop from behind?) //Main players in this wave are the fast Shahanshah bots, and the hard-to-kill Shield Medics. //Subwave 1 - Quick flanker, push force from main //CHALLENGE+SPOTLIGHT: fast giant, Giant Arrow Mastery Bowman. //- Super Shahanshah Sniper (from flank!) //- Giant Multishot Bowman (arrow mastery) + Burst Carbine Snipers //- Sunburn Pyro (flank) + Armored Demos //Subwave 2 - Be clever with shields, less threats! //CHALLENGE: Giant Shield Medic, tank, and aggressive scouts in players' face, requiring multiple good angles //and focus! //- Giant Sun Shield Medic + Armored Demos //- Tank //MOBBER: //- Sweaty Scouts (mobber/human, burst spawns! use the milk to stay alive >:3) //Subwave 3 - Flank wisely! Players can still somewhat safely approach the giant. //Make this a near-direct extension of the previous subwave! //CHALLENGE: Giant Shield Medic with a dangerous pocket, requiring proper positioning. //- Giant Rapid SMG Sniper (no reload, 1.25x damage) + Giant Sun Shield Medic //- Tropical Sticky Demo //Subwave 4 - //SPOTLIGHT: Mobber Scouts paired with a milky demo! //- Giant Wave Crasher Demo - Milky Demo, huhu! Slightly less damage to compensate for deadly scouts. //- Heatwave Pyro (Fury! Greater range than regular pyros, can interrupt players well) //Subwave 5 - Find opportunities to go in, bomb supported by behind spawns! //SPOTLIGHT: Giant Sandvich Heavy forcing focused fire, with fast giants as bomb pressure // and nasty spawners from behind! //- Giant Picnic Heavy -- Sandvich! Prior to spawning, if near hatch area: reset bomb? //- Super Shahanshah Sniper (to bring bomb forward again!) //Support: Sky Diving Soldiers (as "Snipers"!), Sunburn Pyro after sub 3 //RED Support: "Flexible" Engineers. Use spammy Bison shots during subs 1-3, then revert to buildings //afterwards. //Move to later. //- Giant Arrow Rain Bowman (crosshair) + Uber Medics //- Force-a-Cola Scouts (mobber/human, burst spawns! no minicrit taken, use the milk to stay alive >:3) Wave { StartWaveOutput { Target wave_start_relay_endurance Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } SpawnTemplate "Annotations_W2" //Subwave 1 //- Super Shahanshah Sniper (from flank!) //- Giant Multishot Bowman (arrow mastery) + Burst Carbine Snipers //- Sunburn Pyro (flank) WaveSpawn { Name "wave2a1" Where spawnbot_flank TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 10 TFBot { Template T_TFBot_Giant_Sniper_Shah } } WaveSpawn { Name "wave2a1" WaitBeforeStarting 0.5 //Prevent the small bots from getting the bomb Where spawnbot_flank TotalCount 4 MaxActive 4 SpawnCount 4 TotalCurrency 40 TFBot { Template T_TFBot_Pyro_NoAirblast } } WaveSpawn { Name "wave2a2" Where spawnbot_flank WaitForAllDead "wave2a1" WaitBeforeStarting 10 TotalCount 5 MaxActive 5 SpawnCount 5 TotalCurrency 50 Squad { NoFormation 1 TFBot { Template T_TFBot_Giant_Sniper_Shah } TFBot { Template T_TFBot_Pyro_NoAirblast } TFBot { Template T_TFBot_Pyro_NoAirblast } TFBot { Template T_TFBot_Pyro_NoAirblast } TFBot { Template T_TFBot_Pyro_NoAirblast } } } WaveSpawn { Name "wave2a" Where spawnbot WaitBeforeStarting 0.5 //No WaitBetweenSpawns, spawn the next squad as soon as the prior one's SMGers die TotalCount 12 MaxActive 5 SpawnCount 4 TotalCurrency 240 Squad { NoWaitForFormation 1 //Move smarter! Love this keyvalue. TFBot { Template T_TFBot_Giant_Sniper_Bow_Multi } TFBot { Template T_TFBot_Sniper_SMG_Burst } TFBot { Template T_TFBot_Sniper_SMG_Burst } TFBot { Template T_TFBot_Sniper_SMG_Burst } } } WaveSpawn { Name "wave2a2" Where spawnbot_flank Where spawnbot WaitBeforeStarting 2.5 WaitBetweenSpawns 3 TotalCount 27 MaxActive 9 SpawnCount 3 TotalCurrency 90 Squad { NoFormation 1 TFBot { Template T_TFBot_Demoman_Armored } TFBot { Template T_TFBot_Pyro_NoAirblast } TFBot { Template T_TFBot_Pyro_NoAirblast } } } //Subwave 2 //- Giant Sun Shield Medic + Sunburn Pyros //- Tank //- Tropical Sticky Demo WaveSpawn { Name "wave2b1" Where spawnbot_flank WaitForAllDead "wave2a" TotalCount 3 MaxActive 3 SpawnCount 3 TotalCurrency 150 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Giant_Medic_Shield Name "Giant Sun Shield Medic" Action FetchFlag WeaponRestrictions SecondaryOnly Attributes SuppressFire UseMeleeThreatPrioritization 1 FireWeapon { Type "Special" Delay 0.1 Cooldown 2 IfSeeTarget 0 } } TFBot { Template T_TFBot_Demoman_Armored } TFBot { Template T_TFBot_Demoman_Armored } } } WaveSpawn { Name "wave2bt" WaitForAllDead "wave2a" WaitBeforeStarting 10 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 180 Tank { Health 22000 Name "tankboss" Speed 75 StartingPathTrackNode "tank_path_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "wave2b2" WaitForAllDead "wave2a2" Where spawnbot WaitBetweenSpawns 4 TotalCount 36 MaxActive 9 SpawnCount 3 TotalCurrency 80 TFBot { Template T_TFBot_Demo_Sticky } } //Subwave 3 //- Giant Rapid SMG Sniper (no reload, 1.25x damage) + Giant Sun Shield Medic //- Tropical Sticky Demo WaveSpawn { Name "wave2b" WaitForAllDead "wave2b1" Where spawnbot_flank TotalCount 2 MaxActive 2 SpawnCount 2 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Sniper_SMG } TFBot { Template T_TFBot_Giant_Medic_Shield Name "Giant Sun Shield Medic" } } } //Subwave 4 //- Giant Wave Crasher Demo - Milky Demo, huhu! Slightly less damage to compensate for deadly scouts. //- Heatwave Pyro (Fury! Greater range than regular pyros, can interrupt players well) //MOBBER: //- Sweaty Scouts (mobber/human, burst spawns! use the milk to stay alive >:3) WaveSpawn { Name "wave2c" WaitForAllDead "wave2b" Where spawnbot_flank WaitBetweenSpawns 20 TotalCount 3 MaxActive 3 SpawnCount 1 TotalCurrency 120 TFBot { Template T_TFBot_Giant_Demo_Burst_Milky } } WaveSpawn { Name "wave2c2" WaitForAllDead "wave2b2" WaitBeforeStarting 2 Where spawnbot WaitBetweenSpawns 6 TotalCount 18 MaxActive 6 SpawnCount 3 TotalCurrency 90 TFBot { Template T_TFBot_Pyro_Fury } } WaveSpawn { Name "wave2c3" WaitForAllDead "wave2b2" WaitBeforeStarting 3 Where spawnbot_mission_sniper WaitBetweenSpawns 7 TotalCount 25 MaxActive 5 SpawnCount 5 TotalCurrency 50 StartWaveOutput { Target "mobber_infotext" Action Show } TFBot { Template T_TFBot_Scout_Aggressive } } //Subwave 5 //- Giant Picnic Heavy -- Sandvich! Prior to spawning, if near hatch area: reset bomb? //- Super Shahanshah Sniper (to bring bomb forward again!) //- Sunburn Pyros (support) WaveSpawn { Name "wave2d" WaitForAllDead "wave2c" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 150 TFBot { Template T_TFBot_Giant_Heavy_Sandvich Health 10000 Attributes UseBossHealthBar ItemAttributes { ItemName "Festive Sandvich" "lunchbox healing decreased" 25 //25 * 300 = 7500 } AddCond //Make it leave spawn slightly faster { Index 32 Duration 4 Delay 1 } } } WaveSpawn { Name "wave2d1" Where spawnbot WaitForAllSpawned "wave2c" WaitForAllDead "wave2c2" WaitBeforeStarting 5 WaitBetweenSpawns 2.5 TotalCount 3 MaxActive 3 SpawnCount 1 TotalCurrency 150 TFBot { Template T_TFBot_Giant_Sniper_Shah } } WaveSpawn { Name "wave2c_both" WaitForAllSpawned "wave2c3" } WaveSpawn { Name "wave2c_both" WaitForAllSpawned "wave2c2" } WaveSpawn { Name "Support" WaitForAllSpawned "wave2c_both" Where spawnbot Where spawnbot_flank Where spawnbot_mission_sniper WaitBetweenSpawnsAfterDeath 8 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Pyro_NoAirblast ClassIcon pyro_giant } } WaveSpawn { Name "Support" WaitForAllSpawned "wave2c_both" Where spawnbot Where spawnbot_flank Where spawnbot_mission_sniper WaitBetweenSpawnsAfterDeath 8 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Pyro_NoAirblast ClassIcon pyro_giant } } WaveSpawn { Name "Support" WaitForAllDead "wave2c3" Where spawnbot_mission_sniper WaitBetweenSpawns 8 TotalCount 4 MaxActive 4 SpawnCount 4 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Pyro_NoAirblast ClassIcon pyro_giant } } } //Wave 3: Arctic power! Start: $4050 //Payout: $2000 + 100 bonus - Max Total: $6150 //Bots I wanna use: //Giant Frostblade Demo (Sword-Summoning), Giant Frostbite Soldier (super-charged?) //Aimed Rocket Tank, //Cold Snap / Tour Grinder Soldier (Bazooka + Conch?), Uber Kritz Medic, Icy Popper Scout, //Cool finale could be a Snow Spirit Soldier. Mimic sequences through vscript? //Subwave 1: //SPOTLIGHT: Giant Teleporter Placer Scout //CHALLENGE: Fast bomb pressure into powerful bomb holder, paired with split attention through tank //- Super Scout (or other type of bulky-ish bot) with teleporter runs in //On death, teleport-in a strong combo (heavy/medic, perhaps)! //- Giant Brass Heavy + Giant Uber Medic //- (Aimed) Rocket Tank (to capitalize on ground gained by scout!) //Subwave 2: quick follow-up! //SPOTLIGHT: Giant Sword Shooter Demo //- Giant Frostblade Demo //- Icy Popper Scout //- Arctic Rapid Demo //Subwave 3: powerful pressure with key targets! //SPOTLIGHT: Bigheal Uber Kritz Medic, "Tour Grinder" Bazooka Conch Soldier //CHALLENGE: High-threat medics capable of pushing quickly thanks to Conch. //Melee bots? Something to pair with their conch, hmmmm //Armored melee bots should work well, allows spy to lowkey dom this subwave (or sniper, I guess). //- //- Cold Snap Soldier + Winter-Prepped Medic //Subwave 4: another tank, this time with commons to make pyro more attractive to split! //CHALLENGE: split attention with focus-requiring bots. //- Giant Winter Ranger Engie (rapid+crits!) //- Giant Teleporter Scout -> common bots (pyro? flare? bullets!) //- Tank //- Arctic Rapid Demo //Subwave 5: Grand Finale! //- Lowrietta, Hunter of Winter //- Wave { // Explanation // { // Line "{F8EB00}The bomb will {FF0000}NOT RESET{F8EB00} during this wave!" // } StartWaveOutput { Target wave_start_relay_endurance Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } SpawnTemplate SpawnbotRelay // The Bazooks Method SpawnTemplate SecondBomb WaveSpawn { Name "wave3a1" Where spawnbot_flank TotalCount 1 SpawnCount 1 TotalCurrency 0 TFBot { Template T_TFBot_Giant_Scout_Teleporter } } WaveSpawn { Name "wave3a" WaitForAllDead "wave3a1" Where spawnbot_limited WaitBeforeStarting 1 TotalCount 2 MaxActive 2 SpawnCount 2 TotalCurrency 200 DoneOutput { Target spawn_control_relay Action Trigger } Squad { TFBot { Template T_TFBot_Giant_Heavyweapons Name "Giant Piercing Snowstorm Heavy" Item "The Brass Beast" Item "Ol' Reliable" Item "Heavy Heating" ClassIcon heavy_brass_penetrate ItemAttributes { ItemName "The Brass Beast" "is_festivized" 1 "paintkit_proto_def_index" 282 //Glacial Glazed "set_item_texture_wear" 0.2 } ItemAttributes { ItemName "Ol' Reliable" "item style override" 2 } ItemAttributes { ItemName "Heavy Heating" "item style override" 2 } } TFBot { Template T_TFBot_Giant_Medic Name "Giant Snowstorm Medic" Item "The Wooly Pulli" ItemAttributes { ItemName "The Quick-Fix" "is_festivized" 1 "uber duration bonus" -7 } } } } WaveSpawn { Name "wave3at" WaitForAllSpawned "wave3a" WaitBeforeStarting 4 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 300 Tank { Health 24000 Name "tankboss" Speed 75 StartingPathTrackNode "tank_path_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { WaitForAllSpawned "wave3a" WaitBeforeStarting 35 FirstSpawnOutput { Target spawn_control_relay Action Trigger } } WaveSpawn { Name "wave3b1" WaitForAllSpawned "wave3a" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Demoknight_Swordshot } } WaveSpawn { Name "wave3b" WaitForAllDead "wave3a" WaitForAllSpawned "wave3b1" WaitBeforeStarting 10 Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Demoknight_Swordshot } } WaveSpawn { Name "wave3b3" WaitForAllDead "wave3b1" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Demoknight_Swordshot } } WaveSpawn { Name "wave3b2" WaitForAllSpawned "wave3b" Where spawnbot WaitBetweenSpawns 4 TotalCount 18 MaxActive 6 SpawnCount 3 TotalCurrency 90 TFBot { Template T_TFBot_Demo_Rapid } } WaveSpawn { Name "wave3b2" WaitForAllSpawned "wave3b" Where spawnbot_mission_sniper WaitBetweenSpawns 1 TotalCount 20 MaxActive 5 SpawnCount 1 TotalCurrency 100 TFBot { Template T_TFBot_Scout_SodaPopper } } WaveSpawn { Name "wave3c" WaitForAllDead "wave3b" RandomSpawn 1 Where spawnbot Where spawnbot_flank WaitBetweenSpawns 7 TotalCount 24 MaxActive 12 SpawnCount 6 TotalCurrency 120 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFBot_Soldier_Grinder } TFBot { Template T_TFBot_Soldier_Grinder } TFBot { Template T_TFBot_Medic_BigHealKritzUber UseHumanModel 1 } } } WaveSpawn { Name "wave3c" WaitForAllDead "wave3b2" Where spawnbot_mission_sniper WaitBetweenSpawns 3 TotalCount 12 MaxActive 6 SpawnCount 2 TotalCurrency 120 TFBot { Template T_TFBot_Pyro_BackScratcher Attributes AlwaysCrit } } WaveSpawn { Name "wave3d1" WaitForAllSpawned "wave3c" Where spawnbot TotalCount 1 SpawnCount 1 TotalCurrency 0 DoneOutput { Target spawn_control_relay Action FireUser1 } TFBot { Template T_TFBot_Giant_Scout_Teleporter } } WaveSpawn { Name "wave3d" WaitForAllDead "wave3d1" Where spawnbot_limited TotalCount 6 MaxActive 6 SpawnCount 6 TotalCurrency 180 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Giant_Engineer_Ranger } TFBot { Template T_TFBot_Demo_Rapid } TFBot { Template T_TFBot_Demo_Rapid } TFBot { Template T_TFBot_Demo_Rapid } TFBot { Template T_TFBot_Demo_Rapid } TFBot { Template T_TFBot_Demo_Rapid } } } WaveSpawn { Name "wave3d2" WaitForAllDead "wave3d1" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 TotalCurrency 300 Squad { TFBot { Template T_TFBot_Giant_Engineer_Ranger } TFBot { Template T_TFBot_Giant_Medic Name "Giant Snowstorm Medic" Item "The Wooly Pulli" ItemAttributes { ItemName "The Quick-Fix" "is_festivized" 1 "uber duration bonus" -7 } } } } WaveSpawn { Name "wave3d2" WaitForAllDead "wave3d1" Where spawnbot_flank TotalCount 3 MaxActive 3 SpawnCount 3 TotalCurrency 240 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons Name "Giant Piercing Snowstorm Heavy" Item "The Brass Beast" Item "Ol' Reliable" Item "Heavy Heating" ClassIcon heavy_brass_penetrate ItemAttributes { ItemName "The Brass Beast" "is_festivized" 1 "paintkit_proto_def_index" 282 //Glacial Glazed "set_item_texture_wear" 0.2 } ItemAttributes { ItemName "Ol' Reliable" "item style override" 2 } ItemAttributes { ItemName "Heavy Heating" "item style override" 2 } } TFBot { Template T_TFBot_Medic_BigHealKritzUber } TFBot { Template T_TFBot_Medic_BigHealKritzUber } } } WaveSpawn { WaitForAllDead "wave3d2" FirstSpawnOutput { Target spawn_control_relay Action Trigger } } WaveSpawn { WaitForAllSpawned "wave3d2" WaitBeforeStarting 30 FirstSpawnOutput { Target spawn_control_relay Action Trigger } } WaveSpawn { Name "wave3e" WaitForAllSpawned "wave3d2" WaitBeforeStarting 1 Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 200 FirstSpawnOutput { Target bomb2_enable_relay Action FireUser1 Delay -1 } TFBot { Template T_TFBot_Chief_Loretta } } WaveSpawn { Name "Support" WaitForAllDead "wave3c" Where spawnbot_flank Where spawnbot_mission_sniper WaitBetweenSpawns 7 TotalCount 10 MaxActive 10 SpawnCount 4 Support 1 Squad { NoFormation 1 TFBot { Template T_TFBot_Pyro_Detonator_Burst Attributes AlwaysCrit } TFBot { Template T_TFBot_Scout_Aggressive_Soda } TFBot { Template T_TFBot_Scout_Aggressive_Soda } TFBot { Template T_TFBot_Scout_Aggressive_Soda } } } } //Wave 4 //Grand finale, with a buncha different moving parts! //Boss and mainwave progressor: Eternity Served Cold //Bomb pressure, Recall canteen-using: //- Snowblitz Scout (if bomb is at front) //- Giant Endless Hail Demo (if bomb is near mid) //- Royal Ravager (Giant Brass King Heavy) //Support: //- Rapid Flare Pyro //- Rapid Fire Soldier Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } Explanation { Line "{F8EB00}The bomb will {FF0000}>> NOT RESET <<{F8EB00} during this wave!" Line "{F8EB00}Additional allies will help you to beat the final bots." } SpawnTemplate BombSections SpawnTemplate BossPositions WaveSpawn { Name "wave4boss" WaitBeforeStarting 1.5 FirstSpawnWarningSound "weapons\icicle_freeze_victim_01.wav" Where spawnbot_flank TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { Template T_TFBot_Chief_ESC } } WaveSpawn { Name "icon" WaitForAllDead "wave4boss" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 PointTemplate { Name "FakeIcon" SpawnAtEntity Where IsMiniBoss 1 ClassIcon powerup_king_lite } } WaveSpawn { Name "icon" WaitForAllDead "wave4boss" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 PointTemplate { Name "FakeIcon" SpawnAtEntity Where IsMiniBoss 1 ClassIcon powerup_haste_lite } } WaveSpawn { Name "icon" WaitForAllDead "wave4boss" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 PointTemplate { Name "FakeIcon" SpawnAtEntity Where IsMiniBoss 1 ClassIcon powerup_vampire_lite } } WaveSpawn { Name "wave4a" Where spawnbot_undying_front WaitBeforeStarting 0.5 TotalCount 1 MaxActive 1 SpawnCount 1 Support 1 HideIcon 1 TFBot { Template T_TFBot_Chief_Heavy_Recall } } WaveSpawn { Name "wave4a" Where spawnbot_undying_mid WaitBeforeStarting 10 TotalCount 1 MaxActive 1 SpawnCount 1 Support 1 HideIcon 1 TFBot { Template T_TFBot_Chief_Demo_Recall } } WaveSpawn { Name "wave4a" Where spawnbot_undying_hatch WaitBeforeStarting 10 TotalCount 1 MaxActive 1 SpawnCount 1 Support 1 HideIcon 1 TFBot { Template T_TFBot_Chief_Scout_Recall } } WaveSpawn { Name "Support" Where spawnbot_flank Where spawnbot_mission_sniper RandomSpawn 1 WaitBetweenSpawns 15 TotalCount 100 MaxActive 10 SpawnCount 5 TotalCurrency 100 Support 1 Squad { NoFormation 1 TFBot { Template T_TFBot_Pyro_Flare_Infinite Name "Polar Flare Pyro" } TFBot { Template T_TFBot_Pyro_Flare_Infinite Name "Polar Flare Pyro" } TFBot { Template T_TFBot_Pyro_Flare_Infinite Name "Polar Flare Pyro" } TFBot { Template T_TFBot_Soldier_Spammer Name "Arctic Rapid Soldier" } TFBot { Template T_TFBot_Soldier_Spammer Name "Arctic Rapid Soldier" } } } WaveSpawn { Support Limited PointTemplate { Name "FakeIcon" ClassIcon red2_lite } } WaveSpawn { Name "Red Support" Where spawnbot_ally1 WaitBeforeStarting 10 WaitBetweenSpawnsAfterDeath 5 TotalCount 50 MaxActive 1 SpawnCount 1 Support 1 TFBot { Template T_TFBot_Red_Scout_Bonk } } WaveSpawn { Name "Red Support" Where spawnbot_ally2 WaitBeforeStarting 12 WaitBetweenSpawnsAfterDeath 7 TotalCount 50 MaxActive 1 SpawnCount 1 Support 1 TFBot { Template T_TFBot_Red_Pyro_Shotgun } } WaveSpawn { Name "Red Support" Where spawnbot_ally1 WaitBeforeStarting 18 WaitBetweenSpawnsAfterDeath 20 TotalCount 50 MaxActive 1 SpawnCount 1 Support 1 TFBot { Template T_TFBot_Red_Heavy_Natascha_Backup } } } }