Модуль:MeleeWeaponStats: различия между версиями
Материал из Space Station 14 Вики
Pok (обсуждение | вклад) (Новая страница: «local p = {} -- Функция для создания таблицы с заданными параметрами function p.templateCells(frame) local anchorName = frame.args.anchorName or "" -- Название якоря local itemId = frame.args.itemId or "" -- ID предмета local damage = frame.args.damage or "" -- Ввод в ячейк урона local stamina = tonumber(frame.args.stamina) or 0 -- Выносливость local blunt...») |
Pok (обсуждение | вклад) мНет описания правки |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 9: | Строка 9: | ||
local stamina = tonumber(frame.args.stamina) or 0 -- Выносливость | local stamina = tonumber(frame.args.stamina) or 0 -- Выносливость | ||
local blunt = tonumber(frame.args.blunt) or 0 -- Ушибы | local blunt = tonumber(frame.args.blunt) or 0 -- Ушибы | ||
local slash = tonumber(frame.args.slash) or 0 -- | local slash = tonumber(frame.args.slash) or 0 -- Порезы | ||
local piercing = tonumber(frame.args.piercing) or 0 -- Уколы | local piercing = tonumber(frame.args.piercing) or 0 -- Уколы | ||
local heat = tonumber(frame.args.heat) or 0 -- Термические | local heat = tonumber(frame.args.heat) or 0 -- Термические | ||
Строка 20: | Строка 20: | ||
local description = frame.args.description or "Описание отсутствует" -- Описание | local description = frame.args.description or "Описание отсутствует" -- Описание | ||
local location = frame.args.location or "" -- Местонахождения | local location = frame.args.location or "" -- Местонахождения | ||
local created = frame.args.created or "" -- Создаётя | |||
-- Если dps и dataSort заданы вручную, используем их, иначе рассчитываем по формуле | -- Если dps и dataSort заданы вручную, используем их, иначе рассчитываем по формуле | ||
local dps = frame.args.dps or fireRate * (blunt + piercing + heat + radiation) -- Значения DPS | local dps = frame.args.dps or fireRate * (blunt + slash + piercing + heat + radiation + caustic) -- Значения DPS | ||
local dataSort = tonumber(frame.args.dataSort) or (blunt + slash + piercing + heat + radiation + caustic) -- Значения data-sort-value | local dataSort = tonumber(frame.args.dataSort) or (blunt + slash + piercing + heat + radiation + caustic) -- Значения data-sort-value | ||
Строка 45: | Строка 46: | ||
end | end | ||
if slash > 0 then | if slash > 0 then | ||
out = out .. ': <span style="color:indianred"><b>' .. slash .. '</b></span> | out = out .. ': <span style="color:indianred"><b>' .. slash .. '</b></span> Порезы\n' | ||
end | end | ||
if piercing > 0 then | if piercing > 0 then | ||
Строка 71: | Строка 72: | ||
-- Местоположение | -- Местоположение | ||
out = out .. '|\n' | |||
if location ~= "" then | if location ~= "" then | ||
out = out | out = out .. frame:preprocess('{{SlideMenu|overlay|color=#e1f6ff|title=Список [[File:Examine.svg.192dpi.png|24x24px]]|content=<p></p>\n' .. location .. '}}\n') | ||
end | |||
out = out .. '|\n' .. frame:preprocess('{{FrameText|color=#82d1c4|content=Нет гарантированных мест спавна}}\n') | |||
-- Создаётся | |||
if created ~= "" then | |||
out = out .. frame:preprocess('{{SlideMenu|overlay|color=#e1f6ff|border-color=#4c4c61|title=Создаётся [[File:hammer.svg.192dpi.png|24x24px]]|content=Создаётся в панели строительства<hr>\n' .. created .. '}}\n') | |||
elseif location == "" then | |||
out = out .. frame:preprocess('{{FrameText|color=#82d1c4|content=Нет гарантированных мест спавна}}\n') | |||
end | end | ||
Текущая версия от 21:01, 23 сентября 2024
{{#invoke:MeleeWeaponStats|templateCells | anchorName = НазванияПредмета | itemId = АйдиПредмета | stamina = Выносливость | blunt = Ушибы | slash = Порезы | piercing = Уколы | heat = Термические | сaustic = Кислотные | radiation = Радиация | structural = Структурные | fireRate = Скорострельность <!-- Ручной ввод в ячейки, если у оружия особый тип урона --> | damage = Урон | dataSort = Значения data-sort-value | dps = Значения DPS | description = Описание | location = Местонахождение | created = Создаётся (Используйте, если предмет крафтится) }}
local p = {} -- Функция для создания таблицы с заданными параметрами function p.templateCells(frame) local anchorName = frame.args.anchorName or "" -- Название якоря local itemId = frame.args.itemId or "" -- ID предмета local damage = frame.args.damage or "" -- Ввод в ячейк урона local stamina = tonumber(frame.args.stamina) or 0 -- Выносливость local blunt = tonumber(frame.args.blunt) or 0 -- Ушибы local slash = tonumber(frame.args.slash) or 0 -- Порезы local piercing = tonumber(frame.args.piercing) or 0 -- Уколы local heat = tonumber(frame.args.heat) or 0 -- Термические local radiation = tonumber(frame.args.radiation) or 0 -- Кислотные local caustic = tonumber(frame.args.caustic) or 0 -- Радиация local structural = tonumber(frame.args.structural) or 0 -- Структурные local fireRate = tonumber(frame.args.fireRate) or 1 -- Скорострельность fireRate = string.format("%.1f", fireRate) -- Всегда форматируем с одним знаком после запятой local description = frame.args.description or "Описание отсутствует" -- Описание local location = frame.args.location or "" -- Местонахождения local created = frame.args.created or "" -- Создаётя -- Если dps и dataSort заданы вручную, используем их, иначе рассчитываем по формуле local dps = frame.args.dps or fireRate * (blunt + slash + piercing + heat + radiation + caustic) -- Значения DPS local dataSort = tonumber(frame.args.dataSort) or (blunt + slash + piercing + heat + radiation + caustic) -- Значения data-sort-value -- Формирование строки таблицы local out = "" -- Название out = out .. '!' .. frame:preprocess('{{Anchor|' .. anchorName .. '}}{{#invoke:Entity Lookup|createimagetooltip|File:' .. itemId ..'.png|' .. itemId .. '|Мета=64x64px}}') out = out .. '<br>' .. frame:preprocess('{{#invoke:Entity Lookup|getname|' .. itemId .. '}}') .. '\n' -- Урон (выводятся только непустые значения) out = out .. '|data-sort-value=' .. dataSort .. '|\n' if damage ~= "" then out = out .. damage .. '\n' end if stamina > 0 then out = out .. ': <span style="color:DodgerBlue"><b>' .. stamina .. '</b></span> Выносливость\n' end if blunt > 0 then out = out .. ': <span style="color:crimson"><b>' .. blunt .. '</b></span> Ушибы\n' end if slash > 0 then out = out .. ': <span style="color:indianred"><b>' .. slash .. '</b></span> Порезы\n' end if piercing > 0 then out = out .. ': <span style="color:darksalmon"><b>' .. piercing .. '</b></span> Уколы\n' end if heat > 0 then out = out .. ': <span style="color:orange"><b>' .. heat .. '</b></span> Термические\n' end if radiation > 0 then out = out .. ': <span style="color:limegreen"><b>' .. radiation .. '</b></span> Радиация\n' end if caustic > 0 then out = out .. ': <span style="color:plum"><b>' .. caustic .. '</b></span> Кислотные\n' end if structural > 0 then out = out .. ': <span style="color:DarkGray"><b>' .. structural .. '</b></span> Структурные\n' end -- Параметры out = out .. '|style="color:DodgerBlue"|<b>' .. fireRate .. '</b>\n' out = out .. '|style="color:Yellow"|<b>' .. dps .. '</b>\n' -- Описание out = out .. '|\n' .. description .. '\n' -- Местоположение out = out .. '|\n' if location ~= "" then out = out .. frame:preprocess('{{SlideMenu|overlay|color=#e1f6ff|title=Список [[File:Examine.svg.192dpi.png|24x24px]]|content=<p></p>\n' .. location .. '}}\n') end -- Создаётся if created ~= "" then out = out .. frame:preprocess('{{SlideMenu|overlay|color=#e1f6ff|border-color=#4c4c61|title=Создаётся [[File:hammer.svg.192dpi.png|24x24px]]|content=Создаётся в панели строительства<hr>\n' .. created .. '}}\n') elseif location == "" then out = out .. frame:preprocess('{{FrameText|color=#82d1c4|content=Нет гарантированных мест спавна}}\n') end out = out .. '|-\n' return out end return p