Module:Skill types

From Blue Archive Wiki
Jump to navigation Jump to search

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

local getArgs = require('Module:Arguments').getArgs
local p = {}

function p.main(frame)
	local args = getArgs(frame)
	return p._main(args)
end

function p.make_cat(skill)
	return "[[Category:Characters with " .. skill .. " skills]]"
end

function p.make_link(skill)
	return "[[:Category:Characters with " .. skill .. " skills|" .. skill .. " skills]]"
end

function p._main(args)
	local length = 0
	for k, v in pairs(args) do
		length = length + 1
	end
	local result = ""
	if length == 1 then
		result = p.make_link(args[1])
	elseif length == 2 then
		result = p.make_link(args[1]) .. " and " .. p.make_link(args[2])
	else
		for key, value in pairs(args) do
			result = result .. p.make_link(value)
			if key == length - 1 then
				result = result .. ", and "
			elseif key ~= length then
				result = result .. ", "
			end
		end
	end
	
	local cats = ""
	for key, value in pairs(args) do
		cats = cats .. p.make_cat(value)
	end

	return result .. cats
end

return p