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
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--
--
-- Module:Rescue Team Pokémon Locations table
-- Module:Rescue Team DX Pokémon Locations table
--
--
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
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; margin: auto; width: 50%;">')
header
table.insert(output, '<tr>')
:tag('tr')
table.insert(output, '<th class="templatePrimary" colspan="1" style="width: 20%;">Location</th>')
:tag('th'):cssText("width: 25%"):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {"Location"}}):done()
table.insert(output, '<th class="templatePrimary" colspan="1" style="width: 20%;">Floors</th>')
:tag('th'):cssText("width: 25%"):wikitext("Floors"):done()
table.insert(output, '<th class="templatePrimary" colspan="1">' .. frame:expandTemplate{title = "RescueTeamDX", args = {"Levels"}} .. '</th>')
:tag('th'):cssText("width: 25%"):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {"Level"}}):done()
table.insert(output, '<th class="templatePrimary" colspan="1" style="width: 20%;">Method</th>')
:tag('th'):cssText("width: 25%"):wikitext("Spawn Rate"):done()
table.insert(output, '<th class="templatePrimary" colspan="1" style="width: 20%;">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 spawnrateArg = args["spawnrate_" .. i]
if not locationArg and not floorsArg and not levelsArg and not methodArg and not spawnrateArg 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
end
end
local rowData = {}
 
table.insert(rowData, '<tr class="locationsTableRow">')
row
if locationArg == nil or locationArg == '' then
:tag('tr'):done()
table.insert(rowData, '<th class="templateSecondary">' .. frame:expandTemplate{title = "Research"} .. '</td>')
:tag('td'):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {(locationArg or "")}}):done()
table.insert(rowData, '<td class="templateSecondary">' .. frame:expandTemplate{title = "Research"} .. '</td>')
:tag('td'):wikitext(floorsArg or frame:expandTemplate{title = "Research"}):done()
table.insert(rowData, '<td class="templateSecondary">' .. frame:expandTemplate{title = "Research"} .. '</td>')
:tag('td'):wikitext(levelsArg or frame:expandTemplate{title = "Research"}):done()
table.insert(rowData, '<td class="templateSecondary">' .. frame:expandTemplate{title = "Research"} .. '</td>')
:tag('td'):wikitext(spawnrateArg or frame:expandTemplate{title = "Research"}):done()
table.insert(rowData, '<td class="templateSecondary">' .. frame:expandTemplate{title = "Research"} .. '</td>')
 
else
rows
table.insert(rowData, '<td class="templateSecondary">' .. frame:expandTemplate{title = "RescueTeamDX", args = {locationArg}} .. '</td>')
:node(row)
end
:allDone()
table.insert(rowData, '<td class="templateSecondary">' .. (locationArg or frame:expandTemplate{title = "Research"}) .. '</td>')
 
table.insert(rowData, '<td class="templateSecondary">' .. (floorsArg or frame:expandTemplate{title = "Research"}) .. '</td>')
i = i + 1
table.insert(rowData, '<td class="templateSecondary">' .. (levelsArg or frame:expandTemplate{title = "Research"}) .. '</td>')
table.insert(rowData, '<td class="templateSecondary">' .. (spawnrateArg or frame:expandTemplate{title = "Research"}) .. '</td>')
table.insert(rowData, '</tr>')
table.insert(output, table.concat(rowData))
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