La documentation pour ce module peut être créée à Module:Objet/doc
local p = {}
util = require( 'Module:Utils' )
function p.parseArgs( frame )
local args = {}
args.couleur = frame.args.couleur
args.puis = util.initparam( frame.args.puissance, '-' )
args.fine = util.initparam( frame.args.finesse, '-' )
args.sorc = util.initparam( frame.args.sorcellerie, '-' )
args.nv = util.initparam( frame.args.niveau )
args.info = util.initparam( frame.args.info )
args.desc = util.initparam( frame.args.desc )
args.effets = util.initparam( frame.args.effets )
args.solidite = util.initparam( frame.args.solidite )
args.att = util.initparam( frame.args.attaque )
args.def = util.initparam( frame.args.defense )
return args
end
function p.build( frame )
local args = p.parseArgs( frame )
local main = mw.html.create( 'div' )
main:css({
width = "310px",
position = "relative",
['background-color'] = "#18181b",
margin = "40px 5px 20px",
['box-shadow'] = "0 2px 2px 0 #000,0 3px 1px -2px #333,0 1px 5px 0 #000",
['border-radius'] = "8px",
float = "right",
border = "2px solid #2c2c35",
["font-size"] = "13px"
})
main = p.valeur( main, args )
main:wikitext( p.icone() )
:node( p.titre(args.couleur) ):done()
:node( p.sep() ):done()
:node( p.conditions(args) ):done()
if args.effets ~= "" then
main:tag('div'):css('padding', '3px 15px'):wikitext( args.effets ):done()
if args.desc ~= "" then main:node( p.sep() ):done() end
end
if args.desc ~= "" then
main:tag('div'):css('padding', '3px 15px'):wikitext( args.desc ):done()
end
return tostring( main )
end
-- Formate le titre de l'objet.
function p.titre( couleur )
local css = {
['margin-top'] = "35px",
['font-size'] = "1.4em",
['text-align'] = "center",
padding = "3px 15px",
color = util.color( couleur )
}
return mw.html.create( 'div' ):css(css):wikitext( util._cleanTitle() )
end
-- Formate l'icône.
function p.icone ()
return '<div style="position:absolute; width:64px; height:64px; left:123px; top:-33px; border-radius:50%; box-shadow:0 1px 5px #111; border:2px solid #2c2c35; background-color: #111;">[[Image:Potion de soins mineure.png]]</div>'
end
-- Affiche les icônes de solidité, attaque et défense.
function p.valeur( main, args )
if args.solidite ~= "" then
main:tag( 'div' ):css({ position = 'absolute', left = "5px", top = "5px" })
:wikitext( '[[Image:Icône solidité.png|27px]] ' .. args.solidite )
:done()
end
if args.att ~= "" then
main:tag( 'div' ):css({ position = 'absolute', right = "5px", top = "5px" })
:wikitext( args.att .. ' [[Image:Icône attaque.png|27px]]' )
:done()
end
if args.def ~= "" then
main:tag( 'div' ):css({ position = 'absolute', right = "5px", top = "5px" })
:wikitext( args.def ..' [[Image:Icône défense.png|25px]]' )
:done()
end
return main
end
-- Affiche les conditions d'équipement
function p.conditions( args )
local divcss = { width = 'calc(100%/3)', ['text-align'] = 'center', float = "left", ['line-height'] = '20px' }
local div = mw.html.create( 'div' )
if args.puis ~= "-" or args.fine ~= "-" or args.sorc ~= "-" or args.nv ~= "" then
div:tag( 'div' ):css( 'text-align', 'center' ):wikitext( 'Conditions' ):done()
end
if args.nv ~= "" then
div:tag( 'div' ):css( 'text-align', 'center' ):wikitext( 'Niveau ' .. args.nv ):done()
end
if args.puis ~= "-" or args.fine ~= "-" or args.sorc ~= "-" then
div :tag( 'div' ):css(divcss):wikitext( 'Puissance<br/>' .. args.puis ):done()
:tag( 'div' ):css(divcss):wikitext( 'Finesse<br/>' .. args.fine ):done()
:tag( 'div' ):css(divcss):wikitext( 'Sorcellerie<br/>' .. args.sorc ):done()
:node( p.sep() )
elseif args.nv ~= "" then
div :node( p.sep() )
end
return tostring( div )
end
function p.sep()
return mw.html.create( 'div' ):css({ ['background-color'] = "#333", height = "1px", margin = "2px 10px", clear = "both" })
end
return p