Модуль:FirearmsStats: различия между версиями
Материал из Space Station 14 Вики
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 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 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 | ||
local radiation = tonumber(frame.args.radiation) 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 structural = tonumber(frame.args.structural) or 0 | ||
| Строка 23: | Строка 25: | ||
-- Расчет DPS и data-sort-value (без учета structural и stamina) | -- Расчет DPS и data-sort-value (без учета structural и stamina) | ||
local dps = fireRate * (blunt + piercing + heat + radiation) | local dps = fireRate * (blunt + piercing + heat + radiation) | ||
local dataSort = blunt + piercing + heat + radiation | local dataSort = blunt + slash + piercing + heat + radiation + caustic | ||
-- Формирование строки таблицы | -- Формирование строки таблицы | ||
| Строка 32: | Строка 34: | ||
out = out .. '<br>' .. frame:preprocess('{{#invoke:Entity Lookup|getname|' .. itemId .. '}}') .. '\n' | out = out .. '<br>' .. frame:preprocess('{{#invoke:Entity Lookup|getname|' .. itemId .. '}}') .. '\n' | ||
-- Урон ( | -- Урон (выводятся только непустые значения) | ||
out = out .. '|data-sort-value=' .. dataSort .. '|\n' | out = out .. '|data-sort-value=' .. dataSort .. '|\n' | ||
| Строка 43: | Строка 45: | ||
if blunt > 0 then | if blunt > 0 then | ||
out = out .. ': <span style="color:crimson"><b>' .. blunt .. '</b></span> Ушибы\n' | 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 | end | ||
if piercing > 0 then | if piercing > 0 then | ||
| Строка 52: | Строка 57: | ||
if radiation > 0 then | if radiation > 0 then | ||
out = out .. ': <span style="color:limegreen"><b>' .. radiation .. '</b></span> Радиация\n' | 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 | end | ||
if structural > 0 then | if structural > 0 then | ||
| Строка 59: | Строка 67: | ||
-- Параметры | -- Параметры | ||
out = out .. '|style="color:DodgerBlue"|<b>' .. fireRate .. '</b>\n' | out = out .. '|style="color:DodgerBlue"|<b>' .. fireRate .. '</b>\n' | ||
out = out .. '|style="color:Yellow"|<b>' .. dps .. '</b>\n' | out = out .. '|style="color:Yellow"|<b>' .. dps .. '</b>\n' | ||
out = out .. '|style="color:Aquamarine"|<b>' .. ammunition .. '</b>\n' | out = out .. '|style="color:Aquamarine"|<b>' .. ammunition .. '</b>\n' | ||
out = out .. '|style="color:#77c1d9"|<b>' .. caliber .. '</b>\n' | out = out .. '|style="color:#77c1d9"|<b>' .. caliber .. '</b>\n' | ||
Версия от 22:50, 20 сентября 2024
{{#invoke:FirearmsStats|templateCells
| anchorName = НазванияПредмета
| itemId = АйдиПредмета
| stamina = Выносливость
| blunt = Ушибы
| slash = Режущие
| piercing = Уколы
| heat = Термические
| сaustic = Кислотные
| radiation = Радиация
| structural = Структурные
<!-- Ручной ввод в ячейки, если у оружия особый тип урона -->
| damage = Урон
| dataSort = Значения data-sort-value
| dps = Значения DPS
| fireRate = Скорострельность
| ammunition = Обойма
| caliber = Калибр
| 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 0
local ammunition = frame.args.ammunition or "-"
local caliber = frame.args.caliber or "-"
local description = frame.args.description or "Описание отсутствует"
local location = frame.args.location or ""
-- Расчет DPS и data-sort-value (без учета structural и stamina)
local dps = fireRate * (blunt + piercing + heat + radiation)
local dataSort = blunt + slash + piercing + heat + radiation + caustic
-- Формирование строки таблицы
local out = ""
-- Название
out = out .. '!' .. frame:preprocess('{{Anchor|' .. anchorName .. '}}{{#invoke:Entity Lookup|createimagetooltip|File:' .. itemId .. '|' .. 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 .. '|style="color:Aquamarine"|<b>' .. ammunition .. '</b>\n'
out = out .. '|style="color:#77c1d9"|<b>' .. caliber .. '</b>\n'
-- Описание
out = out .. '|\n' .. description .. '\n'
-- Местоположение
if location ~= "" then
out = out .. '|\n' .. frame:preprocess('{{SlideMenu|overlay|color=#e1f6ff|title=Список [[File:Examine.svg.192dpi.png|24x24px]]|content=<p></p>\n' .. location .. '}}\n')
else
out = out .. '|\n' .. frame:preprocess('{{FrameText|color=#82d1c4|content=Нет гарантированных мест спавна}}\n')
end
out = out .. '|-\n'
return out
end
return p