--     [1] = "Scout",
--     [3] = "Soldier",
--     [7] = "Pyro",
--     [4] = "Demo",
--     [6] = "Heavy",
--     [9] = "Engineer",
--     [5] = "Medic",
--     [2] = "Sniper",
--     [8] = "Spy",
--   just to remember what the fuck their IDs are.


party_Activated = false
partyPopulation = {}

djbuff = 0

function OnWaveReset(wave)
    util.PrintToChatAll("Suddenly... The Arrayed Variables disappeared.")

    for index, bot in pairs(partyPopulation)do
        partyPopulation[index] = nil
    end

    party_Activated = false 
    djbuff = 0
end


function OnWaveSpawnBot(bot, wave, tags) -- time to party
    local smallbuffs = { -- TODO: find a way to index functions... wild, right?
        function() -- Bonk Scout DJ
            bot:AddCond(33,999)
        end,
        _, --empty
        function() -- soldier DJ
            bot:GiveItem("Bombard Brigadier")
            bot:GiveItem("The Little Drummer Mann")
            bot:GiveItem("Delinquent's Down Vest")
            bot:GiveItem("The Concheror")

            bot:SetAttributeValue("Reload time decreased", 2.25)
            bot:SetAttributeValue("minicrit_boost_charge_rate", 40)
        end,
        _, --empty
        _, --empty
        function() -- Heavy Metal DJ
            bot:GiveItem("dec2014 Truands Tunic")
            bot:GiveItem("Punk's Pomp")
            bot:GiveItem("Blizzard Britches")

            bot:SetAttributeValue("minicrit vs burning player", 1)
        end,
        _,
        _,
        _
    }

    local giantbuffs = {
        function() -- Bonk Scout DJ
            bot:AddCond(33,999)
        end,
        _, -- empty
        function() -- soldier DJ
            bot:GiveItem("Bombard Brigadier")
            bot:GiveItem("The Little Drummer Mann")
            bot:GiveItem("Delinquent's Down Vest")
            bot:GiveItem("The Concheror")

            bot:SetAttributeValue("Reload time decreased",3.75)
        end,
        _, --empty
        _,--empty
        function() -- Heavy Metal DJ
            bot:GiveItem("dec2014 Truands Tunic")
            bot:GiveItem("Punk's Pomp")
            bot:GiveItem("Blizzard Britches")

            bot:SetAttributeValue("Set DamageType Ignite", 1)
            bot:SetAttributeValue("weapon burn dmg reduced", 1.20)
            bot:SetAttributeValue("critboost on kill", 8)
            bot:AcceptInput("IgnitePlayer", 999,)
        end
        _,
        _,
        _
    }


    for _, tag in pairs(tags) do

        if tag == "partyStandard" and party_Activated == true then
            smallbuffs[djbuff]()
        elseif tag == "partyGiant" then
            giantbuffs[djbuff]()
        end

    end
end

function lightUpTheNight(_, activator)
    djbuff = activator.m_iClass
    party_Activated = true 
end