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

мНет описания правки
мНет описания правки
Строка 2: Строка 2:
local jobData          = mw.loadData("Модуль:IanComradeBot/job.json/data")
local jobData          = mw.loadData("Модуль:IanComradeBot/job.json/data")
local gearData          = mw.loadData("Модуль:IanComradeBot/startingGear.json/data")
local gearData          = mw.loadData("Модуль:IanComradeBot/startingGear.json/data")
local gearRoleLoadout  = mw.loadData("Модуль:IanComradeBot/roleLoadout.json/data")
local gearloadout      = mw.loadData("Модуль:IanComradeBot/loadout.json/data")
local gearloadout      = mw.loadData("Модуль:IanComradeBot/loadout.json/data")
local gearloadoutGroup  = mw.loadData("Модуль:IanComradeBot/loadoutGroup.json/data")
local gearloadoutGroup  = mw.loadData("Модуль:IanComradeBot/loadoutGroup.json/data")
Строка 81: Строка 82:
     local sourceGear = gear  
     local sourceGear = gear  


     -- 2. Если для данного слота в gearData ничего не найдено – ищем через loadoutGroup / loadout
     -- 2. Если для данного слота в gearData ничего не найдено – ищем через roleLoadout.json
     if itemId == "" then
     if itemId == "" then
         -- Функция для преобразования первой буквы строки в заглавную
         local roleLoadoutId = "Job" .. jobId  -- например, JobQuartermaster
         local function capitalize(s)
         local roleLoadoutData = findById(gearRoleLoadout, roleLoadoutId)
             return (s:gsub("^%l", string.upper))
        if roleLoadoutData then
        end
             for _, groupId in ipairs(roleLoadoutData.groups or {}) do
 
                if groupId ~= "Trinkets" then  -- исключаем Trinkets
        -- Здесь используем jobId в качестве "role"
                    local groupFound = nil
        local groupID = jobId .. capitalize(slot)
                    for _, group in ipairs(gearloadoutGroup) do
   
                        if group.id == groupId then
        -- Ищем нужную группу в gearloadoutGroup
                            groupFound = group
        local groupFound = nil
                            break
        for _, group in ipairs(gearloadoutGroup) do
                        end
            if group.id == groupID then
                    end
                groupFound = group
                    if groupFound then
                break
                        for _, loadoutID in ipairs(groupFound.loadouts or {}) do
            end
                            for _, loadout in ipairs(gearloadout) do
        end
                                if loadout.id == loadoutID then
 
                                    if loadout.equipment and loadout.equipment[slot] then
        if not groupFound then
                                        itemId = loadout.equipment[slot]
            return ""
                                        sourceGear = loadout
        end
                                        break
 
                                    end
        -- Перебираем варианты loadouts из найденной группы
                                end
        for _, loadoutID in ipairs(groupFound.loadouts) do
                            end
            for _, loadout in ipairs(gearloadout) do
                            if itemId ~= "" then break end
                if loadout.id == loadoutID then
                         end
                    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
            if itemId ~= "" then break end
         end
         end
     end
     end