Module:Rescue Team DX Pokémon Locations table: Difference between revisions

MDFW - The Mystery Dungeon Tree of Information.
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
(19 intermediate revisions by 2 users not shown)
Line 10: Line 10:
function p.main(frame)
function p.main(frame)
local args = frame.args
local args = frame.args
local output = {}
 
local output = mw.html.create()
local header = mw.html.create()
-- Header row
-- Header row
table.insert(output, '<table class="templateTheme" style="text-align: center; width: 50%; margin: auto;">')
header
table.insert(output, '<tr>')
:tag('tr')
table.insert(output, '<th colspan="1" class="templatePrimary" style="width: 15%;">Location</th>')
:tag('th'):cssText("width: 25%"):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {"Location"}}):done()
table.insert(output, '<th colspan="1" class="templatePrimary" style="width: 15%;">Floors</th>')
:tag('th'):cssText("width: 25%"):wikitext("Floors"):done()
table.insert(output, '<th colspan="1" class="templatePrimary" style="width: 15%;">' .. frame:expandTemplate{title = "RescueTeamDX", args = {"Levels"}} .. '</th>')
:tag('th'):cssText("width: 25%"):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {"Level"}}):done()
table.insert(output, '<th colspan="1" class="templatePrimary" style="width: 15%;">Method</th>')
:tag('th'):cssText("width: 25%"):wikitext("Spawn Rate"):done()
table.insert(output, '<th colspan="1" class="templatePrimary" style="width: 15%;">Spawn Rate</th>')
 
table.insert(output, '</tr>')
-- Data rows
-- Data rows
for i = 1, 100 do
local rows = mw.html.create()
local i = 1
 
while true do
local row = mw.html.create()
local locationArg = args["location_" .. i]
local locationArg = args["location_" .. i]
local floorsArg = args["floors_" .. i]
local floorsArg = args["floors_" .. i]
local levelsArg = args["levels_" .. i]
local levelsArg = args["levels_" .. i]
local methodArg = args["method_" .. i]
local spawnrateArg = args["spawnrate_" .. i]
local spawnArg = args["spawnrate_" .. i]
 
if not locationArg and not floorsArg and not levelsArg and not methodArg and not spawnArg then
if not locationArg and not floorsArg and not levelsArg and not spawnrateArg and not recruitableArg then
break -- exit loop when no more rows are found
break -- exit loop when no more rows are found
else
table.insert(rowData, '<td class="templatePrimary">' .. frame:expandTemplate{title = "TypePKMN", args = {typeOne}} .. '</td>')
table.insert(rowData, '<td class="templatePrimary">' .. frame:expandTemplate{title = "TypePKMN", args = {typeTwo}} .. '</td>')
end
end
table.insert(rowData, '<td class="templateSecondary">' .. (locationArg or "") .. '</td>')
 
table.insert(rowData, '<td class="templateSecondary">' .. (floorsArg or "") .. '</td>')
row
table.insert(rowData, '<td class="templateSecondary">' .. (levelArg or "") .. '</td>')
:tag('tr'):done()
table.insert(rowData, '<td class="templateSecondary">' .. (methodArg or "") .. '</td>')
:tag('td'):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {(locationArg or "")}}):done()
table.insert(rowData, '<td class="templateSecondary">' .. (spawnArg or "") .. '</td>')
:tag('td'):wikitext(floorsArg or frame:expandTemplate{title = "Research"}):done()
table.insert(rowData, '</tr>')
:tag('td'):wikitext(levelsArg or frame:expandTemplate{title = "Research"}):done()
table.insert(output, table.concat(rowData))
:tag('td'):wikitext(spawnrateArg or frame:expandTemplate{title = "Research"}):done()
 
rows
:node(row)
:allDone()
 
i = i + 1
end
end
table.insert(output, '</table>')
 
return table.concat(output)
output
:tag('table'):addClass("wikitable"):cssText("text-align: center; margin: auto; width: 50%;")
:node(header)
:node(rows)
return tostring(output)
 
end
end


return p
return p

Latest revision as of 09:13, 26 January 2025

Documentation for this module may be created at Module:Rescue Team DX Pokémon Locations table/doc

--------------------------------------------------------------------------------
--
--				Module:Rescue Team DX Pokémon Locations table
--
--------------------------------------------------------------------------------

local p = {}
local mw = require('mw')

function p.main(frame)
	local args = frame.args

	local output = mw.html.create()
	local header = mw.html.create()
	-- Header row
	header
		:tag('tr')
			:tag('th'):cssText("width: 25%"):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {"Location"}}):done()
			:tag('th'):cssText("width: 25%"):wikitext("Floors"):done()
			:tag('th'):cssText("width: 25%"):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {"Level"}}):done()
			:tag('th'):cssText("width: 25%"):wikitext("Spawn Rate"):done()

	-- Data rows
	local rows = mw.html.create()
	local i = 1

	while true do
		local row = mw.html.create()
		local locationArg = args["location_" .. i]
		local floorsArg = args["floors_" .. i]
		local levelsArg = args["levels_" .. i]
		local spawnrateArg = args["spawnrate_" .. i]

		if not locationArg and not floorsArg and not levelsArg and not spawnrateArg and not recruitableArg then
			break -- exit loop when no more rows are found
		end

		row
			:tag('tr'):done()
				:tag('td'):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {(locationArg or "")}}):done()
				:tag('td'):wikitext(floorsArg or frame:expandTemplate{title = "Research"}):done()
				:tag('td'):wikitext(levelsArg or frame:expandTemplate{title = "Research"}):done()
				:tag('td'):wikitext(spawnrateArg or frame:expandTemplate{title = "Research"}):done()

		rows
			:node(row)
			:allDone()

		i = i + 1
	end

	output
		:tag('table'):addClass("wikitable"):cssText("text-align: center; margin: auto; width: 50%;")
			:node(header)
			:node(rows)
	return tostring(output)

end

return p