Smite Wiki
Advertisement

Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Umiejętności/new/opis

local Abilities = {}
Abilities.vars = {}

function Abilities.tabber(frame)
    local args, indexes = arguments(frame.args)
    local tabber = mw.html.create('div'):addClass('ability-tabbe')
    if Abilities.vars['Klasy'] then tabber:addClass(Abilities.vars['Klasy']) end
    
    local default = indexes[1] or 1
    if Abilities.vars['Domyślna'] ~= nil then
        Abilities.vars['Domyślna'] = tonumber(Abilities.vars['Domyślna'])
        for i,v in ipairs(indexes) do
            if Abilities.vars['Domyślna'] == v then
                default = v
                break
            end
        end
    end
    tabber:attr('data-current', default)
    
    local tabs = tabber:tag('div'):addClass('ability-tabbe-tabs')
    local contents = tabber:tag('div'):addClass('ability-tabbe-contents')
    for _,index in ipairs(indexes) do
        local entry = args[index]
        
        local tab = tabs:tag('div'):addClass('ability-tab'):attr('data-no', index):css('width', Abilities.vars['Rozmiar'] or '64px'):css('height', Abilities.vars['Rozmiar'] or '64px')
        local icon = tab:tag('div'):addClass('ability-tab-icon')
        local content = contents:tag('div'):addClass('ability-content'):attr('data-no', index):wikitext(entry['Opis'] or '')
        if entry['Klasy karty'] then tab:addClass(entry['Klasy karty']) end
        if entry['Klasy opisu'] then content:addClass(entry['Klasy opisu']) end
        
        if entry['Nazwa'] then
            tab:tag('div'):addClass('ability-tab-name'):tag('div'):wikitext(entry['Nazwa'])
            tab:attr('id', 'ab-' .. mw.uri.anchorEncode(entry['Nazwa']))
            content:attr('data-id', mw.uri.anchorEncode(entry['Nazwa']))
            icon:wikitext(mw.ustring.format('[[File:%s|%s|%s|link=#%s]]', entry['Ikona'], Abilities.vars['Rozmiar'] or '64px', entry['Nazwa'], entry['Nazwa']))
        else
            tab:attr('id', 'ab-a' .. index)
            content:attr('data-id', 'a' .. index)
            icon:wikitext(mw.ustring.format('[[File:%s|%s||link=#a%s]]', entry['Ikona'], Abilities.vars['Rozmiar'] or '64px', index))
        end
        if entry['Etykieta'] then
            tab:tag('div'):addClass('ability-tab-label'):wikitext(entry['Etykieta'])
        end
        
        if default == index then
            tab:addClass('current')
            content:addClass('current')
        end
    end
    return tabber
end
function arguments(origArgs)
    local args = {}
    local indexes = {}
    for k, v in pairs(origArgs) do
        local value = mw.text.trim(tostring(v))
        if value ~= '' then
            local keySplit = mw.text.split( tostring(k), ":" )
            local index  = tonumber(mw.text.trim(keySplit[1]))
            local key    = tostring(mw.text.trim(keySplit[2]))
            if index > 0 then
                if args[index] == nil then 
                    args[index] = {}
                end
                args[index][key] = value
            elseif index == 0 then
                Abilities.vars[key] = value
            end
        end
    end
    for index, v in pairs(args) do
        if v['Ikona'] then
            table.insert(indexes, index)
        else
            args[index] = nil
        end
    end
    table.sort(indexes)
    return args, indexes
end
function ternary(cond, T, F)
    if cond then return T else return F end
end
return Abilities
Advertisement