Module:Fiche de créature/Fallout: New Vegas

De Les Archives de Vault-Tec
Documentation du module

Ce module contient la structure du modèle {{Fiche de créature de Fallout: New Vegas}}.

local localdata = require( 'Module:Infobox/Localdata' )
local tooltip = require( 'Module:Infobulle' )

function rd(localdata)
	local rd = localdata['rd']
	if rd ~= nil then
		rd = rd .. ' %'
	end
end

function formatcomportement(tag, label)
	return tooltip._build({ tag, label })
end

function agressivite(localdata)
	agressivite_lookup = {
		['0'] = { tag = "Non agressif", label = "N'engage pas les affrontements." },
		['1'] = { tag = "Agressif", label = "Attaque les ennemis à vue." },
		['2'] = { tag = "Très agressif", label = "Attaque les ennemis et les créatures neutres à vue." },
		['3'] = { tag = "Frénétique", label = "Attaque n'importe qui à vue." }
	}
	local agressivite = localdata["agressivité"] or '0'
	agressivite = agressivite_lookup[agressivite] or agressivite_lookup['0']
	return formatcomportement(agressivite.tag, agressivite.label)
end

function assurance(localdata)
	assurance_lookup = {
		['0'] = { tag = "Lâche", label = "Fuit ou évite les affrontements." },
		['1'] = { tag = "Prudent", label = "Fuit ou évite les menaces plus faibles que lui." },
		['2'] = { tag = "Normal", label = "Fuit ou évite les menaces plus fortes que lui." },
		['3'] = { tag = "Courageux", label = "Fuit ou évite les affrontements s'il est sévèrement dépassé." },
		['4'] = { tag = "Téméraire", label = "Ne fuit ou n'évite jamais les affrontements." }
	}
	local assurance = localdata["assurance"] or '0'
	assurance = assurance_lookup[assurance] or assurance_lookup['0']
	return formatcomportement(assurance.tag, assurance.label)
end

function assistance(localdata)
	assistance_lookup = {
		['0'] = { tag = "N'aide personne", label = "N'aide personne lors des affrontements." },
		['1'] = { tag = "Aide les alliés", label = "Aide les alliés lors des affrontements." },
		['2'] = { tag = "Aide les amis", label = "Aide les amis et les alliés lors des affrontements." }
	}
	local assistance = localdata["assistance"] or '0'
	assistance = assistance_lookup[assistance] or assistance_lookup['0']
	return formatcomportement(assistance.tag, assistance.label)
end

return {
	parts = {
		{ type = "table", rows = {
			{ type = "row", label = "Nom", icon = "test", value = "nom" },
			{ type = "row", label = "[[Form ID|Base ID]]", icon = "test", value = "baseid" },
			{ type = "row", label = "[[Niveau]]", icon = "niveau", value = "niveau" },
			{ type = "row", label = "[[Points d'expérience]]", icon = "xp", value = "xp" },
			{ type = "row", label = "[[Perception]]", icon = "oeil", value = "perception" },
			{ type = "row", label = "[[Points de vie]]", icon = "pv", value = "pv" },
			{ type = "row", label = "[[Seuil de dégâts]]", icon = "sd", value = "sd" },
			{ type = "row", label = "[[Résistance aux dégâts]]", icon = "rd", value = function(localdata) return rd(localdata) end }
		}},
		{ type = "table", title = "[[Attributs de l'IA Gamebryo|Comportement]]", rows = {
			{ type = "row", label = "Agressivité", icon = "poing", value = function(localdata) return agressivite(localdata) end },
			{ type = "row", label = "Assurance", icon = "confiance", value = function(localdata) return assurance(localdata) end },
			{ type = "row", label = "Assistance", icon = "groupe", value = function(localdata) return assistance(localdata) end }
		}},
		{ type = "list", title = "Attaques", items = {
			{ type = "item", value = "attaque1" },
			{ type = "item", value = "attaque2" },
			{ type = "item", value = "attaque3" },
			{ type = "item", value = "attaque4" },
			{ type = "item", value = "attaque5" }
		}},
		{ type = "list", title = "Capacités", items = {
			{ type = "item", value = "capacité1" },
			{ type = "item", value = "capacité2" },
			{ type = "item", value = "capacité3" },
			{ type = "item", value = "capacité4" },
			{ type = "item", value = "capacité5" }
		}},
		{ type = "list", title = "Objets", items = {
			{ type = "item", value = "objet1" },
			{ type = "item", value = "objet2" },
			{ type = "item", value = "objet3" },
			{ type = "item", value = "objet4" },
			{ type = "item", value = "objet5" }
		}}
	}
}