#base robot_giant.pop #base robot_standard.pop #base robot_gatebot.pop #base conga_weapons_v3.pop //Mission by Conga Dispenser //Icons and map by Bazooks population { StartingCurrency 1000 RespawnWaveTime 4 CanBotsAttackWhileInSpawnRoom no AddSentryBusterWhenKillCountExceeds 15 Mission { Where spawnbot_a Objective DestroySentries InitialCooldown 30 CooldownTime 30 BeginAtWave 1 RunForThisManyWaves 6 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster Tag dont_highlight } } PointTemplates { WaveStartRelays { logic_relay { "targetname" "wave_start_relay_wave1" "OnTrigger" "wave_start_relay,Trigger,,0,-1" "OnTrigger" "warningofsoldierspawn1,PlaySound,,0,-1" "OnTrigger" "warningofdemospawn1,PlaySound,,2,-1" } logic_relay { "targetname" "wave_start_relay_wave2" "OnTrigger" "wave_start_relay,Trigger,,0,-1" "OnTrigger" "warningofdemospawn1,PlaySound,,0,-1" "OnTrigger" "warningofsoldierspawn1,PlaySound,,2,-1" } logic_relay { "targetname" "wave_start_relay_wave3" "OnTrigger" "wave_start_relay,Trigger,,0,-1" "OnTrigger" "warningofsoldierspawn1,PlaySound,,0,-1" "OnTrigger" "warningofdemospawn1,PlaySound,,2,-1" } logic_relay { "targetname" "warnforsoldiers" "OnTrigger" "warningofsoldierspawn2,PlaySound,,0,-1" "OnTrigger" "soldierwarning,Show,,5,-1" } logic_relay { "targetname" "warnfordemos" "OnTrigger" "warningofdemospawn2,PlaySound,,0,-1" "OnTrigger" "demowarning,Show,,5,-1" } logic_relay { "targetname" "warnforsuperscout" "OnTrigger" "warningofsuperscout,PlaySound,,0,-1" } logic_relay { "targetname" "soldierfailure" "OnTrigger" "endingofsoldierspawn1,PlaySound,,0,-1" } logic_relay { "targetname" "demofailure" "OnTrigger" "endingofdemospawn1,PlaySound,,0,-1" } logic_relay { "targetname" "soldierfailurefinal" "OnTrigger" "endingofsoldierspawn2,PlaySound,,0,-1" } logic_relay { "targetname" "demofailurefinal" "OnTrigger" "endingofdemospawn2,PlaySound,,0,-1" } logic_relay { "targetname" "boss_intro" "OnTrigger" "tf_gamerules,PlayVO,mvm/giant_heavy/giant_heavy_entrance.wav,1.1,-1" // "OnTrigger" "tf_gamerules,PlayVO,mvm/giant_heavy/giant_heavy_entrance.wav,1.1,-1" "OnTrigger" "tf_gamerules,PlayVO,npc\combine_gunship\ping_patrol.wav,1.9,-1" "OnTrigger" "bosslines1,PlaySound,,0,-1" "OnTrigger" "bosslines2,PlaySound,,2,-1" "OnTrigger" "bosslines3,PlaySound,,3,-1" "OnTrigger" "bosslines4,PlaySound,,4,-1" "OnTrigger" "player,$DisplayTextChat,{yellow}///NOW PLAYING: nothing yet///,0.5,-1" "OnTrigger" "player,$DisplayTextChat,{FFFF00}TIP: When one boss is defeated the other will heal and gain minicrits! Some attacks might get stronger too!,5,-1" } } bossintrotext { OnSpawnOutput { Target "boss_intro" Action "Trigger" Delay 0 } OnSpawnOutput { Target "bosstime" Action "PlaySound" Delay 0.5 } OnSpawnOutput { Target "upper_text1" Action "Display" Delay 0 } OnSpawnOutput { Target "text_lower1" Action "Display" Delay 2.1 } OnSpawnOutput { Target "upper_text2" Action "Display" Delay 3 } OnSpawnOutput { Target "text_lower2" Action "Display" Delay 5.1 } game_text { "origin" "1984 1984 99999" "targetname" "upper_text1" "message" "SCREAM INDUCING SCOTTSMAN" "x" "-1" "y" "0.35" "spawnflags" "1" "effect" "2" "channel" "2" "color" "255 255 255" "fxtime" "0.2" "fadeout" "1" //"fadein" "0" "holdtime" "8" } game_text { "origin" "1208 2036 99999" "targetname" "text_lower1" "message" "JOHNATHAN" "x" "-1" "y" "0.4" "channel" "1" "spawnflags" "1" "color" "255 155 155" "fadein" "0.2" "fadeout" "1" "holdtime" "6.8" } game_text { "origin" "1984 1984 99999" "targetname" "upper_text2" "message" "COLONEL OF THE 31ST BLAST REGIMENT" "x" "-1" "y" "0.5" "spawnflags" "1" "effect" "2" "channel" "3" "color" "255 255 255" "fxtime" "0.2" "fadeout" "1" //"fadein" "0" "holdtime" "5" } game_text { "origin" "1208 2036 99999" "targetname" "text_lower2" "message" "GREGORY" "x" "-1" "y" "0.55" "channel" "4" "spawnflags" "1" "color" "155 155 255" "fadein" "0.2" "fadeout" "1" "holdtime" "3.8" } } SpawnWarnings { ambient_generic { "targetname" "warningofsuperscout" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/scout_mvm_m_battlecry02.mp3" }ambient_generic { "targetname" "warningofsuperscout" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/scout_mvm_m_battlecry02.mp3" } ambient_generic { "targetname" "warningofsoldierspawn1" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/soldier_mvm_m_battlecry03.mp3" }ambient_generic { "targetname" "warningofsoldierspawn1" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/soldier_mvm_m_battlecry03.mp3" } ambient_generic { "targetname" "warningofdemospawn1" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/demoman_mvm_m_battlecry02.mp3" } ambient_generic { "targetname" "warningofdemospawn1" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/demoman_mvm_m_battlecry02.mp3" } ambient_generic { "targetname" "warningofsoldierspawn2" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/soldier_mvm_m_battlecry05.mp3" } ambient_generic { "targetname" "warningofsoldierspawn2" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/soldier_mvm_m_battlecry05.mp3" } ambient_generic { "targetname" "warningofdemospawn2" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/demoman_mvm_m_battlecry05.mp3" } ambient_generic { "targetname" "warningofdemospawn2" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/demoman_mvm_m_battlecry05.mp3" } //DEFEAT LINES ambient_generic { "targetname" "endingofsoldierspawn1" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/soldier_mvm_m_jeers06.mp3" } ambient_generic { "targetname" "endingofsoldierspawn1" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/soldier_mvm_m_jeers06.mp3" } ambient_generic { "targetname" "endingofdemospawn1" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/demoman_mvm_m_jeers05.mp3" } ambient_generic { "targetname" "endingofdemospawn1" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/demoman_mvm_m_jeers05.mp3" } ambient_generic { "targetname" "endingofsoldierspawn2" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/soldier_mvm_m_jeers02.mp3" } ambient_generic { "targetname" "endingofsoldierspawn2" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/soldier_mvm_m_jeers02.mp3" } ambient_generic { "targetname" "endingofdemospawn2" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/demoman_mvm_m_jeers07.mp3" } ambient_generic { "targetname" "endingofdemospawn2" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/demoman_mvm_m_jeers07.mp3" } //HUDHINTS training_annotation { "targetname" "soldierwarning" "lifetime" "3" "display_text" "The soldiers are recommencing their assault!" "origin" "-768 320 896" } training_annotation { "targetname" "demowarning" "lifetime" "3" "display_text" "The demomen are recommencing their assault!" "origin" "704 -170 864" } //BOSS ENTRY LINES ambient_generic { "targetname" "bosslines1" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/demoman_mvm_m_laughevil02.mp3" } ambient_generic { "targetname" "bosslines2" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/soldier_mvm_m_kaboomalts03.mp3" } ambient_generic { "targetname" "bosslines3" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/soldier_mvm_m_laughevil01.mp3" } ambient_generic { "targetname" "bosslines4" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/demoman_mvm_m_jeers01.mp3" }ambient_generic { "targetname" "bosslines1" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/demoman_mvm_m_laughevil02.mp3" } ambient_generic { "targetname" "bosslines2" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/soldier_mvm_m_kaboomalts03.mp3" } ambient_generic { "targetname" "bosslines3" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/soldier_mvm_m_laughevil01.mp3" } ambient_generic { "targetname" "bosslines4" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/demoman_mvm_m_jeers01.mp3" } } MissionName { logic_auto { "OnMapSpawn" "tf_objective_resource,$SetClientProp$m_iszMvMPopfileName,class warfare (EXPERT),0,-1" } point_populator_interface { "targetname" "pop_interface" } filter_tf_bot_has_tag { "targetname" "demotag" "tags" "DemomanSide" } filter_tf_bot_has_tag { "targetname" "soldiertag" "tags" "SoldierSide" } filter_activator_tfteam { "targetname" "redteam" "teamnum" "2" } filter_activator_tfteam { "targetname" "blueteam" "teamnum" "3" } } AttackWarnings { //DEMO ATTACKS ambient_generic { "targetname" "rollerwarning" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/demoman_mvm_m_specialcompleted10.mp3" }ambient_generic { "targetname" "rollerwarning" "health" "10" "pitch" "100" "spawnflags" "17" "message" "vo/mvm/mght/demoman_mvm_m_specialcompleted10.mp3" } } DemomanBossAttachments { OnParentKilledOutput { Target SoldierVictory Action Trigger } tf_point_weapon_mimic //Make the robots :steamhappy: from how effective this is on randoms { "targetname" "CarpetBombPosition" "origin" "0 0 256" "angles" "-90 180 0" "teamnum" "3" "$weaponname" "CarpetBombWeapon" } } SoldierBossAttachments { OnParentKilledOutput { Target DemomanVictory Action Trigger } tf_point_weapon_mimic //Make the robots :steamhappy: from how effective this is on randoms { "targetname" "RocketRiderPosition" "origin" "0 0 256" "angles" "-40 0 0" "teamnum" "3" "$weaponname" "RocketRiderWeapon" } } AttackRelays { logic_relay { "targetname" "startthefightstupid" "OnTrigger" "RandomAttackChooserDemoman,PickRandomShuffle,,5,-1" "OnTrigger" "RandomAttackChooserSoldier,PickRandomShuffle,,5,-1" } logic_case { "targetname" "RandomAttackChooserDemoman" "OnCase01" "CarpetBomb,Trigger,,0,-1" "OnCase02" "BouncyPipes,Trigger,,0,-1" "OnCase03" "BasicBurstfire,Trigger,,0,-1" "OnCase04" "InfiniteCharge,Trigger,,0,-1" } logic_relay { "targetname" "CarpetBomb" "OnTrigger" "pop_interface,ChangeBotAttributes,CarpetBomberAttack,0,-1" "OnTrigger" "CarpetBombPosition,FireOnce,,2.6,-1" "OnTrigger" "rollerwarning,PlaySound,,0,-1" "OnTrigger" "rollerwarning,StopSound,,4,-1" "OnTrigger" "RandomAttackChooserDemoman,PickRandomShuffle,,4,-1" } logic_relay { "targetname" "BouncyPipes" "OnTrigger" "pop_interface,ChangeBotAttributes,BouncyPipesAttack,0,-1" "OnTrigger" "RandomAttackChooserDemoman,PickRandomShuffle,,10,-1" } logic_relay { "targetname" "BasicBurstfire" "OnTrigger" "pop_interface,ChangeBotAttributes,BasicBurstfireAttack,0,-1" "OnTrigger" "RandomAttackChooserDemoman,PickRandomShuffle,,10,-1" } logic_relay { "targetname" "InfiniteCharge" "OnTrigger" "pop_interface,ChangeBotAttributes,InfiniteChargeAttack,0,-1" "OnTrigger" "RandomAttackChooserDemoman,PickRandomShuffle,,10,-1" } logic_relay { "targetname" "DemomanVictory" "OnTrigger" "pop_interface,ChangeBotAttributes,VictoryCelebrationDemoman,0,-1" "OnTrigger" "RandomAttackChooserDemoman,Kill,,0,-1" "OnTrigger" "spawnbot_b,Disable,,0,-1" "OnTrigger" "RandomAttackChooserSoldier,Kill,,0,-1" "OnTrigger" "RandomAttackChooserDemomanPV,PickRandomShuffle,,6,-1" } logic_case { "targetname" "RandomAttackChooserDemomanPV" "OnCase01" "CarpetBomb+,Trigger,,0,-1" "OnCase02" "BouncyPipes+,Trigger,,0,-1" "OnCase03" "BasicBurstfire+,Trigger,,0,-1" "OnCase04" "InfiniteCharge+,Trigger,,0,-1" } logic_relay { "targetname" "CarpetBomb+" "OnTrigger" "pop_interface,ChangeBotAttributes,CarpetBomberAttack,0,-1" "OnTrigger" "CarpetBombPosition,FireOnce,,2.6,-1" "OnTrigger" "CarpetBombPosition,FireOnce,,3,-1" "OnTrigger" "rollerwarning,PlaySound,,0,-1" "OnTrigger" "rollerwarning,StopSound,,4,-1" "OnTrigger" "RandomAttackChooserDemomanPV,PickRandomShuffle,,4,-1" } logic_relay { "targetname" "BouncyPipes+" "OnTrigger" "pop_interface,ChangeBotAttributes,BouncyPipesAttack,0,-1" "OnTrigger" "RandomAttackChooserDemomanPV,PickRandomShuffle,,10,-1" } logic_relay { "targetname" "BasicBurstfire+" "OnTrigger" "pop_interface,ChangeBotAttributes,BasicBurstfireAttack,0,-1" "OnTrigger" "RandomAttackChooserDemomanPV,PickRandomShuffle,,10,-1" } logic_relay { "targetname" "InfiniteCharge+" "OnTrigger" "pop_interface,ChangeBotAttributes,InfiniteChargeAttack,0,-1" "OnTrigger" "RandomAttackChooserDemomanPV,PickRandomShuffle,,10,-1" } logic_case { "targetname" "RandomAttackChooserSoldier" "OnCase01" "RocketRider,Trigger,,0,-1" "OnCase02" "BasicBarrage,Trigger,,0,-1" "OnCase03" "ScalingBison,Trigger,,0,-1" "OnCase04" "BurstingShotgun,Trigger,,0,-1" } logic_relay { "targetname" "RocketRider" "OnTrigger" "pop_interface,ChangeBotAttributes,RocketRiderAttack,0,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,1,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,2,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,3,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,4,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,5,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,6,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,7,-1" "OnTrigger" "RandomAttackChooserSoldier,PickRandomShuffle,,7.9,-1" } logic_relay { "targetname" "BasicBarrage" "OnTrigger" "pop_interface,ChangeBotAttributes,BasicBarrageAttack,0,-1" "OnTrigger" "RandomAttackChooserSoldier,PickRandomShuffle,,8,-1" } logic_relay { "targetname" "ScalingBison" "OnTrigger" "pop_interface,ChangeBotAttributes,ScalingRocketAttack,0,-1" "OnTrigger" "RandomAttackChooserSoldier,PickRandomShuffle,,8,-1" } logic_relay { "targetname" "BurstingShotgun" "OnTrigger" "pop_interface,ChangeBotAttributes,BurstingShotgunAttack,0,-1" "OnTrigger" "RandomAttackChooserSoldier,PickRandomShuffle,,8,-1" } logic_relay { "targetname" "SoldierVictory" "OnTrigger" "pop_interface,ChangeBotAttributes,VictoryCelebrationSoldier,0,-1" "OnTrigger" "RandomAttackChooserSoldier,Kill,,0,-1" "OnTrigger" "spawnbot_a,Disable,,0,-1" "OnTrigger" "RandomAttackChooserDemoman,Kill,,0,-1" "OnTrigger" "RandomAttackChooserSoldierPV,PickRandomShuffle,,5,-1" } logic_case { "targetname" "RandomAttackChooserSoldierPV" "OnCase01" "RocketRider+,Trigger,,0,-1" "OnCase02" "BasicBarrage+,Trigger,,0,-1" "OnCase03" "ScalingBison+,Trigger,,0,-1" "OnCase04" "BurstingShotgun+,Trigger,,0,-1" } logic_relay { "targetname" "RocketRider+" "OnTrigger" "pop_interface,ChangeBotAttributes,RocketRiderAttack,0,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,1,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,1.5,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,2,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,2.5,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,3,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,3.5,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,4,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,4.5,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,5,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,5.5,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,6,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,6.5,-1" "OnTrigger" "RocketRiderPosition,FireOnce,,7,-1" "OnTrigger" "RandomAttackChooserSoldierPV,PickRandomShuffle,,7.9,-1" } logic_relay { "targetname" "BasicBarrage+" "OnTrigger" "pop_interface,ChangeBotAttributes,BasicBarrageAttack,0,-1" "OnTrigger" "RandomAttackChooserSoldierPV,PickRandomShuffle,,8,-1" } logic_relay { "targetname" "ScalingBison+" "OnTrigger" "pop_interface,ChangeBotAttributes,ScalingRocketAttack,0,-1" "OnTrigger" "RandomAttackChooserSoldierPV,PickRandomShuffle,,8,-1" } logic_relay { "targetname" "BurstingShotgun+" "OnTrigger" "pop_interface,ChangeBotAttributes,BurstingShotgunAttack,0,-1" "OnTrigger" "RandomAttackChooserSoldierPV,PickRandomShuffle,,8,-1" } } } SpawnTemplate WaveStartRelays SpawnTemplate SpawnWarnings SpawnTemplate AttackWarnings SpawnTemplate AttackRelays SpawnTemplate MissionName CustomWeapon { "CarpetBombWeapon" { OriginalItemName "tf_weapon_grenadelauncher" "mult projectile scale" 1.65 "custom projectile size" 2 "damage bonus" 1.5 "blast dmg to self increased" 0 "self dmg push force decreased" 0 "mult projectile count" 30 "projectile spread angle penalty" 40 "Projectile speed decreased" 0.35 "fuse bonus" 2 } "RocketRiderWeapon" { OriginalItemName "tf_weapon_rocketlauncher" "damage bonus" 1.25 "projectile speed decreased" 0.7 // "mod projectile heat aim start time" 0 "mod projectile heat seek power" 120 "mod projectile heat aim error" 360 "mod projectile heat aim time" 1 } } Templates { DemomanBoss { Class Demoman Name "JOHNATHAN" Action Mobber UseHumanAnimations 1 Skill Expert Health 45000 Scale 1.8 Attributes "MiniBoss" Attributes "UseBossHealthBar" SpawnTemplate DemomanBossAttachments Tag DemomanSide CharacterAttributes { "move speed bonus" 0.4 "damage force reduction" 0.1 "airblast vulnerability multiplier" 0.5 "airblast vertical vulnerability multiplier" 0.3 "rage giving scale" 0.2 "override footstep sound set" 2 } EventChangeAttributes { CarpetBomberAttack { Skill Expert WeaponRestrictions PrimaryOnly Item "Stickybomb Launcher" Taunt //Taunt periodically { Delay 0 //Time before the first taunt starts (Default: 10) Cooldown 0 //Time between each taunt (Default: 10) Repeats 0 //How many times the bot should taunt in total (Default: 0 - Infinite) Duration 1 //Duration of a looping taunt (Default: 0.1) Name "Spent Well Spirits Taunt" //If set, uses this item taunt instead of default } CharacterAttributes { "gesture speed increase" 2.5 "fuse bonus" 2 } } BouncyPipesAttack { Skill Expert WeaponRestrictions PrimaryOnly Item "Stickybomb Launcher" CharacterAttributes { "clip size bonus" 0.25 "faster reload rate" 0.01 "fire rate bonus" 0.7 "mult projectile scale" 1.5 "grenade bounce speed" 1.5 "grenade bounce damage" 0.35 "grenade no drag" 1 "fuse bonus" 2 } } BasicBurstfireAttack { Skill Expert WeaponRestrictions PrimaryOnly Item "Stickybomb Launcher" Attributes HoldFireUntilFullReload CharacterAttributes { "fire rate bonus" 0.1 "clip size upgrade atomic" 12.0 "faster reload rate" 0.5 } } InfiniteChargeAttack { Item "The Tide Turner" Item "The Eyelander" WeaponRestrictions MeleeOnly CharacterAttributes { "damage bonus" 1.5 "charge time increased" 10 "charge recharge rate increased" 6 "charge impact damage increased" 2 "Attack not cancel charge" 1 } } VictoryCelebrationDemoman { Addcond { Index 16 Duration 99999 } Taunt //Taunt periodically { Delay 0 //Time before the first taunt starts (Default: 10) Cooldown 0 //Time between each taunt (Default: 10) Repeats 0 //How many times the bot should taunt in total (Default: 0 - Infinite) Duration 1 //Duration of a looping taunt (Default: 0.1) Name "Oblooterated Taunt" //If set, uses this item taunt instead of default } CharacterAttributes { "health regen" 2000 } } } } SoldierBoss { Class Soldier Name "GREGORY" Action Mobber UseHumanAnimations 1 Skill Expert Health 45000 Scale 1.8 Attributes "MiniBoss" Attributes "UseBossHealthBar" SpawnTemplate SoldierBossAttachments Tag SoldierSide CharacterAttributes { "move speed bonus" 0.4 "damage force reduction" 0.1 "airblast vulnerability multiplier" 0.5 "airblast vertical vulnerability multiplier" 0.3 "rage giving scale" 0.2 "override footstep sound set" 2 } EventChangeAttributes { RocketRiderAttack { Skill Expert Taunt //Taunt periodically { Delay 0 //Time before the first taunt starts (Default: 10) Cooldown 0 //Time between each taunt (Default: 10) Repeats 0 //How many times the bot should taunt in total (Default: 0 - Infinite) Duration 1 //Duration of a looping taunt (Default: 0.1) Name "Taunt: Rocket Jockey" //If set, uses this item taunt instead of default } } BasicBarrageAttack { Skill Expert WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload CharacterAttributes { "clip size upgrade atomic" 26.0 "faster reload rate" 0.22 "fire rate bonus" 0.2 "projectile spread angle penalty" 5 "damage bonus" 1.5 } } ScalingRocketAttack { Skill Expert WeaponRestrictions PrimaryOnly CharacterAttributes { "faster reload rate" 0.2 "fire rate bonus" 0.5 "self add attributes on hit" "faster reload rate|0.06|1|fire rate bonus|0.1|1" } } BurstingShotgunAttack { Skill Expert WeaponRestrictions SecondaryOnly Attributes HoldFireUntilFullReload Item "Soldier's Shotgun" CharacterAttributes { "clip size bonus" 0.5 "fire rate bonus" 0.2 "bullets per shot bonus" 2 "spread penalty" 1.5 } } VictoryCelebrationSoldier { Addcond { Index 16 Duration 99999 } Taunt //Taunt periodically { Delay 0 //Time before the first taunt starts (Default: 10) Cooldown 0 //Time between each taunt (Default: 10) Repeats 0 //How many times the bot should taunt in total (Default: 0 - Infinite) Duration 1 //Duration of a looping taunt (Default: 0.1) Name "Fresh Brewed Victory Taunt" //If set, uses this item taunt instead of default } CharacterAttributes { "health regen" 2500 } } } } ShotgunSoldier { Template T_TFBot_Heavyweapons_Shotgun Class Soldier Name "Shotgun Soldier" WeaponRestrictions SecondaryOnly ClassIcon heavy_shotgun_scallops_blue CharacterAttributes { "faster reload rate" 0.1 "fire rate bonus" 2.5 "bullets per shot bonus" 3 "damage bonus" 0.33 } } ILovePersia { Class Demoman ClassIcon demo_persian_scallops_red Name "Persian Demoknight" Skill Hard Item "Ali Baba's Wee Booties" Item "The Splendid Screen" Item "The Persian Persuader" Item "Sultan's Ceremonial" MaxVisionRange 800 WeaponRestrictions MeleeOnly ItemAttributes { ItemName "The Splendid Screen" "Attack not cancel charge" 1 } ItemAttributes { ItemName "The Persian Persuader" "critboost on kill" 3 } } ConchMinigiant { Class Soldier Skill Hard ClassIcon soldier_armored_conch_scallops_blue Name "Armored Concheror Soldier" WeaponRestrictions PrimaryOnly Attributes SpawnWithFullCharge Item "The Concheror" Scale 1.35 Health 650 CharacterAttributes { "increase buff duration" 9.0 } } BuffMinigiant { Class Soldier Skill Hard ClassIcon soldier_armored_buff_scallops_blue Name "Armored Buff Banner Soldier" WeaponRestrictions PrimaryOnly Attributes SpawnWithFullCharge Item "The Buff Banner" Scale 1.35 Health 650 CharacterAttributes { "increase buff duration" 9.0 } } GiantPyroFury { Class Pyro Skill Expert Health 3800 ClassIcon pyro_dragon_fury_swordstone_scallops_mix Attributes "MiniBoss" Name "Giant Dragon's Fury Pyro" WeaponRestrictions PrimaryOnly Item "The Dragon's Fury" CharacterAttributes { "fire rate bonus" 0.8 "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 } } GiantDeflector { Class Heavyweapons Name "Giant Deflector Heavy" ClassIcon heavy_deflector_scallops_mix Skill Expert Health 5000 Item "The U-clank-a" Item "Deflector" WeaponRestrictions PrimaryOnly MaxVisionRange 1200 Attributes MiniBoss CharacterAttributes { "move speed bonus" 0.5 "damage bonus" 1.5 "attack projectiles" 2 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } } } Wave //Wave 1 - CASH 1500 { Explanation { Line "{FFFFFF}The {red}Demos {FFFFFF}and {blue}Soldiers {FFFFFF}are divided!" Line "{FFFFFF}Don't let either side win! Defend the hatch!" } WaitWhenDone 65 Checkpoint Yes InitWaveOutput { Target wave_start_relay Action RunScriptCode Param " EntFire(`wave_init_relay`, `Trigger`) local bomb1 = Entities.FindByName(null, `intel_a`) bomb1.AcceptInput(`RunScriptFile`, `bombhop.nut`, null, null) if (!(`SetParams` in bomb1.GetScriptScope())) return bomb1.GetScriptScope().SetParams( [`hoprange`, 786], [`allowpickupduringhop`, true], [`hopduration`, 120], [`hopheight`, 50], [`hoptime_min`, 10], [`hoptime_max`, 25] ) EntFire(`wave_init_relay`, `Trigger`) local bomb2 = Entities.FindByName(null, `intel_b`) bomb2.AcceptInput(`RunScriptFile`, `bombhop.nut`, null, null) if (!(`SetParams` in bomb2.GetScriptScope())) return bomb2.GetScriptScope().SetParams( [`hoprange`, 786], [`allowpickupduringhop`, true], [`hopduration`, 120], [`hopheight`, 50], [`hoptime_min`, 10], [`hoptime_max`, 25] ) " } StartWaveOutput { Target wave_start_relay_wave1 Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name Main1B TotalCurrency 75 TotalCount 4 MaxActive 3 SpawnCount 1 Where spawnbot_b WaitBeforeStarting 0 WaitBetweenSpawns 12 TFBot { Template T_TFBot_Giant_Soldier ClassIcon soldier_scallops_blue } DoneOutput { Target soldierfailure Action Trigger } } WaveSpawn { Name Main1Bs TotalCurrency 75 TotalCount 24 MaxActive 8 SpawnCount 3 Where spawnbot_b WaitBeforeStarting 1 WaitBetweenSpawns 5 TFBot { Template ShotgunSoldier } } WaveSpawn { Name Main1R TotalCurrency 75 TotalCount 3 MaxActive 3 SpawnCount 1 Where spawnbot_a WaitBeforeStarting 2 WaitBetweenSpawns 20 TFBot { Class Demoman Name "Giant Demoman" ClassIcon demo_scallops_red Health 3000 Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss CharacterAttributes { "move speed bonus" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 4 } } } WaveSpawn { Name Main1Rs TotalCurrency 75 TotalCount 18 MaxActive 8 SpawnCount 2 Where spawnbot_a WaitBeforeStarting 3 WaitBetweenSpawns 4 TFBot { Template T_TFBot_Demoman_Knight ClassIcon demoknight_scallops_red } } WaveSpawn { WaitForAllDead Main1R WaitForAllSpawned Main1B Name Main2R TotalCurrency 100 TotalCount 3 MaxActive 3 SpawnCount 1 Where spawnbot_a WaitBeforeStarting 0 WaitBetweenSpawns 11 TFBot { Template T_TFBot_Giant_Demoman ClassIcon demo_rapid_giant } } WaveSpawn { WaitForAllDead Main1R WaitForAllSpawned Main1B Name Main2Rs TotalCurrency 100 TotalCount 24 MaxActive 9 SpawnCount 3 Where spawnbot_a WaitBeforeStarting 0 WaitBetweenSpawns 4 TFBot { Template T_TFBot_Pyro_Flaregun ClassIcon pyro_flare_scallops_red } } //Cash marker - Delivered 500 of 1500 cash WaveSpawn { WaitForAllSpawned Main2R Name Main3B TotalCurrency 100 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot_b WaitBeforeStarting 15 WaitBetweenSpawns 0 FirstSpawnOutput { Target warnforsoldiers Action Trigger } Tank { StartingPathTrackNode boss_path_b_1 Health 11000 ClassIcon tank_scallops_blue OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { WaitForAllSpawned Main2R Name Main3B TotalCurrency 100 TotalCount 4 MaxActive 4 SpawnCount 1 Where spawnbot_b WaitBeforeStarting 20 WaitBetweenSpawns 15 TFBot { Template T_TFBot_Giant_Soldier_Extended_Buff_Banner ClassIcon soldier_buff_scallops_blue } } WaveSpawn { WaitForAllSpawned Main2R Name Main3Bs TotalCurrency 50 TotalCount 25 MaxActive 6 SpawnCount 5 Where spawnbot_b WaitBeforeStarting 20 WaitBetweenSpawns 10 TFBot { Name "Bat Scout" Class Scout WeaponRestrictions MeleeOnly ClassIcon scout_bat_scallops_blue } } WaveSpawn { WaitForAllSpawned Main2R Name Main3Bs TotalCurrency 50 TotalCount 5 MaxActive 2 SpawnCount 1 Where spawnbot_b WaitBeforeStarting 20 WaitBetweenSpawns 10 TFBot { Class Soldier WeaponRestrictions PrimaryOnly ClassIcon soldier_directhit_scallops_blue } } WaveSpawn { WaitForAllDead Main2R Name Main3R TotalCurrency 100 TotalCount 3 MaxActive 3 SpawnCount 1 Where spawnbot_a WaitBeforeStarting 0 WaitBetweenSpawns 16 DoneOutput { Target demofailure Action Trigger } TFBot { Template T_TFBot_Giant_Boxing_Heavy ClassIcon heavy_champ_scallops_red } } WaveSpawn { WaitForAllDead Main2R Name Main3Rs TotalCurrency 100 TotalCount 18 MaxActive 9 SpawnCount 3 Where spawnbot_a WaitBeforeStarting 0 WaitBetweenSpawns 8 TFBot { Template T_TFBot_Demo_Burst ClassIcon demo_burst_scallops_red } } //Cash marker - Delivered 1000 of 1500 cash WaveSpawn { WaitForAllDead Main3B Name Main4B TotalCurrency 50 TotalCount 6 MaxActive 6 SpawnCount 3 Where spawnbot_b WaitBeforeStarting 5 WaitBetweenSpawns 20 FirstSpawnOutput { Target warnforsuperscout Action Trigger } LastSpawnOutput { Target warnfordemos Action Trigger } TFBot { Template T_TFBot_Giant_Scout_Fast ClassIcon scout_fast_scallops_blue } } WaveSpawn { WaitForAllDead Main3B Name Main4Bs TotalCurrency 50 TotalCount 21 MaxActive 9 SpawnCount 3 Where spawnbot_b WaitBeforeStarting 5 WaitBetweenSpawns 5 TFBot { Template T_TFBot_Soldier_Extended_Concheror ClassIcon soldier_conch_scallops_blue } } WaveSpawn { WaitForAllSpawned Main4B Name Main5R TotalCurrency 100 TotalCount 2 MaxActive 2 SpawnCount 1 Where spawnbot_a WaitBeforeStarting 5 WaitBetweenSpawns 25 DoneOutput { Target demofailurefinal Action Trigger } TFBot { Template T_TFBot_Giant_Heavyweapons ClassIcon heavy_scallops_red } } WaveSpawn { WaitForAllSpawned Main4B Name Main5Rs TotalCurrency 100 TotalCount 20 MaxActive 6 SpawnCount 2 Where spawnbot_a WaitBeforeStarting 5 WaitBetweenSpawns 6 Support limited TFBot { Template T_TFBot_Pyro Skill Easy ClassIcon pyro_scallops_red } } WaveSpawn { WaitForAllDead Main4B Name Main5B TotalCurrency 100 TotalCount 3 MaxActive 3 SpawnCount 1 Where spawnbot_b WaitBeforeStarting 5 WaitBetweenSpawns 18 DoneOutput { Target soldierfailurefinal Action Trigger } TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload ClassIcon soldier_burstfire_scallops_blue } } WaveSpawn { WaitForAllDead Main4B Name Main5Bs TotalCurrency 100 TotalCount 26 MaxActive 6 SpawnCount 2 Where spawnbot_b WaitBeforeStarting 5 WaitBetweenSpawns 5 Support 1 TFBot { Class Scout Name "Scout" Skill Easy WeaponRestrictions PrimaryOnly ClassIcon scout_scallops_blue } } } Wave //Wave 2 - CASH 1500 { WaitWhenDone 65 Checkpoint Yes InitWaveOutput { Target wave_start_relay Action RunScriptCode Param " EntFire(`wave_init_relay`, `Trigger`) local bomb1 = Entities.FindByName(null, `intel_a`) bomb1.AcceptInput(`RunScriptFile`, `bombhop.nut`, null, null) if (!(`SetParams` in bomb1.GetScriptScope())) return bomb1.GetScriptScope().SetParams( [`hoprange`, 786], [`allowpickupduringhop`, true], [`hopduration`, 120], [`hopheight`, 50], [`hoptime_min`, 10], [`hoptime_max`, 25] ) EntFire(`wave_init_relay`, `Trigger`) local bomb2 = Entities.FindByName(null, `intel_b`) bomb2.AcceptInput(`RunScriptFile`, `bombhop.nut`, null, null) if (!(`SetParams` in bomb2.GetScriptScope())) return bomb2.GetScriptScope().SetParams( [`hoprange`, 786], [`allowpickupduringhop`, true], [`hopduration`, 120], [`hopheight`, 50], [`hoptime_min`, 10], [`hoptime_max`, 25] ) " } StartWaveOutput { Target wave_start_relay_wave2 Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name Main1R TotalCurrency 75 TotalCount 5 MaxActive 3 SpawnCount 1 Where spawnbot_a WaitBeforeStarting 0 WaitBetweenSpawns 10 TFBot { Template T_TFBot_Giant_Demo_Burst ClassIcon demo_burst_scallops_red } } WaveSpawn { Name Main1Rs TotalCurrency 75 TotalCount 20 MaxActive 10 SpawnCount 5 Where spawnbot_a WaitBeforeStarting 0 WaitBetweenSpawns 7.5 TFBot { Template T_TFBot_Scout_Bonk ClassIcon scout_bonk_nys_scallops_red } } WaveSpawn { Name Main1B TotalCurrency 75 TotalCount 2 MaxActive 2 SpawnCount 1 Where spawnbot_b WaitBeforeStarting 2 WaitBetweenSpawns 20 Tank { StartingPathTrackNode boss_path_b_1 Health 18000 ClassIcon tank_scallops_blue OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name Main1Bs TotalCurrency 75 TotalCount 21 MaxActive 9 SpawnCount 3 Where spawnbot_b WaitBeforeStarting 2 WaitBetweenSpawns 5 TFBot { Template T_TFBot_Scout_Sandman ClassIcon scout_stun_scallops_blue } } WaveSpawn { WaitForAllDead Main1R Name Main2R TotalCurrency 75 TotalCount 6 MaxActive 4 SpawnCount 2 Where spawnbot_a WaitBeforeStarting 0 WaitBetweenSpawns 20 TFBot { Template T_TFBot_Giant_DemoMan_PrinceTavish Attributes AlwaysCrit ClassIcon demoknight_scallops_red } DoneOutput { Target demofailure Action Trigger } } WaveSpawn { WaitForAllDead Main1R Name Main2Rs TotalCurrency 75 TotalCount 20 MaxActive 8 SpawnCount 4 Where spawnbot_a WaitBeforeStarting 0 WaitBetweenSpawns 10 TFBot { Class Heavyweapons Name "Heavyweapons" Skill Easy ClassIcon heavy_scallops_red } } WaveSpawn { WaitForAllDead Main1B Name Main2B TotalCurrency 100 TotalCount 3 MaxActive 3 SpawnCount 1 Where spawnbot_b WaitBeforeStarting 0 WaitBetweenSpawns 10 TFBot { Template T_TFBot_Giant_Soldier_Spammer ClassIcon soldier_spammer_scallops_blue } } WaveSpawn { WaitForAllDead Main1B Name Main2Bs TotalCurrency 100 TotalCount 6 MaxActive 3 SpawnCount 1 Where spawnbot_b WaitBeforeStarting 0 WaitBetweenSpawns 5 TFBot { Template ConchMinigiant ClassIcon soldier_armored_conch_scallops_blue } } //Cash marker - Delivered 650 of 1500 cash WaveSpawn { WaitForAllSpawned Main2B Name Main3B TotalCurrency 75 TotalCount 8 MaxActive 4 SpawnCount 2 Where spawnbot_b WaitBeforeStarting 15 WaitBetweenSpawns 12 TFBot { Template T_TFBot_Giant_Soldier Name "Giant Shotgun Soldier" WeaponRestrictions SecondaryOnly ClassIcon heavy_shotgun_scallops_blue CharacterAttributes { "reload time decreased" 0.6 } } } WaveSpawn { WaitForAllSpawned Main2B Name Main3Bs TotalCurrency 75 TotalCount 28 MaxActive 8 SpawnCount 4 Where spawnbot_b WaitBeforeStarting 15 WaitBetweenSpawns 6 TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner ClassIcon soldier_buff_scallops_blue } } WaveSpawn { WaitForAllDead Main3B Name Main4B TotalCurrency 100 TotalCount 6 MaxActive 4 SpawnCount 1 Where spawnbot_b WaitBeforeStarting 0 WaitBetweenSpawns 8 FirstSpawnOutput { Target warnfordemos Action Trigger } DoneOutput { Target soldierfailurefinal Action Trigger } TFBot { Template GiantPyroFury ClassIcon pyro_dragon_fury_swordstone_scallops_blue } } WaveSpawn { WaitForAllDead Main3B Name Main4Bs TotalCurrency 100 TotalCount 24 MaxActive 8 SpawnCount 2 Where spawnbot_b WaitBeforeStarting 0 WaitBetweenSpawns 4 TFBot { Class Scout Skill Hard ClassIcon scout_scallops_blue } } WaveSpawn { WaitForAllDead Main3B Name Main4R TotalCurrency 100 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot_a WaitBeforeStarting 5 WaitBetweenSpawns 8 Tank { StartingPathTrackNode boss_path_a_1 Health 24000 ClassIcon tank_scallops_red OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { WaitForAllDead Main3B Name Main4Rs TotalCurrency 100 TotalCount 24 MaxActive 6 SpawnCount 3 Where spawnbot_a WaitBeforeStarting 5 WaitBetweenSpawns 10 Support 1 TFBot { Template T_TFBot_Demoman_Knight Item "The Ullapool Caber" ClassIcon demo_caber_nys } } //Cash marker - Delivered 1200 of 1500 cash WaveSpawn { WaitForAllSpawned Main4R Name Main5R TotalCurrency 200 TotalCount 12 MaxActive 8 SpawnCount 4 Where spawnbot_a WaitBeforeStarting 30 WaitBetweenSpawns 12 DoneOutput { Target demofailurefinal Action Trigger } Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_BrassBeast ClassIcon heavy_brass_nys_scallops_red } TFBot { Template T_TFBot_Medic_QuickUber ClassIcon medic_uber_scallops_red } TFBot { Template T_TFBot_Medic_QuickUber ClassIcon medic_uber_scallops_red } TFBot { Template T_TFBot_Medic_QuickUber ClassIcon medic_uber_scallops_red } } } WaveSpawn { WaitForAllSpawned Main4R Name Main5Rs TotalCurrency 100 TotalCount 9 MaxActive 5 SpawnCount 3 Where spawnbot_a WaitBeforeStarting 30 WaitBetweenSpawns 12 TFBot { Template T_TFBot_Heavyweapons_Fist ClassIcon heavy_steelfist_scallops_red } } WaveSpawn { WaitForAllSpawned Main4R Name Main5Rs TotalCurrency 100 TotalCount 12 MaxActive 5 SpawnCount 3 Where spawnbot_a WaitBeforeStarting 30 WaitBetweenSpawns 9 Support 1 TFBot { Template T_TFBot_Pyro_Flaregun Attributes AlwaysCrit ClassIcon pyro_flare_scallops_red } } } Wave //Wave 3 - CASH 1500 { WaitWhenDone 65 Checkpoint Yes InitWaveOutput { Target wave_start_relay Action RunScriptCode Param " EntFire(`wave_init_relay`, `Trigger`) local bomb1 = Entities.FindByName(null, `intel_a`) bomb1.AcceptInput(`RunScriptFile`, `bombhop.nut`, null, null) if (!(`SetParams` in bomb1.GetScriptScope())) return bomb1.GetScriptScope().SetParams( [`hoprange`, 786], [`allowpickupduringhop`, true], [`hopduration`, 120], [`hopheight`, 50], [`hoptime_min`, 10], [`hoptime_max`, 25] ) EntFire(`wave_init_relay`, `Trigger`) local bomb2 = Entities.FindByName(null, `intel_b`) bomb2.AcceptInput(`RunScriptFile`, `bombhop.nut`, null, null) if (!(`SetParams` in bomb2.GetScriptScope())) return bomb2.GetScriptScope().SetParams( [`hoprange`, 786], [`allowpickupduringhop`, true], [`hopduration`, 120], [`hopheight`, 50], [`hoptime_min`, 10], [`hoptime_max`, 25] ) " } StartWaveOutput { Target wave_start_relay_wave3 Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name Main1R TotalCurrency 100 TotalCount 2 MaxActive 2 SpawnCount 1 Where spawnbot_a WaitBeforeStarting 2 WaitBetweenSpawns 15 TFBot { Template GiantDeflector } } WaveSpawn { Name Main1Rs TotalCurrency 100 TotalCount 12 MaxActive 9 SpawnCount 3 Where spawnbot_a WaitBeforeStarting 2.1 WaitBetweenSpawns 7.5 TFBot { Template ILovePersia } } WaveSpawn { Name Main1B TotalCurrency 100 TotalCount 2 MaxActive 2 SpawnCount 1 Where spawnbot_b WaitBeforeStarting 0 WaitBetweenSpawns 15 TFBot { Template GiantDeflector } } WaveSpawn { Name Main1Bs TotalCurrency 100 TotalCount 8 MaxActive 6 SpawnCount 2 Where spawnbot_b WaitBeforeStarting 0.1 WaitBetweenSpawns 7.5 TFBot { Template BuffMinigiant } } WaveSpawn { WaitForAllDead Main1R Name Main2Final TotalCurrency 100 TotalCount 8 MaxActive 6 SpawnCount 4 Where spawnbot_a WaitBeforeStarting 0 WaitBetweenSpawns 10 FirstSpawnOutput { Target warnforsuperscout Action Trigger } DoneOutput { Target demofailurefinal Action Trigger } TFBot { Template T_TFBot_Giant_Scout_FAN ClassIcon scout_fan_scallops_red } } WaveSpawn { WaitForAllDead Main1R Name Main2Rs TotalCurrency 100 TotalCount 15 MaxActive 6 SpawnCount 3 Where spawnbot_a WaitBeforeStarting 0 WaitBetweenSpawns 5 TFBot { Template T_TFBot_Demoman ClassIcon demo_scallops_red Attributes AlwaysCrit } } WaveSpawn { WaitForAllDead Main1B Name Main2Final TotalCurrency 100 TotalCount 4 MaxActive 4 SpawnCount 2 Where spawnbot_b WaitBeforeStarting 0 WaitBetweenSpawns 20 TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage ClassIcon soldier_barrage_scallops_blue } } WaveSpawn { WaitForAllDead Main1B Name Main2Bs TotalCurrency 100 TotalCount 20 MaxActive 8 SpawnCount 4 Where spawnbot_b WaitBeforeStarting 0 WaitBetweenSpawns 6 TFBot { Template ShotgunSoldier Attributes AlwaysCrit } } //Cash marker - Delivered 800 of 1500 cash WaveSpawn { WaitForAllDead Main2Final Name BossA TotalCurrency 150 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot_a WaitBeforeStarting 0 WaitBetweenSpawns 5 TFBot { Template DemomanBoss SpawnTemplate bossintrotext } } WaveSpawn { WaitForAllDead Main2Final Name BossB TotalCurrency 150 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot_b WaitBeforeStarting 1 WaitBetweenSpawns 5 FirstSpawnOutput { Target startthefightstupid Action Trigger } TFBot { Template SoldierBoss } } WaveSpawn { WaitForAllDead Main2Final Name BossAs TotalCurrency 100 TotalCount 5 MaxActive 1 SpawnCount 1 Where spawnbot_a WaitBeforeStarting 6 WaitBetweenSpawns 20 Support 1 TFBot { Template T_TFBot_Giant_Scout_Fast ClassIcon scout_fast_scallops_mix } } WaveSpawn { WaitForAllDead Main2Final Name BossAs TotalCurrency 100 TotalCount 30 MaxActive 6 SpawnCount 3 Where spawnbot_a WaitBeforeStarting 6 WaitBetweenSpawns 10 Support 1 TFBot { Class Scout Name "Scout" WeaponRestrictions PrimaryOnly Skill Hard ClassIcon scout_scallops_red Attributes AlwaysCrit } } WaveSpawn { WaitForAllDead Main2Final Name BossBs TotalCurrency 100 TotalCount 5 MaxActive 1 SpawnCount 1 Where spawnbot_b WaitBeforeStarting 6 WaitBetweenSpawns 20 Support 1 TFBot { Template T_TFBot_Giant_Scout_Fast ClassIcon scout_fast_scallops_mix } } WaveSpawn { WaitForAllDead Main2Final Name BossBs TotalCurrency 100 TotalCount 10 MaxActive 3 SpawnCount 1 Where spawnbot_b WaitBeforeStarting 6 WaitBetweenSpawns 10 Support 1 TFBot { Template ConchMinigiant } } } Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay_wave3 Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { WaitForAllDead Main2F Name BossA TotalCurrency 100 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot_a WaitBeforeStarting 0 WaitBetweenSpawns 5 TFBot { Template DemomanBoss SpawnTemplate bossintrotext } } WaveSpawn { WaitForAllDead Main2F Name BossB TotalCurrency 100 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot_b WaitBeforeStarting 2 WaitBetweenSpawns 5 FirstSpawnOutput { Target startthefightstupid Action Trigger } TFBot { Template SoldierBoss } } } }