Module:Entry/titles
Documentation for this module may be created at Module:Entry/titles/doc
local p = {}
p.sequence = {
{
console = "GBA",
name = "Rhythm Tengoku",
stages = require("Module:Entry/titles/GBA")
},
{
console = "Arcade",
name = "Rhythm Tengoku (Arcade)",
stages = require("Module:Entry/titles/Arcade")
},
{
console = "DS",
name = "Rhythm Heaven",
stages = require("Module:Entry/titles/DS")
},
{
console = "Wii",
name = "Rhythm Heaven Fever",
stages = require("Module:Entry/titles/Wii")
},
{
console = "3DS",
name = "Rhythm Heaven Megamix",
stages = {}
},
{
console = "Switch",
name = "Rhythm Heaven Groove",
stages = {}
}
}
local stageEntryMT = {
__index = function(entries, n)
return entries[tonumber(n)]
end
}
p.lookup = {}
for _, rh in ipairs(p.sequence) do
local stageLookup = {}
for _, stage in ipairs(rh.stages) do
stageLookup[stage.label] = stage
setmetatable(stage.entries, stageEntryMT)
end
p.lookup[rh.console] = stageLookup
end
setmetatable(p.lookup, {
__index = function(t, entry)
if type(entry) == "table" then
return t[entry.console][entry.stage].entries[entry.number]
end
end
})
return p