Module:FellowCostumeUpgradeTable

Revision as of 03:49, 31 July 2025 by FaeriMagic (talk | contribs)

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

local p = {}

local function makeSkillTable(skillName, image, levelData, typeName)
	local rows = {}
	for line in mw.text.gsplit(levelData or "", ";", true) do
		local parts = mw.text.split(mw.text.trim(line), ",")
		local level = parts[1] or ""
		local cap = parts[2] or ""
		local apt = parts[3] or ""
		table.insert(rows, string.format(
			'|-\n| style="text-align: center;" | %s || %s || %s',
			level, cap, apt
		))
	end

	local header = string.format([=[
{| class="wikitable" style="text-align: center;"
|+ [[File:%s|25px]] %s Upgrade
|-
! Lv.
! Level Cap
! <abbr title="The Aptitude multiplier granted by this costume.">%s Aptitude</abbr>
]=], image or "Placeholder.png", skillName, typeName)

	return header .. "\n" .. table.concat(rows, "\n") .. "\n|}"
end

function p.main(frame)
	local args = frame:getParent().args
	local typeName = args.type or "Fellow"
	local skill1 = args.skill1 or "Skill A"
	local skill2 = args.skill2 or "Skill B"
	local levels1 = args.skill1levels or ""
	local levels2 = args.skill2levels or ""
	local img1 = args.img1 or "Placeholder.png"
	local img2 = args.img2 or "Placeholder.png"

	local output = makeSkillTable(skill1, img1, levels1, typeName)
		.. "\n\n" ..
		makeSkillTable(skill2, img2, levels2, typeName)

	return output
end

return p