Módulo:Detalhes de Missão
Ir para navegação
Ir para pesquisar
Documentação do módulo
Esta documentação é transcluída de Predefinição:Sem documentação/doc. [editar] [atualizar]
Este módulo não possui nenhuma documentação. Por favor, considere adicionar uma documentação em Módulo:Detalhes de Missão/doc. [editar]
Módulo:Detalhes de Missão's a função details é invocada por Predefinição:Detalhes Missão.
Módulo:Detalhes de Missão requer Module:Mainonly.
Módulo:Detalhes de Missão requer Module:Yesno.
-- <pre>
-- {{Quest details}}
--
local p = {}
local yesno = require( 'Module:Yesno' )
local onmain = require('Module:Mainonly').on_main()
local difficulties = {
nenhum = 'Nenhum',
tutorial = '[[Arquivo:Principiante.svg|7px|Tutorial|link=]] Tutorial',
principiante = '[[Arquivo:Principiante.svg|7px|Principiante|link=]] Principiante',
['1'] = '[[Arquivo:Principiante.svg|7px|Principiante|link=]] Principiante',
intermediario = '[[Arquivo:Intermediário.svg|7px|Intermediário|link=]] Intermediário',
['intermediário'] = '[[Arquivo:Intermediário.svg|7px|Intermediário|link=]] Intermediário',
['2'] = '[[Arquivo:Intermediário.svg|7px|Intermediário|link=]] Intermediário',
experiente = '[[Arquivo:Experiente.svg|7px|Experiente|link=]] Experiente',
['3'] = '[[Arquivo:Experiente.svg|7px|Experiente|link=]] Experiente',
mestre = '[[Arquivo:Mestre.svg|7px|Mestre|link=]] Mestre',
['4'] = '[[Arquivo:Mestre.svg|7px|Mestre|link=]] Mestre',
['grão-mestre'] = '[[Arquivo:Grão-Mestre.svg|7px|Grão-Mestre|link=]] Grão-Mestre',
['Grão-Mestre'] = '[[Arquivo:Grão-Mestre.svg|7px|Grão-Mestre|link=]] Grão-Mestre',
['5'] = '[[Arquivo:Grão-Mestre.svg|7px|Grão-Mestre|link=]] Grão-Mestre',
especial = '[[Arquivo:Especial.svg|7px|Especial|link=]] Especial'
}
function p.details( frame )
local _args = frame:getParent().args
local tbl = mw.html.create( 'table' )
:addClass( 'questdetails plainlinks' )
-- @todo replace with CSS
:attr( 'cellspacing', '3' )
local title = mw.uri.fullUrl( mw.title.getCurrentTitle().fullText, { action = 'edit' } )
local unknown = 'Desconhecido <small>[' .. tostring( title ) .. ' editar]</small>'
local args = {}
for k, v in pairs(_args) do
if v ~= '' then
args[k] = v
end
end
local icon = '[[Arquivo:' .. (args['ícone'] or mw.title.getCurrentTitle().text .. ' ícone.png') .. '|50px|right]]'
local start = args['início'] or unknown
local membros = yesno( args.membros ) and '[[Arquivo:P2P ícone.png|30px|link=]] Somente para membros' or
-- check it's actually set to something false-y
yesno( args.membros ) == false and '[[Arquivo:F2P ícone.png|30px|link=]] Jogadores gratuitos' or unknown
local dificuldade = difficulties[mw.ustring.lower(args.dificuldade or '')] or unknown
local length = args['duração'] or unknown
local reqs = args.requisitos or '* Nenhum'
local objetos = args.objetos or '* Nenhum'
local inimigos = args.inimigos or '* Nenhum'
local recomendados = args.recomendado or args.recomendados
local checklist = objetos
if objetos ~= '* Nenhum' then
checklist = '<div class="lighttable checklist">\n'..objetos..'</div>' --frame:expandTemplate{ title = 'Checklist', args = { objetos } }
end
tbl
:tag( 'tr' )
:tag( 'th' )
:addClass( 'questdetails-header' )
:wikitext( 'Ponto de início' )
:done()
:tag( 'td' )
:addClass( 'questdetails-info' )
:wikitext( '[[Arquivo:Missão_ícone_mapa.png|17px|link=]] ' .. icon .. start )
:done()
:done()
:tag( 'tr' )
:tag( 'th' )
:addClass( 'questdetails-header' )
:wikitext( 'Membros?' )
:done()
:tag( 'td' )
:addClass( 'questdetails-info' )
:wikitext( membros )
:done()
:done()
:tag( 'tr' )
:tag( 'th' )
:addClass( 'questdetails-header' )
:wikitext( 'Dificuldade Oficial' )
:done()
:tag( 'td' )
:addClass( 'questdetails-info' )
:wikitext( dificuldade )
:done()
:done()
:tag( 'tr' )
:tag( 'th' )
:addClass( 'questdetails-header' )
:wikitext( 'Duração Oficial' )
:done()
:tag( 'td' )
:addClass( 'questdetails-info' )
:wikitext( length )
:done()
:done()
:tag( 'tr' )
:tag( 'th' )
:addClass( 'questdetails-header' )
:wikitext( 'Requisitos' )
:done()
:tag( 'td' )
:addClass( 'questdetails-info' )
:addClass( 'qc-active' )
:tag( 'i' )
:wikitext( 'Requisitos de habilidades não podem ser impulsionados a não ser que estejam marcados com um [B].' )
:done()
:newline():newline()
:wikitext( reqs )
:done()
:done()
:tag( 'tr' )
:tag( 'th' )
:addClass( 'questdetails-header' )
:wikitext( 'Objetos Necessários' )
:done()
:tag( 'td' )
:addClass( 'questdetails-info' )
:tag( 'i' )
:wikitext( 'Objetos do [[porta-ferramentas]] não estão listados a não ser que não funcionem ou não sejam automaticamente adicionados.' )
:done()
:newline():newline()
:wikitext( checklist )
:done()
:done()
if recomendados ~= nil and yesno( recomendados ) ~= false then
tbl
:tag( 'tr' )
:tag( 'th' )
:addClass( 'questdetails-header' )
:wikitext( 'Recomendados' )
:done()
:tag( 'td' )
:addClass( 'questdetails-info' )
:addClass( 'qc-active' )
:newline():newline()
:wikitext( '<div class="lighttable checklist">\n'..recomendados..'</div>') -- frame:expandTemplate{ title = 'Checklist', args = { args.recomendados } } )
:done()
:done()
end
tbl
:tag( 'tr' )
:tag( 'th' )
:addClass( 'questdetails-header' )
:wikitext( 'Inimigos' )
:done()
:tag( 'td' )
:addClass( 'questdetails-info' )
:newline():newline()
:wikitext( inimigos )
:done()
:done()
return tostring( tbl ) .. smw(frame,_args)
end
function smw(frame,args)
if not onmain then
return ''
end
-- more to come
local err = mw.html.create('div')
err:addClass('hidden'):css('display','none')
local haserr = false
local info = ''
local smwJSON = {
name = mw.title.getCurrentTitle().text,
difficulty = difficulties[mw.ustring.lower(args.dificuldade or '')],
start = args['início'] or nil,
length = args['duração'] or nil,
requirements = args.requisitos or 'Nenhum',
items = args.objetos or 'Nenhum',
kills = args.inimigos or 'Nenhum',
members = yesno(args.membros,false)
}
local jsongood, encsmwJSON = pcall(mw.text.jsonEncode, smwJSON)
if jsongood then
-- for easier debug, please do not remove
encsmwJSON = mw.text.nowiki(mw.text.killMarkers(encsmwJSON))
local div = mw.html.create('div')
div :addClass('hidden')
:css('display', 'none')
:wikitext('[[Quest JSON::'..encsmwJSON..']]')
info = frame:preprocess(tostring(div))
else
haserr = true
err:wikitext('Error setting SMW JSON, string: ' .. mw.dumpObject(smwJSON))
end
if not haserr then
err = ''
end
-- Set other smw values
local smw = {
['Dificuldade Oficial'] = args.dificuldade or nil,
['É somente para membros'] = yesno(args.membros,false),
['Duração Oficial'] = args['duração'] or nil,
}
local smwstat = mw.smw.set(smw)
if not smwstat == true then
err = err .. ' ' .. smwstat.error
end
return tostring(info) .. tostring(err)
end
return p