FANDOM


--<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)",
    ["FO4CW"] = "Contraptions Workshop",
    ["FO4VW"] = "Vault-Tec Workshop",
    ["FO4NW"] = "Nuka-World (add-on)",
    ["FO4VR"] = "Fallout 4 VR",
    ["FO4CC"] = "Creation Club",
    ["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>