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

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

提供:Apex Data
ナビゲーションに移動 検索に移動
(レアリティー設定が伝播するように改善)
(装備品の関数が正しく呼び出せなくなっていた問題の修正)
 
(同じ利用者による、間の6版が非表示)
1行目: 1行目:
local p = {}
local p = {}
local cfg  = mw.loadData('Module:Utility/ImageWithName/configuration')
local cfg  = mw.loadData('Module:Utility/ImageWithName/configuration')
local aw = require('Module:Utility/Library')


local function buildClasses(opts)
local function buildClasses(opts)
18行目: 20行目:
end
end
return classes
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
end


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


function p.ammo(id, opts)
function p.ammo(id, opts)
return getSimpleResource('ammo', id, opts, iu.ammo, nu.ammo)
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
end


function p.hopup(id, opts)
function p.hopup(id, opts)
local rarityFunction = function(id)
local rarity = opts and opts.rarity or mw.loadData('Module:Stat/Hopup')[id].rarity
return mw.loadData('Module:Stat/Hopup')[id].rarity
local imageFunction = function(id, opts)
opts.rarity = rarity
return iu.hopup(id, opts)
end
end
return getSimpleResource('hopup', id, opts, iu.hopup, nu.hopup, rarityFunction)
local idclassFunction = function()
return rarity
end
return getConditionalLinkResource('hopup', id, opts, iu.hopup, nu.hopup, idclassFunction)
end
end


function p.tactical(id, opts)
local function getLevelResource(level, opts, imagefunc, namefunc)
return getSimpleResource('tactical', id, opts, iu.tactical, nu.tactical)
end
 
local function getLevelResource(level, opts, namefunc)
level    = level    or 0
level    = level    or 0
opts      = opts      or { lang = 'ja' }
opts      = opts      or { lang = 'ja' }
90行目: 115行目:
return string.format(
return string.format(
cfg[opts.lang].level.none_format,
cfg[opts.lang].level.none_format,
iu.attachment(namefunc('ja'), level),
imagefunc(level),
namefunc(opts.lang))
namefunc(opts.lang))
end
end
96行目: 121行目:
return string.format(
return string.format(
cfg[opts.lang].level.format[1 + level],
cfg[opts.lang].level.format[1 + level],
iu.attachment(namefunc('ja'), level),
imagefunc(level),
classes,
classes,
namefunc(opts.lang))
namefunc(opts.lang))
end
function p.gear(id, level, opts)
local imgfn = function(level)
return iu.gear(id, level)
end
local namefn = function(lang)
return nu.gear(id, lang)
end
return getLevelResource(level, opts, imgfn, namefn)
end
end


function p.extmag(id, level, opts)
function p.extmag(id, level, opts)
return getLevelResource(level, opts, function(lang)
local imgfn = function(level)
return iu.attachment(nu.extmag(id, 'ja'), level)
end
local namefn = function(lang)
return nu.extmag(id, lang)
return nu.extmag(id, lang)
end)
end
return getLevelResource(level, opts, imgfn, namefn)
end
end


function __bolt_imagefunc(level)
return iu.attachment(nu.bolt('ja'), level)
end
function p.bolt(level, opts)
function p.bolt(level, opts)
return getLevelResource(level, opts, function(lang)
return getLevelResource(level, opts, __bolt_imagefunc, nu.bolt)
return nu.bolt(lang)
end)
end
end


return p
return p

2021年8月31日 (火) 09:45時点における最新版

このモジュールについての説明文ページを モジュール: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(level),
			namefunc(opts.lang))
	end
	
	return string.format(
		cfg[opts.lang].level.format[1 + level],
		imagefunc(level),
		classes,
		namefunc(opts.lang))
end

function p.gear(id, level, opts)
	local imgfn = function(level)
		return iu.gear(id, level)
	end
	local namefn = function(lang)
		return nu.gear(id, lang)
	end
	return getLevelResource(level, opts, imgfn, namefn)
end

function p.extmag(id, level, opts)
	local imgfn = function(level)
		return iu.attachment(nu.extmag(id, 'ja'), level)
	end
	local namefn = function(lang)
		return nu.extmag(id, lang)
	end
	return getLevelResource(level, opts, imgfn, namefn)
end

function __bolt_imagefunc(level)
	return iu.attachment(nu.bolt('ja'), level)
end
function p.bolt(level, opts)
	return getLevelResource(level, opts, __bolt_imagefunc, nu.bolt)
end

return p