// // MVM Encounter - Backup Security Protocol // Credits // Eve - Popfile / Template work / Nav Mesh / Map Logic / Map Optimization // https://steamcommunity.com/id/EveLan/ // // Birchly - Map layout / Map Detailing // https://steamcommunity.com/id/Birchly // // Non The Ninja - Encounter OST / owner of snoog :) // https://steamcommunity.com/id/NontheNinja // // Jurrell - Popfile help /Template help/ humananim fixup template // https://steamcommunity.com/id/Jurrell // // DaMno - Popfile help // https://steamcommunity.com/profiles/76561198300633951/ // // That Guy Mike - RCAT sentry model for gunslinger rework // https://steamcommunity.com/id/electronicfox // // Royal - Spinning Medic Barrier Template / Help with cleaning up tide turner template // https://steamcommunity.com/profiles/76561198835403557 // // Lite - Original Mini-Sentry detector template used to make mini rework // https://steamcommunity.com/profiles/76561198300633951/ // #base robot_standard.pop #base robot_giant.pop #base robot_gatebot.pop WaveSchedule { StartingCurrency 2000 RespawnWaveTime 999999 CanBotsAttackWhileInSpawnRoom No Advanced 1 FixedRespawnWaveTime Yes //reverse keyvalues ReverseWinConditions 1 AllowJoinTeamBlueMax 6 AllowJoinTeamBlue 1 HumansMustJoinTeam Blue SetCreditTeam 3 SniperAllowHeadshots 1 SendBotsToSpectatorImmediately 1 FlagCarrierMovementPenalty 1 BluHumanFlagCapture 1 BluHumanFlagPickup 1 //team/player keyvalues NoRedBotsRandomCrit 1 NoRedSniperBotHeadshots 1 ForceRedMoney 1 FixHuntsmanDamageBonus 1 NoBluHumanFootsteps 1 BuybacksPerWave 0 FixedBuybacks 1 FastEntityNameLookup 0 NoReanimators 1 MaxSpectators 2 RobotLimit 24 NoJoinMidwave 1 NoRomevisionCosmetics 1 BluHumanInfiniteAmmo 0 BluHumanInfiniteCloak 0 BluPlayersAreRobots 1 PlayerRobotsUsePlayerAnimation 1 BotsRandomCrit 0 MaxSpeedLimit 3500 BotHumansHaveEyeGlow 0 MedigunShieldDamage 1 RemoveBluVelocityLimit 1 CanBotsAttackWhileInSpawnRoom Yes //visual/audio keyvalues TextPrintTime 0 SniperHideLasers 1 NoMvMDeathTune 1 WaveStartCountdown 1 //sound changes DisableSound "heavy_mvm_giant_robot01" DisableSound "heavy_mvm_giant_robot02" DisableSound "heavy_mvm_giant_robot03" DisableSound "heavy_mvm_giant_robot04" DisableSound "engineer_mvm_giant_robot01" DisableSound "engineer_mvm_giant_robot02" DisableSound "engineer_mvm_giant_robot03" DisableSound "soldier_mvm_giant_robot01" DisableSound "soldier_mvm_giant_robot02" DisableSound "soldier_mvm_giant_robot03" DisableSound "soldier_mvm_giant_robot04" DisableSound "medic_mvm_giant_robot01" DisableSound "medic_mvm_giant_robot02" DisableSound "medic_mvm_giant_robot03" DisableSound "Game.YourTeamWon" DisableSound "music.mvm_start_last_wave" DisableSound "music.mvm_start_mid_wave" DisableSound "music.mvm_start_tank_wave" DisableSound "music.mvm_start_wave" DisableSound "Announcer.MVM_Get_To_Upgrade" 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_General_Wave_Start" DisableSound "Announcer.MVM_Game_Over_Loss" DisableSound "Announcer.MVM_Tank_Planted" 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_Tank_Alert_Spawn" DisableSound "Announcer.MVM_Bomb_Alert_Entered" DisableSound "Announcer.MVM_Bomb_Alert_Near_Hatch" DisableSound "Announcer.MVM_Bomb_Alert_Deploying" DisableSound "Announcer.RoundBegins1Seconds" DisableSound "Announcer.MVM_All_Dead" OverrideSounds { "Announcer.MVM_Spy_Alert" "vo/mvm/norm/spy_mvm_CloakedSpy03.mp3" "Announcer.MVM_Sentry_Buster_Alert" "MVM.SentryBusterIntro" "Announcer.MVM_Sentry_Buster_Alert_Another" "MVM.SentryBusterIntro" "Announcer.MVM_Bonus" "MVM.MoneyPickup" "Announcer.MVM_All_Dead" "DoorSound.Null" "Announcer.RoundBegins1Seconds" "DoorSound.Null" } //model precache PrecacheModel "models/bots/demo/red_sentry_buster.mdl" PrecacheModel "models/rcat/rcat_level2.mdl" //bad upgrades to remove DisallowUpgrade "engy disposable sentries" //breaks mini drone template PlayerAttributes { "min respawn time" 9999 } PointTemplates { RotateShield { OnSpawnOutput { Target "rotate" Action "Start" } OnSpawnOutput { Target "rotate" Action "SetParent" Param "" } OnSpawnOutput { Target "rotate_position" Action "Trigger" } logic_relay { "targetname" "rotate_position" "spawnflags" "2" "OnTrigger" "rotate,$TeleportToEntity,!activator,0,-1" "OnTrigger" "!self,Trigger,,0.01,-1" } entity_medigun_shield { "parentname" "rotate" "targetname" "projectile_shield" "origin" "100 0 0" "spawnflags" "1" "teamnum" "2" } func_rotating { "targetname" "rotate" "origin" "0 0 0" "mins" "-0.1 -0.1 -0.1" "maxs" "0.1 0.1 0.1" "dmg" "0" "fanfriction" "100" "maxspeed" "60" "spawnflags" "64" "volume" "0" } } //Players left template PlayersLeftLogic{ NoFixup 1 math_counter{ "targetname" "playersLeftAlive" "startvalue" 0 "outValue" "playersLeftFormat,$SetKey$Case01,,0,-1" "outValue" "playersLeftFormat,$Format,,0.2,-1" "outValue" "wipeCheck,SetValueCompare,,0,-1" } logic_compare{ "targetname" "wipeCheck" "initialValue" 0 "CompareValue" 0 "OnEqualTo" "redalive_saftey_timer,Enable,,0,-1" "OnNotEqualTo" "redalive_saftey_timer,Disable,,0,-1" } logic_case { "targetname" "playersLeftFormat" "case16" "Teammates Alive: %" //formatting string "case01" "h" //Will be the number of players currently alive //"case02" "6" //Uncomment to give another param to show total team size, could be made dynamic but prob best left "ondefault" "playersLeftDisplay,$SetKey$Message,,0,-1" "ondefault" "playersLeftDisplay,Display,,0.2,-1" } game_text{ "targetname" "playersLeftDisplay" "channel" "3" "color" "255 255 255" "color2" "255 255 255" "effect" "0" "fadein" "0" "fadeout" "1" "fxtime" "0.25" "holdtime" "9999" "message" "FunnyHahaPlaceholderText" "spawnflags" "1" "x" "0.8" "y" "0.19" } } PlayerTracker{ NoFixup 1 OnSpawnOutput{ Target "playersLeftAlive" Action "add" Param "1" } logic_relay{ "$OnKilled" "playersLeftAlive,Subtract,1,0,0" } } PlayerLivesDisplay{ keepalive 1 OnSpawnOutput{ Target "playersLivesTracker" Action "$setKey$message" Param "$$='Lives Left: '.. (!activator.hasRes + 1)" Delay 0.1 } OnSpawnOutput{ Target "playersLivesTracker" Action "display" Delay 0.2 } OnParentKilledOutput{ Target "playersLivesTracker" Action "$setKey$message" Param "$$='Lives Left: '.. (!activator.hasRes)" Delay 0.1 } OnParentKilledOutput{ Target "playersLivesTracker" Action "display" Delay 0.2 } OnParentKilledOutput{ Target "playersLivesTracker" Action "kill" Delay 0.3 } game_text{ "targetname" "playersLivesTracker" "channel" "4" "color" "255 255 255" "color2" "255 255 255" "effect" "0" "fadein" "0" "fadeout" "1" "fxtime" "0.25" "holdtime" "9999" "message" "0" "spawnflags" "0" //"x" "0.8036" "x" "0.8008" "y" "0.225" } } //Player Res Template PlayerResInput{ NoFixup 1 OnSpawnOutput{ Target "playerResInWave" Action Test } // OnSpawnOutput{ // Target "entrance_music_clear_relay" // Action trigger // delay 0.5 // } // OnSpawnOutput{ // Target "encounter_music_1" // Action stopsound // delay 0.5 // } OnSpawnOutput{ Target "encounter_entrance_start" Action addoutput Param "onTrigger prewave_lives:kill::0:-1" Delay 1 } OnSpawnOutput{ Target "encounter_entrance_start" Action $removeoutput Param "prewave-lives" } OnSpawnOutput{ Target "encounter_mines_start" Action addoutput Param "onTrigger prewave_lives:kill::0.5:-1" Delay 1 } OnSpawnOutput{ Target "encounter_mines_start" Action $removeoutput Param "prewave-lives" } logic_relay{ "targetname" "mines_win_relay" "onTrigger" "player,$displayTextChat,{f5c542}The Base has been retaken from the Red's for now. Although the Virus may return.,1,-1" "onTrigger" "player,$displayTextChat,{f5c542}Returning to regular protocol...,5,-1" } logic_relay{ "targetname" "wipe_loopfix" "onTrigger" "player,$SetVar$hasRes,0,0,-1" } trigger_multiple{ "targetname" "prewave_lives" "startDisabled" "0" "mins" "-512 -512 -512" "maxs" "512 512 512" "spawnflags" "1" "origin" "4870 5120 -780" "onStartTouch" "!activator,$SetVar$hasRes,4,0,-1" } trigger_multiple{ "targetname" "prewave_lives" "startDisabled" "0" "mins" "-512 -512 -512" "maxs" "512 512 512" "spawnflags" "1" "origin" "4450 -6620 -2010" "onStartTouch" "!activator,$SetVar$hasRes,4,0,-1" } logic_branch{ "startvalue" "0" // used to detect if wave is started or not "targetname" "playerResInWave" "onTrue" "player,$SetVar$inWave,1,0,-1" "onTrue" "playerResInWaveTest,$SetVar$inWave,1,0,-1" "onFalse" "player,$SetVar$inWave,0,0,-1" "onFalse" "playerResInWaveTest,$SetVar$inWave,0,0,-1" } math_counter{ "targetname" "playerResInWaveTest" } math_counter{ "startvalue" "0" // value to change "targetname" "playerResVal1" "onGetValue" "player,$SetVar$hasRes,,0,-1" } math_counter{ "startvalue" "1" // value to change "targetname" "playerResVal2" "onGetValue" "player,$SetVar$hasRes,,0,-1" } math_counter{ "startvalue" "4" // value to change "targetname" "playerResVal3" "onGetValue" "player,$SetVar$hasRes,,0,-1" } } PlayerRes{ keepalive 1 OnParentKilledOutput { Target "playerResConfirm" Action InValue Param "$$=''..?(int(!activator.hasRes) > 0, ?(int(playerResInWaveTest.inWave) < 1,string('99'),string('1')),?(int(playerResInWaveTest.inWave) < 1,string('99'),string('0')))" } logic_case{ "targetname" "playerResConfirm" "case01" "1" "case02" "0" "case03" "99" "OnCase01" "!activator,$ForceRespawnDead,,2,-1" "OnCase01" "!activator,$AddCond,52 10,2.1,-1" //respawn uber, change 2nd number for duration "OnCase01" "!activator,$AddCond,32 10,2.1,-1" //Speed boost on respawn "OnCase01" "!activator,$SetVar$hasRes,$$=(int(!activator.hasRes) - 1),2,-1" // formatting string for if you have lifes //"OnCase01" "player,$DisplayTextChat,$$=''.. '{f5c542}' .. string(!activator.m_szNetname) .. string('{ffffff} has been revived, they have {f5c542}') .. string(!activator.hasRes) .. string('{ffffff} more lives left.'),2,-1" "OnCase01" "player,$DisplayTextChat,$$=''.. '{f5c542}' .. string(!activator.m_szNetname) .. string('{ffffff} has been revived, they have {f5c542}') .. string(!activator.hasRes) .. string('{ffffff} more ') .. ?(int(!activator.hasRes) > 1, string('lives left.'), string('life left.')),2,-1" "OnCase01" "revivefx,PlaySound,,2.05,-1" "OnCase01" "revivefx,PlaySound,,2.05,-1" "OnCase01" "revivefx,kill,,3,-1" "OnCase01" "!self,kill,,3,-1" // formatting string for if no lifes "OnCase02" "player,$DisplayTextChat,$$=''.. '{f5c542}' .. string(!activator.m_szNetname) .. string('{ffffff} has {ff2b2b} no more lives {ffffff}, they will be able to respawn at wave end.'),0,-1" "OnCase02" "!self,kill,,3,-1" "OnCase02" "revivefx,kill,,3,-1" "OnCase03" "!activator,$ForceRespawnDead,,2,-1" "OnCase03" "!self,kill,,0,-1" "OnCase03" "revivefx,kill,,0,-1" } ambient_generic{ "targetname" "revivefx" "origin" "0 0 0" "volstart" "10" "spawnflags" "17" "radius" "999999" "preset" "0" "pitchstart" "125" "pitch" "125" "message" "#mvm\mvm_revive.wav" //to change respawn sound (plays globally) "lfotype" "0" "lforate" "0" "lfomodvol" "0" "lfomodpitch" "0" "health" "7.5" "fadeoutsecs" "0" "fadeinsecs" "0" "cspinup" "0" } } //tank dispenser fix tank_fix{ NoFixup 1 mapobj_cart_dispenser{ "parentname" "red_tank_body" "teamnum" "3" "touch_trigger" "red_tank_healF" "spawnflags" "14" "origin" "4499 3515 -782" } dispenser_touch_trigger{ "parentname" "red_tank_body" "targetname" "red_tank_healF" "origin" "4452 3504 -814" "mins" "-160 -160 -64" "maxs" "160 160 64" } } // mini buddy template filters_mini { NoFixup 1 filter_activator_class { "targetname" "filter_sentrygun" "filterclass" "obj_sentrygun" } } test_mini { OnSpawnOutput { Target "triggerrefresh" Action Open } OnSpawnOutput { Target "convertmini" Action SetParent Param "!activator" } func_door { "targetname" "triggerrefresh" "rendermode" "10" "spawnflags" "4108" "speed" "1" "wait" "0.01" "onfullyclosed" "!self,open,,0,-1" } trigger_multiple { "targetname" "sentryDetect" "parentname" "triggerrefresh" "mins" "-96 -96 -96" "maxs" "96 96 96" "filtername" "filter_sentrygun" "spawnflags" "64" "onstarttouch" "convertmini,SetValueCompare,$$=?(!activator.m_bMiniBuilding == 1 && !activator.m_nSolidType > 0,1,0),0,-1" } logic_compare { "targetname" "convertmini" "comparevalue" "1" "onequalto" "!activator,SetParent,droneLocation,0.1,-1" "onequalto" "!activator,SetParentAttachment,head,0.15,-1" "onequalto" "!activator,$SetProp$m_iAmmoShells,99999999,0,-1" //gives them tons of ammo "onequalto" "!activator,$SetProp$m_iAmmoShells,99999999,5,-1" //gives them tons of ammo "onequalto" "!activator,$SetProp$m_nSolidType,0,0,-1" //stops them blocking the player, also used to detect if mini has been turned into a drone "onequalto" "!activator,$SetModelOverride,models/rcat/rcat_level2.mdl,0,-1" // sets model | make sure to precache "onequalto" "!activator,$SetProp$m_nSkin,1,0,-1" } prop_dynamic { "targetname" "droneLocation" // invisible engineer doomed to carry the drone for all eternity "model" "models/player/engineer.mdl" "origin" "40 -50 15" "disableshadows" "1" "rendermode" "9" "renderamt" "0" } } //Shield Dash Template ShieldDash { OnSpawnOutput { Target "!activator" Action $SetVar$DashEnabled Param 1 } OnParentKilledOutput { Target "!activator" Action $SetVar$DashEnabled Param 0 } OnSpawnOutput { Target "charge_checker" Action Trigger Delay 0.1 } filter_multi { "targetname" "filter_redcommon" "Filter01" "filter_redplayer" "Filter02" "filter_giant_exclude" "filtertype" "0" "Negated" "0" } OnSpawnOutput { Target "!activator" Action "$GetEntIndex" Param "!activator|$SetVar$dashEntIndex" Delay 0 } OnSpawnOutput { Target "set_filter_value" Action "$SetKey$case01" Param "$$=!activator.dashEntIndex" Delay 0.01 } OnSpawnOutput { Target "set_filter_value" Action "$Format" Delay 0.02 } logic_case { //can't target $value with setkey "targetname" "set_filter_value" "case16" "$value %" "case01" "def" "OnDefault" "filter_is_parent,AddOutput,,0,-1" //"OnDefault" "player,$DisplayTextChat,,0,-1" } $filter_variable { "targetname" "filter_is_parent" "$name" "dashEntIndex" "$value" "-1" //to be set procedurally on spawn "$compare" "equal" "Negated" "0" } filter_tf_condition { "targetname" "filter_charging" "condition" "17" "OnPass" "!activator,$RemoveCond,17,0,-1" "OnPass" "!activator,$RemoveCond,78,0,-1" "OnPass" "!activator,$GetProp$m_angRotation,dash_trigger|$SetKey$launchDirection|def,0,-1" "OnPass" "dash_trigger,enable,,0.02,-1" "OnPass" "dash_stun,enable,,0.02,-1" "OnPass" "dash_trigger,disable,,0.3,-1" "OnPass" "dash_stun,disable,,0.3,-1" } // $filter_variable{ // "targetname" "filter_dashenabled" // $name "dashenabled" // $value "1" // } logic_relay { "targetname" "charge_checker" "spawnflags" "2" "OnTrigger" "!self,Trigger,,0.1,-1" "OnTrigger" "filter_charging,TestActivator,!activator,0,-1" } OnSpawnOutput { Target "dash_base" Action SetParent Param "!activator" Delay 0.01 } prop_dynamic { "targetname" "dash_base" "model" "models/player/engineer.mdl" "origin" "0 0 0" "disableshadows" "1" "rendermode" "9" "renderamt" "0" } trigger_catapult { "targetname" "dash_trigger" "mins" "-128 -128 0" "maxs" "128 128 80" "startdisabled" "1" "playerspeed" "700" "useExactVelocity" "0" //"filtername" "filter_dashenabled" "filtername" "filter_is_parent" "launchTarget" "dash_target" "spawnflags" "1" } trigger_multiple { "targetname" "dash_stun" "mins" "-128 -128 -128" "maxs" "128 128 128" "startdisabled" "1" "filtername" "filter_redcommon" "onStartTouch" "!activator,$addcond,71 1.5,0,-1" "spawnflags" "1" } info_target { "targetname" "dash_target" "parentname" "dash_base" "origin" "400 0 275" } } // Fake Icon Template FakeIcon { NoFixup 1 logic_auto { "OnMapSpawn" "!self,Kill,,0,-1" "targetname" "yes" } } // RNG effects template LuckInTheChamber { NoFixup 1 logic_relay { "OnTrigger" "luckRollerOutcome,invalue,$$=randomint(1,7)" "targetname" "luckRoller" } logic_case{ "targetname" "luckRollerOutcome" "case01" "7" "OnCase01" "!activator,$AddItemAttribute,damage bonus|8|1,0,-1" "OnCase01" "!activator,$RemoveItemAttribute,add cond when active|1,0,-1" "OnCase01" "!activator,$AddItemAttribute,add cond when active|36|1,0.1,-1" "OnDefault" "!activator,$RemoveItemAttribute,damage bonus|1|1,0,-1" "OnDefault" "!activator,$RemoveItemAttribute,add cond when active|1,0.1,-1" } } // Human animations fix up humananim_fix { OnSpawnOutput { Target "condition_check" Action "Trigger" } filter_multi { "targetname" "filter_has_condition" "filtertype" "1" "filter01" "filter_is_ubered" "filter02" "filter_is_disguised" "OnPass" "!activator,alpha,255,-1" "OnPass" "!activator,alpha,254,0.01" } filter_multi { "targetname" "filter_is_ubered" "filtertype" "1" "filter01" "filter_uber_medigun" "filter02" "filter_uber_canteen" } filter_tf_condition { "targetname" "filter_uber_medigun" "condition" "5" } filter_tf_condition { "targetname" "filter_uber_canteen" "condition" "52" } filter_tf_condition { "targetname" "filter_is_disguised" "condition" "3" } logic_relay { "targetname" "condition_check" "spawnflags" "2" "OnTrigger" "filter_has_condition,TestActivator" "OnTrigger" "!self,Trigger,,0.05" } } } SpawnTemplate "PlayersLeftLogic" SpawnTemplate "PlayerResInput" SpawnTemplate "filters_mini" PlayerSpawnTemplate { Name "PlayerRes" Bone "bip_spine_2" } PlayerSpawnTemplate { Name "PlayerLivesDisplay" Bone "bip_spine_2" } PlayerSpawnTemplate "humananim_fix" PlayerSpawnTemplate "PlayerTracker" //Specific weapons //Tide Turner PlayerItemEquipSpawnTemplate { Name "ShieldDash" ItemName "The Tide Turner" } ItemAttributes { ItemName "The Tide Turner" "maxammo primary increased" 1.5 "cancel falling damage" 1 "increased air control" 3 "special item description" "Charge is now replaced with a jump boost that will send you up and forwards." "special item description 2" "When starting a charge, bots in a small radius around you will get stunned for a short period." } // Pomson ItemAttributes { ItemName "The Pomson 6000" "override projectile type" 1 "weapon spread bonus" 0.001 "sniper fires tracer HIDDEN" 1 "bullets per shot bonus" 0.1 "damage bonus HIDDEN" 8 "headshot damage increase" 2 "shot penetrate all players" 1 "can headshot" 1 "special item description" "Fires a singular beam that can headshot." } //Gunslinger PlayerItemEquipSpawnTemplate { Name "test_mini" ItemName "The Gunslinger" } ItemAttributes { ItemName "The Gunslinger" "build rate bonus" 0.2 "upgrade rate decrease" 4 "special item description" "Placed Mini-Sentries are converted into drones that will float alongside you." } //Enforcer PlayerItemEquipSpawnTemplate { Name "LuckInTheChamber" ItemName "The Enforcer" } ItemAttributes { ItemName "The Enforcer" "fire input on hit" "luckRoller^trigger" "special item description" "Luck In the Chamber - On hit, your next shot has a 1/7 chance to deal 700% bonus damage." } //Short Circuit Gutting | rebalance bugged rn so blacklisted until it can not be as janky // ItemAttributes // { // ItemName "The Short Circuit" // "alt-fire disabled" 1 // "override projectile type" 8 // "damage bonus hidden" 4 // "fire rate bonus hidden" 8 // "mod ammo per shot" 65 // "projectile gravity" 0.001 // "projectile lifetime" 3 // "projectile penetration limit" 32 // "projectile trail particle" "dxhr_lightningball_parent_blue" // "projectile acceleration time" 0.075 // "projectile acceleration" 8000 // "energy weapon penetration" 1 // "penetrate teammates" 1 // "grenade bounce speed" 1 // "grenade bounce damage" 0.75 // "custom projectile size" 24 // "custom projectile model" "models/empty.mdl" // } ItemBlacklist { Name "The Short Circuit" } Mission // Sentry Busters - All { Objective DestroySentries InitialCooldown 30 Where entrance_spawn_red_1l Where entrance_spawn_red_2l Where entrance_spawn_red_3a Where entrance_spawn_red_3b Where entrance_spawn_red_4c Where entrance_spawn_red_4b TargetBluSentries 1 BeginAtWave 1 RunForThisManyWaves 1 CooldownTime 45 SuppressSentryBusterModel 1 TFBot { Template T_TFBot_SentryBuster UseCustomModel "models/bots/demo/red_sentry_buster.mdl" AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "move speed bonus" 1.2 } } } Mission // Sentry Busters - All { Objective DestroySentries InitialCooldown 30 Where mine_spawngroup_1 Where mine_spawngroup_2 Where mine_spawngroup_3 Where mine_spawngroup_4 Where mine_spawngroup_5 Where mine_spawngroup_6 TargetBluSentries 1 BeginAtWave 1 RunForThisManyWaves 4 CooldownTime 45 SuppressSentryBusterModel 1 TFBot { Template T_TFBot_SentryBuster AddCond {Name "TF_COND_REPROGRAMMED" } UseCustomModel "models/bots/demo/red_sentry_buster.mdl" CharacterAttributes { "move speed bonus" 1.2 } } } Mission { Objective Spy Where entrance_spawn_red_1l Where entrance_spawn_red_2l Where entrance_spawn_red_3a Where entrance_spawn_red_3b Where entrance_spawn_red_4c Where entrance_spawn_red_4b BeginAtWave 1 RunForThisManyWaves 1 CooldownTime 60 InitialCooldown 45 DesiredCount 2 TFBot { Class Spy Skill Expert AddCond {Name "TF_COND_REPROGRAMMED" } Item "The Well-Rounded Rifleman" AddAttribute { Item "TF_WEAPON_KNIFE" Name "is suicide counter" Value 9999 Delay 45 Cooldown 1 Repeats 0 } } } Wave { //wave 1 InitWaveOutput { Target encounter_entrance_init Action Trigger } StartWaveOutput { Target encounter_entrance_start Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } Explanation //Dispayed once the wave is initialized { Line "{FFFFFF}All music used is produced by {66abff}Non The Ninja{FFFFFF}" Line "{66abff}https://youtu.be/IVbeBuhtA0E" Line "{f5c542}Make sure your music is on | snd_musicvolume 1 or the music slider in audio options" Line "{f5c542}" Line "{f5c542}Encounter_Backup_Security_Protocol initiated" Line "{f5c542}Upgrade_vendor: {FFFFFF}Not active during wave" Line "{f5c542}Curr_Directive: {FFFFFF}Take back the facility" } SpawnTemplate "tank_fix" WaveSpawn{ TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target playerResInWave //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action ToggleTest } } WaveSpawn{ TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target playerResVal3 //set res count to one of 3 set Action GetValue } } SentryGun { TeamNum 2 Delay 2 Level 2 Skin 2 Health 180 Position { X 1632 Y -4790 Z -1088 Pitch 0 Yaw 323 Roll 0 } } SentryGun { TeamNum 2 Delay 2 Level 2 Skin 2 Health 180 Position { X -658 Y -3027 Z -480 Pitch 0 Yaw -180 Roll 0 } } SentryGun { TeamNum 2 Delay 2 Level 2 Skin 2 Health 180 Position { X -1115 Y -1778 Z -416 Pitch 0 Yaw -180 Roll 0 } } SentryGun { TeamNum 2 Delay 2 Level 2 Skin 2 Health 180 Position { X 773 Y 760 Z -188 Pitch 4 Yaw -50 Roll 0 } } WaveSpawn { Name "redtank" TotalCount 1 TotalCurrency 300 Tank { Name "Bomb Tank" Classicon payload_blu Health 25000 MaxTurnRate 90 StartingPathTrackNode "entrance_path_1" Scale 0.375 DisableSmokestack 1 DisableChildModels 1 NoScreenShake 1 StartSound "misc/null.wav" PingSound "misc/null.wav" Model "models/empty.mdl" OnKilledOutput { Target entrance_wipe_relay Action Trigger } } } WaveSpawn { Name "entrance_barrierbot1" Where "bot_warp_spawn" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 1 DoneMessage "{blue}The barrier is down! Payload health restored." DoneOutput{ Target entrance_barrier_1_relay Action trigger } TFBot{ SpawnTemplate "RotateShield" Template T_TFBot_Giant_Soldier_Spammer_Reload ClassIcon "soldier_burstfire_redbarrier_spin_giant" Action Mobber Item "MvM GateBot Light Soldier" UseMeleeThreatPrioritization 1 Tag bot_giant CharacterAttributes{ "no_jump" 1 "crit mod disabled" 0 "force distribute currency on death" 1 "damage force reduction" 0 "voice pitch scale" 0 "blast dmg to self increased" 0 } AddCond {Name "TF_COND_REPROGRAMMED" } Attributes IgnoreFlag Attributes DisableDodge } } WaveSpawn { Name "entrance_barrierbot2" Where "bot_warp_spawn_2" WaitForAllDead "entrance_barrierbot1" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 1 DoneMessage "{blue}The barrier is down! Payload health restored." DoneOutput{ Target entrance_barrier_2_relay Action trigger } TFBot{ SpawnTemplate "RotateShield" Template T_TFBot_Giant_Soldier_Spammer_Reload ClassIcon "soldier_burstfire_redbarrier_spin_giant" Tag bot_giant Action Mobber Item "MvM GateBot Light Soldier" UseMeleeThreatPrioritization 1 CharacterAttributes{ "no_jump" 1 "crit mod disabled" 0 "force distribute currency on death" 1 "damage force reduction" 0 "voice pitch scale" 0 "blast dmg to self increased" 0 } AddCond {Name "TF_COND_REPROGRAMMED" } Attributes IgnoreFlag Attributes DisableDodge } } WaveSpawn { Name "entrance_barrierbot3" Where "bot_warp_spawn_3" WaitForAllDead "entrance_barrierbot2" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 1 DoneMessage "{blue}The barrier is down! Payload health restored." DoneOutput{ Target entrance_barrier_3_relay Action trigger } TFBot{ SpawnTemplate "RotateShield" Template T_TFBot_Giant_Soldier_Spammer_Reload ClassIcon "soldier_burstfire_redbarrier_spin_giant" Tag bot_giant Action Mobber Item "MvM GateBot Light Soldier" UseMeleeThreatPrioritization 1 CharacterAttributes{ "no_jump" 1 "crit mod disabled" 0 "force distribute currency on death" 1 "damage force reduction" 0 "voice pitch scale" 0 "blast dmg to self increased" 0 } AddCond {Name "TF_COND_REPROGRAMMED" } Attributes IgnoreFlag Attributes DisableDodge } } WaveSpawn { Name "entrance_barrierbot_last" Where "bot_warp_spawn_last" WaitForAllDead "entrance_barrierbot3" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 1 DoneMessage "{blue}The tank barrier is down! Push the payload." DoneOutput{ Target entrance_barrier_last_relay Action trigger } TFBot{ Action Mobber Item "MvM GateBot Light Soldier" UseMeleeThreatPrioritization 1 Template T_TFBot_Giant_Soldier ClassIcon "soldier_burstfire_homing_nys" Tag bot_giant Item "Fancy Dress Uniform" Name "Major Impact" Skill Expert Health 17500 Attributes IgnoreFlag Attributes HoldFireUntilFullReload Attributes UseBossHealthBar Scale 2 UseMeleeThreatPrioritization 1 AimOffset "0 0 200" HomingRockets { IgnoreDisguisedSpies 1 IgnoreStealthedSpies 1 RocketSpeed 0.1 TurnPower 360 MaxAimError 360 AimTime 2.2 Acceleration 9999 AccelerationTime 9999 AccelerationStartTime 2 } ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "add cond when active" 36 "clip size upgrade atomic" 12 "damage bonus" 0.7 "fire rate bonus" 0.001 "faster reload rate" 0.5 "projectile spread angle penalty" 180 "blast radius increased" 1.5 "projectile trail particle" "halloween_rockettrail" "projectile no deflect" 1 } AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes{ "no_jump" 1 "crit mod disabled" 0 "force distribute currency on death" 1 "damage force reduction" 0 "voice pitch scale" 0 "blast dmg to self increased" 0 "rage giving scale" 0.1 } Attributes IgnoreFlag Attributes DisableDodge } } WaveSpawn { Name FakeSpawn TotalCount 120 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllDead entrance_barrierbot1 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon heavy_urgent Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "entrance_1_a" Where "entrance_spawn_red_1r" Where "entrance_spawn_red_1rh" TotalCount 120 MaxActive 8 SpawnCount 1 Support limited TotalCurrency 100 WaitBeforeStarting 1 WaitBetweenSpawns 1 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast ClassIcon heavy_urgent Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Attributes SpawnWithFullCharge Item "Siberian Tigerstripe" Item "The Concheror" UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "increase buff duration" 9.0 "force distribute currency on death" 1 } } TFBot{ Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Item "Siberian Tigerstripe" UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } } TFBot{ Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Item "Siberian Tigerstripe" UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } } TFBot{ Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Item "Siberian Tigerstripe" UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } } TFBot{ Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Item "Siberian Tigerstripe" UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } } TFBot{ Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Item "Siberian Tigerstripe" UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } } } } } WaveSpawn { Name FakeSpawn TotalCount 60 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllDead entrance_barrierbot1 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon scout Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "entrance_1_a" Where "entrance_spawn_red_1l" TotalCount 60 MaxActive 8 SpawnCount 1 Support limited TotalCurrency 100 WaitBeforeStarting 1 WaitBetweenSpawns 1 RandomChoice { RandomChoice { TFBot{ Name Scout Template T_TFBot_Scout_Scattergun_SlowFire Skill Normal Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Item "Fortunate Son" UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } } } } } WaveSpawn { Name FakeSpawn TotalCount 30 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllDead entrance_barrierbot2 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon pyro Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "entrance_2_a" Where "entrance_spawn_red_2l" TotalCount 30 MaxActive 4 SpawnCount 1 Support limited TotalCurrency 50 WaitBeforeStarting 1 WaitBetweenSpawns 4 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Pyro Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Item "Yeti Park Hardhat" UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "airblast disabled" 1 } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } } } } } WaveSpawn { Name FakeSpawn TotalCount 84 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllDead entrance_barrierbot2 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon engineer_widowmaker_nys Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "entrance_2_b" Where "entrance_spawn_red_2r" Where "entrance_spawn_red_2s" TotalCount 84 MaxActive 10 SpawnCount 1 Support limited TotalCurrency 100 WaitBeforeStarting 1 WaitBetweenSpawns 2 RandomChoice { RandomChoice { TFBot{ Class Engineer ClassIcon engineer_widowmaker_nys Name "Widowmaker Engineer" Skill Hard WeaponRestrictions PrimaryOnly MaxVisionRange 600 Item "The Widowmaker" ItemAttributes{ ItemName "The Widowmaker" "weapon spread bonus" 2 "fire rate bonus" 1.5 } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } } } } } WaveSpawn { Name FakeSpawn TotalCount 36 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllDead entrance_barrierbot3 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon soldier Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "entrance_3_a" Where "entrance_spawn_red_3a" TotalCount 36 MaxActive 6 SpawnCount 1 Support limited TotalCurrency 100 WaitBeforeStarting 1 WaitBetweenSpawns 2 RandomChoice { RandomChoice { TFBot{ Class Soldier ClassIcon soldier Skill Normal Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } } } } } WaveSpawn { Name FakeSpawn TotalCount 52 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllDead entrance_barrierbot3 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon demoknight Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "entrance_3_b" Where "entrance_spawn_red_3a" TotalCount 52 MaxActive 6 SpawnCount 1 Support limited TotalCurrency 100 WaitBeforeStarting 1 WaitBetweenSpawns 2 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Demoman_Knight Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } } } } } WaveSpawn { Name FakeSpawn TotalCount 3 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllDead entrance_barrierbot3 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 1 ClassIcon heavy_SHotgun_red Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn{ Name "entrance_3_b" Where "entrance_spawn_red_3b" TotalCount 3 MaxActive 1 SpawnCount 1 Support limited TotalCurrency 100 WaitBeforeStarting 1 WaitBetweenSpawns 20 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Giant_Heavyweapons_Shotgun ClassIcon heavy_SHotgun_red ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_HWG" "bullets per shot bonus" 5 } Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge UseMeleeThreatPrioritization 1 Tag bot_giant AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 "damage force reduction" 0 "voice pitch scale" 0 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "getoutofspawn_2" } } } } } WaveSpawn { Name FakeSpawn TotalCount 40 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllDead entrance_barrierbot3 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon soldier Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "entrance_3_b" Where "entrance_spawn_red_3b" TotalCount 40 MaxActive 12 SpawnCount 1 Support limited TotalCurrency 100 WaitBeforeStarting 1 WaitBetweenSpawns 2 RandomChoice { RandomChoice { TFBot{ Class Soldier Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "getoutofspawn_2" } } } } } WaveSpawn { Name FakeSpawn TotalCount 36 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllDead entrance_barrierbot_last Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon heavy_shotgun_red Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "entrance_last_a" Where "entrance_spawn_red_4a" TotalCount 36 MaxActive 6 SpawnCount 1 Support limited TotalCurrency 100 WaitBeforeStarting 1 WaitBetweenSpawns 2 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Heavyweapons_Shotgun ClassIcon heavy_shotgun_red Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } } } } } WaveSpawn { Name FakeSpawn TotalCount 48 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllDead entrance_barrierbot_last Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon demo Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "entrance_last_b" Where "entrance_spawn_red_4c" TotalCount 48 MaxActive 12 SpawnCount 1 Support limited TotalCurrency 100 WaitBeforeStarting 1 WaitBetweenSpawns 1 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Demoman Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Item "Hazard Headgear" UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } } } } } WaveSpawn { Name FakeSpawn TotalCount 20 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllDead entrance_barrierbot_last Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon heavy Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "entrance_last_b" Where "entrance_spawn_red_4d" TotalCount 20 MaxActive 5 SpawnCount 1 Support limited TotalCurrency 100 WaitBeforeStarting 1 WaitBetweenSpawns 3 RandomChoice { RandomChoice { TFBot{ Class HeavyWeapons Name "Heavy" Skill easy Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } } } } } WaveSpawn { Name FakeSpawn TotalCount 36 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllDead entrance_barrierbot_last Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon scout_stun Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "entrance_last_b" Where "entrance_spawn_red_4b" TotalCount 36 MaxActive 8 SpawnCount 1 Support limited TotalCurrency 100 WaitBeforeStarting 1 WaitBetweenSpawns 1 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Scout_Sandman_FastCharge Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Item "The Hunter in Darkness" UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } } } } } WaveSpawn{ WaitForAllDead "entrance_barrierbot_last" TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target playerResInWave //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action ToggleTest } } WaveSpawn { Name "entrance_win" WaitForAllSpawned "entrance_barrierbot_last" Where "red_win" MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 1 randomChoice{ randomChoice{ TFBot{ Class Scout Scale 1 CharacterAttributes{ "move speed penalty" 0.00001 } AddCond {Name "TF_COND_REPROGRAMMED" } Attributes IgnoreFlag } } } } } Wave { //wave 2 InitWaveOutput { Target encounter_mines_init Action Trigger } StartWaveOutput { Target encounter_mines_start Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } Explanation //Dispayed once the wave is initialized { Line "{f5c542}Encounter_Backup_Security_Protocol reinitialized" Line "{f5c542}Upgrade_vendor: {FFFFFF}Not active during wave" Line "{f5c542}Curr_Directive: {FFFFFF}Stop the Mines" } WaveSpawn{ TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target playerResInWave //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action ToggleTest } } WaveSpawn{ TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target playerResVal3 //set res count to one of 3 set Action GetValue } } WaveSpawn { Name "mine_display_1" Where "mine_spawngroup_2" TotalCount 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 1 ClassIcon encounter_mines Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "mine_display_2" Where "mine_spawngroup_3" WaitForAllDead "mine_display_1" TotalCount 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 1 ClassIcon encounter_mines Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "mine_display_3" Where "mine_spawngroup_4" WaitForAllDead "mine_display_2" TotalCount 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 1 ClassIcon encounter_mines Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "mine_display_4" Where "mine_spawngroup_5" WaitForAllDead "mine_display_3" TotalCount 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 1 ClassIcon encounter_mines Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "mine_display_5" Where "mine_spawngroup_6" WaitForAllDead "mine_display_4" TotalCount 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 1 ClassIcon encounter_mines Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "mine_display_6" WaitForAllDead "mine_display_5" Where "red_win" TotalCount 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 1 ClassIcon encounter_mines Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "mine_bosses" Where "mine_boss" TotalCount 5 MaxActive 1 SpawnCount 1 TotalCurrency 300 WaitBeforeStarting 1 WaitBetweenSpawns 20 TFBot{ Template T_TFBot_Giant_Soldier_Crit Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Item "dec2014 Skullcap" Tag bot_giant UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } ItemAttributes { Itemname "The Original" "no_attack" 1 } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 "damage force reduction" 0 "voice pitch scale" 0 "blast dmg to self increased" 0 } AddAttribute { Item "The Original" Name "no_attack" Value 0 Delay 1 Cooldown 1 Repeats 0 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } WaveSpawn { Name FakeSpawn TotalCount 200 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllSpawned mine_display_1 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon soldier_escapeplan Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name FakeSpawn TotalCount 200 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllSpawned mine_display_1 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon pyro_flare_red Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name FakeSpawn TotalCount 200 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllSpawned mine_display_2 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon heavy_gauntlet_push Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name FakeSpawn TotalCount 200 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllSpawned mine_display_2 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon soldier_blackbox Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name FakeSpawn TotalCount 200 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllSpawned mine_display_2 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon scout_shortstop Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name FakeSpawn TotalCount 200 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllSpawned mine_display_3 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon soldier Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name FakeSpawn TotalCount 200 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllSpawned mine_display_3 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon SCOUT Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name FakeSpawn TotalCount 5 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllSpawned mine_display_3 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 1 ClassIcon demo_sticky_red_DAAN Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name FakeSpawn TotalCount 4 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllSpawned mine_display_4 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 1 ClassIcon pyro Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name FakeSpawn TotalCount 200 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllSpawned mine_display_4 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon heavy_shotgun_red_burst Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name FakeSpawn TotalCount 200 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllSpawned mine_display_4 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon demo_burst_red Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name FakeSpawn TotalCount 5 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllSpawned mine_display_5 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 1 ClassIcon scout Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name FakeSpawn TotalCount 200 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllSpawned mine_display_5 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon demo_sticky_red_daan Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name FakeSpawn TotalCount 200 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllSpawned mine_display_5 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon demoknight Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name FakeSpawn TotalCount 3 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllSpawned mine_display_6 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 1 ClassIcon soldier_spammer Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name FakeSpawn TotalCount 200 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllSpawned mine_display_6 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon scout_nailgun Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name FakeSpawn TotalCount 200 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 1 WaitForAllSpawned mine_display_6 Where bot_suicide PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon sniper_bow Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "mine_1_a" Where "mine_spawngroup_1" TotalCount 200 MaxActive 16 SpawnCount 2 Support limited TotalCurrency 200 WaitBeforeStarting 1 WaitBetweenSpawns 1 RandomChoice { RandomChoice { TFBot{ Class Soldier Name "Escape Plan Soldier" ClassIcon soldier_escapeplan WeaponRestrictions MeleeOnly Item "The Escape Plan" Item "The Lucky Shot" Skill Expert Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } } } WaveSpawn { Name "mine_1_b" Where "mine_spawngroup_1" TotalCount 200 MaxActive 8 SpawnCount 1 Support limited TotalCurrency 200 WaitBeforeStarting 2 WaitBetweenSpawns 3 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Pyro_Flaregun ClassIcon pyro_flare_red Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Item "The Well-Rounded Rifleman" UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "airblast disabled" 1 } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } } } WaveSpawn { Name "mine_2_a" Where "mine_spawngroup_2" TotalCount 80 MaxActive 2 SpawnCount 1 Support limited TotalCurrency 100 WaitBeforeStarting 1 WaitBetweenSpawns 7 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Heavy_IronFist_Airblast ClassIcon heavy_gauntlet_push Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } ItemAttributes { ItemName "Fists of Steel" "damage bonus" 1 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } } } WaveSpawn { Name "mine_2_b" Where "mine_spawngroup_2" TotalCount 100 MaxActive 6 SpawnCount 1 Support limited TotalCurrency 100 WaitBeforeStarting 1 WaitBetweenSpawns 1 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Soldier_RocketShotgun Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } } } WaveSpawn { Name "mine_2_b" Where "mine_spawngroup_2" TotalCount 50 MaxActive 4 SpawnCount 1 Support limited TotalCurrency 50 WaitBeforeStarting 1 WaitBetweenSpawns 10 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Scout_Shortstop Skill Hard MaxVisionRange 750 Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Item "The Hunter in Darkness" UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } } } WaveSpawn { Name "mine_3_a" Where "mine_spawngroup_3" TotalCount 200 MaxActive 3 SpawnCount 1 Support limited TotalCurrency 200 WaitBeforeStarting 1 WaitBetweenSpawns 2 RandomChoice { RandomChoice { TFBot{ Class Soldier Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } } } WaveSpawn { Name "mine_3_b" Where "mine_spawngroup_3" TotalCount 100 MaxActive 8 SpawnCount 1 Support limited TotalCurrency 200 WaitBeforeStarting 1 WaitBetweenSpawns 1 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Scout_Scattergun_SlowFire Name "Scout" ClassIcon SCOUT Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Item "Fortunate Son" UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } } } WaveSpawn { Name "mine_3_b" Where "mine_spawngroup_3" TotalCount 4 MaxActive 2 SpawnCount 1 Support limited TotalCurrency 200 WaitBeforeStarting 1 WaitBetweenSpawns 35 RandomChoice { RandomChoice { TFBot{ Class Demoman Name "Giant Burst Sticky Demo" Health 3300 ClassIcon demo_sticky_red_DAAN MaxVisionRange 1024 Skill Normal Action Mobber Item "The Black Watch" Item "The Quickiebomb Launcher" WeaponRestrictions SecondaryOnly Attributes HoldFireUntilFullReload Attributes MiniBoss FireWeapon { Delay 1 Cooldown 0.5 Repeats 0 Duration 0.1 Type "Secondary" } AimOffset "0 0 -40" ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "override projectile type" 7 "fire rate penalty" 420 "faster reload rate" 420 "is_passive_weapon" 1 "blast dmg to self increased" 0 } ItemAttributes { ItemName "The Quickiebomb Launcher" "sticky arm time bonus" 0.01 "stickybomb charge rate" 0.01 "projectile spread angle penalty" 3 "fire rate bonus" 0.001 "max pipebombs decreased" 4 "faster reload rate" 0.5 "damage bonus" 0.75 } Attributes IgnoreFlag Attributes DisableDodge Tag bot_giant UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 "override footstep sound set" 7 "move speed bonus" 0.5 "damage force reduction" 0 "voice pitch scale" 0 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } } } WaveSpawn { Name "mine_4_a" WaitForAllDead "mine_display_3" Where "mine_spawngroup_4" TotalCount 3 MaxActive 2 SpawnCount 1 Support limited TotalCurrency 200 WaitBeforeStarting 10 WaitBetweenSpawns 40 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Giant_Pyro Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Item "Yeti Park Hardhat" Tag bot_giant UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "airblast disabled" 1 } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 "damage force reduction" 0 "voice pitch scale" 0 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } } } WaveSpawn { Name "mine_4_b" Where "mine_spawngroup_4" TotalCount 200 MaxActive 10 SpawnCount 1 Support limited TotalCurrency 200 WaitBeforeStarting 1 WaitBetweenSpawns 3 RandomChoice { RandomChoice { TFBot{ Class heavyweapons Name "Burst Fire Shotgun Heavy" Action Mobber ClassIcon heavy_shotgun_red_burst WeaponRestrictions SecondaryOnly BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Attributes HoldFireUntilFullReload Item "Panic Attack Shotgun" Item "The Eliminators Safeguard" UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } ItemAttributes { ItemName "Panic Attack Shotgun" "faster reload rate" 0.65 "fire rate bonus" 0.25 "damage bonus" 0.65 "clip size upgrade atomic" 4 } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } } } WaveSpawn { Name "mine_4_c" Where "mine_spawngroup_4" TotalCount 200 MaxActive 4 SpawnCount 1 Support limited TotalCurrency 200 WaitBeforeStarting 1 WaitBetweenSpawns 5 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Demo_Burst ClassIcon demo_burst_red Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Item "Hazard Headgear" UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } } } WaveSpawn { Name "mine_5_a" WaitForAllDead "mine_display_4" Where "mine_spawngroup_5" TotalCount 5 MaxActive 2 SpawnCount 1 Support limited TotalCurrency 200 WaitBeforeStarting 10 WaitBetweenSpawns 25 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Giant_Scout Skill Expert Health 1600 Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Item "Fortunate Son" Tag bot_giant UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 "damage force reduction" 0 "voice pitch scale" 0 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } } } WaveSpawn { Name "mine_5_b" Where "mine_spawngroup_5" TotalCount 200 MaxActive 6 SpawnCount 1 Support limited TotalCurrency 200 WaitBeforeStarting 1 WaitBetweenSpawns 4 RandomChoice { RandomChoice { TFBot{ Class Demoman Name "Burst Sticky Demo" ClassIcon demo_sticky_red_daan MaxVisionRange 800 Skill Normal Action Mobber Item "The Black Watch" Item "The Quickiebomb Launcher" WeaponRestrictions SecondaryOnly Attributes HoldFireUntilFullReload FireWeapon { Delay 1 Cooldown 0.5 Repeats 0 Duration 0.1 Type "Secondary" } AimOffset "0 0 -40" ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "override projectile type" 7 "fire rate penalty" 420 "faster reload rate" 420 "is_passive_weapon" 1 "blast dmg to self increased" 0 } ItemAttributes { ItemName "The Quickiebomb Launcher" "sticky arm time bonus" 0.01 "stickybomb charge rate" 0.01 "projectile spread angle penalty" 3 "fire rate bonus" 0.001 "damage bonus" 0.65 "max pipebombs decreased" 4 "faster reload rate" 0.5 } AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } } } WaveSpawn { Name "mine_5_c" Where "mine_spawngroup_5" TotalCount 200 MaxActive 7 SpawnCount 1 Support limited TotalCurrency 200 WaitBeforeStarting 1 WaitBetweenSpawns 2 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Demoman_Knight Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } } } WaveSpawn { Name "mine_6_a" WaitForAllDead "mine_display_5" Where "mine_spawngroup_6" TotalCount 3 MaxActive 1 SpawnCount 1 Support limited TotalCurrency 200 WaitBeforeStarting 10 WaitBetweenSpawns 40 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Giant_Soldier_Spammer Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Tag bot_giant UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 "damage force reduction" 0 "voice pitch scale" 0 "blast dmg to self increased" 0 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } } } WaveSpawn { Name "mine_6_b" Where "mine_spawngroup_6" TotalCount 200 MaxActive 6 SpawnCount 1 Support limited TotalCurrency 200 WaitBeforeStarting 1 WaitBetweenSpawns 4 RandomChoice { RandomChoice { TFBot{ Template T_TFBot_Sniper_Huntsman Action Mobber Skill Normal BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge Item "The Chronomancer" UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } ItemAttributes { ItemName "The Huntsman" "sniper no headshots" 1 "damage bonus" 0.5 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } } } WaveSpawn { Name "mine_6_c" Where "mine_spawngroup_6" TotalCount 200 MaxActive 8 SpawnCount 2 Support limited TotalCurrency 200 WaitBeforeStarting 1 WaitBetweenSpawns 2 RandomChoice { RandomChoice { TFBot{ Class Scout ClassIcon scout_nailgun Name "Nailgun Scout" Skill Normal Item "The Hunter in Darkness" Item "The Shortstop" Item "Pretty Boy's Pocket Pistol" WeaponRestrictions PrimaryOnly ItemAttributes { ItemName "The Shortstop" "override projectile type" 27 "particle effect use head origin" 1 "particle effect vertical offset" -1000 } ItemAttributes { ItemName "Pretty Boy's Pocket Pistol" "particle effect use head origin" 1 "particle effect vertical offset" -1000 "override projectile type" 5 "is_passive_weapon" 1 //"fire rate bonus" 1 "damage bonus" 0.4 "clip size bonus" 6 } Action Mobber BehaviorModifiers Mobber Attributes IgnoreFlag Attributes DisableDodge UseMeleeThreatPrioritization 1 AddCond {Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } InterruptAction { WaitUntilDone 1 Duration 0 Delay 0.1 Repeats 1 Target "mines_1_base" } } } } } WaveSpawn{ WaitForAllDead "entrance_win" TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target playerResInWave //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action ToggleTest } } WaveSpawn { Name "entrance_win" WaitForAllDead "" Where "red_win" MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 1 randomChoice{ randomChoice{ TFBot{ Class Scout Scale 1 CharacterAttributes{ "move speed penalty" 0.00001 } AddCond {Name "TF_COND_REPROGRAMMED" } Attributes IgnoreFlag } } } } } }