Module:Ability/new/2: Difference between revisions

From Inkipedia, the Splatoon wiki
m (removed args field if called from another module via Require:Module)
(moved default size (24) to frame objects (requireFromModule and invokeFromTemplate) and removed full name check (must be passed as abbreviation))
 
(2 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.game,
string.upper(frame.game),
frame.name,
frame.name,
frame.size,
frame.size or 24,
frame.icononly
frame.icononly
)
)
Line 16: Line 16:


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