Módulo:SpeciesInfobox
De Cronicas Eternas Wiki
A documentação para este módulo pode ser criada em Módulo:SpeciesInfobox/doc
local p = {}
function p.infobox(frame)
local args = frame:getParent().args
if args["image"] and args["image"] ~= "" then
infobox = infobox .. string.format(
'<div style="text-align:center; margin-top:10px;">%s</div>',
frame:preprocess(string.format('[[File:%s|center|frameless]]', args["image"]))
)
end
local sections = {
["INFORMAÇÃO BÁSICA"] = {
{"Nome", args["name"]},
{"Tamanho", args["size"]},
{"Tipo", args["type"]},
{"Subtipo", args["subtype"]},
{"Alinhamento", args["alignment"]},
{"Nível de Desafio", args["challenge_rating"]},
{"Divindade Padroeira", args["patron_deity"]},
{"Movimento", args["movement"]},
{"Visão", args["vision"]},
{"Ciclo Ativo", args["active_cycle"]},
{"Dieta", args["diet"]},
{"Tempo de Vida", args["lifespan"]},
{"Localidade", args["locality"]},
{"Linguagens", args["languages"]},
{"Subespécies", args["subspecies"]},
{"Clima", args["climate"]},
{"Terreno", args["terrain"]},
},
["APARÊNCIA"] = {
{"Altura", args["height"]},
{"Comprimento", args["length"]},
{"Envergadura da Asa", args["wingspan"]},
{"Peso", args["weight"]},
{"Cor da Pele", args["skin_color"]},
{"Cor do Cabelo", args["hair_color"]},
{"Tipo de Cabelo", args["hair_type"]},
{"Penas", args["feathers"]},
{"Cor de Olho", args["eye_color"]},
{"Tipo Corporal", args["body_type"]},
},
}
-- Construção da Infobox
local infobox = string.format('<div style="width:22em; background:#f9f9f9; border:1px solid #aaa; float:right; padding:5px; font-size:90%%;">' ..
'<div style="text-align:center; background:#ccc; font-size:120%%; padding:4px;">%s</div>', args["name"] or "NOME DA ESPÉCIE")
for section, fields in pairs(sections) do
infobox = infobox .. string.format('<div style="text-align:center; background:#ddd; font-size:110%%; padding:4px; margin-top:5px;">%s</div>', section)
for _, field in ipairs(fields) do
local label, value = field[1], field[2]
if value and value ~= "" then
infobox = infobox .. string.format('<div style="padding:2px 5px;"><strong>%s:</strong> %s</div>', label, value)
end
end
end
-- Adiciona a imagem no final, se fornecida
infobox = infobox .. '</div>'
return infobox
end
return p