×
Einen neuen Artikel erstellen
Schreibe den Seitennamen hierhin:
Wir haben derzeit 9.325 Artikel auf VAULTPEDIA. Gib deinen Artikelnamen oberhalb von oder klicke auf einen der unten stehenden Titel und beginne zu schreiben! ein



    VAULTPEDIA
    9.325Artikel

    VAULTPEDIA.DE ist seit dem 02.02.2026 öffentlich zugänglich.

    Da es sich um ein frisch migriertes Wiki handelt, können vereinzelt noch Datenbank-, Seiten- oder Designfehler auftreten.

    Tritt unserem Discord bei, um Fehler zu melden oder direkt mit dem Team in Kontakt zu treten.

    Die Dokumentation für dieses Modul kann unter Modul:Games/Doku erstellt werden

    --<nowiki>
    
    local p = {}
    
    local games = {
        ["AR"] = "All Roads",
        ["D20"] = "Fallout Pen & Paper d20",
        ["FB"] = "Fallout Bible",
        ["FBG"] = "Fallout: The Board Game",
        ["FBGNC"] = "Fallout: New California",
        ["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",
        ["FO76"] = "Fallout 76",
        ["FO76WA"] = "Wild Appalachia",
        ["FO76NW"] = "Nuclear Winter",
        ["FO76WL"] = "Wastelanders",
        ["FO76LR"] = "Das legendäre Rennen (Update)",
        ["FO76OW"] = "Ein Ödland für alle",
        ["FO76FS"] = "Stählerne Dämmerung",
        ["FO76SD"] = "Stählerne Dämmerung",
        ["FO76LL"] = "Geladen und entsichert",
        ["FO76SR"] = "Stählerne Herrschaft",
        ["FO76FW"] = "Fallout Worlds (Update)",
        ["FO76IB"] = "Angreifer aus dem All (Update)",
        ["FO76NM"] = "Nacht der Motte",
        ["FO76TM"] = "Härteprüfung (Update)",
        ["FO76TP"] = "Expeditionen: The Pitt",
        ["FO76NT"] = "Nuka-World on Tour (Update)",
        ["FO76NWOT"] = "Nuka-World on Tour (Update)",
        ["FO76MI"] = "Mutations-Invasion",
        ["FO76OB"] = "Wenn die Sterne günstig stehen",
        ["FO76AC"] = "Expeditionen: Atlantic City",
        ["FO76BP"] = "AC Boardwalk Paradise",
        ["FO76AP"] = "AC America's Playground",
        ["FO76SV"] = "Skyline Valley (Update)",
        ["FO76MZ"] = "Meilenstein Null (Update)",
        ["FO76GD"] = "Strahlende Tiefen (Update)",
        ["FO76GW"] = "Der innere Ghul",
        ["FO76GF"] = "Gone Fission (Update)",
        ["FO76CR"] = "C.A.M.P.-Sanierung",
        ["FO76CAMP"] = "C.A.M.P.-Sanierung",
        ["FO76BS"] = "Burning Springs (Update)",
        ["FO76HL"] = "Das Hinterland",
        ["FO76BW"] = "Das Hinterland",
        ["FOBOS"] = "Fallout: Brotherhood of Steel",
        ["FOBOS2"] = "Fallout: Brotherhood of Steel 2",
        ["FORPG"] = "Fallout: Das Rollenspiel",
        ["2D20"] = "Fallout: Das Rollenspiel",
        ["FORPGWOA"] = "Winter des Atoms",
        ["FOS"] = "Fallout Shelter",
        ["FOSO"] = "Fallout Shelter Online",
        ["FOT"] = "Fallout Tactics",
        ["FOT2"] = "Fallout Tactics 2",
        ["FOTV"] = "Fallout (Fernsehserie)",
        ["FTV"] = "Fallout (Fernsehserie)",
        ["FOW"] = "Fallout: Warfare",
        ["FOX"] = "Fallout Extreme",
        ["FWW"] = "Fallout: Wasteland Warfare",
        ["FOWW"] = "Fallout: Wasteland Warfare",
        ["FOF"] = "Fallout: Factions",
        ["JES"] = "J.E. Sawyer's Fallout RPG",
        ["LH"] = "Lionheart",
        ["PA"] = "One Man, and a Crate of Puppets",
        ["PV13"] = "Project V13",
        ["TAR"] = "Project V13",
        ["VB"] = "Van Buren",
    }
    
    -- look up short title without disambig
    function stitle(game)
        local result = games[game] or game
        if game == "FILM" or game == "FNVOWB" or game == "FNVLR" or game == "FO3OA" or game == "FO3TP" or game == "FO3PL" or game == "FO3MZ" or game == "FO4AUT" or game == "FO4FH" or game == "FO4NW" or game == "FO76LR" or game == "FO76FW" or game == "FO76IB" or game == "FO76NT" or game == "FO76TM" or game == "FO76NWOT" or game == "FO76SV" or game == "FO76MZ" or game == "FO76GD" or game == "FO76GW" or game == "FO76GF" or game == "FO76CAMP" or game == "FO76CR" or game == "FO76BS" or game == "FO76HL" or game == "FO76BW" then
            result = result:gsub('%s%(.*', '')
        end
    	
        if game == "FOTV" or game == "FTV" then
    	
        	result = result:gsub(".*%((.*)%)", "%1")
        end
        return result
    end
    
    -- ====================
    -- Diese Funktion, links, ist für gewöhnliche Links innerhalb des 
    -- Inhalts einer Infobox gedacht. Wenn du nur [[Fallout 4]] 
    -- zurückgeben möchtest, dann verwende die Syntax:
    --        {{#invoke:Games|links|{{{games|}}}}}
    -- Die Angabe eines zweiten Arguments gibt den Text kursiv zurück:
    --        {{#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 == "" or game == "-" or game:lower() == "none" or game:lower() == "kein" 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
    
    -- ====================
    -- Diese Funktion, title, generiert generisch Links für den Supertitel.
    -- Entweder nur zur Spielseite selbst oder zu einer spezifischeren Seite.
    --
    -- {{#invoke:Games|title|FO4}} gibt einfach [[Fallout 4|Fallout 4]]
    -- {{#invoke:Games|title|FO4|Waffen}} ergibt [[Waffen (Fallout 4)|Fallout 4]]
    -- {{#invoke:Games|title|FO4|Waffen|Waffe}} ergibt [[Waffen (Fallout 4)|Fallout 4: Waffe]]
    -- ====================
    
    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 == "-" or game:lower() == "none" or game:lower() == "kein" then
                result = 'erwähnt' 
                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 = text .. ': ' .. frame.args[3]
                end 
                result = result .. '[[' .. link .. '|' .. text .. ']]'
                if n ~= #game_list then
                    result = result .. ' / '
                end
            end
        end
     
        return result
    end
    
    -- ====================
    -- Kategorie: Gibt den Kategorie-Wikicode zurück, außer er befindet sich auf der Seite, die ihn aufgerufen hat.
    -- ====================
    function p.kategorie(frame)
        local result = ''
        local game_list = mw.text.split(frame.args[1] or "", "%s*,%s*")
    
        if frame.args[2] then
            local currTitle = mw.title.getCurrentTitle()
            local parentTitle = mw.title.new(frame:getParent():getTitle())
    
    		-- Vorlage kategorisiert sich selbst
            if parentTitle.prefixedText == currTitle.prefixedText then
                return "[[Kategorie:Vorlagen mit Autokategorisierung]]"
            end
    
            -- Keine Kategorisierung auf Unterseiten
            if currTitle:isSubpageOf(parentTitle) then
                return ''
            end
                
            local ignore = {
        		none = true,
        		nein = true,
        		kein = true,
        		["-"] = true,
        		["–"] = true,
        		["—"] = true,
    		}
    		
    		local spielvorhanden = false
    			
            for _, game in ipairs(game_list) do
                local trimmed = mw.text.trim(game)
                local g = trimmed:lower()
                
        			
        		-- ignorieren, wenn Platzhalterwert
        		if trimmed ~= "" and not ignore[g] then
                    local entry = games[trimmed]
        			
        			if entry then
            			if g == "fotv" then
                            trimmed = "Fallout (Fernsehserie)"
            			end
                        result = result .. '[[Kategorie:' .. stitle(trimmed) .. ': ' .. frame.args[2] .. ']]'
                    else
                        -- Fallback: nur Hauptkategorie
                        result = result .. '[[Kategorie:' .. frame.args[2] .. ']]'
        			end
                    spielvorhanden = true
                end
            end
            
            -- Wenn kein Spiel hinzugefügt wurde, Hauptkategorie setzen
            if not spielvorhanden then
                result = '[[Kategorie:' .. frame.args[2] .. ']]'
            end
        end
    
        return result
    end
    
    return p
    
    --</nowiki>