Module:Ability
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