Module:Adventure Squad Pokémon Dungeon table: Difference between revisions

MDFW - The Mystery Dungeon Tree of Information.
Jump to navigation Jump to search
No edit summary
mNo edit summary
 
(26 intermediate revisions by 3 users not shown)
Line 1: Line 1:
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--
--
-- Module:Rescue Team Pokémon Locations table
-- Module:Adventure Squad Pokémon dungeons table
--
--
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Line 13: Line 13:
local output = mw.html.create()
local output = mw.html.create()
local header = mw.html.create()
local header = mw.html.create()
local data = require("Module:Adventure Squad Dungeon Data Cell")
local metatable = {__index = function () return "" end}
setmetatable(data, metatable)
-- Header row
-- Header row
header
header
:tag('tr')
:tag('tr'):done()
:tag('th'):attr("colspan", "2"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Location"}}):done()
:tag('th'):attr("colspan", "2"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Dungeon"}}):done()
:tag('th'):attr("rowspan", "2"):cssText("width: 20%"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Floor", "Floors"}}):done()
:tag('th'):attr("rowspan", "2"):cssText("width: 10%"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Floor", "Floors"}}):done()
:tag('th'):attr("rowspan", "2"):cssText("width: 20%"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Level"}}):done()
:tag('th'):attr("rowspan", "2"):cssText("width: 10%"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Level"}}):done()
:tag('th'):attr("rowspan", "2"):cssText("width: 20%"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Spawn Rate"}}):done()
:tag('th'):attr("rowspan", "2"):cssText("width: 10%"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Spawn Rate"}}):done()
:tag('th'):cssText("width: 20%"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Recruiting", "Recruitable"}}):done()
:tag('th'):attr("rowspan", "2"):cssText("width: 10%"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Recruiting", "Recruitable"}}):done()
:tag('th'):attr("rowspan", "2"):cssText("width: 20%"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Version"}}):done()
:tag('th'):attr("rowspan", "2"):cssText("width: 10%"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Version"}}):done()
:tag('tr'):done()
:tag('th'):cssText("width: 25%"):wikitext("English"):done()
:tag('th'):cssText("width: 25%"):wikitext("Japanese"):done()


-- Data rows
-- Data rows
Line 29: Line 37:
while true do
while true do
local row = mw.html.create()
local row = mw.html.create()
local locationArg = args["location_" .. i]
local dungeonArg = args["dungeon_" .. i]
local floorsArg = args["floors_" .. i]
local floorsArg = args["floors_" .. i]
local levelsArg = args["levels_" .. i]
local levelsArg = args["levels_" .. i]
Line 36: Line 44:
local versionArg = args["version_" .. i]
local versionArg = args["version_" .. i]


if not locationArg and not floorsArg and not levelsArg and not spawnrateArg and not recruitableArg and not versionArg then
if not dungeonArg and not floorsArg and not levelsArg and not spawnrateArg and not recruitableArg and not versionArg then
break -- exit loop when no more rows are found
break -- exit loop when no more rows are found
end
end
Line 42: Line 50:
row
row
:tag('tr'):done()
:tag('tr'):done()
:tag('td'):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {(locationArg or "")}}):done()
:tag('td'):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {(dungeonArg or "")}}):done()
:tag('td'):wikitext(data[dungeonArg]["ja"]):done()
:tag('td'):wikitext(floorsArg or frame:expandTemplate{title = "Research"}):done()
:tag('td'):wikitext(floorsArg or frame:expandTemplate{title = "Research"}):done()
:tag('td'):wikitext(levelsArg 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()
:tag('td'):wikitext(spawnrateArg or frame:expandTemplate{title = "Research"}):done()
:tag('td'):wikitext(recruitableArg or frame:expandTemplate{title = "Research"}):done()
:tag('td'):wikitext(versionArg or frame:expandTemplate{title = "Research"}):done()
if string.lower(recruitableArg) == "yes" or string.lower(recruitableArg) == "true" or recruitableArg == "✓" then
 
if recruitableArg == nil or recruitableArg == '' or string.lower(recruitableArg) == "false" or string.lower(recruitableArg) == "no" then
row
row
:tag('td'):cssText("background: #F2CECE; color: maroon"):wikitext("✗"):done()
:tag('td'):wikitext("✓"):cssText("background:lightgreen; color:forestgreen;"):done()
else
else
row
row
:tag('td'):cssText("background: #CEF2CE; color: darkgreen"):wikitext("✓"):done()
:tag('td'):wikitext("✗"):cssText("background:#F2CECE; color:maroon;"):done()
end
end
row
:tag("td"):wikitext(data[dungeonArg]["version"]):cssText(frame:preprocess('{{#switch: {{lc: ' .. (data[dungeonArg]["version"] or "") .. '}}'))


rows
rows
Line 65: Line 75:


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

Latest revision as of 09:35, 26 January 2025

Documentation for this module may be created at Module:Adventure Squad Pokémon Dungeon table/doc

--------------------------------------------------------------------------------
--
--					Module:Adventure Squad Pokémon dungeons 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()

	local data = require("Module:Adventure Squad Dungeon Data Cell")
	local metatable = {__index = function () return "" end}
	setmetatable(data, metatable)

	-- Header row
	header
		:tag('tr'):done()
			:tag('th'):attr("colspan", "2"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Dungeon"}}):done()
			:tag('th'):attr("rowspan", "2"):cssText("width: 10%"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Floor", "Floors"}}):done()
			:tag('th'):attr("rowspan", "2"):cssText("width: 10%"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Level"}}):done()
			:tag('th'):attr("rowspan", "2"):cssText("width: 10%"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Spawn Rate"}}):done()
			:tag('th'):attr("rowspan", "2"):cssText("width: 10%"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Recruiting", "Recruitable"}}):done()
			:tag('th'):attr("rowspan", "2"):cssText("width: 10%"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Version"}}):done()
		:tag('tr'):done()
			:tag('th'):cssText("width: 25%"):wikitext("English"):done()
			:tag('th'):cssText("width: 25%"):wikitext("Japanese"):done()

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

	while true do
		local row = mw.html.create()
		local dungeonArg = args["dungeon_" .. i]
		local floorsArg = args["floors_" .. i]
		local levelsArg = args["levels_" .. i]
		local spawnrateArg = args["spawnrate_" .. i]
		local recruitableArg = args["recruitable_" .. i]
		local versionArg = args["version_" .. i]

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

		row
			:tag('tr'):done()
				:tag('td'):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {(dungeonArg or "")}}):done()
				:tag('td'):wikitext(data[dungeonArg]["ja"]):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 string.lower(recruitableArg) == "yes" or string.lower(recruitableArg) == "true" or recruitableArg == "✓" then
			row
				:tag('td'):wikitext("✓"):cssText("background:lightgreen; color:forestgreen;"):done()
		else
			row
				:tag('td'):wikitext("✗"):cssText("background:#F2CECE; color:maroon;"):done()
		end
		
		row
			:tag("td"):wikitext(data[dungeonArg]["version"]):cssText(frame:preprocess('{{#switch: {{lc: ' .. (data[dungeonArg]["version"] or "") .. '}}'))

		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