Module:PerksData
From MENACE Official Wiki
Documentation for this module may be created at Module:PerksData/doc
---
--- Extracts attributes of perks from Module:Data/Perks.json
---
---@module PerksData
local PerksData = {}
--region Dependencies
local JsonUtils = require("Module:JsonUtils")
--endregion
--region Private constants
local DATA_FILE = "Module:Data/Perks-v0.7.6.json"
--endregion
--region Private member variables
local perksData
--endregion
--region Private methods
local function loadData()
if not perksData then
perksData = JsonUtils.convertJSONToLuaTable(DATA_FILE)
end
end
local function getTitleFromArgs(frame)
if frame.args then
return frame.args[1] or frame.args.title
else
return frame
end
end
local function getPropertyByTitle(frame, property)
loadData()
local perkTitle = getTitleFromArgs(frame)
for _, perk in ipairs(perksData) do
if string.lower(perk.Title) == string.lower(perkTitle) then
return perk[property]
end
end
end
--endregion
function PerksData.getIconByTitle(frame)
return getPropertyByTitle(frame, "Icon")
end
function PerksData.getShortDescriptionByTitle(frame)
return getPropertyByTitle(frame, "ShortDescription")
end
function PerksData.getLongDescriptionByTitle(frame)
return getPropertyByTitle(frame, "LongDescription")
end
function PerksData.getLoreByTitle(frame)
return getPropertyByTitle(frame, "Lore")
end
function PerksData.getCharactersByTitle(frame)
return getPropertyByTitle(frame, "Characters")
end
return PerksData


