WaveSchedule { StartingCurrency 10000 RespawnWaveTime 0 PlayerItemEquipSpawnTemplate { Name "redbotbuilding_gunslinger" ItemName "The Gunslinger" } PlayerSpawnTemplate { Name "prevent_redbotbuilding" Class Engineer } SpawnTemplate "redbotbuilding" PointTemplates { prevent_redbotbuilding { OnSpawnOutput { Target "key" Action SetParent Param "!activator" Delay 0.01 } trigger_multiple { "targetname" "notamini" "mins" "-96 -96 -96" "maxs" "96 96 96" "startdisabled" "1" "filtername" "filter_red_sentrygun" "spawnflags" "64" "onstarttouch" "!activator,addoutput,targetname normalsentry,0,-1" } trigger_brush { "targetname" "key" "onuse" "notamini,kill,,0,-1" } } redbotbuilding_gunslinger { OnParentKilledOutput { Target "gunslingercount" Action Subtract Param 1 } OnSpawnOutput { Target "gunslingercount" Action Add Param 1 } OnParentKilledOutput { Target "switchofffix" Action cancelpending Delay 0.01 } OnSpawnOutput { Target "switchofffix" Action Trigger } logic_relay { "targetname" "switchofffix" "ontrigger" "@c@!activator,use,,0.02,-1" } OnSpawnOutput { Target "disablenbuild" Action trigger } func_nobuild { "targetname" "nbuild" "mins" "-96 -96 -96" "maxs" "96 96 96" "teamnum" "2" "allowdispenser" "1" "allowteleporters" "1" } trigger_multiple { "targetname" "buildbot" "mins" "-96 -96 -96" "maxs" "96 96 96" "startdisabled" "1" "filtername" "filter_red_sentrygun" "spawnflags" "64" "onstarttouch" "!activator,kill,,0,-1" "onstarttouch" "spawnredbot,forcespawnatentityorigin,!activator,0,-1" "onstarttouch" "spawnbot_build,enable,,0,-1" "onstarttouch" "sentrygun_teleparticle,start,,0.01,-1" "onstarttouch" "sentrygun_teleparticle,fireuser1,,0.01,-1" "onstarttouch" "sentrygun_point,kill,,0.05,-1" } } redbotbuilding { NoFixup 1 func_door { "targetname" "triggerrefresh" "rendermode" "10" "spawnflags" "4108" "speed" "1" "wait" "0.05" "onfullyclosed" "!self,open,,0,-1" } logic_relay { "targetname" "disablenbuild" "startdisabled" "1" "ontrigger" "nbuild&*,disable,,0,-1" "onspawn" "triggerrefresh,open,,0,-1" "onspawn" "wave_start_*,addoutput,ontrigger nbuild&*:disable::0:-1" "onspawn" "wave_start_*,addoutput,ontrigger disablenbuild:enable::0:-1" "onspawn" "wave_finished_*,addoutput,ontrigger nbuild&*:enable::0:-1" "onspawn" "wave_finished_*,addoutput,ontrigger disablenbuild:disable::0.01:-1" } filter_activator_class { "targetname" "filter_sentrygun" "filterclass" "obj_sentrygun" } filter_activator_name { "targetname" "filter_mini" "negated" "1" "filtername" "normalsentry" } filter_multi { "targetname" "filter_red_sentrygun" "filter01" "filter_mini" "filter02" "filter_sentrygun" "filter03" "filter_red" } env_entity_maker { "targetname" "spawnredbot" "entitytemplate" "redbotspawnhere" } trigger_multiple { "origin" "576 4064 1280" "mins" "-9999 -9999 -9999" "maxs" "9999 9999 9999" "filtername" "filter_red_sentrygun" "parentname" "triggerrefresh" "spawnflags" "64" "onstarttouch" "notamini&*,enable,,0,-1" "onstarttouch" "notamini&*,disable,,0.01,-1" "onstarttouch" "buildbot&*,enable,,0.01,-1" "onstarttouch" "buildbot&*,disable,,0.02,-1" } filter_tf_bot_has_tag { "targetname" "filter_buildbot" "require_all_tags" "1" "tags" "bot_build" } math_counter { "targetname" "builtbotcounter" "max" "4" // max red bot buildings "outvalue" "builtbotcompare,setvaluecompare,,0,-1" } logic_compare { "targetname" "builtbotcompare" "comparevalue" "4" // max red bot buildings "onlessthan" "disablenbuild,enable,,0,-1" "onlessthan" "disablenbuild,trigger,,0.01,-1" "onequalto" "disablenbuild,disable,,0,-1" "onequalto" "nbuild&*,enable,,0,-1" } math_counter { "targetname" "gunslingercount" "max" "10" "outvalue" "gunslingercompare,setvaluecompare,,0,-1" } logic_compare { "targetname" "gunslingercompare" "comparevalue" "0" "onequalto" "redbuilt,$suicide,,0,-1" } info_player_teamspawn { "targetname" "spawnbot_build" "origin" "64 256 768" "startdisabled" "1" "teamnum" "3" } trigger_multiple { "targetname" "sentrygun_tele" "parentname" "triggerrefresh" "origin" "64 256 768" "mins" "-128 -128 -128" "maxs" "128 128 128" "filtername" "filter_buildbot" "spawnflags" "1" "onstarttouch" "spawnbot_build,disable,,0,-1" "onstarttouch" "sentrygun_point,teleport,,0,-1" "onstarttouch" "!activator,addoutput,targetname redbot,0,-1" "onendtouch" "!activator,addoutput,targetname redbuilt,0,-1" } } redbotspawnhere { KeepAlive 1 NoFixup 1 point_teleport { "targetname" "sentrygun_point" "origin" "0 0 5" "target" "redbot" } info_particle_system { "targetname" "sentrygun_teleparticle" "effect_name" "teleported_red" "onuser1" "!self,kill,,1,-1" "onuser1" "!self,addoutput,targetname ,0,-1" } } builtbot { OnSpawnOutput { Target builtbotcounter Action Add Param 1 } OnParentKilledOutput { Target builtbotcounter Action Subtract Param 1 } OnParentKilledOutput { Target !activator Action AddOutput Param "targetname " } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn // ignore this wavespawn, prevents wave from ending { Where spawnbot TotalCount 1 WaitBeforeStarting 9999 TFBot { Class Scout ClassIcon hellmet_blank } } WaveSpawn // allows you to choose what bot engineers can build, can vary for each wave { Where spawnbot_build WaitBetweenSpawns 0.1 SpawnCount 1 MaxActive 4 // max red bot buildings Support 1 RandomChoice { RandomChoice { TFBot { Class Scout Skill Expert Action Mobber AddCond { Name TF_COND_REPROGRAMMED } SpawnTemplate "builtbot" Tag bot_build } TFBot { Class Soldier Skill Expert Action Mobber AddCond { Name TF_COND_REPROGRAMMED } SpawnTemplate "builtbot" Tag bot_build } }} } } }