// Made by Snurper_Bob (GoodBob) //Heya this is my first in quotations... "p r o p e r" Rev Mission //kept hearing of the conspired Rev2 so decided to make a rev mission for that... in INT difficulty that is cuz //I suck at ADV and EXP making... sorry //If it dont make it (high as fuck possibility) its okay. sometimes we gotta try! //Lore: Local Giant Engineer keeps getting assaulted by the blu robots and is just in constant agony. #base robot_moonlight.pop #base robot_standard.pop #base robot_giant.pop goodbobsapologycuzicantmakeharderdifficulties:c //WaveSchedule { //Essential stuff yknow StartingCurrency 1100 RespawnWaveTime 9999 CanBotsAttackWhileInSpawnRoom no WaveStartCountdown 5 RespawnWaveTimeBlue 7 //Blue team time ReverseWinConditions 1 FlagCarrierMovementPenalty 0.7 AllowJoinTeamBlue 1 HumansMustJoinTeam Blue SetCreditTeam 3 SniperAllowHeadshots 1 SendBotsToSpectatorImmediately 1 NoRomevisionCosmetics 1 BluHumanFlagCapture 1 BluHumanFlagPickup 1 BluPlayersAreRobots 1 AllowBluPlayerReanimators 1 AllowJoinTeamBlueMax 6 PlayerRobotsUsePlayerAnimation 1 BluHumanInfiniteAmmo 0 BluHumanInfiniteCloak 0 BluHumanTeleportOnSpawn 1 //Misc stuff ForceHoliday 2 FixHuntsmanDamageBonus 1 BotHumansHaveEyeGlow 0 NoRedBotsRandomCrit 1 NoRedSniperBotHeadshots 1 //IMPORTANT PRECACHES PrecacheModel "models/props_skybox/skybox_carrier.mdl" PrecacheModel "models/props_mvm/robot_spawnpoint.mdl" PrecacheModel "models/weapons/c_models/c_tfc_sniperrifle/c_tfc_sniperrifle.mdl" PrecacheModel "models/props_moonbase/radar_outpost01.mdl" PrecacheSound "hhwave1intro.mp3" PrecacheSound "hhwave1.mp3" PrecacheSound "hhwave2intro.mp3" PrecacheSound "hhwave2loop.mp3" PrecacheSound "vo\mvm\norm\engineer_mvm_dominationscout06.mp3" PrecacheSound "items\cart_rolling.wav" PrecacheSound "mvm\mvm_robo_stun.wav" //RedSpawns here //All the spawnies lolz ExtraSpawnPoint { Name "infispawn" TeamNum 2 X 4842.44 Y -263.86 Z 137.03 } ExtraSpawnPoint { Name "spawnpoint1A" TeamNum 2 X -1380.63 Y -16.96 Z 60.40 } ExtraSpawnPoint { Name "spawnpoint1B" TeamNum 2 X 616.06 Y -78.53 Z -100.97 } //Buggy atm ExtraSpawnPoint { Name "spawnpoint2A" TeamNum 2 X 2549.83 Y -1389.57 Z 145.02 } ExtraSpawnPoint { Name "spawnpoint2B" TeamNum 2 X 3191.12 Y -848.95 Z 145.03 } // ExtraSpawnPoint { Name "otherspawn1" TeamNum 2 X 3786.76 Y -1236.70 Z 165.03 } ExtraSpawnPoint { Name "otherspawn2" TeamNum 2 X 1942.37 Y -503.47 Z 110.03 } ExtraSpawnPoint { Name "otherspawn3" TeamNum 2 X 1892 Y 128 Z -290 } PointTemplates { LoseRelay { NoFixup 1 game_round_win //ignore this { "TeamNum" "2" "targetname" "bots_win_red" "switch_teams" "0" "force_map_reset" "1" "classname" "game_round_win" } logic_relay //trigger this { "targetname" "redwin_relay" "OnTrigger" "bots_win_red,RoundWin,,0,-1" } } mapchange { logic_auto { "origin" "0 0 0" "targetname" "mainrelay" "OnMapSpawn" "wave_start_relay*,AddOutput,OnTrigger spawnbarrier:Disable:0:-1,0,-1" "OnMapSpawn" "wave_finished_relay*,AddOutput,OnTrigger spawnbarrier:Enable:0:-1,0,-1" } //TP from the spawnbot to the flank cuz fuck NoFixUp 1 trigger_teleport { "spawnflags" "1" "origin" "980.00 4075.00 308.03" "target" "playerhere" "mins" "-600 -600 -300" "maxs" "600 600 300" } info_teleport_destination { "targetname" "playerhere" "origin" "-1477.41 4022.68 289.03" } } spawnbarriers { //THE LOGIC RELAAAAAAAAYS logic_relay { "targetname" "objective1_complete" "OnTrigger" "objective1,Disable,,0,-1" } logic_relay { "targetname" "objective2_complete" "OnTrigger" "objective2,Disable,,0,-1" } func_forcefield { "targetname" "spawnbarrier" "origin" "-889.35 3725.93 289.99" "angles" "0 90 0" "rendermode" "10" //10 = don't render "TeamNum" "2" //2 for red, 3 for blu "mins" "-500 -50 -300" "maxs" "500 50 900" //300x300 hu cube } prop_dynamic { "targetname" "spawnbarrier" "model" "models/props_mvm/reversemvm_redwall_640x418.mdl" "angles" "0 0 0" "rendercolor" "255 255 255" "renderamt" "255" "solid" "0" "origin" "-889.35 3725.93 289.99" } } barrierwave1 { //Objective barriers //First Barrier // NoFixUp 1 func_forcefield { "targetname" "objective1" "origin" "-771.06 1098.65 188.77" //rottenburg spawn "angles" "0 0 0" "rendermode" "10" //10 = don't render "TeamNum" "2" //2 for red, 3 for blu "mins" "-3000 -50 -300" "maxs" "3000 -50 500" //300x300 hu cube } prop_dynamic { "targetname" "objective1" "model" "models/props_mvm/reversemvm_redwall_640x418.mdl" "angles" "0 0 0" "rendercolor" "255 255 255" "renderamt" "255" "solid" "0" "origin" "123.50 1033.28 129.03" } prop_dynamic { "targetname" "objective1" "model" "models/props_mvm/reversemvm_redwall_640x418.mdl" "angles" "0 0 0" "rendercolor" "255 255 255" "renderamt" "255" "solid" "0" "origin" "-771.06 1098.65 188.77" } //SecondBarrier func_forcefield { "targetname" "objective2" "origin" "3804.32 -712.65 28.03" //rottenburg spawn "angles" "0 0 0" "rendermode" "10" //10 = don't render "TeamNum" "2" //2 for red, 3 for blu "mins" "-135 -135 -135" "maxs" "135 135 135" //300x300 hu cube } prop_dynamic { "targetname" "objective2" "model" "models/props_mvm/hatch_shield.mdl" "angles" "0 0 0" // "modelscale" "2.1" "rendercolor" "255 255 255" "renderamt" "255" "solid" "2" "origin" "3804.32 -712.65 28.03" } } upgradestation { //The upgradestation is a carrier tank? prop_dynamic { "targetname" "tankstationlol" "model" "models/props_skybox/skybox_carrier.mdl" "origin" "-782.35 3986.84 221.94" "modelscale" "1.3" "angles" "0 79 0" } prop_dynamic //blu upgrade station model, can be found on potato servers { "targetname" "upgradestation" "model" "models\props_mvm\mvm_upgrade_blu.mdl" "origin" "-782.35 3986.84 231.94" "angles" "0 166 0" "modelscale" "0.6" } NoFixup 1 func_upgradestation //upgrade station entity { "mins" "-105 -100 0" "maxs" "105 100 242" "origin" "-782.35 3986.84 221.94" "angles" "0 79 0" "solid" "0" } } // botlocations (currently confusing to set up) // { // //big1 // prop_dynamic // { // "angles" "0 0 0" // "model" "models/props_mvm/robot_spawnpoint.mdl" // "modelscale" "1.0" // "rendercolor" "255 255 255" // "solid" "0" // "origin" "406.01 -838.73 390.19" // } // //big2a // prop_dynamic // { // "angles" "0 0 0" // "model" "models/props_mvm/robot_spawnpoint.mdl" // "modelscale" "1.0" // "rendercolor" "255 255 255" // "solid" "0" // "origin" "-907.67 1386.68 90.06" // } // //big2b // prop_dynamic // { // "angles" "0 0 0" // "model" "models/props_mvm/robot_spawnpoint.mdl" // "modelscale" "1.0" // "rendercolor" "255 255 255" // "solid" "0" // "origin" "1252.48 631.82 90.03" // } // //big3 // prop_dynamic // { // "angles" "0 0 0" // "model" "models/props_mvm/robot_spawnpoint.mdl" // "modelscale" "1.0" // "rendercolor" "255 255 255" // "solid" "0" // "origin" "3177.60 -832.85 -108.97" //-25 // } // } textualtimer { OnSpawnOutput { Param 6 // change the value for minutes Target minutehand Action SetValue } OnSpawnOutput { Param 59 // change the value for seconds Target secondhand Action SetValue } logic_relay { "targetname" "loserelay" "startdisabled" "1" "ontrigger" "bots_win_red,RoundWin,,2,-1" "ontrigger" "realtimer,cancelpending,,2,-1" "onspawn" "wave_start*,addoutput,ontrigger realtimer:trigger::0:-1,0,-1" "onspawn" "wave_finish*,addoutput,ontrigger realtimer:cancelpending::0:-1,0,-1" "onspawn" "wave_finish*,addoutput,ontrigger loserelay:cancelpending::0:-1,0,-1" } NoFixup 1 math_counter { "targetname" "minutehand" "max" "9999" "outvalue" "timerformat,$setkey$case01,,0,-1" "onhitmin" "loserelay,enable,,1,-1" } math_counter { "targetname" "secondhand" "max" "60" "outvalue" "timerformat,$setkey$case02,,0,-1" "outvalue" "zerocompare,setvaluecompare,,0,-1" "onhitmin" "loserelay,trigger,,0,-1" "onhitmin" "!self,setvalue,60,1,-1" "onhitmin" "minutehand,subtract,1,1,-1" } logic_compare { "targetname" "zerocompare" "comparevalue" "9" "onequalto" "timerformat,$setkey$case16,%:0%,0,-1" "ongreaterthan" "timerformat,$setkey$case16,%:%,0,-1" } logic_case { "targetname" "timerformat" "case16" "%:%" "ondefault" "timertext,$setkey$message,,0,-1" "ondefault" "timertext,display,0,0,-1" } game_text { "targetname" "timertext" "color" "65 155 255" "holdtime" "2" "spawnflags" "1" "x" "0.7" "y" "0.9" } logic_relay { "targetname" "realtimer" "spawnflags" "2" "ontrigger" "timerformat,$format,,0.01,-1" "ontrigger" "secondhand,subtract,1,1,-1" //it doubles for some reason lol, also second should be 0.5 not 0 "ontrigger" "!self,trigger,,1,-1" } game_round_win { "teamnum" "2" "targetname" "bots_win_red" "force_map_reset" "1" } } hologramactivator { //Reactivating the holograms to lead players where to go logic_relay { "targetname" "hologramactivate" "OnTrigger" "bombpath_a_arrow,Enable,,0.22,-1" "OnTrigger" "bombpath_b_arrow,Enable,,0.22,-1" } } Wave1musicdealer { //Wave1musicdealer logic_relay { "targetname" "music1" "spawnflags" "2" "OnTrigger" "intro,PlaySound,,0,-1" "OnTrigger" "intro,StopSound,,135,-1" "OnTrigger" "music1loop,Trigger,,137,-1" } //Loop logic_relay { "targetname" "music1loop" "spawnflags" "2" "OnTrigger" "wave1,PlaySound,,0,-1" "OnTrigger" "musiclooper,Trigger,,126,-1" } //Loop handler logic_relay { "targetname" "musiclooper" "spawnflags" "2" "OnTrigger" "wave1,StopSound,,0.2,-1" "OnTrigger" "music1loop,Trigger,,0.22,-1" } //Music Stop logic_relay { "targetname" "wave_finished_relay" "OnTrigger" "music1loop,Disable,,0,-1" "OnTrigger" "musiclooper,Disable,,0,-1" "OnTrigger" "wave1,StopSound,,0,-1" } // //Music time AAAAAAAAAAAAAAA ambient_generic { "targetname" "intro" "message" "#hhwave1intro.mp3" "health" "10" "pitch" "100" "spawnflags" "17" } ambient_generic { "targetname" "wave1" "message" "#hhwave1.mp3" "health" "10" "pitch" "100" "spawnflags" "17" } } Wave2musicdealer { //Wave2musicdealer logic_relay { "targetname" "music" "spawnflags" "2" "OnTrigger" "intro,PlaySound,,0,-1" "OnTrigger" "intro,StopSound,,160,-1" "OnTrigger" "musicloop,Trigger,,160,-1" } //Loop logic_relay { "targetname" "musicloop" "spawnflags" "2" "OnTrigger" "wave1,PlaySound,,0.1,-1" "OnTrigger" "musiclooper,Trigger,,123,-1" } //Loop handler logic_relay { "targetname" "musiclooper" "spawnflags" "2" "OnTrigger" "wave1,StopSound,,0.2,-1" "OnTrigger" "musicloop,Trigger,,0.22,-1" } //Music Stop logic_relay { "targetname" "wave_finished_relay" "OnTrigger" "musicloop,Disable,,0,-1" "OnTrigger" "musiclooper,Disable,,0,-1" "OnTrigger" "wave1,StopSound,,0,-1" } // //Music time AAAAAAAAAAAAAAA ambient_generic { "targetname" "intro" "message" "#hhwave2intro.mp3" "health" "10" "pitch" "100" "spawnflags" "17" } ambient_generic { "targetname" "wave1" "message" "#hhwave2loop.mp3" "health" "10" "pitch" "100" "spawnflags" "17" } } intelbuffing { //UPDATE: acts weird and goober // prop_dynamic // { // "targetname" "classbuffer" // "Model" "models\props_gameplay\cap_square_512.mdl" // "skin" "2" // "solid" "0" // "origin" "-1816.57 4077.82 295.03" // "angles" "0 0 84" // "modelscale" "0.65" // "disableshadows" "1" // "parentname" "intel" // } //TEAM GETS THE BUFFS (condition tactic) filter_activator_tfteam { "targetname" "bluteamonly" "TeamNum" "3" "Negated" "0" } // filter_activator_tfteam // { // "targetname" "bluteamdemise" // "TeamNum" "3" // "Negated" "0" // } trigger_add_tf_player_condition { "targetname" "buffteammates" "filtername" "bluteamonly" "origin" "-1816.57 4077.82 295.03" "spawnflags" "1" "condition" "19" "duration" "-1" "mins" "-240 -240 -240" "maxs" "240 240 240" "parentname" "intel" } // trigger_stun // { // "targetname" "buffteammates" //same lazy lol // "filtername" "bluteamdemise" // "spawnflags" "1" // "stun_duration" "0.7" // "stun_effects" "1" // "stun_type" "2" // "mins" "-100 -100 -100" // "maxs" "100 100 100" // } } nodeappears { OnSpawnOutput { Target nodehere Action show Delay 0.2 } training_annotation { "targetname" "nodehere" "display_text" "A Force-Field Node has appeared!" "lifetime" "4" } } healthappears { OnSpawnOutput { Target nodehere Action show Delay 0.2 } OnParentKilledOutput { Target healup Action Trigger Delay 0.02 } KeepAlive 1 training_annotation { "targetname" "nodehere" "display_text" "A Health Node has appeared! Destroy it to regain Payload Health!" "lifetime" "4" } logic_relay { "targetname" "healup" "OnTrigger" "payloadtank*,AddHealth,3000,0.02,-1" } } //so payload of these templates... can you believe it guys? Payload! just a week away! payloadtank { //Nodes here OnSpawnOutput { Target nodehere Action show Delay 0.2 } training_annotation { "targetname" "nodehere" "display_text" "Payload has appeared! Start pushing!" "lifetime" "4" } // OnSpawnOutput { Target kaboomtime Action Trigger } OnSpawnOutput { Target tankhere Action SetParent Param !activator Delay 0.02 } OnParentKilledOutput { Target "tankrequirements" Action Kill } OnParentKilledOutput { Target "tankrequirementslegs" Action Kill } OnParentKilledOutput { Target healzone Action Kill } info_target { "targetname" "tankhere" "origin" "0 0 0" } //THE DESIGNS AND MODELS prop_dynamic { "targetname" "tankrequirements" "model" "models/props_trainyard/bomb_cart.mdl" "angles" "0 180 0" "solid" "0" "origin" "0 0 44" } prop_dynamic { "targetname" "tankrequirementslegs" "model" "models/bots/boss_bot/tank_track_l.mdl" // "angles" "0 180 0" "solid" "0" "modelscale" "0.6" "origin" "0 29 8" } prop_dynamic { "targetname" "tankrequirementslegs" "model" "models/bots/boss_bot/tank_track_l.mdl" // "angles" "0 180 0" "solid" "0" "modelscale" "0.6" "origin" "0 -29 8" } //Moving the tank trigger_multiple { "targetname" "movezone" "spawnflags" "1" "origin" "0 0 0" "mins" "-300 -300 -300" "maxs" "300 300 300" "filtername" "bluteamonly" "OnEndTouchAll" "payloadtank*,SetSpeed,0,0,-1" "OnEndTouchAll" "tankrequirementslegs,SetAnimation,ref,0.20,-1" "OnStartTouchAll" "payloadtank*,SetSpeed,55,0,-1" "OnStartTouchAll" "tankrequirementslegs,SetAnimation,forward,0.20,-1" } //The healing rad dispenser_touch_trigger { "targetname" "healzonerange" "origin" "0 0 0" "mins" "-350 -350 -500" "maxs" "350 350 500" } mapobj_cart_dispenser { "targetname" "healzone" "origin" "-30 0 50" "defaultupgrade" "2" "spawnflags" "14" "SolidToPlayer" "0" "touch_trigger" "healzonerange" "TeamNum" "3" "renderamt" "255" "rendercolor" "255 255 255" } //suddenly the door blows up logic_relay { "targetname" "kaboomtime" "OnTrigger" "tankdoor_fx,Kill,,1,-1" "OnTrigger" "tankdoor_fx,Start,,0,-1" "OnTrigger" "tankdoor,Disable,,0,-1" "OnTrigger" "tank_explosion_wav,PlaySound,,0,-1" "OnTrigger" "tank_explosion_wav,Kill,,2,-1" "OnTrigger" "tankdoor_actual,Kill,,0.2,-1" "OnTrigger" "tankdoor_actual,Open,,0,-1" } } payloadjammer { OnParentKilledOutput { Target "offjam" Action Trigger } OnParentKilledOutput { Target "healerup" Action Trigger } OnSpawnOutput { Target "nodetime" Action Show } training_annotation { "targetname" "nodetime" "display_text" "This enemy is jamming the payload? DESTROY IT!" "lifetime" "7" } logic_relay { "targetname" "payjam" "OnSpawn" "movezone,Disable,,0.02,-1" "OnSpawn" "healzone,Disable,,0.02,-1" "OnSpawn" "healzonerange,Disable,,0.02,-1" "OnSpawn" "tankrequirementsrad,Enable,,0.02,-1" } KeepAlive 1 logic_relay { "targetname" "offjam" "OnTrigger" "movezone,Enable,,0.02,-1" "OnTrigger" "healzone,Enable,,0.02,-1" "OnTrigger" "healzonerange,Enable,,0.02,-1" "OnTrigger" "tankrequirementsrad,Kill,,0.02,-1" } logic_relay { "targetname" "healerup" "OnTrigger" "payloadtank*,AddHealth,2000,0.02,-1" } } payloadstuck { prop_dynamic { "targetname" "tankrequirementsrad" "model" "models/props_mvm/hatch_shield.mdl" "modelscale" "0.9" "origin" "0 0 -14" "solid" "0" "StartDisabled" "1" } prop_dynamic { "targetname" "tankrequirementsrad" "model" "models\props_gameplay\cap_square_512.mdl" "skin" "1" "modelscale" "0.9" "solid" "0" "origin" "0 0 32" "StartDisabled" "1" } } } SpawnTemplate mapchange SpawnTemplate spawnbarriers SpawnTemplate upgradestation SpawnTemplate intelbuffing SpawnTemplate LoseRelay Wave //WAVE 1 HERE { SpawnTemplate textualtimer SpawnTemplate hologramactivator SpawnTemplate Wave1musicdealer SpawnTemplate barrierwave1 StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } Explanation //(update: irrelevant unless not) { line "{ffcccb}Although the bomb doesn't grant OP buffs, the bomb will provide a radial mini-crit buff." line "{99CCFF}BLU reanimators are available!" } WaveSpawn { //Dummy to activate nessecaryasidhasda logic relays and stuff TotalCount 1 MaxActive 1 SpawnCount 1 where spawnbot Support Limited StartWaveOutput { Target hologramactivate Action Trigger } RandomChoice { Squad { TFBot { Class Scout FireInput { Delay 0.02 Target music1 Action Trigger } FireInput { Delay 0.04 Target realtimer Action Trigger } FireInput { Delay 0.2 Target !activator Action $suicide } } } } } WaveSpawn { //The Infinity troopers WaitForAllDead a2 TotalCount 999 MaxActive 8 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0.7 Where infispawn TFBot { Template T_TFBot_Scout_Cola_Bat Action Mobber Attributes DisableDodge ItemAttributes { ItemName "crit-a-cola" "effect bar recharge rate increased" 0.45 } AddCond { Index 43 } } } WaveSpawn //first objective normals { Name a1 TotalCurrency 150 TotalCount 30 MaxActive 6 SpawnCount 2 WaitBeforeStarting 1 WaitBetweenSpawns 1.3 Where spawnpoint1A Where spawnpoint1B TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ ClassIcon heavy_champ_red Action Mobber Attributes DisableDodge Skill Hard AddCond { Index 43 } } } WaveSpawn //first objective normals { Name a1 TotalCurrency 100 TotalCount 4 MaxActive 1 SpawnCount 1 WaitBeforeStarting 12 WaitBetweenSpawns 1 Where spawnpoint1A Where spawnpoint1B TFBot { Template T_TFBot_Sniper_Huntsman Attributes MiniBoss Health 1500 Action Mobber Skill Hard CharacterAttributes { "move speed bonus" 0.6 "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "override footstep sound set" 5 } AddCond { Index 43 } } } WaveSpawn { Name a1trigger TotalCurrency 100 TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 30 Where spawnpoint1A Where spawnpoint1B TFBot { Template T_TFBot_Giant_Soldier Action Mobber AddCond { Index 43 } } } WaveSpawn { Name a1gate WaitForAllDead a1trigger TotalCurrency 150 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnpoint1B DoneMessage "Force-Field Bot defeated. Onwards!" DoneOutput { Target "objective1_complete" Action Trigger } Squad { TFBot { SpawnTemplate nodeappears Template T_TFBot_Giant_Soldier ClassIcon soldier_spammer AlwaysGlow 1 Name "Force-field Node Keeper" Tag bot_giant Health 5500 Action Mobber Attributes AlwaysFireWeapon Attributes UseBossHealthBar Item "MvM GateBot Light Soldier" ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "clip size upgrade atomic" 999 "fire rate penalty" 0.80 "reload time decreased" 0.01 } AddCond { Index 43 } } //Update: there were suppose to be medics lol but thats dum } } //Second Objective WaveSpawn { WaitForAllDead a1gate TotalCurrency 100 TotalCount 18 MaxActive 6 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0.8 Where infispawn TFBot { Class Soldier ClassIcon heavy_shotgun_red WeaponRestrictions SecondaryOnly Action Mobber AddCond { Index 43 } } } WaveSpawn { WaitForAllDead a1gate TotalCurrency 150 TotalCount 24 MaxActive 6 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 0.9 Where spawnpoint2A Where spawnpoint2B TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ ClassIcon heavy_champ_red Action Mobber Attributes DisableDodge Skill Hard AddCond { Index 43 } } } WaveSpawn { Name a2 WaitForAllDead a1gate TotalCurrency 100 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 34 WaitBetweenSpawns 0.8 Where spawnpoint2A TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun AlwaysGlow 1 ClassIcon heavy_shotgun_red_giant WeaponRestrictions SecondaryOnly Attributes HoldFireUntilFullReload Action Mobber AddCond { Index 43 } } } WaveSpawn { Name a2 WaitForAllDead a1gate TotalCurrency 150 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 13 WaitBetweenSpawns 0.8 Where spawnpoint2A TFBot { Template T_TFBot_Giant_Scout_Baseball Action Mobber AddCond { Index 43 } } } WaveSpawn { Name a2gate WaitForAllDead a2 TotalCurrency 200 TotalCount 1 MaxActive 1 SpawnCount 1 Where infispawn StartWaveWarningSound "vo\mvm\norm\engineer_mvm_dominationscout06.mp3" DoneMessage "Final Force-Filed Node Destroyed! Deploy the BOMB!!!" DoneOutput { Target objective2_complete Action Trigger } TFBot { SpawnTemplate nodeappears Class Engineer AlwaysGlow 1 Name "Maintenance Engineer" ClassIcon engineer_ranger_red_nys Action Mobber WeaponRestrictions PrimaryOnly Item "The Rescue Ranger" Scale 1.5 Health 5500 Item "MvM GateBot Light Engineer" Item "Lawnmaker" Attributes AlwaysCrit Attributes MiniBoss Attributes HoldFireUntilFullReload Attributes UseBossHealthBar DesiredAttackRange 90 InterruptAction { Target "3647.03 -505.65 81.03" // Name "a" Delay 1 Repeats 999 Cooldown 1 Duration 60 Distance 50 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } AddCond { Index 43 } } } } //WAVE 2 :) Wave { SpawnTemplate Wave2musicdealer StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } Explanation //(update: boobs) { line "{ffcccb}This wave brings in a special payload! gather close to the payload to keep it moving to the hatch!" Line "{DC143C}WARNING: If the payload is destroyed, we lose!" line "{DC143C}WARNING: The Engineer bot has set up some sneaky infinite spawnpoint so keep your guards up!" Line "The Medic is actually a Health Node! Killing it regains health for the Payload!" } WaveSpawn { //Dummy to activate nessecaryasidhasda logic relays and stuff TotalCount 1 MaxActive 1 SpawnCount 1 where spawnbot Support Limited StartWaveOutput { Target hologramactivate Action Trigger } RandomChoice { Squad { TFBot { Class Scout FireInput { Delay 0.02 Target music Action Trigger } FireInput { Delay 0 Target intel Action Disable } FireInput { Delay 0.2 Target !activator Action $suicide } } } } } //the tank WaveSpawn { //PAYLOAD TANK WOOOOOOOOOOOOOOOOO TotalCount 1 SpawnCount 1 MaxActive 1 Tank { Speed 1 ClassIcon payload_blu Scale 0.6 Health 13000 NoScreenShake 1 Name "payloadtank" Model "models/empty.mdl" SpawnTemplate payloadtank SpawnTemplate payloadstuck NoCrushDamage 1 DisableSmokestack 1 DisableTracks 1 DisableChildModels 1 EngineLoopSound "no" PingSound "weapons\sentry_scan.wav" StartingPathTrackNode tank_path_a28 OnKilledOutput { Target redwin_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } //Early wave enemies WaveSpawn { Name a1 TotalCount 2 TotalCurrency 100 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 6 Where spawnpoint1A TFBot { Template T_TFBot_Giant_Soldier Action Mobber AddCond { Index 43 } } } WaveSpawn { Name a1 TotalCurrency 100 TotalCount 15 MaxActive 5 SpawnCount 5 WaitBeforeStarting 23 WaitBetweenSpawns 3 Where spawnpoint1A Where spawnpoint1B TFBot { Template T_TFBot_Demoknight_Zatoichi Name "Half-Zatoichi Conch-Knight" Health 150 WeaponRestrictions MeleeOnly ClassIcon demoknight_conch_lite Action Mobber Item "The Concheror" Item "Demo Kabuto" Attributes SpawnWithFullCharge AddCond { Index 43 } CharacterAttributes { "increase buff duration" 30 } } } //HEALTH NODE! WaveSpawn { WaitForAllDead a1 TotalCount 1 Where spawnpoint1B DoneMessage "{99CCFF}5000 Payload Health Regaining!" TFBot { Template T_TFBot_Giant_Soldier SpawnTemplate healthappears Name "Health Node" Health 3500 ClassIcon medic AlwaysGlow 1 Action Idle Attributes UseBossHealthBar Item "MvM GateBot Light Soldier" AddCond { Index 43 } } } WaveSpawn { Name a2 WaitForAllSpawned a1 TotalCurrency 100 TotalCount 1 WaitBeforeStarting 26 WaitBetweenSpawns 0 FirstSpawnWarningSound "mvm\mvm_robo_stun.wav" Where otherspawn2 TFBot { Template T_TFBot_Giant_Demoman_Stickybomb_BurstFire SpawnTemplate payloadjammer AlwaysGlow 1 Skill Normal Action Mobber ClassIcon demo_sticky_red_burst_daan Item "Roaming Roman" AddCond { Index 43 } } } WaveSpawn { WaitForAllSpawned a1 TotalCurrency 100 TotalCount 16 MaxActive 4 SpawnCount 1 Where spawnpoint1B WaitBeforeStarting 14 WaitBetweenSpawns 1.2 TFBot { Template T_TFBot_Sniper_SMG Name "Assault Sniper" Skill Normal Item "The Cleaner's Carbine" Action Mobber WeaponRestrictions SecondaryOnly Item "Preventative Measure" Item "dec2014 hunter_ushanka" ItemAttributes { ItemName "The Cleaner's Carbine" Model "models/weapons/c_models/c_tfc_sniperrifle/c_tfc_sniperrifle.mdl" } AddCond { Index 43 } } } WaveSpawn { Name a3 WaitForAllDead a2 TotalCount 1 TotalCurrency 150 WaitBetweenSpawns 0 WaitBeforeStarting 1 Where otherspawn1 TFBot { Template T_TFBot_Giant_Heavyweapons Skill Easy Action Mobber AlwaysGlow 1 AddCond { Index 43 } } } WaveSpawn { WaitForAllDead a2 TotalCurrency 100 TotalCount 1 WaitBeforeStarting 3 Where otherspawn3 WaitBeforeStarting 10 TFBot { Template T_TFBot_Giant_Pyro Skill Easy Action Mobber AddCond { Index 43 } } } WaveSpawn { WaitForAllDead a2 TotalCurrency 100 TotalCount 10 MaxActive 5 SpawnCount 1 WaitBeforeStarting 0.1 WaitBetweenSpawns 0.9 Where otherspawn1 TFBot { Template T_TFBot_Scout_Fish ClassIcon scout_bat_nys Action Mobber AddCond { Index 43 } } } //Infinity enemies here WaveSpawn { TotalCount 999 MaxActive 5 SpawnCount 1 WaitBetweenSpawns 0.4 Where infispawn Where spawnpoint1B TFBot { Template T_TFBot_Soldier_Equalizer Action Mobber Skill Expert Attributes DisableDodge Item "The Man in Slacks" Item "Point and Shoot" AddCond { Index 43 } } } WaveSpawn { WaitForAllDead a1 TotalCount 999 MaxActive 3 SpawnCount 1 WaitBetweenSpawns 2.4 Where infispawn Where spawnpoint1B TFBot { Class Soldier Action Mobber Skill Easy Attributes DisableDodge Item "The Man in Slacks" Item "Thousand-Yard Stare" AddCond { Index 43 } } } } }