| 🌟 | 現在、 鉄壁HSは通常HSと同じダメージになります。LMG及びDMR、チャージライフル、ハンマーポイント弾を除き、すべてのダメージ値が一致していることを確認しています。 |
モジュール:WeaponNavbox
ナビゲーションに移動
検索に移動
このモジュールについての説明文ページを モジュール:WeaponNavbox/doc に作成できます
local p = {}
local formatter -- lazily initialized
local function stringStarts(str, start)
return string.sub(str, 1, string.len(start)) == start
end
local AmmoDict = {
light = "ライト",
heavy = "ヘビー",
energy = "エネルギー",
sniper = "スナイパー",
shotgun = "ショットガン",
}
local function createRow(tbl, name, weaponsByAmmo)
local item
if name == 'special' then
item = formatter:ammo('専用スナイパー', 20) .. ' ケアパッケージ'
else
local ammo = AmmoDict[name]
local page = '弾による武器一覧#' .. ammo .. 'アモ'
item = formatter:ammo(ammo, 20, page) .. ' [[' .. page .. '|' .. ammo .. 'アモ]]'
end
local list = tbl:tag('tr')
:tag('th')
:wikitext(item)
:done()
:tag('td')
:tag('ul')
for _, value in ipairs(weaponsByAmmo) do
list:tag('li')
:wikitext(string.format('[[%s]]', value))
end
end
local function renderNavbox()
local stat = mw.loadData('Module:Stat/Weapon')
local weaponsByAmmos = {
light = {},
heavy = {},
energy = {},
sniper = {},
shotgun = {},
special = {},
}
for key, value in pairs(stat) do
if stringStarts(value.ammo, "special_") then
table.insert(weaponsByAmmos.special, key)
else
table.insert(weaponsByAmmos[value.ammo], key)
end
end
local tbl = mw.html.create('div')
:addClass('tpl-navbox')
:tag('table')
tbl:tag('tr')
:tag('th')
:attr('colspan', 2)
:wikitext('武器')
for _, name in ipairs({ 'light', 'heavy', 'energy', 'sniper', 'shotgun', 'special' }) do
createRow(tbl, name, weaponsByAmmos[name])
end
return tbl:done()
end
function p._main(frame)
formatter = require('Module:Utility/Formatter').new(frame)
return tostring(renderNavbox())
end
function p.main(frame)
return p._main(frame)
end
return p