Fallout Wiki
Advertisement
Fallout Wiki

A documentação para este módulo pode ser criada em Módulo:Games/doc

--<nowiki>

local p = {}

local games = {
     ["2D20"] = "Fallout 2d20",
     ["AR"] = "All Roads",
     ["D20"] = "Fallout Pen and Paper d20",
     ["FB"] = "Fallout Bible",
     ["FBG"] = "Fallout: The Board Game",
     ["FBGNC"] = "Fallout: New California",
     ["FILM"] = "Fallout (filme)",
     ["FNV"] = "Fallout: New Vegas",
     ["FNVGRA"] = "Gun Runners' Arsenal",
     ["FNVDM"] = "Dead Money",
     ["FNVHH"] = "Honest Hearts",
     ["FNVOWB"] = "Old World Blues (DLC)",
     ["FNVLR"] = "Lonesome Road (DLC)",
     ["FO1"] = "Fallout",
     ["FO2"] = "Fallout 2",
     ["FO3"] = "Fallout 3",
     ["FO3OA"] = "Operation: Anchorage (DLC)",
     ["FO3TP"] = "The Pitt (DLC)",
     ["FO3BS"] = "Broken Steel",
     ["FO3PL"] = "Point Lookout (DLC)",
     ["FO3MZ"] = "Mothership Zeta (DLC)",
     ["FO4"] = "Fallout 4",
     ["FO4AUT"] = "Automatron (DLC)",
     ["FO4WW"] = "Wasteland Workshop",
     ["FO4FH"] = "Far Harbor (DLC)",
     ["FO4CW"] = "Contraptions Workshop",
     ["FO4VW"] = "Vault-Tec Workshop",
     ["FO4NW"] = "Nuka-World (DLC)",
     ["FO4VR"] = "Fallout 4 VR",
     ["FO4CC"] = "Creation Club",
     ["FO76"] = "Fallout 76",
     ["FO76WA"] = "Wild Appalachia",
     ["FO76NW"] = "Nuclear Winter",
     ["FO76WL"] = "Wastelanders",
     ["FO76LR"] = "The Legendary Run (update)",
     ["FO76OW"] = "One Wasteland For All",
     ["FO76FS"] = "Steel Dawn",
     ["FO76SD"] = "Steel Dawn",
     ["FOBOS"] = "Fallout: Brotherhood of Steel",
     ["FOBOS2"] = "Fallout: Brotherhood of Steel 2",
     ["FOS"] = "Fallout Shelter",
     ["FOT"] = "Fallout Tactics",
     ["FOT2"] = "Fallout Tactics 2",
     ["FOTV"] = "Fallout television series",
     ["FOW"] = "Fallout: Warfare",
     ["FOX"] = "Fallout Extreme",
     ["FWW"] = "Fallout: Wasteland Warfare",
     ["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",
 }

-- Procure por um título longo sem desambiguação
function stitle(game)
    local result = games[game]
    if game ~= "FILM" then
        result = result:gsub('%s%(.*', '')
    end
    return result
end

-- ====================
-- Esta função, links, é para links ordinários dentro do corpo de
-- uma infobox.  Se então, tudo o que quer é retornar ao [[Fallout 4]], 
-- então use a syntax:
--        {{#invoke:Games|links|{{{games|}}}}}
-- especificando um segundo argumento faz com que o texto fique em itálico:
--        {{#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

-- Função de inversão dos ipairs (cortesia da El Refugio)

function TablaInversa(t)
	local tablaInvertida = {}
	local contarElementos = #t
    for k, v in ipairs(t) do
        tablaInvertida[contarElementos + 1 - k] = v
    end
    return tablaInvertida
end

-- ====================
--  Esta função, título, gera links genericos para o subtítulo.
--  Tanto para a própria página do jogo ou para uma página mais específica.
--
--  {{#invoke:Games|title|FO4}} resulta em [[Fallout 4|Fallout 4]]
--  {{#invoke:Games|title|FO4|armas do}} resulta em [[Armas do Fallout 4|Fallout 4]]
--  {{#invoke:Games|title|FO4|armas do|armas do}} resulta em [[Armas do Fallout 4|Armas do Fallout 4]]
-- ====================

function p.title(frame)
    local result = ''
 
    local game_list = mw.text.split(frame.args[1], "%s*,%s*") 
	local r = TablaInversa(game_list)
	for n, game in ipairs(r) do
        if game:lower() == "none" then
            result = 'apenas mencionado'
            if frame.args[3] then
                result = frame.args[3] .. ' ' .. result
            end
        else
            local link
            if frame.args[2] then
                link = frame.args[2] .. ' ' .. stitle(game)
            else
                link = games[game]
            end
            local text = stitle(game)
            if frame.args[3] and n == #game_list then
                text = frame.args[3] .. ' ' .. text
            end 
--			result = result .. '[[' .. link .. '|' .. text .. ']]'
			result =  '[[' .. link .. '|' .. text .. ']]'.. result
            if n ~= #game_list then
--              result = result .. ' / '
                result = ' / '.. result
            end
        end
    end
 
    return result
end


return p