Module:SMO Power Moons
From the Super Mario Wiki, the Mario encyclopedia
Jump to navigationJump to search
This module outputs the {{SMO Power Moons}} table with data from here.
local MOONS = mw.loadJsonData('Module:SMO Power Moons/data.json')
local tables = require('Module:Table')
local p = {}
function p.main(frame)
local args = frame:getParent().args
local current_title = string.lower(mw.title.getCurrentTitle().text)
local wikitext = '{|class="wikitable '
if args[2] then
wikitext = wikitext .. "sortable "
end
if args.nokingdom then
wikitext = wikitext .. 'col4left col5left'
else
wikitext = wikitext .. 'col5left col6left'
end
wikitext = wikitext .. ' mario sm" style="width:100%;text-align:center"\n'
wikitext = wikitext .. '!!data-sort-type="number"|#\n'
wikitext = wikitext .. '!class="unsortable" width="192px"|Image\n'
wikitext = wikitext .. '!data-sort-type="alphabetical"|Name\n'
if not args.nokingdom then
wikitext = wikitext .. '!class="unsortable"|Kingdom\n'
end
wikitext = wikitext .. '!class="unsortable"|Location\n'
wikitext = wikitext .. '!Availability\n'
local link_tracker = tables.LinkTracker.new(current_title)
for k, v in ipairs(args) do
v = tables.trim(v)
if v ~= "" then
wikitext = wikitext .. frame:preprocess("|-{{anchor|" .. v .. "}}\n")
local moon = MOONS[v]
if moon == nil then
error("Power Moon parameter " .. k .. " is invalid: " .. v)
else
wikitext = wikitext .. "|" .. frame:preprocess(moon.number or "") .. "\n"
wikitext = wikitext .. "|" .. frame:preprocess(moon.image or tables.noimage("SMO Power Moon " .. v)) .. "\n"
if moon.sort_name then
wikitext = wikitext .. "|data-sort-value=\"" .. moon.sort_name .. "\""
end
wikitext = wikitext .. "|''"
if type(moon.objective) == "string" then
wikitext = wikitext .. "[[" .. moon.objective .. "|" .. v .. "]]"
elseif moon.objective then
wikitext = wikitext .. "[[" .. v .. "]]"
else
wikitext = wikitext .. v
end
wikitext = wikitext .. "''"
if moon.multi then
wikitext = wikitext .. " ❸\n"
end
wikitext = wikitext .. "\n"
if not args.nokingdom then
wikitext = wikitext .. "|"
if moon.kingdom == "Mushroom Kingdom" then
wikitext = wikitext .. "[[" .. moon.kingdom .. "]]"
else
wikitext = wikitext .. "[[Mushroom Kingdom (Super Mario Odyssey)|" .. moon.kingdom .. "]]"
end
wikitext = wikitext .. "\n"
end
wikitext = wikitext .. "|" .. frame:preprocess(link_tracker:parse(moon.location)) .. "\n"
wikitext = wikitext .. "|" .. frame:preprocess(moon.availability or "") .. "\n"
end
end
end
wikitext = wikitext .. "|}"
return wikitext
end
return p