///////////////////////////////////////////////////////////////////// // BEGIN POP FILE ///////////////////////////////////////////////////////////////////// // ========== Base Templates ========== #base robot_giant.pop #base robot_standard.pop #base robot_click.pop #base robot_click_giant.pop #base robot_hole_sigsegv.pop #base robot_bro.pop #base robot_hole.pop #base robot_sig_tank.pop WaveSchedule { StartingCurrency 20000 // 1500 줄 예정 CanBotsAttackWhileInSpawnRoom Yes //keep this so companion bots can combat spawn camping RespawnWaveTimeBlue 1 //replaces the normal respawn kv's FixedRespawnWaveTimeBlue 1 // Essential stuff ReverseWinConditions 1 AllowJoinTeamBlueMax 6 AllowJoinTeamBlue 1 HumansMustJoinTeam Blue SetCreditTeam 3 SniperAllowHeadshots 1 //sniper and amby un-exist without this, use AimAt Body if you don't want your sniper bots headshotting // MaxTotalPlayers 6 // currently doesn't work in reverse SendBotsToSpectatorImmediately 1 //keeps the populator less clogged, bot projectiles vanish on death + causes weird killcams RobotLimit 22 FlagCarrierMovementPenalty 0.5 // Overrides flag carrier movement penalty (default: 0.5) BluHumanFlagCapture 1 BluHumanFlagPickup 1 TextPrintTime 0 RespawnWaveTime 5 CanBotsAttackWhileInSpawnRoom no ///////////// //Precache ///////////// PrecacheModel "models\bots\boss_bot\boss_tankred.mdl" PrecacheModel "models\bots\boss_bot\boss_blimpred.mdl" ItemAttributes { ItemName "Upgradable TF_WEAPON_PIPEBOMBLAUNCHER" "attach particle effect" 702 } PointTemplates { flag { NoFixup 1 item_teamflag { "targetname" "flag" "angles" "0 180 0" "flag_icon" "../hud/objectives_flagpanel_carried" //this is the hud icon that represents the flag "flag_model" "models/props_td/atom_bomb.mdl" //you can replace the model of the flag if you know the file name "flag_paper" "player_intel_papertrail" //this is the paper trail particle that emits whenever you move with the flag, this can also be changed "flag_trail" "flagtrail" //this is the team colored trail particle "GameType" "1" //1 sets the flag to "Attack/Defend" which only allows the flag to be picked up by its own team rather than the opposing team, you also cannot pick up neutral flags, set it to 0 to work as a normal flag in Capture The Flag gamemode "NeutralType" "1" "ReturnBetweenWaves" "1" "ReturnTime" "60000" "ScoringType" "0" "StartDisabled" "0" "TeamNum" "3" //changing this number affects which team the flag belongs to, 0 for neutral (both teams can pick it up), 1 for spectator (same as 0), 2 for red and 3 for blue "trail_effect" "1" } } flagdetectionzone { NoFixup 1 func_flagdetectionzone { "classname" "func_flagdetectionzone" "mins" "-92 -92 -92" "maxs" "92 92 92" "spawnflags" "1" //"TeamNum" keyvalue exist for this entity though i have not tested it ////////////////////////////////////////////editable outputs//////////////////////////////////////////// "OnStartTouchFlag" "bots_win,RoundWin,,0,-1" "OnEndTouchFlag" "bots_win,RoundWin,,0,-1" "OnDroppedFlag" "bots_win,RoundWin,,0,-1" "OnPickedUpFlag" "bots_win,RoundWin,,0,-1" } } flagalert { NoFixup 1 func_flag_alert { "classname" "func_flag_alert" "mins" "-92 -92 -92" "maxs" "92 92 92" "spawnflags" "1" //"TeamNum" keyvalue exist for this entity though i have not tested it ////////////////////////////////////////////editable outputs//////////////////////////////////////////// "OnTriggerByTeam1" "bots_win,RoundWin,,0,-1" "OnTriggerByTeam2" "bots_win,RoundWin,,0,-1" } } barriers //spawn blocker { NoFixup 1 func_forcefield { "disablereceiveshadows" "0" "origin" "0 0 0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "spawnbarrierA1" "parentname" "spawnbarrierA" "mins" "-300 -100 -300" "maxs" "300 100 1100" "StartDisabled" "0" } NoFixup 1 prop_dynamic //prop for show { "targetname" "spawnbarrierA" "angles" "0 0 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "model" "models/props_vehicles/train_flatcar_container.mdl" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "modelscale" "1.5" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "0" "renderfx" "16" //hologram effect, see renderfx section on the developer wiki for more "rendermode" "0" "SetBodyGroup" "0" "skin" "1" //set to 1 for red traincar, many props separate different variants through skins "CollisionGroup" "0" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "origin" "0 0 0" } } station { func_upgradestation { "mins" "-105 -100 0" "maxs" "105 100 242" "solid" "0" } NoFixup 1 prop_dynamic { "targetname" "upgradestation" "angles" "0 0 0" "DisableBoneFollowers" "0" "disablereceiveshadows" "0" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "model" "models\props_mvm\mvm_upgrade_blu_center.mdl" "modelscale" "1" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "255" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "0 0 0" } NoFixup 1 prop_dynamic { "targetname" "upgradestation1" "angles" "0 0 0" "DisableBoneFollowers" "0" "disablereceiveshadows" "0" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "model" "models\props_mvm\mvm_upgrade_blu_tools.mdl" "modelscale" "1" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "255" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "0 0 0" } func_upgradestation { "mins" "-100 -100 0" "maxs" "90 60 100" "parentname" "upgradestation" } NoFixup 1 prop_dynamic { "targetname" "shopcollision" "angles" "0 -90 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "model" "models/props_vehicles/train_flatcar_container.mdl" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "modelscale" "1" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "0" "renderfx" "0" "rendermode" "10" "SetBodyGroup" "0" "skin" "0" "CollisionGroup" "5" "solid" "6" "spawnflags" "0" "StartDisabled" "0" "origin" "0 0 0" } } disablebarrier { NoFixup 1 trigger_multiple { "targetname" "thirdperson" "StartDisabled" "1" "spawnflags" "3" "origin" "268 510 49" "maxs" "50 50 50" "mins" "-50 -50 -50" "filtername" "filter_blue" "OnStartTouch" "!activator,setforcedtauntcam,1,0.1,-1" "OnStartTouch" "!activator,SetHUDVisibility,0,0.1,-1" "OnStartTouch" "!activator,DisableDamageForces,,0,-1" "OnEndTouch" "!activator,setforcedtauntcam,0,0,-1" "OnEndTouch" "!activator,SetHUDVisibility,1,0,-1" "OnEndTouch" "!activator,EnableDamageForces,,0,-1" } } towngate1 { NoFixup 1 prop_dynamic { "targetname" "stop1" "classname" "prop_dynamic" "model" "models\props_vehicles\train_flatcar_container.mdl" "disableshadows" "1" "modelscale" "1" "SetBodyGroup" "0" "skin" "1" "solid" "6" "spawnflags" "0" } OnSpawnOutput { Target boss_deploy_relay Action AddOutput Param "OnTrigger kill_buildings_relay:trigger:0:-1" } } towngate1_1 { NoFixup 1 prop_dynamic { "targetname" "stop2" "classname" "prop_dynamic" "model" "models\props_vehicles\train_flatcar_container.mdl" "disableshadows" "1" "modelscale" "1" "SetBodyGroup" "0" "skin" "1" "solid" "6" "spawnflags" "0" } } towngate1_2 { NoFixup 1 prop_dynamic { "targetname" "stop3" "classname" "prop_dynamic" "model" "models\props_vehicles\train_flatcar_container.mdl" "disableshadows" "1" "modelscale" "1" "SetBodyGroup" "0" "skin" "1" "solid" "6" "spawnflags" "0" } } towngate1_3 { NoFixup 1 prop_dynamic { "targetname" "stop4" "classname" "prop_dynamic" "model" "models\props_vehicles\train_flatcar_container.mdl" "disableshadows" "1" "modelscale" "1" "SetBodyGroup" "0" "skin" "1" "solid" "6" "spawnflags" "0" } } towngate1_4 { NoFixup 1 prop_dynamic { "targetname" "stop5" "classname" "prop_dynamic" "model" "models\props_vehicles\train_flatcar_container.mdl" "disableshadows" "1" "modelscale" "1" "SetBodyGroup" "0" "skin" "1" "solid" "6" "spawnflags" "0" } } towngate1_5 { NoFixup 1 prop_dynamic { "targetname" "stop6" "classname" "prop_dynamic" "model" "models\props_vehicles\train_flatcar_container.mdl" "disableshadows" "1" "modelscale" "1" "SetBodyGroup" "0" "skin" "1" "solid" "6" "spawnflags" "0" } } towngate2 { NoFixup 1 func_forcefield { "disablereceiveshadows" "0" "origin" "64 1192 835" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "towncovercollision" "parentname" "towncover" "mins" "-500 -240 -200" "maxs" "500 240 200" "StartDisabled" "0" } NoFixup 1 logic_relay { "targetname" "unblocktown" "OnTrigger" "towncover*,Disable,,0,-1" "OnTrigger" "towncover*,DisableCollision,,0.01,-1" "OnTrigger" "townopen,Show,,0,-1" "OnTrigger" "thirdperson,Enable,,0,-1" } } suicidetank { NoFixup 1 logic_relay { "targetname" "tank_boom" "OnTrigger" "tank_boss,RemoveHealth,200000,0,-1" "OnTrigger" "tank_boss,RemoveHealth,200000,0,-1" } } redtankifier { NoFixup 1 logic_relay { "targetname" "red_tank_relay" "OnTrigger" "tank_boss,Setteam,2,0,-1" } OnSpawnOutput { Target cap_hatch_glasswindow Action AddOutput Param "targetname no" } } redwin { NoFixup 1 game_round_win { "origin" "55.97 2771.96 -218.70" "TeamNum" "2" "targetname" "bots_win_red" "switch_teams" "0" "force_map_reset" "1" "classname" "game_round_win" } OnSpawnOutput { Target cap_hatch_destroy_delete_prop Action AddOutput Param "targetname no" } } redwinGFX { NoFixup 1 logic_relay { "origin" "55.97 2771.96 -218.70" "targetname" "redwin_relay" "OnTrigger" "bots_win_red,RoundWin,,0,-1" "OnTrigger" "pit_explosion_wav,PlaySound,,0,-1" "OnTrigger" "player,SetHealth,0,0,-1" } } bluwin { NoFixup 1 game_round_win { "origin" "-1611.31 4748.55 169.35" "TeamNum" "3" "targetname" "bots_win" "switch_teams" "0" "force_map_reset" "1" "classname" "game_round_win" } } bluwin2 { NoFixup 1 logic_relay { "origin" "-1611.31 4748.55 169.35" "targetname" "bluwin_relay" "OnTrigger" "bots_win,RoundWin,,0,-1" "OnTrigger" "pit_explosion_wav,PlaySound,,0,-1" "OnTrigger" "player,setforcedtauntcam,1,0.1,-1" } } corelogic //all the things we want to automatically run when the popfile loads. Use this the most to avoid spaghetti { NoFixup 1 logic_auto { //AddOutput can be used to connect our own home-brewed point templates to existing map logic like so: "OnMapSpawn" "wave_start_relay*,AddOutput,OnTrigger spawnbarrier*:Disable:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger spawnbarrier*:Enable:0:-1" } NoFixup 1 func_forcefield { "disablereceiveshadows" "0" "origin" "-1 -1919 450" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "hatchcovercollision" "parentname" "hatchcover" "mins" "-100 -120 -100" "maxs" "100 120 100" "StartDisabled" "0" } NoFixup 1 prop_dynamic { "targetname" "hatchcover" "angles" "0 0 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "model" "models/props_hydro/water_machinery2.mdl" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "1024" "fadescale" "0.75" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "modelscale" "1.0" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "254" "rendercolor" "100 100 255" "renderfx" "9" "rendermode" "0" "SetBodyGroup" "0" "CollisionGroup" "1" "skin" "0" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "origin" "-1 -1919 340" } NoFixup 1 logic_relay { "targetname" "unblockhatch" "OnTrigger" "hatchcover*,Disable,,0,-1" "OnTrigger" "hatchcover*,DisableCollision,,0.01,-1" "OnTrigger" "hatchopen,Show,,0,-1" "OnTrigger" "thirdperson,Enable,,0,-1" } func_nav_prerequisite { "targetname" "hatchnav" "mins" "-8000 -8000 -8000" "maxs" "8000 8000 8000" "Entity" "hatchspawn" "filtername" "filter_hatchspawn" "origin" "-1 -1919 418" "spawnflags" "1" "start_disabled" "0" "StartDisabled" "0" "Task" "2" "Value" "-1" } filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "bot_hatchspawn" "targetname" "filter_hatchspawn" } } } // This Templates only work in Protown, If you want use this Template on other maps, please change the cordinates. SpawnTemplate //specify origin/angles here for templates we use multiple times { Name "station" "origin" "-97.61 5287.97 380.93" "angles" "0 -90 0" } SpawnTemplate //specify origin/angles here for templates we use multiple times { Name "station" "origin" "990.12 2080.01 390.86" "angles" "0 0 0" } SpawnTemplate //specify origin/angles here for templates we use multiple times { Name "station" "origin" "-2045.54 2407.59 223.11" "angles" "0 0 0" } SpawnTemplate { Name "barriers" //use these if your map has no spawn door "origin" "-23.71 2998.97 454.68" "angles" "0 0 0" } SpawnTemplate { Name "barriers" //use these if your map has no spawn door "origin" "880.13 2534.34 381.59" "angles" "0 -90 0" } SpawnTemplate { Name "barriers" //use these if your map has no spawn door "origin" "-891.36 2418.32 464.70" "angles" "0 90 0" } SpawnTemplate "corelogic" SpawnTemplate "suicidetank" SpawnTemplate "redtankifier" SpawnTemplate "redwin" SpawnTemplate "redwinGFX" // This Templates only work in Protown, If you want use this Template on other maps, please change the cordinates. // Bomb Spawn ExtraSpawnPoint { Name "spawnbot_bomb" TeamNum 3 X "71" Y "2631" Z "260" } // Timer Spawn ExtraSpawnPoint { Name "spawnbot_timer" TeamNum 3 X "1133" Y "2077" Z "459" } // Front Spawn ExtraSpawnPoint { Name "spawnbot_engineer1" TeamNum 2 X "571" Y "1924" Z "571" } ExtraSpawnPoint { Name "spawnbot_frontright" TeamNum 2 X "789" Y "1740" Z "571" } ExtraSpawnPoint { Name "spawnbot_frontleft" TeamNum 2 X "-466" Y "1482" Z "571" } ExtraSpawnPoint { Name "spawnbot_front" TeamNum 2 X "9" Y "1825" Z "290" } // Middle Spawn ExtraSpawnPoint { Name "spawnbot_middleright" TeamNum 2 Y "722" X "1225" Z "651" } ExtraSpawnPoint { Name "spawnbot_middleleft" TeamNum 2 X "-528" Y "829" Z "522" } ExtraSpawnPoint { Name "spawnbot_middlelower" TeamNum 2 X "918" Y "180" Z "523" } // Only can spawn mini robot, not giant ExtraSpawnPoint { Name "spawnbot_middleupper1" TeamNum 2 X "-708" Y "-518" Z "811" } // Only can spawn mini robot, not giant ExtraSpawnPoint { Name "spawnbot_middleupper2" TeamNum 2 X "-307" Y "227" Z "539" } // Center, Can spawn engi and spy ExtraSpawnPoint { Name "spawnbot_sniper1" TeamNum 2 X "4" Y "-606" Z "811" } // Right bridge ExtraSpawnPoint { Name "spawnbot_sniper2" TeamNum 2 X "1051" Y "-516" Z "811" } // Leftside ExtraSpawnPoint { Name "spawnbot_engineer2" TeamNum 2 X "-1295" Y "395" Z "715" } // Rightside ExtraSpawnPoint { Name "spawnbot_engineer3" TeamNum 2 X "612" Y "904" Z "492" } // Crossline spawn ExtraSpawnPoint { Name "spawnbot_crossleft" TeamNum 2 X "-1419" Y "-812" Z "651" } ExtraSpawnPoint { Name "spawnbot_sniper3" TeamNum 2 X "-1313" Y "-1374" Z "715" } ExtraSpawnPoint { Name "spawnbot_crossright" TeamNum 2 X "968" Y "-1012" Z "587" } ExtraSpawnPoint { Name "spawnbot_engineer4" TeamNum 2 X "1465" Y "-1631" Z "779" } // Hatch Spawn ExtraSpawnPoint { Name "spawnbot_hatchright" TeamNum 2 X "704" Y "-2175" Z "427" } ExtraSpawnPoint { Name "spawnbot_hatchleft" TeamNum 2 X "-1175" Y "-2080" Z "715" } ExtraSpawnPoint { Name "spawnbot_hatch" TeamNum 2 X "-1" Y "-1919" Z "483" } // Red base ExtraSpawnPoint { Name "spawnbot_sniper4" TeamNum 2 X "-44" Y "-2536" Z "587" } ExtraTankPath { Name "redtank1" Node "343 -1922 431" Node "700 -1932 462" Node "716 -1154 587" Node "410 -1172 587" Node "-707 -1171 587" Node "-917 -706 589" Node "-880 66 523" Node "-660 490 524" Node "31 822 491" Node "55 2592 267" } ExtraTankPath { Name "bomb1" Node "-183 252 527" Node "-855 29 523" } ////////////// // TEMPLATE ////////////// Templates { // Spy T_TFBot_Spy_Red { Class Spy Skill Expert AddCond { Name "TF_COND_REPROGRAMMED" } } // Sniper T_TFBot_Sniper_Razorback_Red { Class Sniper Name "Razorback Sniper" Skill Hard Item "The Razorback" MaxVisionRange 2500 AddCond { Name "TF_COND_REPROGRAMMED" } } } ///////////// // MISSIONS ///////////// // Wave 1 // Sniper Mission { Objective Sniper Where spawnbot_sniper2 BeginAtWave 1 RunForThisManyWaves 1 InitialCooldown 40 CooldownTime 40 DesiredCount 2 TFBot { Template T_TFBot_Sniper_Razorback_Red } } // Wave 2 // Spy Mission { Objective Spy Where spawnbot_sniper2 BeginAtWave 2 RunForThisManyWaves 1 InitialCooldown 0 CooldownTime 40 DesiredCount 2 TFBot { Template T_TFBot_Spy_Red } } ////////// // WAVES ////////// /////////////////////////////////////////////////////////////////////// // Wave 1 // Starting Currency : 0 // Total (in this wave) : 0 + 100 (bonus) // Total (when wave ends) : 0 + 0 + 100 (bonus) = 0 // ==================================================================== // Stage 1 : // Stage 2 : // Stage 3 : // ==================================================================== // Mission : Sniper // Infinite: Scout /////////////////////////////////////////////////////////////////////// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } Checkpoint Yes Explanation { Line "{green}--------------------------------------------------------------------------------" Line "{red} 폭탄을 투입구에 집어넣으면 승리합니다." Line "{yellow} 투입구는 특정 로봇을 파괴하면 열립니다." Line "{blue} 이번 웨이브에선 사기증진 솔저가 팀을 지원합니다." Line "{green}--------------------------------------------------------------------------------" } SpawnTemplate { Name "flag" "origin" "59 2822 195" "angles" "0 0 0" } // Red Tank Logic WaveSpawn { Where spawnbot Name "redtankifier" TotalCount 0 MaxActive 0 SpawnCount 0 WaitBeforeStarting 25.25 TotalCurrency 0 Support 1 FirstSpawnOutput { Target red_tank_relay Action Trigger } RandomChoice { RandomChoice { TFBot { Class Scout } } } } // Red Tank Logic WaveSpawn { Where spawnbot Name "redtankifier" TotalCount 0 MaxActive 0 SpawnCount 0 WaitBeforeStarting 55.25 TotalCurrency 0 Support 1 FirstSpawnOutput { Target red_tank_relay Action Trigger } RandomChoice { RandomChoice { TFBot { Class Scout } } } } // Blu Support WaveSpawn { Where spawnbot Name Wave1_Blu TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 15 Support 1 TotalCurrency 0 TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Attributes IgnoreFlag Classicon blu_lite Skill Hard Action FetchFlag } } //////////////////////////////////// Main Wave //////////////////////////////////// // Red Tank 1 WaveSpawn { Where spawnbot Name Wave1_Redtank1 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 25 WaitBetweenSpawns 0 TotalCurrency 200 FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 20000 Speed 75 Name "tankbossred" Classicon tank_red Model "models/bots/boss_bot/boss_tankred.mdl" StartingPathTrackNode "redtank1_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target redwin_relay Action Trigger } } } // Red Tank 2 WaveSpawn { Where spawnbot Name Wave1_Redtank2 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 55 WaitBetweenSpawns 0 TotalCurrency 200 FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 20000 Speed 75 Name "tankbossred" Classicon tank_red Model "models/bots/boss_bot/boss_tankred.mdl" StartingPathTrackNode "redtank1_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target redwin_relay Action Trigger } } } // Main 1 WaveSpawn { Where spawnbot_middleleft Name Wave1_Main1 TotalCount 24 MaxActive 6 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 12 TotalCurrency 100 TFBot { Template T_TFBot_Soldier_Direct Skill Hard Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } WaveSpawn { Where spawnbot_frontleft Name Wave1_Main1 TotalCount 28 MaxActive 8 SpawnCount 4 WaitBeforeStarting 6 WaitBetweenSpawns 10 TotalCurrency 300 TFBot { Template T_TFBot_Pyro_Slow Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } WaveSpawn { Where spawnbot_crossright Name Wave1_Bridge TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 15 WaitBetweenSpawns 30 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons Attributes IgnoreFlag Tag bot_hatchspawn AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } TFBot { Template T_TFBot_Giant_Medic Attributes IgnoreFlag Tag bot_hatchspawn CharacterAttributes { "damage force reduction" 0 } AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } } // Main 2 WaveSpawn { Where spawnbot_hatch WaitForAllDead Wave1_Main1 Name Wave1_Hatch TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 20 WaitBetweenSpawns 0 TotalCurrency 100 DoneOutput { Target unblockhatch Action Trigger } Squad { TFBot { Template T_TFBot_Giant_Heavyweapons Attributes IgnoreFlag Tag bot_hatchspawn AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } TFBot { Template T_TFBot_Giant_Medic Attributes IgnoreFlag Tag bot_hatchspawn AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } } // Bonk WaveSpawn { Where spawnbot_crossright WaitForAllSpawned Wave1_Bridge Name Wave1_Main2 TotalCount 30 MaxActive 10 SpawnCount 5 WaitBeforeStarting 10 WaitBetweenSpawns 10 TotalCurrency 100 Support 1 TFBot { Template T_TFBot_Scout_Sandman_Bonk Attributes AlwaysCrit Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } // SMG WaveSpawn { Where spawnbot_hatchright WaitForAllSpawned Wave1_Bridge Name Wave1_Main2 TotalCount 16 MaxActive 6 SpawnCount 4 WaitBeforeStarting 10 WaitBetweenSpawns 15 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Sniper_SMG_Critboost Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } TFBot { Template T_TFBot_Medic_Shield Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } } WaveSpawn { Where spawnbot_hatchleft WaitForAllDead Wave1_Main1 Name Wave1_Infinite TotalCount 200 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 30 TotalCurrency 0 TFBot { Class Scout Skill Normal Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" // change a blu bot to a red bot } Action Mobber } } } ////////// // WAVES ////////// /////////////////////////////////////////////////////////////////////// // Wave 2 // Starting Currency : 0 // Total (in this wave) : 0 + 100 (bonus) // Total (when wave ends) : 0 + 0 + 100 (bonus) = 0 // ==================================================================== // Stage 1 : // Stage 2 : // Stage 3 : // ==================================================================== // Mission : /////////////////////////////////////////////////////////////////////// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } Checkpoint Yes Explanation { Line "{green}--------------------------------------------------------------------------------" Line "{red} 이번 웨이브에선 탱크를 호송해야 합니다." Line "{yellow} 탱크는 2대가 등장하며, 탱크가 모두 파괴되면 패배하게 됩니다." Line "{blue} 이번 웨이브에선 실드 메딕이 팀을 지원합니다." Line "{green}--------------------------------------------------------------------------------" } // Infinite WaveSpawn { Where spawnbot_hatchright WaitForAllDead Wave2_Main2 Name Wave2_Infinite TotalCount 200 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 20 TotalCurrency 0 TFBot { Template T_TFBot_Scout_Blaster_Pusher Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } // Tank 1 WaveSpawn { Where spawnbot Name Wave2_Tank1 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 200 Support Limited FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 40000 Speed 75 Name "Tank" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target redwin_relay Action Trigger } } } // Tank 2 WaveSpawn { Where spawnbot WaitForAllDead Wave2_Tank1 Name Wave2_Tank2 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 200 Support Limited Tank { Health 30000 Speed 75 Name "Tank" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target redwin_relay Action Trigger } } } // Blu Tank Logic WaveSpawn { Where spawnbot WaitForAllDead Wave2_Tank2 Name "blutankdestroy" TotalCount 0 MaxActive 0 SpawnCount 0 WaitBeforeStarting 5 TotalCurrency 0 Support 1 FirstSpawnOutput { Target redwin_relay Action Trigger } RandomChoice { RandomChoice { TFBot { Class Scout } } } } // Blu Support WaveSpawn { Where spawnbot WaitForAllDead Wave2_Tank1 Name Wave2_Infinite TotalCount 3 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 20 TotalCurrency 0 Support Limited TFBot { Template T_TFBot_Medic_Shield Classicon blu_lite Attributes IgnoreFlag Action Mobber } } //////////////////////////////////// Main Wave //////////////////////////////////// // Main 1 // Penetration Heavy WaveSpawn { Where spawnbot_middlelower Name Wave2_Main1 TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 20 WaitBetweenSpawns 0 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Demo_Scatter Attributes IgnoreFlag Attributes AlwaysCrit AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } TFBot { Template T_TFBot_Medic Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } } // Soldier WaveSpawn { Where spawnbot_middleupper1 Name Wave2_Main1 TotalCount 8 MaxActive 4 SpawnCount 2 WaitBeforeStarting 15 WaitBetweenSpawns 10 TotalCurrency 200 Squad { TFBot { Class Soldier Skill Expert Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } TFBot { Template T_TFBot_Medic_Kritzkrieg Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } } // Soldier WaveSpawn { Where spawnbot_middleupper2 Name Wave2_Main1 TotalCount 8 MaxActive 4 SpawnCount 2 WaitBeforeStarting 15 WaitBetweenSpawns 10 TotalCurrency 200 Squad { TFBot { Class Soldier Skill Expert Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } TFBot { Template T_TFBot_Medic_Kritzkrieg Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } } // Heavy WaveSpawn { Where spawnbot_frontleft Name Wave2_Main1 TotalCount 18 MaxActive 6 SpawnCount 6 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 200 TFBot { Template T_TFBot_Heavy_Penetration Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } // Penetration Heavy WaveSpawn { Where spawnbot_middleleft Name Wave2_Main1 TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 40 WaitBetweenSpawns 0 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Demo_Scatter Attributes IgnoreFlag Attributes AlwaysCrit AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } TFBot { Template T_TFBot_Medic Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } TFBot { Template T_TFBot_Medic Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } } // Main 2 // Battalion WaveSpawn { Where spawnbot_crossright WaitForAllDead Wave2_Main1 Name Wave2_Main2 TotalCount 6 MaxActive 4 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 25 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Soldier_Extended_Battalion Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } TFBot { Template T_TFBot_Giant_Pyro_Pusher_Expert_Airblast Attributes AlwaysCrit Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } } // Spammer WaveSpawn { Where spawnbot_hatchright WaitForAllDead Wave2_Main1 Name Wave2_Main2 TotalCount 28 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 200 TFBot { Template T_TFBot_Soldier_Spammer Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } // Hyper Huntsman WaveSpawn { Where spawnbot_hatchright WaitForAllDead Wave2_Main1 Name Wave2_Huntsman TotalCount 48 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 200 TFBot { Template T_TFBot_Sniper_Huntsman_Hyper Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } } ////////// // WAVES ////////// /////////////////////////////////////////////////////////////////////// // Wave 3 // Starting Currency : 0 // Total (in this wave) : 0 + 100 (bonus) // Total (when wave ends) : 0 + 0 + 100 (bonus) = 0 // ==================================================================== // Stage 1 : // Stage 2 : // Stage 3 : // ==================================================================== // Mission : /////////////////////////////////////////////////////////////////////// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } Checkpoint Yes SpawnTemplate { Name "towngate1" Origin "290 1194 330" Angles "0 0 0" } SpawnTemplate { Name "towngate1_1" Origin "290 1194 475" Angles "0 0 0" } SpawnTemplate { Name "towngate1_2" Origin "290 1194 620" Angles "0 0 0" } SpawnTemplate { Name "towngate1_3" Origin "-160 1194 330" Angles "0 0 0" } SpawnTemplate { Name "towngate1_4" Origin "-160 1194 475" Angles "0 0 0" } SpawnTemplate { Name "towngate1_5" Origin "-160 1194 620" Angles "0 0 0" } SpawnTemplate "towngate2" Explanation { Line "{green}--------------------------------------------------------------------------------" Line "{red} 맵 곳곳에 레드팀이 폭탄을 배치하였습니다." Line "{yellow} 길목에 서 있는 수문장을 처리하여 길을 뚫고 폭탄을 처리하세요." Line "{#FFBF00} 시간 내에 폭탄을 처리하지 못하면 패배합니다." Line "{blue} 이번 웨이브에선 XX이 팀을 지원합니다." Line "{green}--------------------------------------------------------------------------------" } // Keeper WaveSpawn { Where spawnbot_front Name Wave3_Keeper TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 0 // Unlock Forcefield DoneOutput { Target unblocktown Action Trigger } TotalCurrency 300 TFBot { Class Demoman Skill Expert Name "Body Gaurd" ClassIcon demo_sticky_burst_giant Scale 1.9 Health 45000 Attributes MiniBoss Attributes AlwaysFireWeapon Attributes IgnoreFlag Attributes UseBossHealthBar WeaponRestrictions SecondaryOnly ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "is_passive_weapon" 1 "override projectile type" 2 "damage bonus" 1.5 "faster reload rate" -0.8 "fire rate bonus" 0.5 } ItemAttributes { ItemName "TF_WEAPON_PIPEBOMBLAUNCHER" "stickybomb charge rate" -5 "sticky arm time bonus" 5 "fire rate bonus" -1 "faster reload rate" 0.33 "projectile spread angle penalty" 5 } CharacterAttributes { "move speed bonus" 0.4 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 4 "no self blast dmg" 1 } CustomWeaponModel { Slot 0 Model "models\empty.mdl" } CustomWeaponModel { Slot 1 Model "models/weapons/w_models/w_minigun.mdl" } AddCond { Name "TF_COND_REPROGRAMMED" } } } // Cargo Logic WaveSpawn { Where spawnbot WaitForAllDead Wave3_Keeper Name "unlockcargo" TotalCount 0 MaxActive 0 SpawnCount 0 WaitBeforeStarting 0 WaitBetweenSpawns 0 Support 1 TotalCurrency 0 FirstSpawnOutput { Target stop1 Action Kill } RandomChoice { RandomChoice { TFBot { Class Scout } } } } // Cargo Logic WaveSpawn { Where spawnbot WaitForAllDead Wave3_Keeper Name "unlockcargo" TotalCount 0 MaxActive 0 SpawnCount 0 WaitBeforeStarting 0 WaitBetweenSpawns 0 Support 1 TotalCurrency 0 FirstSpawnOutput { Target stop2 Action Kill } RandomChoice { RandomChoice { TFBot { Class Scout } } } } // Cargo Logic WaveSpawn { Where spawnbot WaitForAllDead Wave3_Keeper Name "unlockcargo" TotalCount 0 MaxActive 0 SpawnCount 0 WaitBeforeStarting 0 WaitBetweenSpawns 0 Support 1 TotalCurrency 0 FirstSpawnOutput { Target stop3 Action Kill } RandomChoice { RandomChoice { TFBot { Class Scout } } } } // Cargo Logic WaveSpawn { Where spawnbot WaitForAllDead Wave3_Keeper Name "unlockcargo" TotalCount 0 MaxActive 0 SpawnCount 0 WaitBeforeStarting 0 WaitBetweenSpawns 0 Support 1 TotalCurrency 0 FirstSpawnOutput { Target stop4 Action Kill } RandomChoice { RandomChoice { TFBot { Class Scout } } } } // Cargo Logic WaveSpawn { Where spawnbot WaitForAllDead Wave3_Keeper Name "unlockcargo" TotalCount 0 MaxActive 0 SpawnCount 0 WaitBeforeStarting 0 WaitBetweenSpawns 0 Support 1 TotalCurrency 0 FirstSpawnOutput { Target stop5 Action Kill } RandomChoice { RandomChoice { TFBot { Class Scout } } } } // Cargo Logic WaveSpawn { Where spawnbot WaitForAllDead Wave3_Keeper Name "unlockcargo" TotalCount 0 MaxActive 0 SpawnCount 0 WaitBeforeStarting 0 WaitBetweenSpawns 0 Support 1 TotalCurrency 0 FirstSpawnOutput { Target stop6 Action Kill } RandomChoice { RandomChoice { TFBot { Class Scout } } } } // Infinite WaveSpawn { Where spawnbot_hatchright WaitForAllDead Wave3_Keeper Name Wave3_Infinite TotalCount 300 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 0 Support Limited TFBot { Template T_TFBot_Heavy_Shotgun_Hunter Attributes AlwaysCrit Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } // Timer WaveSpawn { Where spawnbot_timer WaitForAllDead Wave3_Keeper Name Wave3_Timer TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 Support Limited TotalCurrency 0 TFBot { Class Scout Health 36000 Name "You Failed" Skill Easy Scale 0.1 Classicon timer_lite Attributes IgnoreFlag Attributes MiniBoss Attributes UseBossHealthBar CharacterAttributes { "move speed bonus" 0.0001 "no_jump" 1 "health regen" -100 } } } // Timer Logic1 WaveSpawn { Where spawnbot WaitForAllDead Wave3_Timer Name "TimerDead" TotalCount 0 MaxActive 0 SpawnCount 0 WaitBeforeStarting 5 WaitBetweenSpawns 0 Support 1 TotalCurrency 0 FirstSpawnOutput { Target redwin_relay Action Trigger } RandomChoice { RandomChoice { TFBot { Class Scout } } } } // Bomb Bot WaveSpawn { Where spawnbot_middleupper1 WaitForAllDead Wave3_Keeper Name Wave3_Bomb1 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 TFBot { Class Scout Classicon scout_bombrunner Name "Bomb" Health 50000 Skill Easy UseCustomModel "models\props_trainyard\bomb_cart.mdl" Attributes IgnoreFlag Attributes UseBossHealthBar Attributes "IgnoreEnemies" CustomWeaponModel { Slot 0 Model "models\empty.mdl" } CustomWeaponModel { Slot 1 Model "models\empty.mdl" } AddCond { Name "TF_COND_REPROGRAMMED" } AlwaysGlow 1 CharacterAttributes { "cannot be backstabbed" 1 "no_jump" 1 "no_attack" 1 "move speed bonus" 0.0001 "damage force reduction" 0.1 "airblast vulnerability multiplier" 0.1 } } } // Bomb Support WaveSpawn { Where spawnbot_middleleft WaitForAllDead Wave3_Keeper Name Wave3_Support TotalCount 45 MaxActive 6 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 15 TotalCurrency 0 TFBot { Template T_TFBot_Soldier_Spammer_Burst Attributes IgnoreFlag Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } } } // Bomb Support WaveSpawn { Where spawnbot_crossright WaitForAllDead Wave3_Keeper Name Wave3_Support TotalCount 45 MaxActive 6 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 15 TotalCurrency 0 TFBot { Template T_TFBot_Scout_Backscatter_Hard Attributes IgnoreFlag Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } } } // Bomb Support WaveSpawn { Where spawnbot_middlelower WaitForAllDead Wave3_Keeper Name Wave3_Support TotalCount 45 MaxActive 6 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 15 TotalCurrency 0 TFBot { Template T_TFBot_Pyro_Dragon_Hard Attributes IgnoreFlag Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } } } // Bomb Bot WaveSpawn { Where spawnbot_middleupper2 WaitForAllDead Wave3_Bomb1 Name Wave3_Bomb2 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 40 WaitBetweenSpawns 0 TotalCurrency 0 TFBot { Class Scout Classicon scout_bombrunner Name "Bomb" Health 30000 Skill Easy UseCustomModel "models\props_trainyard\bomb_cart.mdl" Attributes IgnoreFlag Attributes UseBossHealthBar Attributes "IgnoreEnemies" CustomWeaponModel { Slot 0 Model "models\empty.mdl" } CustomWeaponModel { Slot 1 Model "models\empty.mdl" } AddCond { Name "TF_COND_REPROGRAMMED" } AlwaysGlow 1 CharacterAttributes { "cannot be backstabbed" 1 "no_jump" 1 "no_attack" 1 "move speed bonus" 0.0001 "damage force reduction" 0.1 "airblast vulnerability multiplier" 0.1 } } } // Bomb Bot WaveSpawn { Where spawnbot_crossleft WaitForAllDead Wave3_Bomb2 Name Wave3_Bomb3 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 40 WaitBetweenSpawns 0 TotalCurrency 0 DoneOutput { Target bluwin_relay Action Trigger } TFBot { Class Scout Classicon scout_bombrunner Name "Bomb" Health 30000 Skill Easy UseCustomModel "models\props_trainyard\bomb_cart.mdl" Attributes IgnoreFlag Attributes UseBossHealthBar Attributes "IgnoreEnemies" CustomWeaponModel { Slot 0 Model "models\empty.mdl" } CustomWeaponModel { Slot 1 Model "models\empty.mdl" } AddCond { Name "TF_COND_REPROGRAMMED" } AlwaysGlow 1 CharacterAttributes { "cannot be backstabbed" 1 "no_jump" 1 "no_attack" 1 "move speed bonus" 0.0001 "damage force reduction" 0.1 "airblast vulnerability multiplier" 0.1 } } } // Blu Support WaveSpawn { Where spawnbot WaitForAllDead Wave3_Keeper Name Wave3_Blu TotalCount 3 MaxActive 1 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 20 Support Limited TotalCurrency 0 TFBot { Template T_TFBot_Giant_Soldier_Extended_Buff_Banner Classicon blu_lite AlwaysGlow 1 Attributes IgnoreFlag Action Mobber } } //////////////////////////////////// Main Wave //////////////////////////////////// } ////////// // WAVES ////////// /////////////////////////////////////////////////////////////////////// // Wave 4 // Starting Currency : 0 // Total (in this wave) : 0 + 100 (bonus) // Total (when wave ends) : 0 + 0 + 100 (bonus) = 0 // ==================================================================== // Stage 1 : // Stage 2 : // Stage 3 : // ==================================================================== // Mission : /////////////////////////////////////////////////////////////////////// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } Checkpoint Yes Explanation { Line "{green}--------------------------------------------------------------------------------" Line "{red} 모든 레드 봇을 처리하세요!" Line "{yellow} 레드 봇을 모두 처리하면 승리합니다." Line "{blue} 이번 웨이브에선 XX이 팀을 지원합니다." Line "{green}--------------------------------------------------------------------------------" } WaveSpawn { Where spawnbot_red Name Wave4_Test TotalCount 200 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 30 TotalCurrency 300 TFBot { Class Scout Skill Normal Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } } ////////// // WAVES ////////// /////////////////////////////////////////////////////////////////////// // Wave 5 // Starting Currency : 0 // Total (in this wave) : 0 + 100 (bonus) // Total (when wave ends) : 0 + 0 + 100 (bonus) = 0 // ==================================================================== // Stage 1 : // Stage 2 : // Stage 3 : // ==================================================================== // Mission : /////////////////////////////////////////////////////////////////////// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } Checkpoint Yes WaveSpawn { Where spawnbot_red Name Wave5_Test TotalCount 200 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 30 TotalCurrency 300 TFBot { Class Scout Skill Normal Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } } ////////// // WAVES ////////// /////////////////////////////////////////////////////////////////////// // Wave 6 // Starting Currency : 0 // Total (in this wave) : 0 + 100 (bonus) // Total (when wave ends) : 0 + 0 + 100 (bonus) = 0 // ==================================================================== // Stage 1 : // Stage 2 : // Stage 3 : // ==================================================================== // Mission : /////////////////////////////////////////////////////////////////////// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } Checkpoint Yes WaveSpawn { Where spawnbot_red Name Wave6_Test TotalCount 200 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 30 TotalCurrency 300 TFBot { Class Scout Skill Normal Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber } } }