RuneScape Wiki
Advertisement

Documentation for this module may be created at Module:Sandbox/Cook/doc

-- <nowiki>

local p = {}

local _defaults = function(s,d) if not s or not s:find('%S') then return d else return s end end

local infobox_params = {
	'level',
	'LP',
	'attack',
	'magic',
	'ranged',
	'defence',
	'experience',
	'weakness'
}
function p.main(frame)
	local args = frame:getParent().args
	local all_args = {}
	all_args.universal = {}
	local ret = {}
	local max_i = 0
	local pagename = args['%PAGE%'] or ''
	for i=1,20 do
		if not args['version'..i] then
			break
		else
			all_args['item_s_'..i] = { version_name = args['version'..i] }
			max_i = i
		end
	end
	if max_i == 0 then
		return ''
	end
	all_args.max_value_i = max_i
	for _, v in ipairs(infobox_params) do
		all_args.universal['_'..v..'_'] = _defaults(args[v],'')
		for i=1,max_i do
			all_args['item_s_'..i]['_'..v..'_'] = args[v..'_'..i] or args[v..i]
		end
	end
	for i=1,all_args.max_value_i do
		local rowi = {}
		if i>1 then
			table.insert(rowi,'|-')
			table.insert(rowi,'| [['..pagename..']]')
			table.insert(rowi,'| ')
		end
		for _, v in ipairs(infobox_params) do
			local param_x = all_args['item_s_'..i]['_'..v..'_'] or all_args.universal['_'..v..'_']
			if param_x:find('%$%d+') then
				local p_n = param_x:match('%$(%d+)')
				param_x = all_args['item_s_'..p_n]['_'..v..'_'] or all_args.universal[v]
			end
			table.insert(rowi,'|'..param_x)
		end
		table.insert(rowi,'|')
		rowi = table.concat(rowi,'\n')
		table.insert(ret,rowi)
	end
	return table.concat(ret,'\n')
end

function p.main2(frame)
	local args = frame:getParent().args
	if not args.name then
		return ''
	end
	local ret = {' '}
	for _, v in ipairs(infobox_params) do
		table.insert(ret,'| ' .. _defaults(args[v],''))
	end
	return table.concat(ret,'\n')
end
return p
Advertisement