Module:Infobox/Quête

De Les Archives de Vault-Tec
Documentation du module

Ce module contient le paramétrage de l'infobox {{Infobox quête}}.

Documentation transclues de Module:Infobox/Quête/doc.
local localdata = require('Module:Infobox/Localdata')


--------------------------------------------------------
-----         Calcul des champs à afficher         -----
--------------------------------------------------------

-- Succès
function buildSuccess(localdata)
	local success = nil
	local icon = require('Module:Icône')
	
	if localdata['achèvement'] then
		success = localdata['achèvement']
	end

	if localdata['gamerscore'] or localdata['type trophée'] then
		if success == nil then
			success = mw.title.getCurrentTitle().text
		end
		
		success = success ..'<div style="float:right;padding-left:15px;position:relative;white-space:nowrap;">'
		
		if localdata['gamerscore'] then
			success = success ..'<span style="padding-left:4px;">'.. icon._build({ 'gamerscore' }) ..'</span>'
			success = success ..'<span style="padding-left: 2px;position:relative;top:1px;">'.. localdata['gamerscore'] ..'</span>'
		end
		
		if localdata['type trophée'] then
			success = success ..'<span style="padding-left:4px;">'.. icon._build({ 'trophéeps3' }) ..'</span>'
			success = success ..'<span style="padding-left: 2px;position:relative;top:1px;">'.. localdata['type trophée'] ..'</span>'
		end
		
		success = success..'</div>'
	end
	
	return success
end

-- Sujet
function buildSubject(localdata)
	local subject
	local questType = localdata['type']
	
	if questType then
		local types = {
			['principale']  = 'Quête principale',
			['répétable']   = 'Quête répétable',
			['annexe']      = 'Quête annexe',
			['secondaire']  = 'Quête secondaire',
			['quotidienne'] = 'Quête quotidienne',
			['non marquée'] = 'Quête non marquée',
			['aléatoire']   = 'Quête aléatoire',
			-- Opération
			['opération']   = 'Opération quotidienne',
			-- Évènement
			['évènement']   = 'Évènement',
			['public']      = 'Évènement public',
			['saisonnier']  = 'Évènement saisonnier'
		}
		subject = types[questType:lower()] or 'Quête'
	else
		subject = 'Quête'
	end
	
	return subject
end

-- Lien
function buildLink(localdata)
	local link = 'Quêtes'
	local questType = localdata['type']
	
	if questType then
		questType = questType:lower()
		if questType == 'opération' then
			link = 'Opérations quotidiennes'
		elseif questType == 'évènement' or questType == 'public'
				or questType == 'saisonnier' then
			link = 'Évènements'
		end
	end
	
	return link
end

--------------------------------------------------------
-----          Construction de l'infobox           -----
--------------------------------------------------------

return {
	parts = {
		{ type = 'title', value = 'nom', subtitle = 'sous-titre', icon = 'icône', subhead = { games = 'jeux', subject = buildSubject(localdata), link = buildLink(localdata) }},
		{ type = 'images', imageparameters = { 'image', 'image2', 'image3', 'image4', 'image5' }, captionparameter = { 'légende', 'image desc' }},
		{ type = 'table', title = 'Informations', rows = {
			{ type = 'row', label = 'Lieu', value = 'lieu' },
			{ type = 'row', label = 'Lieu de fin', value = 'lieu de fin' },
			{ type = 'row', label = 'Donnée par', value = 'donneur' },
			{ type = 'row', label = 'Faction', value = 'faction' },
			{ type = 'row', label = 'Autres PNJ', value = { 'autres pnj', 'autres pnjs' } },
			{ type = 'row', label = 'Récompenses', value = 'récompenses' },
			{ type = 'row', label = 'Succès', value = function (localdata) return buildSuccess(localdata) end },
		}},
		{ type = 'table', title = 'Technique', rows = {
			{ type = 'row', label = 'Editor ID', value = 'editorid' },
			{ type = 'row', label = '[[Form ID]]', value = 'formid' }
		}},
		{ type = 'table', title = 'Quêtes associées', rows = {
			{ type = 'succession', value = {
				before = function(localdata) return localdata['précédente'] end,
				after  = function(localdata) return localdata['suivante'] end
			}},
			{ type = 'row1col', value = { 'relative', 'associée' } }
		}},
		{ type = 'images', imageparameters = 'animation', defaultcaption = 'Animation de la quête' },
		{ type = 'text', value = 'pied' }
	}
}