Module:TestModule: Difference between revisions
From MENACE Official Wiki
Absolutely blatant plagiarism of Keno's work while I'm learning. |
No edit summary |
||
| Line 49: | Line 49: | ||
function WeaponsData.getNameByTitle(frame) | function WeaponsData.getNameByTitle(frame) | ||
return getPropertyByTitle(frame, "Name") end | return getPropertyByTitle(frame, "Name") | ||
end | |||
function WeaponsData.getPathIDByTitle(frame) | function WeaponsData.getPathIDByTitle(frame) | ||
Revision as of 03:14, 4 May 2026
Documentation for this module may be created at Module:TestModule/doc
---
--- Extracts attributes of Weapons from Module:Data/Weapons.json
---
---@module WeaponsData
local WeaponsData = {}
--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
local function getPropertyByTitle(frame, property)
loadData()
local weaponTitle = getTitleFromArgs(frame)
for _, weapon in ipairs(WeaponsData) do
if string.lower(weapon.Title) == string.lower(weaponTitle) then
return weapon[property]
end
end
end
--endregion
function WeaponsData.getNameByTitle(frame)
return getPropertyByTitle(frame, "Name")
end
function WeaponsData.getPathIDByTitle(frame)
return getPropertyByTitle(frame, "PathID")
end
function WeaponsData.getShortNameByTitle(frame)
return getPropertyByTitle(frame, "ShortName")
end
function WeaponsData.getDescriptionByTitle(frame)
return getPropertyByTitle(frame, "Description")
end
function WeaponsData.getIconByTitle(frame)
return getPropertyByTitle(frame, "Icon")
end
function WeaponsData.getTagsByTitle(frame)
return getPropertyByTitle(frame, "Tags")
end
function WeaponsData.getRarityByTitle(frame)
return getPropertyByTitle(frame, "Rarity")
end
function WeaponsData.getMinCampaignProgressByTitle(frame)
return getPropertyByTitle(frame, "MinCampaignProgress")
end
function WeaponsData.getTradeValueByTitle(frame)
return getPropertyByTitle(frame, "TradeValue")
end
function WeaponsData.getDeployCostsByTitle(frame)
return getPropertyByTitle(frame, "DeployCosts")
end
function WeaponsData.getMinRangeByTitle(frame)
return getPropertyByTitle(frame, "MinRange")
end
function WeaponsData.getIdealRangeByTitle(frame)
return getPropertyByTitle(frame, "IdealRange")
end
function WeaponsData.getMaxRangeByTitle(frame)
return getPropertyByTitle(frame, "MaxRange")
end
function WeaponsData.getAccuracyBonusByTitle(frame)
return getPropertyByTitle(frame, "AccuracyBonus")
end
function WeaponsData.getAccuracyDropoffByTitle(frame)
return getPropertyByTitle(frame, "AccuracyDropoff")
end
function WeaponsData.getDamageByTitle(frame)
return getPropertyByTitle(frame, "Damage")
end
function WeaponsData.getDamageDropoffByTitle(frame)
return getPropertyByTitle(frame, "DamageDropoff")
end
function WeaponsData.getDamagePctCurrentHitpointsByTitle(frame)
return getPropertyByTitle(frame, "Description")
end
function WeaponsData.getDamagePctCurrentHitpointsMinByTitle(frame)
return getPropertyByTitle(frame, "DamagePctCurrentHitpointsMin")
end
function WeaponsData.getDamagePctMaxHitpointsByTitle(frame)
return getPropertyByTitle(frame, "DamagePctMaxHitpoints")
end
function WeaponsData.getDamagePctMaxHitpointsMinByTitle(frame)
return getPropertyByTitle(frame, "DamagePctMaxHitpointsMin")
end
function WeaponsData.getArmorPenetrationByTitle(frame)
return getPropertyByTitle(frame, "ArmorPenetration")
end
function WeaponsData.getArmorPenetrationDropoffByTitle(frame)
return getPropertyByTitle(frame, "ArmorPenetrationDropoff")
end
function WeaponsData.getDamageToArmorDurabilityByTitle(frame)
return getPropertyByTitle(frame, "DamageToArmorDurability")
end
function WeaponsData.getDamageToArmorDurabilityMultByTitle(frame)
return getPropertyByTitle(frame, "DamageToArmorDurabilityMult")
end
function WeaponsData.getDamageToArmorDurabilityDropoffByTitle(frame)
return getPropertyByTitle(frame, "DamageToArmorDurabilityDropoff")
end
function WeaponsData.getDamageToArmorDurabilityDropoffMultByTitle(frame)
return getPropertyByTitle(frame, "DamageToArmorDurabilityDropoffMult")
end
function WeaponsData.getSuppressionByTitle(frame)
return getPropertyByTitle(frame, "Description")
end
function WeaponsData.getBlackMarketMaxQuantityByTitle(frame)
return getPropertyByTitle(frame, "BlackMarketMaxQuantity")
end
return WeaponsData


