| 🌟 | 現在、 鉄壁HSは通常HSと同じダメージになります。LMG及びDMR、チャージライフル、ハンマーポイント弾を除き、すべてのダメージ値が一致していることを確認しています。 |
「モジュール:Utility/ImageWithName」の版間の差分
ナビゲーションに移動
検索に移動
(物資投下武器用の弾薬idリソースでも正しくクラス名を付与できるように改善) |
(アイコンサイズを変更できるように改善) |
||
| 59行目: | 59行目: | ||
opts = opts or { lang = 'ja' } | opts = opts or { lang = 'ja' } | ||
opts.lang = opts.lang or 'ja' | opts.lang = opts.lang or 'ja' | ||
opts.size = opts.size or 16 | |||
local classes = buildClasses(opts) | local classes = buildClasses(opts) | ||
| 65行目: | 66行目: | ||
return string.format( | return string.format( | ||
format, | format, | ||
imagefunc(id, { lang = opts.lang, link = link }), | imagefunc(id, { -- 画像 | ||
idclassfunc(id), | lang = opts.lang, | ||
classes, | link = link, | ||
name) | size = opts.size, | ||
}), | |||
idclassfunc(id), -- クラス用ID | |||
classes, -- 追加クラス | |||
name) -- 表示名 | |||
end | end | ||
2021年8月27日 (金) 11:55時点における版
このモジュールについての説明文ページを モジュール:Utility/ImageWithName/doc に作成できます
local p = {}
local cfg = mw.loadData('Module:Utility/ImageWithName/configuration')
local aw = require('Module:Utility/Library')
local function buildClasses(opts)
local classes
if type(opts.classes) == 'string' then
if opts.desktopOnly then
classes = ' ' .. opts.classes .. ' text-desktoponly'
else
classes = ' ' .. opts.classes
end
else
if opts.desktopOnly then
classes = ' text-desktoponly'
else
classes = ''
end
end
return classes
end
local function getLinkFormat(link, name, cfg)
local linkString
if link then
if link ~= '' then
linkString = name
else
return string.format('%%s %s', cfg.format), link
end
else
linkString = string.format(cfg.defaultLink, name)
end
return string.format('%%s [[%s|%s]]', linkString, cfg.format), linkString
end
local iu = require('Module:Utility/Image')
local nu = require('Module:Utility/Name')
local function getSimpleResource(key, id, opts, imagefunc, namefunc)
opts = opts or { lang = 'ja' }
opts.lang = opts.lang or 'ja'
local classes = buildClasses(opts)
local name = namefunc(id, opts.lang)
return string.format(
cfg[opts.lang][key].format,
imagefunc(id), -- 画像
classes, -- 追加クラス
name) -- 表示名
end
function p.tactical(id, opts)
return getSimpleResource('tactical', id, opts, iu.tactical, nu.tactical)
end
local function getConditionalLinkResource(key, id, opts, imagefunc, namefunc, idclassfunc)
opts = opts or { lang = 'ja' }
opts.lang = opts.lang or 'ja'
opts.size = opts.size or 16
local classes = buildClasses(opts)
local name = namefunc(id, opts.lang)
local format, link = getLinkFormat(opts.link, name, cfg[opts.lang][key])
return string.format(
format,
imagefunc(id, { -- 画像
lang = opts.lang,
link = link,
size = opts.size,
}),
idclassfunc(id), -- クラス用ID
classes, -- 追加クラス
name) -- 表示名
end
function p.ammo(id, opts)
local idclassFunction = function(id)
if aw.stringstarts(id, 'special_') then
return 'special'
else
return id
end
end
return getConditionalLinkResource('ammo', id, opts, iu.ammo, nu.ammo, idclassFunction)
end
function p.hopup(id, opts)
local rarity = opts and opts.rarity or mw.loadData('Module:Stat/Hopup')[id].rarity
local imageFunction = function(id, opts)
opts.rarity = rarity
return iu.hopup(id, opts)
end
local idclassFunction = function()
return rarity
end
return getConditionalLinkResource('hopup', id, opts, iu.hopup, nu.hopup, idclassFunction)
end
local function getLevelResource(level, opts, imagefunc, namefunc)
level = level or 0
opts = opts or { lang = 'ja' }
opts.lang = opts.lang or 'ja'
if level == 0 and opts.useShortLabel then
return cfg[lang].level.none
end
if level > 5 then
level = 5
end
local classes = buildClasses(opts)
if level == 0 and classes == '' then
return string.format(
cfg[opts.lang].level.none_format,
imagefunc(namefunc('ja'), level),
namefunc(opts.lang))
end
return string.format(
cfg[opts.lang].level.format[1 + level],
imagefunc(namefunc('ja'), level),
classes,
namefunc(opts.lang))
end
function p.gear(id, level, opts)
return getLevelResource(level, opts, iu.gear, function(lang)
return nu.gear(id, lang)
end)
end
function p.extmag(id, level, opts)
return getLevelResource(level, opts, iu.attachment, function(lang)
return nu.extmag(id, lang)
end)
end
function p.bolt(level, opts)
return getLevelResource(level, opts, iu.attachment, nu.bolt)
end
return p