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

MDFW - The Mystery Dungeon Tree of Information.
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
(18 intermediate revisions by 2 users not shown)
Line 13: Line 13:
setmetatable(data, metatable)
setmetatable(data, metatable)
local args = frame.args
local args = frame.args
 
local output = mw.html.create()
local output = mw.html.create()
local header = mw.html.create()
local header = mw.html.create()
-- Header row
-- Header row
header
header
Line 33: Line 32:
:tag('th'):cssText("width: 10%"):wikitext("Recruit Camp"):done()
:tag('th'):cssText("width: 10%"):wikitext("Recruit Camp"):done()
:tag('th'):cssText("width: 5%"):wikitext("Story"):done()
:tag('th'):cssText("width: 5%"):wikitext("Story"):done()
 
-- Data rows
-- Data rows
local rows = mw.html.create()
local rows = mw.html.create()
local i = 1
local i = 1
 
while true do
while true do
local row = mw.html.create()
local row = mw.html.create()
local monsterArg = args["monster_" .. i]
local monsterArg = args["pokémon_" .. i]
local floorsArg = args["floors_" .. i]
local floorsArg = args["floors_" .. i]
local levelArg = args["level_" .. i]
local levelArg = args["level_" .. i]
local expArg = args["exp_" .. i]
local expArg = args["exp_" .. i]
local recruitableArg = args["recruitable_" .. i]
local recruitableArg = args["recruitable_" .. i]
 
if not monsterArg and not floorsArg and not recruitableArg and not expArg and not levelArg then
if not monsterArg and not floorsArg and not recruitableArg and not expArg and not levelArg then
break -- exit loop when no more rows are found
break -- exit loop when no more rows are found
end
end
 
local typeOne = data[monsterArg]["type1"] or ""
local typeTwo = data[monsterArg]["type2"] or ""
 
row
row
:tag("tr")
:tag('tr'):done()
:tag("th"):wikitext(frame:expandTemplate{title = "RescueTeamDXSprite", args = {(monsterArg or ""), size = "32px"}}):done()
:tag('th'):wikitext(frame:expandTemplate{title = "RescueTeamDXSprite", args = {(monsterArg or ""), size = "64x64px"}}):done()
:tag("td"):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {(monsterArg or "")}}):done()
:tag('td'):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {(monsterArg or "")}}):done()
:tag("td"):wikitext(data[monsterArg]["ja"]):done()
:tag('td'):wikitext(data[monsterArg]["ja"]):done()


if typeTwo == nil or typeTwo == '' then
if typeTwo == nil or typeTwo == '' then
row
row
:tag("td"):attr("colspan", "2"):wikitext(frame:expandTemplate{title = "RescueTeamDXType", args = {data[monsterArg]["type1"]}}):done()
:tag('th'):attr("colspan", "2"):wikitext(frame:expandTemplate{title = "RescueTeamDXType", args = {typeOne}}):done()
else
else
row
row
:tag("td"):wikitext(frame:expandTemplate{title = "RescueTeamDXType", args = {data[monsterArg]["type1"]}}):done()
:tag('th'):wikitext(frame:expandTemplate{title = "RescueTeamDXType", args = {typeOne}}):done()
:tag("td"):wikitext(frame:expandTemplate{title = "RescueTeamDXType", args = {data[monsterArg]["type2"]}}):done()
:tag('th'):wikitext(frame:expandTemplate{title = "RescueTeamDXType", args = {typeTwo}}):done()
end
end


row
row
:tag("td"):wikitext(data[monsterArg]["exp"])
:tag('td'):wikitext(levelArg or frame:expandTemplate{title = "Research"}):done()
:tag("td"):wikitext(floorsArg or frame:expandTemplate{title = "Research"}):done()
:tag('td'):wikitext(expArg or frame:expandTemplate{title = "Research"}):done()
:tag('td'):wikitext(floorsArg or frame:expandTemplate{title = "Research"}):done()
if recruitableArg == nil or string.lower(recruitableArg) == "false" or string.lower(recruitableArg) == "no" then
 
row
if recruitableArg == nil or string.lower(recruitableArg) == "false" or string.lower(recruitableArg) == "no" then
:tag("td"):attr("colspan", "3"):wikitext("Unrecruitable"):done()
row
else
:tag('td'):attr("colspan", "3"):wikitext("Unrecruitable"):done()
row
else
:tag("td"):wikitext(data[monsterArg]["recruit"]):done()
row
:tag("td"):wikitext(frame:expandTemplate{title = "RescueTeamDXType", args = {data[monsterArg]["rescueCamp"]}}):done()
:tag('td'):wikitext(data[monsterArg]["recruit"]):done()
:tag("td"):wikitext(frame:expandTemplate{title = "RescueTeamDXType", args = {data[monsterArg]["story"]}}):done()
:tag('td'):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {data[monsterArg]["camp"]}}):done()
end
:tag('td'):wikitext(data[monsterArg]["story"]):done()
end


rows
rows
Line 85: Line 88:
i = i + 1
i = i + 1
end
end
 
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)
return tostring(output)
return tostring(output)
end
end


return p
return p

Latest revision as of 09:35, 26 January 2025

Template-info.png Documentation

This template generates a list of pokemons present in a dungeon for Pokémon Mystery Dungeon: Rescue Team DX.

Usage

{{#invoke:Rescue Team DX Dungeon Pokémon table|main
  | pokémon_1 = 
  | floors_1  = 
  | level_1   = 
  | exp_1     = 
  ...
  | pokémon_n = 
  | floors_n  = 
  | level_n   = 
  | exp_n     = 
}}

Example

{{#invoke:Rescue Team DX Dungeon Pokémon table|main
  | pokémon_1 = 
  | floors_1  = 
}}
SpritePokémonTypeLevelExperienceFloorsRecruit Chance
EnglishJapaneseBase ChanceRecruit CampStory
Pikachu's sprite.PikachuピカチュウElectric-type111 - 3Unrecruitable

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

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

function p.main(frame)
	local data = require("Module:Rescue Team DX Pokémon Data Cell")
	local metatable = {__index = function () return "" end}
	setmetatable(data, metatable)
	local args = frame.args

	local output = mw.html.create()
	local header = mw.html.create()
	-- Header row
	header
		:tag('tr')
			:tag('th'):attr("rowspan", "2"):cssText("width: 10%"):wikitext("Sprite"):done()
			:tag('th'):attr("colspan", "2"):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {"Pokémon"}}):done()
			:tag('th'):attr("colspan", "2"):attr("rowspan", "2"):cssText("width: 10%"):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {"Type"}}):done()
			:tag('th'):attr("rowspan", "2"):cssText("width: 10%"):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {"Level"}}):done()
			:tag('th'):attr("rowspan", "2"):cssText("width: 10%"):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {"Experience"}}):done()
			:tag('th'):attr("rowspan", "2"):cssText("width: 10%"):wikitext("Floors"):done()
			:tag('th'):attr("colspan", "3"):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {"Recruiting", "Recruit Chance"}}):done()
		:tag('tr')
			:tag('th'):cssText("width: 15%"):wikitext("English"):done()
			:tag('th'):cssText("width: 15%"):wikitext("Japanese"):done()
			:tag('th'):cssText("width: 5%"):wikitext("Base Chance"):done()
			:tag('th'):cssText("width: 10%"):wikitext("Recruit Camp"):done()
			:tag('th'):cssText("width: 5%"):wikitext("Story"):done()

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

	while true do
		local row = mw.html.create()
		local monsterArg = args["pokémon_" .. i]
		local floorsArg = args["floors_" .. i]
		local levelArg = args["level_" .. i]
		local expArg = args["exp_" .. i]
		local recruitableArg = args["recruitable_" .. i]

		if not monsterArg and not floorsArg and not recruitableArg and not expArg and not levelArg then
			break -- exit loop when no more rows are found
		end

		local typeOne = data[monsterArg]["type1"] or ""
		local typeTwo = data[monsterArg]["type2"] or ""

		row
			:tag('tr'):done()
				:tag('th'):wikitext(frame:expandTemplate{title = "RescueTeamDXSprite", args = {(monsterArg or ""), size = "64x64px"}}):done()
				:tag('td'):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {(monsterArg or "")}}):done()
				:tag('td'):wikitext(data[monsterArg]["ja"]):done()

		if typeTwo == nil or typeTwo == '' then
			row
				:tag('th'):attr("colspan", "2"):wikitext(frame:expandTemplate{title = "RescueTeamDXType", args = {typeOne}}):done()
		else
			row
				:tag('th'):wikitext(frame:expandTemplate{title = "RescueTeamDXType", args = {typeOne}}):done()
				:tag('th'):wikitext(frame:expandTemplate{title = "RescueTeamDXType", args = {typeTwo}}):done()
		end

		row
			:tag('td'):wikitext(levelArg or frame:expandTemplate{title = "Research"}):done()
			:tag('td'):wikitext(expArg or frame:expandTemplate{title = "Research"}):done()
			:tag('td'):wikitext(floorsArg or frame:expandTemplate{title = "Research"}):done()

		if recruitableArg == nil or string.lower(recruitableArg) == "false" or string.lower(recruitableArg) == "no" then
			row
				:tag('td'):attr("colspan", "3"):wikitext("Unrecruitable"):done()
		else
			row
				:tag('td'):wikitext(data[monsterArg]["recruit"]):done()
				:tag('td'):wikitext(frame:expandTemplate{title = "RescueTeamDX", args = {data[monsterArg]["camp"]}}):done()
				:tag('td'):wikitext(data[monsterArg]["story"]):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