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('gdeck'):addClass('gdeck--align-'..(args['align'] or 'none'))
local names = u.split(args[1] or '', ',')
local cards = {}
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,
color = card.kolor,
provision = card.werbunek,
strength = card.sila
})
end
end
table.sort(cards, function (a, b)
if a.color == 'Dowódca' then return true
elseif b.color == 'Dowódca' then return false
else
return a.provision > b.provision
end
end)
local COLOR_TO_CLASS = {
['Dowódca'] = 'gdeck__tile--leader',
['Złota'] = 'gdeck__tile--gold',
['Brązowa'] = 'gdeck__tile--bronze'
}
for index, card in ipairs(cards) do
local tile = '[['..card.name..'|'
if card.color ~= 'Dowódca' then
tile = tile..'<span class="gdeck__strength">'..card.strength..'</span>'
end
tile = tile..'<span class="gdeck__provision">'..card.provision..'</span>'
tile = tile..card.name
if card.count > 1 then
tile = tile..'<span class="gdeck__count">x'..card.count..'</span>'
end
tile = tile..']]'
wrapper
:tag('li')
:addClass('gdeck__tile')
:addClass(COLOR_TO_CLASS[card.color])
:addClass('card-tooltip')
:attr('data-card', card.name)
:attr('data-set-background', k._encode(card.name..' Art.jpg'))
:wikitext(tile)
end
return wrapper
end
return Deck