#base robot_standard.pop
#base robot_giant.pop

WaveSchedule
{
    StartingCurrency 1200
    CanBotsAttackWhileInSpawnRoom no
    RespawnWaveTime 5
    //spawnbots:
    //spawnbot_upper
    //spawnbot_right
    //spawnbot_center
    //spawnbot_left
    //spawnbot_lower
    //spawnbot_invasion

    Mission // Sentry Buster
    {
        Objective DestroySentries
        Where spawnbot_center
        BeginAtWave 1
        RunForThisManyWaves 6
        InitialCooldown 50
        CooldownTime 40
        DesiredCount 1
        TFBot
        {
            Template T_TFBot_SentryBuster
        }
    }
    Mission // Spy
    {
        Objective Spy
        Where spawnbot_invasion
        BeginAtWave 2
        RunForThisManyWaves 1
        InitialCooldown 35
        CooldownTime 25
        DesiredCount 2
        TFBot
        {
            Template T_TFBot_Spy
        }
    }
    Mission
    {
        where spawnbot_upper
        Objective Sniper
        InitialCooldown 30
        BeginAtWave 1
        RunForThisManyWaves 1
        CooldownTime 45
        DesiredCount 1
        TFBot
        {
            Skill Hard
            Class Sniper
        }
    }
    Templates
    {
        T_TFBot_Flashing_Medic
        {
            Class Medic
            Skill Normal
            Name "Flashing Uber Medic"
            ClassIcon medic_battery
            WeaponRestrictions SecondaryOnly
            Attributes SpawnWithFullCharge
            ItemAttributes
            {
                ItemName "TF_WEAPON_MEDIGUN"
                "ubercharge rate bonus" 20
                "uber duration bonus" -6.5
            }
            CharacterAttributes
            {
                "bot medic uber health threshold" 200
            }
        }
        T_TFBot_Medic_Vaccinator_Bullet
        {
            Name "Bullet Vaccinator Medic"
            Class Medic
            Skill Expert
            ClassIcon medic_vacc_trio 
            WeaponRestrictions SecondaryOnly
            Attributes SpawnWithFullCharge
            ItemAttributes
            {
                ItemName "TF_WEAPON_MEDIGUN"
                "lunchbox adds minicrits" 3 
                "medigun bullet resist deployed" 1 
                "medigun bullet resist passive"  1 
                "medigun charge is resists" 3 
                "ubercharge rate bonus" 200
            }
            CharacterAttributes
            {
                "bot medic uber health threshold" -1
            }
        }
        T_TFBot_Medic_Vaccinator_Blast
        {
            Name "Blast Vaccinator Medic"
            Class Medic
            Skill Expert
            ClassIcon medic_vacc_trio 
            WeaponRestrictions SecondaryOnly
            Attributes SpawnWithFullCharge
            ItemAttributes
            {
                ItemName "TF_WEAPON_MEDIGUN"
                "lunchbox adds minicrits" 3 
                "medigun bullet resist deployed" 1 
                "medigun bullet resist passive"  1 
                "medigun charge is resists" 4 
                "ubercharge rate bonus" 200
            }
            CharacterAttributes
            {
                "bot medic uber health threshold" -1 
            }
        }
         T_TFBot_Medic_Vaccinator_Fire
        {
            Name "Fire Vaccinator Medic"
            Class Medic
            Skill Expert
            ClassIcon medic_vacc_trio
            WeaponRestrictions SecondaryOnly
            Attributes SpawnWithFullCharge
            ItemAttributes
            {
                ItemName "TF_WEAPON_MEDIGUN"
                "lunchbox adds minicrits" 3 //overrides Medigun traits with Vaccinator traits such as healing sound and multiple ubers
                "medigun bullet resist deployed" 1 // Percentage : 1 = 100%
                "medigun bullet resist passive"  1 // Percentage : 1 = 100%
                "medigun charge is resists" 5 //3 for bullet, 4 for blast, 5 for fire
                "ubercharge rate bonus" 200
            }
            CharacterAttributes
            {
                "bot medic uber health threshold" -1 // deploys Vaccinator Ãœbercharge immediately
            }
        }
        T_TFBot_quicky_Shield
        {
            Class Medic
            Name "Quick Fix Shield Medic"
            ClassIcon medic_shield_qf
            Skill Expert
            Item "The Quick-Fix"
            WeaponRestrictions SecondaryOnly
            Attributes SpawnWithFullCharge
            Attributes ProjectileShield
            ItemAttributes
            {
                ItemName "The Quick-Fix"
                "ubercharge rate bonus"    0.1
                "generate rage on heal"    2
            }
            CharacterAttributes
            {
            "bot medic uber deploy delay duration" 900
            }
        }
        T_TFBot_Giant_Flashing_Medic // Use if crazy Enough
        {
            Class Medic
            Name "Giant Flashing Uber"
            ClassIcon medic_battery
            Attributes MiniBoss
            WeaponRestrictions SecondaryOnly
            Attributes SpawnWithFullCharge
            Skill Expert
            Health 4500
            ItemAttributes
            {
                ItemName "TF_WEAPON_MEDIGUN"
                "ubercharge rate bonus" 15
                "uber duration bonus" -6.5
            }
            CharacterAttributes
            {
                "bot medic uber health threshold" 5000
                "move speed bonus"	0.5
				"damage force reduction" 0.6
				"airblast vulnerability multiplier" 0.6
				"health regen"	40
            }
        }
        T_TFBot_Explosive_Soldier
        {
            Class Soldier 
            ClassIcon soldier_explode
            Name "High Explosive Soldier"
            Skill Normal
            ItemAttributes
            {
                ItemName "TF_WEAPON_ROCKETLAUNCHER"
                "damage bonus" 0.8
                "Blast radius increased" 1.4
            }
        }
        T_TFBot_Explosive_Demoman
        {
            Class Demoman
            ClassIcon demo_explode
            Name "High Explosive Demoman"
            Skill Normal
            ItemAttributes
            {
                ItemName "tf_weapon_grenadelauncher"
                "damage bonus" 0.75
                "blast radius increased" 1.4
            }
        }
        T_TFBot_Shotgun_Heavy_Accurate
        {
            Class Heavyweapons
            ClassIcon heavy_shotgun_accurate_lite
            Name "Accurate Heavy Shotgun"
            Skill Normal
            WeaponRestrictions SecondaryOnly
            ItemAttributes
            {
                ItemName "tf_weapon_shotgun_hwg"
                "spread penalty" 0.5
            }

        }
    }
    Wave // Wave 1
    {
        StartWaveOutput
		{
			Target	wave_start_relay_classic
			Action	Trigger
		}
		DoneOutput
		{
			Target	wave_finished_relay
			Action	Trigger

        }
        WaveSpawn
        {
            Name 1_GiantSoldiers
            where spawnbot_center
            TotalCount 9
            TotalCurrency 250
            MaxActive 6
            SpawnCount 1
            WaitBetweenSpawns 20
            Squad
            {
                TFBot
                {
                    Template T_TFBot_Giant_Demoman
                }
                TFBot
                {
                    Template T_TFBot_Medic_BigHeal
                }
                TFBot
                {
                    Template T_TFBot_Medic_BigHeal
                }
            }
        }
        WaveSpawn
        {
            Name 1_Demos
            where spawnbot_left
            TotalCount 28
            TotalCurrency 150
            MaxActive 6
            SpawnCount 3
            WaitBetweenSpawns 6
            WaitBeforeStarting 2
            TFBot
            {
                Class Demoman
                Skill Normal
            }
        }
        WaveSpawn
        {
            Name 1_Pyros
            Where spawnbot_upper
            TotalCount 26
            TotalCurrency 100
            MaxActive 6
            SpawnCount 3
            WaitBetweenSpawns 5
            WaitBeforeStarting 2
            TFBot
            {
                Skill Easy
                Class Pyro
            }
        }
        WaveSpawn
        {
            Name 1_GiantChamp
            where spawnbot_center
            TotalCount 10
            TotalCurrency 150
            MaxActive 5
            SpawnCount 1
            WaitBetweenSpawns 24
            WaitBeforeStarting 25
            WaitForAllSpawned 1_GiantSoldiers
            Squad
            {
                TFBot
                {
                    Template T_TFBot_Giant_Boxing_Heavy
                }
                TFBot
                {
                    Template T_TFBot_Medic_BigHeal
                }
                TFBot
                {
                    Template T_TFBot_Medic_BigHeal
                }
                TFBot
                {
                    Template T_TFBot_Medic_BigHeal
                }
                TFBot
                {
                    Template T_TFBot_Medic_BigHeal
                }
            }
        }
        WaveSpawn
        {
            Name 1_Soldiers
            where spawnbot_right
            TotalCount 10
            Support Limited
            TotalCurrency 150
            MaxActive 6
            SpawnCount 2
            WaitBetweenSpawns 5
            WaitBeforeStarting 28
            WaitForAllSpawned 1_GiantSoldiers
            TFBot
            {
                Class Soldier
                Skill Normal
            }
        }
        WaveSpawn
        {
            Name 1_GiantShotgun
            Where spawnbot_center
            TotalCount 2
            TotalCurrency 150
            MaxActive 2
            WaitBeforeStarting 1
            WaitBetweenSpawns 27
            SpawnCount 1
            WaitForAllDead 1_GiantChamp
            TFBot
            {
                Template T_TFBot_Giant_Heavyweapons_Shotgun
            }
        }
        WaveSpawn
        {
            Name 1_Bowmen
            Where spawnbot_upper
            TotalCount 20
            Support 1
            TotalCurrency 0
            MaxActive 6
            SpawnCount 2
            WaitBeforeStarting 7
            WaitBetweenSpawns 6
            WaitForAllDead 1_GiantChamp
            TFBot
            {
                Template T_TFBot_Sniper_Huntsman
            }
        }
        WaveSpawn
        {
            Name 1_Soldiers
            where spawnbot_right
            Support 1
            MaxActive 4
            SpawnCount 2
            TotalCurrency 0
            WaitForAllDead 1_GiantChamp
            WaitBeforeStarting 9
            WaitBetweenSpawns 6
            TotalCount 8
            TFBot
            {
                Class Soldier
                Skill Normal
            }
        }
    }
    Wave // Wave 2
    {
        StartWaveOutput
		{
			Target	wave_start_relay_classic
			Action	Trigger
		}
		DoneOutput
		{
			Target	wave_finished_relay
			Action	Trigger
        }
        WaveSpawn
        {
            Name 2_Tank
            TotalCurrency 300
            TotalCount 1
            MaxActive 1
            SpawnCount 1
            WaitBeforeStarting 4
            Tank
            {
                Health 24500
                Name "Tank"
                Speed 70
                StartingPathTrackNode "tank_path_a_1"
                OnKilledOutput
				{
					Target	boss_dead_relay
					Action	Trigger
				}
				OnBombDroppedOutput
				{
					Target	boss_deploy_relay
					Action	Trigger
                }
            }
        }
        WaveSpawn
        {
            Name 2_Soldiers
            TotalCurrency 50
            TotalCount 18
            MaxActive 4
            SpawnCount 2
            Where spawnbot_left
            WaitBetweenSpawns 3
            WaitBeforeStarting 4
            TFBot
            {
                Template T_TFBot_Explosive_Soldier
            }
        }
        WaveSpawn
        {
            Name 2_FastChamps
            TotalCurrency 50
            TotalCount 32
            MaxActive 10
            SpawnCount 5
            WaitBetweenSpawns 8
            WaitBeforeStarting 4
            where spawnbot_upper
            TFBot
            {
                Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast
                Attributes AlwaysCrit
            }
        }
        WaveSpawn
        {
            Name 2_GiantDemo
            TotalCurrency 100
            TotalCount 8
            MaxActive 8
            SpawnCount 1
            WaitBeforeStarting 2
            WaitBetweenSpawns 27
            where spawnbot_center
            WaitForAllDead 2_Tank
            Squad
            {
                TFBot
                {
                    Template T_TFBot_Giant_Soldier_Spammer_Reload
                    Attributes AlwaysCrit
                }
                TFBot
                {
                    Template T_TFBot_Medic_Vaccinator_Blast
                }
                TFBot
                {
                    Template T_TFBot_Medic_Vaccinator_Bullet
                }
                TFBot
                {
                    Template T_TFBot_Medic_Vaccinator_Fire
                }
            }
        }
        WaveSpawn
        {
            Name 2_Bowmen
            TotalCurrency 100
            TotalCount 12
            MaxActive 12
            SpawnCount 4
            WaitBetweenSpawns 7
            WaitBeforeStarting 6
            WaitForAllDead 2_Tank
            where spawnbot_upper
            TFBot
            {
                Template T_TFBot_Sniper_Huntsman
            }
        }
        WaveSpawn
        {
            Name 2_Shotguns
            TotalCount 10
            TotalCurrency 100
            SpawnCount 2
            MaxActive 6
            Where spawnbot_left
            WaitForAllDead 2_Tank
            WaitBeforeStarting 7
            WaitBetweenSpawns 6
            TFBot
            {
                Template T_TFBot_Shotgun_Heavy_Accurate
            }
        }
        WaveSpawn
        {
            Name 2_Shotguns
            TotalCount 10
            TotalCurrency 150
            SpawnCount 2
            MaxActive 6
            Where spawnbot_right
            WaitForAllDead 2_Tank
            WaitBeforeStarting 7
            WaitBetweenSpawns 6
            TFBot
            {
                Template T_TFBot_Shotgun_Heavy_Accurate
            }
        }
        WaveSpawn
        {
            Name 2_GiantHeavy
            TotalCount 2
            TotalCurrency 150
            SpawnCount 1
            MaxActive 2
            Where spawnbot_center
            WaitForAllSpawned 2_GiantDemo
            WaitBeforeStarting 20
            WaitBetweenSpawns 27
            TFBot
            {
                Template T_TFBot_Giant_Heavyweapons
            }
        }
        WaveSpawn
        {
            Name 2_Support
            TotalCount 80
            TotalCurrency 0
            SpawnCount 3
            Support 1
            MaxActive 6
            where spawnbot_upper
            WaitForAllDead 2_GiantDemo
            WaitBeforeStarting 10
            WaitBetweenSpawns 7
            TFBot
            {
                Class Pyro
                Skill Hard
            }
        }
        WaveSpawn
        {
            Name 2_Support2
            TotalCount 20
            TotalCurrency 0
            Support 1
            SpawnCount 4
            MaxActive 6
            where spawnbot_right
            WaitForAllDead 2_GiantDemo
            WaitBetweenSpawns 8
            WaitBeforeStarting 8
            TFBot
            {
                Class Scout
                Skill Easy
            }
        }
    }
    Wave // Wave 3
    {
        StartWaveOutput
		{
			Target	wave_start_relay_classic
			Action	Trigger
		}
		DoneOutput
		{
			Target	wave_finished_relay
			Action	Trigger
        }
        WaveSpawn
        {
            Name 3_FoSCombo
            TotalCurrency 200
            TotalCount 12
            MaxActive 6
            SpawnCount 1
            WaitBetweenSpawns 14
            Where spawnbot_center
            Squad
            {
                TFBot
                {
                    Template T_TFBot_Heavyweapons_Fist
                    Attributes AlwaysCrit
                }
                TFBot
                {
                    Template T_TFBot_Flashing_Medic
                }
            }
        }
        WaveSpawn
        {
            Name 3_Pyros
            TotalCurrency 100
            TotalCount 18
            MaxActive 6
            SpawnCount 3
            where spawnbot_left
            WaitBetweenSpawns 8
            WaitBeforeStarting 3
            TFBot
            {
                Class Pyro
                Skill Expert
                ClassIcon pyro_airblast
            }
        }
        WaveSpawn
        {
            Name 3_Soldiers
            TotalCurrency 100
            TotalCount 16
            MaxActive 6
            SpawnCount 2
            where spawnbot_upper
            WaitBeforeStarting 4
            WaitBetweenSpawns 7
            TFBot
            {
                Class Soldier
                Skill Normal
            }
        }
        WaveSpawn
        {
            Name 3_Bowman
            TotalCurrency 50
            TotalCount 6
            MaxActive 4
            SpawnCount 1
            WaitBetweenSpawns 14
            WaitBeforeStarting 5
            where spawnbot_right
            TFBot
            {
                Class Sniper
                Name "Bowman Rapid Fire"
                Item "The Huntsman"
                ClassIcon sniper_bow_multi_penetrator
                Skill Hard
                Health 1200
                "scale" 1.5
                ItemAttributes
                {
                    ItemName "The Huntsman"
                    "fire rate bonus" 0.6
                    "projectile penetration" 1
                }
                CharacterAttributes
                {
                    "head scale" 0.7
                    "move speed bonus"	0.85
                }
            }
        }
        WaveSpawn
        {
            Name 3_BurstFire
            TotalCurrency 200
            TotalCount 8
            MaxActive 8
            SpawnCount 1
            Where spawnbot_center
            WaitBetweenSpawns 26
            WaitBeforeStarting 16
            WaitForAllSpawned 3_FoSCombo
            Squad
            {
                TFBot
                {
                    Template T_TFBot_Giant_Soldier_Spammer_Reload
                    Attributes AlwaysCrit
                }
                TFBot
                {
                    Template T_TFBot_Medic_QuickUber
                }
                TFBot
                {
                    Template T_TFBot_Medic_QuickUber
                }
                TFBot
                {
                    Template T_TFBot_Medic_QuickUber
                }
            }
        }
        WaveSpawn
        {
            Name 3_Scouts
            TotalCurrency 100
            TotalCount 12
            SpawnCount 3
            MaxActive 7
            Support Limited
            Where spawnbot_upper
            WaitForAllDead 3_FoSCombo
            WaitBeforeStarting 6
            WaitBetweenSpawns 8
            TFBot
            {
                Template T_TFBot_Scout_FAN
            }
        }
        WaveSpawn
        {
            Name 3_Demos
            TotalCurrency 100
            TotalCount 8
            SpawnCount 2
            MaxActive 4
            Support Limited
            WaitBetweenSpawns 5
            WaitBeforeStarting 5
            where spawnbot_left
            WaitForAllDead 3_FoSCombo
            TFBot
            {
                Template T_TFBot_Explosive_Demoman
            }
        }
        WaveSpawn
        {
            Name 3_Support
            TotalCurrency 25
            TotalCount 12
            MaxActive 4
            where spawnbot_right
            WaitForAllDead 3_FoSCombo
            WaitBetweenSpawns 5
            WaitBeforeStarting 6
            Support limited
            TFBot
            {
                Class Scout
                Skill Easy
            }
        }
    }
}