Module:Ability

From Omega Strikers Wiki
Jump to navigation Jump to search

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

--<nowiki>
local p = {}

local data = require("Module:Ability/Data")
local all_abilities = data.abilities

-- @function   main
-- @param      Frame object
-- @return     {template} Template:Ability populated with data
function p.main(frame)
	local args = frame.args
	local abdata = all_abilities[args[1]]
	if args[1] == nil then return "<span style=\"color:red\">Missing argument 1, please enter skill name.</span>[[Category:Pages with script errors]]" end
	if abdata == nil then
		return frame:preprocess("<span style=\"color:red\">" .. args[1] .. " is not a valid skill.</span>[[Category:Pages with script errors]]")
	end
	
	local keywordString = ""
	if abdata.Keyword ~= nil then
		for k, v in ipairs(abdata.Keyword) do
			local keywordTemplate = frame:expandTemplate{
				title = 'Keyword',
				args = {
					word = abdata.Keyword[k]
				}
			}
			keywordString = keywordString .. keywordTemplate .. " "
		end
	end

	local display = frame:expandTemplate{
		title = 'Ability',
		args = {
			striker = abdata.Striker or frame.args[2] or mw.title.getCurrentTitle().text,
			name = abdata.Name,
			slot = abdata.Slot,
			description = abdata.Desc,
			keyword = keywordString,
			cooldown = abdata.Cooldown,
			corekb = abdata.CoreKB,
			playerkb = abdata.PlayerKB,
			damage = abdata.Damage,
			notes = frame.args[3]
		}
	}
	return display
end
	
function p.Link(frame)
	local args = frame.args
	local abdata = all_abilities[args[1]]
	local lcSlot = string.lower(abdata.Slot)
	if args[1] == nil then return "<span style=\"color:red\">Missing argument 1, please enter skill name.</span>[[Category:Pages with script errors]]" end
	if abdata == nil then
		return frame:preprocess("<span style=\"color:red\">" .. args[1] .. " is not a valid skill.</span>[[Category:Pages with script errors]]")
	end
	
	return "<span class=\"striker\" style=\"white-space:nowrap\";>[[File:" .. abdata.Striker .. " " .. lcSlot .. ".png|24px|link=" .. abdata.Striker .. "#" .. args[1] .. "]] [[" .. abdata.Striker .. "#" .. args[1] .. "|" .. args[1] .."]]"
end
	
return p