Module:TestModule: Difference between revisions
From MENACE Official Wiki
No edit summary |
No edit summary |
||
| (10 intermediate revisions by the same user not shown) | |||
| Line 3: | Line 3: | ||
--- | --- | ||
---@module | ---@module TestModule | ||
local | local TestModule = {} | ||
--region Dependencies | --region Dependencies | ||
| Line 24: | Line 24: | ||
end | end | ||
end | end | ||
local function getTitleFromArgs(frame) | local function getTitleFromArgs(frame) | ||
| Line 33: | Line 32: | ||
end | end | ||
end | end | ||
--endregion | |||
function TestModule.get(frame) | |||
loadData() | |||
local | local weaponTitle = frame.args[1] | ||
local weaponProperty = frame.args[2] | |||
if not weaponTitle or not weaponProperty then | |||
return "Error: One or more arguments missing" | |||
end | |||
for _, weapon in ipairs(weaponsData) do | for _, weapon in ipairs(weaponsData) do | ||
if string.lower(weapon.Title) == string.lower(weaponTitle) then | if weapon.Title and string.lower(weapon.Title) == string.lower(weaponTitle) then | ||
return weapon[ | return weapon[weaponProperty] or "Error: Property of that name not found" | ||
end | end | ||
end | end | ||
return "Error: Weapon of that name not found" | |||
end | end | ||
function TestModule. | function TestModule.getSkillProperty(frame) | ||
loadData() | |||
local weaponTitle = frame.args[1] | |||
local skillTitle = frame.args[2] | |||
local skillProperty = frame.args[3] | |||
if not weaponTitle or not skillTitle or not skillProperty then | |||
return "Error: One or more arguments missing" | |||
end | end | ||
for _, weapon in ipairs(weaponsData) do | |||
if weapon.Title and string.lower(weapon.Title) == string.lower(weaponTitle) then | |||
end | for _, skill in ipairs(weapon.SkillsGranted or {}) do | ||
if skill.Title and string.lower(skill.Title) == string.lower(skillTitle) then | |||
return skill[skillProperty] | |||
end | |||
end | |||
return "Error: Skill of that name not found" | |||
end | |||
end | |||
return "Error: Weapon of that name not found" | |||
return | end | ||
end | |||
return TestModule | return TestModule | ||
Latest revision as of 05:12, 4 May 2026
Documentation for this module may be created at Module:TestModule/doc
---
--- Extracts attributes of weapons from Module:Data/Weapons.json
---
---@module TestModule
local TestModule = {}
--region Dependencies
local JsonUtils = require("Module:JsonUtils")
--endregion
--region Private constants
local DATA_FILE = "Module:Data/Weapons.json"
--endregion
--region Private member variables
local weaponsData
--endregion
--region Private methods
local function loadData()
if not weaponsData then
weaponsData = 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
--endregion
function TestModule.get(frame)
loadData()
local weaponTitle = frame.args[1]
local weaponProperty = frame.args[2]
if not weaponTitle or not weaponProperty then
return "Error: One or more arguments missing"
end
for _, weapon in ipairs(weaponsData) do
if weapon.Title and string.lower(weapon.Title) == string.lower(weaponTitle) then
return weapon[weaponProperty] or "Error: Property of that name not found"
end
end
return "Error: Weapon of that name not found"
end
function TestModule.getSkillProperty(frame)
loadData()
local weaponTitle = frame.args[1]
local skillTitle = frame.args[2]
local skillProperty = frame.args[3]
if not weaponTitle or not skillTitle or not skillProperty then
return "Error: One or more arguments missing"
end
for _, weapon in ipairs(weaponsData) do
if weapon.Title and string.lower(weapon.Title) == string.lower(weaponTitle) then
for _, skill in ipairs(weapon.SkillsGranted or {}) do
if skill.Title and string.lower(skill.Title) == string.lower(skillTitle) then
return skill[skillProperty]
end
end
return "Error: Skill of that name not found"
end
end
return "Error: Weapon of that name not found"
end
return TestModule


