More actions
add move speed and sprint speed, fix signPrefix for 0 values and for values with "m" |
update key when changed in Special:Diff/20177 |
||
(17 intermediate revisions by 2 users not shown) | |||
Line 11: | Line 11: | ||
local function get_similar_items_array(property) | local function get_similar_items_array(property) | ||
local similarItems = {} | local similarItems = {} | ||
local hash = {} | |||
local noDuplicates = {} | |||
for _, v in pairs(data) do | for _, v in pairs(data) do | ||
for _, value in ipairs(property) do | for _, value in ipairs(property) do | ||
if (v[value] ~= nil and v[" | if (v[value] ~= nil and v["IsDisabled"] == false and v["Name"] ~= nil and v[value] ~= "0" and v[value] ~= "0m") then | ||
table.insert(similarItems, v) | table.insert(similarItems, v) | ||
end | end | ||
end | end | ||
end | end | ||
return | |||
-- remove duplicate items if that item contains multiple keys of the same stat increase (eg. Fleetfoot has both "BonusMoveSpeed", "ActiveBonusMoveSpeed" in move speed). | |||
-- there might be a more efficient way to prevent adding duplicate items in the first place in the above for loop | |||
for _, v in pairs(similarItems) do | |||
if (not hash[v]) then | |||
noDuplicates[#noDuplicates+1] = v | |||
hash[v] = true | |||
end | |||
end | |||
return noDuplicates | |||
end | end | ||
Line 62: | Line 73: | ||
friendly_to_internal["ammo"] = { "BonusClipSizePercent", "BonusClipSize", "ActiveReloadPercent" } | friendly_to_internal["ammo"] = { "BonusClipSizePercent", "BonusClipSize", "ActiveReloadPercent" } | ||
friendly_to_internal["weapon damage"] = { "BaseAttackDamagePercent", "CloseRangeBonusWeaponPower", "LongRangeBonusWeaponPower", "AttackDamageWhenShielded" } | friendly_to_internal["weapon damage"] = { "BaseAttackDamagePercent", "CloseRangeBonusWeaponPower", "LongRangeBonusWeaponPower", "AttackDamageWhenShielded" } | ||
friendly_to_internal["spirit damage"] = { "ProcBonusMagicDamage" } | |||
friendly_to_internal["bullet shield health"] = { "BulletShieldMaxHealth", "BulletShieldOnCast", "SaviorBulletShieldHealth", "FlyingBulletShield", "VexBarrierBulletMaxHealth" } | friendly_to_internal["bullet shield health"] = { "BulletShieldMaxHealth", "BulletShieldOnCast", "SaviorBulletShieldHealth", "FlyingBulletShield", "VexBarrierBulletMaxHealth" } | ||
friendly_to_internal["spirit shield health"] = { "TechShieldMaxHealth", "TechShieldOnCast", "SaviorMagicShieldHealth", "FlyingTechShield", "VexBarrierTechMaxHealth" } | friendly_to_internal["spirit shield health"] = { "TechShieldMaxHealth", "TechShieldOnCast", "SaviorMagicShieldHealth", "FlyingTechShield", "VexBarrierTechMaxHealth" } | ||
Line 76: | Line 88: | ||
friendly_to_internal["spirit power"] = { "TechPower", "BonusSpirit", "SpiritPower", "BonusSpiritWithMagicShield", "ImbuedTechPower", "AmbushBonusTechPower" } | friendly_to_internal["spirit power"] = { "TechPower", "BonusSpirit", "SpiritPower", "BonusSpiritWithMagicShield", "ImbuedTechPower", "AmbushBonusTechPower" } | ||
friendly_to_internal["bullet lifesteal"] = { "BulletLifestealPercent", "ActiveBonusLifesteal" } | friendly_to_internal["bullet lifesteal"] = { "BulletLifestealPercent", "ActiveBonusLifesteal" } | ||
friendly_to_internal["spirit lifesteal"] = { "AbilityLifestealPercentHero" } | |||
friendly_to_internal["move speed"] = { "BonusMoveSpeed", "ActiveBonusMoveSpeed" } | friendly_to_internal["move speed"] = { "BonusMoveSpeed", "ActiveBonusMoveSpeed" } | ||
friendly_to_internal["sprint speed"] = { "BonusSprintSpeed" } | friendly_to_internal["sprint speed"] = { "BonusSprintSpeed" } | ||
friendly_to_internal["movement slow"] = { "SlowPercent", "MovementSpeedSlow" } | |||
friendly_to_internal["reload time"] = { "ReloadSpeedMultipler" } | |||
friendly_to_internal["heavy melee distance"] = { "MeleeDistanceScale" } | |||
friendly_to_internal["bonus heavy damage"] = { "BonusHeavyMeleeDamage" } | |||
friendly_to_internal["bonus melee damage"] = { "BonusMeleeDamagePercent" } | |||
friendly_to_internal["melee resist"] = { "MeleeResistPercent" } | |||
friendly_to_internal["stamina"] = { "Stamina" } | friendly_to_internal["stamina"] = { "Stamina" } | ||
friendly_to_internal["slide distance"] = { "SlideScale" } | |||
friendly_to_internal["stamina recovery"] = { "StaminaCooldownReduction" } | friendly_to_internal["stamina recovery"] = { "StaminaCooldownReduction" } | ||
friendly_to_internal["healing reduction"] = { "HealAmpRegenPenaltyPercent" } | |||
-- Returns a table of internal properties | -- Returns a table of internal properties | ||
Line 102: | Line 123: | ||
"TechArmorDamageReduction", "MagicResistReduction", | "TechArmorDamageReduction", "MagicResistReduction", | ||
"BonusBulletSpeedPercent", | "BonusBulletSpeedPercent", | ||
"BulletLifestealPercent", "ActiveBonusLifesteal", | "BulletLifestealPercent", "ActiveBonusLifesteal", "AbilityLifestealPercentHero", | ||
"HealLifePercentOutOfCombat", | "HealLifePercentOutOfCombat", | ||
"StaminaCooldownReduction" }, | "ReloadSpeedMultipler", | ||
"MeleeDistanceScale", "BonusHeavyMeleeDamage", "BonusMeleeDamagePercent", "MeleeResistPercent", | |||
"SlideScale", | |||
"StaminaCooldownReduction", | |||
"SlowPercent", "MovementSpeedSlow", | |||
"HealAmpRegenPenaltyPercent" }, | |||
["m/s"] = { "BonusMoveSpeed", "ActiveBonusMoveSpeed", "BonusSprintSpeed" } | ["m/s"] = { "BonusMoveSpeed", "ActiveBonusMoveSpeed", "BonusSprintSpeed" } | ||
} | } |