Módulo:Perk link

De RuneScape Wiki
Ir para: navegação, pesquisa
Documentação do módulo
Esta documentação é transcluída de Predefinição:Sem documentação/doc. [editar] [atualizar]
Este módulo não possui nenhuma documentação. Por favor, considere adicionar uma documentação em Módulo:Perk link/doc. [editar]
Módulo:Perk link's a função main é invocada por Predefinição:Benefício link.
Módulo:Perk link requer Módulo:Paramtest.
Módulo:Perk link requer Módulo:Yesno.
Módulo:Perk link carrega dados de Módulo:Benefícios/data.

local perks = mw.loadData('Módulo:Benefícios/data')
local yn = require('Módulo:Yesno')
local hc = require('Módulo:Paramtest').has_content

local allowed_ranks = {
	[1] = 1,
	[2] = 2,
	[3] = 3,
	[4] = 4,
	[5] = 5,
	[6] = 6,
	['1'] = 1,
	['2'] = 2,
	['3'] = 3,
	['4'] = 4,
	['5'] = 5,
	['6'] = 6
}


local p = {}

function p.main(frame)
	return p._main(frame:getParent().args)
end

function p._main(args)
	local perk = args[1]
	if not hc(perk) then
		return 'Por favor, especifique um benefício.'
	end
	
	perk = mw.text.trim(perk:lower():gsub(' %(benefício%)', ''))
	local perkinfo = perks[perk]
	if not perkinfo then
		return args[1]..' é um benefício inválido.'
	end
	local ret = mw.html.create('')
	local span = ret:tag('span')
	span:addClass('perk-link')
	if yn(args.bg) == false then
		span:addClass('perk-link-nobg')
	end
	
	local img = perkinfo.name
	if hc(args.pic) then
		img = args.pic
	end
	local page = perkinfo.name
	
	span:wikitext(string.format('[[Arquivo:%s.png|25x25px|link=%s]]', img, page))
	
	local rank = allowed_ranks[args.rank] or allowed_ranks[args[2]]
	if rank then
		span:tag('span')
				:addClass('perk-link-rank')
				:wikitext(string.format('[[Arquivo:Perk rank %s.png|25x25px|link=%s]]', rank, page))
	end
	
	if yn(args.link) ~= false then
		local txt
		if hc(args.txt) then
			txt = args.txt
		else
			local nicename = perkinfo.name:gsub(' %(benefício%)', '')
			if hc(args[2]) then
				txt = nicename .. ' ' .. args[2]
			else
				txt = nicename
			end
		end
		
		ret:wikitext(string.format('[[%s|%s]]', page, txt))
	end
	return tostring(ret)
end

return p