//by royal //the goal was to make a mission without any spell bots and 3 or less custom bots each wave (wave 7 ignores this rule) //but by the end it just evolved into this mega custom mess of video game references and tech showcase of cool shits I found out how to do but I like it better this way //crit pumpkin and pumpkin bombs are cool and swag I'm keeping them in and you can't do anything about it //unless you're a judge //in which case I will cry #base robot_standard.pop #base robot_giant.pop tomboy { StartingCurrency 1200 RespawnWaveTime 2 CanBotsAttackWhileInSpawnRoom no Advanced 1 //EventPopfile Halloween //using these cause the skeletons to look fucky //ZombiesNoWave666 1 AddSentryBusterWhenDamageDealtExceeds 3000 AddSentryBusterWhenKillCountExceeds 15 ImprovedAirblast 0 //why is this on by default NoThrillerTaunt 1 //I don't like the thriller taunt it's lame it's annoying and comes up everytime I try to do a cool default taunt //NoMissionInfo 1 NoRomevisionCosmetics 1 //BotsAreHumans 2 //even with this set to 2 you still can't sap robots unless you replace their model to the class model BotHumansHaveRobotVoice 0 ForceHoliday 2 TextPrintTime 0 FixSetCustomModelInput 1 //thank you raf CustomUpgradesFile mvm_upgrades_tomboy3.txt //no real tank in the mission DisableSound "Announcer.MVM_Tank_Planted" DisableSound "Announcer.MVM_Tank_Alert_Spawn" DisableSound "Announcer.MVM_Tank_Alert_Another" DisableSound "Announcer.MVM_Tank_Alert_Multiple" DisableSound "Announcer.MVM_Tank_Alert_Halfway" DisableSound "Announcer.MVM_Tank_Alert_Halfway_Multiple" DisableSound "Announcer.MVM_Tank_Alert_Near_Hatch" DisableSound "Announcer.MVM_Tank_Alert_Deploying" //no real spy in the mission DisableSound "Announcer.MVM_Spy_Alert" DisableSound "Announcer.mvm_spybot_death" DisableSound "Announcer.mvm_spybot_death_all" PointTemplates { Literally_Nothing { } Combo_Pyro { NoFixup 1 logic_relay { "targetname" "combo_primary_to_secondary" "spawnflags" "2" "OnTrigger" "!self,EnableRefire,,0,-1" "OnTrigger" "!activator,$RemoveItemAttribute,fire input on hit|0,0,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,1,0,-1" "OnTrigger" "!activator,$AddPlayerAttribute,disable weapon switch|1,0.01,-1" "OnTrigger" "!activator,$RemovePlayerAttribute,disable weapon switch,0.6,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,0,0.61,-1" "OnTrigger" "!activator,$AddItemAttribute,fire input on hit|combo_primary_to_secondary^Trigger^|0,0.62,-1" } logic_relay { "targetname" "combo_primary_to_secondary_longhold" "spawnflags" "2" "OnTrigger" "!self,EnableRefire,,0,-1" "OnTrigger" "!activator,$RemoveItemAttribute,fire input on hit|0,0,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,1,0,-1" "OnTrigger" "!activator,$AddPlayerAttribute,disable weapon switch|1,0.01,-1" "OnTrigger" "!activator,$RemovePlayerAttribute,disable weapon switch,1.5,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,0,1.51,-1" "OnTrigger" "!activator,$AddItemAttribute,fire input on hit|combo_primary_to_secondary_longhold^Trigger^|0,1.52,-1" } } Buster_Upgrade_Station { logic_auto { "OnMapSpawn" "wave_start_relay,AddOutput,OnTrigger extra_forward_upgrade_station:Disable::0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger extra_forward_upgrade_station:Enable::0:-1" } func_upgradestation { "origin" "-3003.77 6531.5 183.77" "mins" "-240 -48 -191" "maxs" "240 48 191" } func_upgradestation { "targetname" "extra_forward_upgrade_station" "origin" "-1619.5 1001.24 215.77" "mins" "-48 -200 -159" "maxs" "48 200 159" } } Path_Choose { NoFixup 1 logic_relay { "targetname" "force_right_path_relay" "OnTrigger" "bombpath_right_nav_avoid,Disable,,1,-1" "OnTrigger" "bombpath_arrows_left,Disable,,1,-1" "OnTrigger" "bombpath_left_nav_avoid,Enable,,1,-1" "OnTrigger" "bombpath_arrows_right,Enable,,1.1,-1" } logic_relay { "targetname" "force_left_path_relay" "OnTrigger" "bombpath_left_nav_avoid,Disable,,1,-1" "OnTrigger" "bombpath_arrows_clear_relay,Trigger,,1,-1" "OnTrigger" "bombpath_right_nav_avoid,Enable,,1,-1" "OnTrigger" "bombpath_arrows_left,Enable,,1.1,-1" } } Giant_Portal //extra portal { NoFixup 1 info_target { "targetname" "giant_portal_position" } logic_relay { "targetname" "stop_giant_portal" "OnTrigger" "giant_portal_activate*,Stop,,0,-1" } logic_auto { "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger stop_giant_portal:Trigger::0:-1" } info_particle_system { "origin" "73.5 -111.9 630.218" "targetname" "giant_portal_activate0" "start_active" "0" "flag_as_weather" "0" "effect_name" "wormhole_green_large" "angles" "0 180 0" "OnUser1" "giant_portal_activate*,Stop,,0,-1" "OnUser1" "giant_portal_position,$TeleportToEntity,giant_portal_activate0,0,-1" "OnUser1" "!self,Stop,,0,-1" "OnUser1" "!self,Start,,0.01,-1" } info_particle_system { "origin" "-1264 992 630.218" "targetname" "giant_portal_activate1" "start_active" "0" "flag_as_weather" "0" "effect_name" "wormhole_green_large" "angles" "0 180 0" "OnUser1" "giant_portal_activate*,Stop,,0,-1" "OnUser1" "tele_forward_sound1,PlaySound,,0,-1" "OnUser1" "giant_portal_position,$TeleportToEntity,giant_portal_activate1,0,-1" "OnUser1" "!self,Stop,,0,-1" "OnUser1" "!self,Start,,0.01,-1" } info_particle_system { "origin" "-688 1968 630.218" "targetname" "giant_portal_activate2" "start_active" "0" "flag_as_weather" "0" "effect_name" "wormhole_green_large" "angles" "0 180 0" "OnUser1" "giant_portal_activate*,Stop,,0,-1" "OnUser1" "tele_forward_sound2,PlaySound,,0,-1" "OnUser1" "giant_portal_position,$TeleportToEntity,giant_portal_activate2,0,-1" "OnUser1" "!self,Stop,,0,-1" "OnUser1" "!self,Start,,0.01,-1" } info_particle_system { "origin" "-1760 3264 630.218" "targetname" "giant_portal_activate3" "start_active" "0" "flag_as_weather" "0" "effect_name" "wormhole_green_large" "angles" "0 180 0" "OnUser1" "giant_portal_activate*,Stop,,0,-1" "OnUser1" "tele_forward_sound3,PlaySound,,0,-1" "OnUser1" "giant_portal_position,$TeleportToEntity,giant_portal_activate3,0,-1" "OnUser1" "!self,Stop,,0,-1" "OnUser1" "!self,Start,,0.01,-1" } info_particle_system { "origin" "-2240 1952 630.218" "targetname" "giant_portal_activate4" "start_active" "0" "flag_as_weather" "0" "effect_name" "wormhole_green_large" "angles" "0 180 0" "OnUser1" "giant_portal_activate*,Stop,,0,-1" "OnUser1" "tele_forward_sound4,PlaySound,,0,-1" "OnUser1" "giant_portal_position,$TeleportToEntity,giant_portal_activate4,0,-1" "OnUser1" "!self,Stop,,0,-1" "OnUser1" "!self,Start,,0.01,-1" } info_particle_system { "origin" "-2272 3952 630.218" "targetname" "giant_portal_activate5" "start_active" "0" "flag_as_weather" "0" "effect_name" "wormhole_green_large" "angles" "0 180 0" "OnUser1" "giant_portal_activate*,Stop,,0,-1" "OnUser1" "tele_forward_sound5,PlaySound,,0,-1" "OnUser1" "giant_portal_position,$TeleportToEntity,giant_portal_activate5,0,-1" "OnUser1" "!self,Stop,,0,-1" "OnUser1" "!self,Start,,0.01,-1" } info_particle_system { "origin" "-3632 3360 630.218" "targetname" "giant_portal_activate6" "start_active" "0" "flag_as_weather" "0" "effect_name" "wormhole_green_large" "angles" "0 180 0" "OnUser1" "giant_portal_activate*,Stop,,0,-1" "OnUser1" "tele_forward_sound6,PlaySound,,0,-1" "OnUser1" "giant_portal_position,$TeleportToEntity,giant_portal_activate6,0,-1" "OnUser1" "!self,Stop,,0,-1" "OnUser1" "!self,Start,,0.01,-1" } } SpawnAtGiantPortal { OnSpawnOutput { Target "!activator" Action "$TeleportToEntity" Param "giant_portal_position" Delay 0.05 } } Bomb_Replacement { NoFixup 1 logic_auto { "OnMapSpawn" "intel_rad_trigger,Trigger,,0,-1" "OnMapSpawn" "wave_start_relay,AddOutput,OnTrigger intel:Kill:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger intel_rad_trigger:Trigger:0:-1" } logic_relay { "targetname" "intel_rad_trigger" "OnTrigger" "intel_rad,Enable,,0,-1" "OnTrigger" "intel,Kill,,0,-1" "OnTrigger" "bombinomicon_prop,Enable,,0,-1" "OnTrigger" "bombinomicon_prop,SetParent,intel_rad,0.1,-1" } logic_relay { "targetname" "intel_rad_disable" "OnTrigger" "intel_rad,Disable,,0,-1" "OnTrigger" "bombinomicon_prop,Disable,,0,-1" } item_teamflag { "origin" "-926.5 -533.3 260.0" "trail_effect" "1" "TeamNum" "3" "targetname" "intel_rad" "StartDisabled" "1" "skin" "0" "ScoringType" "0" "ReturnTime" "60000000" "ReturnBetweenWaves" "1" "rendercolor" "255 255 255" "renderamt" "255" "physdamagescale" "1.0" "NeutralType" "1" "MinAnimTime" "5" "MaxAnimTime" "10" "GameType" "1" "flag_trail" "flagtrail" "flag_paper" "player_intel_papertrail" "flag_model" "models/empty.mdl" "flag_icon" "../hud/objectives_flagpanel_carried" "angles" "0 180 0" } prop_dynamic { "origin" "-926.5 -533.3 260.0" "targetname" "bombinomicon_prop" "spawnflags" "0" "solid" "0" "rendercolor" "255 255 255" "renderamt" "255" "RandomAnimation" "0" "pressuredelay" "0" "physdamagescale" "1.0" "PerformanceMode" "0" "modelscale" "0.6" "model" "models/props_halloween/bombonomicon.mdl" "MinAnimTime" "5" "MaxAnimTime" "10" "body" "0" "angles" "-90 0 -90" "StartDisabled" "1" } } Stickybomb_Flicker_Particle { NoFixup 1 OnSpawnOutput { Target "sticky_flicker" Action "Kill" Delay 1 } info_particle_system { "targetname" "sticky_flicker" "effect_name" "stickybomb_pulse_red" "flag_as_weather" "0" "start_active" "1" } } Stickybomb_Flicker_Particle_Blue { NoFixup 1 OnSpawnOutput { Target "sticky_flicker" Action "Kill" Delay 1 } info_particle_system { "targetname" "sticky_flicker" "effect_name" "stickybomb_pulse_blue" "flag_as_weather" "0" "start_active" "1" } } Explosion_Particle { OnSpawnOutput { Target "explosion_particle" Action "Kill" Delay 1 } info_particle_system { "targetname" "explosion_particle" "effect_name" "ExplosionCore_MidAir" "flag_as_weather" "0" "start_active" "1" } } Explosive_Tip { KeepAlive 1 OnSpawnOutput { Target "tip_explosion" Action "$InheritOwner" Param "!activator" Delay 0.1 } OnSpawnOutput { Target "@c@!activator" Action "FireUser1" Delay 0 } OnSpawnOutput { Target "explosive_tip_relay" Action "FireUser1" Delay 0 } OnSpawnOutput { Target "explosive_tip_relay" Action "FireUser1" Delay 0 } logic_relay { "targetname" "explosive_tip_relay" "OnUser1" "!self,Kill,,5,-1" } info_target { "targetname" "detonate_position" "OnUser1" "!self,Kill,,5,-1" } tf_point_weapon_mimic { "targetname" "tip_explosion" "spawnflags" "1" "angles" "0 0 0" "origin" "-1 0 -3" "teamnum" "2" "Crits" "0" "Damage" "75" "ModelScale" "1" "SpeedMax" "1000000" "SpeedMin" "1000000" "SplashRadius" "144" "SpreadAngle" "0" "WeaponType" "3" "OnUser1" "!self,FireOnce,,2,-1" "OnUser4" "!self,DetonateStickies,,0,-1" } logic_measure_movement { "MeasureReference" "detonate_position" "MeasureTarget" "detonate_position" "MeasureType" "0" "Target" "tip_explosion" "TargetReference" "detonate_position" "TargetScale" "1" } env_entity_maker { "targetname" "sticky_flicker_maker" "EntityTemplate" "Stickybomb_Flicker_Particle" "PostSpawnDirection" "0 0 0" "PostSpawnDirectionVariance" "0" "PostSpawnInheritAngles" "0" "PostSpawnSpeed" "0" "spawnflags" "0" "OnUser1" "!self,ForceSpawn,,1,-1" "OnUser1" "!self,Kill,,2.1,-1" } ambient_generic { "targetname" "sticky_sound" "message" "weapons/stickybomblauncher_det.wav" "radius" "4000" "health" "5" "spawnflags" "48" "OnUser1" "!self,PlaySound,,1,-1" "OnUser1" "!self,Kill,,3,-1" } logic_measure_movement { "MeasureReference" "detonate_position" "MeasureTarget" "detonate_position" "MeasureType" "0" "Target" "sticky_sound" "TargetReference" "detonate_position" "TargetScale" "1" } filter_activator_tfteam { "targetname" "filter_is_blu" "Negated" "0" "TeamNum" "3" "OnUser1" "!self,Kill,,2.1,-1" } trigger_hurt //for some reason I can't explain using a trigger_once or trigger_multiple just blocks the projectile { "targetname" "attach_to_enemy" "origin" "0 0 0" "mins" "-3 -3 -3" "maxs" "3 3 3" "Damage" "0" "spawnflags" "1" "filtername" "filter_is_blu" "OnStartTouch" "detonate_position,SetParent,!activator,0.1,-1" "OnStartTouch" "!self,Disable,,0,-1" "OnUser1" "!self,Kill,,2.1,-1" } RemoveIfKilled "explosive_tip_relay" } Explosive_Tip_Bot //explosive tip variant used by blu bots, base splash damage is 100 { KeepAlive 1 OnSpawnOutput { Target "tip_explosion" Action "$InheritOwner" Param "!activator" Delay 0.1 } OnSpawnOutput { Target "@c@!activator" Action "FireUser1" Delay 0 } OnSpawnOutput { Target "explosive_tip_relay" Action "FireUser1" Delay 0 } OnSpawnOutput { Target "explosive_tip_relay" Action "FireUser1" Delay 0 } logic_relay { "targetname" "explosive_tip_relay" "OnUser1" "!self,Kill,,5,-1" } info_target { "targetname" "detonate_position" "OnUser1" "!self,Kill,,5,-1" } tf_point_weapon_mimic { "targetname" "tip_explosion" "spawnflags" "1" "angles" "0 0 0" "origin" "-1 0 -3" "teamnum" "3" "Crits" "0" "Damage" "100" "ModelScale" "1" "SpeedMax" "1000000" "SpeedMin" "1000000" "SplashRadius" "144" "SpreadAngle" "0" "WeaponType" "3" "OnUser1" "!self,FireOnce,,2,-1" "OnUser4" "!self,DetonateStickies,,0,-1" } logic_measure_movement { "MeasureReference" "detonate_position" "MeasureTarget" "detonate_position" "MeasureType" "0" "Target" "tip_explosion" "TargetReference" "detonate_position" "TargetScale" "1" } env_entity_maker { "targetname" "sticky_flicker_maker" "EntityTemplate" "Stickybomb_Flicker_Particle_Blue" "PostSpawnDirection" "0 0 0" "PostSpawnDirectionVariance" "0" "PostSpawnInheritAngles" "0" "PostSpawnSpeed" "0" "spawnflags" "0" "OnUser1" "!self,ForceSpawn,,1,-1" "OnUser1" "!self,Kill,,2.1,-1" } ambient_generic { "targetname" "sticky_sound" "message" "weapons/stickybomblauncher_det.wav" "radius" "4000" "health" "5" "spawnflags" "48" "OnUser1" "!self,PlaySound,,1,-1" "OnUser1" "!self,Kill,,3,-1" } logic_measure_movement { "MeasureReference" "detonate_position" "MeasureTarget" "detonate_position" "MeasureType" "0" "Target" "sticky_sound" "TargetReference" "detonate_position" "TargetScale" "1" } filter_activator_tfteam { "targetname" "filter_is_red" "Negated" "0" "TeamNum" "2" "OnUser1" "!self,Kill,,2.1,-1" } trigger_hurt //for some reason I can't explain using a trigger_once or trigger_multiple just blocks the projectile { "targetname" "attach_to_enemy" "origin" "0 0 0" "mins" "-3 -3 -3" "maxs" "3 3 3" "Damage" "0" "spawnflags" "1" "filtername" "filter_is_red" "OnStartTouch" "detonate_position,SetParent,!activator,0.1,-1" "OnStartTouch" "!self,Disable,,0,-1" "OnUser1" "!self,Kill,,2.1,-1" } RemoveIfKilled "explosive_tip_relay" } HHH_Hitbox_Fix { OnSpawnOutput { Target "!activator" Action "AddOutput" Param "modelscale 1" Delay 0.1 } OnParentKilledOutput { Target "!activator" Action "AddOutput" Param "modelscale 1" Delay 0 } } HHH_Stun_Hitbox { OnSpawnOutput { Target "hhh_stun" Action "FireUser1" Delay 16 } filter_activator_tfteam { "targetname" "filter_is_red" "Negated" "0" "TeamNum" "2" } trigger_stun { "targetname" "hhh_stun" "origin" "0 0 0" "mins" "-350.0 -350.0 -350.0" "maxs" "350.0 350.0 350.0" "spawnflags" "1" "StartDisabled" "1" "solid" "0" "filtername" "filter_is_red" "stun_type" "2" "stun_effects" "1" "stun_duration" "3" "OnUser1" "!self,Enable,,0,-1" "OnUser1" "!self,Disable,,0.1,-1" "OnUser1" "!self,FireUser1,,16,-1" } } HHH_Footstep_Particle { OnSpawnOutput { Target "hhh_footstep" Action "Kill" Delay 3 } info_particle_system { "targetname" "hhh_footstep" "effect_name" "halloween_boss_foot_impact" "flag_as_weather" "0" "start_active" "1" } } HHH_Footstep { OnSpawnOutput { Target "hhh_footstep_maker" Action "FireUser1" Delay 0 } info_target { "targetname" "hhh_position" "origin" "0 0 0" } env_entity_maker { "targetname" "hhh_footstep_maker" "EntityTemplate" "HHH_Footstep_Particle" "PostSpawnDirection" "0 0 0" "PostSpawnDirectionVariance" "0" "PostSpawnInheritAngles" "0" "PostSpawnSpeed" "0" "spawnflags" "0" "OnUser1" "!self,ForceSpawnAtEntityOrigin,hhh_position,0,-1" "OnUser1" "!self,FireUser1,,0.5,-1" } } HHH_Death_Init { KeepAlive 1 OnParentKilledOutput { Target "hhh_death_effect" Action "FireUser1" Delay 0 } info_particle_system { "targetname" "hhh_death_effect" "effect_name" "halloween_boss_death" "flag_as_weather" "0" "start_active" "0" "OnUser1" "!self,Start,,0,-1" "OnUser1" "!self,Kill,,5,-1" //cleanup } } Portal_Particle { NoFixup 1 OnSpawnOutput { Target "portal_particle" Action "Kill" Delay 4 } info_particle_system { "targetname" "portal_particle" "effect_name" "wormhole_green_large"//"utaunt_portalswirl_purple_vortex" "flag_as_weather" "0" "start_active" "1" } } Spell_Effect_Red { NoFixup 1 OnSpawnOutput { Target "spell_effect_red" Action "Kill" Delay 5 } info_particle_system { "targetname" "spell_effect_red" "effect_name" "spell_cast_wheel_red" "flag_as_weather" "0" "start_active" "1" } } Spell_Effect_Blue { NoFixup 1 OnSpawnOutput { Target "spell_effect_blue" Action "Kill" Delay 5 } info_particle_system { "targetname" "spell_effect_blue" "effect_name" "spell_cast_wheel_blue" "flag_as_weather" "0" "start_active" "1" } } Necromancer_Summon_Teleport_Chief { filter_tf_bot_has_tag { "targetname" "filter_necromancer_chief_summon" "Negated" "0" "require_all_tags" "1" "tags" "bot_summoned_chief" } trigger_teleport { "targetname" "summon_teleport_chief" "origin" "1512.0 136.7 -85.9" "mins" "-1000.0 -1000.0 -1000.0" "maxs" "1000.0 1000.0 1000.0" "spawnflags" "1" "filtername" "filter_necromancer_chief_summon" "target" "necromancer_position_chief" } } Necromancer_Chief_Summon_Logic { NoFixup 1 OnSpawnOutput { Target "spell_effect_maker" Action "FireUser1" Delay 12 } OnSpawnOutput { Target "necromancer_position_chief" Action "FireUser1" Delay 12 } OnParentKilledOutput { Target "summon_teleport_chief" Action "Kill" Delay 0 } logic_case { "targetname" "summon_randomizer_chief" "origin" "0 0 0" "OnCase01" "summon_chief1,Enable,,0,-1" "OnCase01" "summon_chief1,Disable,,0.1,-1" "OnCase02" "summon_chief2,Enable,,0,-1" "OnCase02" "summon_chief2,Disable,,0.1,-1" "OnCase03" "summon_chief3,Enable,,0,-1" "OnCase03" "summon_chief3,Disable,,0.1,-1" } info_target { "targetname" "necromancer_position_chief" "origin" "0 0 20" "OnUser1" "summon_randomizer_chief,PickRandomShuffle,,0,-1" "OnUser1" "summon_randomizer_chief,PickRandomShuffle,,0,-1" //summons 2 at once "OnUser1" "necromancer_position_chief,FireUser1,,16,-1" //interval + 1 } env_entity_maker { "targetname" "spell_effect_maker" "EntityTemplate" "Spell_Effect_Blue" "PostSpawnDirection" "0 0 0" "PostSpawnDirectionVariance" "0" "PostSpawnInheritAngles" "0" "PostSpawnSpeed" "0" "spawnflags" "0" "OnUser1" "!self,ForceSpawnAtEntityOrigin,necromancer_position_chief,0,-1" "OnUser1" "!self,FireUser1,,16,-1" //interval + 1 } } Necromancer_Chief_On_Death { NoFixup 1 KeepAlive 1 OnParentKilledOutput { Target "portal_effect_maker" Action "FireUser1" Delay 0 } OnParentKilledOutput { Target "tfc_heav_player_stuck_prevention" Action "FireUser1" Delay 0 } filter_tf_bot_has_tag { "targetname" "filter_tfc_heavy" "Negated" "0" "require_all_tags" "1" "tags" "tfc_heavy" } trigger_teleport { "targetname" "death_teleport_chief" "origin" "0 0 0" "mins" "-10000.0 -10000.0 -10000.0" "maxs" "10000.0 10000.0 10000.0" "spawnflags" "1" "filtername" "filter_tfc_heavy" "target" "chief_necromancer_position" "OnStartTouch" "portal_effect_maker,Kill,,0,-1" "OnStartTouch" "chief_necromancer_position,Kill,,0,-1" "OnStartTouch" "filter_tfc_heavy,Kill,,0,-1" "OnStartTouch" "!self,Kill,,0.1,-1" } filter_activator_tfteam { "targetname" "chief_filter_is_red" "Negated" "0" "TeamNum" "2" } trigger_multiple { "targetname" "tfc_heav_player_stuck_prevention" "origin" "0 0 0" "mins" "-100.0 -100.0 -100.0" "maxs" "100.0 100.0 100.0" "spawnflags" "1" "StartDisabled" "1" "filtername" "chief_filter_is_red" "OnStartTouch" "!activator,AddOutput,BaseVelocity 0 0 1000,0,-1" "OnUser1" "!self,Enable,,3,-1" "OnUser1" "!self,Disable,,4,-1" } info_target { "targetname" "chief_necromancer_position" "origin" "0 0 0" } env_entity_maker { "targetname" "portal_effect_maker" "EntityTemplate" "Portal_Particle" "PostSpawnDirection" "0 0 0" "PostSpawnDirectionVariance" "0" "PostSpawnInheritAngles" "0" "PostSpawnSpeed" "0" "spawnflags" "0" "OnUser1" "!self,ForceSpawnAtEntityOrigin,chief_necromancer_position,0,-1" } } HHH_Footstep { OnSpawnOutput { Target "hhh_footstep_maker" Action "FireUser1" Delay 0 } info_target { "targetname" "hhh_position" "origin" "0 0 0" } env_entity_maker { "targetname" "hhh_footstep_maker" "EntityTemplate" "HHH_Footstep_Particle" "PostSpawnDirection" "0 0 0" "PostSpawnDirectionVariance" "0" "PostSpawnInheritAngles" "0" "PostSpawnSpeed" "0" "spawnflags" "0" "OnUser1" "!self,ForceSpawnAtEntityOrigin,hhh_position,0,-1" "OnUser1" "!self,FireUser1,,0.5,-1" } } Payload_Checkpoints { NoFixup 1 // game_round_win // { // "targetname" "red_win" // "TeamNum" "2" // "switch_teams" "0" // "force_map_reset" "1" // "OnRoundWin" "upgrade_station_forward_enable_logic,Trigger,,0,-1" // } logic_relay { "targetname" "payload_death_relay" "OnTrigger" "bots_win,RoundWin,,0,-1" } logic_relay { "targetname" "wave4_giants_all_killed" "OnTrigger" "wave4_all_dead,SetValue,0,0,-1" "OnTrigger" "wave4_all_dead,Compare,,0.1,-1" } logic_relay { "targetname" "wave4_commons_all_killed" "OnTrigger" "wave4_all_dead,SetCompareValue,0,0,-1" "OnTrigger" "wave4_all_dead,Compare,,0.1,-1" } logic_compare { "targetname" "wave4_all_dead" "CompareValue" "2" "InitialValue" "3" "OnEqualTo" "payloadtank,SetSpeed,90,0,-1" "OnEqualTo" "pitstop_annotation,Kill,,0,-1" "OnEqualTo" "pitstop_relay,Kill,,0,-1" } logic_relay { "targetname" "pitstop_relay" "OnTrigger" "payloadtank,SetSpeed,0,0,-1" "OnTrigger" "pitstop_annotation,Show,0,0,-1" } logic_auto { //1st checkpoint "OnMapSpawn" "payload_red_10,AddOutput,OnPass tele_forward_relay_disable6:Trigger::0:-1,0,-1" "OnMapSpawn" "payload_red_10,AddOutput,OnPass tele_forward_relay_trigger3:Trigger::0.01:-1,0,-1" "OnMapSpawn" "payload_red_10,AddOutput,OnPass giant_portal_activate2:FireUser1::0:-1,1,-1" //2nd checkpoint "OnMapSpawn" "payload_red_25,AddOutput,OnPass tele_forward_relay_disable3:Trigger::0:-1,0,-1" "OnMapSpawn" "payload_red_25,AddOutput,OnPass tele_forward_relay_trigger2:Trigger::0.01:-1,0,-1" "OnMapSpawn" "payload_red_25,AddOutput,OnPass giant_portal_activate1:FireUser1::0:-1,1,-1" //3rd checkpoint "OnMapSpawn" "payload_red_32,AddOutput,OnPass tele_forward_relay_disable2:Trigger::0:-1,0,-1" "OnMapSpawn" "payload_red_32,AddOutput,OnPass tele_forward_relay_trigger1:Trigger::0.01:-1,0,-1" "OnMapSpawn" "payload_red_32,AddOutput,OnPass giant_portal_activate0:FireUser1::0:-1,1,-1" //pitstop checkpoint "OnMapSpawn" "payload_red_38,AddOutput,OnPass pitstop_relay:Trigger::0:-1,0,-1" //goal "OnMapSpawn" "payload_red_44,AddOutput,OnPass tele_forward_relay_disable1:Trigger::0:-1,0,-1" "OnMapSpawn" "payload_red_44,AddOutput,OnPass stop_giant_portal:Trigger::0:-1,0,-1" "OnMapSpawn" "payload_red_44,AddOutput,OnPass breadman:$Suicide::0:-1,0,-1" "OnMapSpawn" "payload_red_44,AddOutput,OnPass payload_death_relay:Disable::0:-1,0,-1" "OnMapSpawn" "payload_red_44,AddOutput,OnPass payloadtank:Kill::0:-1,0.1,-1" //prevent explosion smoke } } Wave4Logic { NoFixup 1 OnSpawnOutput //disable the bomb for the wave { Target "intel_rad_disable" Action "Trigger" Delay 0.1 } OnSpawnOutput { Target "wave4_bots_start_relay" Action "Trigger" Delay 5 } OnSpawnOutput { Target "wave4_teleporter_annotation" Action "Show" Delay 0.1 } OnSpawnOutput { Target "wave4_teleporter*" Action "Kill" Delay 25 } logic_relay { "targetname" "wave4_bots_start_relay" "OnTrigger" "payloadtank,SetSpeed,60,0,-1" "OnTrigger" "tele_forward_relay_trigger6,Trigger,,0,-1" "OnTrigger" "giant_portal_activate3,FireUser1,,0,-1" } info_target { "targetname" "bread_position" "origin" "430.7 -216.2 53.2" "angles" "180 180 0" } filter_tf_bot_has_tag { "targetname" "filter_bread" "Negated" "0" "require_all_tags" "1" "tags" "bread_monster" } trigger_teleport { "targetname" "bead_teleporter" "origin" "0 0 0" "mins" "-50000.0 -50000.0 -50000.0" "maxs" "50000.0 50000.0 50000.0" "spawnflags" "1" "filtername" "filter_bread" "target" "bread_position" } prop_dynamic { "targetname" "wave4_teleporter_model" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "origin" "36 560 96" } training_annotation { "targetname" "wave4_teleporter_annotation" "parentname" "wave4_teleporter_model" "display_text" "Take the teleporter" "lifetime" "10" "origin" "36 560 105" } info_target { "targetname" "wave4_teleporter_target" "angles" "0 180 0" "origin" "-3321.4 6401.4 190" } trigger_teleport { "targetname" "wave4_teleporter" "origin" "36 560 96" "mins" "-50 -50 -50" "maxs" "50 50 50" "spawnflags" "1" "filtername" "filter_redteam" "target" "wave4_teleporter_target" } } Drac_Init { OnSpawnOutput { Target "!activator" Action "AddOutput" Param "targetname dracman" Delay 0 } } Wave5Cutscene1 { NoFixup 1 // OnSpawnOutput // { // Target "filter_drac" // Action "Kill" // Delay 8.1 // } // OnSpawnOutput // { // Target "dracman" // Action "sethealth" // Param "0" // Delay 8.1 // } RemoveIfKilled "filter_drac" filter_tf_bot_has_tag { "targetname" "filter_drac" "Negated" "0" "require_all_tags" "1" "tags" "dracula" } trigger_teleport { "targetname" "drac_teleporter" "origin" "0 0 0" "mins" "-50000.0 -50000.0 -50000.0" "maxs" "50000.0 50000.0 50000.0" "spawnflags" "1" "filtername" "filter_drac" "target" "drac_position" } info_target { "parentname" "drac_mover" "targetname" "drac_position" "angles" "30 30 30" "origin" "-54.5 -184.0 700.1" } OnSpawnOutput { Target "dracula_particle" Action "$SetLocalOrigin" Param "-10 10 20" Delay 0 } info_particle_system { "parentname" "drac_position" "targetname" "dracula_particle" "effect_name" "utaunt_meteor_parent" "origin" "0 0 0" "flag_as_weather" "0" "start_active" "1" } func_tracktrain { "targetname" "drac_mover" "mins" "-1 -1 -1" "maxs" "1 1 1" "bank" "0" "disablereceiveshadows" "0" "disableshadows" "0" "dmg" "0" "height" "-20" "ManualAccelSpeed" "0" "ManualDecelSpeed" "0" "ManualSpeedChanges" "0" "MoveSoundMaxPitch" "200" "MoveSoundMaxTime" "0" "MoveSoundMinPitch" "60" "MoveSoundMinTime" "0" "orientationtype" "1" "origin" "-54.5 -184.0 700.1" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "spawnflags" "520" //passable + not blockable "speed" "50" "startspeed" "50" "target" "drac_cutscene_1" "velocitytype" "0" "volume" "0" "wheels" "50" } path_track { "angles" "0 0 0" "orientationtype" "0" "radius" "0" "spawnflags" "0" "speed" "50" "target" "drac_cutscene_2" "targetname" "drac_cutscene_1" "origin" "-54.5 -184.0 500.1" } path_track { "angles" "0 0 0" "orientationtype" "0" "radius" "0" "spawnflags" "0" "speed" "0" "targetname" "drac_cutscene_2" "origin" "-54.5 -184.0 30.0" } } Wave5Cutscene2 { OnSpawnOutput { Target "blimpcrash_mover" Action "SetSpeed" Param "5000" Delay 8 } OnSpawnOutput { Target "blimpmodel" Action "TurnOff" Delay 0 } OnSpawnOutput { Target "blimpmodel" Action "TurnOn" Delay 8 } OnSpawnOutput { Target "blimpmodel" Action "TurnOn" Delay 8 } RemoveIfKilled "blimpcrash_mover" info_particle_system { "targetname" "blimp_explosion" "effect_name" "fluidSmokeExpl_ring_mvm" "origin" "-54.5 -184.0 30.0" "flag_as_weather" "0" "start_active" "0" } prop_dynamic { "parentname" "blimpcrash_mover" "targetname" "blimpmodel" "model" "models/bots/boss_bot/boss_blimp.mdl" "skin" "1" "origin" "1257.9 -443.3 970.0" "angles" "0 0 0" "solid" "0" } func_tracktrain { "targetname" "blimpcrash_mover" "mins" "-1 -1 -1" "maxs" "1 1 1" "bank" "0" "dmg" "0" "height" "0" "MoveSoundMaxPitch" "200" "MoveSoundMaxTime" "0" "MoveSoundMinPitch" "60" "MoveSoundMinTime" "0" "orientationtype" "1" "origin" "1257.9 -443.3 970.0" "spawnflags" "520" //passable + not blockable "speed" "0" "startspeed" "5000" "target" "blimp_cutscene_1" "volume" "0" "wheels" "50" } path_track { "angles" "0 0 0" "orientationtype" "1" "radius" "0" "spawnflags" "0" "speed" "5000" "target" "blimp_cutscene_2" "targetname" "blimp_cutscene_1" "origin" "1257.9 -443.3 970.0" } path_track { "angles" "0 0 0" "orientationtype" "1" "radius" "0" "spawnflags" "0" "speed" "0" "targetname" "blimp_cutscene_2" "origin" "-54.5 -184.0 30.0" "OnPass" "filter_drac,Kill,,0,-1" "OnPass" "dracman,$Suicide,,0,-1" "OnPass" "blimpmodel,Kill,,0,-1" "OnPass" "blimp_explosion,Start,,0,-1" "OnPass" "blimpcrash_mover,Kill,,10,-1" } } CanteenUseAudio { OnSpawnOutput { Target "red_player" Action "$PlaySoundToSelf" Param "=35|mvm/mvm_used_powerup.wav" Delay 0 } } KillOnSpawn { OnSpawnOutput { Target "!activator" Action "$Suicide" Delay 0.1 } } Pit_Recall { filter_tf_bot_has_tag { "targetname" "filter_corporal" "Negated" "0" "require_all_tags" "1" "tags" "corporal_canteen" } trigger_teleport //use recall canteen when pitted { "targetname" "pit_recall" "origin" "-2704 3272.97 -640" "mins" "-384 -384 -128" "maxs" "384 384 128" "spawnflags" "1" "filtername" "filter_corporal" "target" "corporal_spawn" "OnStartTouch" "canteen_msg_recall,Enable,,0,-1" "OnStartTouch" "canteen_msg_recall,Disable,,0.1,-1" } } PreventPowerupDropOnDeath { OnParentKilledOutput { Target "item_powerup_rune" Action "Kill" Delay 0 } } Yakuza_Title_Card { OnSpawnOutput { Target "upper_text" Action "Display" Delay 0 } OnSpawnOutput { Target "middle_text" Action "Display" Delay 0.2 } game_text { "origin" "1984 1984 99999" "targetname" "upper_text" "message" "ROBOT FAMILY OFFICER, SPECIAL UNIT" "x" "-1" "y" "0.4" "spawnflags" "1" "effect" "2" "channel" "2" "color" "255 255 255" "fxtime" "0.2" "fadeout" "1" //"fadein" "0" "holdtime" "5" } game_text { "origin" "1984 1984 99999" "targetname" "middle_text" "message" "CORPORAL CANTEEN" "x" "-1" "y" "0.45" "channel" "1" "spawnflags" "1" "color" "255 255 255" "fadein" "0.2" "fadeout" "1" "holdtime" "4.8" } } Yakuza_Title_Card_Sergeant_Crit { OnSpawnOutput { Target "upper_text" Action "Display" Delay 0 } OnSpawnOutput { Target "middle_text" Action "Display" Delay 0.2 } game_text { "origin" "1984 1984 99999" "targetname" "upper_text" "message" "ROBOT FAMILY PATRIARCH, ELITE UNIT" "x" "-1" "y" "0.4" "spawnflags" "1" "effect" "2" "channel" "2" "color" "255 255 255" "fxtime" "0.2" "fadeout" "1" //"fadein" "0" "holdtime" "5" } game_text { "origin" "1984 1984 99999" "targetname" "middle_text" "message" "SERGEANT CRIT" "x" "-1" "y" "0.45" "channel" "1" "spawnflags" "1" "color" "255 255 255" "fadein" "0.2" "fadeout" "1" "holdtime" "4.8" } } Yakuza_Title_Card_Sergeant_Reciever { OnSpawnOutput { Target "upper_text" Action "Display" Delay 0 } OnSpawnOutput { Target "middle_text" Action "Display" Delay 0.2 } game_text { "origin" "1984 1984 99999" "targetname" "upper_text" "message" "ROBOT FAMILY PATRIARCH, ELITE UNIT" "x" "-1" "y" "0.4" "spawnflags" "1" "effect" "2" "channel" "2" "color" "255 255 255" "fxtime" "0.2" "fadeout" "1" //"fadein" "0" "holdtime" "5" } game_text { "origin" "1984 1984 99999" "targetname" "middle_text" "message" "SERGEANT RECEIVER" "x" "-1" "y" "0.45" "channel" "1" "spawnflags" "1" "color" "255 255 255" "fadein" "0.2" "fadeout" "1" "holdtime" "4.8" } } Yakuza_Title_Card_Necromancer { OnSpawnOutput { Target "upper_text" Action "Display" Delay 0 } OnSpawnOutput { Target "middle_text" Action "Display" Delay 0.2 } game_text { "origin" "1984 1984 99999" "targetname" "upper_text" "message" "ENMA OF THE UNDERWORLD, THE HELLTAKER" "x" "-1" "y" "0.4" "spawnflags" "1" "effect" "2" "channel" "2" "color" "255 255 255" "fxtime" "0.2" "fadeout" "1" //"fadein" "0" "holdtime" "5" } game_text { "origin" "1984 1984 99999" "targetname" "middle_text" "message" "CHIEF NECROMANCER MEDIC" "x" "-1" "y" "0.45" "channel" "1" "spawnflags" "1" "color" "255 255 255" "fadein" "0.2" "fadeout" "1" "holdtime" "4.8" } } CustomCanteensInit { NoFixup 1 OnSpawnOutput { Target "!activator" Action "AddOutput" Param "targetname corporal" Delay 0.1 } OnParentKilledOutput { Target "!activator" Action "AddOutput" Param "targetname " Delay 0 } OnSpawnOutput { Target "first_spawn_canteen" Action "Trigger" Delay 0.1 } OnSpawnOutput { Target "closerange_canteens_detector" Action "Enable" Delay 1 } logic_relay { "targetname" "first_spawn_canteen" // "OnTrigger" "!activator,$AddCond,95,0,-1" // "OnTrigger" "canteen_msg_reflect,Enable,,0,-1" // "OnTrigger" "canteen_msg_reflect,Disable,,0.1,-1" // "OnTrigger" "!activator,$RemoveCond,95,5,-1" "OnTrigger" "!activator,$AddCond,5,0,-1" "OnTrigger" "canteen_msg_uber,Enable,,0,-1" "OnTrigger" "canteen_msg_uber,Disable,,0.1,-1" "OnTrigger" "!activator,$RemoveCond,5,5,-1" } info_particle_system { "origin" "0 0 0" "targetname" "supernova_particle" "start_active" "0" "flag_as_weather" "0" "effect_name" "powerup_supernova_explode_blue" } filter_activator_tfteam { "targetname" "supernova_filter_is_red" "Negated" "0" "TeamNum" "2" } trigger_stun { "targetname" "supernova_stun" "origin" "0 0 0" "mins" "-250.0 -250.0 -250.0" "maxs" "250.0 250.0 250.0" "spawnflags" "1" "StartDisabled" "1" "solid" "0" "filtername" "supernova_filter_is_red" "stun_type" "1" "stun_duration" "3" "OnUser1" "!self,Enable,,0,-1" "OnUser1" "!self,Disable,,0.1,-1" } // trigger_push //doesn't seem to work // { // "targetname" "supernova_push" // "origin" "0 0 0" // "mins" "-500.0 -500.0 -500.0" // "maxs" "500.0 500.0 500.0" // "spawnflags" "1" // "StartDisabled" "1" // "solid" "0" // "filtername" "supernova_filter_is_red" // "pushdir" "90 0 90" // "speed" "1000" // "triggeronstarttouch" "1" // "OnUser1" "!self,Enable,,0,-1" // "OnUser1" "!self,Disable,,0.1,-1" // } logic_case { "targetname" "random_canteen_use" //emp round, disable buildings on hit, unused because was useless // "oncase01" "!activator,$AddItemAttribute,sniper fires tracer|1|1,0,-1" // "oncase01" "!activator,$AddItemAttribute,disable buildings on hit|3|1,0,-1" // "oncase01" "canteen_msg_emp,Enable,,0,-1" // "oncase01" "canteen_msg_emp,Disable,,0.1,-1" // "oncase01" "!activator,$RemoveItemAttribute,sniper fires tracer|1,5,-1" // "oncase01" "!activator,$RemoveItemAttribute,disable buildings on hit|1,5,-1" //infinite clip //"oncase01" "!activator,$AddItemAttribute,mod max primary clip override|-1|1,0,-1" "oncase01" "!activator,$AddItemAttribute,Reload time decreased|-0.8|1,0,-1" "oncase01" "canteen_msg_infclip,Enable,,0,-1" "oncase01" "canteen_msg_infclip,Disable,,0.1,-1" "oncase01" "!activator,$RemoveItemAttribute,Reload time decreased|1,5,-1" //reflect, unused outside of first spawn canteen because it's pretty cancerous // "oncase02" "!activator,$AddCond,95,0,-1" // "oncase02" "canteen_msg_reflect,Enable,,0,-1" // "oncase02" "canteen_msg_reflect,Disable,,0.1,-1" // "oncase02" "!activator,$RemoveCond,95,5,-1" //bumper car, unused because was buggy (bomb model would stops attaching after the cond ends) // "oncase02" "!activator,$AddCond,82,0,-1" // "oncase02" "canteen_msg_bumpercar,Enable,,0,-1" // "oncase02" "canteen_msg_bumpercar,Disable,,0.1,-1" // "oncase02" "!activator,$RemoveCond,82,5,-1" //supernova, discharge after 3 seconds // "oncase02" "!activator,$AddCond,111,0,-1" // "oncase02" "!activator,$AddPlayerAttribute,move speed penalty|0.2,0,-1" // "oncase02" "canteen_msg_supernova,Enable,,0,-1" // "oncase02" "canteen_msg_supernova,Disable,,0.1,-1" // "oncase02" "supernova_particle,Start,,3,-1" // "oncase02" "supernova_stun,FireUser1,,3,-1" // "oncase02" "supernova_push,FireUser1,,3,-1" // "oncase02" "!activator,$RemoveCond,111,3,-1" // "oncase02" "!activator,$RemovePlayerAttribute,move speed penalty,3,-1" // "oncase02" "supernova_particle,Stop,,5,-1" //precision "oncase03" "!activator,$AddCond,96,0,-1" "oncase03" "canteen_msg_precision,Enable,,0,-1" "oncase03" "canteen_msg_precision,Disable,,0.1,-1" "oncase03" "!activator,$RemoveCond,96,5,-1" //speed boost "oncase04" "!activator,$AddCond,32,0,-1" "oncase04" "canteen_msg_speed,Enable,,0,-1" "oncase04" "canteen_msg_speed,Disable,,0.1,-1" "oncase04" "!activator,$RemoveCond,32,5,-1" //sandvich, unused // "oncase05" "!activator,$ChangeAttributes,Sandvich,0,-1" // "oncase05" "canteen_msg_sandvich,Enable,,0,-1" // "oncase05" "canteen_msg_sandvich,Disable,,0.1,-1" // "oncase05" "!activator,$ChangeAttributes,None,1,-1" //haste "oncase06" "!activator,$AddCond,91,1,-1" "oncase06" "canteen_msg_haste,Enable,,0,-1" "oncase06" "canteen_msg_haste,Disable,,0.1,-1" "oncase06" "!activator,$RemoveCond,91,6,-1" //crit "oncase07" "!activator,$AddCond,105,1,-1" "oncase07" "canteen_msg_crit,Enable,,0,-1" "oncase07" "canteen_msg_crit,Disable,,0.1,-1" "oncase07" "!activator,$RemoveCond,105,6,-1" //plague, has a 1 second delay so that bodyblockers and spies can react and get away "oncase08" "!activator,$AddCond,110,1,-1" "oncase08" "canteen_msg_plague,Enable,,0,-1" "oncase08" "canteen_msg_plague,Disable,,0.1,-1" "oncase08" "!activator,$RemoveCond,110,6,-1" //strength "oncase09" "!activator,$AddCond,90,1,-1" "oncase09" "canteen_msg_strength,Enable,,0,-1" "oncase09" "canteen_msg_strength,Disable,,0.1,-1" "oncase09" "!activator,$RemoveCond,90,6,-1" } //canteen is used when at low health, grants health regen and doubles clip size logic_relay { "targetname" "pinch_canteen" "OnTrigger" "!activator,$AddPlayerAttribute,health regen|200,0,-1" "OnTrigger" "!activator,$AddCond,36,0,-1" "OnTrigger" "!activator,$RemoveItemAttribute,clip size bonus|1,0,-1" "OnTrigger" "canteen_msg_pinch,Enable,0,-1" "OnTrigger" "canteen_msg_pinch,Disable,0.1,-1" } logic_case { "targetname" "closerange_cateens" //supernova, discharge after 5 seconds "oncase01" "corporal,$AddCond,111,0,-1" "oncase01" "corporal,$AddPlayerAttribute,move speed penalty|0.2,0,-1" "oncase01" "canteen_msg_supernova,Enable,,0,-1" "oncase01" "canteen_msg_supernova,Disable,,0.1,-1" "oncase01" "supernova_particle,Start,,5,-1" "oncase01" "supernova_stun,FireUser1,,5,-1" //"oncase01" "supernova_push,FireUser1,,5,-1" "oncase01" "corporal,$RemoveCond,111,5,-1" "oncase01" "corporal,$RemovePlayerAttribute,move speed penalty,2,-1" "oncase01" "supernova_particle,Stop,,8,-1" } filter_tf_class { "targetname" "filter_isnt_spy" "Negated" "1" "tfclass" "8" } filter_multi { "targetname" "filter_melee_pullout_main" "Negated" "0" "FilterType" "0" "Filter01" "supernova_filter_is_red" "Filter02" "filter_isnt_spy" } //sucker punches you out of his way if you attempt to bodyblock like a boss //doesn't trigger against spies so as to make their job not aid trigger_multiple { "targetname" "melee_pullout_range" "origin" "0 0 0" "mins" "-100.0 -100.0 -100.0" "maxs" "100.0 100.0 100.0" "spawnflags" "1" "filtername" "filter_melee_pullout_main" //"OnStartTouch" "!activator,$DisplayTextCenter,switched to melee [DEBUG],0,-1" "OnStartTouch" "corporal,$WeaponSwitchSlot,2,0,-1" "OnStartTouch" "corporal,$AddPlayerAttribute,disable weapon switch|1,0.01,-1" "OnStartTouch" "corporal,$RemovePlayerAttribute,disable weapon switch,0.7,-1" "OnStartTouch" "corporal,$WeaponSwitchSlot,1,0.71,-1" "OnStartTouch" "!self,Disable,,0.72,-1" "OnStartTouch" "!self,Enable,,6,-1" //cooldown // "OnEndTouch" "corporal,$RemovePlayerAttribute,disable weapon switch,0,-1" // "OnEndTouch" "corporal,$WeaponSwitchSlot,1,0,01,-1" //"OnEndTouch" "!activator,$DisplayTextCenter,switched to secondary [DEBUG],0,-1" } //specific canteens to use when enemy is within a certain distance, operate under a different cooldown from random canteen // trigger_multiple // { // "targetname" "closerange_canteens_detector" // "origin" "0 0 0" // "mins" "-100.0 -100.0 -100.0" // "maxs" "100.0 100.0 100.0" // "spawnflags" "1" // "StartDisabled" "1" // "filtername" "supernova_filter_is_red" // "OnStartTouch" "closerange_cateens,PickRandomShuffle,,0,-1" // "OnStartTouch" "!self,Disable,,0,-1" // //"OnStartTouch" "!self,Enable,,50,-1" //cooldown // } } Yauka_Styles { NoFixup 1 logic_relay { "targetname" "style_transition" "OnTrigger" "!activator,$RemoveCond,36,0,-1" "OnTrigger" "!activator,$RemoveCond,56,0,-1" "OnTrigger" "!activator,$WeaponStripSlot,-1,0,-1" "OnTrigger" "!activator,$GiveItem,TF_WEAPON_ROCKETLAUNCHER,0.01,-1" } logic_case { "targetname" "randomstyle" "oncase01" "charged_style,Trigger,,0,-1" "oncase02" "homing_style,Trigger,,0,-1" "oncase03" "barrage_style,Trigger,,0,-1" } logic_relay { "targetname" "homing_style" "OnTrigger" "style_transition,Trigger,,0,-1" "OnTrigger" "msg_homingstyle,Enable,,0,-1" "OnTrigger" "msg_homingstyle,Disable,,0.01,-1" "OnTrigger" "!activator,$AddItemAttribute,projectile trail particle|eyeboss_projectile|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,damage penalty|0.75|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,mod projectile heat seek power|360|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,mod projectile heat aim time|0.8|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,Projectile speed increased|0.5|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,fire rate bonus|0.01|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,Reload time decreased|0.35|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,clip size upgrade atomic|-1|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,projectile spread angle penalty|5|0,0.02,-1" "OnTrigger" "!activator,$AddCond,36,0.01,-1" } logic_relay { "targetname" "charged_style" "OnTrigger" "style_transition,Trigger,,0,-1" "OnTrigger" "msg_chargedstyle,Enable,,0,-1" "OnTrigger" "msg_chargedstyle,Disable,,0.01,-1" //"OnTrigger" "!activator,$AddItemAttribute,fire rate bonus|1.5|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,Projectile speed increased|0.5|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,damage bonus|2|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,Reload time decreased|0.01|0,0.02,-1" "OnTrigger" "!activator,$AddCond,56,0.01,-1" } logic_relay { "targetname" "barrage_style" "OnTrigger" "style_transition,Trigger,,0,-1" "OnTrigger" "msg_barragestyle,Enable,,0,-1" "OnTrigger" "msg_barragestyle,Disable,,0.01,-1" //"OnTrigger" "!activator,$AddItemAttribute,no_attack|1|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,fire rate bonus|0.2|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,Projectile speed increased|0.5|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,damage bonus|1.5|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,clip size upgrade atomic|26|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,Reload time decreased|0.07|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,projectile spread angle penalty|5|0,0.02,-1" "OnTrigger" "!activator,$RemoveItemAttribute,no_attack|0,1,-1" } //start rapidly switching between buffed versions of each styles logic_relay { "targetname" "dragon_style" "OnTrigger" "style_transition,Trigger,,0,-1" "OnTrigger" "msg_legendstyle,Enable,,0,-1" "OnTrigger" "msg_legendstyle,Disable,,0.01,-1" "OnTrigger" "randomstyle,Kill,,0,-1" "OnTrigger" "charged_style_dragon,Trigger,,0,-1" } logic_relay { "targetname" "charged_style_dragon" "OnTrigger" "style_transition,Trigger,,0,-1" //"OnTrigger" "!activator,$AddItemAttribute,fire rate bonus|1.5|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,projectile no deflect|1|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,Projectile speed increased|0.25|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,damage bonus|3.5|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,Reload time decreased|0.01|0,0.02,-1" "OnTrigger" "!activator,$AddCond,56,0.01,-1" "OnTrigger" "homing_style_dragon,Trigger,,0.7,-1" } logic_relay { "targetname" "homing_style_dragon" "OnTrigger" "style_transition,Trigger,,0,-1" "OnTrigger" "!activator,$AddItemAttribute,projectile trail particle|eyeboss_projectile|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,damage penalty|0.75|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,mod projectile heat seek power|360|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,mod projectile heat aim time|0.8|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,Projectile speed increased|0.5|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,fire rate bonus|0.01|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,Reload time decreased|0.1|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,clip size upgrade atomic|-1|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,projectile spread angle penalty|5|0,0.02,-1" "OnTrigger" "!activator,$AddCond,36,0.01,-1" "OnTrigger" "barrage_style_dragon,Trigger,,2,-1" } logic_relay { "targetname" "barrage_style_dragon" "OnTrigger" "!activator,$AddItemAttribute,attach particle effect|704|0,0.02,-1" //"OnTrigger" "!activator,$AddItemAttribute,no_attack|1|0,0.02,-1" "OnTrigger" "style_transition,Trigger,,0,-1" "OnTrigger" "!activator,$AddItemAttribute,fire rate bonus|0.03|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,Projectile speed increased|0.3|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,damage bonus|0.8|0,0.02,-1" //"OnTrigger" "!activator,$AddItemAttribute,clip size upgrade atomic|30|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,Reload time decreased|-1|0,0.02,-1" "OnTrigger" "!activator,$AddItemAttribute,projectile spread angle penalty|8|0,0.02,-1" //"OnTrigger" "!activator,$RemoveItemAttribute,no_attack|0,0.1,-1" "OnTrigger" "charged_style_dragon,Trigger,,2.5,-1" } } TFC_Heavy_AI { OnSpawnOutput { Target "!activator" Action "AddOutput" Param "targetname TFC_Heavy" Delay 0 } OnParentKilledOutput { Target "!activator" Action "AddOutput" Param "targetname " Delay 0 } filter_activator_tfteam { "targetname" "heavy_filter_is_red" "Negated" "0" "TeamNum" "2" } trigger_multiple { "targetname" "shotgun_pullout_range" "origin" "0 0 0" "mins" "-400.0 -400.0 -400.0" "maxs" "400.0 400.0 400.0" "spawnflags" "1" "filtername" "heavy_filter_is_red" //"OnStartTouch" "!activator,$DisplayTextCenter,switched to secondary [DEBUG],0,-1" "OnStartTouch" "TFC_Heavy,$AddPlayerAttribute,disable weapon switch|1,0.01,-1" "OnStartTouch" "TFC_Heavy,$WeaponSwitchSlot,1,0,-1" "OnEndTouch" "TFC_Heavy,$RemovePlayerAttribute,disable weapon switch,0,-1" "OnEndTouch" "TFC_Heavy,$WeaponSwitchSlot,0,0,01,-1" //"OnEndTouch" "!activator,$DisplayTextCenter,switched to primary [DEBUG],0,-1" } trigger_multiple { "targetname" "melee_pullout_range" "origin" "0 0 0" "mins" "-100.0 -100.0 -100.0" "maxs" "100.0 100.0 100.0" "spawnflags" "1" "filtername" "heavy_filter_is_red" //"OnStartTouch" "!activator,$DisplayTextCenter,switched to melee [DEBUG],0,-1" "OnStartTouch" "TFC_Heavy,$RemovePlayerAttribute,disable weapon switch,0,-1" "OnStartTouch" "TFC_Heavy,$WeaponSwitchSlot,2,0.01,-1" "OnStartTouch" "TFC_Heavy,$AddPlayerAttribute,disable weapon switch|1,0.02,-1" "OnEndTouch" "TFC_Heavy,$RemovePlayerAttribute,disable weapon switch,0,-1" "OnEndTouch" "TFC_Heavy,$WeaponSwitchSlot,1,0.01,-1" //"OnEndTouch" "!activator,$DisplayTextCenter,switched to secondary [DEBUG],0,-1" } } Bread_Monster_Base_Init_New { OnSpawnOutput { Target "!activator" Action "AddOutput" Param "targetname breadman" Delay 0.1 } prop_dynamic { "targetname" "breadmonster_model" "model" "models/weapons/w_models/w_breadmonster/w_breadmonster.mdl" "origin" "0 0 30" "angles" "0 0 0" "modelscale" "50" "solid" "0" } } Bread_Monster_Base_Init { NoFixup 1 OnSpawnOutput { Target "!activator" Action "AddOutput" Param "targetname breadmonsterbase" Delay 0 } //model prop_dynamic { "targetname" "breadmonster_model" "model" "models/weapons/w_models/w_breadmonster/w_breadmonster.mdl" "origin" "150 0 50" "angles" "0 0 0" "modelscale" "25" "solid" "0" } prop_dynamic { "targetname" "breadmonster_bomb_model" "model" "models/custom/dirty_bomb_cart.mdl" "origin" "130 0 20" "angles" "0 0 0" "solid" "0" } //doesn't work for some reason, presumably because the model is comically resized // tf_glow // { // "GlowColor" "88 133 162" // "Mode" "0" // "target" "breadmonster_model" // } // tf_glow // { // "GlowColor" "88 133 162" // "Mode" "0" // "target" "breadmonster_bomb_model" // } info_target { "targetname" "breadmonsterhitbox_position" "origin" "150 0 0" } } Bread_Monster_Tank_Init { NoFixup 1 OnSpawnOutput { Target "breadmonstertank_relay" Action "FireUser1" Delay 0 } OnParentKilledOutput { Target "breadmonsterbase" Action "$Suicide" Delay 0 } logic_relay { "targetname" "breadmonstertank_relay" "OnUser1" "!activator,$TeleportToEntity,breadmonsterhitbox_position,0,-1" "OnUser1" "!self,FireUser1,,0.01,-1" } // logic_measure_movement // { // "MeasureReference" "breadmonsterhitbox_position" // "MeasureTarget" "breadmonsterhitbox_position" // "MeasureType" "0" // "Target" "!activator" // "TargetReference" "breadmonsterhitbox_position" // "TargetScale" "1" // } } Bread_Monster_Death_Init { KeepAlive 1 OnParentKilledOutput { Target "bread_monster_death_effect" Action "FireUser1" Delay 0 } info_particle_system { "targetname" "bread_monster_death_effect" "effect_name" "cinefx_goldrush" "flag_as_weather" "0" "start_active" "0" "OnUser1" "!self,Start,,0,-1" "OnUser1" "!self,Kill,,5,-1" //cleanup } } Monoculus_Shooter_Init { OnSpawnOutput { Target "monoculus_model" Action "FireUser1" Delay 1 } // OnSpawnOutput // { // Target "!activator" // Action "AddOutput" // Param "gravity -1" // Delay 0 // } // OnParentKilledOutput // { // Target "!activator" // Action "AddOutput" // Param "gravity 800" // Delay 0 // } //model prop_dynamic { "targetname" "monoculus_model" "model" "models/props_halloween/halloween_demoeye.mdl" "origin" "0 0 30" "angles" "30 0 0" "DefaultAnim" "general_noise" "solid" "0" "OnUser1" "!self,SetAnimation,firing3,0,-1" "OnUser1" "!self,FireUser1,,6,-1" } //glow // tf_glow // { // "GlowColor" "134 80 172 255" // "Mode" "0" // "target" "monoculus_model" // } //particle info_particle_system { "parentname" "monoculus_model" "targetname" "monoculus_aura" "effect_name" "eyeboss_aura_grumpy" "origin" "0 0 30" "flag_as_weather" "0" "start_active" "1" } } Monoculus_Shooter_Init_Crit { OnSpawnOutput { Target "monoculus_model" Action "FireUser1" Delay 1 } // OnSpawnOutput // { // Target "!activator" // Action "AddOutput" // Param "gravity -1" // Delay 0 // } // OnParentKilledOutput // { // Target "!activator" // Action "AddOutput" // Param "gravity 800" // Delay 0 // } //model prop_dynamic { "targetname" "monoculus_model" "model" "models/props_halloween/halloween_demoeye.mdl" "skin" "3" "origin" "0 0 30" "angles" "30 0 0" "DefaultAnim" "general_noise" "solid" "0" "OnUser1" "!self,SetAnimation,firing3,0,-1" "OnUser1" "!self,FireUser1,,6,-1" } //glow // tf_glow // { // "GlowColor" "134 80 172 255" // "Mode" "0" // "target" "monoculus_model" // } //particle info_particle_system { "parentname" "monoculus_model" "targetname" "monoculus_aura" "origin" "0 0 30" "effect_name" "eyeboss_team_blue" "flag_as_weather" "0" "start_active" "1" } } Monoculus_Tank_Init { //NoFixup 1 filter_tf_bot_has_tag { "targetname" "filter_monoculus_shooter" "Negated" "0" "require_all_tags" "1" "tags" "monoculus_shooter" } trigger_teleport { "targetname" "monoculus_teleporter" "landmark" "!activator" "origin" "0 0 0" "mins" "-50000.0 -50000.0 -50000.0" "maxs" "50000.0 50000.0 50000.0" "spawnflags" "1" "filtername" "filter_monoculus_shooter" "target" "monoculus_shooter_position" } info_target { "targetname" "monoculus_shooter_position" "origin" "0 0 -30" } } Monoculus_Death_Init { KeepAlive 1 OnParentKilledOutput { Target "monoculus_death_effect" Action "FireUser1" Delay 0 } info_particle_system { "targetname" "monoculus_death_effect" "effect_name" "eyeboss_death" "flag_as_weather" "0" "start_active" "0" "OnUser1" "!self,$PlaySound,ui/halloween_boss_defeated_monoculus,0,-1" "OnUser1" "!self,Start,,0,-1" "OnUser1" "!self,Kill,,5,-1" //cleanup } } Monoculus_Cleanup_Init { //NoFixup 1 KeepAlive 1 OnParentKilledOutput { Target "monoculus_bots_cleanup" Action "FireUser1" Delay 0 } filter_tf_bot_has_tag { "targetname" "filter_monoculus_shooter_cleanup" "Negated" "0" "require_all_tags" "1" "tags" "monoculus_shooter" "OnPass" "!activator,$Suicide,,0,-1" } trigger_multiple { "targetname" "monoculus_bots_cleanup" "origin" "0 0 0" "mins" "-500 -500 -500" "maxs" "500 500 500" "spawnflags" "1" //"filtername" "filter_monoculus_shooter_cleanup" "StartDisabled" "1" "OnStartTouch" "filter_monoculus_shooter_cleanup,TestActivator,,0,-1" "OnUser1" "!self,Enable,,0,1" "OnUser1" "filter_monoculus_shooter_cleanup,Kill,,0.05,1" "OnUser1" "!self,Kill,,0.1,1" } } Payload_Init { NoFixup 1 OnSpawnOutput { Target "payload_model" Action "SetParent" Param "!activator" Delay 0.1 } OnSpawnOutput { Target "payload_model" Action "SetParent" Param "!activator" Delay 0.1 } OnSpawnOutput { Target "payload_annotation" Action "Show" Delay 0.1 } training_annotation { "targetname" "payload_annotation" "display_text" "Escort the Payload to the Bread Monster" "lifetime" "10" "origin" "0 0 100" } training_annotation { "targetname" "pitstop_annotation" "display_text" "Destroy all remaining enemies to advance" "lifetime" "8" "origin" "0 0 100" } dispenser_touch_trigger { "targetname" "cart_dispenser_trigger" "mins" "-300 -300 -300" "maxs" "300 300 300" "spawnflags" "1" } mapobj_cart_dispenser { "targetname" "cart_dispenser" "origin" "-40 -10 100" "spawnflags" "10" "TeamNum" "2" "touch_trigger" "cart_dispenser_trigger" } info_target { "targetname" "payload_position" } prop_dynamic { "targetname" "payload_model" "model" "models/props_trainyard/bomb_cart_red.mdl" "origin" "0 0 30" "angles" "0 180 0" "solid" "0" } } Constraint_Bot_Init { OnSpawnOutput { Target "!activator" Action "AddOutput" Param "targetname constraint_bot" Delay 0 } OnParentKilledOutput { Target "!activator" Action "AddOutput" Param "targetname " Delay 0 } } Constraint_Tank_Init { // OnParentKilledOutput // { // Target "constraint_bot" // Action "$ChangeAttributes" // Param "Not" // Delay 0 // } OnParentKilledOutput { Target "constraint_bot" Action "$GiveItem" Param "The B.A.S.E. Jumper" Delay 0 } // OnParentKilledOutput // { // Target "constraint_bot" // Action "$AddCond" // Param "80" // Delay 0.2 // } filter_tf_bot_has_tag { "targetname" "filter_constraint" "Negated" "0" "require_all_tags" "1" "tags" "constraint" } trigger_teleport { "targetname" "constraint_tank_teleport" "origin" "0 0 0" "landmark" "!activator" "mins" "-50000.0 -50000.0 -50000.0" "maxs" "50000.0 50000.0 50000.0" "spawnflags" "1" "filtername" "filter_constraint" "target" "constraint_tank_position" } info_target { "targetname" "constraint_tank_position" "origin" "0 0 250" //slightly above the tank } } NewReprogramLogic { NoFixup 1 filter_tf_bot_has_tag { "targetname" "filter_can_be_reprogrammed" "Negated" "1" "require_all_tags" "1" "tags" "no_reprogram" } filter_tf_bot_has_tag { "targetname" "filter_can_be_reprogrammed_sepcial" "Negated" "0" "require_all_tags" "1" "tags" "reprogram_special" } filter_tf_condition { "targetname" "filter_is_set_to_be_reprogrammed" "Negated" "0" "condition" "65" } filter_multi { "targetname" "filter_reprogram_main" "Negated" "0" "FilterType" "0" "Filter01" "filter_is_set_to_be_reprogrammed" "Filter02" "filter_can_be_reprogrammed" "OnPass" "!activator,$RemoveCond,65,0,-1" "OnPass" "!activator,$AddCond,43,0,-1" "OnPass" "!activator,$AddCond,50,0,-1" "OnPass" "!activator,$AddCond,40,0,-1" "OnPass" "!activator,$AddPlayerAttribute,not solid to players|1,0,-1" //"OnPass" "!activator,$AddPlayerAttribute,receive friendly fire|1,0,-1" "OnPass" "!activator,$RemoveCond,43,8,-1" //delay is duration "OnPass" "!activator,$RemoveCond,50,8,-1" "OnPass" "!activator,$RemoveCond,40,8,-1" //"OnPass" "!activator,$RemovePlayerAttribute,receive friendly fire,8,-1" "OnPass" "!activator,$RemovePlayerAttribute,not solid to players,8,-1" "OnPass" "!activator,$Suicide,,8,-1" } filter_multi { "targetname" "filter_reprogram_special" "Negated" "0" "FilterType" "0" "Filter01" "filter_is_set_to_be_reprogrammed" "Filter02" "filter_can_be_reprogrammed_sepcial" "OnPass" "!activator,$RemoveCond,65,0,-1" "OnPass" "!activator,$AddCond,43,0,-1" "OnPass" "!activator,$AddCond,50,0,-1" "OnPass" "!activator,$AddPlayerAttribute,not solid to players|1,0,-1" "OnPass" "!activator,$RemoveCond,43,3.5,-1" //delay is duration "OnPass" "!activator,$RemoveCond,50,3.5,-1" "OnPass" "!activator,$RemovePlayerAttribute,not solid to players,3.5,-1" } trigger_multiple { "targetname" "reprogram_handler" "mins" "-10000 -10000 -10000" "maxs" "10000 10000 10000" //"filtername" "filter_is_set_to_be_reprogrammed" "spawnflags" "1" "OnStartTouch" "filter_reprogram_main,TestActivator,,0,-1" "OnStartTouch" "filter_reprogram_special,TestActivator,,0,-1" "OnUser1" "!self,Disable,,0,-1" "OnUser1" "!self,Enable,,0.01,-1" } } CandyCane_Rework2_Electric_Boogaloo { OnSpawnOutput { Target "!activator" Action "$AddItemAttribute" Param "add cond on kill|122|0" Delay 0.1 } OnSpawnOutput { Target "!activator" Action "$AddItemAttribute" Param "add cond on kill duration|1|0" Delay 0.1 } OnSpawnOutput { Target "!activator" Action "$AddItemAttribute" Param "add cond on kill|122|1" Delay 0.1 } OnSpawnOutput { Target "!activator" Action "$AddItemAttribute" Param "add cond on kill duration|1|1" Delay 0.1 } OnSpawnOutput { Target "!activator" Action "$AddItemAttribute" Param "add cond on kill|122|2" Delay 0.1 } OnSpawnOutput { Target "!activator" Action "$AddItemAttribute" Param "add cond on kill duration|1|2" Delay 0.1 } filter_activator_tfteam { "targetname" "candycane_filter_is_red" "Negated" "0" "TeamNum" "2" } trigger_multiple { "targetname" "aoe_ammo_regen" "mins" "-1000 -1000 -1000" "maxs" "1000 1000 1000" //radius "spawnflags" "1" "filtername" "candycane_filter_is_red" "OnEndTouch" "!activator,$RemovePlayerAttribute,ammo regen,0,-1" //refresh "OnUser1" "!self,Disable,,0,-1" "OnUser1" "!self,Enable,,0.01,-1" } math_counter { "targetname" "regen_count" "startvalue" "0" "min" "0" "max" "0.3" //cap "OnGetValue" "aoe_regen_increaser,$SetKey$case01,,0,-1" "OnGetValue" "aoe_regen_increaser,$Format,,0.1,-1" "OnUser1" "delay_count,FireUser1,,0,-1" "OnUser1" "stacks_count,FireUser1,,0,-1" "OnUser1" "!self,Add,0.03,0,-1" //amount each stack "OnUser1" "!self,GetValue,,0.1,-1" } math_counter { "targetname" "delay_count" "startvalue" "0" "min" "0" "max" "10" "OnGetValue" "aoe_regen_increaser,$SetKey$case01,,0,-1" "OnGetValue" "aoe_regen_increaser,$Format,,0.1,-1" "OnUser1" "!self,Add,0.001,0,-1" "OnUser1" "!self,GetValue,,0.1,-1" } math_counter { "targetname" "stacks_count" "startvalue" "0" "min" "0" "max" "10" //max stacks (visual only) "OnGetValue" "stack_counter_formatter,$SetKey$case01,,0,-1" "OnGetValue" "stack_counter_formatter,$Format,,0.1,-1" "OnUser1" "!self,Add,1,0,-1" "OnUser1" "!self,GetValue,,0.1,-1" } logic_case { "targetname" "aoe_regen_increaser" "case16" "OnStartTouch !activator:$AddPlayerAttribute:ammo regen|%:%:-1" "case01" "0" "case02" "0" "ondefault" "aoe_ammo_regen,AddOutput,,0,-1" "ondefault" "aoe_ammo_regen,FireUser1,,0,-1" } OnSpawnOutput { Target "stack_counter_formatter" Action "$Format" Param 0.1 } game_text { "origin" "1984 1984 99999" "targetname" "stack_counter_text" "message" "unassigned" "x" "-1" "y" "0.77" "color" "255 255 255" "channel" "4" "fadein" "0" "holdtime" "9999999" } logic_case { "targetname" "stack_counter_formatter" "case16" "message Stacks %/10" //max stacks (visual only) "case01" "0" "ondefault" "stack_counter_text,AddOutput,,0,-1" "ondefault" "stack_counter_text,Display,,0.1,-1" } filter_tf_condition { "targetname" "filter_new_stack" "Negated" "0" "condition" "122" "OnPass" "regen_count,FireUser1,,0,-1" "OnPass" "!activator,$RemoveCond,122,0,-1" } OnSpawnOutput { Target "stack_checker" Action "Trigger" Delay 0.1 } logic_relay { "targetname" "stack_checker" "spawnflags" "2" "OnTrigger" "!self,Trigger,,0.1,-1" "OnTrigger" "filter_new_stack,TestActivator,!activator,0,-1" } } Hammer_Impact_Particle { NoFixup 1 OnSpawnOutput { Target "hammer_impact" Action "Kill" Delay 1 } info_particle_system { "targetname" "hammer_impact" "effect_name" "hammer_impact_button" "flag_as_weather" "0" "start_active" "1" } } Mantread_Rework { OnSpawnOutput { Target "mantread_dmg_multiplier" Action "FireUser1" Delay 0 } OnSpawnOutput { Target "landing_explosion_hitbox" Action "$SetOwner" Param "!activator" Delay 0 } game_text { "origin" "1984 1984 99999" "targetname" "land_dmg_multi_indicator" "message" "unassigned" "x" "-1" "y" "0.77" "color" "0 255 255" "channel" "4" "fadein" "0" "holdtime" "9999999" } math_counter { "targetname" "final_multiplier_storer" "startvalue" "1.0" "min" "1.0" "max" "100000.0" "OnGetValue" "multiplier_apply,Multiply,,0,-1" "OnGetValue" "!self,SetValue,1,0.1,-1" } math_counter { "targetname" "mantread_dmg_multiplier" "startvalue" "1" "min" "1" "max" "5" "StartDisabled" "1" //"OutValue" "red_player,$DisplayTextCenter,,0,-1" "OnGetValue" "dmg_multi_formatter,$SetKey$case01,,0,-1" "OnGetValue" "dmg_multi_formatter,$Format,,0.1,-1" "OnGetValue" "final_multiplier_storer,SetValueNoFire,,0,-1" "OnUser1" "!self,Add,0.1,0,-1" "OnUser1" "!self,GetValue,,0.1,-1" "OnUser1" "!self,FireUser1,,0.1,-1" //multiplier increase interval } math_counter { "targetname" "multiplier_apply" "startvalue" "125" //base damage "min" "125" //base damage "max" "1000" //damage cap, not really needed just here incase something fucks up and the multiplier go to 50 trillion and people start 1 shotting chiefs or some shit //"OutValue" "red_player,$DisplayTextCenter,,0,-1" "OutValue" "landing_explosion_hitbox,SetDamage,,0,-1" "OutValue" "!self,SetValue,125,0.3,-1" //base damage } logic_branch { "targetname" "is_landing" "InitialValue" "0" "OnTrue" "landed_relay,FireUser1,,0,-1" } logic_case { "targetname" "dmg_multi_formatter" "case16" "message Explosive Landing Damage Multi %x" "case01" "" "ondefault" "land_dmg_multi_indicator,AddOutput,,0,-1" "ondefault" "land_dmg_multi_indicator,Display,,0.1,-1" } logic_relay { "targetname" "landed_relay" //"OnUser1" "red_player,$DisplayTextCenter,landed,0,-1" "OnUser1" "final_multiplier_storer,GetValue,,0,-1" "OnUser1" "landing_explosion_hitbox,FireUser1,,0,-1" "OnUser1" "hammer_impact_maker,FireUser1,,0,-1" "OnUser1" "explosion_maker,FireUser1,,0,-1" } filter_activator_tfteam { "targetname" "explosive_filter_is_blu" "Negated" "0" "TeamNum" "3" } trigger_hurt { "targetname" "landing_explosion_hitbox" "origin" "0 0 0" "mins" "-150 -150 -150" "maxs" "150 150 150" "Damage" "100" "spawnflags" "1" "filtername" "explosive_filter_is_blu" //prevent self damage "choices" "64" //blast damage type "StartDisabled" "1" "OnUser1" "!self,Enable,,0,-1" "OnUser1" "!self,Disable,,0.1,-1" } filter_tf_condition { "targetname" "filter_is_rocket_jumping" "Negated" "0" "condition" "81" "OnPass" "mantread_dmg_multiplier,Enable,,0,-1" "OnPass" "is_landing,SetValue,1,0,-1" "OnFail" "mantread_dmg_multiplier,SetValue,1,0,-1" "OnFail" "mantread_dmg_multiplier,GetValue,,0.05,-1" "OnFail" "mantread_dmg_multiplier,Disable,,0.05,-1" "OnFail" "is_landing,Test,,0,-1" "OnFail" "is_landing,SetValue,0,0.1,-1" } OnSpawnOutput { Target "rocketjumping_checker" Action "Trigger" Delay 0.1 } logic_relay { "targetname" "rocketjumping_checker" "spawnflags" "2" "OnTrigger" "!self,Trigger,,0.1,-1" "OnTrigger" "filter_is_rocket_jumping,TestActivator,!activator,0,-1" } // trigger_multiple // { // "targetname" "rocketjumping_checker" // "mins" "-1 -1 -1" // "maxs" "1 1 1" // "spawnflags" "1" // "OnTrigger" "filter_is_rocket_jumping,TestActivator,!activator,0,-1" // } env_entity_maker { "targetname" "hammer_impact_maker" "EntityTemplate" "Hammer_Impact_Particle" "PostSpawnDirection" "0 0 0" "PostSpawnDirectionVariance" "0" "PostSpawnInheritAngles" "0" "PostSpawnSpeed" "0" "spawnflags" "0" "OnUser1" "!self,ForceSpawnAtEntityOrigin,!self,0,-1" } env_entity_maker { "targetname" "explosion_maker" "EntityTemplate" "Explosion_Particle" "PostSpawnDirection" "0 0 0" "PostSpawnDirectionVariance" "0" "PostSpawnInheritAngles" "0" "PostSpawnSpeed" "0" "spawnflags" "0" "OnUser1" "!self,ForceSpawnAtEntityOrigin,!self,0,-1" } } Axtinguisher_IsEquipped { OnSpawnOutput { Target "!activator" Action "$AddCond" Param "78" Delay 0 } OnParentKilledOutput { Target "!activator" Action "$RemoveCond" Param "78" Delay 0 } } Degreaser_Rework { OnSpawnOutput { Target "!activator" Action "$AddItemAttribute" Param "damage bonus|1.75|1" Delay 0 } OnSpawnOutput { Target "!activator" Action "$AddItemAttribute" Param "damage bonus|2.25|2" Delay 0 } OnSpawnOutput { Target "axtinguisher_checker" Action "Trigger" Delay 0.1 } OnParentKilledOutput { Target "!activator" Action "$RemoveItemAttribute" Param "damage bonus|1" Delay 0 } OnParentKilledOutput { Target "!activator" Action "$RemoveItemAttribute" Param "damage bonus|2" Delay 0 } filter_tf_condition { "targetname" "filter_has_axtinguisher" "Negated" "0" "condition" "78" "OnPass" "!activator,$AddItemAttribute,damage bonus|2.5|2,0,-1" //150% damage bonus with axtinguisher equipped } logic_relay { "targetname" "axtinguisher_checker" "OnTrigger" "filter_has_axtinguisher,TestActivator,!activator,0,-1" } } // ModelandScale_FailSafe_Scout // { // OnSpawnOutput // { // Target "!activator" // Action "AddOutput" // Param "modelscale 1" // Delay 0.1 // } // OnSpawnOutput // { // Target "!activator" // Action "$SetModelOverride" // Param "models/player/scout.mdl" // Delay 0.1 // } // } // ModelandScale_FailSafe_Soldier // { // OnSpawnOutput // { // Target "!activator" // Action "AddOutput" // Param "modelscale 1" // Delay 0.1 // } // OnSpawnOutput // { // Target "!activator" // Action "$SetModelOverride" // Param "models/player/soldier.mdl" // Delay 0.1 // } // } // ModelandScale_FailSafe_Pyro // { // OnSpawnOutput // { // Target "!activator" // Action "AddOutput" // Param "modelscale 1" // Delay 0.1 // } // OnSpawnOutput // { // Target "!activator" // Action "$SetModelOverride" // Param "models/player/pyro.mdl" // Delay 0.1 // } // } // ModelandScale_FailSafe_Demo // { // OnSpawnOutput // { // Target "!activator" // Action "AddOutput" // Param "modelscale 1" // Delay 0.1 // } // OnSpawnOutput // { // Target "!activator" // Action "$SetModelOverride" // Param "models/player/demo.mdl" // Delay 0.1 // } // } // ModelandScale_FailSafe_Heavy // { // OnSpawnOutput // { // Target "!activator" // Action "AddOutput" // Param "modelscale 1" // Delay 0.1 // } // OnSpawnOutput // { // Target "!activator" // Action "$SetModelOverride" // Param "models/player/heavy.mdl" // Delay 0.1 // } // } // ModelandScale_FailSafe_Engie // { // OnSpawnOutput // { // Target "!activator" // Action "AddOutput" // Param "modelscale 1" // Delay 0.1 // } // OnSpawnOutput // { // Target "!activator" // Action "$SetModelOverride" // Param "models/player/engineer.mdl" // Delay 0.1 // } // } // ModelandScale_FailSafe_Medic // { // OnSpawnOutput // { // Target "!activator" // Action "AddOutput" // Param "modelscale 1" // Delay 0.1 // } // OnSpawnOutput // { // Target "!activator" // Action "$SetModelOverride" // Param "models/player/medic.mdl" // Delay 0.1 // } // } // ModelandScale_FailSafe_Sniper // { // OnSpawnOutput // { // Target "!activator" // Action "AddOutput" // Param "modelscale 1" // Delay 0.1 // } // OnSpawnOutput // { // Target "!activator" // Action "$SetModelOverride" // Param "models/player/sniper.mdl" // Delay 0.1 // } // } // ModelandScale_FailSafe_Spy // { // OnSpawnOutput // { // Target "!activator" // Action "AddOutput" // Param "modelscale 1" // Delay 0.1 // } // OnSpawnOutput // { // Target "!activator" // Action "$SetModelOverride" // Param "models/player/spy.mdl" // Delay 0.1 // } // } Caber_Rework { OnSpawnOutput { Target "caber_taunt_checker" Action "Trigger" Delay 0.1 } OnSpawnOutput { Target "common_damage" Action "$SetOwner" Param "!activator" Delay 0 } OnSpawnOutput { Target "giant_damage" Action "$SetOwner" Param "!activator" Delay 0 } OnSpawnOutput { Target "!activator" Action "$AddCond" Param "41" Delay 0 } OnSpawnOutput { Target "!activator" Action "$AddCond" Param "85" Delay 0 } OnSpawnOutput { Target "!activator" Action "$RemoveCond" Param "85" Delay 0.01 } OnSpawnOutput { Target "apply_buster_attributes" Action "Trigger" Delay 0.01 } OnParentKilledOutput { Target "!activator" Action "SetCustomModel" Param "" Delay 0 } OnParentKilledOutput { Target "!activator" Action "AddOutput" Param "modelscale 1" Delay 0 } OnParentKilledOutput { Target "!activator" Action "SetForcedTauntCam" Param "0" Delay 0 } OnParentKilledOutput { Target "!activator" Action "$RemoveCond" Param "41" Delay 0 } logic_relay { "targetname" "apply_buster_attributes" "OnTrigger" "!activator,AddOutput,modelscale 1.75,0.11,-1" "OnTrigger" "!activator,SetCustomModel,models/bots/demo/red_sentry_buster.mdl,0.11,-1" "OnTrigger" "!activator,SetForcedTauntCam,1,0.11,-1" "OnTrigger" "!activator,$AddItemAttribute,max health additive bonus|625|2,0.11,-1" "OnTrigger" "!activator,sethealth,800,0.3,-1" "OnTrigger" "!activator,$AddItemAttribute,no_attack|1|2,0.11,-1" "OnTrigger" "!activator,$AddPlayerAttribute,move speed penalty|2|2,0,-1" "OnTrigger" "!activator,$AddItemAttribute,damage force reduction|0.5|2,0.11,-1" "OnTrigger" "!activator,$AddItemAttribute,always allow taunt|0.5|2,0.11,-1" "OnTrigger" "!activator,$AddItemAttribute,override footstep sound set|7|2,0.11,-1" "OnTrigger" "!activator,$AddItemAttribute,cannot be backstabbed|1|2,0.11,-1" } filter_tf_class //fixes switching class after taunting and get a demoman model on other classes (lol) { "targetname" "filter_still_demoman" "Negated" "0" "tfclass" "4" "OnPass" "!activator,SetCustomModel,,0,-1" "OnPass" "!activator,$RemoveCond,7,0,-1" "OnPass" "!activator,$RemoveCond,41,0,-1" "OnPass" "!activator,SetForcedTauntCam,0,0,-1" "OnPass" "!activator,$AddCond,57,0,-1" "OnPass" "!activator,$AddCond,32,0,-1" "OnPass" "!activator,$RemoveCond,57,2,-1" "OnPass" "!activator,$RemoveCond,32,2,-1" "OnPass" "common_damage,FireUser1,,0,-1" "OnPass" "giant_damage,FireUser1,,0,-1" "OnPass" "!activator,AddOutput,modelscale 1,0,-1" //"OnPass" "!activator,$RemoveItemAttribute,not solid to players|2,0,-1" "OnPass" "!activator,$RemoveItemAttribute,no_attack|2,0,-1" "OnPass" "!activator,$RemoveItemAttribute,max health additive bonus|2,0,-1" "OnPass" "!activator,sethealth,201,0,-1" "OnPass" "!activator,$RemovePlayerAttribute,move speed penalty,0,-1" "OnPass" "!activator,$RemoveItemAttribute,damage force reduction|2,0,-1" "OnPass" "!activator,$RemoveItemAttribute,always allow taunt|2,0,-1" "OnPass" "!activator,$RemoveItemAttribute,model scale|2,0,-1" "OnPass" "!activator,$RemoveItemAttribute,override footstep sound set|2,0,-1" "OnPass" "!activator,$RemoveItemAttribute,cannot be backstabbed|2,0,-1" "OnPass" "!activator,$AddItemAttribute,mod_maxhealth_drain_rate|1|2,0,-1" "OnPass" "!activator,$RemoveItemAttribute,mod_maxhealth_drain_rate|2,0.1,-1" } filter_tf_condition { "targetname" "filter_is_taunting" "Negated" "0" "condition" "7" "OnPass" "caber_taunt_checker,Disable,,0,-1" "OnPass" "!self,Disable,,5,-1" "OnPass" "!activator,$AddPlayerAttribute,move speed penalty|0.001,0,-1" //prevent loserboys from using a cancelable taunt and escape the animation "OnPass" "filter_still_demoman,TestActivator,,2,-1" } filter_activator_tfteam { "targetname" "filter_is_blu" "Negated" "0" "TeamNum" "3" "OnUser1" "!self,Kill,,2.1,-1" } filter_tf_bot_has_tag { "targetname" "filter_is_common" "Negated" "1" "require_all_tags" "1" "tags" "no_reprogram" } filter_tf_condition { "targetname" "filter_still_in_spawn" "Negated" "1" "condition" "51" } filter_tf_condition { "targetname" "filter_ubered" "Negated" "1" "condition" "5" } filter_multi { "targetname" "filter_caber_common" "Negated" "0" "FilterType" "0" "Filter01" "filter_is_blu" "Filter02" "filter_is_common" "Filter03" "filter_still_in_spawn" "Filter04" "filter_ubered" } filter_tf_bot_has_tag { "targetname" "filter_is_giant" "Negated" "0" "require_all_tags" "1" "tags" "no_reprogram" } filter_multi { "targetname" "filter_caber_giant" "Negated" "0" "FilterType" "0" "Filter01" "filter_is_blu" "Filter02" "filter_is_giant" } trigger_hurt { "targetname" "common_damage" "origin" "0 0 0" "mins" "-500 -500 -500" "maxs" "500 500 500" "Damage" "99999" "spawnflags" "1" "filtername" "filter_caber_common" "choices" "64" //blast damage type "StartDisabled" "1" "OnUser1" "!self,Enable,,0,-1" "OnUser1" "!self,Disable,,0.1,-1" } trigger_hurt { "targetname" "giant_damage" "origin" "0 0 0" "mins" "-500 -500 -500" "maxs" "500 500 500" "Damage" "1200" //damage is half of this "spawnflags" "1" "filtername" "filter_caber_giant" "choices" "64" //blast damage type "StartDisabled" "1" "OnUser1" "!self,Enable,,0,-1" "OnUser1" "!self,Disable,,0.1,-1" } logic_relay { "targetname" "caber_taunt_checker" "spawnflags" "2" "OnTrigger" "caber_taunt_checker,Trigger,,0.1,-1" "OnTrigger" "filter_is_taunting,TestActivator,!activator,0,-1" } // trigger_multiple // { // "targetname" "taunt_checker" // "mins" "-1 -1 -1" // "maxs" "1 1 1" // "spawnflags" "1" // "OnTrigger" "filter_is_taunting,TestActivator,!activator,0,-1" // } } Natascha_Global { NoFixup 1 math_counter { "targetname" "Natascha_berserk_points_to_add" "startvalue" "0" "min" "0" "max" "0" "OutValue" "berserkpoints_grabber,$GetKeyValueFromActivator,spawnflags,0,-1" "OutValue" "Natascha_berserk_updater,Add,,0.01,-1" "OutValue" "Natascha_berserk_updater,SetValueNoFire,0,0,-1" } math_counter { "targetname" "Natascha_berserk_updater" "startvalue" "0" "min" "0" "max" "2500" //damage requirement //"OutValue" "red_player,$DisplayTextCenter,,0,-1" "OutValue" "Natascha_berserkpoints_apply,$SetKey$case01,,0,-1" "OutValue" "Natascha_berserkpoints_apply,$Format,,0,-1" } logic_case { "targetname" "Natascha_berserkpoints_apply" "case16" "spawnflags %" "case01" "0" //"ondefault" "red_player,$DisplayTextCenter,,0,-1" "ondefault" "!activator,AddOutput,,0,-1" "ondefault" "!self,$SetKey$case01,0,0,-1" "ondefault" "!self,$Format,0,0,-1" } logic_case { "targetname" "berserkpoints_grabber" //"ondefault" "red_player,$DisplayTextCenter,,0,-1" "ondefault" "Natascha_berserk_updater,SetValue,,0,-1" } } Natascha_Rework { OnSpawnOutput { Target "!activator" Action "$AddItemAttribute" Param "fire input on hit|Natascha_berserk_points_to_add^SetValue^|0"//"fire input on hit|red_player^$DisplayTextCenter^|0" Delay 0.1 } OnSpawnOutput { Target "!activator" Action "AddOutput" Param "spawnflags 0" Delay 0.1 } OnSpawnOutput { Target "berserkpoints_checker" Action "Trigger" Delay 0.1 } OnSpawnOutput { Target "beserk_meter_formatter" Action "$SetKey$case01" Param "0" Delay 0 } OnSpawnOutput { Target "beserk_meter_formatter" Action "$Format" Param "0" Delay 0 } OnParentKilledOutput { Target "!activator" Action "AddOutput" Param "spawnflags 0" Delay 0 } filter_tf_condition { "targetname" "beserk_filter_is_taunting" "Negated" "0" "condition" "7" "OnPass" "!activator,AddOutput,spawnflags 0,0,-1" "OnPass" "berserkpoints_storer,SetValue,0,0,-1" "OnPass" "berserkpoints_storer,GetValue,,0.1,-1" "OnPass" "is_berserk_ready,SetValueTest,0,0,-1" //"OnPass" "berserkpoints_checker,Trigger,,0.01,-1" "OnPass" "!activator,$RemoveItemAttribute,fire input on hit|0,0,-1" "OnPass" "!activator,$RemoveCond,7,0,-1" "OnPass" "!activator,$AddCond,46,0,-1" "OnPass" "!activator,$AddItemAttribute,heal on hit for rapidfire|20|0,0,-1" "OnPass" "!activator,$AddItemAttribute,fire input on hit|Natascha_berserk_points_to_add^SetValue^|0,10,-1" "OnPass" "!activator,$RemoveItemAttribute,heal on hit for rapidfire|0,10,-1" "OnPass" "!activator,$RemoveCond,46,10,-1" } logic_branch { "targetname" "is_berserk_ready" "InitialValue" "0" "OnFalse" "beserk_start_checker,Disable,,0,-1" "OnTrue" "beserk_start_checker,Enable,,0,-1" "OnTrue" "beserk_start_checker,Trigger,,0.1,-1" //"OnTrue" "berserk_ready_text,Display,,0,-1" "OnTrue" "!activator,$DisplayTextCenter,Berserk is ready. Taunt to activate,0,-1" } logic_relay { "targetname" "beserk_start_checker" "spawnflags" "2" "StartDisabled" "1" "OnTrigger" "!self,Trigger,,0.1,-1" "OnTrigger" "beserk_filter_is_taunting,TestActivator,!activator,0,-1" } logic_case { "targetname" "beserk_meter_formatter" "case16" "message Berserk %/2500" //damage requirement (visual only) "case01" "" "ondefault" "berserk_meter,AddOutput,,0,-1" "ondefault" "berserk_meter,Display,,0.01,-1" } math_counter { "targetname" "berserkpoints_storer" "startvalue" "0" "min" "0" "max" "2500" //damage requirement //"OnHitMax" "player,$DisplayTextCenter,full,0,-1" "OnHitMax" "is_berserk_ready,SetValueTest,1,0,-1" "OnGetValue" "beserk_meter_formatter,$SetKey$case01,,0,-1" "OnGetValue" "beserk_meter_formatter,$Format,,0,-1" } game_text { "origin" "1984 1984 99999" "targetname" "berserk_meter" "message" "unassigned" "x" "-1" "y" "0.77" "color" "255 255 255" "channel" "4" "fadein" "0" "holdtime" "999999" } game_text { "origin" "1984 1984 99999" "targetname" "berserk_ready_text" "message" "Berserk is ready! Taunt to activate" "x" "-1" "y" "0.3" "channel" "1" "color" "255 255 255" "fadein" "0" "holdtime" "3" } logic_relay { "targetname" "berserkpoints_checker" "spawnflags" "2" "OnTrigger" "!self,Trigger,,0.1,-1" "OnTrigger" "berserkpoints_grabber_local,$GetKeyValueFromActivator,spawnflags,0,-1" } logic_case { "targetname" "berserkpoints_grabber_local" //"ondefault" "red_player,$DisplayTextCenter,,0,-1" "ondefault" "berserkpoints_storer,SetValue,,0,-1" "ondefault" "berserkpoints_storer,GetValue,,0.01,-1" } // OnSpawnOutput // { // Target "berserkpoints_checker" // Action "$GetKeyValueFromActivator" // Param "spawnflags" // Delay 0.1 // } // logic_case // { // "targetname" "berserkpoints_checker" // "ondefault" "red_player,$DisplayTextCenter,,0,-1" // } } Widowmaker_IsEquipped { OnSpawnOutput { Target "!activator" Action "$AddCond" Param "78" Delay 0 } OnParentKilledOutput { Target "!activator" Action "$RemoveCond" Param "78" Delay 0 } } ShortCircuit_IsEquipped { OnSpawnOutput { Target "!activator" Action "$AddCond" Param "130" Delay 0 } OnParentKilledOutput { Target "!activator" Action "$RemoveCond" Param "130" Delay 0 } } RenamePlayer { OnSpawnOutput { Target "!activator" Action "AddOutput" Param "targetname red_player" Delay 0.1 } OnParentKilledOutput { Target "!activator" Action "AddOutput" Param "targetname red_player" Delay 0.1 } } //unused because I couldn't get it to work smoothly, originally was supposed to be an added bonus for the gunslinger // Swan_Song // { // KeepAlive 1 // OnSpawnOutput // { // Target "eligible_for_swan_song_check" // Action "SetCompareValue" // Param "1" // Delay 0 // } // OnSpawnOutput // { // Target "swan_song_loop_fix" // Action "TestActivator" // Delay 0.03 // } // OnParentKilledOutput // { // Target "baller" // Action "Trigger" // Delay 0 // } // OnParentKilledOutput // { // Target "swansong_on_death" // Action "Trigger" // Delay 0.01 // } // filter_tf_condition // { // "targetname" "swan_song_loop_fix" // "Negated" "0" // "condition" "57" // "OnPass" "!activator,$DisplayTextCenter,yep,0,-1" // "OnPass" "baller,Kill,,0,-1" // } // logic_relay // { // "targetname" "baller" // "OnTrigger" "!activator,AddOutput,hammerid 1,0,-1" // } // // filter_tf_class // // { // // "targetname" "baller" // // "Negated" "0" // // "tfclass" "9" // // "OnPass" "!activator,$DisplayTextCenter,that's rad,0,-1" // // "OnPass" "!activator,AddOutput,hammerid 1,0,-1" // // "OnFail" "!activator,$DisplayTextCenter,not rad,0,-1" // // "OnFail" "!activator,AddOutput,hammerid 0,0,-1" // // } // //TODO: detect if player is actually still alive when this is triggered to prevent weird lag on round reset // logic_relay // { // "targetname" "swansong_on_death" // "OnTrigger" "swansong_bool_grabber,$GetKeyValueFromActivator,hammerid,0,-1" // "OnTrigger" "!self,Kill,,0.1,-1" // } // logic_case // { // "targetname" "swansong_bool_grabber" // "ondefault" "!activator,$DisplayTextCenter,,0,-1" // "ondefault" "eligible_for_swan_song_check,SetValueCompare,,0,-1" // } // logic_compare // { // "targetname" "eligible_for_swan_song_check" // "OnEqualTo" "!activator,$SwitchClassInPlace,engineer,0,-1" // "OnEqualTo" "!activator,$AddPlayerAttribute,not solid to players|1,0.01,-1" // "OnEqualTo" "!activator,$AddCond,57,0.01,-1" // "OnEqualTo" "!activator,$AddItemAttribute,mod max primary clip override|-1|1,0.01,-1" // "OnEqualTo" "!activator,$AddItemAttribute,mod max primary clip override|-1|0,0.01,-1" // "OnEqualTo" "filter_still_engie,TestActivator,,3.01,-1" // "OnEqualTo" "filter_still_engie,Kill,,3.02,-1" // //cleanup // "OnEqualTo" "!self,Kill,,3.01,-1" // "OnEqualTo" "swansong_bool_grabber,Kill,,3.01,-1" // "OnEqualTo" "swan_song_loop_fix,Kill,,3.01,-1" // "OnEqualTo" "baller,Kill,,3.01,-1" // } // filter_tf_class // { // "targetname" "filter_still_engie" // "Negated" "0" // "tfclass" "9" // "OnPass" "!activator,AddOutput,hammerid 0,0,-1" // "OnPass" "!activator,$Suicide,,0,-1" // } // } Gunslinger_Rework { // OnSpawnOutput // { // Target "!activator" // Action "$AddPlayerAttribute" // Param "damage bonus|2.5" // Delay 0.1 // } OnSpawnOutput { Target "widowmaker_checker" Action "Trigger" Delay 0.1 } OnSpawnOutput { Target "ss_checker" Action "Trigger" Delay 0.1 } // OnParentKilledOutput // { // Target "!activator" // Action "$ForceRespawnDead" // Delay 0 // } OnParentKilledOutput { Target "!activator" Action "$RemovePlayerAttribute" Param "damage bonus" Delay 0.1 } filter_tf_condition { "targetname" "filter_has_windowmaker" "Negated" "0" "condition" "78" "OnPass" "!activator,$AddPlayerAttribute,damage bonus|1.9,0,-1" //reduce damage bonus to 90% with widowmaker equipped "OnFail" "!activator,$AddPlayerAttribute,damage bonus|2.25,0,-1" //125% damage bonus otherwise } filter_tf_condition { "targetname" "filter_has_ss" "Negated" "0" "condition" "130" "OnPass" "!activator,$AddItemAttribute,damage penalty|0.25|1,0,-1" } logic_relay { "targetname" "widowmaker_checker" "OnTrigger" "filter_has_windowmaker,TestActivator,!activator,0,-1" //"OnTrigger" "!self,Trigger,,0.2,-1" } logic_relay { "targetname" "ss_checker" "OnTrigger" "filter_has_ss,TestActivator,!activator,0,-1" } // trigger_multiple // { // "targetname" "widowmaker_checker" // "mins" "-1 -1 -1" // "maxs" "1 1 1" // "spawnflags" "1" // "OnTrigger" "filter_has_windowmaker,TestActivator,!activator,0,-1" // } } Enforcer_Rework { OnSpawnOutput { Target "funky" Action "Kill" Delay 0.5 } func_regenerate { "targetname" "funky" "mins" "-10 -10 -10" "maxs" "10 10 10" "spawnflags" "1" "TeamNum" "2" } } Amputator_Id { NoFixup 1 math_counter { "targetname" "amputator_id_request_receiver" "startvalue" "0" "min" "0" "max" "0" "OnGetValue" "amputator_id_assigner,$SetKey$case01,,0,-1" "OnGetValue" "amputator_id_assigner,$Format,,0,-1" "OnUser1" "!self,GetValue,,0,-1" } logic_case { "targetname" "amputator_id_assigner" "case16" "spawnflags %" "case01" "0" "ondefault" "!activator,AddOutput,,0,-1" //"ondefault" "red_player,$DisplayTextCenter,,0,-1" "ondefault" "amputator_id_request_receiver,Add,1,0,-1" } } Amputator_Cooldown { NoFixup 1 OnSpawnOutput { Target "cooldown_handler" Action "SetCompareValue" Param "0" Delay 0 } OnSpawnOutput { Target "cooldown_handler" Action "SetValueCompare" Param "0" Delay 0 } OnSpawnOutput { Target "cooldown" Action "FireUser1" Delay 0.1 } math_counter { "targetname" "cooldown" "startvalue" "0" "min" "0" "max" "40" "OnGetValue" "cooldown_formatter,$SetKey$case01,,0,-1" "OnGetValue" "cooldown_formatter,$Format,,0.1,-1" "OnGetValue" "cooldown_handler,SetValueCompare,,0.1,-1" "OnUser1" "cooldown,Subtract,1,0,-1" "OnUser1" "cooldown,GetValue,,0,-1" "OnUser1" "cooldown,FireUser1,,1,-1" "OnUser2" "cooldown,GetValue,,0,-1" } logic_compare { "targetname" "cooldown_handler" "OnNotEqualTo" "amputator_checker,Disable,,0,-1" "OnEqualTo" "amputator_checker,Enable,,0,-1" "OnEqualTo" "amputator_checker,Trigger,,0,-1" } } Amputator_Rework { NoFixup 1 OnSpawnOutput { Target "amputator_id_request_receiver" Action "FireUser1" Delay 0 } OnSpawnOutput { Target "amputator_id_self_receiver" Action "FireUser1" Delay 0.2 } OnSpawnOutput { Target "cooldown_formatter" Action "$Format" Delay 0.1 } OnSpawnOutput { Target "cooldown_requester" Action "FireUser1" Delay 0 } logic_relay { "targetname" "amputator_id_self_receiver" "OnUser1" "amputator_id_self_assigners_middleman,$GetKeyValueFromActivator,spawnflags,0,-1" } logic_case { "targetname" "amputator_id_self_assigners_middleman" "ondefault" "amputator_id_self_assigner1,$SetKey$case01,,0,-1" "ondefault" "amputator_id_self_assigner2,$SetKey$case01,,0,-1" } logic_case { "targetname" "amputator_id_self_assigner1" "case16" "targetname medic_position_%" "case01" "0" "ondefault" "medic_position,AddOutput,,0,-1" //"ondefault" "red_player,$DisplayTextCenter,,0,-1" } logic_case { "targetname" "amputator_id_self_assigner2" "case16" "target medic_position_%" "case01" "0" "ondefault" "amputator_teleport,AddOutput,,0,-1" //"ondefault" "red_player,$DisplayTextCenter,,0.4,-1" } logic_relay //"ping" the cooldown every second to get the current timer { "targetname" "cooldown_requester" "OnUser1" "cooldown,FireUser2,,0,-1" "OnUser1" "!self,FireUser1,,1,-1" } logic_case { "targetname" "cooldown_formatter" "case16" "message Ability Cooldown %" "case01" "" "ondefault" "cooldown_indicator,AddOutput,,0,-1" "ondefault" "cooldown_indicator,Display,,0.1,-1" } game_text { "origin" "1984 1984 99999" "targetname" "cooldown_indicator" "message" "among us" "x" "-1" "y" "0.77" "color" "255 0 255" "channel" "4" "fadein" "0" "holdtime" "999999" } filter_tf_condition { "targetname" "filter_amputator_taunting" "Negated" "0" "condition" "7" //"OnPass" "amputator_checker,Disable,,0,-1" // "OnPass" "!self,Disable,,0,-1" "OnPass" "cooldown,SetValue,40,0,-1" "OnPass" "cooldown,FireUser2,,0,-1" "OnPass" "red_player,$ForceRespawnDead,,0.2,-1" "OnPass" "alive_marker,Enable,,0,-1" "OnPass" "alive_marker,Disable,,0.1,-1" "OnPass" "amputator_teleport,Enable,,0.21,-1" "OnPass" "amputator_teleport,Disable,,0.25,-1" } info_target { "targetname" "medic_position" "origin" "0 0 0" } filter_activator_tfteam { "targetname" "amputator_filter_is_red" "Negated" "0" "TeamNum" "2" } filter_tf_condition { "targetname" "filter_amputator_not_revived" "Negated" "1" "condition" "121" } filter_multi { "targetname" "filter_amputator_teleport_main" "Negated" "0" "FilterType" "0" "Filter01" "amputator_filter_is_red" "Filter02" "filter_amputator_not_revived" } trigger_multiple { "targetname" "alive_marker" "mins" "-10000 -10000 -10000" "maxs" "10000 10000 10000" "spawnflags" "1" "StartDisabled" "1" "filtername" "amputator_filter_is_red" "OnStartTouch" "!activator,$AddCond,121,0,-1" "OnStartTouch" "!activator,$RemoveCond,121,5,-1" } trigger_teleport { "targetname" "amputator_teleport" "mins" "-10000 -10000 -10000" "maxs" "10000 10000 10000" "spawnflags" "1" "StartDisabled" "1" "filtername" "filter_amputator_teleport_main" //"target" "medic_position" "OnStartTouch" "!activator,$PlaySoundToSelf,mvm/mvm_revive.wav,0,-1" "OnStartTouch" "!activator,$AddCond,52,0,-1" "OnStartTouch" "!activator,$AddCond,32,0,-1" "OnStartTouch" "!activator,$RemoveCond,52,3,-1" "OnStartTouch" "!activator,$RemoveCond,32,3,-1" } OnSpawnOutput { Target "amputator_checker" Action "Trigger" Delay 0.1 } logic_relay { "targetname" "amputator_checker" "spawnflags" "2" "OnTrigger" "!self,Trigger,,0.1,-1" "OnTrigger" "filter_amputator_taunting,TestActivator,!activator,0,-1" } // trigger_multiple // { // "targetname" "amputator_checker" // "mins" "-1 -1 -1" // "maxs" "1 1 1" // "StartDisabled" "1" // "spawnflags" "1" // "OnTrigger" "filter_amputator_taunting,TestActivator,!activator,0,-1" // } } OnReprogrammerWeaponFire { OnSpawnOutput { Target "reprogram_handler" Action "FireUser1" Delay 0 } OnSpawnOutput { Target "!activator" Action "$AddItemAttribute" Param "no_attack|1|0" //prevents bypassing revolver reload animation by bringing up dead ringer Delay 0 } OnSpawnOutput { Target "!activator" Action "$RemoveItemAttribute" Param "no_attack|0" Delay 4 } } } PlayerShootTemplate { Name OnReprogrammerWeaponFire Speed 0 ItemName "The Enforcer" } PlayerSpawnTemplate { Name "RenamePlayer" Origin "0 0 0" } // PlayerSpawnTemplate // { // Name "ModelandScale_FailSafe_Scout" // Class Scout // Origin "0 0 0" // } // PlayerSpawnTemplate // { // Name "ModelandScale_FailSafe_Soldier" // Class Soldier // Origin "0 0 0" // } // PlayerSpawnTemplate // { // Name "ModelandScale_FailSafe_Pyro" // Class Pyro // Origin "0 0 0" // } // PlayerSpawnTemplate // { // Name "ModelandScale_FailSafe_Demo" // Class Demoman // Origin "0 0 0" // } // PlayerSpawnTemplate // { // Name "ModelandScale_FailSafe_Heavy" // Class Heavyweapons // Origin "0 0 0" // } // PlayerSpawnTemplate // { // Name "ModelandScale_FailSafe_Engie" // Class Engineer // Origin "0 0 0" // } // PlayerSpawnTemplate // { // Name "ModelandScale_FailSafe_Medic" // Class Medic // Origin "0 0 0" // } // PlayerSpawnTemplate // { // Name "ModelandScale_FailSafe_Sniper" // Class Sniper // Origin "0 0 0" // } // PlayerSpawnTemplate // { // Name "ModelandScale_FailSafe_Spy" // Class Spy // Origin "0 0 0" // } //was a bit too buggy for my liking // PlayerItemEquipSpawnTemplate // { // Name "Bonk_Rework" // ItemName "Bonk! Atomic Punch" // Origin "0 0 0" // } PlayerItemEquipSpawnTemplate { Name "CandyCane_Rework2_Electric_Boogaloo" ItemName "The Candy Cane" Origin "0 0 0" } PlayerItemEquipSpawnTemplate { Name "Mantread_Rework" ItemName "The Mantreads" Origin "0 0 0" } PlayerItemEquipSpawnTemplate { Name "Degreaser_Rework" ItemName "The Degreaser" Origin "0 0 0" } PlayerItemEquipSpawnTemplate { Name "Caber_Rework" ItemName "The Ullapool Caber" Origin "0 0 0" } //was concluded to be really boring to use in testing // PlayerItemEquipSpawnTemplate // { // Name "BaseJumper_Rework" // ItemName "The B.A.S.E. Jumper" // Origin "0 0 0" // } //was too lame // PlayerItemEquipSpawnTemplate // { // Name "HuoLong_Rework" // ItemName "The Huo Long Heatmaker" // Origin "0 0 0" // } PlayerItemEquipSpawnTemplate { Name "Natascha_Rework" ItemName "Natascha" Origin "0 0 0" } PlayerItemEquipSpawnTemplate { Name "Axtinguisher_IsEquipped" ItemName "The Axtinguisher" Origin "0 0 0" } PlayerItemEquipSpawnTemplate { Name "Axtinguisher_IsEquipped" ItemName "Festive Axtinguisher" Origin "0 0 0" } PlayerItemEquipSpawnTemplate { Name "Axtinguisher_IsEquipped" ItemName "The Postal Pummeler" Origin "0 0 0" } //turns the engineer into a combat class independent of a sentry PlayerItemEquipSpawnTemplate { Name "Gunslinger_Rework" ItemName "The Gunslinger" Origin "0 0 0" } // PlayerItemEquipSpawnTemplate // { // Name "Swan_Song" // ItemName "The Gunslinger" // Origin "0 0 0" // } PlayerItemEquipSpawnTemplate { Name "Widowmaker_IsEquipped" ItemName "The Widowmaker" Origin "0 0 0" } PlayerItemEquipSpawnTemplate { Name "ShortCircuit_IsEquipped" ItemName "The Short Circuit" Origin "0 0 0" } PlayerItemEquipSpawnTemplate { Name "Amputator_Rework" ItemName "The Amputator" Origin "0 0 0" } //TODO: add sound //edit: I'm lazy PlayerShootTemplate { Name Explosive_Tip Speed 0 AttachToProjectile 1 Classname "tf_weapon_compound_bow" } PlayerItemEquipSpawnTemplate { Name "Enforcer_Rework" ItemName "The Enforcer" Origin "0 0 0" } //way too good // PlayerItemEquipSpawnTemplate // { // Name "CloaknDagger_Rework" // ItemName "The Cloak and Dagger" // Origin "0 0 0" // } // ItemAttributes // { // ItemName "Bonk! Atomic Punch" // "effect cond override" 64 // } // ItemAttributes // { // ItemName "The Ullapool Caber" // "max health additive bonus" 625 //1000 health // "no_attack" 1 // "move speed bonus" 2 // "damage force reduction" 0.5 // "always allow taunt" 1 // "model scale" 1.75 // "override footstep sound set" 7 // "cannot be backstabbed" 1 // } //player item stats ItemAttributes { ItemName "The Candy Cane" "special item description" "On kill with any weapon: Adds stack. Each stack grants you and teammates within 1000 units +3% passive ammo regen up to a cap of 30%" } ItemAttributes { ItemName "The Mantreads" "special item description" "On landing after a rocket jump: deal explosive damage in a 150 units radius, explosive landing damage is increased the longer you're airborne after a rocket jump" } ItemAttributes { ItemName "The Degreaser" "damage penalty" 0.1 "special item description" "+75% damage bonus on secondary weapon, +125% damage bonus on melee weapon (+150% damage bonus with The Axtinguisher)" } ItemAttributes { ItemName "The Ullapool Caber" "not solid to players" 1 "special item description" "Becomes a Sentry Buster. Taunt to detonate (revert back to a regular Demoman on detonation)" } ItemAttributes { ItemName "Natascha" //"minigun spinup time increased" 1 "special item description" "Deal damage to build Beserk. Taunt to activate Berserk and gain health on hit for 10 seconds" } ItemAttributes { ItemName "The Gunslinger" "special item description" "+125% damage bonus on all weapons (90% damage bonus with the Widowmaker equipped)" } ItemAttributes { ItemName "The Amputator" "special item description" "On taunt: revives all dead teammates and teleport them to your location with temporary uber and speed boost. Ability has a 40 seconds cooldown between use (cooldown is shared across all medics)" } ItemAttributes { Classname "tf_weapon_Compound_Bow" "special item description" "Fires explosive arrows that stick to enemies and surfaces. Arrows detonate after 3 seconds" } ItemAttributes { ItemName "The Enforcer" "provide on active" 1 "mod no reload DISPLAY ONLY" 1 "mod max primary clip override" -1 "damage penalty" 0.1 //"Reload time increased" 3.5 "clip size penalty" 0.16 "add cond on hit" 65 "add cond on hit duration" 1 "special item description" "On hit: force a non-giant enemy to fight on your side, controlled enemies are crit boosted and will self-destruct after 8 seconds" } // ItemAttributes // { // ItemName "The Cloak and Dagger" // "special item description" "While cloaked: grants a speed boost and infinite jumps, has a delay before effect is granted" // } SpawnTemplate "Combo_Pyro" SpawnTemplate "Payload_Checkpoints" SpawnTemplate "Giant_Portal" SpawnTemplate "Path_Choose" SpawnTemplate "Buster_Upgrade_Station" SpawnTemplate "Bomb_Replacement" SpawnTemplate "Natascha_Global" SpawnTemplate "Amputator_Id" SpawnTemplate "Amputator_Cooldown" SpawnTemplate "NewReprogramLogic" SpawnTemplate "Necromancer_Summon_Teleport_Chief" //Class model PrecacheModel "models/player/scout.mdl" PrecacheModel "models/player/soldier.mdl" PrecacheModel "models/player/pyro.mdl" PrecacheModel "models/player/demo.mdl" PrecacheModel "models/player/heavy.mdl" PrecacheModel "models/player/engineer.mdl" PrecacheModel "models/player/medic.mdl" PrecacheModel "models/player/sniper.mdl" PrecacheModel "models/player/spy.mdl" PrecacheModel "models/bots/engineer/bot_engineer.mdl" PrecacheModel "models/bots/demo/red_sentry_buster.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_damage1.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_damage2.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_damage3.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_damage_explode.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_explode.mdl" //I don't know why I precached these PrecacheModel "models/props_halloween/bombonomicon.mdl" PrecacheModel "models/props_halloween/gargoyle_backpack.mdl" PrecacheModel "models/player/items/heavy/heavy_bandana.mdl" PrecacheModel "models/player/items/demo/top_hat.mdl" PrecacheModel "models/props_halloween/ghost_no_hat.mdl" PrecacheModel "models/props_halloween/eyeball_projectile.mdl" PrecacheModel "models/props_halloween/halloween_demoeye.mdl" PrecacheModel "models/bots/merasmus/merasmus.mdl" PrecacheModel "models/bots/headless_hatman.mdl" PrecacheModel "models/bots/skeleton_sniper/skeleton_sniper.mdl" PrecacheModel "models/bots/skeleton_sniper_boss/skeleton_sniper_boss.mdl" PrecacheModel "models/weapons/w_models/w_breadmonster/w_breadmonster.mdl" PrecacheModel "models/custom/dirty_bomb_cart.mdl" PrecacheSound "ui/halloween_boss_summoned.wav" PrecacheSound "mvm/mvm_revive.wav" PrecacheSound "mvm/mvm_used_powerup.wav" ExtraTankPath { Name "monoculus" Node "-458.2 -1219.1 550.0" Node "39.4 1493.9 550.0" Node "-2265.3 1658.1 550.0" Node "-2375.6 5401.9 550.0" Node "-3012.9 5417.1 550.0" } ExtraTankPath { Name "payload_red" Node "-3468.1 6416.2 193.0" Node "-3471.5 5836.7 126.1" Node "-3520 5776 168" Node "-3664 5584 168" Node "-3664 4960 104" Node "-3600 4864 104" Node "-3536 4816 104" Node "-3520 4736 104" Node "-3520 4224 104" Node "-3616 3904 104" //1st checkpoint, payload_red_10 Node "-3696 3792 104" Node "-3712 3568 104" Node "-3696 3360 104" Node "-3632 3232 104" Node "-3200 3232 104" Node "-3168 3216 104" Node "-3152 3184 104" Node "-3152 3088 104" Node "-3120 3008 104" Node "-3072 2976 104" Node "-2800 2976 104" Node "-2736 3024 104" Node "-2720 3152 104" Node "-2576 3248 104" Node "-2080 3248 104"//2nd checkpoint, payload_red_25 Node "-1280 3232 104" Node "-1232 3232 104" Node "-1200 3216 104" Node "-1184 3184 104" Node "-1184 2164.3 200.7" Node "-976 1920 168" Node "-896 1904 168" //3rd checkpoint, payload_red_32 Node "-320 1664 104" Node "-272 1616 104" Node "-288 1552 104" Node "-80 1472 104" Node "-32 768 232" Node "-32 565 232" //stop point to wait for all dead, payload_red_38 Node "-32 384 232" Node "-32 -160 152" Node "-32 -216 152" Node "0 -248 152" Node "32 -264 152" Node "430.7 -216.2 152" //final, payload_red_44 } ExtraSpawnPoint { Name "corporal_spawn" TeamNum 3 X "-6.3 " Y "-215.0" Z "30.0" } ExtraSpawnPoint { Name "msg_homingstyle" StartDisabled 1 TeamNum 3 X "-6.3 " Y "-215.0" Z "30.0" } ExtraSpawnPoint { Name "msg_chargedstyle" StartDisabled 1 TeamNum 3 X "-6.3 " Y "-215.0" Z "30.0" } ExtraSpawnPoint { Name "msg_barragestyle" StartDisabled 1 TeamNum 3 X "-6.3 " Y "-215.0" Z "30.0" } ExtraSpawnPoint { Name "msg_legendstyle" StartDisabled 1 TeamNum 3 X "-6.3 " Y "-215.0" Z "30.0" } ExtraSpawnPoint { Name "canteen_msg_recall" StartDisabled 1 TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "canteen_msg_uber" StartDisabled 1 TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "canteen_msg_crit" StartDisabled 1 TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "canteen_msg_haste" StartDisabled 1 TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "canteen_msg_strength" StartDisabled 1 TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "canteen_msg_infclip" StartDisabled 1 TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "canteen_msg_reflect" StartDisabled 1 TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "canteen_msg_supernova" StartDisabled 1 TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "canteen_msg_plague" StartDisabled 1 TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "canteen_msg_emp" StartDisabled 1 TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "canteen_msg_precision" StartDisabled 1 TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "canteen_msg_sandvich" StartDisabled 1 TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "canteen_msg_speed" StartDisabled 1 TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "canteen_msg_pinch" StartDisabled 1 TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "summon_chief1" StartDisabled 1 TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "summon_chief2" StartDisabled 1 TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "summon_chief3" StartDisabled 1 TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "d4c" TeamNum 3 X "1512.0" Y "273.9" Z "-85.7" } ExtraSpawnPoint { Name "outofbound" TeamNum 3 X "-2768.2" Y "2149.7" Z "-186.8" } //Mission bots Mission { Where spawnbot_secondary Objective DestroySentries InitialCooldown 0 BeginAtWave 1 RunForThisManyWaves 7 CooldownTime 40 TFBot { Template T_TFBot_SentryBuster } } //Robot templates Templates { Extra_AttackPayload_Behavior { Action Mobber InterruptAction { Target "payloadtank" //KillAimTarget 1 Delay 0.1 Duration 9999999 WaitUntilDone 1 } } //a reference to biker from hotline miami T_TFBot_Giant_Scout_Cleaver { Name "Giant Cleaver Scout" Class Scout ClassIcon scout_cleaver Health 1600 WeaponRestrictions SecondaryOnly item "The Flying Guillotine" item "Death Racer's Helmet" item "Wipe Out Wraps" item "Zombie Scout" UseCustomModel "models/player/scout.mdl" Tag bot_giant Skill Expert Attributes MiniBoss ItemColor { ItemName "Death Racer's Helmet" Red 180 Green 0 Blue 184 } ItemAttributes { ItemName "Death Racer's Helmet" "set item tint rgb" 8208497 //A deep Commitment to Purple //doesn't work } ItemAttributes { ItemName "The Flying Guillotine" "effect bar recharge rate increased" 0 "fire rate penalty" 2 "item style override" 1 //thristier style (the one with more blood) } CharacterAttributes { "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "override footstep sound set" 5 } } //fires 3 fireball rockets //less rockets per salvo but faster projectile speed and reload speed compared to giant burst fire T_TFBot_Giant_Burst_Fireball_Soldier { Name "Giant Burst Fireball Soldier" Class Soldier ClassIcon pyro_dragon_fury_burst Health 5000 item "Battle Bird" item "Zombie Soldier" UseCustomModel "models/player/soldier.mdl" Skill Expert Attributes HoldFireUntilFullReload Attributes MiniBoss RocketCustomModel "models/empty.mdl" RocketCustomParticle "spell_fireball_small_red" ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "fire rate bonus" 0.1 "clip size upgrade atomic" -1 "projectile spread angle penalty" 3 "Projectile speed increased" 0.8 "Set DamageType Ignite" 1 "attach particle effect" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } } T_TFBot_Giant_Pyro_Fury { Name "Giant Fury Pyro" Class Pyro Health 3000 ClassIcon pyro_dragon_fury_swordstone_giant Item "The Dragon's Fury" Item "Zombie Pyro" UseCustomModel "models/player/pyro.mdl" MaxVisionRange 1200 WeaponRestrictions PrimaryOnly Skill Expert Attributes MiniBoss ItemAttributes { ItemName "The Dragon's Fury" "damage bonus" 1.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 6 } } T_TFBot_Giant_Heavy_Fist { Name "Giant Steel Gauntlet" Class Heavyweapons Health 6000 ClassIcon heavy_steelfist Item "Fists of Steel" Item "Zombie Heavy" UseCustomModel "models/player/heavy.mdl" WeaponRestrictions MeleeOnly Skill Expert Attributes MiniBoss CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } } //fires 3 flares whenever flamethrower hits someone T_TFBot_Giant_Pyro_ComboFlare { Name "Giant Combo Pyro" Class Pyro Health 3000 ClassIcon pyro_degreaser_flare Item "The Degreaser" Item "The Flare Gun" Item "Pyromancer's Mask" Item "Zombie Pyro" UseCustomModel "models/player/pyro.mdl" Skill Expert Attributes MiniBoss MaxVisionRange 1200 ItemAttributes { ItemName "The Degreaser" "fire input on hit" "combo_primary_to_secondary_longhold^Trigger^" "airblast disabled" 1 "damage penalty" 0.1 } ItemAttributes { ItemName "The Flare Gun" "faster reload rate" 0.2 } CharacterAttributes { "move speed bonus" 0.6 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 6 } } T_TFBot_Giant_Bowman_Explosive_Tip { Name "Giant Explosive Tip Bowman" Class Sniper ClassIcon sniper_bow_atomic Health 3200 WeaponRestrictions PrimaryOnly Item "The Fortified Compound" Item "Zombie Sniper" Skill Expert Attributes MiniBoss UseCustomModel "models/player/sniper.mdl" ShootTemplate { Name Explosive_Tip_Bot Speed 0 AttachToProjectile 1 Classname "tf_weapon_compound_bow" } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 5 } } //fast, incredibly fragile //meant to be canon folder T_TFBot_Giant_Skeleton { Name "Skeleton King" Class Sniper ClassIcon dead_king_lite Health 2100 WeaponRestrictions MeleeOnly item "Prince Tavish's Crown" Skill Expert Attributes MiniBoss UseCustomModel "models/bots/skeleton_sniper_boss/skeleton_sniper_boss.mdl" CustomWeaponModel { Slot 0 Model "models/empty.mdl" } CustomWeaponModel { Slot 1 Model "models/empty.mdl" } CustomWeaponModel { Slot 2 Model "models/empty.mdl" } ItemAttributes { ItemName tf_weapon_club "custom kill icon" "skull" } CharacterAttributes { "move speed bonus" 0.8 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 5 "voice pitch scale" 0 } } //giant demoknight with more health, doesn't have a shield //stuns anyone within 350 hammer units every 16 seconds (taunts every 15 seconds as an indicator) T_TFBot_Headless_Horseless_Horsemann { SpawnTemplate "HHH_Hitbox_Fix" SpawnTemplate "HHH_Death_Init" SpawnTemplate "HHH_Stun_Hitbox" SpawnTemplate "HHH_Footstep" Name "Horseless Headless Horsemann" Class Demoman Scale 1.75 CustomEyeParticle "halloween_boss_eye_glow" //doesn't work unfortunately ClassIcon demoknight_headtaker_nys_giant Health 6000 WeaponRestrictions MeleeOnly Item "The Horseless Headless Horseman's Headtaker" Skill Expert Attributes MiniBoss UseCustomModel "models/bots/headless_hatman.mdl" CustomWeaponModel { Slot 0 Model "models/empty.mdl" } CustomWeaponModel { Slot 1 Model "models/empty.mdl" } Taunt { Delay 14 Cooldown 16 } CharacterAttributes { "hand scale" 1.75 "always allow taunt" 1 "gesture speed increase" 1.5 "move speed bonus" 0.6 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 0 "voice pitch scale" 0 } } T_TFBot_Bread_Monster_Base { SpawnTemplate "Bread_Monster_Death_Init" SpawnTemplate "Bread_Monster_Base_Init_New" //SpawnTemplate "Bread_Monster_Base_Init" Name "Bread Monster" Class Soldier Skill Expert Attributes SuppressFire Action Mobber WeaponRestrictions MeleeOnly UseCustomModel "models/empty.mdl" Scale 0.001 MaxVisionRange 0 AddCond { Index 52 } CustomWeaponModel { Slot 0 Model "models/empty.mdl" } CustomWeaponModel { Slot 1 Model "models/empty.mdl" } CustomWeaponModel { Slot 2 Model "models/empty.mdl" } // ChangeAttributes // { // Delay 0 // Cooldown 2 // Repeats 0 // Name "Jump" // } // ChangeAttributes // { // Delay 0.5 // Cooldown 2.5 // Repeats 0 // Name "NoJump" // } // ClientCommand // { // Name "+forward" // Delay 0 // Cooldown 0.1 // Repeats 1 // } // FireWeapon // { // Delay 0 // Cooldown 5 // Type "Jump" // } CharacterAttributes { "not solid to players" 1 "increased jump height" 1.25 "cancel falling damage" 1 "voice pitch scale" 0 "move speed bonus" 0.5 "dmg from ranged reduced" 0 "dmg from melee increased" 0 "damage force reduction" 0.001 "airblast vulnerability multiplier" 0.001 "airblast vertical vulnerability multiplier" 0.001 "cannot be backstabbed" 1 "cannot pick up intelligence" 1 } // EventChangeAttributes // { // Jump // { // // ChangeAttributes // // { // // Delay 0.7 // // Cooldown 0.7 // // Name "NoJump" // // } // CharacterAttributes // { // "increased jump height" 2 // "cancel falling damage" 1 // "voice pitch scale" 0 // "move speed bonus" 3 // "dmg from ranged reduced" 0 // "dmg from melee increased" 0 // "cannot pick up intelligence" 1 // } // } // NoJump // { // // ChangeAttributes // // { // // Delay 1 // // Cooldown 1 // // Name "Jump" // // } // CharacterAttributes // { // "no_jump" 1 // "voice pitch scale" 0 // "move speed bonus" 0.001 // "dmg from ranged reduced" 0 // "dmg from melee increased" 0 // "cannot pick up intelligence" 1 // } // } // } tag bread_monster } //burst fire giant shotgun //uses a variety of canteens including custom ones T_TFBot_Chief_Canteen { SpawnTemplate "Yakuza_Title_Card" SpawnTemplate "PreventPowerupDropOnDeath" SpawnTemplate "CustomCanteensInit" Name "Corporal Canteen" Class Heavyweapons ClassIcon heavy_shotgun_burst_lite Health 50000 WeaponRestrictions SecondaryOnly item "Security Shades" //item "Battery Canteens" Skill Expert Attributes MiniBoss Attributes UseBossHealthBar Attributes HoldFireUntilFullReload ExtAttr SuppressCanteenUse UseMeleeThreatPrioritization 1 Scale 1.9 MaxVisionRange 1200 //UseHumanAnimations 1 Taunt { Delay 0.3 Repeats 1 } FireInput { Target "random_canteen_use" Action "PickRandomShuffle" Delay 6 Cooldown 11 Repeats 0 } FireInput { Target "pinch_canteen" Action "Trigger" Delay 0.1 Cooldown 9999 Repeats 1 IfHealthBelow 20000 } ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_HWG" "fire rate bonus" 0.3 "bullets per shot bonus" 10 "clip size penalty" 0.5 "damage penalty" 0.5 "faster reload rate" 1.25 } ItemAttributes { ItemName "TF_WEAPON_FISTS" "damage causes airblast" 1 } CharacterAttributes { "deploy time decreased" 0.1 "health regen" 40 "deploy time decreased" 0.1 "move speed bonus" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "rage giving scale" 0.5 } // ItemAttributes // { // ItemName "Battery Canteens" // "ubercharge" 1 // "powerup charges" 69 // } // EventChangeAttributes // { // None // { // WeaponRestrictions SecondaryOnly // item "TF_WEAPON_SHOTGUN_HWG" // } // Sandvich // { // item "The Robo-Sandvich" // Attributes AlwaysFireWeapon // CharacterAttributes // { // "deploy time decreased" 0.1 // "move speed bonus" 0.5 // "damage force reduction" 0.5 // "airblast vulnerability multiplier" 0.5 // } // } // } tag chief tag no_reprogram tag corporal_canteen } //switches between 3 style //4th style rapidly cycles between buffed version of the 3 styles //styles are based off of kiryu from yakuza's styles (brawler is charged,rush is homing,beast is barrage) //each style functionality were loosely based off of their original yakuza style counterpart //oh and he has an eyepatch because funny majima T_TFBot_Chief_Yakuza { SpawnTemplate "Yakuza_Title_Card_Sergeant_Reciever" SpawnTemplate "Yauka_Styles" Name "Sergeant Receiver" //shoutout to eggman#9862 for the actually good name (he was called fucking Sergeant Subtype before) Class Soldier ClassIcon boss_yakuza Health 50000 Scale 1.9 WeaponRestrictions PrimaryOnly Item "The Eye-Catcher" Skill Expert Attributes MiniBoss Attributes UseBossHealthBar Attributes HoldFireUntilFullReload FireInput { Target "randomstyle" Action "PickRandomShuffle" Delay 0.1 Cooldown 8 Repeats 0 } FireInput { Target "dragon_style" Action "Trigger" Delay 0.1 Repeats 1 IfHealthBelow 25000 } CharacterAttributes { "health regen" 100 "move speed bonus" 0.5 "damage force reduction" 0.001 "airblast vulnerability multiplier" 0.001 "override footstep sound set" 3 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.5 } tag no_reprogram } //summons progressively stronger giants the longer it's alive //the chief itself isn't a threat and moreso works like a moving spawnpoint for summon giants T_TFBot_Chief_Necromancer_Medic { SpawnTemplate "Yakuza_Title_Card_Necromancer" SpawnTemplate "Necromancer_Chief_Summon_Logic" //SpawnTemplate "Necromancer_Chief_On_Death" Name "Chief Necromancer Medic" Class Medic ClassIcon medic_boost_giant Health 40000 WeaponRestrictions MeleeOnly item "Spine-Chilling Skull" item "Zombie Medic" UseCustomModel "models/player/medic.mdl" Skill Expert Attributes MiniBoss Attributes UseBossHealthBar Action FetchFlag Scale 1.9 Taunt { Delay 10 Cooldown 16 Repeats 0 Name "Taunt: Second Rate Sorcery" } CustomWeaponModel { Slot 0 Model "models/empty.mdl" } CustomWeaponModel { Slot 1 Model "models/empty.mdl" } ItemAttributes { ItemName tf_weapon_bonesaw "custom kill icon" "skull" } CharacterAttributes { "no_jump" 1 "always allow taunt" 1 "voice pitch scale" 1.2 "damage force reduction" 0.001 "airblast vulnerability multiplier" 0.001 "move speed bonus" 0.25 "rage giving scale" 0.5 } tag chief } //this is where the fun begins //unused T_TFBot_Giant_TFC_Heavy { SpawnTemplate "TFC_Heavy_AI" Name "TFC Heavy" Class Heavyweapons ClassIcon heavy_giant Health 35000 //Action Mobber Skill Expert Attributes MiniBoss Attributes UseBossHealthBar //Attributes IgnoreFlag //MaxVisionRange 1200 item "Upgradeable tf_weapon_minigun" item "Upgradeable tf_weapon_shotgun_hwg" item "Upgradeable tf_weapon_fists" //item "Heavy Duty Rag" fuck you equip region item "The War Goggles" item "The Samson Skewer" item "Zombie Heavy" UseCustomModel "models/player/heavy.mdl" ItemModel { ItemName "The Samson Skewer" Model "models/player/items/heavy/heavy_bandana.mdl" //bypasses the stupid ass equip region } // WeaponSwitch // { // Delay 0 // Repeats 1 // Type "Secondary" // IfHealthBelow 25000 // } // WeaponSwitch // { // Delay 0 // Repeats 1 // Type "Melee" // IfHealthBelow 15000 // } VoiceCommand { Delay 0 Cooldown 24 Type "Battle cry" } VoiceCommand { Delay 8 Cooldown 32 Type "Jeers" } VoiceCommand { Delay 24 Cooldown 40 Type "Negative" } Message { Name "{blue}TFC Heavy {FFFFFF}has escaped the underworld!" Delay 0 Repeats 1 } ItemAttributes { ItemName "Upgradeable tf_weapon_minigun" "damage bonus" 2 "minigun spinup time decreased" 0.1 "mod minigun can holster while spinning" 1 "killstreak tier" 3 "killstreak idleeffect" 3 //manndarin "killstreak effect" 2002 //fire horn } ItemAttributes { ItemName "Upgradeable tf_weapon_shotgun_hwg" "fire rate bonus" 0.7 "bullets per shot bonus" 10 "damage penalty" 0.5 "faster reload rate" -0.8 "killstreak tier" 3 "killstreak idleeffect" 3 //manndarin "killstreak effect" 2002 //fire horn } ItemAttributes { ItemName "Upgradeable tf_weapon_fists" //"provide on active" 1 //"damage bonus" 2 "damage causes airblast" 1 //"dmg from melee increased" 5 //"move speed bonus" 1.5 "killstreak tier" 3 "killstreak idleeffect" 3 //manndarin "killstreak effect" 2002 //fire horn } CharacterAttributes { "deploy time decreased" 0.1 "move speed bonus" 0.5 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "override footstep sound set" 2 "rage giving scale" 0.5 //"cannot pick up intelligence" 1 } tag chief tag tfc_heavy } T_TFBot_Monoculus_Shoot { SpawnTemplate "Monoculus_Death_Init" Name "MONOCULUS!" Class Soldier Skill Expert Attributes SuppressFire UseCustomModel "models/empty.mdl" Scale 0.0001 MaxVisionRange 100000 AlwaysGlow 1 // HomingRockets // { // IgnoreDisguisedSpies 1 // IgnoreStealthedSpies 1 // TurnPower 500 // AimTime 1 // RocketSpeed 0.5 // } RocketCustomModel "models/props_halloween/eyeball_projectile.mdl" RocketCustomParticle "eyeboss_projectile" AddCond { Index 52 } CustomWeaponModel { Slot 0 Model "models/empty.mdl" } CustomWeaponModel { Slot 1 Model "models/empty.mdl" } CustomWeaponModel { Slot 2 Model "models/empty.mdl" } FireWeapon { Delay 1 Cooldown 6 Duration 1 Type "Primary" } ItemAttributes { ItemName tf_weapon_rocketlauncher "custom kill icon" "eyeball_rocket" "mod max primary clip override" -1 "fire rate bonus" 0.5 "projectile speed decreased" 0.75 } CharacterAttributes { "no_jump" 1 "move speed bonus" 0.001 "dmg from ranged reduced" 0 "dmg from melee increased" 0 "cannot pick up intelligence" 1 } tag monoculus_shooter } T_TFBot_Skeleton { Name "Skeleton" Class Sniper ClassIcon dead_lite WeaponRestrictions MeleeOnly Skill Expert UseCustomModel "models/bots/skeleton_sniper/skeleton_sniper.mdl" CustomWeaponModel { Slot 0 Model "models/empty.mdl" } CustomWeaponModel { Slot 1 Model "models/empty.mdl" } CustomWeaponModel //invisible melee { Slot 2 Model "models/empty.mdl" } ItemAttributes { ItemName tf_weapon_club "custom kill icon" "skull" } CharacterAttributes { "voice pitch scale" 0 } } //bonk scouts that become a ghost on drink //+can't be bodyblocked, ubersawed or airblasted as a ghost //-can't deploy or pick up the bomb as a ghost //dudebro can also survive a !panic which is pretty funny T_TFBot_Scout_Ghost_Bonk { Name "Ghostly Bonk! Scout" Class Scout ClassIcon scout_ghost_bonk WeaponRestrictions MeleeOnly Item "Bonk! Atomic Punch" Item "Ghastly Gibus" Item "Zombie Scout" UseCustomModel "models/player/scout.mdl" Skill Expert CustomWeaponModel { Slot 0 Model "models/empty.mdl" } ItemAttributes { ItemName "Bonk! Atomic Punch" "effect cond override" 77 "mult effect duration" 1.25 } CharacterAttributes { "not solid to players" 1 } } //switches to flare gun briefly when hitting someone with primary //massive damage penalty on degreaser, cannot airblast, only meant to deal damage with secondary T_TFBot_Pyro_ComboDetonator { Name "Combo Pyro" Class Pyro ClassIcon pyro_degreaser_flare Item "The Degreaser" Item "The Detonator" Item "Pyromancer's Mask" Item "Zombie Pyro" UseCustomModel "models/player/pyro.mdl" Skill Expert ItemAttributes { ItemName "The Degreaser" "fire input on hit" "combo_primary_to_secondary^Trigger^" "airblast disabled" 1 "damage penalty" 0.1 } ItemAttributes { ItemName "The Detonator" "damage penalty" 1 "faster reload rate" 0.3 } } } //Wave 1 Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } Explanation { //Line "{FFD700}The Bonk! Atomic Punch {FFFFFF}- On drink: become invisible, attacking during this state will exit invisibility and grants 2 seconds of critical hit" //Line "{FFD700}The B.A.S.E Jumper{FFFFFF}- While parachuting: grants homing rocket on primary weapon (Soldier only)" Line "{FFD700}The Candy Cane {FFFFFF}- On kill with any weapon: Adds stack. Each stack grants you and teammates +3% passive ammo regen up to a cap of 30% (effect will only be active for teammates when they're within 1000 hammer units)" Line "{FFD700}The Mantreads {FFFFFF}- On landing after a rocket jump: deal explosive damage in a 150 units radius, explosive landing damage is increased the longer you're airborne after a rocket jump" Line "{FFD700}The Degreaser {FFFFFF}- +75% damage bonus on secondary weapon, +125% damage bonus on melee weapon (+150% damage bonus with {FFD700}The Axtinguisher{FFFFFF}). 90% damage penalty on primary" Line "{FFD700}The Ullapool Caber {FFFFFF}- Turns you into a Sentry Buster with increased speed, 800 health and reduced push force. Taunt to detonate. Detonation reverts you back to a normal Demoman with temporal uber and speed boost" //Line "{FFD700}The Huo-Long Heater {FFFFFF}- Fires a flare projectile every 6 seconds while shooting" Line "{FFD700}The Natascha {FFFFFF}- Deal damage to build Beserk. Taunt to activate Berserk and gain health on hit for 10 seconds" Line "{FFD700}The Gunslinger {FFFFFF}- 125% damage bonus on all weapons while equipped (90% damage bonus with {FFD700}The Widowmaker{FFFFFF} equipped)" Line "{FFD700}The Amputator {FFFFFF}- On taunt: revives all dead teammates and teleport them to your location with temporary uber and speed boost. Ability has a 40 seconds cooldown between use (cooldown is shared across all medics)" Line "{FFD700}All bows {FFFFFF}- Fire explosive arrows that stick to enemies and surfaces, detonate after 3 seconds" // Line "{FFD700}The Cloak and Dagger {FFFFFF} - While cloaked: grants a speed boost and infinite jumps, has a delay before effect is granted" Line "{FFD700}The Enforcer {FFFFFF} - On hit: force a non-giant enemy to fight on your side, controlled enemies are crit boosted and will self-destruct after 8 seconds" } // WaveSpawn // { // Name "1a" // Where spawnbot_secondary // TotalCount 15 // MaxActive 5 // SpawnCount 5 // WaitBetweenSpawns 0 // WaitBeforeStarting 0 // TotalCurrency 50 // TFBot // { // Class Soldier // Skill Normal // Item "Zombie Soldier" // UseCustomModel "models/player/soldier.mdl" // } // } WaveSpawn { Name "1AAAAAA" Where spawnbot_secondary TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 25 TFBot { Template T_TFBot_Giant_Soldier Item "Zombie Soldier" UseCustomModel "models/player/soldier.mdl" tag no_reprogram } } WaveSpawn { waitforalldead "1AAAAAA" Name "1BBBBB" Where spawnbot_secondary TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 15 TotalCurrency 25 TFBot { Template T_TFBot_Giant_Soldier Item "Zombie Soldier" UseCustomModel "models/player/soldier.mdl" tag no_reprogram } } WaveSpawn { Name "1a" Where spawnbot_secondary TotalCount 30 MaxActive 10 SpawnCount 2 WaitBetweenSpawns 2 WaitBeforeStarting 0.1 TotalCurrency 50 Squad { TFBot { Template T_TFBot_Pyro_ComboDetonator } TFBot { Template T_TFBot_Medic_BigHeal Name "Big-Heal Medic" Item "Zombie Medic" UseCustomModel "models/player/medic.mdl" } } } WaveSpawn { waitforalldead "1AAAAAA" Name "1b" Where spawnbot TotalCount 3 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 5 WaitBeforeStarting 0.1 TotalCurrency 150 TFBot { Template T_TFBot_Giant_Skeleton tag no_reprogram } } WaveSpawn { waitforalldead "1AAAAAA" Name "1b" Where spawnbot TotalCount 40 MaxActive 8 SpawnCount 2 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 50 TFBot { Template T_TFBot_Skeleton } } WaveSpawn { waitforallspawned "1a" Name "1c" Where spawnbot_secondary TotalCount 18 MaxActive 6 SpawnCount 6 WaitBetweenSpawns 0 WaitBeforeStarting 5 TotalCurrency 100 TFBot { Template T_TFBot_Sniper_Huntsman Item "Zombie Sniper" UseCustomModel "models/player/sniper.mdl" } } WaveSpawn { waitforallspawned "1a" Name "1d" Where spawnbot_secondary TotalCount 4 MaxActive 4 SpawnCount 1 WaitBetweenSpawns 12 WaitBeforeStarting 20 TotalCurrency 300 TFBot { Template T_TFBot_Giant_Pyro Item "Zombie Pyro" tag no_reprogram UseCustomModel "models/player/pyro.mdl" } } WaveSpawn { waitforallspawned "1d" Name "1e" Where spawnbot_secondary TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 5 TotalCurrency 200 TFBot { Template T_TFBot_Headless_Horseless_Horsemann tag no_reprogram } } WaveSpawn { waitforallspawned "1d" Name "1e-support" Where spawnbot_secondary TotalCount 4 MaxActive 4 SpawnCount 4 WaitBetweenSpawns 10 WaitBeforeStarting 0 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Scout_Melee ClassIcon scout_bat //I believe in scout_bat supremacy Item "Zombie Scout" UseCustomModel "models/player/scout.mdl" } } WaveSpawn { waitforallspawned "1d" Name "1e-support" Where spawnbot_secondary TotalCount 6 MaxActive 6 SpawnCount 6 WaitBetweenSpawns 15 WaitBeforeStarting 5 TotalCurrency 0 Support 1 TFBot { Class Soldier Skill Normal Item "Zombie Soldier" UseCustomModel "models/player/soldier.mdl" } } } //Wave 2 Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } //scrapped because it no longer functions as intended & I don't have time to make the rest of the sidequests // Explanation // { // // Line "{yellow}Certain waves will include an optional side-quest that includes a reward upon completion but is usually not required to finish the wave. You will be notified of one at the start of its assosiated wave" // Line "{red}=== SIDE-QUEST RECEIVED ===" // Line "{yellow}Objective: {FFFFFF}Feed the Gargoyle 5 souls by killing enemies near it" // Line "{yellow}Reward: {FFD700}The Blundergat {FFFFFF}(Force-a-Nature) - Fires a single close-range powerful shot, no knockback" // } // SpawnTemplate "Gargoyle_Soul_Box" WaveSpawn { Name "2a" Where spawnbot_secondary TotalCount 25 MaxActive 5 SpawnCount 5 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 50 TFBot { Template T_TFBot_Scout_Ghost_Bonk } } WaveSpawn { Name "2a" Where spawnbot_secondary TotalCount 36 MaxActive 4 SpawnCount 4 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 150 TFBot { Class Demoman Skill Normal Item "Zombie Demo" UseCustomModel "models/player/demo.mdl" } } WaveSpawn { Name "2b" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 5 TotalCurrency 100 //MONOCULUS tank (it's more like a blimp actually), requires T_TFBot_Monoculus_Shoot to be spawned at the same time to function //the tank itself is invisible and acts as the hitbox, once it dies the shooter will be deleted along with the model //lower health than a blimp, rockets act as a constant threat Tank { SpawnTemplate "Monoculus_Tank_Init" SpawnTemplate "Monoculus_Cleanup_Init" Health 12000 Speed 75 Scale 0.8 DisableSmokestack 1 Classicon boss_eyeball MaxTurnRate 25 //DestroyTemplate "Literally_Nothing" //good luck crashing the game with literally nothing now, rafmod janks //edit: nvm it crashed Model "models/empty.mdl" StartSound "ui/halloween_boss_summoned_monoculus.wav" PingSound "misc/null.wav" EngineLoopSound "misc/null.wav" Gravity 0 DisableTracks 1 DisableChildModels 1 Name "tankboss" StartingPathTrackNode "monoculus_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "2b" Where outofbound TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 5 TotalCurrency 0 Support Limited RandomChoice { RandomChoice { TFBot { SpawnTemplate "Monoculus_Shooter_Init" Template T_TFBot_Monoculus_Shoot tag no_reprogram } } } } WaveSpawn { waitforalldead "2b" Name "2c" Where spawnbot_secondary TotalCount 10 MaxActive 5 SpawnCount 5 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun ClassIcon heavy_shotgun_giant Item "Zombie Heavy" tag no_reprogram UseCustomModel "models/player/heavy.mdl" } TFBot { Class Heavyweapons Skill Easy Item "Zombie Heavy" UseCustomModel "models/player/heavy.mdl" } TFBot { Class Heavyweapons Skill Easy Item "Zombie Heavy" UseCustomModel "models/player/heavy.mdl" } TFBot { Class Heavyweapons Skill Easy Item "Zombie Heavy" UseCustomModel "models/player/heavy.mdl" } TFBot { Class Heavyweapons Skill Easy Item "Zombie Heavy" UseCustomModel "models/player/heavy.mdl" } } } // WaveSpawn // { // waitforalldead "2c" // Name "2d" // Where spawnbot_secondary // TotalCount 20 // MaxActive 4 // SpawnCount 4 // WaitBetweenSpawns 0 // WaitBeforeStarting 0 // TotalCurrency 200 // TFBot // { // Class Heavyweapons // Skill Easy // Item "Zombie Heavy" // UseCustomModel "models/player/heavy.mdl" // } // } // WaveSpawn // { // waitforalldead "2b" // Name "2d" // Where spawnbot // TotalCount 2 // MaxActive 2 // SpawnCount 2 // WaitBetweenSpawns 0 // WaitBeforeStarting 5 // TotalCurrency 0 // Support Limited // RandomChoice // { // Squad // { // TFBot // { // Template T_TFBot_Richter // SpawnTemplate "Richter_Logic" // SpawnTemplate "DropCritPowerupOnDeath" // } // TFBot // { // Template T_TFBot_Shaft // SpawnTemplate "Shaft_Logic" // tag no_reprogram // } // } // } // } WaveSpawn { waitforallspawned "2c" Name "2e" Where spawnbot_secondary TotalCount 2 MaxActive 2 SpawnCount 1 WaitBetweenSpawns 10 WaitBeforeStarting 20 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Bowman_Explosive_Tip tag no_reprogram } } WaveSpawn { waitforallspawned "2e" Name "2f" Where spawnbot_secondary TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 20 TotalCurrency 75 TFBot { Template T_TFBot_Giant_Demo_Burst Attributes AlwaysCrit Item "Zombie Demo" tag no_reprogram UseCustomModel "models/player/demo.mdl" } } WaveSpawn { waitforallspawned "2e" Name "2f" Where spawnbot_secondary TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 20 TotalCurrency 75 TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload Item "Zombie Soldier" tag no_reprogram UseCustomModel "models/player/soldier.mdl" } } WaveSpawn { waitforalldead "2b" Name "2e-common" Where spawnbot_secondary TotalCount 30 MaxActive 5 SpawnCount 5 WaitBetweenSpawns 3 WaitBeforeStarting 10 TotalCurrency 150 TFBot { Class Pyro Attributes AlwaysFireWeapon Skill Easy Item "Zombie Pyro" UseCustomModel "models/player/pyro.mdl" } } } //Wave 3 Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } //unused sidequest that involved killing merasmus within 20 seconds to spawn an optional boss that drops reward on death //the assets for this are all done and functional // Explanation // { // Line "{30ED26}You'll be recieving a special Merasmission this wave" // Line "{30ED26}Merasmissions modify the main wave and are not recommended for inexperienced players" // Line "{red}=== SIDE-QUEST RECEIVED ===" // Line "{30ED26}This is a Merasmission" // Line "{30ED26}Merasmissions can be activated by dealing 1000 damage to Merasmus (located at the front upgrade station) at the start of the wave" // //Line "{FFFFFF}Wave progress will be paused while this side-quest is active" // Line "{yellow}Objective: {FFFFFF}Summon & defeat the {8650AC}Horseless Hatted Horsemann" // Line "{yellow}Reward: {FFD700}The Reprogrammer {FFFFFF}(Enforcer) - On Hit: Force a non-giant enemy to fight on your side for 8 seconds" // Line "{FFFFFF}NOTE: Weapon reward will be dropped at the death location of the summoned enemy" // } // WaveSpawn // { // Name "3quest_start" // Where quest_starter // TotalCount 1 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 0 // WaitBeforeStarting 1 // TotalCurrency 0 // Support Limited // RandomChoice // { // RandomChoice // { // TFBot // { // Template T_TFBot_Merasmus_Quest_Giver // SpawnTemplate "Quest_Giver_Logic" // tag no_reprogram // } // } // } // } // WaveSpawn // { // Name "3quest_a" // Where spawnbot_quest // TotalCount 1 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 0 // WaitBeforeStarting 0 // TotalCurrency 0 // Support Limited // RandomChoice // { // RandomChoice // { // TFBot // { // Template T_TFBot_Hatted_Horseless_Horsemann // tag no_reprogram // } // } // } // } WaveSpawn { Name "3b" Where spawnbot_secondary TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Scout_Cleaver tag no_reprogram } } WaveSpawn { Name "3a" Where spawnbot_secondary TotalCount 12 MaxActive 4 SpawnCount 4 WaitBetweenSpawns 0 WaitBeforeStarting 1 TotalCurrency 300 Squad { TFBot { Template T_TFBot_Giant_Soldier_Crit Item "Zombie Soldier" tag no_reprogram UseCustomModel "models/player/soldier.mdl" } TFBot { Template T_TFBot_Medic Item "Zombie Medic" UseCustomModel "models/player/medic.mdl" } TFBot { Template T_TFBot_Medic Item "Zombie Medic" UseCustomModel "models/player/medic.mdl" } TFBot { Template T_TFBot_Medic Item "Zombie Medic" UseCustomModel "models/player/medic.mdl" } } } WaveSpawn { Name "3c" Where spawnbot_secondary TotalCount 28 MaxActive 7 SpawnCount 7 WaitBetweenSpawns 0 WaitBeforeStarting 0.1 TotalCurrency 50 TFBot { Class Scout Skill Hard Item "Zombie Scout" UseCustomModel "models/player/scout.mdl" } } WaveSpawn { waitforallspawned "3a" Name "3-support" Where spawnbot TotalCount 5 MaxActive 5 SpawnCount 5 WaitBetweenSpawns 15 WaitBeforeStarting 0 TotalCurrency 50 Support 1 TFBot { Template T_TFBot_Skeleton } } WaveSpawn { waitforallspawned "3a" Name "3d" Where spawnbot_secondary TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 5 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Scout_Cleaver tag no_reprogram } } WaveSpawn { waitforalldead "3a" Name "3d" Where spawnbot_secondary TotalCount 2 MaxActive 2 SpawnCount 2 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Pyro_ComboFlare tag no_reprogram } TFBot { Template T_TFBot_Giant_Medic_Regen Item "Zombie Medic" UseCustomModel "models/player/medic.mdl" tag no_reprogram } } } WaveSpawn { waitforalldead "3d" Name "3dd" Where spawnbot_secondary TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Heavyweapons Item "Zombie Heavy" UseCustomModel "models/player/heavy.mdl" tag no_reprogram } } WaveSpawn { waitforalldead "3c" Name "3e" Where spawnbot_secondary TotalCount 15 MaxActive 3 SpawnCount 3 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 50 TFBot { Template T_TFBot_Heavyweapons_Fist Item "Zombie Heavy" UseCustomModel "models/player/heavy.mdl" } } WaveSpawn { waitforalldead "3a" Name "3f" Where spawnbot_secondary TotalCount 20 MaxActive 10 SpawnCount 5 WaitBetweenSpawns 5 WaitBeforeStarting 0 TotalCurrency 50 Squad { TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Item "Zombie Soldier" UseCustomModel "models/player/soldier.mdl" } TFBot { Template T_TFBot_Demo_Burst Item "Zombie Demo" UseCustomModel "models/player/demo.mdl" } TFBot { Template T_TFBot_Demo_Burst Item "Zombie Demo" UseCustomModel "models/player/demo.mdl" } TFBot { Template T_TFBot_Demo_Burst Item "Zombie Demo" UseCustomModel "models/player/demo.mdl" } TFBot { Template T_TFBot_Demo_Burst Item "Zombie Demo" UseCustomModel "models/player/demo.mdl" } } } WaveSpawn { waitforalldead "3d" Name "3f" Where spawnbot_secondary TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 30 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Scout_Cleaver tag no_reprogram } } WaveSpawn { waitforalldead "3dd" Name "3g" Where spawnbot_secondary TotalCount 2 MaxActive 2 SpawnCount 2 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 150 Squad { TFBot { //Template T_TFBot_Giant_Burst_Fireball_Soldier Template T_TFBot_Giant_Soldier_SlowBarrage Item "Zombie Soldier" UseCustomModel "models/player/soldier.mdl" tag no_reprogram } TFBot { Template T_TFBot_Giant_Medic Item "Zombie Medic" UseCustomModel "models/player/medic.mdl" tag no_reprogram } } } // WaveSpawn // { // waitforalldead "3d" // Name "3g-support" // Where spawnbot_secondary // TotalCount 4 // MaxActive 4 // SpawnCount 4 // WaitBetweenSpawns 10 // WaitBeforeStarting 40 // TotalCurrency 0 // Support 1 // TFBot // { // Template T_TFBot_Scout_SunStick // ClassIcon scout_sunstick_swordstone // Item "Zombie Scout" // UseCustomModel "models/player/scout.mdl" // } // } } //Wave 4 Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target force_right_path_relay Action Trigger } SpawnTemplate "Wave4Logic" PlayerAttributes { "building cost reduction" 0.5 } Explanation { Line "{yellow}Saxton Hale: {FFFFFF} Hey mercs, Hale here." Line "{yellow}Saxton Hale: {FFFFFF} I am aware you're all very busy fighting undead beings and eyeballs in a summer camp in the middle of the woods" Line "{yellow}Saxton Hale: {FFFFFF} While frankly I don't remember when or why we made a facility there and whose idea it was to name it after the British's favorite activity," Line "{yellow}Saxton Hale: {FFFFFF} But anyhow, this just came up, some bloke over at our anti-robot development research facility was making breakfast and somehow resurrect the {red}Bread Monster{FFFFFF}." Line "{yellow}Saxton Hale: {FFFFFF} You remember it right? The giant mutated bread thing that almost killed you all a couple of years ago? Anyways, we can't just have it lying around our facility killing underpaid workers, so I'm sending it over to you using our teleportation technology." Line "{yellow}Saxton Hale: {FFFFFF} There should be a payload in the old warehouse next to your resupply room, you should be familiar with this. Good luck, Saxton Hale out!" } WaveSpawn { Name "4-breaddude" Where spawnbot_secondary TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 0 //Support Limited TFBot { Template T_TFBot_Bread_Monster_Base Classicon heavy_breadbite_nys_giant Attributes MiniBoss NoIdleSound 1 //Scale 0.001 } } WaveSpawn { Name "4-payload" Where spawnbot_secondary TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 0 Support Limited Tank { SpawnTemplate "Payload_Init" Health 27000 Speed 0 //stationary at first Scale 0.5 Classicon payload_red //thanks for the icon nys Model "models/empty.mdl" //Model "models/props_trainyard/bomb_cart_red.mdl" StartSound "misc/null.wav" PingSound "misc/null.wav" EngineLoopSound "items/cart_rolling.wav" DisableTracks 1 DisableSmokestack 1 DisableChildModels 1 Name "payloadtank" StartingPathTrackNode "payload_red_1" TeamNum 2 //ReplaceModelCollisions 1 OnKilledOutput { Target payload_death_relay Action Trigger } } } // WaveSpawn // { // Name "4a" // Where spawnbot_secondary // TotalCount 1 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 0 // WaitBeforeStarting 0.1 // TotalCurrency 100 // //bread monster tank // //doesn't deploy the bomb or go for the hatch, rather just targets players and try to crush them // //doesn't glow because I can't get the glow on it to work // Tank // { // SpawnTemplate "Bread_Monster_Tank_Init" // Health 25000 // Speed 75 // Scale 0.6 // DisableSmokestack 1 // Classicon heavy_breadbite_nys_giant // //DestroyTemplate "Literally_Nothing" //DestroyTemplate "Bread_Monster_Death" // Model "models/empty.mdl" // StartSound "misc/null.wav" // PingSound "misc/null.wav" // EngineLoopSound "misc/null.wav" // DisableTracks 1 // DisableChildModels 1 // Gravity 0 // Name "tankboss" // Immobile 1 // StartingPathTrackNode "monoculus_1" // ReplaceModelCollisions 1 // OnKilledOutput // { // Target boss_dead_relay // Action Trigger // } // OnBombDroppedOutput // { // Target boss_deploy_relay // Action Trigger // } // } // } // WaveSpawn // { // Name "4a" // Where d4c // TotalCount 1 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 0 // WaitBeforeStarting 0 // TotalCurrency 0 // Support Limited // Squad // { // Squad // { // TFBot // { // Template T_TFBot_Bread_Monster_Base // tag no_reprogram // } // } // } // } WaveSpawn { Name "4-support" Where spawnbot_portal TotalCount 2 MaxActive 2 SpawnCount 2 WaitBetweenSpawns 25 WaitBeforeStarting 5 TotalCurrency 50 Support 1 // TFBot // { // Template T_TFBot_Charger_Heavy // } TFBot { Template T_TFBot_Heavyweapons_Fist Item "Zombie Heavy" UseCustomModel "models/player/heavy.mdl" CharacterAttributes { "cancel falling damage" 1 } AddTemplate Extra_AttackPayload_Behavior } } // WaveSpawn // { // Name "4b-giant" // Where spawnbot_secondary // TotalCount 1 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 0 // WaitBeforeStarting 0.1 // TotalCurrency 100 // TFBot // { // Template T_TFBot_Giant_Soldier_RocketShotgun // Item "Zombie Soldier" // UseCustomModel "models/player/soldier.mdl" // } // } WaveSpawn { Name "4b-bowmen" Where spawnbot_portal TotalCount 36 MaxActive 6 SpawnCount 2 WaitBetweenSpawns 0 WaitBeforeStarting 5.1 TotalCurrency 50 TFBot { // Template T_TFBot_Sniper_Huntsman_Spammer // ClassIcon sniper_bow_multi Template T_TFBot_Sniper_Huntsman Skill Hard Item "Zombie Sniper" UseCustomModel "models/player/sniper.mdl" CharacterAttributes { "cancel falling damage" 1 } AddTemplate Extra_AttackPayload_Behavior } } WaveSpawn { Name "4b-gamers" Where spawnbot_portal TotalCount 42 MaxActive 7 SpawnCount 7 WaitBetweenSpawns 0 WaitBeforeStarting 15 TotalCurrency 50 TFBot { Template T_TFBot_Demoman_Knight Item "Zombie Demo" UseCustomModel "models/player/demo.mdl" CharacterAttributes { "cancel falling damage" 1 } AddTemplate Extra_AttackPayload_Behavior } } WaveSpawn { waitforalldead "4b-bowmen" Name "4b-heavy" Where spawnbot_portal TotalCount 28 MaxActive 4 SpawnCount 4 WaitBetweenSpawns 5 WaitBeforeStarting 5 TotalCurrency 100 TFBot { Class Heavyweapons Skill Normal Item "Zombie Heavy" UseCustomModel "models/player/heavy.mdl" CharacterAttributes { "cancel falling damage" 1 } AddTemplate Extra_AttackPayload_Behavior } } WaveSpawn { Name "4c" Where spawnbot_secondary TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 5.1 TotalCurrency 100 TFBot { SpawnTemplate "SpawnAtGiantPortal" Template T_TFBot_Giant_Heavyweapons AlwaysGlow 1 Item "Zombie Heavy" UseCustomModel "models/player/heavy.mdl" tag no_reprogram CharacterAttributes { "cancel falling damage" 1 } AddTemplate Extra_AttackPayload_Behavior //Attributes AlwaysCrit } } WaveSpawn { waitforalldead "4c" Name "4c-cont" Where spawnbot_secondary TotalCount 2 MaxActive 2 SpawnCount 1 WaitBetweenSpawns 7 WaitBeforeStarting 0 TotalCurrency 100 // Squad // { TFBot { SpawnTemplate "SpawnAtGiantPortal" Template T_TFBot_Giant_Pyro_Fury // Item "Zombie Pyro" // UseCustomModel "models/player/pyro.mdl" // Attributes AlwaysFireWeapon AlwaysGlow 1 tag no_reprogram CharacterAttributes { "cancel falling damage" 1 } AddTemplate Extra_AttackPayload_Behavior //Attributes AlwaysCrit } // TFBot // { // SpawnTemplate "SpawnAtGiantPortal" // Template T_TFBot_Giant_Medic_Regen // Item "Zombie Medic" // UseCustomModel "models/player/medic.mdl" // tag no_reprogram // CharacterAttributes // { // "cancel falling damage" 1 // } // } // } } WaveSpawn { waitforalldead "4c-cont" Name "4c-chad" Where spawnbot_secondary TotalCount 2 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 100 TFBot { SpawnTemplate "SpawnAtGiantPortal" // Template T_TFBot_Giant_Soldier_Extended_Buff_Banner // AlwaysGlow 1 // Item "Zombie Soldier" // UseCustomModel "models/player/soldier.mdl" Template T_TFBot_Giant_Boxing_Heavy AlwaysGlow 1 Health 6000 Attributes AlwaysCrit Item "Zombie Heavy" UseCustomModel "models/player/heavy.mdl" tag no_reprogram CharacterAttributes { "cancel falling damage" 1 } AddTemplate Extra_AttackPayload_Behavior } } WaveSpawn { waitforallspawned "4c-chad" Name "4c-common" Where spawnbot_portal TotalCount 36 MaxActive 4 SpawnCount 4 WaitBetweenSpawns 1 WaitBeforeStarting 0 TotalCurrency 50 DoneOutput { Target wave4_commons_all_killed Action Trigger } TFBot { Class Soldier Skill Hard Item "Zombie Soldier" UseCustomModel "models/player/soldier.mdl" CharacterAttributes { "cancel falling damage" 1 } AddTemplate Extra_AttackPayload_Behavior } } // WaveSpawn // { // waitforalldead "4b-bowmen" // Name "4d-gauntlets" // Where spawnbot_secondary // TotalCount 10 // MaxActive 2 // SpawnCount 2 // WaitBetweenSpawns 0 // WaitBeforeStarting 0 // TotalCurrency 100 // TFBot // { // Template T_TFBot_Heavyweapons_Fist // Attributes AlwaysCrit // Item "Zombie Heavy" // UseCustomModel "models/player/heavy.mdl" // } // } // WaveSpawn // { // waitforallspawned "4c" // Name "4e" // Where spawnbot_secondary // TotalCount 15 // MaxActive 3 // SpawnCount 3 // WaitBetweenSpawns 0 // WaitBeforeStarting 0 // TotalCurrency 50 // TFBot // { // Class Heavyweapons // Skill Expert // Item "Zombie Heavy" // UseCustomModel "models/player/heavy.mdl" // } // } // WaveSpawn // { // waitforallspawned "4c-chad" // Name "4-something" // Where spawnbot_secondary // TotalCount 20 // MaxActive 5 // SpawnCount 5 // WaitBetweenSpawns 0 // WaitBeforeStarting 6 // TotalCurrency 50 // //Support 1 // TFBot // { // Class Scout // Skill Hard // Item "Zombie Scout" // UseCustomModel "models/player/scout.mdl" // } // } WaveSpawn { waitforallspawned "4c-chad" Name "4e" Where spawnbot_secondary TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 25 TotalCurrency 100 TFBot { SpawnTemplate "SpawnAtGiantPortal" Template T_TFBot_Giant_Soldier_RocketShotgun Item "Zombie Soldier" UseCustomModel "models/player/soldier.mdl" AlwaysGlow 1 tag no_reprogram CharacterAttributes { "cancel falling damage" 1 } AddTemplate Extra_AttackPayload_Behavior } } WaveSpawn { waitforalldead "4e" Name "4f" Where spawnbot_secondary TotalCount 4 MaxActive 4 SpawnCount 1 WaitBetweenSpawns 15 WaitBeforeStarting 0 TotalCurrency 200 DoneOutput { Target wave4_giants_all_killed Action Trigger } RandomChoice { TFBot { SpawnTemplate "SpawnAtGiantPortal" Template T_TFBot_Giant_Demo_RapidFire Item "Zombie Demo" UseCustomModel "models/player/demo.mdl" AlwaysGlow 1 tag no_reprogram CharacterAttributes { "cancel falling damage" 1 } AddTemplate Extra_AttackPayload_Behavior } TFBot { SpawnTemplate "SpawnAtGiantPortal" Template T_TFBot_Giant_Demoman Item "Zombie Demo" UseCustomModel "models/player/demo.mdl" AlwaysGlow 1 tag no_reprogram CharacterAttributes { "cancel falling damage" 1 } AddTemplate Extra_AttackPayload_Behavior } } } WaveSpawn { waitforalldead "4e" Name "4f-support" Where spawnbot_secondary TotalCount 3 MaxActive 3 SpawnCount 3 WaitBetweenSpawns 12 WaitBeforeStarting 0 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Scout_Shortstop Item "Zombie Scout" UseCustomModel "models/player/scout.mdl" CharacterAttributes { "cancel falling damage" 1 } AddTemplate Extra_AttackPayload_Behavior } } } //Wave 5 //fun fact: count dracula was originally meant to be this wave's boss before I came up with corporal canteen who is a much cooler and original idea //but the intro I planned for dracula was pretty cool so I used it as a setup for corporal canteen's entrance Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } SpawnTemplate "Pit_Recall" SpawnTemplate "Wave5Cutscene1" SpawnTemplate "Wave5Cutscene2" Explanation { Line "{yellow}Saxton Hale: {FFFFFF} Outstanding work! In hindsight we should've just teleported it into an active volcano or something." Line "{yellow}Saxton Hale: {FFFFFF} Well not like that matters now. Saxton Hale out, have fun!" } WaveSpawn { Name "5_intro" Where spawnbot_secondary TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 Support Limited RandomChoice { RandomChoice { TFBot { SpawnTemplate "Drac_Init" Class Spy Name "Count Dracula" ClassIcon powerup_vampire_lite Action FetchFlag Attributes MiniBoss Attributes UseBossHealthBar Item "The Distinguished Rogue" Item "Taunt: Luxury Lounge" UseCustomModel "models/player/spy.mdl" Scale 1 Health 30000 AddCond { Index 51 } Taunt { Delay 0.5 Repeats 1 Duration 99999 Name "Taunt: Luxury Lounge" } CharacterAttributes { //"attach particle effect" 3006 //screaming tiger "always allow taunt" 1 "cannot pick up intelligence" 1 "cannot disguise" 1 } tag dracula } } } } WaveSpawn { Where canteen_msg_recall TotalCount 9999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" SpawnTemplate "CanteenUseAudio" Class Scout Message { Name "{blue}Corporal Canteen {FFFFFF}has used their {9BBF4D}RECALL {FFFFFF}Power Up Canteen!" Delay 0 Repeats 1 } } } } } WaveSpawn { Where canteen_msg_uber TotalCount 9999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" SpawnTemplate "CanteenUseAudio" Class Scout Message { Name "{blue}Corporal Canteen {FFFFFF}has used their {9BBF4D}ÜBERCHARGE {FFFFFF}Power Up Canteen!" Delay 0 Repeats 1 } } } } } WaveSpawn { Where canteen_msg_infclip TotalCount 9999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" SpawnTemplate "CanteenUseAudio" Class Scout Message { Name "{blue}Corporal Canteen {FFFFFF}has used their {9BBF4D}INFINITE CLIP {FFFFFF}Power Up Canteen!" Delay 0 Repeats 1 } } } } } WaveSpawn { Where canteen_msg_crit TotalCount 9999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" SpawnTemplate "CanteenUseAudio" Class Scout Message { Name "{blue}Corporal Canteen {FFFFFF}has used their {9BBF4D}CRITS {FFFFFF}Power Up Canteen!" Delay 0 Repeats 1 } } } } } WaveSpawn { Where canteen_msg_haste TotalCount 9999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" SpawnTemplate "CanteenUseAudio" Class Scout Message { Name "{blue}Corporal Canteen {FFFFFF}has used their {9BBF4D}HASTE {FFFFFF}Power Up Canteen!" Delay 0 Repeats 1 } } } } } WaveSpawn { Where canteen_msg_strength TotalCount 9999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" SpawnTemplate "CanteenUseAudio" Class Scout Message { Name "{blue}Corporal Canteen {FFFFFF}has used their {9BBF4D}STRENGTH {FFFFFF}Power Up Canteen!" Delay 0 Repeats 1 } } } } } WaveSpawn { Where canteen_msg_reflect TotalCount 9999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" SpawnTemplate "CanteenUseAudio" Class Scout Message { Name "{blue}Corporal Canteen {FFFFFF}has used their {9BBF4D}REFLECT {FFFFFF}Power Up Canteen!" Delay 0 Repeats 1 } } } } } WaveSpawn { Where canteen_msg_plague TotalCount 9999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" SpawnTemplate "CanteenUseAudio" Class Scout Message { Name "{blue}Corporal Canteen {FFFFFF}has used their {9BBF4D}PLAGUE {FFFFFF}Power Up Canteen!" Delay 0 Repeats 1 } } } } } WaveSpawn { Where canteen_msg_supernova TotalCount 9999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" SpawnTemplate "CanteenUseAudio" Class Scout Message { Name "{blue}Corporal Canteen {FFFFFF}has used their {9BBF4D}SUPERNOVA {FFFFFF}Power Up Canteen! Discharging in 5 seconds!" Delay 0 Repeats 1 } } } } } WaveSpawn { Where canteen_msg_emp TotalCount 9999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" SpawnTemplate "CanteenUseAudio" Class Scout Message { Name "{blue}Corporal Canteen {FFFFFF}has used their {9BBF4D}EMP ROUNDS {FFFFFF}Power Up Canteen!" Delay 0 Repeats 1 } } } } } WaveSpawn { Where canteen_msg_precision TotalCount 9999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" SpawnTemplate "CanteenUseAudio" Class Scout Message { Name "{blue}Corporal Canteen {FFFFFF}has used their {9BBF4D}PRECISION {FFFFFF}Power Up Canteen!" Delay 0 Repeats 1 } } } } } WaveSpawn { Where canteen_msg_sandvich TotalCount 9999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" SpawnTemplate "CanteenUseAudio" Class Scout Message { Name "{blue}Corporal Canteen {FFFFFF}has used their {9BBF4D}SANDVICH {FFFFFF}Lunch Box!" Delay 0 Repeats 1 } } } } } WaveSpawn { Where canteen_msg_speed TotalCount 99999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" SpawnTemplate "CanteenUseAudio" Class Scout Message { Name "{blue}Corporal Canteen {FFFFFF}has used their {9BBF4D}SPEED BOOST {FFFFFF}Power Up Canteen!" Delay 0 Repeats 1 } } } } } WaveSpawn { Where canteen_msg_pinch TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support Limited RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" SpawnTemplate "CanteenUseAudio" Class Scout Message { Name "{blue}Corporal Canteen {FFFFFF}has used their {CC00FF}REVERIE {FFFFFF}Power Up Canteen! Health regen and clip size increased!" Delay 0 Repeats 1 } } } } } WaveSpawn { waitforalldead "5_intro" Name "5a" Where corporal_spawn TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 900 TFBot { Template T_TFBot_Chief_Canteen tag no_reprogram } } } //Wave 6 Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name "6a-giant" Where spawnbot_secondary TotalCount 12 MaxActive 6 SpawnCount 6 WaitBetweenSpawns 0 WaitBeforeStarting 0.1 TotalCurrency 300 Squad { TFBot { SpawnTemplate "PreventPowerupDropOnDeath" Template T_TFBot_Giant_Heavyweapons_Deflector Classicon heavy_deflector_precision item "Zombie Heavy" UseCustomModel "models/player/heavy.mdl" AddCond { Index 96 } ItemAttributes { ItemName "Deflector" "damage penalty" 0.75 "attack projectiles" 1 } tag no_reprogram } TFBot { Template T_TFBot_Medic_QuickUber Item "Zombie Medic" UseCustomModel "models/player/medic.mdl" } TFBot { Template T_TFBot_Medic_QuickUber Item "Zombie Medic" UseCustomModel "models/player/medic.mdl" } TFBot { Template T_TFBot_Medic_QuickUber Item "Zombie Medic" UseCustomModel "models/player/medic.mdl" } TFBot { Template T_TFBot_Medic_QuickUber Item "Zombie Medic" UseCustomModel "models/player/medic.mdl" } TFBot { Template T_TFBot_Medic_QuickUber Item "Zombie Medic" UseCustomModel "models/player/medic.mdl" } } } WaveSpawn { Name "6a" Where spawnbot_secondary TotalCount 20 MaxActive 5 SpawnCount 5 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 25 TFBot { Template T_TFBot_Scout_Ghost_Bonk } } WaveSpawn { Name "6a" Where spawnbot_secondary TotalCount 30 MaxActive 6 SpawnCount 2 WaitBetweenSpawns 0 WaitBeforeStarting 10 TotalCurrency 25 TFBot { Class Soldier Skill Expert Name "Direct Hit Soldier" ClassIcon soldier_dh_nys item "The Direct Hit" item "Zombie Soldier" UseCustomModel "models/player/soldier.mdl" } } WaveSpawn { waitforalldead "6a-giant" Name "6b-giant" Where spawnbot_secondary TotalCount 3 MaxActive 3 SpawnCount 3 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 100 Squad { TFBot { // SpawnTemplate "PreventPowerupDropOnDeath" // Template T_TFBot_Giant_Soldier_Spammer_Reload // ClassIcon soldier_burstfire_haste // item "Zombie Soldier" // UseCustomModel "models/player/soldier.mdl" // AddCond // { // Index 91 // } Template T_TFBot_Giant_Soldier_Spammer item "Zombie Soldier" UseCustomModel "models/player/soldier.mdl" tag no_reprogram } TFBot { Template T_TFBot_Giant_Medic_Regen item "Zombie Medic" UseCustomModel "models/player/medic.mdl" tag no_reprogram } TFBot { Template T_TFBot_Giant_Medic_Regen item "Zombie Medic" UseCustomModel "models/player/medic.mdl" tag no_reprogram } } } Wavespawn { waitforalldead "6b-giant" Name "6b-dragon of dojima" Where spawnbot_secondary Totalcount 1 MaxActive 1 Spawncount 1 WaitBetweenSpawns 0 WaitBeforeStarting 1 Totalcurrency 700 TFBot { Template T_TFBot_Chief_Yakuza } } // WaveSpawn // { // waitforalldead "6b-giant" // Name "6b-constraint_tank" // Where spawnbot_secondary // TotalCount 1 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 0 // WaitBeforeStarting 1 // TotalCurrency 350 // Tank // { // SpawnTemplate "Constraint_Tank_Init" // Health 15000 // Speed 75 // ClassIcon blimp2_lite // Model "models/bots/boss_bot/boss_blimp.mdl" // Skin 1 // Gravity 0 // DisableTracks 1 // //ReplaceModelCollisions 1 // DisableChildModels 1 // //taken from mobocracy // EngineLoopSound "npc\combine_gunship\dropship_engine_distant_loop1.wav" // PingSound "npc\combine_gunship\ping_search.wav" // Name "tankboss" // StartingPathTrackNode "monoculus_1" // OnKilledOutput // { // Target tank_died_relay // Action Trigger // } // OnBombDroppedOutput // { // Target bomb_dropped_relay // Action Trigger // } // } // } // WaveSpawn // { // waitforalldead "6b-giant" // Name "6b-constraint_tank" // Where spawnbot_secondary // TotalCount 1 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 0 // WaitBeforeStarting 1 // TotalCurrency 350 // Tank // { // SpawnTemplate "Constraint_Tank_Init" // Health 15000 // Speed 75 // ClassIcon blimp2_lite // Model "models/bots/boss_bot/boss_blimp.mdl" // Skin 1 // Gravity 0 // DisableTracks 1 // //ReplaceModelCollisions 1 // DisableChildModels 1 // //taken from mobocracy // EngineLoopSound "npc\combine_gunship\dropship_engine_distant_loop1.wav" // PingSound "npc\combine_gunship\ping_search.wav" // Name "tankboss" // StartingPathTrackNode "monoculus_1" // OnKilledOutput // { // Target tank_died_relay // Action Trigger // } // OnBombDroppedOutput // { // Target bomb_dropped_relay // Action Trigger // } // } // } // Wavespawn // { // waitforalldead "6b-giant" // Name "6b-constraint_tank" // Where outofbound // Totalcount 1 // MaxActive 1 // Spawncount 1 // WaitBetweenSpawns 0 // WaitBeforeStarting 1 // Totalcurrency 350 // TFBot // { // SpawnTemplate "Yakuza_Title_Card_Sergeant_Crit" // SpawnTemplate "Constraint_Bot_Init" // Template T_TFBot_Chief_Soldier // //Item "The B.A.S.E. Jumper" // AlwaysGlow 1 // Attributes AlwaysFireWeapon // MaxVisionRange 10000 // // ChangeAttributes // // { // // Delay 0 // // Name "OnTank" // // } // CharacterAttributes // { // //"parachute disabled" 1 // "health regen" 40 // "move speed bonus" 0.5 // "damage force reduction" 0.4 // "airblast vulnerability multiplier" 0.4 // "override footstep sound set" 3 // "airblast vertical vulnerability multiplier" 0.1 // "rage giving scale" 0.5 // } // // EventChangeAttributes // // { // // OnTank // // { // // AlwaysGlow 1 // // Attributes AlwaysFireWeapon // // MaxVisionRange 10000 // // } // // Not // // { // // Item "The B.A.S.E. Jumper" // // AlwaysGlow 0 //doesn't work // // } // // } // Health 42000 // tag no_reprogram // tag constraint // } // } // WaveSpawn // { // waitforalldead "6a-giant" // Name "6b-giant" // Where spawnbot_secondary // TotalCount 3 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 0 // WaitBeforeStarting 0 // TotalCurrency 100 // TFBot // { // SpawnTemplate "PreventPowerupDropOnDeath" // Template T_TFBot_Giant_Heavyweapons_Deflector // Classicon heavy_deflector_precision // item "Zombie Heavy" // UseCustomModel "models/player/heavy.mdl" // AddCond // { // Index 96 // } // tag no_reprogram // } // } WaveSpawn { waitforalldead "6a-giant" Name "6b" Where spawnbot_secondary TotalCount 5 MaxActive 5 SpawnCount 5 WaitBetweenSpawns 20 WaitBeforeStarting 0 TotalCurrency 100 Support 1 TFBot { Class Scout Skill Expert item "Zombie Scout" UseCustomModel "models/player/scout.mdl" } // TFBot // { // Class Heavyweapons // Skill Hard // item "Zombie Heavy" // UseCustomModel "models/player/heavy.mdl" // } } WaveSpawn { Where msg_chargedstyle TotalCount 9999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" Class Scout Message { Name "{blue}Sergeant Receiver {FFFFFF}has changed into their {6691FF}CHARGED {FFFFFF}Combat Style!" Delay 0 Repeats 1 } } } } } WaveSpawn { Where msg_homingstyle TotalCount 9999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" Class Scout Message { Name "{blue}Sergeant Receiver {FFFFFF}has changed into their {F81393}HOMING {FFFFFF}Combat Style!" Delay 0 Repeats 1 } } } } } WaveSpawn { Where msg_barragestyle TotalCount 9999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" Class Scout Message { Name "{blue}Sergeant Receiver {FFFFFF}has changed into their {EAAD11}BARRAGE {FFFFFF}Combat Style!" Delay 0 Repeats 1 } } } } } WaveSpawn { Where msg_legendstyle TotalCount 9999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { SpawnTemplate "KillOnSpawn" Class Scout Message { Name "{blue}Sergeant Receiver {FFFFFF}has changed into their {red}DRAGON OF GRAY GRAVEL {FFFFFF}Combat Style!" Delay 0 Repeats 1 } } } } } // WaveSpawn // { // waitforalldead "6b-giant" // Name "6c-giant" // Where spawnbot_secondary // TotalCount 5 // MaxActive 5 // SpawnCount 1 // WaitBetweenSpawns 10 // WaitBeforeStarting 0 // TotalCurrency 500 // TFBot // { // SpawnTemplate "PreventPowerupDropOnDeath" // Template T_TFBot_Giant_Boxing_Heavy // ClassIcon heavy_champ_agility // item "Zombie Heavy" // UseCustomModel "models/player/heavy.mdl" // AddCond // { // Index 97 // } // tag no_reprogram // } // } // WaveSpawn // { // waitforallspawned "6b" // Name "6c" // Where spawnbot_secondary // TotalCount 30 // MaxActive 6 // SpawnCount 6 // WaitBetweenSpawns 0 // WaitBeforeStarting 0 // TotalCurrency 50 // //1 out of 3 chance to use robot model // RandomChoice // { // TFBot // { // Class Pyro // Skill Expert // Name "Fury Pyro" // ClassIcon pyro_dragon_fury // Item "The Dragon's Fury" // Item "Zombie Pyro" // UseCustomModel "models/player/pyro.mdl" // } // TFBot // { // Class Pyro // Skill Expert // Name "Fury Pyro" // ClassIcon pyro_dragon_fury // Item "The Dragon's Fury" // } // TFBot // { // Class Pyro // Skill Expert // Name "Fury Pyro" // ClassIcon pyro_dragon_fury // Item "The Dragon's Fury" // Item "Zombie Pyro" // UseCustomModel "models/player/pyro.mdl" // } // } // } } //Wave 7 Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } Explanation { Line "{red}Spy: {FFFFFF} That's rad!" Line "{red}Spy {FFFFFF}has learned: {blue}The Essence of Domination!" Line "{FFD700}The Enforcer {FFFFFF}can now convert support giants! Converted giants last for a shorter duration, are not crit boosted and will not self-destruct. Giant Heavies cannot be converted" } WaveSpawn { Name "7a" Where spawnbot_secondary TotalCount 2 MaxActive 2 SpawnCount 1 WaitBetweenSpawns 30 WaitBeforeStarting 0.1 TotalCurrency 100 TFBot { Template T_TFBot_Headless_Horseless_Horsemann tag no_reprogram } } WaveSpawn { Name "7a" Where spawnbot_secondary TotalCount 6 MaxActive 6 SpawnCount 3 WaitBetweenSpawns 30 WaitBeforeStarting 0.1 TotalCurrency 200 Squad { // TFBot // { // Template T_TFBot_Headless_Horseless_Horsemann // tag no_reprogram // } TFBot { Template T_TFBot_Giant_Soldier_Extended_Battalion item "Zombie Soldier" tag no_reprogram UseCustomModel "models/player/soldier.mdl" } TFBot { Template T_TFBot_Giant_Soldier_Extended_Concheror item "Zombie Soldier" tag no_reprogram UseCustomModel "models/player/soldier.mdl" } TFBot { Template T_TFBot_Giant_Soldier_Extended_Buff_Banner item "Zombie Soldier" tag no_reprogram UseCustomModel "models/player/soldier.mdl" } } } WaveSpawn { Name "7-support" Where spawnbot_secondary TotalCount 300 MaxActive 5 SpawnCount 5 WaitBetweenSpawns 20 WaitBeforeStarting 0 TotalCurrency 300 Support Limited TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast Attributes AlwaysCrit item "Zombie Heavy" UseCustomModel "models/player/heavy.mdl" } } // WaveSpawn // { // Name "7-support" // Where spawnbot_secondary // TotalCount 300 // MaxActive 3 // SpawnCount 3 // WaitBetweenSpawns 35 // WaitBeforeStarting 15 // TotalCurrency 300 // Support Limited // TFBot // { // Class Soldier // Skill Expert // item "Zombie Soldier" // UseCustomModel "models/player/soldier.mdl" // } // } // WaveSpawn // { // Name "7-support" // Where spawnbot_secondary // TotalCount 300 // MaxActive 5 // SpawnCount 5 // WaitBetweenSpawns 50 // WaitBeforeStarting 30 // TotalCurrency 300 // Support Limited // TFBot // { // Class Heavyweapons // Skill Expert // item "Zombie Heavy" // UseCustomModel "models/player/heavy.mdl" // } // } // WaveSpawn // { // Name "4b" // Where spawnbot_secondary // TotalCount 3 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 0 // WaitBeforeStarting 30 // TotalCurrency 0 // TFBot // { // Template T_TFBot_Necromancer_Medic // tag no_reprogram // } // } // WaveSpawn // { // Name "4_necromancer1" // Where summon1 // TotalCount 1984 // MaxActive 15 // SpawnCount 3 // WaitBetweenSpawns 1 // WaitBeforeStarting 0 // TotalCurrency 0 // Support Limited // RandomChoice // { // RandomChoice // { // TFBot // { // Template T_TFBot_Skeleton // Name "Necromancer's Skeleton" // tag bot_summoned // } // } // } // } // WaveSpawn // { // Name "4_necromancer2" // Where summon2 // TotalCount 1984 // MaxActive 15 // SpawnCount 3 // WaitBetweenSpawns 1 // WaitBeforeStarting 0 // TotalCurrency 0 // Support Limited // RandomChoice // { // RandomChoice // { // TFBot // { // Template T_TFBot_Sniper_Huntsman // Name "Necromancer's Bowman" // item "Zombie Sniper" // tag bot_summoned // UseCustomModel "models/player/sniper.mdl" // } // } // } // } // WaveSpawn // { // Name "4_necromancer3" // Where summon3 // TotalCount 1984 // MaxActive 15 // SpawnCount 3 // WaitBetweenSpawns 1 // WaitBeforeStarting 0 // TotalCurrency 0 // Support Limited // RandomChoice // { // RandomChoice // { // TFBot // { // Template T_TFBot_Scout_Ghost_Bonk // Name "Necromancer's Ghostly Bonk! Scout" // tag bot_summoned // } // } // } // } // WaveSpawn // { // waitforalldead "4a" // Name "4c" // Where spawnbot_secondary // TotalCount 2 // MaxActive 2 // SpawnCount 2 // WaitBetweenSpawns 0 // WaitBeforeStarting 0 // TotalCurrency 0 // Squad // { // TFBot // { // Template T_TFBot_Giant_Soldier_Spammer // item "Zombie Soldier" // tag no_reprogram // UseCustomModel "models/player/soldier.mdl" // } // TFBot // { // Template T_TFBot_Giant_Medic // item "Zombie Medic" // tag no_reprogram // UseCustomModel "models/player/medic.mdl" // } // } // } WaveSpawn { //waitforalldead "7a" Name "7d" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 50 TotalCurrency 100 Tank { SpawnTemplate "Monoculus_Tank_Init" SpawnTemplate "Monoculus_Cleanup_Init" Health 17000 Speed 50 Scale 0.8 IsCrit 1 DisableSmokestack 1 Classicon boss_eyeball MaxTurnRate 25 //DestroyTemplate "Literally_Nothing" //DestroyTemplate "Monoculus_Death_Start" Model "models/empty.mdl" StartSound "ui/halloween_boss_summoned.wav" PingSound "misc/null.wav" EngineLoopSound "misc/null.wav" Gravity 0 DisableTracks 1 DisableChildModels 1 Name "tankboss" StartingPathTrackNode "monoculus_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { //waitforalldead "7a" Name "7d" Where outofbound TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 50 TotalCurrency 0 Support Limited RandomChoice { RandomChoice { TFBot { SpawnTemplate "Monoculus_Shooter_Init_Crit" Template T_TFBot_Monoculus_Shoot tag no_reprogram } } } } WaveSpawn { //waitforallspawned "7d" Name "7e" Where spawnbot_secondary TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 60 TotalCurrency 0 TFBot { Template T_TFBot_Chief_Necromancer_Medic tag no_reprogram } } // WaveSpawn // { // waitforalldead "7e" // Name "7f" // Where d4c // TotalCount 1 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 0 // WaitBeforeStarting 4 // TotalCurrency 0 // TFBot // { // Template T_TFBot_Giant_TFC_Heavy // tag no_reprogram // } // } WaveSpawn { Name "7_necromancerchief_a1" Where summon_chief1 TotalCount 2 MaxActive 2 SpawnCount 2 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 25 Support Limited // RandomChoice // { // RandomChoice // { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload item "Zombie Soldier" UseCustomModel "models/player/soldier.mdl" tag no_reprogram tag reprogram_special tag bot_summoned_chief } // } // } } WaveSpawn { waitforallspawned "7_necromancerchief_a1" Name "7_necromancerchief_a2" Where summon_chief1 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 1 TotalCurrency 25 Support Limited // RandomChoice // { // RandomChoice // { TFBot { Template T_TFBot_Giant_Scout_FAN item "Zombie Scout" UseCustomModel "models/player/scout.mdl" tag no_reprogram tag reprogram_special tag bot_summoned_chief } // } // } } WaveSpawn { waitforallspawned "7_necromancerchief_a2" Name "7_necromancerchief_a3" Where summon_chief1 TotalCount 1337 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 1 WaitBeforeStarting 1 TotalCurrency 25 Support Limited // RandomChoice // { // RandomChoice // { TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage item "Zombie Soldier" UseCustomModel "models/player/soldier.mdl" tag no_reprogram tag reprogram_special tag bot_summoned_chief } // } // } } WaveSpawn { Name "7_necromancerchief_b1" Where summon_chief2 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 25 Support Limited // RandomChoice // { // RandomChoice // { TFBot { Template T_TFBot_Giant_Pyro_Fury Attributes AlwaysCrit tag reprogram_special tag no_reprogram tag bot_summoned_chief } // } // } } WaveSpawn { waitforallspawned "7_necromancerchief_b1" Name "7_necromancerchief_b2" Where summon_chief2 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 1 TotalCurrency 25 Support Limited // RandomChoice // { // RandomChoice // { TFBot { Template T_TFBot_Giant_Pyro_ComboFlare tag no_reprogram tag reprogram_special tag bot_summoned_chief } // } // } } WaveSpawn { waitforallspawned "7_necromancerchief_b2" Name "7_necromancerchief_b3" Where summon_chief2 TotalCount 1337 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 1 WaitBeforeStarting 1 TotalCurrency 25 Support Limited // RandomChoice // { // RandomChoice // { TFBot { Template T_TFBot_Giant_Heavyweapons_Deflector item "Zombie Heavy" UseCustomModel "models/player/heavy.mdl" tag no_reprogram tag bot_summoned_chief } // } // } } WaveSpawn { Name "7_necromancerchief_c1" Where summon_chief3 TotalCount 2 MaxActive 2 SpawnCount 2 WaitBetweenSpawns 0 WaitBeforeStarting 0 TotalCurrency 25 Support Limited // RandomChoice // { // RandomChoice // { TFBot { Template T_TFBot_Giant_Skeleton tag no_reprogram tag reprogram_special tag bot_summoned_chief } // } // } } WaveSpawn { waitforallspawned "7_necromancerchief_c1" Name "7_necromancerchief_c2" Where summon_chief3 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 1 TotalCurrency 25 Support Limited // RandomChoice // { // RandomChoice // { TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun Attributes AlwaysCrit item "Zombie Heavy" UseCustomModel "models/player/heavy.mdl" tag no_reprogram tag bot_summoned_chief } // } // } } WaveSpawn { waitforallspawned "7_necromancerchief_c2" Name "7_necromancerchief_c3" Where summon_chief3 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0 WaitBeforeStarting 1 TotalCurrency 25 Support Limited // RandomChoice // { // RandomChoice // { TFBot { Template T_TFBot_Giant_Scout_Baseball_Armored item "Zombie Scout" UseCustomModel "models/player/scout.mdl" tag reprogram_special tag no_reprogram tag bot_summoned_chief } // } // } } WaveSpawn { waitforallspawned "7_necromancerchief_c3" Name "7_necromancerchief_c4" Where summon_chief3 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 1 WaitBeforeStarting 1 TotalCurrency 25 Support 1 // RandomChoice // { // RandomChoice // { TFBot { Template T_TFBot_Giant_Heavyweapons // ClassIcon heavy_brass_nys // ItemAttributes // { // ItemName "The Brass Beast" // "damage bonus" 1.7 // } item "Zombie Heavy" UseCustomModel "models/player/heavy.mdl" tag no_reprogram tag bot_summoned_chief } // } // } } } } //version 2 changes //attempts were made to fix crashes //blimps fly lower //wave 1: skeleton health buffed to 2100, reduced amount of normal skeletons from 40 to 32 and now spawn in streams of 2 (max active 8), reduced flare + bigheal amount from 40 to 30, support soldier skill changed from easy to normal //wave 2: replaced demos with shotgun heavies, increased monoculus' health to 12000, reduced gshotgun count to 1, giants now spawn after monoculus blimp is dead instead of on a timer, increased pyro count from 15 to 25, final pairs of giants no longer have a waitbeforespawn //wave 3: scouts' skill changed from normal to hard //wave 4: replaced rapid fire bowmen with expert bowmen, banner soldier is no longer randomchoiced and will now always be conch, also squaded with 5 expert soldiers that probably won't do anything, tweaked support gauntlet, changed some subwaves around, final 6 demomen now spawn in squads of 3 //wave 5: removed supernova canteen from corporal canteen, instead he will now sucker punch anyone who gets within bodyblock range of him to get them out of the way (this will not triggers against a spy) //wave 6: removed damage bonus from precision deflectors, reduced blimp health from 15000 to 10000, boss now no longer uses eventchangeattribute to hopefully prevent crashing, heavy limited support replaced with infinite expert scouts //wave 7: doubled chief necromancer medic's speed, nerfed health to 60k, summons buffed, now summons two sets of giants at once instead just one, removed tfc heavy because he was an incredibly lame boss mechanically that I couldn't think of something cool for & he'd just fucks with the wave's overall difficulty if I try anything //version 3 changes //fixed crashes (thanks jurrel) //ghostly bonk scouts bonk duration lasts longer //hhh taunts faster //weapon rebalances: //the enforcer - reprogrammed enemies get crit, no longer take friendly fire. fixed the issue of "pulling up your dead ringer removes firing speed penalty and reload speed penalty" by giving it no_attack for a duration after shooting, now no longer reload to make it less janky //the gunslinger - reduced damage bonus by 25%, removed instant respawn //the degreaser - damage bonus on secondary reduced to 75%, melee damage bonus reduced to 150% (175% with the axtinguisher equipped to compensate for its inability to deal random crit) //the natascha - reduced berserk damage requirement to 2500 //bows - reduced splash damage to 75 //wave 1: replaced flare pyros with combo pyros (detonator variant), increased amount of skeletons to 40 //wave 2: replaced shotgun heavies with demos, increase gshotgun count to 2, replaced giant flare with 2 giant explosive tip bowmen //wave 3: replace gheavy with giant combo pyro + bigheals //wave 4: now has a different objective, wave structure reworked. bread monster is no longer a fightable tank and is now part of the wave's objective //wave 5: corporal canteen no longer stops shooting during infinite clip canteen's duration if he wasn't already shooting before activating it, now uses meleethreatpriority //wave 6: replaced sergeant crit on a blimp with sergeant receiver, gave precision deflector heavies 25% damage penalty //wave 7: chief necromancer medic now has a yakuza-themed title card like the other 2 bosses, tweaked summons, increased speed, the enforcer can now control non-heavy support giants this wave to a weaker extend