PLUGIN.name = "NLR System"
PLUGIN.author = "RefoselTeamWork"
PLUGIN.description = "New Life Rule система для Military RP"

-- Конфигурация зон для каждой фракции
PLUGIN.config = {
    -- Время NLR после смерти (в секундах)
    nlrTime = 300, -- 5 минут
    
    -- Время предупреждения перед смертью (в секундах)
    warningTime = 15, -- 1 минута
    
    -- Разрешенные зоны для каждой фракции
    zones = {
        -- Россия
        [FACTION_RUSSIAN] = {
            -- Основная база
            {
                min = Vector(16209.329102, 16203.910156, -1046.129639),
                max = Vector(10388.949219, 9995.708984, 2110.358643),
                name = "Российская база"
            },
            -- База Русичей (добавлено чтобы NLR не убивал при спавне)
            {
                min = Vector(7412.163574, 14589.896484, -287.295044),
                max = Vector(6238.277832, 13538.660156, 769.099426),
                name = "База Русичей"
            },
            -- База Украины (теперь РФ может быть тут без NLR)
            {
                min = Vector(-16190.572266, -12279.253906, 1879.668945),
                max = Vector(-12284.045898, -4947.237305, -458.217285),
                name = "Украинская база"
            }
        },
        
        -- Украина
        [FACTION_UKRAINE] = {
            -- Основная база
            {
                min = Vector(-16190.572266, -12279.253906, 1879.668945),
                max = Vector(-12284.045898, -4947.237305, -458.217285),
                name = "Украинская база"
            },
            -- База России (теперь УК может быть тут без NLR)
            {
                min = Vector(16209.329102, 16203.910156, -1046.129639),
                max = Vector(10388.949219, 9995.708984, 2110.358643),
                name = "Российская база"
            },
            -- База Русичей
            {
                min = Vector(7412.163574, 14589.896484, -287.295044),
                max = Vector(6238.277832, 13538.660156, 769.099426),
                name = "База Русичей"
            }
        }
    }
    }

-- Проверка, находится ли позиция в зоне
function PLUGIN:IsInZone(pos, zone)
    -- Нормализуем координаты зоны (min должен быть меньше max)
    local minX = math.min(zone.min.x, zone.max.x)
    local maxX = math.max(zone.min.x, zone.max.x)
    local minY = math.min(zone.min.y, zone.max.y)
    local maxY = math.max(zone.min.y, zone.max.y)
    local minZ = math.min(zone.min.z, zone.max.z)
    local maxZ = math.max(zone.min.z, zone.max.z)
    
    return pos.x >= minX and pos.x <= maxX and
           pos.y >= minY and pos.y <= maxY and
           pos.z >= minZ and pos.z <= maxZ
end

-- Проверка, находится ли игрок в разрешенной зоне
function PLUGIN:IsPlayerInAllowedZone(ply)
    local char = ply:GetCharacter()
    if not char then return false end
    
    local faction = char:GetFaction()
    local zones = self.config.zones[faction]
    
    if not zones then return false end
    
    local pos = ply:GetPos()
    for _, zone in ipairs(zones) do
        if self:IsInZone(pos, zone) then
            return true, zone.name
        end
    end
    
    return false
end

-- Локализация
if CLIENT then
    ix.lang.AddTable("russian", {
        nlrResetSuccess = "NLR игрока %s успешно сброшен",
        nlrNotActive = "У игрока %s нет активного NLR",
        cmdResetNLR = "Сбросить NLR игрока"
    })
    
    ix.lang.AddTable("english", {
        nlrResetSuccess = "NLR of %s has been reset",
        nlrNotActive = "Player %s has no active NLR",
        cmdResetNLR = "Reset player's NLR"
    })
end

ix.util.Include("sv_plugin.lua")
ix.util.Include("cl_plugin.lua")
