Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Documentation for this module may be created at Module:MasteryCards/doc

local p = {}

local function renderMasteryCard(mastery)
	local html = mw.html.create('div'):addClass('mastery-card')

	html:tag('div'):addClass('mastery-card__image')
		:wikitext(string.format('[[File:%s|250px]]', mastery.image or ''))
	
	local content = html:tag('div'):addClass('mastery-card__content')
	
	local header = content: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 tiers = content:tag('div'):addClass('mastery-card__tiers')
	local function addTier(tier, reward, req)
		local group = tiers: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 MAX_CARDS = 15
	for i=1, MAX_CARDS do
		if not args['name'..i] or args['name'..i] == '' then break end

		local mastery = {
			image = args['image'..i],
			name = args['name'..i],
			desc = args['desc'..i],
			bronzeReward = args['bronzeReward'..i],
			bronzeReq = args['bronzeReq'..i],
			silverReward = args['silverReward'..i],
			silverReq = args['silverReq'..i],
			goldReward = args['goldReward'..i],
			goldReq = args['goldReq'..i],
		}
		html:wikitext(renderMasteryCard(mastery))
	end

	return tostring(html)
end

return p