Quantcast

Added support for Monks

Kevin Lyles [10-05-12 - 23:26]
Added support for Monks
Filename
Locales/enUS/classes-specs.lua
Upgrade.lua
WeightsWatcher.toc
defaults.lua
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"],