Documentation for this module may be created at Module:Games/doc
--<nowiki>
local p = {}
local games = {
["AR"] = "All Roads",
["D20"] = "Fallout Pen and Paper d20",
["FB"] = "Fallout Bible",
["FILM"] = "Fallout (film)",
["FNV"] = "Fallout: New Vegas",
["FNVGRA"] = "Gun Runners' Arsenal",
["FNVDM"] = "Dead Money",
["FNVHH"] = "Honest Hearts",
["FNVOWB"] = "Old World Blues (add-on)",
["FNVLR"] = "Lonesome Road (add-on)",
["FO1"] = "Fallout",
["FO2"] = "Fallout 2",
["FO3"] = "Fallout 3",
["FO3OA"] = "Operation: Anchorage (add-on)",
["FO3TP"] = "The Pitt (add-on)",
["FO3BS"] = "Broken Steel",
["FO3PL"] = "Point Lookout (add-on)",
["FO3MZ"] = "Mothership Zeta (add-on)",
["FO4"] = "Fallout 4",
["FO4AUT"] = "Automatron (add-on)",
["FO4WW"] = "Wasteland Workshop",
["FO4FH"] = "Far Harbor (add-on)",
["FOBOS"] = "Fallout: Brotherhood of Steel",
["FOBOS2"] = "Fallout: Brotherhood of Steel 2",
["FOS"] = "Fallout Shelter",
["FOT"] = "Fallout Tactics",
["FOT2"] = "Fallout Tactics 2",
["FOX"] = "Fallout Extreme",
["JES"] = "J.E. Sawyer's Fallout RPG",
["LH"] = "Lionheart",
["PA"] = "One Man, and a Crate of Puppets",
["PV13"] = "Project V13",
["TAR"] = "Project V13",
["TORN"] = "TORN",
["VB"] = "Van Buren",
}
-- look up short title without disambig
function stitle(game)
local result = games[game]
if game ~= "FILM" then
result = result:gsub('%s%(.*', '')
end
return result
end
-- ====================
-- This function, links, is for ordinary links within the body of
-- an infobox. So if all you want returned is [[Fallout 4]], then
-- use the syntax:
-- {{#invoke:Games|links|{{{games|}}}}}
-- specifying a second argument returns the text in italics:
-- {{#invoke:Games|links|{{{games|}}}|1}}
-- ====================
function p.links(frame)
local result = ''
local game_list = mw.text.split(frame.args[1], "%s*,%s*")
for n, game in ipairs(game_list) do
if game:lower() == "none" then
result = ''
else
result = result .. '[[' .. games[game] .. '|' .. stitle(game) .. ']]'
if n ~= #game_list then
result = result .. '<br/>'
end
end
end
if (frame.args[2] and result ~= '') then
return "''" .. result .. "''"
else
return result
end
end
-- ====================
-- This function, title, generically generates links for the supertitle.
-- Either just to the game page itself or to a more specific page.
--
-- {{#invoke:Games|title|FO4}} gives just [[Fallout 4|Fallout 4]]
-- {{#invoke:Games|title|FO4|weapons}} results in [[Fallout 4 weapons|Fallout 4]]
-- {{#invoke:Games|title|FO4|weapons|weapon}} results in [[Fallout 4 weapons|Fallout 4 weapon]]
-- ====================
function p.title(frame)
local result = ''
local game_list = mw.text.split(frame.args[1], "%s*,%s*")
for n, game in ipairs(game_list) do
if game:lower() == "none" then
result = 'Mentioned-only'
if frame.args[3] then
result = result .. ' ' .. frame.args[3]
end
else
local link
if frame.args[2] then
link = stitle(game) .. ' ' .. frame.args[2]
else
link = games[game]
end
local text = stitle(game)
if frame.args[3] and n == #game_list then
text = text .. ' ' .. frame.args[3]
end
result = result .. '[[' .. link .. '|' .. text .. ']]'
if n ~= #game_list then
result = result .. ' / '
end
end
end
return result
end
return p
--</nowiki>