ITEM.name = "Украденный военный билет"
ITEM.description = "Военный билет, снятый с убитого противника. Содержит его данные."
ITEM.model = "models/props_c17/paper01.mdl"
ITEM.width = 1
ITEM.height = 1
ITEM.category = "Маскировка"
ITEM.noDrop = false

-- Функция предъявления документа
ITEM.functions.Show = {
    name = "Предъявить",
    tip = "Показать военный билет ближайшему игроку",
    icon = "icon16/eye.png",
    OnRun = function(item)
        local client = item.player
        
        if CLIENT then
            -- Создаем меню выбора игрока
            local menu = DermaMenu()
            
            for _, ply in ipairs(player.GetAll()) do
                if ply ~= client and ply:GetPos():Distance(client:GetPos()) <= 200 then
                    menu:AddOption(ply:Name(), function()
                        net.Start("ixDisguise_ShowStolenID")
                        net.WriteUInt(ply:UserID(), 16)
                        net.WriteUInt(item:GetID(), 32)
                        net.SendToServer()
                    end)
                end
            end
            
            if menu:ChildCount() == 0 then
                menu:AddOption("Нет игроков поблизости", function() end):SetDisabled(true)
            end
            
            menu:Open()
        end
        
        return false
    end,
    OnCanRun = function(item)
        return !IsValid(item.entity)
    end
}

-- Функция просмотра своего документа
ITEM.functions.View = {
    name = "Просмотреть",
    tip = "Посмотреть содержимое военного билета",
    icon = "icon16/page_white_text.png",
    OnRun = function(item)
        local client = item.player
        
        if SERVER then
            local data = {
                name = item:GetData("name", "Неизвестно"),
                faction = item:GetData("faction", "Неизвестно"),
                subdivision = item:GetData("subdivision", "Неизвестно"),
                specialization = item:GetData("specialization", "Неизвестно"),
                rank = item:GetData("rank", "Неизвестно")
            }
            
            net.Start("ixDisguise_ViewStolenID")
            net.WriteTable(data)
            net.Send(client)
        end
        
        return false
    end,
    OnCanRun = function(item)
        return !IsValid(item.entity)
    end
}

-- Кастомное отображение в инвентаре
if CLIENT then
    function ITEM:PaintOver(item, w, h)
        local victimName = self:GetData("name")
        if victimName then
            draw.SimpleText(victimName, "DermaDefault", w/2, h - 5, color_white, TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM)
        end
    end
end
