Tritt unserem Discord bei und informiere dich auf unserem Twitter-Kanal über die aktuellsten Themen rund um Fallout!
Die Dokumentation für dieses Modul kann unter Modul:Abb/Doku erstellt werden
-- Quelle: https://fallout.fandom.com/wiki/Module:Abb
local p = {}
local util = require( 'Modul:Util' )
local gameList = {
AR = {
icon = "Gametitle-AR.png",
title = "All Roads",
short = "All Roads"
},
D20 = {
icon = "Gametitle-D20.png",
title = "Fallout Pen and Paper d20",
link = "Fallout d20",
short = "Fallout d20"
},
FB = {
icon = "Gametitle-FB.png",
title = "Fallout Bible"
},
FBG = {
icon = "Gametitle-FBG.png",
title = "Fallout: The Board Game"
},
FBGNC = {
icon = "Gametitle-FBGNC.png",
title = "Fallout: New California"
},
FBGWW = {
icon = "Gametitle-FBGWW.png",
title = "Fallout: Wasteland Warfare",
},
FILM = {
icon = "Film.png",
title = "Fallout (Film)"
},
FNV = {
icon = "Gametitle-FNV.png",
title = "Fallout: New Vegas"
},
FNVCS = {
icon = "Gametitle-FNV_CS.png",
title = "Courier's Stash"
},
FNVDM = {
icon = "Gametitle-FNV_DM.png",
title = "Dead Money"
},
FNVGRA = {
icon = "Gametitle-FNV_GRA.png",
title = "Gunn Runners' Arsenal"
},
FNVHH = {
icon = "Gametitle-FNV_HH.png",
title = "Honest Hearts"
},
FNVLR = {
icon = "Gametitle-FNV_LR.png",
title = "Lonesome Road (Add-on)",
link = "Lonesome Road",
short = "Lonesome Road"
},
FNVOWB = {
icon = "Gametitle-FNV_OWB.png",
title = "Old World Blues (Add-on)",
link = "Old World Blues",
short = "Old World Blues"
},
FO4 = {
icon = "Gametitle-FO4.png",
title = "Fallout 4",
},
FO4AUT = {
icon = "Gametitle-FO4_AUT.png",
title = "Automatron (Add-on)",
link = "Automatron",
short = "Automatron"
},
FO4WW = {
icon = "Gametitle-FO4_WW.png",
title = "Wasteland Workshop"
},
FO4FH = {
icon = "Gametitle-FO4_FH.png",
title = "Far Harbor (Add-on)",
link = "Far Harbor",
short = "Far Harbor"
},
FO4CW = {
icon = "Gametitle-FO4_CW.png",
title = "Contraptions Workshop"
},
FO4VW = {
icon = "Gametitle-FO4_VW.png",
title = "Vault-Tec Workshop"
},
FO4NW = {
icon = "Gametitle-FO4_NW.png",
title = "Nuka-World (Add-on)",
link = "Nuka-World",
short = "Nuka-World"
},
FO4VR = {
icon = "Gametitle-FO4VR.png",
title = "Fallout 4 VR"
},
FO4CC = {
icon = "Gametitle-FO4_CC.png",
title = "Creation Club"
},
FOS = {
icon = "Gametitle-FOS.png",
title = "Fallout Shelter",
},
FOSO = {
icon = "Gametitle-FOSO.png",
title = "Fallout Shelter Online",
},
FPB = {
icon = "Gametitle-FPB.png",
title = "Fallout Pip-Boy"
},
FO = {
icon = "Gametitle-FO1.png",
title = "Fallout"
},
FO1 = {
icon = "Gametitle-FO1.png",
title = "Fallout"
},
FO2 = {
icon = "Gametitle-FO2.png",
title = "Fallout 2"
},
FO3 = {
icon = "Gametitle-FO3.png",
title = "Fallout 3"
},
FO3BS = {
icon = "Gametitle-FO3_BS.png",
title = "Broken Steel"
},
FO3MZ = {
icon = "Gametitle-FO3_MZ.png",
title = "Mothership Zeta (Add-on)",
link = "Mothership Zeta",
short = "Mothership Zeta"
},
FO3OA = {
icon = "Gametitle-FO3_OA.png",
title = "Operation: Anchorage (Add-on)",
link = "Operation: Anchorage",
short = "Operation: Anchorage"
},
FO3PL = {
icon = "Gametitle-FO3_PL.png",
title = "Point Lookout (Add-on)",
link = "Point Lookout",
short = "Point Lookout"
},
FO3TP = {
icon = "Gametitle-FO3_TP.png",
title = "The Pitt (Add-on)",
link = "The Pitt",
short = "The Pitt"
},
FO76 = {
icon = "Gametitle-FO76.png",
title = "Fallout 76",
link = "Fallout 76"
},
FO76WA = {
icon = "Gametitle-FO76_WA.png",
title = "Wild Appalachia"
},
FO76NW = {
icon = "Gametitle-FO76_NW.png",
title = "Nuclear Winter",
link = "Nuclear Winter"
},
FO76WL = {
icon = "Gametitle-FO76_WL.png",
title = "Wastelanders"
},
FO76LR = {
icon = "Gametitle-FO76_LR.png",
title = "Das legendäre Rennen (Update)",
link = "Das legendäre Rennen",
short = "Das legendäre Rennen"
},
FO76OW = {
icon = "Gametitle-FO76_One_Wasteland.png",
title = "Ein Ödland für alle"
},
FO76FS = {
icon = "Gametitle-FO76_Steel Dawn.png",
title = "Stählerne Dämmerung",
link = "Stählerne Dämmerung"
},
FO76SD = {
icon = "Gametitle-FO76_Steel Dawn.png",
title = "Stählerne Dämmerung",
link = "Stählerne Dämmerung"
},
FO76LL = {
icon = "Gametitle-FO76_Locked n Loaded.png",
title = "Geladen und Entsichert"
},
FO76SR = {
icon = "Gametitle-FO76_Steel Reign.png",
title = "Stählerne Herrschaft",
link = "Stählerne Herrschaft"
},
FO76FW = {
icon = "Gametitle-FO76 FW.png",
title = "Fallout Worlds",
link = "Fallout Worlds"
},
FO76NM = {
icon = "Gametitle-FO76 NM.png",
title = "Nacht der Motte",
link = "Nacht der Motte"
},
FO76IB = {
icon = "Gametitle-FO76 IB.png",
title = "Angreifer aus dem All (Update)",
link = "Angreifer aus dem All",
short = "Angreifer aus dem All"
},
FO76TM = {
icon = "Gametitle-FO76 TM.png",
title = "Härteprüfung (Update)",
link = "Härteprüfung",
short = "Härteprüfung"
},
FO76TP = {
icon = "Gametitle-FO76 TP.png",
title = "Expeditionen: The Pitt",
link = "Expeditionen: The Pitt"
},
FO76NT = {
icon = "Gametitle-FO76 NT.png",
title = "Nuka-World on Tour (Update)",
link = "Nuka-World on Tour",
short = "Nuka-World on Tour"
},
FO76MI = {
icon = "Gametitle-FO76MI.png",
title = "Mutations-Invasion",
link = "Mutations-Invasion"
},
FO76OB = {
icon = "Gametitle-FO76 OB.png",
title = "Wenn die Sterne günstig stehen",
link = "Wenn die Sterne günstig stehen"
},
FO76AC = {
icon = "Gametitle-FO76 AC.png",
title = "Expeditionen: Atlantic City",
link = "Expeditionen: Atlantic City"
},
FO76BP = {
icon = "Gametitle-FO76 AC.png",
title = "Boardwalk Paradise",
link = "Boardwalk Paradise"
},
FO76AP = {
icon = "Gametitle-FO76 AC.png",
title = "America's Playground",
link = "America's Playground"
},
FO76SV = {
icon = "Gametitle-FO76 SV.png",
title = "Skyline Valley (Update)",
link = "Skyline Valley",
short = "Skyline Valley"
},
FO76MZ = {
icon = "Gametitle-FO76 MZ.png",
title = "Meilenstein Null (Update)",
link = "Meilenstein Null",
short = "Meilenstein Null"
},
FO76GD = {
icon = "Gametitle-FO76.png",
title = "Gleaming Depths (Update)",
link = "Gleaming Depths",
short = "Gleaming Depths"
},
FOBOS = {
icon = "Gametitle-FOBOS.png",
title = "Fallout: Brotherhood of Steel",
link = "Fallout: Brotherhood of Steel",
short = "Fallout: BoS"
},
FOBOS2 = {
icon = "Gametitle-FOBOS2.png",
title = "Fallout: Brotherhood of Steel 2",
link = "Fallout: Brotherhood of Steel 2",
short = "Fallout: BoS 2"
},
FOOL = {
icon = "PV13.png",
title = "Project V13"
},
PV13 = {
icon = "PV13.png",
title = "Project V13"
},
FOT = {
icon = "Gametitle-FOT.png",
title = "Fallout Tactics: Brotherhood of Steel",
link = "Fallout Tactics",
short = "Fallout Tactics"
},
FOT2 = {
icon = "Gametitle-FOT2.png",
title = "Fallout Tactics 2"
},
FOW = {
icon = "Gametitle-FOW.png",
title = "Fallout: Warfare"
},
FOX = {
icon = "Gametitle-FOX.png",
title = "Fallout Extreme"
},
FOWW = {
icon = "Gametitle-FWW.png",
title = "Fallout: Wasteland Warfare"
},
FORPG = {
icon = "Gametitle-2D20.png",
title = "Fallout: The Roleplaying Game",
},
FORPGWOA = {
icon = "Gametitle-2D20.png",
title = "Winter of Atom",
},
JES = {
icon = "Gametitle-JES.png",
title = "J.E. Sawyer's Fallout RPG",
short = "JES Fallout RPG"
},
LH = {
icon = "Gametitle-LH.png",
title = "Lionheart"
},
PA = {
icon = "Penny Arcade.gif",
title = "One Man, and a Crate of Puppets",
short = "Penny Arcade"
},
TAR = {
icon = "Gametitle-TAR.jpg",
title = "The Armageddon Rag",
short = "Armageddon Rag"
},
TORN = {
icon = "Gametitle-TORN.png",
title = "TORN"
},
VB = {
icon = "Gametitle-VB.png",
title = "Van Buren"
},
WIKI = {
icon = "Gametitle-Wiki.png",
title = "Fallout Wiki:Über",
short = "Fallout Wiki"
},
NONE = {
title = "mentioned-only"
},
RW = {
title = "real world"
},
FOF = {
icon = "Gametitle-FOF.png",
title = "Fallout: Factions",
},
FOTV = {
title = "Fallout (Fernsehserie)",
link = "Fallout-Fernsehserie",
short = "Fallout-Fernsehserie"
},
FTV = {
title = "Fallout (Fernsehserie)",
link = "Fallout-Fernsehserie",
short = "Fallout-Fernsehserie"
}
}
function setTable(keys)
if string.len(tostring(keys)) > 0 then
result = mw.text.split(keys, ",")
else
result = nil
end
return result
end
function _valid(games)
local keys = setTable(games)
for k, v in ipairs(keys) do
if gameList[v] ~=nil then
return true
end
end
return false
end
function p.i_valid(games)
return _valid(games)
end
function p.validation(frame)
return _valid(frame.args['games'])
end
function icon(frame)
local fileCount = 1
local fileOut = ""
while fileCount <= abbLength do
currentFile = string.upper(abbGames[fileCount])
currentFile = abbIcon[currentFile]
if currentFile ~= nil then
fileOut = fileOut .. currentFile
end
fileCount = fileCount + 1
end
return fileOut
end
function _category(keys, category, prepend, append, mode, sortkey)
local keys = setTable(keys)
local result = ""
if util.exists(keys) then
for k, v in ipairs(keys) do
local currentCat = nil
if util.exists(gameList[v].link) then
currentCat = gameList[v].link
else
currentCat = gameList[v].title
end
result = result .. "[[Kategorie:"
if util.exists(mode) and string.lower(mode) == "append" then
result = result .. string.lower(category) .. " "
if util.exists(prepend) then
result = result .. prepend
end
result = result .. currentCat
if util.exists(append) then
result = result .. append
end
else
result = result .. currentCat .. " "
if util.exists(prepend) then
result = result .. " " .. prepend
end
result = result .. category
if util.exists(append) then
result = result .. append
end
end
if util.exists(sortKey) then
result = result .. "|" .. sortKey
end
result = result .. "]]"
end
else
result = "[[Kategorie:" .. category
if exists(sortKey) then
result = result .. "|" .. sortKey
end
result = result .. "]]"
end
return result
end
function p.i_category(games, category, prepend, append, mode, sortkey)
return _category(games, category, prepend, append, mode, sortkey)
end
function p.category(frame)
local keys = setTable(frame.args['games'])
local category = frame.args['category']
local prepend = frame.args['prepend']
local append = frame.args['append']
local mode = frame.args['mode']
local sortKey = frame.args['sort key']
local i = 1
local result = ""
if keys ~= nil then
while i <= table.getn(keys) do
local currentCat = nil
currentCat = keys[i]
if gameList[currentCat]['link'] ~= nil then
currentCat = gameList[currentCat]['link']
else
currentCat = gameList[currentCat]['title']
end
result = result .. "[[Kategorie:"
if string.lower(mode) == "append" then
result = result .. string.lower(category) .. " "
if prepend ~= nil then
result = result .. prepend
end
result = result .. currentCat
if append ~= nil then
result = result .. append
end
else
result = result .. currentCat .. " "
if prepend ~= nil then
result = result .. " " .. prepend
end
result = result .. category
if append ~= nil then
result = result .. append
end
end
if sortKey ~= nil and string.len(sortKey) ~= 0 then
result = result .. "|" .. sortKey
end
result = result .. "]]"
i = i + 1
end
else
result = "[[Kategorie:" .. category
if sortKey ~= nil and string.len(sortKey) ~= 0 then
result = result .. "|" .. sortKey
end
result = result .. "]]"
end
return result
end
function p.abb(frame)
if frame.args[2] ~= nil then
mode = string.lower(frame.args[2])
end
local games = string.upper(tostring(frame.args[1]))
games = mw.text.split(games, ",")
length = table.getn(games)
if mode == "link" or mode == "text" or mode == "short" or mode == nil then
result = abbOnly(games, mode, length)
end
if mode == "cat" then
abbCatName = frame.args[3]
abbAppend = frame.args[4]
abbPrepend = frame.args[5]
abbCatMode = frame.args[6]
abbSort = frame.args[7]
result = abbCategory(games, length, abbCatName, abbAppend, abbPrepend, abbCatMode, abbSort)
end
if mode == "icon" then
result = abbFile(games, length)
end
return result
end
function p.documentation()
keys = {}
for k in pairs(gameList) do
table.insert(keys, k)
end
table.sort(keys)
result = '{| class="va-table va-table-full"\n|-\n !Abbreviation!!text/title!!short!!link!!icon\n|-\n'
for k,v in ipairs(keys) do
result = result .. '|' .. v .. '||' .. gameList[v].title .. '||'
if _valid(gameList[v].short) ~= nil then
result = result .. gameList[v].short
else
result = result .. gameList[v].title
end
result = result .. '||'
if _valid(gameList[v].link) ~= nil then
result = result .. gameList[v].link
else
result = result .. gameList[v].title
end
result = result .. '||' .. '[[Datei:' .. gameList[v].icon .. '|x40px]]\n|-\n'
end
result = result .. '\n|}'
return result
end
return p