« Module:Fermentation » : différence entre les versions

1 124 octets ajoutés ,  19 juillet 2021
aucun résumé des modifications
Kims (discussion | contributions)
Aucun résumé des modifications
Kims (discussion | contributions)
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
local p = {}
local p = {}


local OUI = 'oui'
local LF = '\n'
local LF = '\n'


--------------------------------
------------------------------------------------
-----    Référentiel     -----  
-----    Référentiel des interactions    -----  
--------------------------------
------------------------------------------------


local data = {
local data = {
["fermentable"] = { },
    -- Interaction spéciale si aucune autre, ne pas toucher --------
["fermenté"] = {},
["aucune"] = {
["mature"] = {}
image        = "Neutral test color.png",
 
description  = "Ce personnage ne possède pas d'interaction particulière."
},
    ----------------------------------------------------------------
["fermentable"] = {
checkIfYes  = false,
image        = "Deep Sleep.png",
description  = function(args)
return "Ce personnage loue un lit à " .. args["lit"] .. " [[capsule]]s la nuit."
end
},
["fermenté"] = {
checkIfYes  = true,
image        = "Radiated.png",
description  = "Ce personnage souffre de la [[Nouvelle Peste]]."
},  
["mature"] = {
checkIfYes  = true,
image        = "OpticsEnhancer.png",
description  = "Ce personnage possède une [[tête parlante]]."
}
}
}


--------------------------------
------------------------------------------------


function buildRow(argValue, def)
function buildRow(args, def)
local note = argValue or ''
local note = def.note
if note ~= '' then note = LF .. note .. LF end
if note then
 
if type(note) == 'function' then
return mw.html.create( 'div' )
note = note(args)
end
end
return mw.html.create( 'li' )
:addClass( 'avt-interactions-row' )
:node(image)
:tag( 'div' )
:tag( 'div' )
:addClass( 'artisanat-colonne-titre' )
:addClass( 'avt-interactions-text' )
:wikitext( note )
:node(description)
:done()
:node(note)
:tag( 'div' )
:wikitext( '[[Fichier:Icon_range_inverse.png|x25px|center]]' )
:done()
:done()
end
end


function p._build(args)
function p._build(args)
local res = mw.html.create( 'ul' )
local res = mw.html.create( 'ul' )
:addClass( 'avt-interactions' )
:addClass( 'avt-interactions' )
local isEmpty = true
for key, value in pairs(args) do
-- on trie les arguments par ordre alphabétique
local keys = {}
for k, v in pairs(args) do
table.insert(keys, k)
end
table.sort(keys)
local isEmpty = true
for i, key in ipairs(keys) do
argValue = args[key]
local def = data[key:lower()]
local def = data[key:lower()]
if def and value ~= '-' and value ~= 'vide' then
if def and (not def.checkIfYes or argValue:lower() == OUI) and argValue ~= '-' then
isEmpty = false
isEmpty = false
res:node(buildRow(value, def))
res:node(buildRow(args, def))
end
end
end
-- cas particulier le pnj n'a aucune interaction
if isEmpty then
res:node(buildRow(args, data.aucune))
end
end
Ligne 56 : Ligne 94 :
val = mw.text.trim(val)
val = mw.text.trim(val)
if val ~= '' then
if val ~= '' then
args[cle] = val
args[cle] = mw.text.trim(val)
end
end
end
end
45 256

modifications