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
Tag: Reverted
mNo edit summary
 
(15 intermediate revisions by 3 users not shown)
Line 1: Line 1:
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--
--
-- Module:Adventure Squad Pokémon Locations table
-- Module:Adventure Squad Pokémon dungeons table
--
--
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Line 10: Line 10:
function p.main(frame)
function p.main(frame)
local args = frame.args
local args = frame.args
local output = mw.html.create()
local header = mw.html.create()


local data = require("Module:Adventure Squad Dungeon Data Cell")
local data = require("Module:Adventure Squad Dungeon Data Cell")
Line 15: Line 18:
setmetatable(data, metatable)
setmetatable(data, metatable)


:tag('div'):wikitext(data["Enigmatic Meadow"]["version"]):done()
local output = mw.html.create()
local header = mw.html.create()
-- Header row
-- Header row
header
header
:tag('tr')
:tag('tr'):done()
:tag('th'):attr("colspan", "2"):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Dungeon"}}):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'):attr("rowspan", "2"):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('tr'):done()
:tag('th'):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"English"}}):done()
:tag('th'):cssText("width: 25%"):wikitext("English"):done()
:tag('th'):wikitext(frame:expandTemplate{title = "AdventureSquad", args = {"Japanese"}}):done()
:tag('th'):cssText("width: 25%"):wikitext("Japanese"):done()


-- Data rows
-- Data rows
Line 38: 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 45: 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 51: 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: darkblue"):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 74: 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