FANDOM


--<nowiki>
 
local p = {}
 
local games = {
	["AR"] = "All Roads",
	["D20"] = "Fallout Pen and Paper d20",
	["FB"] = "Biblia de Fallout",
	["FBG"] = "Fallout: The Board Game",
	["FBGWW"] = "Fallout: Wasteland Warfare",
	["FILM"] = "Fallout (película)",
	["FNV"] = "Fallout: New Vegas",
	["FNVGRA"] = "Gun Runners' Arsenal",
	["FNVCS"] = "Courier's Stash",
	["FNVDM"] = "Dead Money",
	["FNVHH"] = "Honest Hearts",
	["FNVOWB"] = "Old World Blues (complemento)",
	["FNVLR"] = "Lonesome Road (complemento)",
	["FO"] = "Fallout",
	["FO1"] = "Fallout",
	["FO2"] = "Fallout 2",
	["FO3"] = "Fallout 3",
	["FO3OA"] = "Operation: Anchorage",
	["FO3TP"] = "The Pitt",
	["FO3BS"] = "Broken Steel",
	["FO3PL"] = "Point Lookout (complemento)",
	["FO3MZ"] = "Mothership Zeta",
	["FO4"] = "Fallout 4",
	["FO4AUT"] = "Automatron (complemento)",
	["FO4WW"] = "Wasteland Workshop",
	["FO4FH"] = "Far Harbor (complemento)",
	["FO4CW"] = "Contraptions Workshop",
	["FO4VW"] = "Vault-Tec Workshop",
	["FO4NW"] = "Nuka-World (complemento)",
	["FO4VR"] = "Fallout 4 VR",
	["FO4CC"] = "Creation Club",
	["FO76"] = "Fallout 76",
	["FO76WA"] = "Wild Appalachia",
	["FO76NW"] = "Nuclear Winter",
	["FO76WL"] = "Wastelanders",
	["FOBOS"] = "Fallout: Brotherhood of Steel",
	["FOBOS2"] = "Fallout: Brotherhood of Steel 2",
	["FOS"] = "Fallout Shelter",
	["FOT"] = "Fallout Tactics",
	["FOT2"] = "Fallout Tactics 2",
	["FOX"] = "Fallout Extreme",
	["FOW"] = "Fallout: Warfare",
	["JES"] = "RPG de Fallout de J.E. Sawyer",
	["LH"] = "Lionheart",
	["PA"] = "Un hombre, y una caja de marionetas",
	["PV13"] = "Project V13",
	["TAR"] = "Project V13",
	["FOOL"] = "Project V13",
	["TORN"] = "TORN",
	["VB"] = "Van Buren",
	["FONADA"] = " ", -- Constante dummy
}
 
-- ====================
-- Buscar un título corto y sin desambiguación
-- ====================
function stitle(game)
	local result = games[game]
	if game ~= "FILM" then
		result = result:gsub('%s%(.*', '')
	end
	return result
end
 
-- ====================
-- Esta función, links, es para los enlaces ordinarios dentro del cuerpo de
-- una infobox. Así que si lo que quieres devolver es [[Fallout 4]], entonces
-- la sintáxis es:
--		{{#invoke:Juegos|links|{{{juegos|}}}}}
-- Especificando un segundo argumento devuelve el texto en cursiva:
--		{{#invoke:Juegos|links|{{{juegos|}}}|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" or game:lower() == "no" or game:lower() == "ninguno" 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
 
-- ====================
-- Esta función, mencionado, es para los enlaces ordinarios dentro del cuerpo de
-- una infobox, si se ingresa en "Juegos": "no", "none" o "ninguno", devolverá
-- "Solo mencionado" sin cursiva y enlace.
-- Así que si lo que quieres devolver es [[Fallout 4]], entonces
-- la sintáxis es:
--		{{#invoke:Juegos|mencionado|{{{juegos|}}}}}
-- Especificando un segundo argumento devuelve el texto en cursiva:
--		{{#invoke:Juegos|mencionado|{{{juegos|}}}|1}}
-- ====================
function p.mencionado(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" or game:lower() == "no" or game:lower() == "ninguno" then
			result = 'Solo mencionado'
		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
	    if result == "Solo mencionado" then
	        return "" .. result .. ""
	    else
	        return "''" .. result .. "''"
	    end
	else
		return result
	end
end
 
-- ====================
-- Pequeña función para invertir los resultados de "ipairs"
-- ====================
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 es una función que inserta genéricamente un enlace en un supertítulo.
-- Simplemente a la página de juego en sí o a una página más específica.
--
-- {{#invoke:Juegos|title|FO4}} da [[Fallout 4|Fallout 4]]
-- {{#invoke:Juegos|title|FO4|armas de}} resulta en [[Armas de Fallout 4|Fallout 4]]
-- {{#invoke:Juegos|title|FO4|armas de|armas de}} resulta en [[Armas de Fallout 4|Armas de 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" or game:lower() == "no" or game:lower() == "ninguno" then
			result = 'solo 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 == #r then
				text = frame.args[3] .. ' ' .. text
			end
--			result = result .. '[[' .. link .. '|' .. text .. ']]'
			result =  '[[' .. link .. '|' .. text .. ']]'.. result
			if n ~= #r then
--				result = result .. ' / '
				result = ' / '.. result
			end
		end
	end
	return result
end
 
return p
 
--</nowiki>
El contenido de la comunidad está disponible bajo CC-BY-SA a menos que se indique lo contrario.