Módulo:AchievementsDetails

De RuneScape Wiki
Ir para: navegação, pesquisa

A documentação para este módulo pode ser criada em Módulo:AchievementsDetails/doc

-- <pre>
-- {{Achievements details}}
--

local p = {}
local yesno = require( 'Module:Yesno' )
local onmain = require('Module:Mainonly').on_main()
    
function p.details( frame )
    local _args = frame:getParent().args
    local tbl = mw.html.create( 'table' )
        :addClass( 'achievementsdetails plainlinks' )
        -- @todo replace with CSS
        :attr( 'cellspacing',  '3' )
    local title = mw.uri.fullUrl( mw.title.getCurrentTitle().fullText, { action = 'edit' } )
    local unknown = 'Unknown <small>[' .. tostring( title ) .. ' edit]</small>'
    local args = {}
    
    for k, v in pairs(_args) do
        if v ~= '' then
            args[k] = v
        end
    end
    
    local reqs = args.requisitos or '* Nenhum'
    local items = args.objetos or '* Nenhum'
    local kills = args.abates or '* Nenhuma'
    local checklist = items
    if items ~= '* Nenhum' then
    	checklist = '<div class="lighttable checklist">\n'..items..'</div>' --frame:expandTemplate{ title = 'Checklist', args = { items } }
    end
        
    tbl
        :tag( 'tr' )
            :tag( 'th' )
                :addClass( 'achievementsdetails-header' )
                :wikitext( 'Requisitos' )
                :done()
            :tag( 'td' )
                :addClass( 'achievementsdetails-info' )
                :addClass( 'qc-active' )
                :tag( 'i' )
                    :wikitext( 'Requisitos de habilidades não são impulsionáveis a não ser que estejam marcados com um [B]' )
                    :done()
                :newline():newline()
                :wikitext( reqs )
                :done()
            :done()
    tbl
        :tag( 'tr' )
            :tag( 'th' )
                :addClass( 'achievementsdetails-header' )
                :wikitext( 'Objetos necessários' )
                :done()
            :tag( 'td' )
                :addClass( 'mw-collapsible mw-collapsed' )
                :addClass( 'achievementsdetails-info' )
                :tag( 'i' )
                    :wikitext( 'Objetos do [[porta-ferramentas]] não estão listados a não ser que eles não funcionem ou não sejam automaticamente adicionados.' )
                    :done()
                :newline():newline()
                :wikitext( checklist )
                :done()
            :done()
    
    if args.recomendado ~= nil and yesno( args.recomendado ) ~= false then
        tbl
            :tag( 'tr' )
                :tag( 'th' )
                    :addClass( 'achievementsdetails-header' )
                    :wikitext( 'Recomendado' )
                    :done()
                :tag( 'td' )
                    :addClass( 'mw-collapsible mw-collapsed' )
                    :addClass( 'achievementsdetails-info' )
                    :newline():newline()
                    :wikitext( '<div class="lighttable checklist">\n'..args.recomendado..'</div>') -- frame:expandTemplate{ title = 'Checklist', args = { args.recommended } } )
                    :done()
                :done()
    end
    
    if args.abates ~= nil and yesno( args.abates ) ~= false then
    tbl
        :tag( 'tr' )
            :tag( 'th' )
                :addClass( 'achievementsdetails-header' )
                :wikitext( 'Inimigos para derrotar' )
                :done()
            :tag( 'td' )
                :addClass( 'mw-collapsible mw-collapsed' )
                :addClass( 'achievementsdetails-info' )
                :newline():newline()
                :wikitext( kills )
                :done()
            :done()
    end

    return tostring( tbl ) .. smw(frame,_args)
end

function smw(frame,args)
	if not onmain then
		return ''
	end
	-- more to come
	local err = ''
	local haserr = false
	local info = ''
	
	-- Set other smw values
	local smw = {
		['É 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 = smwstat.error
	end
	
	return tostring(info) .. tostring(err)
end

return p