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

MDFW - The Mystery Dungeon Tree of Information.
Jump to navigation Jump to search
mNo edit summary
Tag: Manual revert
mNo edit summary
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--
--
-- Module:Rescue Team Pokémon Locations table
-- Module:Rescue Team 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: 20%"):wikitext(frame:expandTemplate{title = "RescueTeam", args = {"Location"}}):done()
table.insert(output, '<th class="templatePrimary" colspan="1" style="width: 20%;">Floors</th>')
:tag('th'):cssText("width: 20%"):wikitext("Floors"):done()
table.insert(output, '<th class="templatePrimary" colspan="1">' .. frame:expandTemplate{title = "RescueTeam", args = {"Levels"}} .. '</th>')
:tag('th'):cssText("width: 20%"):wikitext(frame:expandTemplate{title = "RescueTeam", args = {"Level"}}):done()
table.insert(output, '<th class="templatePrimary" colspan="1" style="width: 20%;">Spawn Rate</th>')
:tag('th'):cssText("width: 20%"):wikitext("Spawn Rate"):done()
table.insert(output, '<th class="templatePrimary" colspan="1" style="width: 20%;">Recruitable</th>')
:tag('th'):cssText("width: 20%"):wikitext(frame:expandTemplate{title = "RescueTeam", args = {"Recruiting", "Recruitable"}}):done()
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]
Line 27: Line 33:
local spawnrateArg = args["spawnrate_" .. i]
local spawnrateArg = args["spawnrate_" .. i]
local recruitableArg = args["recruitable_" .. i]
local recruitableArg = args["recruitable_" .. i]
if not locationArg and not floorsArg and not levelsArg and not spawnrateArg and not recruitableArg 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 = "RescueTeam", 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>')
 
if recruitableArg == nil or recruitableArg == '' or string.lower(recruitableArg) == "false" or string.lower(recruitableArg) == "no" then
row
:tag('td'):cssText("background: #F2CECE; color: maroon"):wikitext("✗"):done()
else
else
table.insert(rowData, '<td class="templateSecondary">' .. frame:expandTemplate{title = "RescueTeam", args = {locationArg}} .. '</td>')
row
:tag('td'):cssText("background: #CEF2CE; color: darkgreen"):wikitext(""):done()
end
end
table.insert(rowData, '<td class="templateSecondary">' .. (floorsArg or frame:expandTemplate{title = "Research"}) .. '</td>')
 
table.insert(rowData, '<td class="templateSecondary">' .. (levelsArg or frame:expandTemplate{title = "Research"}) .. '</td>')
rows
table.insert(rowData, '<td class="templateSecondary">' .. (spawnrateArg or frame:expandTemplate{title = "Research"}) .. '</td>')
:node(row)
if recruitableArg == nil or string.lower(recruitableArg) == "false" or string.lower(recruitableArg) == "no" then
:allDone()
table.insert(rowData, '<td class="templateSecondary">' .. frame:expandTemplate{title = "No"} .. '</td>')
 
else
i = i + 1
table.insert(rowData, '<td class="templateSecondary">✓={{Yes}}</td>')
end
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:23, 26 January 2025

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

--------------------------------------------------------------------------------
--
--					Module:Rescue Team 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: 20%"):wikitext(frame:expandTemplate{title = "RescueTeam", args = {"Location"}}):done()
			:tag('th'):cssText("width: 20%"):wikitext("Floors"):done()
			:tag('th'):cssText("width: 20%"):wikitext(frame:expandTemplate{title = "RescueTeam", args = {"Level"}}):done()
			:tag('th'):cssText("width: 20%"):wikitext("Spawn Rate"):done()
			:tag('th'):cssText("width: 20%"):wikitext(frame:expandTemplate{title = "RescueTeam", args = {"Recruiting", "Recruitable"}}):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]
		local recruitableArg = args["recruitable_" .. 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 = "RescueTeam", 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()

		if recruitableArg == nil or recruitableArg == '' or string.lower(recruitableArg) == "false" or string.lower(recruitableArg) == "no" then
			row
				:tag('td'):cssText("background: #F2CECE; color: maroon"):wikitext("✗"):done()
		else
			row
				:tag('td'):cssText("background: #CEF2CE; color: darkgreen"):wikitext("✓"):done()
		end

		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