Модуль:Песочница/Pok: различия между версиями

мНет описания правки
мНет описания правки
Строка 1: Строка 1:
-- Загружаем данные из JSON
local weaponData = mw.loadData("Модуль:IanComradeBot/prototypes/weapon.json/data")
local weaponData = mw.loadData("Модуль:IanComradeBot/prototypes/weapon.json/data")


local p = {}
local p = {}


--- Функция main принимает два параметра:
function p.main(frame)
--- @param mode string  "melee" или "attackRate"
    local mode = frame.args[1]
--- @param id string    идентификатор оружия
     local id = frame.args[2]
function p.main(mode, id)
 
     -- Проверка на наличие id
     if not id then
     if id == nil then
         return "Ошибка: не задан параметр id."
         return "Ошибка: не задан параметр id."
     end
     end


     local entry = nil
     local entry = nil
    -- Поиск записи по заданному id (предполагается, что weaponData — массив записей)
     for _, weapon in ipairs(weaponData) do
     for _, weapon in ipairs(weaponData) do
         if weapon.id == id then
         if weapon.id == id then
Строка 44: Строка 41:


         if twoHandDamage then
         if twoHandDamage then
             -- Секция одноручного хвата
             -- Секция для одноручного хвата
             table.insert(lines, "В одноручном хвате:")
             table.insert(lines, "В одноручном хвате:")
             for dmgType, value in pairs(oneHandDamage) do
             for dmgType, value in pairs(oneHandDamage) do
Строка 50: Строка 47:
             end
             end


             -- Секция двуручного хвата
             -- Секция для двуручного хвата
             table.insert(lines, "В двуручном хвате:")
             table.insert(lines, "В двуручном хвате:")
             for dmgType, value in pairs(twoHandDamage) do
             for dmgType, value in pairs(twoHandDamage) do
                 -- Если тип присутствует в одноручном хвате, выводим так же
                 table.insert(lines, value .. " " .. dmgType)
                if oneHandDamage[dmgType] then
                    table.insert(lines, value .. " " .. dmgType)
                else
                    table.insert(lines, value .. " " .. dmgType)
                end
             end
             end
         else
         else
            -- Если нет данных для двуручного хвата, выводим только одноручные повреждения
             for dmgType, value in pairs(oneHandDamage) do
             for dmgType, value in pairs(oneHandDamage) do
                 table.insert(lines, value .. " " .. dmgType)
                 table.insert(lines, value .. " " .. dmgType)
Строка 75: Строка 66:
         end
         end


        -- Если attackRate отсутствует, возвращаем "1"
         if melee.attackRate then
         if melee.attackRate then
             return tostring(melee.attackRate)
             return tostring(melee.attackRate)