🌟現在、鉄壁 鉄壁ヘッドショットには対応済みです。
鉄壁HSは通常HSと同じダメージになります。LMG及びDMR、チャージライフル、ハンマーポイント弾を除き、すべてのダメージ値が一致していることを確認しています。

「モジュール:Utility/ImageWithName」の版間の差分

提供:Apex Data
ナビゲーションに移動 検索に移動
(リンクの設定条件が逆になっていた問題の修正)
(弾薬のリンク設定を「nil → デフォルト」、「値あり → そのまま」、「空 → なし」と分岐できるように変更)
37行目: 37行目:
local nu = require('Module:Utility/Name')
local nu = require('Module:Utility/Name')


local function getSimpleResource(key, id, opts, imagefunc, namefunc, rarityfunc)
local function getSimpleResource(key, id, opts, imagefunc, namefunc)
opts      = opts      or { lang = 'ja' }
opts      = opts      or { lang = 'ja' }
opts.lang = opts.lang or 'ja'
opts.lang = opts.lang or 'ja'
43行目: 43行目:
local classes = buildClasses(opts)
local classes = buildClasses(opts)
local name = namefunc(id, opts.lang)
local name = namefunc(id, opts.lang)
local cfg2 = cfg[opts.lang][key]
return string.format(
local rarity = opts.rarity or rarityfunc and rarityfunc(id)
cfg[opts.lang][key].format,
local params = {
imagefunc(id), -- 画像
imagefunc(id, { rarity = rarity }) -- 画像
classes,      -- 追加クラス
}
name)         -- 表示名
end
-- リンク
 
if cfg2.hasLink then
function p.tactical(id, opts)
table.insert(params, name)
return getSimpleResource('tactical', id, opts, iu.tactical, nu.tactical)
end
-- レアリティー
if cfg2.hasRarity then
table.insert(params, rarity)
end
-- クラス用ID
if cfg2.hasId then
table.insert(params, id)
end
-- 追加クラス
table.insert(params, classes)
-- 表示名
table.insert(params, name)
return string.format(cfg2.format, unpack(params))
end
end


106行目: 87行目:


function p.ammo(id, opts)
function p.ammo(id, opts)
return getSimpleResource('ammo', id, opts, iu.ammo, nu.ammo)
return getConditionalLinkResource('ammo', id, opts, iu.ammo, nu.ammo)
end
end


114行目: 95行目:
end
end
return getConditionalLinkResource('hopup', id, opts, iu.hopup, nu.hopup, rarityFunction)
return getConditionalLinkResource('hopup', id, opts, iu.hopup, nu.hopup, rarityFunction)
end
function p.tactical(id, opts)
return getSimpleResource('tactical', id, opts, iu.tactical, nu.tactical)
end
end



2021年8月27日 (金) 11:24時点における版

このモジュールについての説明文ページを モジュール:Utility/ImageWithName/doc に作成できます

local p = {}
local cfg   = mw.loadData('Module:Utility/ImageWithName/configuration')

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, rarityfunc)
	opts      = opts      or { lang = 'ja' }
	opts.lang = opts.lang or 'ja'
	
	local classes = buildClasses(opts)
	local name = namefunc(id, opts.lang)
	local cfg2 = cfg[opts.lang][key]
	local format, link = getLinkFormat(opts.link, name, cfg2)
	local rarity = opts.rarity or rarityfunc and rarityfunc(id)
	local params = {
		imagefunc(id, { link = link, rarity = rarity }) -- 画像
	}
	
	-- レアリティー
	if cfg2.hasRarity then
		table.insert(params, rarity)
	end
	
	-- クラス用ID
	if cfg2.hasId then
		table.insert(params, id)
	end
	
	-- 追加クラス
	table.insert(params, classes)
	
	-- 表示名
	table.insert(params, name)
	
	return string.format(format, unpack(params))
end

function p.ammo(id, opts)
	return getConditionalLinkResource('ammo', id, opts, iu.ammo, nu.ammo)
end

function p.hopup(id, opts)
	local rarityFunction = function(id)
		return mw.loadData('Module:Stat/Hopup')[id].rarity
	end
	return getConditionalLinkResource('hopup', id, opts, iu.hopup, nu.hopup, rarityFunction)
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