🌟 | 現在、 鉄壁ヘッドショットには対応済みです。 鉄壁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') :addClass('tpl-navbox-list') 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('table') :addClass('tpl-navbox-table') :addClass('tpl-navbox-table-containstitle') tbl:tag('tr') :tag('th') :attr('colspan', 2) :addClass('tpl-navbox-table-title') :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