diff --git a/Locales/enUS/classes-specs.lua b/Locales/enUS/classes-specs.lua index 1ae3d5b..12168d9 100644 --- a/Locales/enUS/classes-specs.lua +++ b/Locales/enUS/classes-specs.lua @@ -7,6 +7,7 @@ ww_classDisplayNames = { ["DRUID"] = "Druid", ["HUNTER"] = "Hunter", ["MAGE"] = "Mage", + ["MONK"] = "Monk", ["PALADIN"] = "Paladin", ["PRIEST"] = "Priest", ["ROGUE"] = "Rogue", @@ -23,6 +24,8 @@ ww_specNames = { ["Balance"] = "Balance", ["Beast Mastery"] = "Beast Mastery", ["Blood"] = "Blood", + ["Brewmaster"] = "Brewmaster", + ["Brewmaster DW"] = "Brewmaster DW", ["Combat"] = "Combat", ["Demonology"] = "Demonology", ["Destruction"] = "Destruction", @@ -38,6 +41,7 @@ ww_specNames = { ["Fury TG"] = "Fury TG", ["Holy"] = "Holy", ["Marksmanship"] = "Marksmanship", + ["Mistweaver"] = "Mistweaver", ["Protection"] = "Protection", ["Restoration"] = "Restoration", ["Retribution"] = "Retribution", @@ -46,4 +50,6 @@ ww_specNames = { ["Survival"] = "Survival", ["Unholy"] = "Unholy", ["Unholy DW"] = "Unholy DW", + ["Windwalker"] = "Windwalker", + ["Windwalker DW"] = "Windwalker DW", } diff --git a/Upgrade.lua b/Upgrade.lua index c380d65..144fa1a 100644 --- a/Upgrade.lua +++ b/Upgrade.lua @@ -36,6 +36,70 @@ local function noop_major_up(vars) return vars end +local function upgradeAccountToMonks(vars) + if vars.weightsList["MONK"] == nil then + vars.weightsList["MONK"] = ww_deepTableCopy(ww_defaultVars.weightsList["MONK"]) + table.insert(vars.weightsList, 5, "MONK") + end + + vars.dataMinorVersion = 5 + return vars +end + +local function upgradeAccountToMoPEnhancements(vars) + local limit = vars.options.gems.qualityLimit + if limit <= 10 and limit >= 8 then + vars.options.gems.qualityLimit = limit + 3 + end + + vars.dataMinorVersion = 4 + return vars +end + +local downgradeAccountFromMoPEnhancements = [[ + return function(vars) + local limit = vars.options.gems.qualityLimit + if limit <= 13 and limit >= 11 then + vars.options.gems.qualityLimit = limit - 3 + elseif limit == 14 then + vars.options.gems.qualityLimit = 10 + end + + vars.dataMinorVersion = 3 + return vars + end +]] + +local function upgradeAccountToPVPResilience(vars) + for _, class in ipairs(vars.weightsList) do + for _, weight in ipairs(vars.weightsList[class]) do + if vars.weightsList[class][weight]["pvp resilience"] == nil then + vars.weightsList[class][weight]["pvp resilience"] = vars.weightsList[class][weight]["resilience"] + end + vars.weightsList[class][weight]["resilience"] = nil + end + end + + vars.dataMinorVersion = 3 + return vars +end + +local downgradeAccountFromPVPResilience = [[ + return function(vars) + for _, class in ipairs(vars.weightsList) do + for _, weight in ipairs(vars.weightsList[class]) do + if vars.weightsList[class][weight]["resilience"] == nil then + vars.weightsList[class][weight]["resilience"] = vars.weightsList[class][weight]["pvp resilience"] + end + vars.weightsList[class][weight]["pvp resilience"] = nil + end + end + + vars.dataMinorVersion = 2 + return vars + end +]] + local function upgradeAccountToMoPStats(vars) local stats = { "critical strike", @@ -1179,6 +1243,9 @@ local upgradeAccountFunctions = { [2] = { [0] = upgradeAccountToCriticalEffect, [1] = upgradeAccountToMoPStats, + [2] = upgradeAccountToPVPResilience, + [3] = upgradeAccountToMoPEnhancements, + [4] = upgradeAccountToMonks, }, } @@ -1226,6 +1293,9 @@ local downgradeAccountFunctions = { [0] = downgradeAccountFromEnchants, [1] = noop_down, [2] = downgradeAccountFromMoPStats, + [3] = downgradeAccountFromPVPResilience, + [4] = downgradeAccountFromMoPEnhancements, + [5] = noop_down, }, } diff --git a/WeightsWatcher.toc b/WeightsWatcher.toc index 6df97cb..b38bea2 100644 --- a/WeightsWatcher.toc +++ b/WeightsWatcher.toc @@ -2,7 +2,7 @@ ## Title: Weights Watcher ## Notes: Ranks gear according to customizable stat weights ## Author: The Flying Squirrels -## Version: 1.6r1 +## Version: 1.6r3 ## OptionalDeps: AtlasLoot, tekErr ## SavedVariables: ww_vars ## SavedVariablesPerCharacter: ww_charVars diff --git a/defaults.lua b/defaults.lua index 5386423..3a06535 100644 --- a/defaults.lua +++ b/defaults.lua @@ -242,12 +242,13 @@ ww_classNameOptions = { ww_defaultVars = { dataMajorVersion = 2, - dataMinorVersion = 2, + dataMinorVersion = 5, weightsList = { "DEATHKNIGHT", "DRUID", "HUNTER", "MAGE", + "MONK", "PALADIN", "PRIEST", "ROGUE", @@ -466,6 +467,84 @@ ww_defaultVars = { }, }, }, + ["MONK"] = { + ww_specNames["Brewmaster"], + ww_specNames["Brewmaster DW"], + ww_specNames["Mistweaver"], + ww_specNames["Windwalker"], + ww_specNames["Windwalker DW"], + [ww_specNames["Brewmaster"]] = { + ["agility"] = 1.3, + ["expertise"] = 0.85, + ["hit"] = 0.85, + ["haste"] = 0.8, + ["critical strike"] = 0.7, + ["parry"] = 0.65, + ["armor"] = 0.6, + ["dodge"] = 0.55, + ["attack power"] = 0.45, + ["mastery"] = 0.4, + ["stamina"] = 0.35, + triggers = { + meleeDamage = true, + }, + }, + [ww_specNames["Brewmaster DW"]] = { + ["agility"] = 1.3, + ["expertise"] = 0.85, + ["hit"] = 0.85, + ["haste"] = 0.8, + ["critical strike"] = 0.7, + ["parry"] = 0.65, + ["armor"] = 0.6, + ["dodge"] = 0.55, + ["attack power"] = 0.45, + ["mastery"] = 0.4, + ["stamina"] = 0.35, + triggers = { + meleeDamage = true, + }, + }, + [ww_specNames["Mistweaver"]] = { + ["intellect"] = 1, + ["spell power"] = 0.85, + ["spirit"] = 0.75, + ["haste"] = 0.6, + ["critical strike"] = 0.5, + ["mastery"] = 0.4, + triggers = { + helpfulSpell = true, + }, + }, + [ww_specNames["Windwalker"]] = { + ["melee dps"] = 5.2, + ["hit"] = 3.4, + ["agility"] = 3, + ["expertise"] = 2.5, + ["critical strike"] = 1.6, + ["haste"] = 1.4, + ["strength"] = 1.16, + ["attack power"] = 1.1, + ["mastery"] = 0.9, + triggers = { + meleeDamage = true, + }, + }, + [ww_specNames["Windwalker DW"]] = { + ["melee dps"] = 5.2, + ["hit"] = 3.4, + ["agility"] = 3, + ["expertise"] = 2.5, + ["critical strike"] = 1.6, + ["haste"] = 1.4, + ["strength"] = 1.16, + ["attack power"] = 1.1, + ["mastery"] = 0.9, + triggers = { + meleeDamage = true, + }, + }, + }, ["PALADIN"] = { ww_specNames["Holy"], ww_specNames["Protection"],