« Module:Infobox/Personnage » : différence entre les versions

De Starfield Wiki
Page créée avec « local general = require("Module:Infobox/Fonctions") local localdata = require("Module:Infobox/Localdata") -- Date à laquelle se déroule le jeu REFERENCE_DATE = 2330 -- Cherche une année écrite sur 4 chiffres dans une date et la retourne function get_year(a_date) if a_date == nil then return nil end year_i, year_j = string.find(a_date, "%d%d%d%d") if year_i == nil then return nil end return tonumber(string.sub(a_date, year_i, year_j)) end -- Déte... »
 
Aucun résumé des modifications
 
(4 versions intermédiaires par le même utilisateur non affichées)
Ligne 19 : Ligne 19 :
-- Détermination de l'âge du personnage en fonction des dates de naissance
-- Détermination de l'âge du personnage en fonction des dates de naissance
-- et de mort. Si le paramètre "âge" est renseigné, alors il fait foi.
-- et de mort. Si le paramètre "âge" est renseigné, alors il fait foi.
local age = localdata["âge"]
local calculated_age
if age == nil then
if localdata["âge"] == nil then
birth_year = get_year(localdata["naissance"])
local birth_year = get_year(localdata["naissance"])
death_date = get_year(localdata["mort"])
local death_year = get_year(localdata["mort"])
age = (death_year or REFERENCE_DATE) - birth_year
if birth_year ~= nil then
calculated_age = tostring((death_year or REFERENCE_DATE) - birth_year)
end
end
end


Ligne 29 : Ligne 31 :
-- l'âge si elle est connue et si le personnage n'est pas mort.
-- l'âge si elle est connue et si le personnage n'est pas mort.
format_birth = function(localdata)
format_birth = function(localdata)
birth = localdata["naissance"]
local birth = localdata["naissance"]
death = localdata["mort"]
local death = localdata["mort"]
if death == nil and age ~= nil then
local age = localdata["âge"]
return string.format("%s (%d ans)", birth, age)
if death == nil then
if age ~= nil then
return string.format("%s (%s)", birth, age)
elseif calculated_age ~= nil then
return string.format("%s (%s ans)", birth, calculated_age)
end
end
end
return birth
return birth
Ligne 40 : Ligne 47 :
-- l'âge si elle est connue et si le personnage est mort.
-- l'âge si elle est connue et si le personnage est mort.
format_death = function(localdata)
format_death = function(localdata)
death = localdata["mort"]
local death = localdata["mort"]
if death ~= nil and age ~= nil then
local age = localdata["âge"]
return string.format("%s (à %d ans)", birth, age)
if death ~= nil then
if age ~= nil then
return string.format("%s (%s)", death, age)
elseif calculated_age ~= nil then
return string.format("%s (à %s ans)", death, calculated_age)
end
end
end
return death
return death
Ligne 55 : Ligne 67 :
             title = "Biographie",
             title = "Biographie",
             rows = {
             rows = {
                {type = "row", label = "Type", value = "type"},
                 {type = "row", label = "Naissance", value = format_birth},
                 {type = "row", label = "Naissance", value = format_birth},
                 {type = "row", label = "Mort", value = format_death},
                 {type = "row", label = "Mort", value = format_death},

Dernière version du 31 janvier 2023 à 23:21

Documentation[voir] [modifier] [purger]

Paramétrage du modèle {{Infobox Personnage}}.

local general = require("Module:Infobox/Fonctions")
local localdata = require("Module:Infobox/Localdata")

-- Date à laquelle se déroule le jeu
REFERENCE_DATE = 2330

-- Cherche une année écrite sur 4 chiffres dans une date et la retourne
function get_year(a_date)
	if a_date == nil then
		return nil
	end
	year_i, year_j = string.find(a_date, "%d%d%d%d")
	if year_i == nil then
		return nil
	end
	return tonumber(string.sub(a_date, year_i, year_j))
end

-- Détermination de l'âge du personnage en fonction des dates de naissance
-- et de mort. Si le paramètre "âge" est renseigné, alors il fait foi.
local calculated_age
if localdata["âge"] == nil then
	local birth_year = get_year(localdata["naissance"])
	local death_year = get_year(localdata["mort"])
	if birth_year ~= nil then
		calculated_age = tostring((death_year or REFERENCE_DATE) - birth_year)
	end
end

-- Formate la valeur du paramètre "naissance" en ajoutant
-- l'âge si elle est connue et si le personnage n'est pas mort.
format_birth = function(localdata)
	local birth = localdata["naissance"]
	local death = localdata["mort"]
	local age = localdata["âge"]
	if death == nil then
		if age ~= nil then
			return string.format("%s (%s)", birth, age)
		elseif calculated_age ~= nil then
			return string.format("%s (%s ans)", birth, calculated_age)
		end
	end
	return birth
end

-- Formate la valeur du paramètre "mort" en ajoutant
-- l'âge si elle est connue et si le personnage est mort.
format_death = function(localdata)
	local death = localdata["mort"]
	local age = localdata["âge"]
	if death ~= nil then
		if age ~= nil then
			return string.format("%s (%s)", death, age)
		elseif calculated_age ~= nil then
			return string.format("%s (à %s ans)", death, calculated_age)
		end
	end
	return death
end

return {
    parts = {
        general.title(),
        general.image(),
        {
            type = "table",
            title = "Biographie",
            rows = {
                {type = "row", label = "Type", value = "type"},
                {type = "row", label = "Naissance", value = format_birth},
                {type = "row", label = "Mort", value = format_death},
                {type = "row", label = "Activités", value = "activités"},
                {type = "row", label = "Affiliation", value = "affiliation"},
                {type = "row", label = "Père", value = "père"},
                {type = "row", label = "Mère", value = "mère"},
                {type = "row", label = "Fratrie", value = "fratrie"},
                {type = "row", label = "Conjoint", value = "conjoint"},
                {type = "row", label = "Enfants", value = "enfants"},
                {type = "row", label = "Parentèle", value = "parentèle"},
            },
        },
        {
            type = "table",
            title = "Apparitions",
            rows = {
                {type = "row", label = "Localisation", value = "localisation"},
                {type = "row", label = "Missions", value = "missions"},
            },
        },
        {
            type = "table",
            title = "Caractéristiques",
            rows = {
                {type = "row", label = "Niveau", value = "niveau"},
                {type = "row", label = "Compétences", value = "compétences"},
            },
        },
        {
            type = "table",
            title = "Voix",
            rows = {
	        	{type = "row", label = "Anglaise", value = "voix vo"},
	        	{type = "row", label = "Française", value = "voix vf"},
            },
        },
        general.creation_kit({
        	rows = {
	        	{type = "row", label = "Race", value = "race"},
	        	{type = "row", label = "Voice type", value = "voice type"},
	        	{type = "row", label = "Dialogue", value = "dialogue"},
	        },
        }),
    }
}