Модуль:Местонахождение: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 187: | Строка 187: | ||
end | end | ||
local | local resultsMap = {} | ||
-- Обработка startingGear (gearData) | -- Обработка startingGear (gearData) | ||
| Строка 195: | Строка 195: | ||
for slot, equipId in pairs(gear.equipment) do | for slot, equipId in pairs(gear.equipment) do | ||
if equipId == targetId and (not slotFilter or slot == slotFilter) then | if equipId == targetId and (not slotFilter or slot == slotFilter) then | ||
for jobId, job in pairs(jobData) do | for jobId, job in pairs(jobData) do | ||
if job.startingGear == currentGearId then | if job.startingGear == currentGearId then | ||
resultsMap[jobId] = true | |||
break | break | ||
end | end | ||
end | end | ||
end | end | ||
| Строка 210: | Строка 206: | ||
end | end | ||
-- | -- для loadout + loadoutGroup + roleLoadout | ||
for _, loadout in pairs(loadoutData) do | for _, loadout in pairs(loadoutData) do | ||
if loadout.equipment then | if loadout.equipment then | ||
for slot, equipId in pairs(loadout.equipment) do | for slot, equipId in pairs(loadout.equipment) do | ||
if equipId == targetId and (not slotFilter or slot == slotFilter) then | if equipId == targetId and (not slotFilter or slot == slotFilter) then | ||
-- для каждого loadout ищем все группы, где он упоминается | |||
for _, group in pairs(loadoutGroupData) do | for _, group in pairs(loadoutGroupData) do | ||
if group.loadouts and type(group.loadouts) == "table" then | if group.loadouts and type(group.loadouts) == "table" then | ||
for _, lId in ipairs(group.loadouts) do | for _, lId in ipairs(group.loadouts) do | ||
if lId == loadout.id then | if lId == loadout.id then | ||
-- для каждой найденной группы ищем все роли | |||
for _, role in pairs(gearRoleLoadout) do | |||
if role.groups and type(role.groups) == "table" then | |||
for _, g in ipairs(role.groups) do | |||
if g == group.id then | |||
resultsMap[role.id] = true | |||
end | |||
end | |||
end | |||
end | end | ||
end | end | ||
end | end | ||
end | end | ||
end | end | ||
end | end | ||
end | end | ||
end | end | ||
end | |||
-- Собираем результаты, убираем дубликаты | |||
local results = {} | |||
for jobId in pairs(resultsMap) do | |||
table.insert(results, createJobLink(jobId)) | |||
end | end | ||