Module:SignatureTraits

From Aethermancer Wiki
Jump to navigation Jump to search

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

local p = { }

local traits = mw.loadData("Module:SignatureTraits/List");
local parse = require("Module:Parse");
p.errorMsg = "'''Invalid signature trait name. Refer to [[Module:SignatureTraits]] for help.'''"

-- Returns true if the given Signature Trait exists in Module:SignatureTraits/List.
function p.isValid (trait)
	if (trait or "") ~= "" then
		for k, v in pairs(traits) do
			if string.lower(v["name"]) == string.lower(trait) then
				return true
	end end end
	return false
end

-- Gets a Signature Traits's data from Module:SignatureTraits/List.
function p.getTrait (trait)
	for k, v in pairs(traits) do
		if string.lower(v["name"]) == string.lower(trait) then
			return v
end end end

-- Gets all Signature Traits data from Module:SignatureTraits/List.
function p.getAllTraits ()
	local traitList = {}
	for k, v in pairs(traits) do
		table.insert(traitList, v)
	end
	return traitList
end

-- Returns only the Signature Trait's description.
function p.getDesc (trait)
	local traitData = p.getTrait (trait)
	if traitData ~= nil then
		local traitDesc = parse.replaceTerm (traitData["effect"])
		return traitDesc
	end
	return p.errorMsg
end

return p