Module:TestModule: Difference between revisions
From MENACE Official Wiki
No edit summary |
No edit summary |
||
| Line 3: | Line 3: | ||
--- | --- | ||
---@module | ---@module TestModule | ||
local | local TestModule = {} | ||
--region Dependencies | --region Dependencies | ||
| Line 15: | Line 15: | ||
--region Private member variables | --region Private member variables | ||
local | local TestModule | ||
--endregion | --endregion | ||
--region Private methods | --region Private methods | ||
local function loadData() | local function loadData() | ||
if not | if not TestModule then | ||
TestModule = JsonUtils.convertJSONToLuaTable(DATA_FILE) | |||
end | end | ||
end | end | ||
| Line 40: | Line 40: | ||
local weaponTitle = getTitleFromArgs(frame) | local weaponTitle = getTitleFromArgs(frame) | ||
for _, weapon in ipairs( | for _, weapon in ipairs(TestModule) do | ||
if string.lower(weapon.Title) == string.lower(weaponTitle) then | if string.lower(weapon.Title) == string.lower(weaponTitle) then | ||
return weapon[property] | return weapon[property] | ||
| Line 48: | Line 48: | ||
--endregion | --endregion | ||
function | function TestModule.getNameByTitle(frame) | ||
return getPropertyByTitle(frame, "Name") | return getPropertyByTitle(frame, "Name") | ||
end | end | ||
function | function TestModule.getPathIDByTitle(frame) | ||
return getPropertyByTitle(frame, "PathID") | return getPropertyByTitle(frame, "PathID") | ||
end | end | ||
function | function TestModule.getShortNameByTitle(frame) | ||
return getPropertyByTitle(frame, "ShortName") | return getPropertyByTitle(frame, "ShortName") | ||
end | end | ||
function | function TestModule.getDescriptionByTitle(frame) | ||
return getPropertyByTitle(frame, "Description") | return getPropertyByTitle(frame, "Description") | ||
end | end | ||
function | function TestModule.getIconByTitle(frame) | ||
return getPropertyByTitle(frame, "Icon") | return getPropertyByTitle(frame, "Icon") | ||
end | end | ||
function | function TestModule.getTagsByTitle(frame) | ||
return getPropertyByTitle(frame, "Tags") | return getPropertyByTitle(frame, "Tags") | ||
end | end | ||
function | function TestModule.getRarityByTitle(frame) | ||
return getPropertyByTitle(frame, "Rarity") | return getPropertyByTitle(frame, "Rarity") | ||
end | end | ||
function | function TestModule.getMinCampaignProgressByTitle(frame) | ||
return getPropertyByTitle(frame, "MinCampaignProgress") | return getPropertyByTitle(frame, "MinCampaignProgress") | ||
end | end | ||
function | function TestModule.getTradeValueByTitle(frame) | ||
return getPropertyByTitle(frame, "TradeValue") | return getPropertyByTitle(frame, "TradeValue") | ||
end | end | ||
function | function TestModule.getDeployCostsByTitle(frame) | ||
return getPropertyByTitle(frame, "DeployCosts") | return getPropertyByTitle(frame, "DeployCosts") | ||
end | end | ||
function | function TestModule.getMinRangeByTitle(frame) | ||
return getPropertyByTitle(frame, "MinRange") | return getPropertyByTitle(frame, "MinRange") | ||
end | end | ||
function | function TestModule.getIdealRangeByTitle(frame) | ||
return getPropertyByTitle(frame, "IdealRange") | return getPropertyByTitle(frame, "IdealRange") | ||
end | end | ||
function | function TestModule.getMaxRangeByTitle(frame) | ||
return getPropertyByTitle(frame, "MaxRange") | return getPropertyByTitle(frame, "MaxRange") | ||
end | end | ||
function | function TestModule.getAccuracyBonusByTitle(frame) | ||
return getPropertyByTitle(frame, "AccuracyBonus") | return getPropertyByTitle(frame, "AccuracyBonus") | ||
end | end | ||
function | function TestModule.getAccuracyDropoffByTitle(frame) | ||
return getPropertyByTitle(frame, "AccuracyDropoff") | return getPropertyByTitle(frame, "AccuracyDropoff") | ||
end | end | ||
function | function TestModule.getDamageByTitle(frame) | ||
return getPropertyByTitle(frame, "Damage") | return getPropertyByTitle(frame, "Damage") | ||
end | end | ||
function | function TestModule.getDamageDropoffByTitle(frame) | ||
return getPropertyByTitle(frame, "DamageDropoff") | return getPropertyByTitle(frame, "DamageDropoff") | ||
end | end | ||
function | function TestModule.getDamagePctCurrentHitpointsByTitle(frame) | ||
return getPropertyByTitle(frame, "Description") | return getPropertyByTitle(frame, "Description") | ||
end | end | ||
function | function TestModule.getDamagePctCurrentHitpointsMinByTitle(frame) | ||
return getPropertyByTitle(frame, "DamagePctCurrentHitpointsMin") | return getPropertyByTitle(frame, "DamagePctCurrentHitpointsMin") | ||
end | end | ||
function | function TestModule.getDamagePctMaxHitpointsByTitle(frame) | ||
return getPropertyByTitle(frame, "DamagePctMaxHitpoints") | return getPropertyByTitle(frame, "DamagePctMaxHitpoints") | ||
end | end | ||
function | function TestModule.getDamagePctMaxHitpointsMinByTitle(frame) | ||
return getPropertyByTitle(frame, "DamagePctMaxHitpointsMin") | return getPropertyByTitle(frame, "DamagePctMaxHitpointsMin") | ||
end | end | ||
function | function TestModule.getArmorPenetrationByTitle(frame) | ||
return getPropertyByTitle(frame, "ArmorPenetration") | return getPropertyByTitle(frame, "ArmorPenetration") | ||
end | end | ||
function | function TestModule.getArmorPenetrationDropoffByTitle(frame) | ||
return getPropertyByTitle(frame, "ArmorPenetrationDropoff") | return getPropertyByTitle(frame, "ArmorPenetrationDropoff") | ||
end | end | ||
function | function TestModule.getDamageToArmorDurabilityByTitle(frame) | ||
return getPropertyByTitle(frame, "DamageToArmorDurability") | return getPropertyByTitle(frame, "DamageToArmorDurability") | ||
end | end | ||
function | function TestModule.getDamageToArmorDurabilityMultByTitle(frame) | ||
return getPropertyByTitle(frame, "DamageToArmorDurabilityMult") | return getPropertyByTitle(frame, "DamageToArmorDurabilityMult") | ||
end | end | ||
function | function TestModule.getDamageToArmorDurabilityDropoffByTitle(frame) | ||
return getPropertyByTitle(frame, "DamageToArmorDurabilityDropoff") | return getPropertyByTitle(frame, "DamageToArmorDurabilityDropoff") | ||
end | end | ||
function | function TestModule.getDamageToArmorDurabilityDropoffMultByTitle(frame) | ||
return getPropertyByTitle(frame, "DamageToArmorDurabilityDropoffMult") | return getPropertyByTitle(frame, "DamageToArmorDurabilityDropoffMult") | ||
end | end | ||
function | function TestModule.getSuppressionByTitle(frame) | ||
return getPropertyByTitle(frame, "Description") | return getPropertyByTitle(frame, "Description") | ||
end | end | ||
function | function TestModule.getBlackMarketMaxQuantityByTitle(frame) | ||
return getPropertyByTitle(frame, "BlackMarketMaxQuantity") | return getPropertyByTitle(frame, "BlackMarketMaxQuantity") | ||
end | end | ||
return | return TestModule | ||
Revision as of 03:16, 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 TestModule
--endregion
--region Private methods
local function loadData()
if not TestModule then
TestModule = 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(TestModule) do
if string.lower(weapon.Title) == string.lower(weaponTitle) then
return weapon[property]
end
end
end
--endregion
function TestModule.getNameByTitle(frame)
return getPropertyByTitle(frame, "Name")
end
function TestModule.getPathIDByTitle(frame)
return getPropertyByTitle(frame, "PathID")
end
function TestModule.getShortNameByTitle(frame)
return getPropertyByTitle(frame, "ShortName")
end
function TestModule.getDescriptionByTitle(frame)
return getPropertyByTitle(frame, "Description")
end
function TestModule.getIconByTitle(frame)
return getPropertyByTitle(frame, "Icon")
end
function TestModule.getTagsByTitle(frame)
return getPropertyByTitle(frame, "Tags")
end
function TestModule.getRarityByTitle(frame)
return getPropertyByTitle(frame, "Rarity")
end
function TestModule.getMinCampaignProgressByTitle(frame)
return getPropertyByTitle(frame, "MinCampaignProgress")
end
function TestModule.getTradeValueByTitle(frame)
return getPropertyByTitle(frame, "TradeValue")
end
function TestModule.getDeployCostsByTitle(frame)
return getPropertyByTitle(frame, "DeployCosts")
end
function TestModule.getMinRangeByTitle(frame)
return getPropertyByTitle(frame, "MinRange")
end
function TestModule.getIdealRangeByTitle(frame)
return getPropertyByTitle(frame, "IdealRange")
end
function TestModule.getMaxRangeByTitle(frame)
return getPropertyByTitle(frame, "MaxRange")
end
function TestModule.getAccuracyBonusByTitle(frame)
return getPropertyByTitle(frame, "AccuracyBonus")
end
function TestModule.getAccuracyDropoffByTitle(frame)
return getPropertyByTitle(frame, "AccuracyDropoff")
end
function TestModule.getDamageByTitle(frame)
return getPropertyByTitle(frame, "Damage")
end
function TestModule.getDamageDropoffByTitle(frame)
return getPropertyByTitle(frame, "DamageDropoff")
end
function TestModule.getDamagePctCurrentHitpointsByTitle(frame)
return getPropertyByTitle(frame, "Description")
end
function TestModule.getDamagePctCurrentHitpointsMinByTitle(frame)
return getPropertyByTitle(frame, "DamagePctCurrentHitpointsMin")
end
function TestModule.getDamagePctMaxHitpointsByTitle(frame)
return getPropertyByTitle(frame, "DamagePctMaxHitpoints")
end
function TestModule.getDamagePctMaxHitpointsMinByTitle(frame)
return getPropertyByTitle(frame, "DamagePctMaxHitpointsMin")
end
function TestModule.getArmorPenetrationByTitle(frame)
return getPropertyByTitle(frame, "ArmorPenetration")
end
function TestModule.getArmorPenetrationDropoffByTitle(frame)
return getPropertyByTitle(frame, "ArmorPenetrationDropoff")
end
function TestModule.getDamageToArmorDurabilityByTitle(frame)
return getPropertyByTitle(frame, "DamageToArmorDurability")
end
function TestModule.getDamageToArmorDurabilityMultByTitle(frame)
return getPropertyByTitle(frame, "DamageToArmorDurabilityMult")
end
function TestModule.getDamageToArmorDurabilityDropoffByTitle(frame)
return getPropertyByTitle(frame, "DamageToArmorDurabilityDropoff")
end
function TestModule.getDamageToArmorDurabilityDropoffMultByTitle(frame)
return getPropertyByTitle(frame, "DamageToArmorDurabilityDropoffMult")
end
function TestModule.getSuppressionByTitle(frame)
return getPropertyByTitle(frame, "Description")
end
function TestModule.getBlackMarketMaxQuantityByTitle(frame)
return getPropertyByTitle(frame, "BlackMarketMaxQuantity")
end
return TestModule


