#base robot_standard.pop #base robot_giant.pop WaveSchedule { StartingCurrency 700 RespawnWaveTime 0 CanBotsAttackWhileInSpawnRoom no EventPopfile Halloween NoReanimators 1 NoRomevisionCosmetics 1 BotsAreHumans 1 ForceHoliday 2 WaveStartCountdown 5 ZombiesNoWave666 1 NoCritPumpkin 1 NoThrillerTaunt 1 MaxSpectators 0 RobotLimit 26 SendBotsToSpectatorImmediately 1 // Fix spell hud being hidden BotsDropSpells 1 GiantsDropRareSpells 1 SpellDropRateCommon 0 SpellDropRateGiant 0 PrecacheSound "mega_mob_incoming.wav" DisableSound "music.mvm_end_last_wave" DisableSound "music.mvm_end_mid_wave" DisableSound "music.mvm_end_tank_wave" DisableSound "music.mvm_end_wave" DisableSound "music.mvm_lost_wave" DisableSound "music.mvm_start_last_wave" DisableSound "music.mvm_start_mid_wave" DisableSound "music.mvm_start_tank_wave" DisableSound "music.mvm_start_wave" DisableSound "MVM.AttackDefend.EnemyReturned" DisableSound "Announcer.MVM_Get_To_Upgrade" DisableSound "Announcer.MVM_Spy_Alert" DisableSound "Announcer.mvm_spybot_death" DisableSound "Announcer.mvm_spybot_death_all" DisableSound "Announcer.MVM_First_Wave_Start" DisableSound "Announcer.MVM_Wave_Start" DisableSound "Announcer.MVM_Wave_End" DisableSound "Announcer.MVM_Wave_Lose" DisableSound "Announcer.MVM_Final_Wave_Start" DisableSound "Announcer.MVM_Final_Wave_End" DisableSound "Announcer.MVM_Robots_Planted" DisableSound "Announcer.MVM_All_Dead" DisableSound "Announcer.MVM_Bomb_Alert_Entered" DisableSound "Announcer.MVM_Bomb_Alert_Near_Hatch" DisableSound "Announcer.MVM_Bomb_Alert_Deploying" DisableSound "Announcer.MVM_Sentry_Buster_Alert" DisableSound "Announcer.MVM_Sentry_Buster_Alert_Another" DisableSound "Announcer.MVM_General_Wave_Start" DisableSound "Announcer.MVM_Game_Over_Loss" 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" DisableSound "Announcer.MVM_Bomb_Reset" Templates { } // WAVE 1 [$0] Wave { InitWaveOutput { Target wave_initA_relay Action Trigger } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } // DUMMY WaveSpawn { Where spawnbot_ab TotalCount 1 SpawnCount 1 Support Limited TotalCurrency 600 RandomChoice { RandomChoice { TFBot { Class Scout WeaponRestrictions MeleeOnly Action Mobber CharacterAttributes { "move speed penalty" 0.001 "no_jump" 1 } } } } } // [$0] WaveSpawn { Name "W1-1" Where spawnbot_abe TotalCount 25 MaxActive 25 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 5 WaitBetweenSpawns 0.2 RandomChoice { TFBot { Class Scout Action Mobber WeaponRestrictions MeleeOnly Item "Unarmed Combat" Tag nav_path_d_front_railing } } FirstSpawnWarningSound "mega_mob_incoming.wav" } } PointTemplates { PermaDeathLogic { NoFixup 1 filter_activator_tfteam { "targetname" "filter_red" "TeamNum" "2" "Negated" "0" } filter_activator_name { "targetname" "filter_deadplayer" "filtername" "deadplayer" "Negated" "0" } filter_activator_name { "targetname" "filter_deadplayer_false" "filtername" "deadplayer" "Negated" "1" } filter_tf_bot_has_tag { "targetname" "filter_bot_false" "Negated" "1" "require_all_tags" "1" "tags" "common" } filter_multi { "targetname" "filter_redplayer" "Filter01" "filter_red" "Filter02" "filter_bot_false" "filtertype" "0" "Negated" "0" } filter_multi { "targetname" "filter_alive_redplayer" "Filter01" "filter_redplayer" "Filter02" "filter_deadplayer_false" "filtertype" "0" "Negated" "0" } game_forcerespawn { "targetname" "forcerespawn" } trigger_multiple { "targetname" "permadeath_detect_latejoin_trigger" "filtername" "filter_redplayer" "spawnflags" "1" "StartDisabled" "1" "wait" "0" "mins" "-9216 -8192 -4096" "maxs" "9216 8192 4096" "OnStartTouch" "permadeath_should_deny_player,Test,,0,-1" } trigger_multiple { "targetname" "permadeath_assign_trigger" "filtername" "filter_redplayer" "spawnflags" "1" "StartDisabled" "1" "wait" "0" "mins" "-9216 -8192 -4096" "maxs" "9216 8192 4096" "OnEndTouch" "!activator,AddOutput,targetname deadplayer,0,-1" } trigger_multiple { "targetname" "permadeath_lose_trigger" "filtername" "filter_alive_redplayer" "spawnflags" "1" "StartDisabled" "1" "wait" "0" "mins" "-9216 -8192 -4096" "maxs" "9216 8192 4096" "OnEndTouchAll" "permadeath_can_bots_win,Test,,0,-1" } trigger_multiple { "targetname" "permadeath_detect_player_spell" "filtername" "filter_redplayer" "spawnflags" "1" "StartDisabled" "1" "wait" "0" "mins" "-9216 -8192 -4096" "maxs" "9216 8192 4096" "OnStartTouch" "!activator,RollRareSpell,,0,-1" } trigger_add_tf_player_condition { "targetname" "permadeath_detect_player_crit" "filtername" "filter_redplayer" "condition" "11" "duration" "9999999999" // It doesn't like applying when it's -1?? "spawnflags" "1" "StartDisabled" "1" "mins" "-9216 -8192 -4096" "maxs" "9216 8192 4096" } math_counter { "targetname" "permadeath_death_counter" "min" "0" "max" "6" "startvalue" "0" "OutValue" "permadeath_death_case,InValue,,0,-1" } logic_case { "targetname" "permadeath_death_case" "Case01" "3" "Case02" "4" "OnCase01" "permadeath_detect_player_spell,Enable,,0,-1" "OnCase01" "permadeath_detect_player_spell,Disable,,0.01,-1" "OnCase02" "permadeath_detect_player_crit,Enable,,0,-1" "OnCase02" "permadeath_detect_player_crit,Disable,,0,-1" } point_teleport { "targetname" "permadeath_ghost_teleport_e" "target" "!activator" "origin" "-3250 2480 -1000" "angles" "0 0 0" } trigger_add_tf_player_condition { "targetname" "permadeath_ghost_trigger" "filtername" "filter_deadplayer" "condition" "66" "duration" "9999999999" // It doesn't like applying when it's -1?? "spawnflags" "1" "StartDisabled" "1" "mins" "-9216 -8192 -4096" "maxs" "9216 8192 4096" "OnStartTouch" "permadeath_ghost_teleport_e,Teleport,,0,-1" "OnStartTouch" "ghost_model_maker,ForceSpawnAtEntityOrigin,!activator,0.01,-1" "OnStartTouch" "permadeath_death_counter,Add,1,0,-1" } trigger_add_tf_player_condition { "targetname" "permadeath_ghost_trigger" "filtername" "filter_deadplayer" "condition" "77" "duration" "9999999999" // -1 works here but hehe symmetry go brrr "spawnflags" "1" "StartDisabled" "1" "mins" "-9216 -8192 -4096" "maxs" "9216 8192 4096" } trigger_add_tf_player_condition { "targetname" "permadeath_ghost_trigger" "filtername" "filter_deadplayer" "condition" "114" "duration" "9999999999" // -1 works here but hehe symmetry go brrr "spawnflags" "1" "StartDisabled" "1" "mins" "-9216 -8192 -4096" "maxs" "9216 8192 4096" } trigger_add_tf_player_condition { "targetname" "permadeath_ghost_trigger" "filtername" "filter_deadplayer" "condition" "43" "duration" "9999999999" // -1 works here but hehe symmetry go brrr "spawnflags" "1" "StartDisabled" "1" "mins" "-9216 -8192 -4096" "maxs" "9216 8192 4096" } logic_relay { "targetname" "ghost_reset_relay" "OnTrigger" "deadplayer,$ForceRespawn,,0,-1" // Fucking sorcery "OnTrigger" "deadplayer,AddOutput,targetname ,0.01,-1" } env_entity_maker { "targetname" "ghost_model_maker" "EntityTemplate" "GhostModel" } info_target { "targetname" "move_target" "origin" "0 0 0" "angles" "0 0 0" } logic_branch { "targetname" "permadeath_can_bots_win" "InitialValue" "0" "OnTrue" "bots_win,RoundWin,,0,-1" } logic_branch { "targetname" "permadeath_should_deny_player" "InitialValue" "0" "OnTrue" "!activator,AddOutput,targetname deadplayer,0,-1" "OnTrue" "permadeath_ghost_trigger,Disable,,0.01,-1" "OnTrue" "permadeath_ghost_trigger,Enable,,0.02,-1" } } GhostModel { OnSpawnOutput { Target "move_measure" Action SetParent Param "!activator" Delay 0.00 } prop_dynamic { "targetname" "model" "modelscale" "1.5" "rendercolor" "255 100 36" "DisableBoneFollowers" "1" "disableshadows" "1" "model" "models/props_halloween/ghost.mdl" "defaultanim" "idle" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "origin" "0 0 -32" } prop_dynamic { "targetname" "move_measure" "DisableBoneFollowers" "1" "disableshadows" "1" "model" "models/empty.mdl" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "origin" "0 0 -32" } logic_measure_movement { "MeasureReference" "move_target" "MeasureTarget" "move_measure" "MeasureType" "0" "Target" "model" "TargetReference" "move_target" "TargetScale" "1" } } Misc { NoFixup 1 OnSpawnOutput { Target entity_outputs Action Trigger Delay 0.00 } logic_relay { "targetname" "entity_outputs" "OnTrigger" "player,AddOutput,targetname ,0,-1" "OnTrigger" "wave_init*,AddOutput,OnTrigger ghost_reset_relay:Trigger::0:-1,0,-1" "OnTrigger" "wave_start_relay,AddOutput,OnTrigger permadeath_assign_trigger:Enable::0:-1,0,-1" "OnTrigger" "wave_start_relay,AddOutput,OnTrigger permadeath_lose_trigger:Enable::0:-1,0,-1" "OnTrigger" "wave_start_relay,AddOutput,OnTrigger permadeath_can_bots_win:SetValue:1:0:-1,0,-1" "OnTrigger" "wave_start_relay,AddOutput,OnTrigger forcerespawn:ForceTeamRespawn:2:0:-1,0,-1" // Ensure all players are alive "OnTrigger" "wave_start_relay,AddOutput,OnTrigger permadeath_detect_latejoin_trigger:Enable::0.01:-1,0,-1" "OnTrigger" "wave_start_relay,AddOutput,OnTrigger permadeath_should_deny_player:SetValue:1:0.02:-1,0,-1" "OnTrigger" "wave_start_relay,AddOutput,OnTrigger permadeath_ghost_trigger:Enable::0.03:-1,0,-1" "OnTrigger" "wave_finished_relay,AddOutput,OnTrigger permadeath_assign_trigger:Disable::0:-1,0,-1" "OnTrigger" "wave_finished_relay,AddOutput,OnTrigger permadeath_ghost_trigger:Disable::0:-1,0,-1" "OnTrigger" "wave_finished_relay,AddOutput,OnTrigger permadeath_lose_trigger:Disable::0:-1,0,-1" "OnTrigger" "wave_finished_relay,AddOutput,OnTrigger permadeath_can_bots_win:SetValue:0:0:-1,0,-1" "OnTrigger" "wave_finished_relay,AddOutput,OnTrigger permadeath_detect_latejoin_trigger:Disable::0:-1,0,-1" "OnTrigger" "wave_finished_relay,AddOutput,OnTrigger permadeath_should_deny_player:SetValue:0:0:-1,0,-1" "OnTrigger" "wave_finished_relay,AddOutput,OnTrigger permadeath_death_counter:SetValueNoFire:0:0:-1,0,-1" } } } SpawnTemplate "Misc" SpawnTemplate "PermaDeathLogic" }