Рандомное назначение босса в каждом раунде (Zombie Survival)

Знакомый подсказал что видал на серверах функцию что зомби в каждом раунде который становился рандомно боссом.
Мне нужно что-то похожее, что-бы в начале каждого раунда от второй и заканчивая последней волной рандомный игрок автоматом становился боссом. Исключительно те кто за зомби

Если у кого есть дайте пажожда :no_mouth:

local totalWaves = 10
local currentWave = 0

local bossRole = "BossZombie"
local normalZombieRole = "Zombie"

local function SelectRandomZombieBoss()
    local zombiePlayers = {}

    for _, player in ipairs(player.GetAll()) do
        if player:Team() == TEAM_ZOMBIE and player:GetRole() == normalZombieRole then
            table.insert(zombiePlayers, player)
        end
    end
    if #zombiePlayers > 0 then
        local boss = zombiePlayers[math.random(#zombiePlayers)]
        boss:SetRole(bossRole)
        boss:SetHealth(boss:Health() * 2)
        boss:SetDamage(boss:GetDamage() * 2)
        print(boss:Nick() .. " стал боссом!")
    end
end

hook.Add("RoundStart", "SelectZombieBossOnRoundStart", function()
    currentWave = currentWave + 1
    if currentWave > 1 and currentWave <= totalWaves then
        SelectRandomZombieBoss()
    end
end)

function PLAYER:SetRole(role)
    self:SetNWString("role", role)
    if role == bossRole then
        self:SetModel("models/boss_zombie.mdl")
        self:SetWalkSpeed(self:GetWalkSpeed() * 1.5)
        self:SetRunSpeed(self:GetRunSpeed() * 1.5)
    elseif role == normalZombieRole then
        self:SetModel("models/normal_zombie.mdl")
        self:SetWalkSpeed(self:GetWalkSpeed() / 1.5)
        self:SetRunSpeed(self:GetRunSpeed() / 1.5)
    end
end
function PLAYER:Team()
    return self:GetNWInt("team")
end
function PLAYER:GetRole()
    return self:GetNWString("role")
end
function PLAYER:GetDamage()
    return self:GetNWInt("damage")
end

function PLAYER:SetDamage(damage)
    self:SetNWInt("damage", damage)
end
hook.Add("PlayerSpawn", "SetInitialRole", function(ply)
    if ply:Team() == TEAM_ZOMBIE then
        ply:SetRole(normalZombieRole)
        ply:SetDamage(10)
    end
end)

totalWaves - общее количество волн
currentWave - текущая волна