Module:ItemTables: Difference between revisionsGive feedback
Jump to navigation
Jump to search
Added refresher to manual override list |
1) refactor a bit to use GameData module. 2) Update fire rate stat to better include Burst Fire |
||
| Line 1: | Line 1: | ||
local p = {}; | local p = {}; | ||
local get_cost = require("Module:ItemData")._get_cost | local get_cost = require("Module:ItemData")._get_cost | ||
local get_type = require("Module:ItemData")._get_type | local get_type = require("Module:ItemData")._get_type | ||
local commas = require("Module:Addcommas") | local commas = require("Module:Addcommas") | ||
local GameData = require("Module:GameData") | |||
local friendly_to_internal = {} | local friendly_to_internal = {} | ||
| Line 40: | Line 22: | ||
friendly_to_internal["out of combat health regen"] = { "OutOfCombatHealthRegen" } | friendly_to_internal["out of combat health regen"] = { "OutOfCombatHealthRegen" } | ||
friendly_to_internal["max health regen"] = { "HealLifePercentOutOfCombat" } | friendly_to_internal["max health regen"] = { "HealLifePercentOutOfCombat" } | ||
friendly_to_internal["fire rate"] = { "BonusFireRate", "FireRateWhenShielded", "FireRateBonus", "FervorFireRate", "AmbushBonusFireRate", "ActiveBonusFireRate" } | friendly_to_internal["fire rate"] = { "BonusFireRate", "FireRateWhenShielded", "FireRateBonus", "FervorFireRate", "AmbushBonusFireRate", "ActiveBonusFireRate", "ActivatedFireRate" } | ||
friendly_to_internal["fire rate slow"] = { "FireRateSlow" } | friendly_to_internal["fire rate slow"] = { "FireRateSlow" } | ||
friendly_to_internal["bullet velocity"] = { "BonusBulletSpeedPercent" } | friendly_to_internal["bullet velocity"] = { "BonusBulletSpeedPercent" } | ||
| Line 76: | Line 58: | ||
["Refresher"] = { BulletResist = "0", TechResist = "0" } | ["Refresher"] = { BulletResist = "0", TechResist = "0" } | ||
} | } | ||
--- Copies original table with its children as deep as possible. Does not handle metatables. (Copy is needed because Lua passes by reference, not value) | |||
-- @function Deepcopy | |||
-- @param {n-D table} | |||
-- @return {n-D table} | |||
function Deepcopy(orig) | |||
local orig_type = type(orig) | |||
local copy | |||
if orig_type == 'table' then | |||
copy = {} | |||
for orig_key, orig_value in next, orig, nil do | |||
copy[Deepcopy(orig_key)] = Deepcopy(orig_value) | |||
end | |||
else | |||
copy = orig | |||
end | |||
return copy | |||
end | |||
-- Helper to resolve a stat value, applying any dead‑stat override if defined. | -- Helper to resolve a stat value, applying any dead‑stat override if defined. | ||
| Line 102: | Line 102: | ||
"BaseAttackDamagePercent", "CloseRangeBonusWeaponPower", "LongRangeBonusWeaponPower", "AttackDamageWhenShielded", | "BaseAttackDamagePercent", "CloseRangeBonusWeaponPower", "LongRangeBonusWeaponPower", "AttackDamageWhenShielded", | ||
"TechResist", "BulletResist", | "TechResist", "BulletResist", | ||
"BonusFireRate", "FireRateWhenShielded", "FervorFireRate", "FireRateBonus", "AmbushBonusFireRate", "ActiveBonusFireRate", "FireRateSlow", | "BonusFireRate", "FireRateWhenShielded", "FervorFireRate", "FireRateBonus", "AmbushBonusFireRate", "ActiveBonusFireRate", "ActivatedFireRate", "FireRateSlow", | ||
"LocalBulletArmorReduction", "ReturnFireBulletResist", "BulletArmorReduction", "BulletResistReduction", "BulletResistPerStack", | "LocalBulletArmorReduction", "ReturnFireBulletResist", "BulletArmorReduction", "BulletResistReduction", "BulletResistPerStack", | ||
"TechArmorDamageReduction", "MagicResistReduction", | "TechArmorDamageReduction", "MagicResistReduction", | ||
| Line 190: | Line 190: | ||
listofKeysTable = friendlyNames(property) | listofKeysTable = friendlyNames(property) | ||
local filteredData = | local filteredData = GameData.get_entities(GameData.Dataset.ITEMS, listofKeysTable) | ||
table.sort(filteredData, defaultSort()) | table.sort(filteredData, defaultSort()) | ||