Les Royaumes d'Amalur: Reckoning
Advertisement
Les Royaumes d'Amalur: Reckoning

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
Advertisement