Gwint Wiki
Advertisement

Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Talia/Beta/opis

local getArgs = require('Dev:Arguments').getArgs

local u = require('Module:Utils')
local k = require('Module:Karta')

local data = mw.loadData('Module:Karty')

local Deck = {}

function Deck.create(frame)
    local args = getArgs(frame)
    local wrapper = mw.html.create('ul'):addClass('gwent-deck'):addClass('align-'..(args['align'] or 'none'))

    local names = u.split(args[1] or '', ',')

    local cards = {}
    
    local COLOR_TO_CLASS = {
        ['Dowódca'] = 'deck-leader',
        ['Złota'] = 'deck-gold',
        ['Brązowa'] = 'deck-bronze'
    }

    for i = 1, #names do
        local name = u.trim(names[i])
        local count = 1
        if name:match('^.- x%d$') then
            count = tonumber(name:match('^.- x(%d)$'))
            name = name:match('^(.-) x%d$')
        end
        local card = data[name]
        if card then
            table.insert(cards, {
                name = name,
                count = count,
                class = COLOR_TO_CLASS[card.kolor],
                provisions = card.werbunek,
                strength = card.sila
            })
        end
    end

    for index, card in ipairs(cards) do
        wrapper
            :tag('li')
                :addClass('card-tooltip')
                :addClass(card.class)
                :attr('data-card', card.name)
                :attr('data-set-background', k._encode(card.name..' Art.jpg'))
                :wikitext(card.count > 1 and '[['..card.name..'|'..card.name..' <span>x'..card.count..'</span>]]' or '[['..card.name..']]')
    end

    return wrapper
end

return Deck
Advertisement