From d55ff5e4abf0f96c15cbf174d4dce1c42212645c Mon Sep 17 00:00:00 2001 From: Kevin Lyles Date: Sun, 26 Jan 2014 11:36:59 -0600 Subject: [PATCH] Fixed parsing of a few meta gems --- Locales/enUS/patterns-generic.lua | 2 ++ Locales/enUS/patterns.lua | 2 +- Locales/enUS/stats.lua | 4 +-- Upgrade.lua | 58 +++++++++++++++++++++++++++++++++++++ defaults.lua | 4 +-- 5 files changed, 65 insertions(+), 5 deletions(-) diff --git a/Locales/enUS/patterns-generic.lua b/Locales/enUS/patterns-generic.lua index a7b0152..007c87d 100644 --- a/Locales/enUS/patterns-generic.lua +++ b/Locales/enUS/patterns-generic.lua @@ -19,6 +19,8 @@ local GenericPreprocessLines = { {" critical strike %(ranged%)", " ranged critical strike"}, -- items 95346 and 95347 {", and ", " and "}, + -- items 95346 and 95347 + {" crit ", " critical strike "}, } local GenericAffixes = { diff --git a/Locales/enUS/patterns.lua b/Locales/enUS/patterns.lua index 496044e..bbc3216 100644 --- a/Locales/enUS/patterns.lua +++ b/Locales/enUS/patterns.lua @@ -570,7 +570,7 @@ ww_SingleStatLines = { end, {"generic"}, }, - {"^chance on being hit to gain 20%% reduction to physical damage taken$", + {"^chance on being hit to gain 20%% reduction to damage taken$", function(text, pattern) return WeightsWatcher.newStatTable({[text] = 1}) end, diff --git a/Locales/enUS/stats.lua b/Locales/enUS/stats.lua index 0a7e649..fd6d9e7 100644 --- a/Locales/enUS/stats.lua +++ b/Locales/enUS/stats.lua @@ -25,7 +25,7 @@ ww_localizedStats = { ["block"] = "block", ["block value (percent)"] = "block value (percent)", ["blood draining"] = "blood draining", - ["chance on being hit to gain 20% reduction to physical damage taken"] = "chance on being hit to gain 20% reduction to physical damage taken", + ["chance on being hit to gain 20% reduction to damage taken"] = "chance on being hit to gain 20% reduction to damage taken", ["chance on beneficial spell to make your spells cost no mana for 4 sec."] = "chance on beneficial spell to make your spells cost no mana for 4 sec.", ["chance on melee or ranged hit to gain capacitance"] = "chance on melee or ranged hit to gain capacitance", ["chance on spell damage to gain 30% spell haste"] = "chance on spell damage to gain 30% spell haste", @@ -179,7 +179,7 @@ ww_statDisplayNames = { [ww_localizedStats["block"]] = "Block", [ww_localizedStats["block value (percent)"]] = "Block Value (Percent)", [ww_localizedStats["blood draining"]] = "Blood Draining", - [ww_localizedStats["chance on being hit to gain 20% reduction to physical damage taken"]] = "Chance on Being Hit to Gain 20% Reduction to Physical Damage Taken", + [ww_localizedStats["chance on being hit to gain 20% reduction to damage taken"]] = "Chance on Being Hit to Gain 20% Reduction to Damage Taken", [ww_localizedStats["chance on beneficial spell to make your spells cost no mana for 4 sec."]] = "Chance on Beneficial Spell to Make Your Spells Cost no Mana for 4 sec.", [ww_localizedStats["chance on melee or ranged hit to gain capacitance"]] = "Chance on Melee or Ranged Hit to Gain Capacitance", [ww_localizedStats["chance on spell damage to gain 30% spell haste"]] = "Chance on Spell Damage to Gain 30% Spell Haste", diff --git a/Upgrade.lua b/Upgrade.lua index 5966f71..59a498b 100644 --- a/Upgrade.lua +++ b/Upgrade.lua @@ -36,6 +36,62 @@ local function noop_major_up(vars) return vars end +local function replaceStats(vars, conversions) + for _, class in ipairs(vars.weightsList) do + for _, weight in ipairs(vars.weightsList[class]) do + if vars.weightsList[class][weight] then + for oldStat, newStat in pairs(conversions) do + if vars.weightsList[class][weight][newStat] == nil then + vars.weightsList[class][weight][newStat] = vars.weightsList[class][weight][oldStat] + end + vars.weightsList[class][weight][oldStat] = nil + end + end + end + end +end + +local replaceStatsStr = [[ + local function replaceStats(vars, conversions) + for _, class in ipairs(vars.weightsList) do + for _, weight in ipairs(vars.weightsList[class]) do + if vars.weightsList[class][weight] then + for oldStat, newStat in pairs(conversions) do + if vars.weightsList[class][weight][newStat] == nil then + vars.weightsList[class][weight][newStat] = vars.weightsList[class][weight][oldStat] + end + vars.weightsList[class][weight][oldStat] = nil + end + end + end + end + end +]] + +local function upgradeAccountToNewMetaEffects(vars) + local conversions = { + ["chance on being hit to gain 20% reduction to physical damage taken"] = "chance on being hit to gain 20% reduction to damage taken", + } + + replaceStats(vars, conversions) + + vars.dataMinorVersion = 7 + return vars +end + +local downgradeAccountFromNewMetaEffects = replaceStatsStr .. [[ + return function(vars) + local conversions = { + ["chance on being hit to gain 20% reduction to damage taken"] = "chance on being hit to gain 20% reduction to physical damage taken", + } + + replaceStats(vars, conversions) + + vars.dataMinorVersion = 6 + return vars + end +]] + local function upgradeAccountToReplaceEmptyOptions(vars) if not vars.options then vars.options = ww_deepTableCopy(ww_defaultVars.options) @@ -1256,6 +1312,7 @@ local upgradeAccountFunctions = { [3] = upgradeAccountToMoPEnhancements, [4] = upgradeAccountToMonks, [5] = upgradeAccountToReplaceEmptyOptions, + [6] = upgradeAccountToNewMetaEffects, }, } @@ -1307,6 +1364,7 @@ local downgradeAccountFunctions = { [4] = downgradeAccountFromMoPEnhancements, [5] = noop_down, [6] = noop_down, + [7] = downgradeAccountFromNewMetaEffects, }, } diff --git a/defaults.lua b/defaults.lua index 6f1af26..e02678f 100644 --- a/defaults.lua +++ b/defaults.lua @@ -82,7 +82,7 @@ ww_trackedStats = { "armor from items (percent)", "average damage dealt on block", "block value (percent)", - "chance on being hit to gain 20% reduction to physical damage taken", + "chance on being hit to gain 20% reduction to damage taken", "chance to restore health on hit", "damage absorption (2% chance)", "damage absorption (5% chance)", @@ -265,7 +265,7 @@ ww_classNameOptions = { ww_defaultVars = { dataMajorVersion = 2, - dataMinorVersion = 6, + dataMinorVersion = 7, weightsList = { "DEATHKNIGHT", "DRUID", -- 1.7.9.5