#base robot_standard_vanilla_kai.pop #base robot_standard_custom_kai.pop #base robot_standard_custom_rafmod_kai.pop #base robot_standard_supercharged_kai.pop #base robot_standard_supercharged_rafmod_kai.pop #base robot_giant_vanilla_kai.pop #base robot_giant_custom_kai.pop #base robot_giant_custom_rafmod_kai.pop #base robot_giant_supercharged_kai.pop #base robot_giant_supercharged_rafmod_kai.pop #base robot_tank_custom_rafmod_kai.pop WaveSchedule { StartingCurrency 0 RespawnWaveTime 1 CanBotsAttackWhileInSpawnRoom No AddSentryBusterWhenDamageDealtExceeds 3000 AddSentryBusterWhenKillCountExceeds 10 AllowBotExtraSlots 1 RobotLimit 25 MissionUnloadOutput { Target BigNet Action RunScriptCode Param " Convars.SetValue(`tf_playergib`, 1) " Delay -1 } //// PRECACHES //// // Precached Models // PrecacheModel "models/props_gameplay/cap_circle_768.mdl" // Precached Sounds // PrecacheSound "music/mutuallyassureddestruction/abandoned_in_place.mp3" //// LUA SCRIPTS //// LuaScriptFile "tank_repair_script.lua" //// CUSTOM WEAPONS //// CustomWeapon { "HomewreckerRangedWeapon" { OriginalItemName "The Rescue Ranger" "damage bonus" 1.5 "no damage falloff" 1 "add damage type" 128 "remove damage type" 2 "fire rate penalty" 2 "faster reload rate" 0.001 "penetrate teammates" 1 "projectile penetration" 1 "projectile speed decreased" 0.65 "projectile gravity" 750 "arrow hit kill time" 0.1 "custom item model" "models/weapons/c_models/c_sledgehammer/c_sledgehammer.mdl" "custom projectile model" "models/weapons/w_models/w_drg_ball.mdl" "custom weapon fire sound" "common/null.wav" "custom kill icon" "sledgehammer" } "NukeLauncher" { OriginalItemName "Upgradeable TF_WEAPON_PIPEBOMBLAUNCHER" "damage bonus" 10 "damage causes airblast" 1 "airblast pushback scale" 5 "blast radius increased" 5 "no self blast dmg" 1 "fire rate penalty" 7 "mod max primary clip override" -1 "mult projectile scale" 3 "projectile range decreased" 0.5 "max pipebombs decreased" -7 "projectile detonate time" 6 "sticky arm time penalty" 4.6 "use large smoke explosion" 1 "projectile no deflect" 1 "custom weapon fire sound" "MVM.GiantDemoman_GrenadeShoot" "explosion particle" "fireSmokeExplosion" "custom kill icon" "megaton" } } //// POINT TEMPLATES //// PointTemplates { CorePT { OnSpawnOutput { Target BigNet Action RunScriptCode Param " NetProps.SetPropString(Entities.FindByClassname(null, `tf_objective_resource`), `m_iszMvMPopfileName`, `(Grandmaster) Mutually Assured Destruction`) PrecacheSound(`misc/halloween/strongman_fast_impact_01.wav`) PrecacheSound(`items/cart_explode_trigger.wav`) Convars.SetValue(`tf_playergib`, 0) EntFire(`saucer`, `Kill`) EntFire(`saucer_sound`, `Kill`) EntFire(`tf_gamerules`, `$StopVO`, `music/mutuallyassureddestruction/abandoned_in_place.mp3`) IncludeScript(`tankextensions_main`) IncludeScript(`tankextensions/combattank`) IncludeScript(`tankextensions/combattank_weapons/rocketpod`) IncludeScript(`tankextensions/combattank_weapons/cannon`) IncludeScript(`tankextensions/painttank`) TankExt.NewTankType(`tankexplosion`, { function OnDeath() { local flDamage = 600 local flRange = 500 local vecOrigin = self.GetOrigin() local vecCenter = self.GetCenter() DispatchParticleEffect(`explosionTrail_seeds_mvm`, vecOrigin, Vector(1)) DispatchParticleEffect(`fluidSmokeExpl_ring_mvm`, vecOrigin, Vector(1)) ScreenShake(vecOrigin, 25, 5, 5, 1000, SHAKE_START, false) local EntityArray = [] foreach(sClassname in [`player`, `obj_sentrygun`, `obj_dispenser`, `obj_teleporter`]) for(local hEnt; hEnt = FindByClassnameWithin(hEnt, sClassname, vecOrigin, flRange);) EntityArray.append(hEnt) foreach(hEnt in EntityArray) if(hEnt.IsAlive()) { local vecEntCenter = hEnt.GetCenter() local Trace = { start = vecCenter end = vecEntCenter mask = MASK_SOLID_BRUSHONLY startsolid = false allsolid = false } TraceLineEx(Trace) if(!(Trace.fraction < 1 || Trace.allsolid || Trace.startsolid)) { if(hEnt.IsPlayer()) ScreenFade(hEnt, 255, 255, 255, 255, 1, 0.1, FFADE_IN) hEnt.TakeDamageEx(First(), null, null, Vector(), Vector(), flDamage, DMG_BLAST) } } } }) " } point_populator_interface { "targetname" "pop_interface" } // Global Filters filter_multi { "targetname" "filter_redteam_nouber" "Negated" "0" "FilterType" "0" "Filter01" "filter_player" "Filter02" "filter_redteam" "Filter03" "filter_is_not_ubered" "Filter04" "filter_is_not_ubered2" "Filter05" "filter_is_not_ubered3" "Filter06" "filter_is_not_ubered4" } filter_multi { "targetname" "filter_redplayer" "Negated" "0" "FilterType" "0" "Filter01" "filter_player" "Filter02" "filter_redteam" } filter_activator_class { "targetname" "filter_player" "Negated" "0" "filterclass" "Player" } filter_tf_condition { "targetname" "filter_is_not_ubered" "Negated" "1" "condition" "5" } filter_tf_condition { "targetname" "filter_is_not_ubered2" "Negated" "1" "condition" "52" } filter_tf_condition { "targetname" "filter_is_not_ubered3" "Negated" "1" "condition" "51" } filter_tf_condition { "targetname" "filter_is_not_ubered4" "Negated" "1" "condition" "57" } } MissionPT { func_nav_prefer { "targetname" "nav_prefer_lowerleft" "origin" "692 -1128 56" "mins" "-313 -1368 -72" "maxs" "313 1368 72" "team" "3" "tags" "nav_prefer_flank_lower_left" } func_nav_prefer { "targetname" "nav_prefer_lowerright" "origin" "-1076 -1128 56" "mins" "-313 -1368 -72" "maxs" "313 1368 72" "team" "3" "tags" "nav_prefer_flank_lower_right" } // ENGINEER HINTS // // Front Nest 1 bot_hint_engineer_nest { "targetname" "engineer_nest_front_1" "origin" "352 1568 104" "angles" "0 -90 0" } bot_hint_sentrygun { "targetname" "engineer_nest_front_1" "origin" "544 1512 96" "angles" "0 -90 0" } // Front Nest 2 bot_hint_engineer_nest { "targetname" "engineer_nest_front_2" "origin" "-800 1536 6" "angles" "0 -90 0" } bot_hint_sentrygun { "targetname" "engineer_nest_front_2" "origin" "-512 1568 -80" "angles" "0 -90 0" } // Hatch Nest 1 bot_hint_engineer_nest { "targetname" "engineer_nest_hatch_1" "origin" "1192 -1616 200" "angles" "0 -135 0" } bot_hint_sentrygun { "targetname" "engineer_nest_hatch_1" "origin" "1408 -1472 192" "angles" "0 -135 0" } // Hatch Nest 2 bot_hint_engineer_nest { "targetname" "engineer_nest_hatch_2" "origin" "-1162 -1856 200" "angles" "0 -30 0" } bot_hint_sentrygun { "targetname" "engineer_nest_hatch_2" "origin" "-1424 -1896 192" "angles" "0 -45 0" } // Tele Nest 1 bot_hint_engineer_nest { "targetname" "engineer_nest_tele_1" "origin" "-864 576 248" "angles" "0 -180 0" } bot_hint_sentrygun { "targetname" "engineer_nest_tele_1" "origin" "-1184 232 136" "angles" "0 -90 0" } bot_hint_teleporter_exit { "targetname" "engineer_nest_tele_1" "origin" "-1376 480 160" "angles" "0 -90 0" } // Tele Nest 2 bot_hint_engineer_nest { "targetname" "engineer_nest_tele_2" "origin" "752 560 72" "angles" "0 -90 0" } bot_hint_sentrygun { "targetname" "engineer_nest_tele_2" "origin" "1080 320 64" "angles" "0 -90 0" } bot_hint_teleporter_exit { "targetname" "engineer_nest_tele_2" "origin" "768 256 64" "angles" "0 90 0" } // Tele Nest 3 bot_hint_engineer_nest { "targetname" "engineer_nest_tele_3" "origin" "256 -704 8" } bot_hint_sentrygun { "targetname" "engineer_nest_tele_3" "origin" "272 -1024 0" "angles" "0 90 0" } bot_hint_teleporter_exit { "targetname" "engineer_nest_tele_3" "origin" "192 -400 0" "angles" "0 -90 0" } // Tele Nest 4 bot_hint_engineer_nest { "targetname" "engineer_nest_tele_4" "origin" "-512 -1216 264" "angles" "0 -90 0" } bot_hint_sentrygun { "targetname" "engineer_nest_tele_4" "origin" "-704 -960 256" } bot_hint_teleporter_exit { "targetname" "engineer_nest_tele_4" "origin" "-448 -640 256" "angles" "0 -90 0" } } //// ROBOT PTs //// RotatingHomewreckerPT { KeepAlive 1 RemoveIfKilled "HomewreckerProjectile" OnSpawnOutput { Target "!activator" Action "AddOutput" Param "rendermode 10" Delay 0.01 } OnParentKilledOutput { Target "HomewreckerRotator" Action Stop } OnParentKilledOutput { Target "HomewreckerProjectile" Action RunScriptCode Param "ScreenShake(self.GetOrigin(), 10, 10, 2, 800, 0, true)" } OnParentKilledOutput { Target "HomewreckerProjectile" Action RunScriptCode Param "EmitSoundEx({sound_name = `misc/halloween/strongman_fast_impact_01.wav`, channel = 6, sound_level = 100, entity = self})" } OnParentKilledOutput { Target "HomewreckerAreaDamage" Action Enable } OnParentKilledOutput { Target "HomewreckerAreaDamage" Action Disable } OnParentKilledOutput { Target "HomewreckerProjectile" Action Kill Delay 3 } prop_dynamic { "targetname" "HomewreckerProjectile" "parentname" "HomewreckerRotator" "origin" "-10 0 -50" "model" "models/weapons/c_models/c_sledgehammer/c_sledgehammer.mdl" "modelscale" "1.5" } func_rotating { "targetname" "HomewreckerRotator" "spawnflags" "73" "maxspeed" "500" } trigger_hurt { "targetname" "HomewreckerAreaDamage" "filtername" "filter_redteam_nouber" "mins" "-32 -32 -32" "maxs" "32 32 32" "damagetype" "128" "damage" "65" "spawnflags" "1" "disableshadows" "1" "startdisabled" "1" } } CombatTankBossPart1PT { NoFixUp 1 OnSpawnOutput { Target BigBadSetupRelay Action Trigger } logic_relay { "targetname" "BigBadSetupRelay" "OnTrigger" "tf_gamerules,PlayVO,music/mutuallyassureddestruction/abandoned_in_place.mp3,0,-1" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/fire.wav,0,-1" "OnTrigger" "tf_gamerules,PlayVO,mvm/mvm_tele_deliver.wav,0,-1" "OnTrigger" "CombatTankBossTeleportPT,ForceSpawnAtEntityOrigin,BenedictTank,0,-1" "OnTrigger" "BenedictTank,AddOutput,OnHealthBelow50Percent TheTankIsAggressive:Trigger::0:1,0,-1" "OnTrigger" "BenedictTank,AddOutput,OnHealthBelow10Percent MyPlanetNeedsMe:Trigger::0:1,0,-1" } logic_relay { "targetname" "MyPlanetNeedsMe" "OnTrigger" "pop_interface,$KillWaveSpawn,Wave3_Subwave1_Repairmen,0,-1" "OnTrigger" "pop_interface,$FinishWaveSpawn,Wave3_Subwave1_Repairmen,0,-1" "OnTrigger" "BenedictTank,CallScriptFunction,ToggleUber,0,-1" "OnTrigger" "BenedictTank,SetSpeed,0,0,-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_ROTATE_SPEED_DEFAULT = 0.4})0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_MAX_RANGE = 1})0-1" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/striderx_pain2.wav,0,-1" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/striderx_pain2.wav,0,-1" "OnTrigger" "tf_gamerules,PlayVO,npc/scanner/scanner_siren1.wav,2,-1" "OnTrigger" "tf_gamerules,PlayVO,npc/scanner/scanner_siren1.wav,2,-1" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/charging.wav,3,-1" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/fire.wav,4.99,-1" "OnTrigger" "tf_gamerules,PlayVO,mvm/mvm_tele_deliver.wav,4.99,-1" "OnTrigger" "CombatTankBossTeleportPT,ForceSpawnAtEntityOrigin,BenedictTank,4.99,-1" "OnTrigger" "BenedictTank,Kill,,5,1" } logic_relay { "targetname" "TheTankIsAggressive" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/striderx_alert2.wav,0,-1" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/charging.wav,2,1" "OnTrigger" "BenedictTank,SetSpeed,0,0,1" "OnTrigger" "tf_point_weapon_mimic*,AddOutput,Crits 1,0,-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_ROCKETPOD_FIRE_DELAY = 0.4})0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_ROCKETPOD_RELOAD_DELAY = 0.0001})0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_ROCKETPOD_SND_FIRE = `MVM.GiantSoldierRocketShootCrit`});TankExt.PrecacheSound(COMBATTANK_ROCKETPOD_SND_FIRE)0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_ROTATE_SPEED_DEFAULT = 2})0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_MAX_RANGE = 1})0-1" "OnTrigger" "tf_gamerules,PlayVO,items/powerup_pickup_crits.wav,3,-1" "OnTrigger" "HesSoFuckingMad,Start,,3.5,1" "OnTrigger" "HesSoFuckingMad,Stop,,4.5,1" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/striderx_alert6.wav,4,1" "OnTrigger" "tf_gamerules,PlayVO,ambient/alarms/razortrain_horn1.wav,3.6,-1" "OnTrigger" "BenedictTank,Color,255 128 128,4,1" "OnTrigger" "@c@BenedictTank,Color,255 128 128,4,1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_MAX_RANGE = 2000})4-1" "OnTrigger" "BenedictTank,SetSpeed,75,5,1" } info_particle_system { "targetname" "HesSoFuckingMad" "origin" "0 0 0" "effect_name" "grenade_smoke_cycle" "start_active" "0" } info_particle_system { "targetname" "HesSoFuckingmMad" "origin" "0 0 0" "effect_name" "grenade_smoke" "start_active" "0" } info_particle_system { "targetname" "HesSoFuckingMad" "origin" "0 0 100" "effect_name" "grenade_smoke_cycle" "start_active" "0" } info_particle_system { "targetname" "HesSoFuckingMad" "origin" "0 0 100" "effect_name" "grenade_smoke" "start_active" "0" } info_target { "targetname" "CombatTankBossTarget" } info_target { "targetname" "CombatTankBossShielderTarget" "origin" "150 0 128" } info_target { "targetname" "CombatTankBossShielderTargetLooker" "origin" "225 0 128" } } CombatTankBossTeleportPT { RemoveIfKilled "CheckThisMagicTrick" OnSpawnOutput { Target CheckThisMagicTrick Action Kill Delay 1 } info_particle_system { "targetname" "CheckThisMagicTrick" "origin" "0 0 100" "effect_name" "hammer_lock_vanish01" "start_active" "1" } info_particle_system { "targetname" "CheckThisMagicTrick" "origin" "0 0 0" "effect_name" "hammer_lock_vanish01" "start_active" "1" } } ButHeresTheForcer { info_target { "targetname" "ForcingThemHere" "origin" "0 0 0" } OnSpawnOutput { Target Kablooey Action Trigger Delay 5 } } KamikazeTankPT { OnSpawnOutput { Target !activator Action AddOutput Param "OnHealthBelow30Percent Kablooey:Trigger::0:-1" } logic_relay { "targetname" "Kablooey" "OnTrigger" "!activatorRunScriptCodeEmitSoundEx({sound_name = `items/cart_explode_trigger.wav`, channel = 6, sound_level = 100, entity = self})0.5-1" "OnTrigger" "!activator,Color,255 0 0,0.5,-1" "OnTrigger" "!activator,Color,255 255 255,0.6,-1" "OnTrigger" "!activatorRunScriptCodeself.SetModelScale(1.2, 0.3)1.7-1" "OnTrigger" "!activatorRunScriptCodeEmitSoundEx({sound_name = `items/cart_explode_trigger.wav`, channel = 6, sound_level = 100, entity = self})1-1" "OnTrigger" "!activator,Color,255 0 0,1,-1" "OnTrigger" "!activator,Color,255 255 255,1.1,-1" "OnTrigger" "!activatorRunScriptCodeEmitSoundEx({sound_name = `items/cart_explode_trigger.wav`, channel = 6, sound_level = 100, entity = self})1.4-1" "OnTrigger" "!activator,Color,255 0 0,1.4,-1" "OnTrigger" "!activator,Color,255 255 255,1.5,-1" "OnTrigger" "!activatorRunScriptCodeEmitSoundEx({sound_name = `items/cart_explode_trigger.wav`, channel = 6, sound_level = 100, entity = self})1.7-1" "OnTrigger" "!activator,Color,255 0 0,1.7,-1" "OnTrigger" "!activator,Color,255 255 255,1.8,-1" "OnTrigger" "!activatorRunScriptCodeEmitSoundEx({sound_name = `items/cart_explode_trigger.wav`, channel = 6, sound_level = 100, entity = self})1.9-1" "OnTrigger" "!activator,Color,255 0 0,1.9,-1" "OnTrigger" "!activator,$PlaySound,items/cart_explode.wav,1.99,-1" "OnTrigger" "!activator,RemoveHealth,9999999,2,-1" "spawnflags" "2" } } StickyNukePT { RemoveIfKilled "StickyNukeHitbox" OnSpawnOutput { Target "StickyNukeRelay" Action "Trigger" } OnSpawnOutput { Target "StickyNukeIndicator" Action "ClearParent" } OnSpawnOutput { Target "StickyNukeIndicator" Action "$SetFakeParent" Param "StickyNukeTarget" } OnSpawnOutput { Target "StickyNukeIndicator" Action "$SetLocalAngles" Param "0 0 0" } OnSpawnOutput { Target "StickyNukeHitbox" Action "SetHealth" Param 2500 } logic_relay { "targetname" "StickyNukeRelay" "OnTrigger" "tf_gamerules,PlayVO,items/cart_explode_trigger.wav,0.5,-1" "OnTrigger" "StickyNukeCharge,Start,,1,-1" "OnTrigger" "tf_gamerules,PlayVO,items/cart_explode_trigger.wav,1.5,-1" "OnTrigger" "tf_gamerules,PlayVO,items/cart_explode_trigger.wav,2.5,-1" "OnTrigger" "tf_gamerules,PlayVO,items/cart_explode_trigger.wav,3.5,-1" "OnTrigger" "tf_gamerules,PlayVO,items/bomb_warning.wav,5.3,-1" "OnTrigger" "tf_gamerules,$StopVO,items/bomb_warning.wav,6,-1" "OnTrigger" "tf_gamerules,PlayVO,misc/doomsday_missile_explosion.wav,6,-1" } info_target { "targetname" "StickyNukeTarget" } obj_sentrygun { "targetname" "StickyNukeHitbox" "TeamNum" "3" "defaultupgrade" "2" "health" "3500" "SolidToPlayer" "0" "rendermode" "10" "$sentrymodelprefix" "models/empty.mdl" "$rangemult" "0.001" "damagefilter" "filter_redteam" "OnDamaged" "Player,$DisplayTextCenter,$$=test(!caller.m_iHealth>1,'Nuke HP: '..string(max(!caller.m_iHealth, 0)),''),0,-1" "OnDamaged" "!parentRunScriptCodetry{if(caller.GetHealth()<1){self.Kill()}}catch(e){}0-1" } prop_dynamic { "targetname" "StickyNukeIndicator" "model" "models/props_gameplay/cap_circle_768.mdl" "skin" "2" "$modules" "fakeparent" "$positiononly" "1" "disablebonefollowers" "1" "disableshadows" "1" } info_particle_system { "targetname" "StickyNukeCharge" "effect_name" "charge_up" } } BitchHaverPT { NoFixUp 1 OnParentKilledOutput { Target pop_interface Action ChangeBotAttributes Param "NotLookingAtHim" } info_target { "targetname" "BitchHaverTarget" "origin" "0 0 100" } } CombatTankBossPart2PT { NoFixUp 1 OnSpawnOutput { Target BigBadSetupRelay Action Trigger } logic_relay { "targetname" "BigBadSetupRelay" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/fire.wav,0,-1" "OnTrigger" "tf_gamerules,PlayVO,mvm/mvm_tele_deliver.wav,0,-1" "OnTrigger" "CombatTankBossTeleportPT,ForceSpawnAtEntityOrigin,BenedictTank,0,-1" "OnTrigger" "BenedictTank,AddOutput,OnHealthBelow50Percent TheTankIsAggressive:Trigger::0:1,0,-1" "OnTrigger" "BenedictTank,AddOutput,OnHealthBelow10Percent MyPlanetNeedsMe:Trigger::0:1,0,-1" "OnTrigger" "tf_point_weapon_mimic*,AddOutput,Crits 1,0,-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_CANNON_ROCKET_DAMAGE = 400})0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_CANNON_ROCKET_SPEED = 2000})0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_CANNON_SND_FIRE = `MVM.GiantSoldierRocketShootCrit`});TankExt.PrecacheSound(COMBATTANK_CANNON_SND_FIRE)0-1" } logic_relay { "targetname" "MyPlanetNeedsMe" "OnTrigger" "pop_interface,$KillWaveSpawn,Wave5_Subwave1_Gunslingers,0,-1" "OnTrigger" "pop_interface,$FinishWaveSpawn,Wave5_Subwave1_Gunslingers,0,-1" "OnTrigger" "pop_interface,$KillWaveSpawn,Wave5_Subwave4_GScouts,0,-1" "OnTrigger" "pop_interface,$FinishWaveSpawn,Wave5_Subwave4_GScouts,0,-1" "OnTrigger" "BenedictTank,CallScriptFunction,ToggleUber,0,-1" "OnTrigger" "BenedictTank,SetSpeed,0,0,-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_ROTATE_SPEED_DEFAULT = 0.4})0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_MAX_RANGE = 1})0-1" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/striderx_pain2.wav,0,-1" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/striderx_pain2.wav,0,-1" "OnTrigger" "tf_gamerules,PlayVO,npc/scanner/scanner_siren1.wav,2,-1" "OnTrigger" "tf_gamerules,PlayVO,npc/scanner/scanner_siren1.wav,2,-1" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/charging.wav,3,-1" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/fire.wav,4.99,-1" "OnTrigger" "tf_gamerules,PlayVO,mvm/mvm_tele_deliver.wav,4.99,-1" "OnTrigger" "CombatTankBossTeleportPT,ForceSpawnAtEntityOrigin,BenedictTank,4.99,-1" "OnTrigger" "BenedictTank,Kill,,5,1" } logic_relay { "targetname" "TheTankIsAggressive" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/striderx_alert2.wav,0,-1" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/charging.wav,2,1" "OnTrigger" "BenedictTank,SetSpeed,0,0,1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_CANNON_FIRE_STARTUP_DELAY = 0.33})0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_CANNON_FIRE_DELAY = 0.33})0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_CANNON_ROCKET_DAMAGE = 150})0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_CANNON_ROCKET_SPEED = 1500})0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_CANNON_PARTICLE_EXPLOSION = `ExplosionCore_MidAir`})0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_ROTATE_SPEED_DEFAULT = 2})0-1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_MAX_RANGE = 1})0-1" "OnTrigger" "tf_gamerules,PlayVO,items/powerup_pickup_haste.wav,3,-1" "OnTrigger" "HesSoFuckingMad,Start,,3.5,1" "OnTrigger" "HesSoFuckingMad,Stop,,4.5,1" "OnTrigger" "tf_gamerules,PlayVO,npc/strider/striderx_alert6.wav,4,1" "OnTrigger" "tf_gamerules,PlayVO,ambient/alarms/razortrain_horn1.wav,3.6,-1" "OnTrigger" "BenedictTank,Color,255 128 128,4,1" "OnTrigger" "@c@BenedictTank,Color,255 128 128,4,1" "OnTrigger" "BigNetRunScriptCodeTankExt.SetValueOverrides({COMBATTANK_MAX_RANGE = 3000})4-1" "OnTrigger" "BenedictTank,SetSpeed,75,5,1" } info_particle_system { "targetname" "HesSoFuckingMad" "origin" "0 0 0" "effect_name" "grenade_smoke_cycle" "start_active" "0" } info_particle_system { "targetname" "HesSoFuckingmMad" "origin" "0 0 0" "effect_name" "grenade_smoke" "start_active" "0" } info_particle_system { "targetname" "HesSoFuckingMad" "origin" "0 0 100" "effect_name" "grenade_smoke_cycle" "start_active" "0" } info_particle_system { "targetname" "HesSoFuckingMad" "origin" "0 0 100" "effect_name" "grenade_smoke" "start_active" "0" } } } //// SPAWNED POINT TEMPLATES //// SpawnTemplate "CorePT" SpawnTemplate "MissionPT" PlayerShootTemplate { Name "RotatingHomewreckerPT" AttachToProjectile 1 ItemName "HomewreckerRangedWeapon" } //// EXTRA SPAWN POINTS //// ExtraSpawnPoint { Name "spawnbot_backshots" X 158 Y -676 Z 0 TeamNum 3 } ExtraSpawnPoint { Name "spawnbot_backshots" X -580 Y -934 Z 256 TeamNum 3 } //// EXTRA TANK PATHS //// ExtraTankPath // Tank Path B (Right Path) { Name "tank_path_b" Node "-128 2688 -60" Node "-128 256 36" Node "-320 64 36" Node "-704 64 36" Node "-896 -192 36" Node "-960 -448 36" Node "-960 -1344 36" Node "-896 -1536 36" Node "-896 -2432 36" Node "-768 -2560 36" Node "-320 -2560 68" Node "-152 -2456 68" } ExtraTankPath // Tank Path C (Upper Right Path) { Name "tank_path_c" Node "-128 2688 -60" Node "-128 256 36" Node "-176 152 28" Node "-264 104 28" Node "-376 112 28" Node "-464 232 28" Node "-592 312 28" Node "-696 360 28" Node "-824 384 28" Node "-896 376 196" Node "-1048 312 196" Node "-1384 176 196" Node "-1448 112 196" Node "-1472 0 196" Node "-1576 -1360 196" Node "-1608 -1148 196" Node "-1544 -1688 196" Node "-1368 -1824 196" Node "-1272 -1912 196" Node "-1248 -2008 196" Node "-1248 -2360 196" Node "-1216 -2472 196" Node "-1096 -2608 196" Node "-944 -2656 196" Node "-848 -2640 196" Node "-320 -2560 68" Node "-152 -2456 68" } ExtraTankPath // Tank Path D (Upper Left Path) { Name "tank_path_d" Node "-128 2688 -60" Node "-128 576 36" Node "-104 512 36" Node "-64 448 36" Node "0 408 36" Node "104 384 36" Node "992 384 92" Node "1072 360 92" Node "1120 320 92" Node "1152 256 92" Node "1152 -432 156" Node "1168 -472 156" Node "1208 -528 156" Node "1376 -720 156" Node "1408 -768 156" Node "1432 -840 156" Node "1432 -1096 212" Node "1424 -1152 212" Node "1408 -1248 212" Node "1408 -1472 212" Node "1416 -1512 212" Node "1432 -1552 212" Node "1432 -2400 212" Node "1408 -2440 212" Node "1368 -2464 212" Node "896 -2464 212" Node "832 -2448 212" Node "776 -2400 212" Node "704 -2368 212" Node "176 -2368 212" } //// ROBOT TEMPLATES //// Templates { //// TANKS //// Tank_Tiny_Kamikaze { Name "painttank|255 255 255^tankexplosion$scale|0.5^pingsound|misc/null.wav^maxstepheight|50^disablesmokestack|1^noscreenshake|1^nodestructionmodel|1" ClassIcon tank_dynamite_entropy SpawnTemplate "KamikazeTankPT" IsMiniBoss 0 OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } //// GIANTS //// T_TFBot_Giant_Heavy_BrassBeast { Name "Giant Brass Beast Heavy" Class Heavy ClassIcon heavy_brass_nys_giant Skill Expert Health 5000 Attributes MiniBoss Attributes SuppressFire WeaponRestrictions PrimaryOnly MaxVisionRange 1200 Item "The Brass Beast" CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } ItemAttributes { ItemName "The Brass Beast" "damage bonus" 2.5 "minigun spinup time increased" 3.5 } } T_TFBot_Giant_Pyro_Homewrecker_Launcher { Name "Giant Sledgethrower Pyro" Class Pyro ClassIcon pyro_homewrecker_lite_giant Skill Expert Health 3000 Attributes MiniBoss Attributes HoldFireUntilFullReload WeaponRestrictions PrimaryOnly UseMeleeThreatPrioritization 1 AimAt Head Item "HomewreckerRangedWeapon" Item "The Homewrecker" CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 6 } ItemAttributes { ItemName "The Homewrecker" "fire rate penalty" 1.5625 "is_passive_weapon" 1 } ShootTemplate { Name "RotatingHomewreckerPT" AttachToProjectile 1 ItemName "HomewreckerRangedWeapon" } } T_TFBot_Giant_Demoman_Burst_Ricochet { Name "Giant Burst Ricochet Demoman" Class Demoman ClassIcon demo_burst_ricochet_giant Skill Expert Health 3300 Attributes MiniBoss Attributes HoldFireUntilFullReload WeaponRestrictions PrimaryOnly AimOffset "25 0 200" CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 4 } ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "fire rate bonus" 0.1 "faster reload rate" 0.65 "clip size upgrade atomic" 7.0 "projectile speed increased" 1.1 "projectile spread angle penalty" 5 "fuse bonus" 1.5 "grenade bounce speed" 0.8 "grenade bounce damage" 0.75 } } T_TFBot_Giant_Soldier_Burst_Modded { Template T_TFBot_Giant_Soldier_Burst ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "fire rate bonus" 0.2 "faster reload rate" 0.4 "clip size upgrade atomic" 5.0 "projectile speed decreased" 0.9 } } //// MINIGIANTS //// T_TFBot_Scout_Sandman_Armored { Name "Armor League Scout" Template T_TFBot_Scout_Sandman_Spammer ClassIcon scout_stun_armored Skill Expert Health 650 Scale 1.4 } T_TFBot_Heavy_Forceweight_Champ { Name "Forceweight Champ" Class Heavy ClassIcon heavy_steelfist_pusher Skill Expert Health 900 Scale 1.5 ExtAttr IgnoreBuildings WeaponRestrictions MeleeOnly Item "Fists of Steel" Item "Pugilist's Protector" ItemAttributes { ItemName "Fists of Steel" "apply z velocity on damage" 10000 "apply look velocity on damage" 10000 "weapon always gib" 1 } ChangeAttributes { Name "PitbullMode" Delay 2 Repeats 1 Cooldown -1 IfSeeTarget 1 IfLeftSpawn 1 } EventChangeAttributes { PitbullMode { Attributes DisableDodge ActionOverride Mobber CustomEyeGlowColor "255 0 0" CharacterAttributes { "move speed bonus" 5 "cannot pick up intelligence" 1 } } } } //// COMMONS //// T_TFBot_Heavy_Shotgun_Statless { Name "Shotgun Heavy" Class Heavy ClassIcon heavy_shotgun WeaponRestrictions SecondaryOnly } T_TFBot_Engineer_Shotgun { Name "I Forgor my Shotgun" Class Engineer ClassIcon heavy_shotgun WeaponRestrictions SecondaryOnly Action FetchFlag CharacterAttributes { "voice pitch scale" 0 } } T_TFBot_Engineer_Wrench_Repairman { Name "Repairman Engineer" Class Engineer ClassIcon engineer_jag_lite Skill Expert Health 275 Attributes AlwaysFireWeapon WeaponRestrictions MeleeOnly Action Mobber Item "The Jag" Item "The Data Mining Light" InterruptAction // Guides them to Repair the Drill Tank { Target "CombatTankBossTarget" AimTarget "CombatTankBossTarget" Delay 0.1 Repeats 1 Duration 999 KillAimTarget 1 Distance 50 } } T_TFBot_Soldier_Bazooka { Name "Bazooka Soldier" Class Soldier ClassIcon soldier_bazooka Item "The Beggar's Bazooka" ItemAttributes { ItemName "The Beggar's Bazooka" "can overload" 0 "auto fires full clip" 1 "reload time increased hidden" 1 "faster reload rate" 0.6 } } } //// MISSION BOTS //// Mission // Sentry Buster { Objective DestroySentries Where spawnbot_mission_sentrybuster BeginAtWave 1 RunForThisManyWaves 7 InitialCooldown 30 CooldownTime 30 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster } } Mission // Spy (Wave 3) { Objective Spy Where spawnbot_mission_spy BeginAtWave 3 RunForThisManyWaves 1 InitialCooldown 15 CooldownTime 40 DesiredCount 3 TFBot { Template T_TFBot_Spy } } Mission // For Wave 3 { Objective Engineer Where spawnbot_any BeginAtWave 3 RunForThisManyWaves 1 DesiredCount 2 InitialCooldown 80 CooldownTime 60 TFBot { Template T_TFBot_Engineer_Sentry_Teleporter_TeleIn } } //// WAVES //// Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`bombpath_clearall_relay`, `Trigger`, null, 6) EntFire(`bombpath_arrows_clear_relay`, `Trigger`, null, 6) EntFire(`bombpath_left_relay`, `Trigger`, null, 6.1) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } // Subwave 1 WaveSpawn // 1 GBrassBeast Heavy and 2 GCharged Medics { Name "Wave1_Subwave1_GBrassBeastHeavy" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 400 Squad { TFBot { Template T_TFBot_Giant_Heavy_BrassBeast CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Medic_Charged CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Medic_Charged CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 6 Armor League Scouts { Name "Wave1_Subwave1_ArmoredSandmanScouts" WaitForAllSpawned "Wave1_Subwave1_GBrassBeastHeavy" Where spawnbot TotalCount 6 MaxActive 6 SpawnCount 3 WaitBeforeStarting 4 WaitBetweenSpawns 10 TotalCurrency 20 TFBot { Template T_TFBot_Scout_Sandman_Armored CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } WaveSpawn // 15 Loch Demos { Name "Wave1_Subwave1_LochDemos" WaitForAllSpawned "Wave1_Subwave1_GBrassBeastHeavy" Where spawnbot_left Where spawnbot_right TotalCount 15 MaxActive 9 SpawnCount 3 WaitBeforeStarting 4 WaitBetweenSpawns 3 TotalCurrency 20 TFBot { Template T_TFBot_Demoman_LochnLoad Skill Expert AimAt Head } } WaveSpawn // 3 GBarrage Soldiers { Name "Wave1_Subwave1_GBarrageSoldier" WaitForAllDead "Wave1_Subwave1_GBrassBeastHeavy" Where spawnbot_left TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 16 TotalCurrency 40 RandomChoice { Shuffle 1 TFBot { Template T_TFBot_Giant_Soldier_Barrage CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Soldier_Barrage BehaviorModifiers Push Tag nav_prefer_flank_left CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Soldier_Barrage BehaviorModifiers Push Tag nav_prefer_flank_left CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 3 GBarrage Soldiers { Name "Wave1_Subwave1_GBarrageSoldier" WaitForAllDead "Wave1_Subwave1_GBrassBeastHeavy" Where spawnbot_right TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 16 TotalCurrency 40 RandomChoice { Shuffle 1 TFBot { Template T_TFBot_Giant_Soldier_Barrage CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Soldier_Barrage BehaviorModifiers Push Tag nav_prefer_flank_right CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Soldier_Barrage BehaviorModifiers Push Tag nav_prefer_flank_right CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 30 Scouts { Name "Wave1_Subwave1_Scouts" WaitForAllDead "Wave1_Subwave1_GBrassBeastHeavy" Where spawnbot_any TotalCount 30 MaxActive 10 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 1 TotalCurrency 40 TFBot { Class Scout Skill Easy } } WaveSpawn // 8 Engineers and 8 Big-Heal Medics { Name "Wave1_Subwave1_Engineers" WaitForAllDead "Wave1_Subwave1_GBrassBeastHeavy" Where spawnbot_any Support Limited TotalCount 16 MaxActive 16 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 0.5 TotalCurrency 0 Squad { TFBot { Template T_TFBot_Engineer_Sentry_Teleporter_WalkIn TeleportWhere spawnbot_left TeleportWhere spawnbot_right } TFBot { Template T_TFBot_Medic_BigHeal } } } WaveSpawn // 1 GBrassBeast Heavy and 2 GCharged Medics { Name "Wave1_Subwave1_GBrassBeastHeavy2" WaitForAllSpawned "Wave1_Subwave1_GBarrageSoldier" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 15 WaitBetweenSpawns 0 TotalCurrency 400 Squad { TFBot { Template T_TFBot_Giant_Heavy_BrassBeast CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Medic_Charged CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Medic_Charged CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 4 Armor League Scouts { Name "Wave1_Subwave1_ArmoredSandmanScouts2" WaitForAllSpawned "Wave1_Subwave1_GBrassBeastHeavy2" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 0.5 TotalCurrency 20 TFBot { Template T_TFBot_Scout_Sandman_Armored CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } WaveSpawn // 5 Loch Demos { Name "Wave1_Subwave1_LochDemos2" WaitForAllSpawned "Wave1_Subwave1_GBrassBeastHeavy2" Where spawnbot_left Where spawnbot_right TotalCount 5 MaxActive 5 SpawnCount 5 WaitBeforeStarting 4 WaitBetweenSpawns 0 TotalCurrency 20 TFBot { Template T_TFBot_Demoman_LochnLoad Skill Expert AimAt Head } } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`bombpath_clearall_relay`, `Trigger`, null, 6) EntFire(`bombpath_arrows_clear_relay`, `Trigger`, null, 6) EntFire(`bombpath_right_relay`, `Trigger`, null, 6.1) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } // Subwave 1 WaveSpawn // 1 Tank { Name "Wave2_Subwave1_Tank" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 60 FirstSpawnWarningSound "mvm/mvm_tank_start.wav" Tank { Name "tank_boss" Health 26000 Speed 75 StartingPathTrackNode "tank_path_a_1" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // 1 Tank { Name "Wave2_Subwave1_Tank" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 3 WaitBetweenSpawns 0 TotalCurrency 60 FirstSpawnWarningSound "mvm/mvm_tank_start.wav" Tank { Name "tank_boss" Health 26000 Speed 75 StartingPathTrackNode "tank_path_b_1" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // 25 Forceweight Champs (Send in the Pitbulls) { Name "Wave2_Subwave1_ForceweightChamps" WaitForAllSpawned "Wave2_Subwave1_Tank" Where spawnbot_any TotalCount 25 MaxActive 25 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 0.1 TotalCurrency 100 TFBot { Template T_TFBot_Heavy_Forceweight_Champ CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } WaveSpawn // 1 GBurst Loch Demoman and 1 Full-Uber Medic { Name "Wave2_Subwave1_GBurstLochDemo" WaitForAllSpawned "Wave2_Subwave1_ForceweightChamps" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 40 Squad { TFBot { Template T_TFBot_Giant_Demoman_LochnLoad_Burst BehaviorModifiers Push Tag nav_prefer_flank_left CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // 1 GBurst Loch Demoman and 1 Full-Uber Medic { Name "Wave2_Subwave1_GBurstLochDemo" WaitForAllSpawned "Wave2_Subwave1_ForceweightChamps" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 40 Squad { TFBot { Template T_TFBot_Giant_Demoman_LochnLoad_Burst BehaviorModifiers Push Tag nav_prefer_flank_right CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // 25 Forceweight Champs (Send in the Pitbulls the Sequel) { Name "Wave2_Subwave1_ForceweightChamps2" WaitForAllSpawned "Wave2_Subwave1_GBurstLochDemo" Where spawnbot_any TotalCount 25 MaxActive 25 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 0.1 TotalCurrency 100 TFBot { Template T_TFBot_Heavy_Forceweight_Champ CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } WaveSpawn // Jimmy Sledgehammer { Name "Wave2_Subwave1_SledgeThrower" WaitForAllSpawned "Wave2_Subwave1_ForceweightChamps2" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 FirstSpawnWarningSound "vo/mvm/mght/pyro_mvm_m_battlecry01.mp3" TFBot { Name "Jimmy Sledgehammer" Template T_TFBot_Giant_Pyro_Homewrecker_Launcher Health 17500 Scale 2 Attributes UseBossHealthBar CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } WaveSpawn // 28 Shotgun Men { Name "Wave2_Subwave1_ShotgunCrew" WaitForAllSpawned "Wave2_Subwave1_SledgeThrower" Where spawnbot_any TotalCount 28 MaxActive 12 SpawnCount 2 WaitBeforeStarting 4 WaitBetweenSpawns 1 TotalCurrency 40 RandomChoice { Shuffle 1 TFBot { Template T_TFBot_Heavy_Shotgun_Statless Skill Easy } TFBot { Template T_TFBot_Engineer_Shotgun Skill Easy } TFBot { Template T_TFBot_Soldier_Shotgun Skill Easy } TFBot { Template T_TFBot_Pyro_Shotgun Skill Easy } } } // Subwave 2 WaveSpawn // 1 GRicochet Demo and 2 Full-Uber Medics { Name "Wave2_Subwave2_GRicochetDemo" WaitForAllDead "Wave2_Subwave1_SledgeThrower" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 2 WaitBetweenSpawns 0 TotalCurrency 60 Squad { TFBot { Template T_TFBot_Giant_Demoman_Burst_Ricochet CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Medic_Uber } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // 10 Heavies { Name "Wave2_Subwave2_Heavies" WaitForAllSpawned "Wave2_Subwave2_GRicochetDemo" Where spawnbot_left TotalCount 10 MaxActive 10 SpawnCount 5 WaitBeforeStarting 2 WaitBetweenSpawns 6 TotalCurrency 20 TFBot { Class Heavy Skill Easy BehaviorModifiers Push Tag nav_prefer_flank_left } } WaveSpawn // 1 GRicochet Demo and 2 Full-Uber Medics { Name "Wave2_Subwave2_GRicochetDemo2" WaitForAllSpawned "Wave2_Subwave2_GRicochetDemo" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 12 WaitBetweenSpawns 0 TotalCurrency 60 Squad { TFBot { Template T_TFBot_Giant_Demoman_Burst_Ricochet CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Medic_Uber } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // 10 Heavies { Name "Wave2_Subwave2_Heavies2" WaitForAllSpawned "Wave2_Subwave2_GRicochetDemo2" Where spawnbot_right TotalCount 10 MaxActive 10 SpawnCount 5 WaitBeforeStarting 2 WaitBetweenSpawns 6 TotalCurrency 20 TFBot { Class Heavy Skill Easy BehaviorModifiers Push Tag nav_prefer_flank_right } } WaveSpawn // 1 GRicochet Demo and 2 Full-Uber Medics { Name "Wave2_Subwave2_GRicochetDemo3" WaitForAllSpawned "Wave2_Subwave2_GRicochetDemo2" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 12 WaitBetweenSpawns 0 TotalCurrency 60 Squad { TFBot { Template T_TFBot_Giant_Demoman_Burst_Ricochet CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Medic_Uber } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // 10 Heavies { Name "Wave2_Subwave2_Heavies3" WaitForAllSpawned "Wave2_Subwave2_GRicochetDemo3" Where spawnbot_left TotalCount 10 MaxActive 10 SpawnCount 5 WaitBeforeStarting 2 WaitBetweenSpawns 6 TotalCurrency 20 TFBot { Class Heavy Skill Easy BehaviorModifiers Push Tag nav_prefer_flank_left } } WaveSpawn // 1 GRicochet Demo and 2 Full-Uber Medics { Name "Wave2_Subwave2_GRicochetDemo4" WaitForAllSpawned "Wave2_Subwave2_GRicochetDemo3" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 12 WaitBetweenSpawns 0 TotalCurrency 60 Squad { TFBot { Template T_TFBot_Giant_Demoman_Burst_Ricochet CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Medic_Uber } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // 10 Heavies { Name "Wave2_Subwave2_Heavies4" WaitForAllSpawned "Wave2_Subwave2_GRicochetDemo4" Where spawnbot_right TotalCount 10 MaxActive 10 SpawnCount 5 WaitBeforeStarting 2 WaitBetweenSpawns 6 TotalCurrency 20 TFBot { Class Heavy Skill Easy BehaviorModifiers Push Tag nav_prefer_flank_right } } // Subwave 3 WaveSpawn // 1 GRocket Storm Soldier and 2 Rapid Fire Concheror Soldiers { Name "Wave2_Subwave3_GRocketStorm" WaitForAllSpawned "Wave2_Subwave2_GRicochetDemo4" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 12 WaitBetweenSpawns 0 TotalCurrency 40 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Giant_Soldier_Rocket_Storm AimOffset "0 0 1000" CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Soldier_Extended_Concheror_Spammer CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Soldier_Extended_Concheror_Spammer CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 12 Pyros { Name "Wave2_Subwave3_Pyros" WaitForAllSpawned "Wave2_Subwave3_GRocketStorm" Where spawnbot_left Where spawnbot_right TotalCount 12 MaxActive 8 SpawnCount 2 WaitBeforeStarting 2 WaitBetweenSpawns 2 TotalCurrency 40 TFBot { Class Pyro Skill Normal ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "airblast disabled" 1 } } } WaveSpawn // 2 GRocket Storm Soldiers and 4 Rapid Fire Concheror Soldiers { Name "Wave2_Subwave3_GRocketStorm2" WaitForAllSpawned "Wave2_Subwave3_GRocketStorm" Where spawnbot_any TotalCount 6 MaxActive 6 SpawnCount 3 WaitBeforeStarting 15 WaitBetweenSpawns 1 TotalCurrency 40 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Giant_Soldier_Rocket_Storm AimOffset "0 0 1000" CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Soldier_Extended_Concheror_Spammer CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Soldier_Extended_Concheror_Spammer CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 12 Pyros { Name "Wave2_Subwave3_Pyros2" WaitForAllSpawned "Wave2_Subwave3_GRocketStorm2" Where spawnbot_left Where spawnbot_right TotalCount 12 MaxActive 8 SpawnCount 2 WaitBeforeStarting 2 WaitBetweenSpawns 2 TotalCurrency 40 TFBot { Class Pyro Skill Normal ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "airblast disabled" 1 } } } WaveSpawn // 3 GRocket Storm Soldiers and 6 Rapid Fire Concheror Soldiers { Name "Wave2_Subwave3_GRocketStorm3" WaitForAllSpawned "Wave2_Subwave3_GRocketStorm2" Where spawnbot_any TotalCount 9 MaxActive 9 SpawnCount 3 WaitBeforeStarting 15 WaitBetweenSpawns 1 TotalCurrency 40 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Giant_Soldier_Rocket_Storm AimOffset "0 0 1000" CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Soldier_Extended_Concheror_Spammer CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Soldier_Extended_Concheror_Spammer CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 6 Pyros and 6 Full-Uber Medics { Name "Wave2_Subwave3_Pyros" WaitForAllSpawned "Wave2_Subwave3_GRocketStorm" Where spawnbot_left Where spawnbot_right TotalCount 12 MaxActive 12 SpawnCount 6 WaitBeforeStarting 2 WaitBetweenSpawns 6 TotalCurrency 40 Squad { TFBot { Class Pyro Skill Normal ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "airblast disabled" 1 } } TFBot { Template T_TFBot_Medic_Uber } } } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`bombpath_clearall_relay`, `Trigger`, null, 6) EntFire(`bombpath_arrows_clear_relay`, `Trigger`, null, 6) EntFire(`bombpath_right_relay`, `Trigger`, null, 6.1) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } // Subwave 1 WaveSpawn // Big Bad Warning { Name "Wave3_Subwave1_WarningCall" WaitBeforeStarting 0 StartWaveWarningSound "npc/strider/striderx_alert5.wav" FirstSpawnWarningSound "ambient/alarms/manhack_alert_pass1.wav" } WaveSpawn // Support GPyros (Up here for wavebar purposes) { Name "Wave3_Subwave2_GPyro" WaitForAllDead "Wave3_Subwave1_RocketTank" Where spawnbot_any Support 1 TotalCount 20 MaxActive 2 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 10 TotalCurrency 100 RandomChoice { Shuffle 1 TFBot { Template T_TFBot_Giant_Pyro Attributes AlwaysCrit BehaviorModifiers Push Attributes IgnoreFlag Tag nav_prefer_flank_left } TFBot { Template T_TFBot_Giant_Pyro Attributes AlwaysCrit BehaviorModifiers Push Attributes IgnoreFlag Tag nav_prefer_flank_right } } } WaveSpawn // 1 Rocket Tank { Name "Wave3_Subwave1_RocketTank" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 0 TotalCurrency 0 FirstSpawnWarningSound "mvm/mvm_tank_start.wav" Tank { Name "combattank_bomb|rocketpod|rocketpod$targetname|BenedictTank^pingsound|npc/combine_gunship/ping_search.wav" Template Tank_Combat_Rocket Health 50000 Speed 50 Skin 1 StartingPathTrackNode "tank_path_a_1" SpawnTemplate "CombatTankBossPart1PT" } } WaveSpawn // 1 GShield Medic { Name "Wave3_Subwave1_GShieldMedic" WaitForAllSpawned "Wave3_Subwave1_RocketTank" Where spawnbot_left TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 40 TFBot { Name "C-69_SHIELD_COMPONENT" Template T_TFBot_Giant_Medic_Shield Health 10000 Attributes UseBossHealthBar Attributes IgnoreEnemies WeaponRestrictions SecondaryOnly Action Mobber CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } InterruptAction { Target "CombatTankBossShielderTarget" AimTarget "CombatTankBossShielderTargetLooker" Delay 0.5 Repeats 0 Duration 25 Cooldown 0.3 Distance 1 } } } WaveSpawn // 30 Repairman Engineers { Name "Wave3_Subwave1_Repairmen" WaitForAllSpawned "Wave3_Subwave1_RocketTank" Where spawnbot Support Limited TotalCount 30 MaxActive 10 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 0.5 TotalCurrency 60 TFBot { Template T_TFBot_Engineer_Wrench_Repairman } } WaveSpawn // 8 Burst Pomson Engineers { Name "Wave3_Subwave1_BurstPomsonEngineers" WaitForAllSpawned "Wave3_Subwave1_RocketTank" Where spawnbot TotalCount 8 MaxActive 6 SpawnCount 2 WaitBeforeStarting 4 WaitBetweenSpawns 3 TotalCurrency 40 RandomChoice { Shuffle 1 TFBot { Template T_TFBot_Engineer_Pomson_Burst BehaviorModifiers Push Tag nav_prefer_flank_left CharacterAttributes { "cannot pick up intelligence" 1 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Engineer_Pomson_Burst BehaviorModifiers Push Tag nav_prefer_flank_right CharacterAttributes { "cannot pick up intelligence" 1 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 1 GHeavy { Name "Wave3_Subwave1_GHeavy" WaitForAllSpawned "Wave3_Subwave1_BurstPomsonEngineers" Where spawnbot_left TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 0 TotalCurrency 20 TFBot { Template T_TFBot_Giant_Heavy BehaviorModifiers Push Tag nav_prefer_flank_left CharacterAttributes { "cannot pick up intelligence" 1 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } WaveSpawn // 1 GHeavy { Name "Wave3_Subwave1_GHeavy" WaitForAllSpawned "Wave3_Subwave1_BurstPomsonEngineers" Where spawnbot_left TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 6 WaitBetweenSpawns 0 TotalCurrency 20 TFBot { Template T_TFBot_Giant_Heavy BehaviorModifiers Push Tag nav_prefer_flank_lower_left CharacterAttributes { "cannot pick up intelligence" 1 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } WaveSpawn // 1 GHeavy { Name "Wave3_Subwave1_GHeavy" WaitForAllSpawned "Wave3_Subwave1_BurstPomsonEngineers" Where spawnbot_right TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 0 TotalCurrency 20 TFBot { Template T_TFBot_Giant_Heavy BehaviorModifiers Push Tag nav_prefer_flank_right CharacterAttributes { "cannot pick up intelligence" 1 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } WaveSpawn // 1 GHeavy { Name "Wave3_Subwave1_GHeavy" WaitForAllSpawned "Wave3_Subwave1_BurstPomsonEngineers" Where spawnbot_right TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 7 WaitBetweenSpawns 0 TotalCurrency 20 TFBot { Template T_TFBot_Giant_Heavy BehaviorModifiers Push Tag nav_prefer_flank_lower_right CharacterAttributes { "cannot pick up intelligence" 1 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } // Subwave 2 WaveSpawn // 12 GRapid Soldiers { Name "Wave3_Subwave2_GRapidSoldier" WaitForAllDead "Wave3_Subwave1_RocketTank" Where spawnbot_any TotalCount 12 MaxActive 6 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 5 TotalCurrency 120 TFBot { Template T_TFBot_Giant_Soldier_Spammer CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } WaveSpawn // 16 Burst Pomson Engineers and 16 Full-Uber Medics { Name "Wave3_Subwave2_BurstPomsonEngineers" WaitForAllDead "Wave3_Subwave1_RocketTank" Where spawnbot_left Where spawnbot_right TotalCount 32 MaxActive 8 SpawnCount 2 WaitBeforeStarting 4 WaitBetweenSpawns 4 TotalCurrency 40 Squad { TFBot { Template T_TFBot_Engineer_Pomson_Burst CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // 50 Supercharged Blaster Scouts { Name "Wave3_Subwave2_Scouts" WaitForAllDead "Wave3_Subwave1_RocketTank" Where spawnbot_any TotalCount 50 MaxActive 6 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 1 TotalCurrency 100 TFBot { Template T_TFBot_Scout_Blaster_Supercharged } } WaveSpawn // 4 GRapid Soldiers { Name "Wave3_Subwave2_GRapidSoldiers2" WaitForAllSpawned "Wave3_Subwave2_GRapidSoldier" Where spawnbot_any TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 6 WaitBetweenSpawns 1 TotalCurrency 80 TFBot { Template T_TFBot_Giant_Soldier_Spammer CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } WaveSpawn // 1 GHeavy and 1 Full-Uber Medic { Name "Wave3_Subwave2_GHeavy" WaitForAllSpawned "Wave3_Subwave2_GRapidSoldier" Where spawnbot_left TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 4 WaitBetweenSpawns 0 TotalCurrency 60 Squad { TFBot { Template T_TFBot_Giant_Heavy BehaviorModifiers Push Tag nav_prefer_flank_left CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // 1 GHeavy and 1 Full-Uber Medic { Name "Wave3_Subwave2_GHeavy" WaitForAllSpawned "Wave3_Subwave2_GRapidSoldier" Where spawnbot_left TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 6 WaitBetweenSpawns 0 TotalCurrency 60 Squad { TFBot { Template T_TFBot_Giant_Heavy BehaviorModifiers Push Tag nav_prefer_flank_lower_left CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // 1 GHeavy and 1 Full-Uber Medic { Name "Wave3_Subwave2_GHeavy" WaitForAllSpawned "Wave3_Subwave2_GRapidSoldier" Where spawnbot_right TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 0 TotalCurrency 60 Squad { TFBot { Template T_TFBot_Giant_Heavy BehaviorModifiers Push Tag nav_prefer_flank_right CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Medic_Uber } } } WaveSpawn // 1 GHeavy and 1 Full-Uber Medic { Name "Wave3_Subwave2_GHeavy" WaitForAllSpawned "Wave3_Subwave2_GRapidSoldier" Where spawnbot_right TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 7 WaitBetweenSpawns 0 TotalCurrency 60 Squad { TFBot { Template T_TFBot_Giant_Heavy BehaviorModifiers Push Tag nav_prefer_flank_lower_right CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Medic_Uber } } } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`bombpath_clearall_relay`, `Trigger`, null, 6) EntFire(`bombpath_arrows_clear_relay`, `Trigger`, null, 6) EntFire(`bombpath_right_upper_relay`, `Trigger`, null, 6.1) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } // Subwave 1 WaveSpawn { Name "Wave4_Subwave1_CEMENT" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 0 FirstSpawnWarningSound music\hl1_song17.mp3 LastSpawnWarningSound ambient\alarms\razortrain_horn1.wav TotalCurrency 0 Tank { Template Tank_Tiny_Kamikaze Health 99994 Speed 300 SpawnTemplate ButHeresTheForcer StartingPathTrackNode "tank_path_a_1" } } WaveSpawn { Name "Wave4_Subwave1_CEMENT" Where spawnbot TotalCount 25 MaxActive 25 SpawnCount 25 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 TFBot { Template T_TFBot_Scout_Sandman Attributes AlwaysCrit Action Mobber CharacterAttributes { "move speed bonus" 1.5 } InterruptAction // Guides them to Repair the Drill Tank { Target "ForcingThemHere" AimTarget "ForcingThemHere" Delay 5.1 Repeats 1 Duration 10 KillAimTarget 1 Distance 50 } AddCond { Index 51 Duration 8.9 } } } WaveSpawn { Name "Wave4_Subwave2_Giant" WaitForAllDead "Wave4_Subwave1_CEMENT" FirstSpawnWarningSound vo\mvm\mght\demoman_mvm_m_gibberish13.mp3 Where spawnbot_any TotalCount 24 MaxActive 15 SpawnCount 6 WaitBeforeStarting 0 WaitBetweenSpawns 16 TotalCurrency 300 Squad { TFBot { Class Demoman Name "Giant Charging Rapid Burst Demo" Action Mobber ClassIcon demo_burst_targe_spammer Health 3300 Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes HoldFireUntilFullReload Attributes SpawnWithFullCharge Item "The Chargin' Targe" ItemAttributes { ItemName "The Chargin' Targe" "charge recharge rate increased" 2 } ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "faster reload rate" 0.3 "fire rate bonus" 0.1 "clip size upgrade atomic" 5 "projectile spread angle penalty" 5 "Projectile speed increased" 1.1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 "override footstep sound set" 4 } } TFBot { Template T_TFBot_Giant_Demoman_Stickybomb_Burst CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Class Demoman Name "Extended Conch Demo" ClassIcon demo_banner_trio_lite Attributes SpawnWithFullCharge Item "The Concheror" CharacterAttributes { "deploy time increased" 0.5 "increase buff duration" 9.0 } Skill Expert Item "Jumper's Jeepcap" } TFBot { Class Demoman Name "Extended Conch Demo" ClassIcon demo_banner_trio_lite Attributes SpawnWithFullCharge Item "The Concheror" CharacterAttributes { "deploy time increased" 0.5 "increase buff duration" 9.0 } Skill Expert Item "Jumper's Jeepcap" } TFBot { Class Demoman Name "Extended Buff Demo" ClassIcon demo_banner_trio_lite Attributes SpawnWithFullCharge Item "The Buff Banner" CharacterAttributes { "deploy time increased" 0.5 "increase buff duration" 9.0 } Skill Expert Item "Jumper's Jeepcap" } TFBot { Class Demoman Name "Extended Backup Demo" ClassIcon demo_banner_trio_lite Attributes SpawnWithFullCharge Item "The Battalion's Backup" CharacterAttributes { "deploy time increased" 0.5 "increase buff duration" 9.0 } Skill Expert Item "Jumper's Jeepcap" } } } WaveSpawn { Name "Wave4_Subwave2_Commons" WaitForAllDead "Wave4_Subwave1_CEMENT" Where spawnbot TotalCount 45 MaxActive 22 SpawnCount 15 WaitBeforeStarting 0 WaitBetweenSpawns 13 TotalCurrency 100 TFBot { Name "Bonk! Demo" Class Demoman Attributes SpawnWithFullCharge Item "Bonk! Atomic Punch" ClassIcon demo_bonk_nys CharacterAttributes { "move speed bonus" 1.25 "deploy time increased" 0.5 "mult effect duration" 1.3 } Skill Expert } } WaveSpawn { Name "Wave4_Subwave2" WaitForAllDead "Wave4_Subwave1_CEMENT" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 15 TotalCurrency 0 RandomChoice { Tank { Template Tank_Tiny_Kamikaze Health 10000 Speed 150 StartingPathTrackNode "tank_path_a_1" } Tank { Template Tank_Tiny_Kamikaze Health 10000 Speed 150 StartingPathTrackNode "tank_path_b_1" } Tank { Template Tank_Tiny_Kamikaze Health 10000 Speed 150 StartingPathTrackNode "tank_path_c_1" } } } WaveSpawn { Name "Wave4_Subwave3_Giants" WaitForAllDead "Wave4_Subwave2_Giant" WaitForAllSpawned "Wave4_Subwave2_Commons" Where spawnbot_backshots TotalCount 8 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 11 TotalCurrency 100 TFBot { MaxVisionRange 400 Action Mobber Name "Giant Cloaking Demoknight" ClassIcon demoknight_d Template T_TFBot_Giant_Demoman_Knight Attributes AlwaysCrit CharacterAttributes { "melee cleave attack" 1 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } AddCond { Index 66 } AddCond { Index 6 } } } WaveSpawn { Name "Wave4_Subwave3_Commons" WaitForAllDead "Wave4_Subwave2_Giant" WaitForAllSpawned "Wave4_Subwave2_Commons" Where spawnbot TotalCount 75 MaxActive 20 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0.5 TotalCurrency 200 TFBot { Class Demoman Name "Burst Fire Demo" ClassIcon demo_burst_ubercanteen_entropy Skill Expert WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "faster reload rate" 1.25 "fire rate bonus" 0.05 "projectile spread angle penalty" 3 } Item "Battery Canteens" ItemAttributes { ItemName "Battery Canteens" "ubercharge" 1 "powerup duration" 10 "powerup charges" 1 } } } WaveSpawn { Name "Wave4_Subwave3" WaitForAllDead "Wave4_Subwave2_Giant" WaitForAllSpawned "Wave4_Subwave2_Commons" Where spawnbot TotalCount 6 MaxActive 3 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 8 TotalCurrency 0 RandomChoice { Tank { Template Tank_Tiny_Kamikaze Health 10000 Speed 150 StartingPathTrackNode "tank_path_a_1" } Tank { Template Tank_Tiny_Kamikaze Health 10000 Speed 150 StartingPathTrackNode "tank_path_b_1" } Tank { Template Tank_Tiny_Kamikaze Health 10000 Speed 150 StartingPathTrackNode "tank_path_c_1" } Tank { Template Tank_Tiny_Kamikaze Health 10000 Speed 150 StartingPathTrackNode "tank_path_d_1" } } } WaveSpawn { Name "Wave4_SubwaveFinal" WaitForAllDead "Wave4_Subwave3_Giants" Where spawnbot TotalCount 5 MaxActive 5 SpawnCount 5 WaitBeforeStarting 5 WaitBetweenSpawns 0 FirstSpawnWarningSound mvm/giant_heavy/giant_heavy_entrance.wav TotalCurrency 300 Squad { NoWaitForFormation 1 TFBot { Name "The Exclusion Zone" Class Demoman ClassIcon demo_stickybomb_nuclear_kai_giant Skill Expert Health 50000 Attributes MiniBoss Attributes HoldFireUntilFullReload Attributes UseBossHealthBar WeaponRestrictions SecondaryOnly CustomEyeGlowColor "13 229 229" Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" Item "NukeLauncher" CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 "override footstep sound set" 4 "hand scale" 2.25 } ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "fire rate penalty" 100 "is_passive_weapon" 1 "override projectile type" 27 } ShootTemplate { Name "StickyNukePT" ItemName "NukeLauncher" AttachToProjectile 1 } } TFBot { Name "Giant Persian Demoknight" Class Demoman ClassIcon demoknight_persian_nys_giant Skill Expert Health 3300 WeaponRestrictions MeleeOnly Item "Sultan's Ceremonial" Item "Ali Baba's Wee Booties" Item "The Persian Persuader" Item "The Splendid Screen" Attributes MiniBoss Tag bot_giant ItemAttributes { ItemName "The Splendid Screen" "attack not cancel charge" 1 "charge time increased" 1 "charge recharge rate increased" 4 "melee cleave attack" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 "override footstep sound set" 4 } } TFBot { Name "Giant Persian Demoknight" Class Demoman ClassIcon demoknight_persian_nys_giant Skill Expert Health 3300 WeaponRestrictions MeleeOnly Item "Sultan's Ceremonial" Item "Ali Baba's Wee Booties" Item "The Persian Persuader" Item "The Splendid Screen" Attributes MiniBoss Tag bot_giant ItemAttributes { ItemName "The Splendid Screen" "attack not cancel charge" 1 "charge time increased" 1 "charge recharge rate increased" 4 "melee cleave attack" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 "override footstep sound set" 4 } } TFBot { Name "Giant Persian Demoknight" Class Demoman ClassIcon demoknight_persian_nys_giant Skill Expert Health 3300 WeaponRestrictions MeleeOnly Item "Sultan's Ceremonial" Item "Ali Baba's Wee Booties" Item "The Persian Persuader" Item "The Splendid Screen" Attributes MiniBoss Tag bot_giant ItemAttributes { ItemName "The Splendid Screen" "attack not cancel charge" 1 "charge time increased" 1 "charge recharge rate increased" 4 "melee cleave attack" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 "override footstep sound set" 4 } } TFBot { Name "Giant Persian Demoknight" Class Demoman ClassIcon demoknight_persian_nys_giant Skill Expert Health 3300 WeaponRestrictions MeleeOnly Item "Sultan's Ceremonial" Item "Ali Baba's Wee Booties" Item "The Persian Persuader" Item "The Splendid Screen" Attributes MiniBoss Tag bot_giant ItemAttributes { ItemName "The Splendid Screen" "attack not cancel charge" 1 "charge time increased" 1 "charge recharge rate increased" 4 "melee cleave attack" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 "override footstep sound set" 4 } } } } WaveSpawn { Name "Wave4_SubwaveFinal" WaitForAllDead "Wave4_Subwave3_Giants" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 2 WaitBetweenSpawns 2 TotalCurrency 0 RandomChoice { Tank { Template Tank_Tiny_Kamikaze Health 10000 Speed 150 StartingPathTrackNode "tank_path_a_1" } Tank { Template Tank_Tiny_Kamikaze Health 10000 Speed 150 StartingPathTrackNode "tank_path_b_1" } Tank { Template Tank_Tiny_Kamikaze Health 10000 Speed 150 StartingPathTrackNode "tank_path_c_1" } Tank { Template Tank_Tiny_Kamikaze Health 10000 Speed 150 StartingPathTrackNode "tank_path_d_1" } } } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`bombpath_clearall_relay`, `Trigger`, null, 6) EntFire(`bombpath_arrows_clear_relay`, `Trigger`, null, 6) EntFire(`bombpath_left_upper_relay`, `Trigger`, null, 6.1) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } // Subwave 1 WaveSpawn // The Man { Name "Wave5_Subwave1_TheMan" Where spawnbot_any TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 FirstSpawnWarningSound "vo/mvm/mght/heavy_mvm_m_specialweapon01.mp3" TFBot { Name "THE Bitch Haver" Template T_TFBot_Giant_Heavy_SteelFist Health 45000 Scale 2 Attributes UseBossHealthBar Attributes AlwaysCrit SpawnTemplate "BitchHaverPT" CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 "head scale" 1.5 "hand scale" 2 } ItemAttributes { ItemName "Fists of Steel" "damage bonus" 1.5 "melee range multiplier" 2 } } } WaveSpawn // 12 GBarrage Medics { Name "Wave5_Subwave1_GBarrageMedics" Where spawnbot_any TotalCount 12 MaxActive 12 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 0.1 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Medic_Crossbow_Barrage CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } ChangeAttributes { Name "LookingAtHim" Delay 0 Repeats 1 } EventChangeAttributes { LookingAtHim { InterruptAction { Target "BitchHaverTarget" AimTarget "BitchHaverTarget" Delay 0.5 Repeats 0 Duration 25 Cooldown 0.3 Distance 100 } } NotLookingAtHim { WeaponRestrictions MeleeOnly ActionOverride Mobber Item "The Ubersaw" CharacterAttributes { "move speed bonus" 3 } } } } } // Subwave 2 WaveSpawn // 2 GBrass Heavies and 8 GBurst Soldiers { Name "Wave5_Subwave2_GBrassHeavy" WaitForAllDead "Wave5_Subwave1_TheMan" Where spawnbot_left TotalCount 10 MaxActive 5 SpawnCount 5 WaitBeforeStarting 2 WaitBetweenSpawns 18 TotalCurrency 100 Squad { NoWaitForFormation 1 FormationSize 200 TFBot { Template T_TFBot_Giant_Heavy_BrassBeast BehaviorModifiers Push Tag nav_prefer_flank_lower_left CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Soldier_Burst_Modded CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Soldier_Burst_Modded CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Soldier_Burst_Modded CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Soldier_Burst_Modded CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 2 GBrass Heavies and 8 GBurst Soldiers { Name "Wave5_Subwave2_GBrassHeavy" WaitForAllDead "Wave5_Subwave1_TheMan" Where spawnbot_right TotalCount 10 MaxActive 5 SpawnCount 5 WaitBeforeStarting 2 WaitBetweenSpawns 18 TotalCurrency 100 Squad { NoWaitForFormation 1 FormationSize 200 TFBot { Template T_TFBot_Giant_Heavy_BrassBeast BehaviorModifiers Push Tag nav_prefer_flank_lower_left CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Soldier_Burst_Modded CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Soldier_Burst_Modded CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Soldier_Burst_Modded CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Soldier_Burst_Modded CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 50 Supercharged Pyros { Name "Wave5_Subwave2_Pyros" WaitForAllDead "Wave5_Subwave1_TheMan" Where spawnbot_any TotalCount 50 MaxActive 6 SpawnCount 2 WaitBeforeStarting 2 WaitBetweenSpawns 1 TotalCurrency 100 TFBot { Template T_TFBot_Pyro_Supercharged Attributes AlwaysCrit } } // Subwave 3 WaveSpawn // 6 GSledge Pyros and 6 GCharged Medics { Name "Wave5_Subwave3_SledgeThrower" WaitForAllSpawned "Wave5_Subwave2_GBrassHeavy" Where spawnbot TotalCount 12 MaxActive 6 SpawnCount 2 WaitBeforeStarting 18 WaitBetweenSpawns 8 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Pyro_Homewrecker_Launcher Attributes AlwaysCrit CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } TFBot { Template T_TFBot_Giant_Medic_Charged CharacterAttributes { "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "airblast vertical vulnerability multiplier" 0.01 } } } } WaveSpawn // 24 Bazooka Soldiers { Name "Wave5_Subwave3_Soldiers" WaitForAllSpawned "Wave5_Subwave2_GBrassHeavy" Where spawnbot_left TotalCount 24 MaxActive 8 SpawnCount 8 WaitBeforeStarting 18 WaitBetweenSpawns 16 TotalCurrency 60 TFBot { Template T_TFBot_Soldier_Bazooka Skill Expert BehaviorModifiers Push Attributes IgnoreFlag Tag nav_prefer_flank_lower_left } } WaveSpawn // 24 Bazooka Soldiers { Name "Wave5_Subwave3_Soldiers" WaitForAllSpawned "Wave5_Subwave2_GBrassHeavy" Where spawnbot_right TotalCount 24 MaxActive 8 SpawnCount 8 WaitBeforeStarting 26 WaitBetweenSpawns 16 TotalCurrency 60 TFBot { Template T_TFBot_Soldier_Bazooka Skill Expert BehaviorModifiers Push Attributes IgnoreFlag Tag nav_prefer_flank_lower_right } } // Subwave 4 WaveSpawn // Big Bad Warning { WaitForAllSpawned "Wave5_Subwave3_SledgeThrower" WaitBeforeStarting 11 StartWaveWarningSound "npc/strider/striderx_pain8.wav" FirstSpawnWarningSound "ambient/alarms/manhack_alert_pass1.wav" } WaveSpawn // Benedict Tank (He's Back) { Name "Wave5_Subwave4_CannonTank" WaitForAllSpawned "Wave5_Subwave3_SledgeThrower" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 16 WaitBetweenSpawns 0 TotalCurrency 100 FirstSpawnWarningSound "mvm/mvm_tank_start.wav" LastSpawnWarningSound "music/hl2_song31.mp3" Tank { Name "combattank_bomb|cannon$targetname|BenedictTank^pingsound|npc/combine_gunship/ping_search.wav" Template Tank_Combat_Cannon Health 80000 StartingPathTrackNode "tank_path_a_1" Skin 1 IsCrit 1 SpawnTemplate "CombatTankBossPart2PT" } FirstSpawnOutput { Target Player Action $DisplayTextChat Param "??? has been RETOOLED into a Cannon Tank!" } } WaveSpawn // Support GScouts { Name "Wave5_Subwave4_GScouts" WaitForAllSpawned "Wave5_Subwave4_CannonTank" Where spawnbot_any Support 1 TotalCount 20 MaxActive 3 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 4 TotalCurrency 40 TFBot { Template T_TFBot_Giant_Scout Action Mobber } } WaveSpawn // Support GFAN Scouts { Name "Wave5_Subwave4_GScouts" WaitForAllSpawned "Wave5_Subwave4_CannonTank" Where spawnbot_any Support 1 TotalCount 20 MaxActive 3 SpawnCount 1 WaitBeforeStarting 6 WaitBetweenSpawns 4 TotalCurrency 20 TFBot { Template T_TFBot_Giant_Scout_FAN Action Mobber } } WaveSpawn // Support GLaser Scouts { Name "Wave5_Subwave4_GScouts" WaitForAllSpawned "Wave5_Subwave4_CannonTank" Where spawnbot_any Support 1 TotalCount 20 MaxActive 3 SpawnCount 1 WaitBeforeStarting 8 WaitBetweenSpawns 4 TotalCurrency 20 TFBot { Template T_TFBot_Giant_Scout_Laser Action Mobber } } WaveSpawn // Support Overdrive Gunslinger Engineers (Subwave 1, For Wavebar Purposes) { Name "Wave5_Subwave1_Gunslingers" Where spawnbot_any Support 1 TotalCount 50 MaxActive 6 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 8 TotalCurrency 100 TFBot { Template T_TFBot_Engineer_Gunslinger_Battle_Speed } } } }