Module:Ability/new/2: Difference between revisions

From Inkipedia, the Splatoon wiki
(Testing two separate frame object calls: from an invoking template and from another module, instead of just the former.)
 
(moved default size (24) to frame objects (requireFromModule and invokeFromTemplate) and removed full name check (must be passed as abbreviation))
 
(3 intermediate revisions by the same user not shown)
Line 7: Line 7:


function p.requireFromModule(frame)
function p.requireFromModule(frame)
return p.chipIcon(
return p.getAbilityIcon(
frame.args.game,
string.upper(frame.game),
frame.args.name,
frame.name,
frame.args.size,
frame.size or 24,
frame.args.icononly
frame.icononly
)
)
end
end


function p.invokeFromTemplate(frame)
function p.invokeFromTemplate(frame)
local args = frame:getParent().args
return p.getAbilityIcon(
local game = args.game
string.upper(frame:getParent().args.game),
local name = args.name
frame:getParent().args.name,
local size = args.size
frame:getParent().args.size or 24,
local icononly = args.icononly
frame:getParent().args.icononly
return p.getAbilityIcon(game, name, size, icononly)
)
end
end


Line 30: Line 30:
local displayText = name
local displayText = name
local abilityFileName = name
local abilityFileName = name
game = gameShortened.getGame(game)
if size == nil then size = 24 end


if name == "?" then
if name == "?" then

Latest revision as of 13:04, 15 March 2024

Documentation for this module may be created at Module:Ability/new/2/doc

local p = {}
local gameShortened	=	require("Module:GameShortened")

local disambigName	=	{
	["Recon"]	=	true,
}

function p.requireFromModule(frame)
	return p.getAbilityIcon(
		string.upper(frame.game),
		frame.name,
		frame.size or 24,
		frame.icononly
	)
end

function p.invokeFromTemplate(frame)
	return p.getAbilityIcon(
		string.upper(frame:getParent().args.game),
		frame:getParent().args.name,
		frame:getParent().args.size or 24,
		frame:getParent().args.icononly
	)
end

function p.getAbilityIcon(game, name, size, icononly)
	local result
	local abilityIcon
	local linkText			= name
	local displayText		= name
	local abilityFileName 	= name

	if name == "?" then
		linkText		= "Gear ability"
		displayText		= "None"	--Exaskliri wants to display link text by default, even for "?"
		abilityFileName	= "Locked"
	end
	if disambigName[name] then
		linkText = linkText .. " (ability)"
	end
	abilityIcon = string.format("[[File:%s_Ability_%s.png|%dpx|link=%s]]", game, abilityFileName, size, linkText)
	
	local iconSpan = mw.html.create("span")
	local padSize = size * 0.05
	iconSpan
		:css("display", "inline-block")
		:css("vertical-align", "middle")
		:css("width", size.."px")
		:css("height", size.."px")
		:css("background", "black")
		:css("border-radius", "50%")
		:css("padding", padSize.."px")
		:wikitext(abilityIcon)
	abilityIcon = tostring(iconSpan)
	
	result = abilityIcon
	if not icononly then
		result = abilityIcon .. " [[" ..linkText.. "|" ..displayText.. "]]"
	end

	return result
end

return p