#base robot_standard.pop #base robot_giant.pop WaveSchedule { PrecacheSound "scourge.mp3" TextPrintTime 0 SendBotsToSpectatorImmediately 1 StartingCurrency 20000 RespawnWaveTime 6 CanBotsAttackWhileInSpawnRoom No // To do list // Guardian support spawn during phase 2 DoG (Done) // Make his fucking melee work // Change screen colour (Done) // DoG music // Make void better // See if making a premature wave finish fucks stuff up // If it doesn't make Astrum Deus // some ideas // Making DoG melee work // Strip red spawns, make 6 custom ones with unique targetname each // Place a trigger_multiple in each spawn with unique targetname, each will assign a unique targetname (Example: "redplayer1" to 6) to activator OnTouch // Place another trigger_multiple in each spawn with unique targetname, each will parent a func_nav_prerequesite to activator OnTouch and enable it, and then disabling the spawn // Make another trigger_multiple for each spawn trigger_multiple that spans the whole map, each with unique targetname // Place a func_nav_prerequisite in each spawn with unique targetname, start disabled, the size should be smaller than the player's bounding box // Make another func_nav_prerequisite that spans the whole map, make its target the spawn func_nav_prerequisites // The map trigger_multiple will trigger OnEndTouch (when player dies or leaves), enabling its assigned spawn again, disabling and ClearParent the func_nav_prerequisite and activating its matching point_teleport // Place a point_teleport to each spawn with unique targetname, make it teleport the matching func_nav_prerequisite to it // The map trigger_multiple uses filter_activator_name to only accept a player that has a targetname that is assigned by its matching spawn trigger // Ditto for func_nav trigger_multiple // The spawn trigger_multiple uses filter_activator_name to ignore all players that already have a targetname assigned ////////////////////////////////////////////////////////////////// POINT TEMPLATES ////////////////////////////////////////////////////////////////// PointTemplates { Interface //Populator interface { NoFixup 1 point_populator_interface { "targetname" "pop_interface" } info_target { "targetname" "parent_target" "origin" "0 400 0" } } Sounds { NoFixup 1 logic_relay { "targetname" "sound_stop" "OnTrigger" "music_astrum,StopSound,,0,-1" "OnTrigger" "music_astrum2,StopSound,,0,-1" } ambient_generic { "targetname" "sound_teleport" "message" "mvm/mvm_tele_deliver.wav" "health" "10" "spawnflags" "33" "origin" "0 0 0" } ambient_generic { "targetname" "music_astrum" "message" "pestofthecosmos.mp3" "health" "10" "spawnflags" "33" "origin" "0 0 0" } ambient_generic { "targetname" "music_astrum2" "message" "pestofthecosmos.mp3" "health" "10" "spawnflags" "33" "origin" "0 0 0" } } /////////////////////////// WAVE 1 LOGIC /////////////////////////// AstrumLogic //Controls Astrum Deus logic and its corresponding wave { NoFixup 1 logic_relay //Enables spawnbot_death and blue_bots_kill which will end the wave { "targetname" "wave_end_relay" "OnTrigger" "spawnbot_death,Enable,,0.1,-1" "OnTrigger" "spawnbot_purge,Enable,,0.1,-1" "OnTrigger" "teleport_wave_end,Enable,,0.1,-1" } logic_relay //Ends the wave once Astrum is dead { "targetname" "astrum_end_relay" "OnTrigger" "wave_end_relay,Enable,,0,-1" "OnTrigger" "wave_end_relay,Trigger,,0.01,-1" "OnTrigger" "sound_stop,Trigger,,0,-1" } logic_relay //Kills Phase 1 Astrum and spawns Phase 2 { "targetname" "astrum_phase2_relay" "OnTrigger" "!activator,SetHealth,-1000,3,-1" "OnTrigger" "astrum_phase1_timer,Disable,,0,-1" "OnTrigger" "astrum_phase1_timer,CancelPending,,0,-1" } logic_relay //Stops main wave bots from spawning and kills surviving bots, stops the wave from ending if all bots are dead { "targetname" "astrum_spawn_relay" "OnTrigger" "spawnbot,Disable,,0,-1" "OnTrigger" "spawnbot_upper,Disable,,0,-1" "OnTrigger" "blue_bots_kill,Enable,,0,-1" "OnTrigger" "blue_bots_kill,Disable,,5,-1" "OnTrigger" "money_collector,Enable,,0,-1" "OnTrigger" "money_collector,Disable,,5,-1" "OnTrigger" "wave_end_relay,Disable,,0,-1" "OnTrigger" "wave_end_relay,CancelPending,,0,-1" "OnTrigger" "music_astrum,PlaySound,,0,-1" "OnTrigger" "music_astrum2,PlaySound,,0,-1" "OnTrigger" "intel,ForceResetSilent,,0,-1" "OnTrigger" "bombpath_logic_override,Trigger,,0,-1" "OnTrigger" "wormhole_start_relay,Trigger,,7.5,-1" "OnTrigger" "wormhole_end_relay,Trigger,,17.5,-1" } logic_timer { "targetname" "astrum_phase1_timer" "RefireTime" "12" "spawnflags" "0" "StartDisabled" "1" "UseRandomTime" "0" "OnTimer" "pop_interface,ChangeBotAttributes,Reload,0,-1" //"OnTimer" "pop_interface,ChangeBotAttributes,Mines,2,-1" "OnTimer" "tf_projectile_pipe,SetParent,parent_target,1,-1" "OnTimer" "pop_interface,ChangeBotAttributes,Default,2.5,-1" } trigger_multiple { "targetname" "blue_bots_kill" "filtername" "bot_kill_filter" "StartDisabled" "1" "spawnflags" "1" "origin" "2464 448 0" "mins" "-8000 -8000 -2000" "maxs" "8000 8000 2000" "OnStartTouch" "!activator,SetHealth,-10000,0,-1" "OnStartTouch" "!self,Disable,,5,-1" } trigger_hurt { "targetname" "money_collector" "damage" "0" "damagecap" "0" "damagemodel" "0" "damagetype" "0" "nodmgforce" "1" "origin" "2464 448 0" "mins" "-8000 -8000 -2000" "maxs" "8000 8000 2000" "spawnflags" "1" "StartDisabled" "1" } filter_activator_tfteam { "targetname" "bot_kill_filter" "Negated" "Allow entities that match criteria" "TeamNum" "3" } env_shake { "targetname" "shake_warning" "spawnflags" "5" "radius" "500" "frequency" "200" "duration" "8" "amplitude" "10" } } AstrumSpawns { NoFixup 1 info_player_teamspawn { "angles" "0 0 0" "origin" "0 0 -160" "StartDisabled" "1" "spawnflags" "511" "targetname" "spawnbot_death" "TeamNum" "3" } info_player_teamspawn { "angles" "0 -90 0" "origin" "764 -1293 -286" "spawnflags" "511" "targetname" "spawnbot_atlas1" "TeamNum" "3" } trigger_teleport { "targetname" "teleport_atlas1" "filtername" "atlas_teleport_filter" "target" "spawnbot_atlas1" "spawnflags" "1" "origin" "764 -1293 -286" "mins" "-1000 -1000 -1000" "maxs" "1000 1000 1000" } info_player_teamspawn { "angles" "0 90 0" "origin" "2671 -1875 -62" "spawnflags" "511" "targetname" "spawnbot_atlas2" "TeamNum" "3" } trigger_teleport { "targetname" "teleport_atlas2" "filtername" "atlas_teleport_filter" "target" "spawnbot_atlas2" "spawnflags" "1" "origin" "2671 -1875 -62" "mins" "-1000 -1000 -1000" "maxs" "1000 1000 1000" } info_player_teamspawn { "angles" "0 180 0" "origin" "3894 -728 -125" "spawnflags" "511" "targetname" "spawnbot_atlas3" "TeamNum" "3" } trigger_teleport { "targetname" "teleport_atlas3" "filtername" "atlas_teleport_filter" "target" "spawnbot_atlas3" "spawnflags" "1" "origin" "3894 -728 -125" "mins" "-1000 -1000 -1000" "maxs" "1000 1000 1000" } info_player_teamspawn { "angles" "0 90 0" "origin" "2671 -1875 -62" "StartDisabled" "1" "spawnflags" "511" "targetname" "spawnbot_purge" "TeamNum" "3" } trigger_teleport { "targetname" "teleport_wave_end" "filtername" "red_players_exclude" "target" "teleport_kill" "StartDisabled" "1" "spawnflags" "1" "origin" "2671 -1875 -62" "mins" "-16 -16 -36" "maxs" "16 16 36" } trigger_teleport { "targetname" "teleport_kill" "target" "teleport_kill" "spawnflags" "1" "origin" "5187 -1097 -255" "mins" "-16 -16 -36" "maxs" "16 16 36" } filter_tf_bot_has_tag { "targetname" "atlas_teleport_filter" "Negated" "Allow entities that match criteria" "require_all_tags" "1" "tags" "atlas" } info_player_teamspawn { "angles" "0 0 0" "origin" "0 1632 -336" "spawnflags" "511" "targetname" "spawnbot_astrum" "TeamNum" "3" } trigger_multiple { "targetname" "remainder_bots_kill" "filtername" "red_players_exclude" "spawnflags" "1" "origin" "5187 -1097 -255" "mins" "-16 -16 -36" "maxs" "16 16 36" "OnStartTouch" "!activator,SetHealth,-10000,0,-1" } } BossTeleport //Teleport boss to bomb { NoFixup 1 trigger_teleport { "targetname" "teleport_boss" "filtername" "boss_teleport_filter" "target" "intel" "spawnflags" "1" "StartDisabled" "1" "solid" "2" "origin" "2464 448 0" "mins" "-4000 -2048 -1280" "maxs" "4000 2048 4000" "OnTrigger" "sound_teleport,PlaySound,,0,-1" "OnTrigger" "!self,Disable,,0,-1" } filter_tf_bot_has_tag { "targetname" "boss_teleport_filter" "Negated" "Allow entities that match criteria" "require_all_tags" "1" "tags" "boss_teleport" } } BossColor //Color correction during boss fight { NoFixup 1 color_correction //Blue Color { "targetname" "correction_blue" "fadeInDuration" "0.0" "fadeOutDuration" "0.0" "filename" "materials/correction/cc_calamity_blue.raw" "maxfalloff" "-1" "maxweight" "1.0" "minfalloff" "0.0" "StartDisabled" "1" "origin" "0 0 0" } color_correction //Purple Color { "targetname" "correction_purple" "fadeInDuration" "0.0" "fadeOutDuration" "0.0" "filename" "materials/correction/cc_calamity_purple.raw" "maxfalloff" "-1" "maxweight" "1.0" "minfalloff" "0.0" "StartDisabled" "1" "origin" "0 0 0" } } BossSupportSpawns { NoFixup 1 info_player_teamspawn { "angles" "0 180 0" "origin" "0 1632 -336" "StartDisabled" "1" "spawnflags" "511" "targetname" "boss_support" "TeamNum" "3" } info_player_teamspawn { "angles" "0 180 0" "origin" "0 1632 -336" "StartDisabled" "1" "spawnflags" "511" "targetname" "spawnbot_supportp2" "TeamNum" "3" } info_player_teamspawn { "angles" "0 180 0" "origin" "0 1632 -336" "StartDisabled" "1" "spawnflags" "511" "targetname" "spawnbot_supportfinal" "TeamNum" "3" } trigger_teleport { "targetname" "teleport_boss_support" "filtername" "boss_teleport_support_filter" "target" "theboss" "spawnflags" "1" "StartDisabled" "1" "solid" "2" "origin" "0 1632 -336" "mins" "-16 -16 -36" "maxs" "16 16 36" "OnStartTouch" "sound_teleport,PlaySound,,0,-1" } filter_tf_bot_has_tag { "targetname" "boss_teleport_support_filter" "Negated" "Allow entities that match criteria" "require_all_tags" "1" "tags" "boss_support" } } BossPathChooser { NoFixup 1 logic_relay //Overrides chosen bombpath { "targetname" "bombpath_logic_override" "OnTrigger" "bombpath_clearall_relay,Trigger,,0,-1" "OnTrigger" "bombpath_arrows_clear_relay,Trigger,,0.15,-1" "OnTrigger" "bombpath_lower_right_relay,Trigger,,0.1,-1" } } BossPhase1 { NoFixup 1 logic_relay //Initial 20 seconds passive, 10 seconds melee, 20 seconds passive, 10 seconds melee, 20 seconds passive etc... { "targetname" "boss_phase1_start" "OnTrigger" "phase1_timer,Enable,,0,-1" "OnTrigger" "phase1_passive,Trigger,,0,-1" "OnTrigger" "phase1_melee,Trigger,,20,-1" } logic_timer { "targetname" "phase1_timer" "RefireTime" "30" "spawnflags" "0" "StartDisabled" "1" "UseRandomTime" "0" "OnTimer" "phase1_passive,Trigger,,0,-1" "OnTimer" "phase1_melee,Trigger,,20,-1" } logic_relay //Phase 1 Passive { "targetname" "phase1_passive" "OnTrigger" "pop_interface,ChangeBotAttributes,Default,0,-1" "OnTrigger" "correction_blue,Enable,,0,-1" "OnTrigger" "correction_purple,Disable,,0,-1" "OnTrigger" "teleport_boss,Enable,,0,-1" "OnTrigger" "teleport_boss,Disable,,0.01,-1" } logic_relay //Phase 1 Melee { "targetname" "phase1_melee" "OnTrigger" "pop_interface,ChangeBotAttributes,MeleeP1,0,-1" "OnTrigger" "correction_blue,Disable,,0,-1" "OnTrigger" "correction_purple,Enable,,0,-1" } } BossPhase2 { NoFixup 1 logic_relay //Stops Phase 1 cycle { "targetname" "boss_phase1_end" "OnTrigger" "phase1_timer,Disable,,0,-1" "OnTrigger" "phase1_passive,Disable,,0,-1" "OnTrigger" "phase1_melee,Disable,,0,-1" } logic_relay //8 seconds laser, 10 seconds melee, 20 seconds passive etc... { "targetname" "boss_phase2_start" "OnTrigger" "phase2_timer,Enable,,0,-1" "OnTrigger" "phase2_laser,Trigger,,0.1,-1" "OnTrigger" "phase2_melee,Trigger,,9,-1" "OnTrigger" "phase2_passive,Trigger,,19,-1" "OnTrigger" "teleport_boss,Enable,,0,-1" "OnTrigger" "teleport_boss,Disable,,0.01,-1" "OnTrigger" "teleport_boss_support,Enable,,0,-1" "OnTrigger" "boss_phase1_end,Trigger,,0,-1" "OnTrigger" "pop_interface,ChangeBotAttributes,Phase2,0,-1" } logic_timer { "targetname" "phase2_timer" "RefireTime" "39" "spawnflags" "0" "StartDisabled" "1" "UseRandomTime" "0" "OnTimer" "phase2_laser,Trigger,,0,-1" "OnTimer" "phase2_melee,Trigger,,9,-1" "OnTimer" "phase2_passive,Trigger,,19,-1" } logic_relay //Phase 2 passive { "targetname" "phase2_passive" "OnTrigger" "pop_interface,ChangeBotAttributes,PassiveP2,0,-1" "OnTrigger" "teleport_boss,Enable,,0,-1" "OnTrigger" "teleport_boss,Disable,,0.01,-1" "OnTrigger" "correction_blue,Enable,,0,-1" "OnTrigger" "correction_purple,Disable,,0,-1" } logic_relay //Phase 2 melee { "targetname" "phase2_melee" "OnTrigger" "pop_interface,ChangeBotAttributes,MeleeP2,0,-1" "OnTrigger" "correction_blue,Disable,,0,-1" "OnTrigger" "correction_purple,Enable,,0,-1" } logic_relay //Phase 2 Laser { "targetname" "phase2_laser" "OnTrigger" "pop_interface,ChangeBotAttributes,LaserP2Start,0,-1" "OnTrigger" "pop_interface,ChangeBotAttributes,LaserP2,1,-1" "OnTrigger" "theboss,AddOutput,rendermode 10,0,-1" "OnTrigger" "theboss,AddOutput,rendermode 0,9,-1" "OnTrigger" "spawnbot_supportp2,Enable,,0,-1" "OnTrigger" "spawnbot_supportp2,Disable,,0.01,-1" "OnTrigger" "correction_blue,Disable,,0,-1" "OnTrigger" "correction_purple,Disable,,0,-1" } } BossPhase3 { NoFixup 1 logic_relay //Ends Phase 2 cycle { "targetname" "boss_phase2_end" "OnTrigger" "phase2_timer,Disable,,0,-1" "OnTrigger" "phase2_passive,Disable,,0,-1" "OnTrigger" "phase2_laser,Disable,,0,-1" "OnTrigger" "phase2_laser,CancelPending,,0,-1" "OnTrigger" "phase2_melee,Disable,,0,-1" } logic_relay { "targetname" "boss_phase3_start" "OnTrigger" "pop_interface,ChangeBotAttributes,Phase3,0,-1" "OnTrigger" "pop_interface,ChangeBotAttributes,PassiveP3,0.1,-1" "OnTrigger" "teleport_boss,Enable,,0,-1" "OnTrigger" "teleport_boss,Disable,,0.01,-1" "OnTrigger" "theboss,AddOutput,rendermode 0,0,-1" "OnTrigger" "spawnbot_supportfinal,Enable,,0,-1" "OnTrigger" "spawnbot_supportfinal,Disable,,0.01,-1" "OnTrigger" "correction_blue,Enable,,0,-1" "OnTrigger" "correction_purple,Disable,,0,-1" "OnTrigger" "boss_phase2_end,Trigger,,0,-1" } } Text { NoFixup 1 game_text_tf { "background" "2" "display_to_team" "2" "message" "Name given" "targetname" "name" } game_text_tf { "background" "2" "display_to_team" "2" "message" "Name taken" "targetname" "noname" } game_text_tf { "background" "2" "display_to_team" "2" "message" "right path" "targetname" "right" } game_text_tf { "background" "2" "display_to_team" "2" "message" "left path" "targetname" "left" } } } SpawnTemplate "BossSupportSpawns" //DoG guardian spawns SpawnTemplate "AstrumSpawns" //Wave 1 Spawnpoints SpawnTemplate "Sounds" //Sounds SpawnTemplate "Text" SpawnTemplate "Interface" //Populator interface SpawnTemplate "BossTeleport" SpawnTemplate "BossPathChooser" //Overrides chosen bombpath Wave { StartWaveOutput { Target wave_start_relay Action Trigger } InItWaveOutput { Target sound_stop Action trigger } DoneOutput { Target wave_finished_relay Action trigger } DoneOutput { Target sound_stop Action trigger } WaitWhenDone 65 Checkpoint Yes WaveSpawn { Where spawnbot Name "start" SpawnCount 1 MaxActive 1 TotalCount 1 TFBot { Template T_TFBot_Giant_Scout_Fast Skill Expert Health 1000000 CharacterAttributes { "damage bonus" 10000 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "damage force reduction" 0 "dmg taken increased" 0.0000001 } } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaitWhenDone 65 Checkpoint Yes SpawnTemplate //Wave 1 Logic { Name "AstrumLogic" } ////////////////// FAKE WAVE ////////////////// WaveSpawn { Where spawnbot_purge Name "soldierfake" TotalCount 24 TFBot { Classicon soldier } } ////////////////// REAL WAVE ////////////////// WaveSpawn { Where spawnbot Name "soldier" SpawnCount 4 MaxActive 8 TotalCount 24 WaitBetweenSpawns 8 TotalCurrency 400 Support Limited DoneOutput { Target wave_end_relay Action Trigger } RandomChoice { Squad { TFBot { Class soldier Skill Normal } } } } WaveSpawn { Where spawnbot_atlas1 Name "atlas1" SpawnCount 1 MaxActive 1 TotalCount 1 Support Limited RandomChoice { Squad { TFBot { Class Heavyweapons Name "Atlas" Action Mobber Health 1000 Scale 1.5 Skill Expert WeaponRestrictions MeleeOnly Tag atlas CharacterAttributes { "damage bonus" 1.5 "damage causes airblast" 1 "damage blast push" 500 "cancel falling damage" 1 } FireInput { Target "teleport_atlas1" Action "Disable" Delay 0 Cooldown 0 Repeats 1 IfHealthBelow 999 } } } } } WaveSpawn { Where spawnbot_atlas2 Name "atlas2" SpawnCount 1 MaxActive 1 TotalCount 1 WaitForAllDead "atlas1" Support Limited StartWaveOutput { Target shake_warning Action StartShake } RandomChoice { Squad { TFBot { Class Heavyweapons Name "Atlas" Action Mobber Health 1000 Scale 1.5 Skill Expert WeaponRestrictions MeleeOnly Tag atlas CharacterAttributes { "damage bonus" 1.5 "damage causes airblast" 1 "damage blast push" 500 "cancel falling damage" 1 } Message { Name "{a9a9d1}The ground beneath trembles..." Repeats 1 Delay 0 } FireInput { Target "teleport_atlas2" Action "Disable" Delay 0 Cooldown 0 Repeats 1 IfHealthBelow 999 } } } } } WaveSpawn { Where spawnbot_atlas3 Name "atlas3" SpawnCount 1 MaxActive 1 TotalCount 1 WaitForAllDead "atlas2" Support Limited RandomChoice { Squad { TFBot { Class Heavyweapons Name "Atlas" Action Mobber Health 1000 Scale 1.5 Skill Expert WeaponRestrictions MeleeOnly Tag atlas CharacterAttributes { "damage bonus" 1.5 "damage causes airblast" 1 "damage blast push" 500 "cancel falling damage" 1 } Message { Name "{6df2c4}A godly {fa5833}energy radiates." Repeats 1 Delay 0 } FireInput { Target "teleport_atlas3" Action "Disable" Delay 0 Cooldown 0 Repeats 1 IfHealthBelow 999 } } } } } WaveSpawn { Where spawnbot_boss Name "astrump1" TotalCount 1 SpawnCount 1 WaitForAllDead "atlas3" WaitBeforeStarting 8.5 Support Limited StartWaveOutput { Target astrum_spawn_relay Action Trigger } RandomChoice { Squad { TFBot { Class Demoman Name "Astrum Deus" ClassIcon demo_giant Health 20000 Skill Expert Attributes UseBossHealthBar Scale 1.75 Message { Name "{9211f6}Astrum Deus has awoken!." Repeats 1 Delay 0 } AddCond { Index 5 //Ubercharge Delay 0 Duration 2.99 IfHealthBelow 10000 } FireInput { Target "astrum_phase2_relay" Action "Trigger" Delay 0 Cooldown 0 Repeats 0 IfHealthBelow 10000 } FireInput { Target "astrum_phase1_timer" Action "Enable" Delay 0 Cooldown 0 Repeats 1 } ChangeAttributes { Delay 0 Cooldown 0 Repeats 1 Name "Default" } ChangeAttributes { Delay 0 Cooldown 0 Repeats 1 IfHealthBelow 10000 Name "AstrumPhase2" } EventChangeAttributes { Default { Skill Expert Attributes UseBossHealthBar Attributes Miniboss WeaponRestrictions PrimaryOnly Item "the pomson 6000" Item "the c.a.p.p.e.r" ItemAttributes { ItemName "the pomson 6000" "fire rate bonus" 0.6 "faster reload rate" -1 } ItemAttributes { ItemName "the c.a.p.p.e.r" "is_passive_weapon" 1 "damage bonus" 0.66 "clip size bonus" 100 "faster reload rate" -1 } CharacterAttributes { "move speed bonus" 0.4 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 4 "damage force reduction" 0.5 } } Reload { Skill Expert Attributes UseBossHealthBar Attributes Miniboss Attributes SuppressFire WeaponRestrictions PrimaryOnly Item "tf_weapon_grenadelauncher" ItemAttributes { ItemName "tf_weapon_grenadelauncher" "faster reload rate" 0.01 "fire rate bonus" 0.05 "clip size bonus" 4 "projectile spread angle penalty" 5 "fuse bonus" 2 } CharacterAttributes { "move speed bonus" 0.4 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 4 "damage force reduction" 0.5 } } // Mines // { // Skill Expert // Attributes UseBossHealthBar // Attributes Miniboss // Attributes AlwaysFireWeapon // Attributes HoldFireUntilFullReload // WeaponRestrictions PrimaryOnly // Item "tf_weapon_grenadelauncher" // ItemAttributes // { // ItemName "tf_weapon_grenadelauncher" // "faster reload rate" 0.01 // "fire rate bonus" 0.1 // "clip size bonus" 6 // "projectile spread angle penalty" 5 // "fuse bonus" 2 // } // CharacterAttributes // { // "move speed bonus" 0.4 // "airblast vulnerability multiplier" 0.5 // "override footstep sound set" 4 // "damage force reduction" 0.5 // } // } AstrumPhase2 { Attributes SuppressFire Skill Expert Attributes UseBossHealthBar Attributes Miniboss WeaponRestrictions PrimaryOnly CharacterAttributes { "move speed bonus" 0 "cancel falling damage" 1 "increased jump height" 0 "airblast vulnerability multiplier" 0.5 "damage force reduction" 0.5 "override footstep sound set" 4 } } } } } } } WaveSpawn { Where spawnbot_astrum Name "astrump2a" TotalCount 1 SpawnCount 1 WaitForAllDead "astrump1" Support Limited StartWaveOutput { Target teleport_boss Action Enable } RandomChoice { Squad { TFBot { Template T_TFBot_Giant_Demoman Health 7500 Attributes UseBossHealthBar Scale 1.6 Tag boss_teleport WeaponRestrictions PrimaryOnly Item "the pomson 6000" Item "the c.a.p.p.e.r" ItemAttributes { ItemName "the pomson 6000" "fire rate bonus" 0.6 "faster reload rate" -1 } ItemAttributes { ItemName "the c.a.p.p.e.r" "is_passive_weapon" 1 "damage bonus" 0.66 "clip size bonus" 100 "faster reload rate" -1 } CharacterAttributes { "move speed bonus" 0.4 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 4 "damage force reduction" 0.5 } FireInput { Target !self Action AddOutput Param "targetname theboss" Delay 0 Cooldown 0 Repeats 0 } FireInput { Target !self Action AddOutput Param "targetname notboss" Delay 1 Cooldown 0 Repeats 0 } FireInput { Target teleport_boss Action Disable Delay 0.01 Cooldown 0 Repeats 0 } } } } } WaveSpawn { Where spawnbot_astrum Name "astrump2b" TotalCount 1 SpawnCount 1 WaitForAllSpawned "astrump2a" Support Limited RandomChoice { Squad { TFBot { Template T_TFBot_Giant_Demoman Health 7500 Attributes UseBossHealthBar Scale 1.6 Tag boss_support CharacterAttributes { "move speed bonus" 0.4 "cancel falling damage" 1 } FireInput { Target teleport_boss_support Action Enable Delay 0 Cooldown 0 Repeats 0 } FireInput { Target teleport_boss_support Action Disable Delay 1 Cooldown 0 Repeats 0 } } } } } WaveSpawn { Name "astrump2adead" WaitForAllDead "astrump2a" } WaveSpawn { Name "astrump2bdead" WaitForAllDead "astrump2b" } WaveSpawn { Name "astrum_finish" WaitForAllDead "astrump2adead" WaitForAllSpawned "astrump2bdead" DoneOutput { Target astrum_end_relay Action Trigger } } WaveSpawn { Where spawnbot_purge Name "waveend" TotalCount 1 Support Limited RandomChoice { Squad { TFBot { Class Scout Tag wave_end } } } } WaveSpawn { Name "finish" WaitForAllDead "waveend" } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaitWhenDone 65 Checkpoint Yes WaveSpawn { Where spawnbot Name "start" SpawnCount 1 MaxActive 1 TotalCount 1 Squad { TFBot { Template T_TFBot_Giant_Pyro Name "Ceaseless Mmmmph" Health 1000 Attributes UseBossHealthBar Attributes AlwaysFireWeapon Attributes AlwaysCrit WeaponRestrictions MeleeOnly Item "the third degree" CustomWeaponModel { Slot 3 Model "models/weapons/w_models/w_minigun.mdl" } ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "flame_drag" 3.5 "flame_spread_degree" 4.5 "apply look velocity on damage" -150 "apply z velocity on damage" 75 "afterburn duration bonus" 0 "is_passive_weapon" 1 "damage bonus" 0.5 } ItemAttributes { ItemName "the third degree" "damage bonus" 69421 "fire rate bonus" 0.6 "crit forces victim to laugh" 1 "hit self on miss" 0.000001 } CharacterAttributes { "airblast vulnerability multiplier" 0.1 "airblast vertical vulnerability multiplier" 0.1 "dmg taken increased" 0.05 "move speed bonus" 0.4 } } TFBot { Class Medic Name "Dark Plasma" Health 5000 Attributes Miniboss WeaponRestrictions SecondaryOnly Item "TF_WEAPON_MEDIGUN" ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "uber duration bonus" 999 "bot medic uber health threshold" 6000 "heal rate bonus" 100 "ubercharge rate bonus" 500 } CharacterAttributes { "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "damage force reduction" 0 "dmg taken increased" 0.2 "dmg taken from bullets increased" 5 "dmg taken from blast increased" 5 "dmg taken from fire increased" 5 "dmg from melee increased" 3 "dmg taken from crit increased" 5 } } } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaitWhenDone 65 Checkpoint Yes WaveSpawn { Where spawnbot Name "start" WaitBeforeStarting 22 SpawnCount 1 MaxActive 1 TotalCount 1 FirstSpawnWarningSound "dogsummon.wav" TFBot { Template T_TFBot_Giant_Heavyweapons Name "Devourer of Sandvich" ClassIcon devourer Health 25000 Attributes UseBossHealthBar CharacterAttributes { "airblast vulnerability multiplier" 0.1 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.1 "dmg taken increased" 100000 } } DoneOutput { Target intel Action ForceReset } } WaveSpawn { Where spawnbot Name "guardian1" WaitBeforeStarting 6 SpawnCount 1 TotalCount 1 MaxActive 1 Support Limited RandomChoice { Squad { TFBot { Template T_TFBot_Heavyweapons_Fist Name "Sandvich Guardian" Health 2500 BehaviorModifiers Push Attributes IgnoreFlag ItemAttributes { ItemName "fists of steel" "damage bonus" 2 } CharacterAttributes { "cannot be backstabbed" 1 "move speed bonus" 1.2 } } } } } WaveSpawn { Where spawnbot_upper Name "guardian2" WaitBeforeStarting 25 SpawnCount 2 TotalCount 2 MaxActive 2 Support Limited RandomChoice { Squad { TFBot { Template T_TFBot_Heavyweapons_Fist Name "Sandvich Guardian" Health 2500 BehaviorModifiers Push Attributes IgnoreFlag ItemAttributes { ItemName "fists of steel" "damage bonus" 2 } CharacterAttributes { "cannot be backstabbed" 1 "move speed bonus" 1.2 } } } } } WaveSpawn { Name "music start" WaitForAllDead "start" WaitBeforeStarting 5 FirstSpawnWarningSound "universalcollapse.mp3" } WaveSpawn { Name "WORMHOLE_OPEN" WaitBeforeStarting 12.7 WaitForAllDead "start" DoneOutput { Target wormhole_start_relay Action Trigger } } WaveSpawn { Name "message" Where spawnbot_upper WaitBeforeStarting 10 WaitForAllDead "start" SpawnCount 1 TotalCount 1 Support Limited RandomChoice { Squad { TFBot { Class Scout Skill Expert Name "It's not over yet, babies!" SCale 0.5 Health 1 Attributes SuppressFire Attributes IgnoreFlag Attributes IgnoreEnemies Attributes Miniboss MaxVisionRange 1 BehaviorModifiers Push CharacterAttributes { "health regen" -1 "move speed bonus" 2 } } } } } WaveSpawn { Name "WORMHOLE_CLOSE" WaitForAllDead "start" WaitBeforeStarting 23 DoneOutput { Target wormhole_end_relay Action Trigger } } WaveSpawn { Where spawnbot_boss Name "edgyasshole" SpawnCount 1 MaxActive 1 TotalCount 1 WaitForAllDead "start" WaitBeforeStarting 14 Support Limited RandomChoice { Squad { TFBot { Template T_TFBot_Giant_Heavyweapons Name "Devourer of Sandvich" ClassIcon devourer_final Health 2160000 SCale 1.9 Attributes AlwaysFireWeapon Attributes UseBossHealthBar ItemAttributes { ItemName "tf_weapon_minigun" "ring of fire while aiming" 69420 "damage bonus" 2 "dmg bonus vs buildings" 2 "heal on kill" 350000 } ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_HWG" "damage bonus" 30 "fire rate bonus" 8 "faster reload rate" -999 "is_passive_weapon" 1 "override projectile type" 2 "projectile speed increased" 0.5 "Set DamageType Ignite" 1 "damage blast push" 150 "rocket specialist" 1 "fire rate bonus with reduced health" 0.4 } CharacterAttributes { "move speed bonus" 0.3 "airblast vulnerability multiplier" 0.1 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.1 "dmg taken increased" 20 "dmg from melee increased" 1.25 } } } } } WaveSpawn { Name "youwin" WaitForAllDead "edgyasshole" } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaitWhenDone 65 Checkpoint Yes SpawnTemplate //Phase 1 controller { Name "BossPhase1" } SpawnTemplate //Phase 2 controller { Name "BossPhase2" } SpawnTemplate //Phase 3 controller { Name "BossPhase3" } SpawnTemplate //Color Controller { Name "BossColor" } SpawnTemplate //Populator interface { Name "Interface" } WaveSpawn { Where spawnbot_supportp2 Name "bosssupport2" SpawnCount 1 MaxActive 1 TotalCount 1 WaitBetweenSpawns 1 WaitBeforeStarting 5 Support 1 TFBot { Template T_TFBot_Heavyweapons_Fist Name "Sandvich Guardian" Health 2000 Tag boss_support Action Mobber Item "the razorback" ItemAttributes { ItemName "fists of steel" "damage bonus" 2 "damage causes airblast" 1 } ItemAttributes { ItemName "the razorback" "is invisible" 1 } } } WaveSpawn { Where spawnbot_supportfinal Name "bosssupportfinal" SpawnCount 3 MaxActive 3 TotalCount 3 WaitBetweenSpawns 1 WaitBeforeStarting 5 Support Limited TFBot { Template T_TFBot_Heavyweapons_Fist Name "Sandvich Guardian" Health 2000 Tag boss_support Action Mobber Item "the razorback" ItemAttributes { ItemName "fists of steel" "damage bonus" 2 "damage causes airblast" 1 } ItemAttributes { ItemName "the razorback" "is invisible" 1 } } } WaveSpawn { Where spawnbot_boss Name "edgyasshole" SpawnCount 1 MaxActive 1 TotalCount 1 WaitBeforeStarting 3 Support Limited DoneOutput { Target correction_blue Action Disable } RandomChoice { Squad { TFBot { Class Heavyweapons Name "Devourer of Sandvich" ClassIcon devourer_final Skill Expert Attributes UseBossHealthBar Attributes Miniboss Health 2160000 SCale 1.9 FireInput { Target "theboss" Action "AddOutput" Param "targetname notboss" Delay 0 Cooldown 0 Repeats 1 } FireInput { Target !self Action "AddOutput" Param "targetname theboss" Delay 0.1 Cooldown 0 Repeats 1 } FireInput { Target "boss_phase1_start" Action Trigger Delay 0 Cooldown 0 Repeats 1 } FireInput { Target "boss_phase2_start" Action Trigger Delay 0 Cooldown 0 Repeats 1 IfHealthBelow 2155000 } FireInput { Target "boss_phase3_start" Action Trigger Delay 0 Cooldown 0 Repeats 1 IfHealthBelow 2140000 } EventChangeAttributes //Do not attempt to put any of custom keys here. ExtAttr is the only exception { Default //Base passive state { Skill Expert Attributes UseBossHealthBar Attributes Miniboss Attributes AlwaysFireWeapon WeaponRestrictions PrimaryOnly Item "tf_weapon_minigun" Item "tf_weapon_shotgun_hwg" Item "the eviction notice" Tag boss_teleport Tag boss ItemAttributes { ItemName "tf_weapon_minigun" "ring of fire while aiming" 69420 "damage bonus" 1.5 "mod minigun can holster while spinning" 1 } ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_HWG" "damage bonus" 30 "dmg bonus vs buildings" 15 "fire rate bonus" 8 "faster reload rate" -999 "is_passive_weapon" 1 "override projectile type" 2 "projectile speed increased" 0.5 "Set DamageType Ignite" 1 "damage blast push" 150 "rocket specialist" 1 "fire rate bonus with reduced health" 0.4 "custom projectile model" "models/weapons/w_models/w_drg_ball.mdl" } CharacterAttributes { "move speed bonus" 0.35 "airblast vulnerability multiplier" 0.1 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.1 "dmg taken increased" 20 "mod shovel speed boost" 2 "cancel falling damage" 1 } } MeleeP1 //Chases players around { Skill Expert Attributes UseBossHealthBar Attributes Miniboss BehaviorModifiers Mobber WeaponRestrictions SecondaryOnly Item "rocket jumper" Item "the family business" Item "tf_weapon_fists" ItemAttributes { ItemName "tf_weapon_fists" "damage bonus" 9999 "fire rate bonus" 0.4 "damage causes airblast" 1 "is_passive_weapon" 1 } ItemAttributes { ItemName "the family business" "damage penalty" 30 "clip size bonus" 1 "fire rate bonus" 6 "faster reload rate" -999 "override projectile type" 2 "projectile speed increased" 0.5 "Set DamageType Ignite" 1 "damage blast push" 150 "rocket specialist" 1 "fire rate bonus with reduced health" 0.4 "is invisible" 1 "custom projectile model" "models/weapons/w_models/w_drg_ball.mdl" } CharacterAttributes { "move speed bonus" 1 "airblast vulnerability multiplier" 0.1 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.1 "dmg taken increased" 20 "cancel falling damage" 1 "cannot be sapped" 1 } } Phase2 { Item "rocket jumper" ItemAttributes { ItemName "rocket jumper" "is invisible" 1 } } LaserP2Start //Start of Laser phase, lasts for 1 second and allows players to prepare to dodge { Skill Normal Attributes SuppressFire Attributes IgnoreFlag WeaponRestrictions SecondaryOnly Item "rocket jumper" Item "the wrangler" Item "the eviction notice" ItemAttributes { ItemName "rocket jumper" "is invisible" 1 } ItemAttributes { ItemName "the wrangler" "is invisible" 1 } CharacterAttributes { "move speed bonus" 0 "increased jump height" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "rage giving scale" 0.1 "dmg taken increased" 10 "cancel falling damage" 1 "cannot be backstabbed" 1 } } LaserP2 //Stops moving and fires instant kill lasers, takes half damage { Skill Normal Attributes AlwaysFireWeapon Attributes IgnoreFlag WeaponRestrictions SecondaryOnly Item "shooting star" Item "the wrangler" Item "the third degree" ItemAttributes { ItemName "shooting star" "damage bonus" 69420 "damage causes airblast" 1 "projectile penetration" 1 "sniper only fire zoomed" 0 "is_passive_weapon" 1 "ragdolls plasma effect" 1 "is invisible" 1 } ItemAttributes { ItemName "the wrangler" "is invisible" 1 } ItemAttributes { ItemName "the third degree" "is invisible" 1 } CharacterAttributes { "move speed bonus" 0 "increased jump height" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "rage giving scale" 0.1 "dmg taken increased" 10 "cancel falling damage" 1 "cannot be backstabbed" 1 } } PassiveP2 //Slightly increased speed to account for less time in this phase { Skill Expert Attributes UseBossHealthBar Attributes Miniboss Attributes AlwaysFireWeapon WeaponRestrictions PrimaryOnly Item "tf_weapon_minigun" Item "tf_weapon_shotgun_hwg" Item "the eviction notice" Tag boss_teleport ItemAttributes { ItemName "tf_weapon_minigun" "ring of fire while aiming" 69420 "damage bonus" 1.5 "mod minigun can holster while spinning" 1 } ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_HWG" "damage bonus" 30 "dmg bonus vs buildings" 15 "fire rate bonus" 8 "faster reload rate" -999 "is_passive_weapon" 1 "override projectile type" 2 "projectile speed increased" 0.5 "Set DamageType Ignite" 1 "damage blast push" 150 "rocket specialist" 1 "fire rate bonus with reduced health" 0.4 "custom projectile model" "models/weapons/w_models/w_drg_ball.mdl" } CharacterAttributes { "move speed bonus" 0.35 "airblast vulnerability multiplier" 0.1 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.1 "dmg taken increased" 20 "mod shovel speed boost" 2 "cancel falling damage" 1 } } MeleeP2 //Chases players around but faster and with increased fire rate of rockets { Skill Expert Attributes UseBossHealthBar Attributes Miniboss BehaviorModifiers Mobber WeaponRestrictions SecondaryOnly Item "rocket jumper" Item "the family business" Item "tf_weapon_fists" ItemAttributes { ItemName "tf_weapon_fists" "damage bonus" 9999 "fire rate bonus" 0.4 "damage causes airblast" 1 "is_passive_weapon" 1 } ItemAttributes { ItemName "the family business" "damage penalty" 30 "clip size bonus" 1 "fire rate bonus" 4 "faster reload rate" -999 "override projectile type" 2 "projectile speed increased" 0.5 "Set DamageType Ignite" 1 "damage blast push" 150 "rocket specialist" 1 "fire rate bonus with reduced health" 0.4 "is invisible" 1 "custom projectile model" "models/weapons/w_models/w_drg_ball.mdl" } CharacterAttributes { "move speed bonus" 1.2 "airblast vulnerability multiplier" 0.1 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.1 "dmg taken increased" 20 "cancel falling damage" 1 "cannot be sapped" 1 } } Phase3 { Tag boss_phase3 Item "rocket jumper" ItemAttributes { ItemName "rocket jumper" "is invisible" 1 } } PassiveP3 //Faster fire rate of minigun and rockets { Tag boss_teleport Skill Expert Attributes UseBossHealthBar Attributes Miniboss Attributes AlwaysFireWeapon WeaponRestrictions PrimaryOnly Item "tf_weapon_minigun" Item "the panic attack shotgun" Item "the eviction notice" ItemAttributes { ItemName "tf_weapon_minigun" "ring of fire while aiming" 69420 "damage bonus" 1.5 "fire rate bonus" 0.7 "mod minigun can holster while spinning" 1 } ItemAttributes { ItemName "the panic attack shotgun" "damage penalty" 30 "dmg bonus vs buildings" 15 "fire rate bonus" 5 "faster reload rate" -999 "is_passive_weapon" 1 "override projectile type" 2 "projectile speed increased" 0.5 "Set DamageType Ignite" 1 "damage blast push" 150 "rocket specialist" 1 "fire rate bonus with reduced health" 0.4 "custom projectile model" "models/weapons/w_models/w_drg_ball.mdl" } CharacterAttributes { "move speed bonus" 0.45 "airblast vulnerability multiplier" 0.1 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.1 "dmg taken increased" 20 "mod shovel speed boost" 2 "cancel falling damage" 1 } } } } } } } WaveSpawn { Name "youwin" WaitForAllDead "edgyasshole" } } }