More actions
Created page with "local p = {} function p.renderMasteryCard(mastery) local html = mw.html.create('div'):addClass('mastery-card') html:tag('div'):addClass('mastery-image') :wikitext(string.format('200px', mastery.image or '')) local header = html:tag('div'):addClass('mastery-card-header') header:tag('div'):addClass('mastery-name'):wikitext(mastery.name or '') header:tag('div'):addClass('master-description'):wikitext(mastery.desc or '') local function addTier(tier, r..." |
No edit summary |
||
Line 4: | Line 4: | ||
local html = mw.html.create('div'):addClass('mastery-card') | local html = mw.html.create('div'):addClass('mastery-card') | ||
html:tag('div'):addClass('mastery- | html:tag('div'):addClass('mastery-card__image') | ||
:wikitext(string.format('[[File:%s|200px]]', mastery.image or '')) | :wikitext(string.format('[[File:%s|200px]]', mastery.image or '')) | ||
local header = html:tag('div'):addClass('mastery- | local header = html:tag('div'):addClass('mastery-card__header') | ||
header:tag('div'):addClass('mastery- | header:tag('div'):addClass('mastery-card__name'):wikitext(mastery.name or '') | ||
header:tag('div'):addClass(' | header:tag('div'):addClass('mastery-card__description'):wikitext(mastery.desc or '') | ||
local function addTier(tier, reward, req) | local function addTier(tier, reward, req) | ||
local | local group = html:tag('div'):addClass('mastery-card__tier-group') | ||
local block = group:tag('div'):addClass('mastery-card__tier-details') | |||
block:tag('div'):addClass('mastery-card__tier'):wikitext(tier) | |||
block:tag('div'):addClass('mastery-card__reward'):wikitext(reward or '') | |||
group:tag('div'):addClass('mastery-card__requirement'):wikitext(req or '') | |||
end | end | ||
Line 31: | Line 31: | ||
local index = 1 | local index = 1 | ||
while args['name'..index] | local MAX_CARDS = 50 | ||
while index <= MAX_CARDS do | |||
local name = args['name'..index] | |||
if not name or name == '' then break end | |||
local mastery = { | local mastery = { | ||
image = args['image'..index], | image = args['image'..index], | ||
name = | name = name, | ||
desc = args['desc'..index], | desc = args['desc'..index], | ||
bronzeReward = args['bronzeReward'..index], | bronzeReward = args['bronzeReward'..index], |
Revision as of 17:38, 3 June 2025
Documentation for this module may be created at Module:MasteryCards/doc
local p = {}
function p.renderMasteryCard(mastery)
local html = mw.html.create('div'):addClass('mastery-card')
html:tag('div'):addClass('mastery-card__image')
:wikitext(string.format('[[File:%s|200px]]', mastery.image or ''))
local header = html:tag('div'):addClass('mastery-card__header')
header:tag('div'):addClass('mastery-card__name'):wikitext(mastery.name or '')
header:tag('div'):addClass('mastery-card__description'):wikitext(mastery.desc or '')
local function addTier(tier, reward, req)
local group = html:tag('div'):addClass('mastery-card__tier-group')
local block = group:tag('div'):addClass('mastery-card__tier-details')
block:tag('div'):addClass('mastery-card__tier'):wikitext(tier)
block:tag('div'):addClass('mastery-card__reward'):wikitext(reward or '')
group:tag('div'):addClass('mastery-card__requirement'):wikitext(req or '')
end
addTier('Bronze', mastery.bronzeReward, mastery.bronzeReq)
addTier('Silver', mastery.silverReward, mastery.silverReq)
addTier('Gold', mastery.goldReward, mastery.goldReq)
return tostring(html)
end
function p.main(frame)
local args = frame:getParent().args
local html = mw.html.create('div'):addClass('mastery-container')
local index = 1
local MAX_CARDS = 50
while index <= MAX_CARDS do
local name = args['name'..index]
if not name or name == '' then break end
local mastery = {
image = args['image'..index],
name = name,
desc = args['desc'..index],
bronzeReward = args['bronzeReward'..index],
bronzeReq = args['bronzeReq'..index],
silverReward = args['silverReward'..index],
silverReq = args['silverReq'..index],
goldReward = args['goldReward'..index],
goldReq = args['goldReq'..index],
}
html:wikitext(p.renderMasteryCard(mastery))
index = index + 1
end
return tostring(html)
end
return p