RuneScape Wiki
Advertisement

Documentation for this module may be created at Module:Level up table/doc

--
-- Implements [[Template:Level up table]]
--

local p = {}

local params = require('Module:Paramtest')

function p.make_table(frame)
	local max_level
	local parameters = frame:getParent().args
	if not parameters['max120'] then
		max_level = 99
	else
		local param = string.lower(mw.text.trim(parameters['max120']))

		if param == 'yes' then
			max_level = 120
		else
			max_level = 99
		end
	end

	local lvl_ary = parameters

	-- Every table starts with this
	local ret = mw.html.create('table')
				:addClass('wikitable')
				:addClass('level-up-table')
			:tag('tr')
				:tag('th')
					:wikitext('Level')
					:done()
				:tag('th')
					:attr('colspan','2')
					:wikitext('New abilities')
					:done()
			:done()
	:done()

	-- Function for handling parameter names
	local function level_string(level, mems)
		local level_string
		if mems then
			level_string = "members"
		else
			level_string = "freeplay"
		end
		if level <= 9 then
			level_string = level_string.."0"..level
		else
			level_string = level_string..level
		end
		return level_string
	end

	--
	-- Tables for "each level"
	--
	for i=1,1,1 do
	if params.is_empty(lvl_ary.freeplayall)
		and params.is_empty(lvl_ary.membersall) then
		ret:tag('tr')
				:tag('th')
					:wikitext('Each level')
					:done()
				:tag('td')
					:attr('colspan','2')
					:wikitext('\n*No new abilities unlocked for [[free-to-play|free players]] or [[members]]\n')
					:done()
				:done()
	elseif params.is_empty(lvl_ary.freeplayall)
		or params.is_empty(lvl_ary.membersall) then
			if params.is_empty(lvl_ary.freeplayall) then
				ret:tag('tr')
					:tag('th')
						:wikitext('Each level')
						:done()
					:tag('td')
						:addClass('lvlupmem')
						:wikitext('Members')
						:done()
					:tag('td')
						:wikitext('\n'..lvl_ary.membersall..'\n')
						:done()
					:done()
			else
				ret:tag('tr')
					:tag('th')
						:wikitext('Each level')
						:done()
					:tag('td')
						:addClass('lvlupfree')
						:wikitext('Free play')
						:done()
					:tag('td')
						:wikitext('\n'..lvl_ary.freeplayall..'\n')
						:done()
					:done()
			end
		elseif params.has_content(lvl_ary.freeplayall)
			and params.has_content(lvl_ary.membersall) then
				ret:tag('tr')
					:tag('th')
					    :attr('rowspan','2')
						:wikitext('Each level')
						:done()
					:tag('td')
						:addClass('lvlupfree')
						:wikitext('Free play')
						:done()
					:tag('td')
						:wikitext('\n'..lvl_ary.freeplayall..'\n')
						:done()
					:done()
				:tag('tr')
					:tag('td')
						:addClass('lvlupmem')
						:wikitext('Members')
						:done()
					:tag('td')
						:wikitext('\n'..lvl_ary.membersall..'\n')
						:done()
				:done()
	end
	end
	--
	-- Array for levels 1 - 99/120
	--

	for i=1,max_level,1 do
		local free_level = level_string(i, false)
		local mems_level = level_string(i, true)
		if params.is_empty(lvl_ary[free_level])
			and params.is_empty(lvl_ary[mems_level]) then
			ret:tag('tr')
					:tag('th')
				    	:wikitext(i)
				:attr('id',i)
						:done()
					:tag('td')
						:attr('colspan','2')
						:wikitext('\n*No new abilities unlocked for [[free-to-play|free players]] or [[members]]\n')
						:done()
					:done()
		elseif params.is_empty(lvl_ary[free_level])
			or params.is_empty(lvl_ary[mems_level]) then
				if params.is_empty(lvl_ary[free_level]) then
					ret:tag('tr')
						:tag('th')
							:wikitext(i)
						  :attr('id',i)
							:done()
						:tag('td')
							:addClass('lvlupmem')
							:wikitext('Members')
							:done()
						:tag('td')
							:wikitext('\n'..lvl_ary[mems_level]..'\n')
							:done()
						:done()
				else
					ret:tag('tr')
						:tag('th')
							:wikitext(i)
							:attr('id',i)
							:done()
						:tag('td')
							:addClass('lvlupfree')
							:wikitext('Free play')
							:done()
						:tag('td')
							:wikitext('\n'..lvl_ary[free_level]..'\n')
							:done()
						:done()
				end
			elseif params.has_content(lvl_ary[free_level])
				and params.has_content(lvl_ary[mems_level]) then
					ret:tag('tr')
						:tag('th')
							:attr('rowspan','2')
							:wikitext(i)
							:attr('id',i)
							:done()
						:tag('td')
							:addClass('lvlupfree')
							:wikitext('Free play')
							:done()
						:tag('td')
							:wikitext('\n'..lvl_ary[free_level]..'\n')
							:done()
						:done()
					:tag('tr')
						:tag('td')
							:addClass('lvlupmem')
							:wikitext('Members')
							:done()
						:tag('td')
							:wikitext('\n'..lvl_ary[mems_level]..'\n')
							:done()
					:done()
		end
	end
	return ret
end

return p
Advertisement