Модуль:Prototypes/Роль/Экипировка: различия между версиями

Нет описания правки
мНет описания правки
Строка 17: Строка 17:
end
end


-- Функция для преобразования первого символа строки в заглавный
-- Функция для преобразования первой буквы строки в заглавную
local function capitalizeFirst(str)
local function capitalizeFirst(str)
     if not str or str == "" then return "" end
     if not str or str == "" then return "" end
Строка 58: Строка 58:
     local itemId = gearEquipment[slot] or ""
     local itemId = gearEquipment[slot] or ""
     local sourceGear = gear  
     local sourceGear = gear  
    -- 2. Если для данного слота в gearData ничего не найдено – ищем через loadoutGroup / loadout
    if itemId == "" then
        -- Используем вашу логику для поиска
        local function capitalize(s)
            return (s:gsub("^%l", string.upper))
        end
        -- Здесь используем jobId в качестве "role"
        local groupID = jobId .. capitalize(slot)
      
      
    -- 2. Если для данного слота в gearData ничего не найдено – ищем в loadoutGroup / loadout
        -- Ищем нужную группу в gearloadoutGroup
    if itemId == "" then
        local groupFound = nil
        local combinedId = jobId .. capitalizeFirst(slot)
        for _, group in ipairs(gearloadoutGroup) do
         local groupEntry = findById(gearloadoutGroup, combinedId)
            if group.id == groupID then
         if groupEntry and groupEntry.loadouts and #groupEntry.loadouts > 0 then
                groupFound = group
            local firstLoadoutId = groupEntry.loadouts[1]
                break
             local loadoutEntry = findById(gearloadout, firstLoadoutId)
            end
            if loadoutEntry and loadoutEntry.equipment then
         end
                itemId = loadoutEntry.equipment[slot] or ""
 
                sourceGear = loadoutEntry
         if not groupFound then
            return "Группа не найдена: " .. groupID
        end
 
        -- Перебираем варианты loadouts из найденной группы
        for _, loadoutID in ipairs(groupFound.loadouts) do
             for _, loadout in ipairs(gearloadout) do
                if loadout.id == loadoutID then
                    if loadout.equipment and loadout.equipment[slot] then
                        itemId = loadout.equipment[slot]
                        sourceGear = loadout
                        break
                    end
                end
             end
             end
            if itemId ~= "" then break end
         end
         end
     end
     end