// spawnbots: //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// spawnbot - spawn bots in carrier

// spawnbot_mission_sentrybuster - main carrier
// spawnbot_mission_spy - main carrier
// spawnbot_mission_engineer - side thing
// spawnbot_mission_sniper - one spawn near carrier and another on side thing.

// spawnbot_side - spawns bots in side thing
// spawnbot_alt - spawn bots on main spawn, closer to the drop. mostly a relic from alpha which is still used for some reason.

// spawnbot_airdrop0 
// spawnbot_airdrop1
// spawnbot_airdrop2

// spawnbot_invasion - uses every available land spawn

// infinite limited spawns - controlled by relays

// spawnbot_alt_limited_a
// spawnbot_alt_limited_b
// spawnbot_alt_limited_c
// spawnbot_alt_limited_d

// spawnbot_side_limited_a
// spawnbot_side_limited_b
// spawnbot_side_limited_c
// spawnbot_side_limited_d

// spawnbot_airdrop0_limited_a
// spawnbot_airdrop0_limited_b
// spawnbot_airdrop0_limited_c
// spawnbot_airdrop0_limited_d

// spawnbot_airdrop1_limited_a
// spawnbot_airdrop1_limited_b
// spawnbot_airdrop1_limited_c
// spawnbot_airdrop1_limited_d

// spawnbot_airdrop2_limited_a
// spawnbot_airdrop2_limited_b
// spawnbot_airdrop2_limited_c
// spawnbot_airdrop2_limited_d

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// relays: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// wave_start_relay;
// wave_finished_relay;
// boss_deploy_relay;

// air_warning_relay - notify players of the Airdrop feature.
// air_warning_notxt_relay - just play the air siren

// drop_bomb0_relay - Call this relay with StartWaveOutput for tank_air_bomb_start, use WaitBeforeStarting as the ones used in the mission (those relays spawn a plane, mostly an aesthetic thing, 
// buuuut it would be kind of not pretty if tanks would just pop outta thin air, m?)

// drop_bomb0_relay - Call this relay with StartWaveOutput for tank_air_bomb1_start / tank_path_drop0_b / tank_path_drop0_a, use WaitBeforeStarting as the ones used in the mission. (If you wanna drop bomb and bomb1 in 1 drop, then call the relay for the only for one tank. Eh, that was a bad explanation. Just go check out the mission.)
// drop_bomb1_relay - Call this relay with StartWaveOutput for tank_air_bomb2_start / tank_path_drop1, use WaitBeforeStarting as the ones used in the mission		(call in with the tanks that use tank_air_bomb_start and like for more dem immersion.)
// droptank1_killed_relay - use this with tanks spawned from tank_path_drop1, that's kind of essential so map won't screw up.
// droptank0_killed_relay - use this on OnKilledOutput with tanks spawned from tank_path_drop0_a / from tank_path_drop0_b, that's kind of essential so map won't screw up.

// dropbomb_coords_stop_relay - spawn the random tank bomb drop, only 1 can exist at a time (it gets removed after 5 seconds since tank_path_air_bombrandom gets a tank spawned)
// randomdrop10s_start_relay randomdrop10s_stop_relay - calls dropbomb_coords_stop_relay each 7 seconds. (initial spawn takes 7 seconds as well, after spawning path for tank to spawn on it stops counting until tank spawns on the path.) (don't ask why it got 10s in the name)
// ^ automatically stops with wave_finished_relay. If it spawned path, it will persist 'til next tank spawns.


// 30s_bomb_relay 45s_bomb_relay usual_bomb_relay - enable timed bombs or the usual non returning one (bomb without timer (usual) is enabled by default)

// stunbots_on_relay stunbots_off_relay - stuns all bots on the map except sentry busters (stun lasts 'til turned off through stunbots_off_relay). wave_finished_relay disables it by default.

// break_start_relay - Shows "break" message, opens up forward upgrade station, resets bomb and pauses bot spawning. also uses stunbots_on_relay
// break_end_relay - Shows "10 seconds" message, after 10 seconds pass "break end" message shows and bot spawning is resumed. also uses stunbots_off_relay

// bot_attributes_default_relay - sets current bots' attributes to Default
// bot_attributes_1_relay - sets current bots' attributes to BotAttributes1
// bot_attributes_2_relay - sets current bots' attributes to BotAttributes2
// bot_attributes_3_relay - sets current bots' attributes to BotAttributes3
// bot_attributes_4_relay - sets current bots' attributes to BotAttributes4

// bot_attributes_revertdefault_relay - set current and future bots' to Default.
// bot_attributes_setdefault1_relay - set current and future bots' to BotAttributes1.
// bot_attributes_setdefault2_relay - set current and future bots' to BotAttributes2.
// bot_attributes_setdefault3_relay - set current and future bots' to BotAttributes3.
// bot_attributes_setdefault4_relay - set current and future bots' to BotAttributes4.

// bot_attributes_random_relay - selects random bot attribute relay (Including default one)
// bot_attributes_random10_relay - selects random bot attribute every 5 - 8 seconds
// bot_attributes_random10_disable_relay - disables bot_attributes_random10_relay*

// bot_setdefault_attributes_random_relay - Sets random attribute to current and future bots (Sets default attribute).
// bot_setdefault_attributes_random10_relay - sets random bot attribute as default and switches every alive bot to it every 5 - 8 seconds
// bot_setdefault_attributes_random10_disable_relay - disables bot_setdefault_attributes_random10_relay

// drop_bomb0_l10_relay drop_bomb0_l20_relay drop_bomb0_l30_relay - repeats plane spawn each 10/20/30 seconds*.
// drop_bomb0_lstop_relay - stops repeating.

// drop_bomb1_l10_relay drop_bomb1_l20_relay drop_bomb1_l30_relay - repeats plane spawn each 10/20/30 seconds*.
// drop_bomb1_lstop_relay - stops repeating.

// limited_spawns_enable_relay - turn on all spawns for "infinite" support bots.

// limited_spawns_disable_a_relay - disable a spawns
// limited_spawns_disable_b_relay - disable b spawns
// limited_spawns_disable_c_relay - disable c spawns
// limited_spawns_disable_d_relay - disable d spawns

// * Planes stop looping spawns after wave_finished_relay is fired as well. And it also stops timers for bot_attributes_random10_relay / bot_setdefault_attributes_random10_relay. Also sets Default as the default bot attribute.
// Also enables all "infinite limited" spawns back on.

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// tags: ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// nav_prefer_flank_middle
// nav_prefer_flank_left
// nav_right
// nav_flank_routeother (will take the currently "not active" main route.)

// avoid tags
// nav_spawn_left
// nav_spawn_right

// misc tags:
// attrbot - use this with bots that use bot_setdefault_attributes_random10_relay / bot_attributes_random10_relay just so they won't cancel out of bomb drop animation at the hatch due to constant attribute changes.
// bot_sentrybuster - should be tag for sentrybusters. makes bot immune to stunbots_on_relay

// spawnbot_special tags

// the crutchy ones: requires to have bots with such tag spawned separately, at least with waitbetweenspawns 0.3 . can't be applied to giants for some reason.

// bot_random - assigns random class sign to bot.

// setcustommodel way. changes bots' hitboxes to that of a model, so small props + small size smells of a disaster.

// bot_moo - assigns cow cutout to bot
// bot_frog - assigns frog model to bot
// bot_gift - assigns tf_gift model to bot
// bot_error - assigns the famous ERROR model. bet players will report this as a bug on map report thread. oh well, who cares! 
// bot_cardboard - replaces model with cardboard cutout. needs class specific tag to work.
// bot_not - replaces model with the ref posing human model. needs class specific tag to work.

// class tags (without bot_not or bot_cardboard replaces with the ref posing bot model (except when the model is the same class as the bot, then it just makes a bot that slides along the ground without run animation while holding weapons properly)):
// Scout
// Soldier
// Pyro
// Demoman
// Heavyweapons || Heavy
// Engineer
// Sniper
// Medic
// Spy

// options for some models. should be possible to apply to default bots, mixed and matched and stuff.

// red - if possible, uses the red skin of the model. Only works with bot_random 
// bot_drunk - applies end of round stun to bot.


//please tag giant bots with "giant" tag so they'll pay attention to some nav_avoids so they won't get stuck in some places.

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// bot attributes: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// Default
// BotAttributes1
// BotAttributes2
// BotAttributes3
// BotAttributes4


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// tanks: /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// suggested tank name: "tank" - otherwise they won't blow up on bomb deployment. ("droptank0" for tank_path_drop0_a / tank_path_drop0_b and "droptank1" for tank_path_drop1)
// other tank names: "tankbomb" for tanks that drop down and explode. tanks that spawn with tank_path_air_bombrandom without such name will just drop down and idle.
// vac tanks: "tank_blast" (blast resistance) "tank_fire" (fire resistance) "tank_bullet" (bullet resistance) - only 1 vac tank of given type can exist. (so like, can't have 2 bullet vacs. but you can have all 3 different things out at once.)

// tank pathes: tank_path_a; tank_path_b;
// tank_path_air_bomb; tank_path_air_bomb1; tank_path_air_bomb2 - tank drops down from the sky, when landing causes 500k damage around it and to itself, then stops. 
// Yup, so I guess it's best to have health of those tanks below 250k so they won't just idle on the map without reason.

// tank_path_air_bombrandom - must be used AFTER dropbomb_coords_stop_relay or else game might crash because those thing don't exist unless spawned by their respective relay.

// tank_path_drop0_a; tank_path_drop0_b; - spawns parachuting tanks that go down on ground, land after ~18 seconds and go on a/b path for usual tanks.
// tank_path_drop1; - spawns parachuting tank close to hatch, that lands in ~16 seconds and proceeds to go towards the hatch.

// It's best to have only 1 tank parachuting at the same time on drop0 or drop1. For reference, check the mission.

// tank_path_bullet_start_a tank_path_fire_start_a tank_path_blast_start_a - tank path a but used for vac tank spawns. please spawn tanks with names that match the path
// tank_path_bullet_start_b tank_path_fire_start_b tank_path_blast_start_b - tank path b but used for vac tank spawns. please spawn tanks with names that match the path

// there's also 5 nests for engineer bots with sentry and teleporter hints.

#base robot_giant.pop
#base robot_standard.pop

WaveSchedule
{
	StartingCurrency 800
	RespawnWaveTime	5
	FixedRespawnWaveTime Yes
	CanBotsAttackWhileInSpawnRoom No
	Templates
	{
		aircrap_sup_flare // semi giant flare pyro with faster fire rate
		{
			Class Pyro
			Skill Expert
			Name "Supercharged Flare Pyro"
			ClassIcon pyro_flare
			Tag giant
			WeaponRestrictions SecondaryOnly
			Health 600
			Item "The Flare Gun"
			Item "The Triclops"
			Attributes AlwaysCrit
			Scale 1.5
			ItemAttributes
			{
				ItemName "The Flare Gun"
				"Reload time decreased" 0.5
				"fire rate bonus" 0.5
			}
			CharacterAttributes
			{
				"airblast vulnerability multiplier" 0.5
				"damage force reduction" 0.5
				"move speed bonus" 0.75
			}
		}
		
		aircrap_SMG_Fodder_Air
		{
			Name "SMG4 Sniper"
			Class Sniper
			Skill Hard
			WeaponRestrictions SecondaryOnly
			ClassIcon sniper_smg
			Item "Plumber's Cap"
			Item "The B.A.S.E. Jumper"
			Item "Upgradeable TF_WEAPON_SMG"
			ItemAttributes
			{
				ItemName "Upgradeable TF_WEAPON_SMG"
				"clip size bonus" 2
				"fire rate bonus" 1.85
				"weapon spread bonus" 3
			}
		}
		
		aircrap_Air_Striker
		{
			Class Soldier
			Skill Normal
			Item "The Air Strike"
			Item "The B.A.S.E. Jumper"
			Name "Airdrop asked me to say Hi"
			Attributes HoldFireUntilFullReload
			ItemAttributes
			{
				ItemName "The Air Strike"
				"clip size upgrade atomic" 4.0
				"faster reload rate" 0.6
			}
		}
	}
	Mission //busters 1-4
	{
		Objective DestroySentries
		Where spawnbot_mission_sentrybuster
		CooldownTime 40
		DesiredCount 1
		BeginAtWave 1
		RunForThisManyWaves 4
		TFBot
		{
			Template T_TFBot_SentryBuster
			Tag giant
			Tag bot_sentrybuster
		}
	}
	
	Mission //busters last wave
	{
		Objective DestroySentries
		Where spawnbot_mission_sentrybuster
		Where spawnbot_airdrop0
		Where spawnbot_airdrop1
		CooldownTime 40
		DesiredCount 1
		BeginAtWave 5
		RunForThisManyWaves 1
		TFBot
		{
			Template T_TFBot_SentryBuster
			Tag giant
			Item "The B.A.S.E. Jumper"
			Name "Air Raid Shadow Legends"
			Tag bot_sentrybuster
		}
	}
	
	Mission // w3 snipers
	{
		Objective Sniper
		Where spawnbot_mission_sniper
		InitialCooldown 15
		CooldownTime 40
		DesiredCount 2
		BeginAtWave 3
		RunForThisManyWaves 1
		TFBot
		{
			Template T_TFBot_Sniper
		}
	}
	
	Mission // w5 snipers
	{
		Objective Sniper
		Where spawnbot_airdrop2
		InitialCooldown 60
		CooldownTime 40
		DesiredCount 2
		BeginAtWave 5
		RunForThisManyWaves 1
		TFBot
		{
			Template T_TFBot_Sniper
			Item "The B.A.S.E. Jumper"
		}
	}
	
	Wave //w1 money 700$
	{
		StartWaveOutput
		{
			Target	wave_start_relay 
			Action	Trigger
		}
		DoneOutput
		{
			Target	wave_finished_relay
			Action	Trigger
		}
		
		WaveSpawn //subwave maxactive at once 14
		{
			Name sub0
			Where spawnbot
			TotalCurrency 100
			WaitBeforeStarting 2
			WaitBetweenSpawns 25
			TotalCount 4
			SpawnCount 2
			MaxActive 4
			
			Squad
			{
				TFBot
				{
					Template T_TFBot_Giant_Soldier_Spammer
					Tag giant
				}
				
				TFBot
				{
					Template T_TFBot_Medic_QuickFix
				}
			}
		}
		
		WaveSpawn
		{
			Name sub0
			Where spawnbot
			TotalCurrency 50
			WaitBeforeStarting 10
			WaitBetweenSpawns 15
			TotalCount 12
			SpawnCount 4
			MaxActive 8
			
			RandomChoice
			{
				TFBot
				{
					Class Scout
					Skill Normal
					Tag nav_spawn_left
				}
				TFBot
				{
					Class Scout
					Skill Normal
					Tag nav_spawn_right
				}
				TFBot
				{
					Class Scout
					Skill Normal
					Tag nav_spawn_left
				}
				TFBot
				{
					Class Scout
					Skill Normal
					Tag nav_spawn_right
				}
				TFBot
				{
					Class Scout
					Skill Normal
					BehaviorModifiers Push
					Tag nav_prefer_flank_left
					Tag nav_spawn_right
				}
				TFBot
				{
					Class Scout
					Skill Normal
					BehaviorModifiers Push
					Tag nav_prefer_flank_left
					Tag nav_spawn_left
				}
			}
		}
		
		WaveSpawn
		{
			Name sub0
			Where spawnbot_side
			TotalCurrency 50
			WaitBeforeStarting 20
			WaitBetweenSpawns 25
			TotalCount 4
			SpawnCount 2
			MaxActive 4
			
			TFBot
			{
				Class Demoman
				Skill Hard
				BehaviorModifiers Push
			}
		}
		
		WaveSpawn
		{
			Name sub00 //subwave before 2 and after 1 maxactive at once 18
			WaitForAllSpawned sub0
			Where spawnbot
			TotalCurrency 50
			WaitBeforeStarting 5
			WaitBetweenSpawns 15
			TotalCount 12
			SpawnCount 6
			MaxActive 6
			
			TFBot
			{
				Class Soldier
				Skill Hard
			}
		}
		
		WaveSpawn
		{
			Name sub00
			WaitForAllSpawned sub0
			Where spawnbot
			TotalCurrency 50
			WaitBeforeStarting 5
			WaitBetweenSpawns 15
			TotalCount 4
			SpawnCount 1
			MaxActive 4
			
			TFBot
			{
				Template T_TFBot_Scout_Sandman
			}
		}
		
		WaveSpawn
		{
			Name sub00
			WaitForAllSpawned sub0
			Where spawnbot_invasion
			TotalCurrency 50
			WaitBeforeStarting 8
			WaitBetweenSpawns 20
			TotalCount 15
			SpawnCount 5
			MaxActive 8
			
			TFBot
			{
				Class Heavy
				Skill Easy
			}
		}
		
		WaveSpawn //subwave 2 maxactive at once 20
		{
			Name sub1
			WaitForAllSpawned sub00
			Where spawnbot_alt
			TotalCurrency 100
			WaitBeforeStarting 5
			WaitBetweenSpawns 25
			TotalCount 4
			SpawnCount 2
			MaxActive 4
			
			TFBot
			{
				Template T_TFBot_Giant_Demo_RapidFire
				Tag giant
			}
		}
		
		WaveSpawn
		{
			Name sub1
			WaitForAllSpawned sub00
			Where spawnbot
			TotalCurrency 50
			WaitBeforeStarting 2
			WaitBetweenSpawns 15
			TotalCount 15
			SpawnCount 3
			MaxActive 6
			
			Squad
			{
				TFBot
				{
					Template T_TFBot_Pyro
				}
				TFBot
				{
					Class Soldier
					Skill Normal
				}
				TFBot
				{
					Class Soldier
					Skill Normal
				}
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub00
			Where spawnbot_alt_limited_a
			Support 1
			TotalCurrency 50
			WaitBeforeStarting 10
			WaitBetweenSpawns 20
			TotalCount 20
			SpawnCount 5
			MaxActive 10
			
			
			RandomChoice
			{
				TFBot
				{
					Class Scout
					ClassIcon scout_giant
					Tag nav_spawn_right
					Skill Normal
					ItemAttributes
					{
						ItemName "TF_WEAPON_SCATTERGUN"
						"fire rate bonus" 1.5
					}
				}
				TFBot
				{
					Class Scout
					ClassIcon scout_giant
					Tag nav_spawn_left
					Skill Normal
					ItemAttributes
					{
						ItemName "TF_WEAPON_SCATTERGUN"
						"fire rate bonus" 1.5
					}
				}
				TFBot
				{
					Class Scout
					ClassIcon scout_giant
					Tag nav_spawn_right
					Skill Normal
					ItemAttributes
					{
						ItemName "TF_WEAPON_SCATTERGUN"
						"fire rate bonus" 1.5
					}
				}
				TFBot
				{
					Class Scout
					ClassIcon scout_giant
					Tag nav_spawn_left
					Skill Normal
					ItemAttributes
					{
						ItemName "TF_WEAPON_SCATTERGUN"
						"fire rate bonus" 1.5
					}
				}
				TFBot
				{
					Class Scout
					ClassIcon scout_giant
					Tag nav_spawn_left
					Tag nav_prefer_flank_left
					BehaviorModifiers Push
					Skill Normal
					ItemAttributes
					{
						ItemName "TF_WEAPON_SCATTERGUN"
						"fire rate bonus" 1.5
					}
				}
				TFBot
				{
					Class Scout
					ClassIcon scout_giant
					Tag nav_spawn_right
					Tag nav_prefer_flank_middle
					BehaviorModifiers Push
					Skill Normal
					ItemAttributes
					{
						ItemName "TF_WEAPON_SCATTERGUN"
						"fire rate bonus" 1.5
					}
				}
			}
		}
		
		WaveSpawn //subwave 3 maxactive at once 16
		{
			WaitForAllSpawned sub1
			FirstSpawnOutput
			{
				Target limited_spawns_disable_a_relay
				Action Trigger
			}
			Where spawnbot
			TotalCurrency 100
			WaitBeforeStarting 10
			TotalCount 4
			SpawnCount 4
			MaxActive 4
			
			Squad
			{
				TFBot
				{
					Template T_TFBot_Giant_Heavyweapons
					Tag giant
				}
				TFBot
				{
					Template T_TFBot_Medic
				}
				TFBot
				{
					Template T_TFBot_Medic
				}
				TFBot
				{
					Template T_TFBot_Medic
				}
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub1
			Where spawnbot_invasion
			WaitBetweenSpawns 20
			Support 1
			TotalCurrency 50
			TotalCount 20
			SpawnCount 6
			MaxActive 12
			
			RandomChoice
			{
				TFBot
				{
					Class Soldier
					Skill Hard
					ClassIcon soldier_giant
				}
				TFBot
				{
					Class Scout
					ClassIcon scout_giant
					Skill Normal
					Tag nav_prefer_flank_middle
					BehaviorModifiers Push
				}
				TFBot
				{
					Class Scout
					Skill Normal
					ClassIcon scout_giant
				}
				TFBot
				{
					Class Scout
					Skill Normal
					ClassIcon scout_giant
				}
				TFBot
				{
					Class Scout
					Skill Normal
					ClassIcon scout_giant
				}
				TFBot
				{
					Class Scout
					Skill Expert
					ClassIcon scout_bat
					WeaponRestrictions MeleeOnly
					Attributes AlwaysCrit
					BehaviorModifiers Push
				}
			}
		}
	}
	
	Wave //w2 money 700
	{
		StartWaveOutput
		{
			Target	wave_start_relay
			Action	Trigger
		}
		DoneOutput
		{
			Target	wave_finished_relay
			Action	Trigger
		}
		
		WaveSpawn //subwave 1 maxactive at once 21
		{
			Name sub0
			Where spawnbot
			TotalCurrency 70
			WaitBeforeStarting 0
			WaitBetweenSpawns 15
			TotalCount 28
			SpawnCount 7
			MaxActive 9
			
			RandomChoice
			{
				TFBot
				{
					Class Pyro
					Skill Hard
					Tag nav_spawn_left
				}
				TFBot
				{
					Class Pyro
					Skill Hard
					Tag nav_spawn_right
				}
				TFBot
				{
					Class Pyro
					Skill Hard
					Attributes AlwaysFireWeapon
					Tag nav_spawn_left
					BehaviorModifiers Push
				}
				TFBot
				{
					Class Pyro
					Skill Hard
					Attributes AlwaysFireWeapon
					Tag nav_spawn_right
					BehaviorModifiers Push
				}
			}
		}
		
		WaveSpawn
		{
			FirstSpawnOutput
			{
				Target air_warning_relay
				Action Trigger
			}
			Name sub0
			Where spawnbot_airdrop0
			TotalCurrency 30
			WaitBeforeStarting 20
			WaitBetweenSpawns 15
			TotalCount 12
			SpawnCount 6
			MaxActive 8
			TFBot
			{
				Template T_TFBot_Pyro_Flaregun
				Name "Air Flare Pyro"
				Item "The B.A.S.E. Jumper"
				Attributes AlwaysCrit
				Skill Expert
			}
		}
		
		WaveSpawn
		{
			Name sub0
			Where spawnbot
			TotalCurrency 70
			WaitBeforeStarting 15
			WaitBetweenSpawns 15
			TotalCount 9
			SpawnCount 3
			MaxActive 4
			
			TFBot
			{
				Template aircrap_sup_flare
			}
		}
		
		WaveSpawn // subwave 2 maxactive 22
		{
			WaitForAllSpawned sub0
			Name sub1
			WaitBeforeStarting 8
			WaitBetweenSpawns 15
			TotalCurrency 100
			Where spawnbot
			TotalCount 2
			SpawnCount 1
			MaxActive 2
			
			TFBot
			{
				Template T_TFBot_Heavyweapons_Heater
				Name "Heated Heavy"
				Tag giant
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub0
			Name sub1
			WaitBeforeStarting 10
			WaitBetweenSpawns 10
			TotalCurrency 70
			Where spawnbot
			TotalCount 24
			SpawnCount 6
			MaxActive 12
			
			TFBot
			{
				Template T_TFBot_Scout_FAN
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub0
			Name sub1
			WaitBeforeStarting 15
			WaitBetweenSpawns 15
			TotalCurrency 50
			Where spawnbot_invasion
			RandomSpawn 1
			TotalCount 12
			SpawnCount 4
			MaxActive 8
			
			TFBot
			{
				Class Demoman
				Skill Hard
				Name "Quite Iron Bomber"
				Item "The Iron Bomber"
				ItemAttributes
				{
					ItemName "The Iron Bomber"
					"Blast radius decreased" 1
					"Reload time decreased" 0.2
				}
			}
		}
		
		WaveSpawn // Subwave 16 maxactive
		{
			WaitForAllSpawned sub1
			Name sub2
			WaitBeforeStarting 15
			WaitBetweenSpawns 10
			TotalCurrency 80
			Where spawnbot
			TotalCount 24
			SpawnCount 6
			MaxActive 12
			Squad
			{
				TFBot
				{
					Template T_TFBot_Sniper_Huntsman_Spammer
					ClassIcon sniper_bow_multi
					Tag giant
				}
				TFBot
				{
					Template T_TFBot_Sniper_Huntsman
				}
				TFBot
				{
					Template T_TFBot_Sniper_Huntsman
				}
				TFBot
				{
					Class Pyro
					Skill Easy
					Attributes AlwaysFireWeapon
				}
				TFBot
				{
					Class Pyro
					Skill Easy
					Attributes AlwaysFireWeapon
				}
				TFBot
				{
					Class Pyro
					Skill Easy
					Attributes AlwaysFireWeapon
				}
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub1
			WaitBeforeStarting 15
			WaitBetweenSpawns 10
			TotalCurrency 70
			Where spawnbot_alt_limited_a
			Support 1
			TotalCount 20
			SpawnCount 2
			MaxActive 4
			
			RandomChoice
			{
				TFBot
				{
					Class Heavy
					Name "Not so Heavy"
					Skill Normal
					WeaponRestrictions SecondaryOnly
					ClassIcon heavy_shotgun
				}
				TFBot
				{
					Class Soldier
					Name "Budget Soldier"
					Skill Normal
					WeaponRestrictions SecondaryOnly
					ClassIcon heavy_shotgun
				}
				TFBot
				{
					Class Pyro
					Name "Cool Pyro"
					Skill Normal
					WeaponRestrictions SecondaryOnly
					ClassIcon heavy_shotgun
				}
			}
		}
		
		WaveSpawn // subwave 4 maxactive at once 15
		{
			FirstSpawnOutput
			{
				Target limited_spawns_disable_a_relay
				Action Trigger
			}
			WaitForAllSpawned sub2
			WaitBeforeStarting 15
			WaitBetweenSpawns 10
			TotalCurrency 50
			Where spawnbot
			TotalCount 1
			SpawnCount 1
			MaxActive 1
			
			TFBot
			{
				Template T_TFBot_Giant_Soldier_RocketShotgun
				Tag giant
				Attributes UseBossHealthBar
				Name "Average Pubstomper"
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub2
			WaitBeforeStarting 15
			WaitBetweenSpawns 10
			TotalCurrency 25
			Where spawnbot
			TotalCount 1
			SpawnCount 1
			MaxActive 1
			
			TFBot
			{
				Class Soldier
				ClassIcon heavy_shotgun_giant
				Skill Hard
				Tag giant
				Name "Quite Big Hitscan Soldier"
				WeaponRestrictions SecondaryOnly
				Attributes MiniBoss
				Health 3800
				
				ItemAttributes
				{
					ItemName "TF_WEAPON_SHOTGUN_SOLDIER"
					"fire rate bonus" 2.5
					"damage bonus" 2
					"faster reload rate" 0.1
				}
				CharacterAttributes
				{
					"move speed bonus"	0.5
					"damage force reduction" 0.4
					"airblast vulnerability multiplier" 0.4
					"override footstep sound set" 3
				}
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub2
			WaitBeforeStarting 15
			WaitBetweenSpawns 10
			TotalCurrency 25
			Where spawnbot
			TotalCount 1
			SpawnCount 1
			MaxActive 1
			
			TFBot
			{
				Class Soldier
				Skill Hard
				Tag giant
				Name "That one off-meta Soldier"
				ClassIcon soldier_bison
				WeaponRestrictions SecondaryOnly
				Attributes MiniBoss
				Health 3800
				Item "The Righteous Bison"
				
				ItemAttributes
				{
					ItemName "The Righteous Bison"
					"fire rate bonus" 0.75
					"damage bonus" 2
					"faster reload rate" 0.1
				}
				CharacterAttributes
				{
					"move speed bonus"	0.5
					"damage force reduction" 0.4
					"airblast vulnerability multiplier" 0.4
					"override footstep sound set" 3
				}
			}
		}
		
		WaveSpawn
		{
			FirstSpawnOutput
			{
				Target air_warning_notxt_relay
				Action Trigger
			}
			WaitForAllSpawned sub2
			WaitBeforeStarting 20
			WaitBetweenSpawns 25
			TotalCurrency 60
			Where spawnbot_airdrop0
			Where spawnbot_airdrop1
			RandomSpawn 1
			Support 1
			TotalCount 30
			SpawnCount 6
			MaxActive 12
			
			RandomChoice
			{
				TFBot
				{
					Template aircrap_SMG_Fodder_Air
				}
				TFBot
				{
					Template aircrap_Air_Striker
				}
			}
		}
	}
	
	Wave // w3 sniper(2) mission. money 800
	{
		StartWaveOutput
		{
			Target wave_start_relay
			Action Trigger
		}
		DoneOutput
		{
			Target wave_finished_relay
			Action Trigger
		}
		
		WaveSpawn // subwave 1 maxactive 18 (4 supports)
		{
			Name sub0
			WaitBeforeStarting 0
			WaitBetweenSpawns 20
			TotalCurrency 80
			Where spawnbot
			TotalCount 12
			SpawnCount 3
			MaxActive 6
			
			RandomChoice
			{
				TFBot
				{
					Class Heavy
					Name "Not so hot Heavy"
					Skill Normal
					Item "The Huo Long Heatmaker"
					ItemAttributes
					{
						ItemName "The Huo Long Heatmaker"
						"ring of fire while aiming" 0
					}
					Tag nav_spawn_left
				}
				TFBot
				{
					Class Heavy
					Name "Not so hot Heavy"
					Skill Normal
					Item "The Huo Long Heatmaker"
					ItemAttributes
					{
						ItemName "The Huo Long Heatmaker"
						"ring of fire while aiming" 0
					}
					Tag nav_spawn_right
				}
			}
		}
		
		WaveSpawn
		{
			Name sub0
			WaitBeforeStarting 8
			WaitBetweenSpawns 10
			TotalCurrency 80
			Where spawnbot_side
			TotalCount 24
			SpawnCount 3
			MaxActive 6
			
			TFBot
			{
				Class Soldier
				Skill Expert
			}
		}
		
		WaveSpawn
		{
			Name sub0
			WaitBeforeStarting 8
			WaitBetweenSpawns 18
			TotalCurrency 140
			Where spawnbot_side
			TotalCount 3
			SpawnCount 1
			MaxActive 2
			
			TFBot
			{
				Template T_TFBot_Giant_Pyro
				Tag giant
			}
		}
		
		WaveSpawn
		{
			WaitBeforeStarting 8
			WaitBetweenSpawns 29
			TotalCurrency 50
			Where spawnbot_alt_limited_a
			Where spawnbot_side_limited_a
			RandomSpawn 1
			Support 1
			TotalCount 30
			SpawnCount 2
			MaxActive 4
			
			TFBot
			{
				Class Scout
				Name "Scout with a Stick"
				Skill Normal
				WeaponRestrictions MeleeOnly
				ClassIcon scout_sunstick
				Item "Sun-on-a-Stick"
			}
		}
		
		WaveSpawn // subwave 2 maxactive 18
		{
			WaitForAllSpawned sub0
			WaitBeforeStarting 5
			TotalCurrency 150
			TotalCount 1
			SpawnCount 1
			MaxActive 1
			
			Tank
			{
				Name "tank"
				StartingPathTrackNode tank_path_a
				Speed 70
				Health 20000
				OnBombDroppedOutput
				{
					Target boss_deploy_relay 					
					Action Trigger                         		
				}
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub0
			Name sub1
			WaitBeforeStarting 10
			WaitBetweenSpawns 18
			TotalCurrency 80
			Where spawnbot
			TotalCount 24
			SpawnCount 6
			MaxActive 12
			Squad
			{
				TFBot
				{
					Class Pyro
					Skill Normal
					Item "The Phlogistinator"
					Attributes SpawnWithFullCharge
					Name "Supportive Phlog"
				}
				TFBot
				{
					Template T_TFBot_Medic_BigHeal
					Name "''I forgot my Uber'' Medic"
				}
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub0
			Name sub1
			WaitBeforeStarting 12
			WaitBetweenSpawns 12
			TotalCurrency 50
			Where spawnbot_alt
			TotalCount 15
			SpawnCount 3
			MaxActive 5
			
			TFBot
			{
				Class Demoman
				Skill Hard
			}
		}
		
		WaveSpawn // subwave 16 maxactive 
		{
			StartWaveOutput
			{
				Target limited_spawns_disable_a_relay
				Action Trigger
			}
			WaitForAllSpawned sub1
			WaitBeforeStarting 15
			WaitBetweenSpawns 18
			TotalCurrency 70
			Where spawnbot
			TotalCount 20
			SpawnCount 5
			MaxActive 10
			
			RandomChoice
			{
				TFBot
				{
					Template T_TFBot_Soldier_Extended_Buff_Banner
				}
				TFBot
				{
					Template T_TFBot_Soldier_Extended_Buff_Banner
				}
				TFBot
				{
					Template T_TFBot_Soldier_Extended_Buff_Banner
				}
				TFBot
				{
					Template T_TFBot_Soldier_Extended_Buff_Banner
				}
				TFBot
				{
					Template T_TFBot_Soldier_Extended_Buff_Banner
					Name "poop toot"
				}
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub1
			WaitBeforeStarting 20
			WaitBetweenSpawns 26
			TotalCurrency 100
			Where spawnbot
			TotalCount 4
			SpawnCount 2
			MaxActive 4
			
			TFBot
			{
				Class Demoman //copied from robot_giant and edited
				Name "Giant Burst Fire Demo"
				ClassIcon demo_burst_giant
				Health 3300
				Skill Expert
				WeaponRestrictions PrimaryOnly
				Tag giant
				Attributes MiniBoss
				Attributes HoldFireUntilFullReload
				ItemAttributes
				{
					ItemName "TF_WEAPON_GRENADELAUNCHER"
					"faster reload rate" 0.5 //50% faster reload
					"fire rate bonus" 0.1
					"clip size upgrade atomic" 7.0
					"projectile spread angle penalty" 5
					"Projectile speed increased"	1.1
				}

				CharacterAttributes
				{
					"move speed bonus"	0.5
					"damage force reduction" 0.4
					"airblast vulnerability multiplier" 0.4
					"override footstep sound set" 4
				}
			}
		}
	}
	
	Wave // wave 4. money 700
	{
		StartWaveOutput
		{
			Target wave_start_relay
			Action Trigger
		}
		DoneOutput
		{
			Target wave_finished_relay
			Action Trigger
		}
		
		WaveSpawn // subwave 1 maxactive 10
		{
			Name sub0
			WaitBeforeStarting 0
			WaitBetweenSpawns 12
			TotalCurrency 50
			Where spawnbot
			TotalCount 15
			SpawnCount 5
			MaxActive 10
			
			TFBot
			{
				Class Scout
				Skill Hard
			}
		}
		
		// tank bombing phuckery ////////////////////////////////////////////////////////////////////////////////////////////////////
		WaveSpawn
		{
			DoneOutput
			{
				Target air_warning_notxt_relay
				Action Trigger
			}
			WaitBeforeStarting 10
			Name wait
		}
		
		WaveSpawn
		{
			WaitForAllSpawned wait
			WaitBeforeStarting 5
			Name surprise
		}
		
		WaveSpawn
		{
			WaitForAllSpawned surprise
			StartWaveOutput
			{
				Target drop_bomb0_relay // call in a plane to drop the tank.
				Action Trigger
			}
			Name a
			TotalCount 1
			Support Limited
			TotalCurrency 10
			WaitBeforeStarting 3.9
			Tank
			{
				Health 300
				Speed 75
				StartingPathTrackNode "tank_path_air_bomb"
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned a
			WaitBeforeStarting 2
			Name andanotherone
		}
		
		WaveSpawn
		{
			WaitForAllSpawned andanotherone
			StartWaveOutput
			{
				Target drop_bomb0_relay
				Action Trigger
			}
			TotalCount 1
			TotalCurrency 10
			Support Limited
			WaitBeforeStarting 4.1
			Tank
			{
				Health 300
				Speed 75
				StartingPathTrackNode "tank_path_air_bomb1"
			}
		}
		// tank bombing phuckery ////////////////////////////////////////////////////////////////////////////////////////////////////
		
		WaveSpawn //subwave 16 maxactive 
		{
			WaitForAllSpawned sub0
			Name sub1
			WaitBeforeStarting 5
			WaitBetweenSpawns 18
			TotalCurrency 70
			Where spawnbot
			TotalCount 16
			SpawnCount 4
			MaxActive 6
			
			Squad
			{
				TFBot
				{
					Template T_TFBot_Soldier_Extended_Concheror
				}
				TFBot
				{
					Class Medic
					Skill Easy
					ClassIcon medic_kritz
					Name "The Cringekrieg"
					Item "The Kritzkrieg"
					Attributes SpawnWithFullCharge
					ItemAttributes
					{
						ItemName "The Kritzkrieg"
						"uber duration bonus" 60000
					}
					CharacterAttributes
					{
						"bot medic uber health threshold" 155
					}
				}
				TFBot
				{
					Class Pyro
					Skill Normal
					Attributes AlwaysFireWeapon
				}
				TFBot
				{
					Class Pyro
					Skill Normal
					Attributes AlwaysFireWeapon
				}
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub0
			Name sub1
			WaitBeforeStarting 7
			WaitBetweenSpawns 12
			TotalCurrency 60
			Where spawnbot_invasion
			TotalCount 24
			SpawnCount 4
			MaxActive 8
			
			TFBot
			{
				Template T_TFBot_Sniper_Huntsman
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub0
			Name sub1
			WaitBeforeStarting 9
			WaitBetweenSpawns 24
			TotalCurrency 100
			Where spawnbot
			TotalCount 2
			SpawnCount 1
			MaxActive 2
			
			TFBot
			{
				Template T_TFBot_Giant_Heavyweapons_Deflector
				Tag giant
			}
		}
		
		WaveSpawn
		{
			StartWaveOutput
			{
				Target air_warning_notxt_relay
				Action Trigger
			}
			WaitForAllSpawned sub1
			WaitBeforeStarting 5
			Name warning
		}
		
		WaveSpawn
		{
			WaitForAllSpawned warning
			StartWaveOutput
			{
				Target drop_bomb0_relay
				Action Trigger
			}
			TotalCount 1
			TotalCurrency 200
			WaitBeforeStarting 3.9
			Tank
			{
				Health 20000
				Name "droptank0"
				Speed 75
				StartingPathTrackNode "tank_path_drop0_b"
				OnKilledOutput // safety measure to remove the 'chute
				{
					Target droptank0_killed_relay
					Action Trigger
				}
				OnBombDroppedOutput
				{
					Target boss_deploy_relay 					
					Action Trigger                         		
				}
			}
		}
		
		WaveSpawn // subwave 3 maxactive 
		{
			WaitForAllSpawned sub1
			Name sub2
			WaitBeforeStarting 10
			WaitBetweenSpawns 25
			TotalCurrency 90
			Where spawnbot
			TotalCount 3
			SpawnCount 1
			MaxActive 2
			
			TFBot
			{
				Template T_TFBot_Giant_Scout_Fast
				Tag giant
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub1
			Name sub2
			WaitBeforeStarting 5
			WaitBetweenSpawns 12
			TotalCurrency 50
			Where spawnbot
			TotalCount 20
			SpawnCount 4
			MaxActive 8
			
			TFBot
			{
				Class Scout
				Attributes AlwaysCrit
				Name "Kritz Infused Scout"
				Skill Normal
				ClassIcon scout_giant
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub1
			Name sub2
			WaitBeforeStarting 9
			WaitBetweenSpawns 9
			TotalCurrency 60
			Where spawnbot_alt
			TotalCount 12
			SpawnCount 3
			MaxActive 6
			
			TFBot
			{
				Class Soldier
				Attributes AlwaysCrit
				Name "Kritz Infused Soldier"
				Skill Hard
			}
		}
	}
	
	Wave // wave 5, endurance. sniper(2) mission. money 1900
	{
		StartWaveOutput
		{
			Target wave_start_relay
			Action Trigger
		}
		DoneOutput
		{
			Target wave_finished_relay
			Action Trigger
		}
		
		WaveSpawn // wave 1 subwave 1 maxactive 20 
		{
			Name sub0
			WaitBeforeStarting 0
			WaitBetweenSpawns 22
			TotalCurrency 80
			Where spawnbot
			TotalCount 12
			SpawnCount 6
			MaxActive 12
			
			TFBot
			{
				Class Pyro
				Skill Hard
				Attributes AlwaysCrit
			}
		}
		
		WaveSpawn
		{
			Name sub0
			WaitBeforeStarting 2
			WaitBetweenSpawns 20
			TotalCurrency 50
			Where spawnbot
			TotalCount 4
			SpawnCount 2
			MaxActive 4
			
			TFBot
			{
				Template T_TFBot_Heavyweapons_Fist
				Tag giant
			}
		}
		
		WaveSpawn
		{
			StartWaveOutput
			{
				Target air_warning_notxt_relay
				Action Trigger
			}
			Name sub0
			WaitBeforeStarting 10
			WaitBetweenSpawns 15
			TotalCurrency 50
			Where spawnbot_airdrop0
			TotalCount 4
			SpawnCount 2
			MaxActive 4
			
			TFBot
			{
				Template aircrap_Air_Striker
			}
		}
		
		WaveSpawn // wave 1 subwave 2 maxactive 18
		{
			StartWaveOutput
			{
				Target air_warning_notxt_relay
				Action Trigger
			}
			WaitForAllSpawned sub0
			Name sub1
			WaitBeforeStarting 10
			WaitBetweenSpawns 15
			TotalCurrency 90
			Where spawnbot_airdrop0
			Where spawnbot_airdrop1
			RandomSpawn 1
			TotalCount 12
			SpawnCount 4
			MaxActive 8
			
			TFBot
			{
				Template aircrap_sup_flare
				Item "The B.A.S.E. Jumper"
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub0
			Name sub1
			WaitBeforeStarting 10
			WaitBetweenSpawns 30
			TotalCurrency 130
			Where spawnbot_airdrop0
			TotalCount 2
			SpawnCount 2
			MaxActive 4
			
			TFBot
			{
				Template aircrap_Air_Striker
				Tag giant
				Health 3800
				Name "Giant Air Striker"
				ClassIcon soldier_giant
				Attributes MiniBoss
				ItemAttributes
				{
					ItemName "The Air Strike"
					"faster reload rate" -0.8
					"fire rate bonus" 0.5
				}
				CharacterAttributes
				{
					"move speed bonus"	0.5
					"damage force reduction" 0.3
					"airblast vulnerability multiplier" 0.3
					"override footstep sound set" 3
					"Projectile speed increased" 0.65
				}
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub0
			Name sub1
			WaitBeforeStarting 5
			WaitBetweenSpawns 10
			TotalCurrency 60
			Where spawnbot_side
			TotalCount 18
			SpawnCount 3
			MaxActive 6
			
			TFBot
			{
				Template T_TFBot_Demo_Burst
			}
		}
		
		WaveSpawn // wave 1 subwave 3 maxactive 
		{
			WaitForAllSpawned sub1
			TotalCount 1
			TotalCurrency 100
			WaitBeforeStarting 15
			Support Limited
			Tank
			{
				StartingPathTrackNode "tank_path_a"
				Name "tank"
				Health 18000
				Speed 70
				
				OnBombDroppedOutput
				{
					Target boss_deploy_relay 					
					Action Trigger                         		
				}
			}
		}
		
		WaveSpawn
		{
			WaitBeforeStarting 35
			WaitForAllSpawned sub1
			Name waitforit
		}
		
		WaveSpawn
		{
			StartWaveOutput
			{
				Target air_warning_notxt_relay
				Action Trigger
			}
			WaitBeforeStarting 5
			WaitForAllSpawned waitforit
			Name surprise
		}
		
		WaveSpawn
		{
			WaitForAllSpawned surprise
			StartWaveOutput
			{
				Target drop_bomb0_relay
				Action Trigger
			}
			TotalCount 1
			Support Limited
			TotalCurrency 20
			WaitBeforeStarting 3.9
			Tank
			{
				Health 300
				Name "tank"
				Speed 75
				StartingPathTrackNode "tank_path_air_bomb"
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub1
			Name sub2
			WaitBeforeStarting 25
			WaitBetweenSpawns 0
			TotalCurrency 100
			TotalCount 1
			SpawnCount 1
			MaxActive 1
			
			Tank
			{
				Name "tank"
				StartingPathTrackNode tank_path_b
				Speed 70
				Health 20000
				
				OnBombDroppedOutput
				{
					Target boss_deploy_relay 					
					Action Trigger                         		
				}
			}
		}
		
		WaveSpawn // wave 1 subwave 3 maxactive 20
		{
			WaitForAllSpawned sub1
			Name sub2
			WaitBeforeStarting 10
			WaitBetweenSpawns 20
			TotalCurrency 60
			Where spawnbot
			TotalCount 24
			SpawnCount 6
			MaxActive 12
			
			TFBot
			{
				Template T_TFBot_Soldier_RocketShotgun
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub1
			Name sub2
			WaitBeforeStarting 10
			WaitBetweenSpawns 10
			TotalCurrency 60
			Where spawnbot
			TotalCount 12
			SpawnCount 3
			MaxActive 6
			
			TFBot
			{
				Template T_TFBot_Soldier_Extended_Concheror
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub1
			Name sub2
			WaitBeforeStarting 7
			WaitBetweenSpawns 10
			TotalCurrency 100
			Where spawnbot
			TotalCount 4
			SpawnCount 2
			MaxActive 2
			
			TFBot
			{
				Template T_TFBot_Giant_Soldier_RocketShotgun
				Tag giant
				Attributes UseBossHealthBar
			}
		}
		
		// wave 2
		
		WaveSpawn // break
		{
			StartWaveWarningSound "ui/mm_round_end_stalemate_music.wav"
			WaitForAllDead sub2
			WaitBeforeStarting 35
			Name wavebreak
			StartWaveOutput
			{
				Target break_start_relay
				Action Trigger
			}
			FirstSpawnOutput
			{
				Target break_end_relay
				Action Trigger
			}
		}
		
		WaveSpawn
		{
			FirstSpawnWarningSound "ui/mm_round_start.wav"
			WaitForAllDead sub2
			WaitBeforeStarting 30
		}
		
		WaveSpawn // wave 2 subwave 18 maxactive
		{
			WaitForAllSpawned wavebreak
			Name sub02
			WaitBeforeStarting 2
			WaitBetweenSpawns 20
			TotalCurrency 50
			Where spawnbot
			TotalCount 2
			SpawnCount 1
			MaxActive 1
			

			TFBot
			{
				Template T_TFBot_Giant_Soldier_Extended_Battalion
				Tag giant
			}
			
		}
		
		WaveSpawn
		{
			WaitForAllSpawned wavebreak
			Name sub02
			WaitBeforeStarting 2
			WaitBetweenSpawns 20
			TotalCurrency 50
			Where spawnbot
			TotalCount 2
			SpawnCount 1
			MaxActive 1
			

			TFBot
			{
				Template T_TFBot_Giant_Soldier_Extended_Buff_Banner
				Tag giant
			}
			
		}
		
		WaveSpawn
		{
			WaitForAllSpawned wavebreak
			Name sub02
			WaitBeforeStarting 5
			WaitBetweenSpawns 10
			TotalCurrency 50
			Where spawnbot_airdrop0
			TotalCount 10
			SpawnCount 2
			MaxActive 4
			
			TFBot
			{
				Class Scout
				Name "Air Delivery Milk"
				Skill Easy
				ClassIcon scout_milk
				Item "Mad Milk"
				Item "The B.A.S.E. Jumper"
				Item "The Fan O'War"
				WeaponRestrictions SecondaryOnly
				Attributes AlwaysFireWeapon
				CharacterAttributes
				{
					"effect bar recharge rate increased" 0.1
				}
			}
		}
		
		WaveSpawn
		{
			StartWaveOutput
			{
				Target air_warning_notxt_relay
				Action Trigger
			}
			WaitForAllSpawned wavebreak
			Name sub02
			WaitBeforeStarting 8
			WaitBetweenSpawns 15
			TotalCurrency 80
			Where spawnbot_airdrop0
			Where spawnbot_side
			RandomSpawn 1
			TotalCount 30
			SpawnCount 6
			MaxActive 12
			
			TFBot
			{
				Template aircrap_SMG_Fodder_Air
			}
		}
		
		WaveSpawn // wave 2 subwave 18 maxactive 
		{
			WaitForAllSpawned sub02
			Name sub12
			WaitBeforeStarting 8
			WaitBetweenSpawns 15
			TotalCurrency 90
			Where spawnbot
			TotalCount 30
			SpawnCount 6
			MaxActive 12
			
			TFBot
			{
				Class Heavy
				Skill Normal
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub02
			Name sub12
			WaitBeforeStarting 8
			WaitBetweenSpawns 15
			TotalCurrency 80
			Where spawnbot_alt
			TotalCount 18
			SpawnCount 3
			MaxActive 6
			
			TFBot
			{
				Template T_TFBot_Scout_Bonk
			}
		}
		
		WaveSpawn
		{
			StartWaveOutput
			{
				Target air_warning_notxt_relay
				Action Trigger
			}
			WaitForAllSpawned sub02
			Name sub12
			WaitBeforeStarting 10
			WaitBetweenSpawns 15
			TotalCurrency 120
			Where spawnbot_airdrop0
			TotalCount 2
			SpawnCount 1
			MaxActive 2
			
			TFBot
			{
				Template T_TFBot_Soldier_BurstFire
				Tag giant
				Item "The B.A.S.E. Jumper"
			}
		}
		
		WaveSpawn
		{
			WaitForAllSpawned sub02
			WaitBeforeStarting 35
			Name tankdrop
		}
		
		WaveSpawn
		{
			WaitForAllSpawned tankdrop
			StartWaveOutput
			{
				Target drop_bomb0_relay
				Action Trigger
			}
			Name sub12
			TotalCount 1
			TotalCurrency 100
			WaitBeforeStarting 3.9
			Tank
			{
				Health 20000
				Name "droptank0"
				Speed 75
				StartingPathTrackNode "tank_path_drop0_b"
				OnKilledOutput // safety measure to remove the 'chute
				{
					Target droptank0_killed_relay
					Action Trigger
				}
				OnBombDroppedOutput
				{
					Target boss_deploy_relay 					
					Action Trigger                         		
				}
			}
		}
		
		WaveSpawn // wave 2 subwave 3 maxactive 9
		{
			WaitForAllDead sub12
			Name sub22
			WaitBeforeStarting 15
			TotalCurrency 200
			Where spawnbot_mission_sentrybuster
			TotalCount 1
			SpawnCount 1
			MaxActive 1
			
			TFBot // boss inspired by all the attributes phuckery on... was it winterbridge?
			{
				Class Scout
				Health 46000
				Name "A.C.E. 5000"
				ClassIcon scout_giant
				AutoJumpMin 1
				AutoJumpMax 1
				
				EventChangeAttributes
				{
					Default // default shooty shooty with the pistol
					{
						Attributes MiniBoss
						Attributes UseBossHealthBar
						Tag giant
						Skill Hard
						Tag nav_spawn_right
						WeaponRestrictions SecondaryOnly
						Item "The C.A.P.P.E.R"
						Item "Batsaber"
						Item "The Bolt Boy"
						ItemAttributes
						{
							ItemName "The C.A.P.P.E.R"
							"override projectile type" 13
							"projectile penetration" 1
						}
						CharacterAttributes
						{
							"move speed bonus"	0.35
							"cancel falling damage" 1
							"damage force reduction" 0.2
							"airblast vulnerability multiplier" 0.2
							"Projectile speed increased" 0.3
						}
					}
					
					BotAttributes1 // run like a madlad and shoot rockets because he can
					{
						Attributes MiniBoss
						Attributes UseBossHealthBar
						Attributes AlwaysFireWeapon
						Tag giant
						Skill Hard
						WeaponRestrictions PrimaryOnly
						Item "The C.A.P.P.E.R"
						Item "Batsaber"
						Item "The Bolt Boy"
						ItemAttributes
						{
							ItemName "TF_WEAPON_SCATTERGUN"
							"override projectile type" 2
							"Reload time decreased" 0.05
							"damage bonus" 15 // rockets with bullet's damage are pathetic
							"rocket specialist" 1
						}
						CharacterAttributes
						{
							"move speed bonus"	0.2
							"cancel falling damage" 1
							"increased jump height" 0
							"damage force reduction" 0.2
							"airblast vulnerability multiplier" 0.2
							"Projectile speed increased" 0.5
							"mini rockets" 1
						}
					}
					
					BotAttributes2 // get high and shoot barrage of shit at poor people down there
					{
						Attributes MiniBoss
						Attributes UseBossHealthBar
						Tag giant
						Skill Hard
						Attributes AutoJump
						WeaponRestrictions SecondaryOnly
						Item "The C.A.P.P.E.R"
						Item "Batsaber"
						Item "The Bolt Boy"
						Attributes AlwaysCrit
						ItemAttributes
						{
							ItemName "The C.A.P.P.E.R"
							"override projectile type" 13
							"Reload time decreased" 0.1
							"projectile penetration" 1
							"clip size bonus upgrade" 50
							"fire rate bonus" 0.1
							"projectile spread angle penalty" 15
						}
						CharacterAttributes
						{
							"move speed bonus"	0.1
							"cancel falling damage" 1
							"increased jump height" 10
							"damage force reduction" 0.2
							"airblast vulnerability multiplier" 0.2
							"Projectile speed increased" 0.3
							"hand scale" 2
						}
					}
				}
			}
		}
		
		// attributes phuckery //////////////////////////////////////////////////////////////////////////////
		
		WaveSpawn
		{
			FirstSpawnOutput
			{
				Target bot_attributes_1_relay
				Action Trigger
			}
			WaitForAllSpawned sub22
			Name attributes0
			Support Limited
			WaitBeforeStarting 11.8
		}
		
		WaveSpawn
		{
			FirstSpawnOutput
			{
				Target bot_attributes_default_relay
				Action Trigger
			}
			WaitForAllSpawned attributes0
			Name attributes1
			Support Limited
			WaitBeforeStarting 20
		}
		
		WaveSpawn
		{
			FirstSpawnWarningSound "mvm/mvm_tele_activate.wav"
			WaitForAllSpawned attributes1
			Name attributes1wait
			Support Limited
			WaitBeforeStarting 18
		}
		
		WaveSpawn
		{
			FirstSpawnOutput
			{
				Target bot_attributes_2_relay
				Action Trigger
			}
			WaitForAllSpawned attributes1wait
			Name attributes2
			Support Limited
			WaitBeforeStarting 5
		}
		
		WaveSpawn
		{
			FirstSpawnOutput
			{
				Target bot_attributes_default_relay
				Action Trigger
			}
			WaitForAllSpawned attributes2
			Name attributes3
			Support Limited
			WaitBeforeStarting 2
		}
		
		WaveSpawn
		{
			FirstSpawnWarningSound "mvm/mvm_tele_activate.wav"
			WaitForAllSpawned attributes3
			Name attributes3wait
			Support Limited
			WaitBeforeStarting 18
		}
		
		WaveSpawn
		{
			FirstSpawnOutput
			{
				Target bot_attributes_2_relay
				Action Trigger
			}
			WaitForAllSpawned attributes3wait
			Name attributes4
			Support Limited
			WaitBeforeStarting 5
		}
		
		WaveSpawn
		{
			FirstSpawnOutput
			{
				Target bot_attributes_default_relay
				Action Trigger
			}
			WaitForAllSpawned attributes4
			Support Limited
			WaitBeforeStarting 2
		}
		
		// attributes phuckery ////////////////////////////////////////////////////////////////////////////////
		
		WaveSpawn
		{
			WaitForAllDead sub12
			WaitBeforeStarting 6
			WaitBetweenSpawns 25
			TotalCurrency 80
			Support 1
			Where spawnbot_invasion
			TotalCount 20
			SpawnCount 4
			MaxActive 8
			
			TFBot
			{
				Class Scout
				Skill Normal
				Name "Subwoofer"
				WeaponRestrictions SecondaryOnly
				Item "The C.A.P.P.E.R"
				Item "The Hound's Hood"
			}
		}
		
		WaveSpawn
		{
			StartWaveOutput
			{
				Target air_warning_notxt_relay
				Action Trigger
			}
			WaitBeforeStarting 5
			WaitForAllSpawned attributes1
			Name lastttank
		}
		
		WaveSpawn
		{
			WaitForAllSpawned lastttank
			StartWaveOutput
			{
				Target drop_bomb1_relay
				Action Trigger
			}
			TotalCount 1
			TotalCurrency 100
			WaitBeforeStarting 3.9
			Tank
			{
				Health 12500
				Skin 1
				Name "droptank1"
				Speed 75
				StartingPathTrackNode "tank_path_drop1"
				OnKilledOutput // safety measure to remove the 'chute
				{
					Target droptank1_killed_relay
					Action Trigger
				}
				OnBombDroppedOutput
				{
					Target boss_deploy_relay 					
					Action Trigger                         		
				}
			}
		}
	}
}