diff --git a/EnchantIDs.lua b/EnchantIDs.lua
index 966fd4a..4c06c75 100644
--- a/EnchantIDs.lua
+++ b/EnchantIDs.lua
@@ -11095,24 +11095,40 @@ local enchantItemMetatable = {
table.insert(subslots, bareStats.nonStats.subslot)
for _, subslot in ipairs(subslots) do
for source, enchants in pairs(choices[slot][subslot] or {}) do
- for boa, enchants in pairs(enchants) do
- for faction, enchantIntervals in pairs(enchants) do
- for _, enchants in ipairs(enchantIntervals.find(ww_vars.options.useBoa and boa and #(ww_reputations) or WeightsWatcher.getRepLevel(faction))) do
- for profession, intervals in pairs(enchants) do
- for _, intervals in ipairs(intervals.find(WeightsWatcher.getSkillLevel(profession))) do
- for _, intervals in ipairs(intervals.find(bareStats.normalStats["item level"] or 1)) do
- for _, interval in ipairs(intervals.find(WeightsWatcher.player.level)) do
- for name, ids in pairs(interval) do
- for id in pairs(ids) do
- local score = WeightsWatcher.calculateWeight({}, { enchantStats = WeightsWatcher.enchantStats(id) }, tbl.weight)
- if score > bestScore then
- bestScore = score
- bestEnchants = { [name] = { id } }
- elseif score == bestScore then
- if not bestEnchants[name] then
- bestEnchants[name] = {}
+ if ww_vars.options.enchants.sources[source] then
+ for boa, enchants in pairs(enchants) do
+ for faction, enchantIntervals in pairs(enchants) do
+ local repLevel = WeightsWatcher.getRepLevel(faction)
+ if ww_vars.options.enchants.considerRep == "Any" then
+ repLevel = #(ww_reputations)
+ elseif ww_vars.options.enchants.considerRep == "Neutral or better" and repLevel >= 4 then
+ repLevel = #(ww_reputations)
+ elseif ww_vars.options.enchants.considerBoa and boa then
+ repLevel = #(ww_reputations)
+ end
+ for _, enchants in ipairs(enchantIntervals.find(repLevel)) do
+ for profession, intervals in pairs(enchants) do
+ local skillLevel = WeightsWatcher.getSkillLevel(profession)
+ if ww_vars.options.enchants.considerProfessions == "Any" then
+ skillLevel = 525
+ elseif ww_vars.options.enchants.considerProfessions == "One or higher" and skillLevel > 0 then
+ skillLevel = 525
+ end
+ for _, intervals in ipairs(intervals.find(skillLevel)) do
+ for _, intervals in ipairs(intervals.find(bareStats.normalStats["item level"] or 1)) do
+ for _, interval in ipairs(intervals.find(WeightsWatcher.player.level)) do
+ for name, ids in pairs(interval) do
+ for id in pairs(ids) do
+ local score = WeightsWatcher.calculateWeight({}, { enchantStats = WeightsWatcher.enchantStats(id) }, tbl.weight)
+ if score > bestScore then
+ bestScore = score
+ bestEnchants = { [name] = { id } }
+ elseif score == bestScore then
+ if not bestEnchants[name] then
+ bestEnchants[name] = {}
+ end
+ table.insert(bestEnchants[name], id)
end
- table.insert(bestEnchants[name], id)
end
end
end
diff --git a/Locales/enUS/base.lua b/Locales/enUS/base.lua
index 5dc7ca4..ad27b5f 100644
--- a/Locales/enUS/base.lua
+++ b/Locales/enUS/base.lua
@@ -36,11 +36,12 @@ L["CALC_OPTS"] = "Calculation Options"
L["DISPLAY_NAME"] = "Display"
L["DISPLAY_OPTS"] = "Display Options"
L["SHOW_WTS"] = "Show weights:"
-L["SHOW_IDEAL_WTS"] = "Show ideally-gemmed weights:"
-L["SHOW_IDEAL_GEMS"] = "Show ideal gems:"
-L["SHOW_ALT_IDEAL_GEMS"] = "Show alternate ideal gems:"
-L["SHOW_IDEAL_GEM_STATS"] = "Show ideal gem stats:"
+L["SHOW_IDEAL_WTS"] = "Show ideally-enhanced weights:"
+L["SHOW_IDEAL_ENHANCEMENTS"] = "Show ideal enhancements:"
+L["SHOW_ALT_IDEAL_ENHANCEMENTS"] = "Show alternate ideal enhancements:"
+L["SHOW_IDEAL_ENHANCEMENT_STATS"] = "Show ideal enhancement stats:"
L["SHOW_DEBUG"] = "Show parser debug information:"
+L["SHOW_ENHANCEMENTS_WHEN"] = "Show enhancements when:"
L["HIDE_HINTS_TT"] = "Hides modifier key hints in tooltips"
L["HIDE_HINTS"] = "Hide tooltip hints"
L["SHOW_CLASS"] = "Show class names:"
@@ -73,6 +74,20 @@ L["MATCH_SOCKET"] = "Obey socket colors"
L["MATCH_SOCKET_TT"] = "Chooses ideal gems that obey their socket color (even if that gives a lower overall score)"
L["ALWAYS_MATCH_SOCKET"] = "Even if the socket bonus is worthless"
L["ALWAYS_MATCH_SOCKET_TT"] = "Forces ideal gems to obey their socket color (even if the socket bonus has a 0 or negative score for that weight)"
+L["IDEAL_ENCHANT_NAME"] = "Ideal Enchants"
+L["IDEAL_ENCHANT_OPTS"] = "Ideal Enchant Options"
+L["USE_PC_ENCH_TT"] = "Consider enchants that are player crafted (usually but not always through Enchanting)"
+L["USE_PC_ENCH"] = "Use Crafted Enchants"
+L["USE_PVPVP_ENCH_TT"] = "Consider enchants that are purchasable with PVP tokens"
+L["USE_PVPVP_ENCH"] = "Use PVP Vendor-Purchasable Enchants"
+L["USE_QR_ENCH_TT"] = "Consider enchants that are quest rewards"
+L["USE_QR_ENCH"] = "Use Quest Reqard Enchants"
+L["USE_VP_ENCH_TT"] = "Consider enchants that are purchasable with gold"
+L["USE_VP_ENCH"] = "Use Vendor-Purchasable Enchants"
+L["USE_REP_ENCH"] = "Use enchants with rep requirements if my rep is:"
+L["USE_BTA_ENCH_TT"] = "Use enchants that bind to account, regardless of rep"
+L["USE_BTA_ENCH"] = "Use Bind to Account Enchants"
+L["USE_PROF_ENCH"] = "Use enchants with profession reqs if my skill is:"
-- weights.xml
L["WEIGHTS_TITLE"] = "WeightsWatcher Weight Values"
@@ -108,10 +123,10 @@ L["Gem Stats:"] = "Gem Stats:"
L["Enchant Stats:"] = "Enchant Stats:"
L[" Ideally-enhanced:"] = " Ideally-enhanced:"
L["UNWEIGHTED_HINT"] = "|cffff0000* indicates unweighted effects|r (%d total)"
-L["IDEAL_WTS_HINT"] = "<Press %s to show ideally-gemmed weights>"
-L["IDEAL_GEMS_HINT"] = "<Press %s to show ideal gems>"
-L["IDEAL_GEM_STATS_HINT"] = "<Press %s to show ideal gem stats>"
-L["IDEAL_ALT_GEMS_HINT"] = "<Press %s to show alternate ideal gems>"
+L["IDEAL_WTS_HINT"] = "<Press %s to show ideally-enhanced weights>"
+L["IDEAL_ENHANCEMENTS_HINT"] = "<Press %s to show ideal enhancements>"
+L["ENHANCEMENT_STATS_HINT"] = "<Press %s to show ideal enhancement stats>"
+L["ALT_ENHANCEMENTS_HINT"] = "<Press %s to show alternate enhancements>"
L["WTS_HINT"] = "<Press %s to show weights>"
L["DEBUG_HINT"] = "<Press %s to show debug info>"
L["WARN_UNREC_GEMID"] = "WeightsWatcher: Warning: Unrecognized GemId: %d"
@@ -130,6 +145,8 @@ L["MULTIPLE_GEM_FORMAT"] = " (Option %d/%d) %s (%s)"
L["SINGLE_GEM_FORMAT"] = " Using %s (%s)"
L["MULTIPLE_ENCHANT_FORMAT"] = " (Option %d/%d) %s"
L["SINGLE_ENCHANT_FORMAT"] = " Using %s"
+L["ENHANCEMENT_STAT_FORMAT"] = " %d %s"
+L["SOCKET_BONUS_FORMAT"] = " Socket Bonus"
L["Container"] = "Container"
L["Quiver"] = "Quiver"
L["Gem"] = "Gem"
diff --git a/Upgrade.lua b/Upgrade.lua
index d48f75d..9f9ac36 100644
--- a/Upgrade.lua
+++ b/Upgrade.lua
@@ -36,6 +36,70 @@ local function noop_major_up(vars)
return vars
end
+local function upgradeAccountToEnchants(vars)
+ if not vars.options.calculation then
+ vars.options.calculation = {}
+ end
+ if not vars.options.calculation.useEffectUptimeRatio then
+ vars.options.calculation.useEffectUptimeRatio = vars.options.useEffects.uptimeRatio or ww_defaultVars.options.calculation.useEffectUptimeRatio
+ end
+ vars.options.useEffects = nil
+
+ if vars.options.tooltip.showAlternateEnhancements == nil then
+ vars.options.tooltip.showAlternateEnhancements = vars.options.tooltip.showAlternateGems or ww_defaultVars.options.tooltip.showAlternateEnhancements
+ end
+ vars.options.tooltip.showAlternateGems = nil
+ if vars.options.tooltip.showEnhancements == nil then
+ vars.options.tooltip.showEnhancements = vars.options.tooltip.showIdealGems or ww_defaultVars.options.tooltip.showEnhancements
+ end
+ vars.options.tooltip.showIdealGems = nil
+ if vars.options.tooltip.showEnhancementStats == nil then
+ vars.options.tooltip.showEnhancementStats = vars.options.tooltip.showIdealGemStats or ww_defaultVars.options.tooltip.showEnhancementStats
+ end
+ vars.options.tooltip.showIdealGemStats = nil
+ if vars.options.tooltip.showEnhancementsWhen == nil then
+ vars.options.tooltip.showEnhancementsWhen = ww_defaultVars.options.tooltip.showEnhancementsWhen
+ end
+
+ if not vars.options.enchants then
+ vars.options.enchants = ww_deepTableCopy(ww_defaultVars.options.enchants)
+ end
+
+ vars.dataMajorVersion = 2
+ vars.dataMinorVersion = 0
+
+ return vars
+end
+
+local downgradeAccountFromEnchants = [[
+ return function(vars)
+ if not vars.options.useEffects then
+ vars.options.useEffects = {}
+ end
+ if not vars.options.useEffects.uptimeRatio then
+ vars.options.useEffects.uptimeRatio = vars.options.calculation.useEffectUptimeRatio or ww_defaultVars.options.useEffects.uptimeRatio
+ end
+
+ if vars.options.tooltip.showAlternateGems == nil then
+ vars.options.tooltip.showAlternateGems = vars.options.tooltip.showAlternateEnhancements or ww_defaultVars.options.tooltip.showAlternateGems
+ end
+ vars.options.tooltip.showAlternateEnhancements = nil
+ if vars.options.tooltip.showIdealGems == nil then
+ vars.options.tooltip.showIdealGems = vars.options.tooltip.showEnhancements or ww_defaultVars.options.tooltip.showIdealGems
+ end
+ vars.options.tooltip.showEnhancements = nil
+ if vars.options.tooltip.showIdealGemStats == nil then
+ vars.options.tooltip.showIdealGemStats = vars.options.tooltip.showEnhancementStats or ww_defaultVars.options.tooltip.showIdealGemStats
+ end
+ vars.options.tooltip.showEnhancementStats = nil
+
+ vars.dataMajorVersion = 1
+ vars.dataMinorVersion = 25
+
+ return vars
+ end
+]]
+
local function UpgradeAccountToShowZeroScores(vars)
if vars.options.tooltip.showZeroScores == nil then
vars.options.tooltip.showZeroScores = false
@@ -1040,6 +1104,7 @@ local upgradeAccountFunctions = {
[22] = upgradeAccountToMeleeCrit,
[23] = upgradeAccountToCataclysmGems,
[24] = UpgradeAccountToShowZeroScores,
+ [25] = upgradeAccountToEnchants,
},
}
@@ -1083,6 +1148,9 @@ local downgradeAccountFunctions = {
[24] = noop_down,
[25] = noop_down,
},
+ [2] = {
+ [0] = downgradeAccountFromEnchants,
+ },
}
local upgradeCharFunctions = {
diff --git a/WeightsWatcher.lua b/WeightsWatcher.lua
index e919e52..6d2551a 100644
--- a/WeightsWatcher.lua
+++ b/WeightsWatcher.lua
@@ -26,7 +26,6 @@ local ww_bareItemCacheMetatable = {
local ww_itemCacheMetatable = {
__index = function(tbl, key)
local gemStats, socketBonusActive
- -- TODO: handle the enchant
local bareLink, enchant, gems = splitLink(key)
local sockets = ww_bareItemCache[bareLink].sockets
@@ -132,6 +131,8 @@ local ww_weightIdealCacheWeightMetatable = {
tbl[key] = {
gemStats = gemStats,
score = WeightsWatcher.calculateWeight(itemStats, {socketBonusActive = socketBonusActive, enchantStats = enchantStats, gemStats = gemStats}, tbl.weight),
+ socketBonusActive = socketBonusActive,
+ socketBonusScore = socketBonusWeight,
}
return tbl[key]
end,
@@ -830,63 +831,173 @@ local function addDebugInfo(tooltip, bareItemInfo, link)
end
end
-local function addIdealGemInfo(tooltip, gemStats, showStats, showAlternates)
- local alternatesExist = false
- for _, gems in ipairs(gemStats) do
+local function addDifferenceLine(tooltip, leftText, score, currentScore)
+ local difference = score - currentScore
+ tooltip:AddDoubleLine(leftText, string.format(colorizeDifferences(difference), score, difference))
+end
+
+local function addIdealGemInfo(tooltip, gemStats, showStats, showAlternates, currentGems, weightScale)
+ local alternatesExist, changesExist = false, false
+ for slot, gems in ipairs(gemStats.gems) do
+ local alreadyApplied = false
for i, gem in ipairs(gems) do
- if #(gems) > 1 then
- tooltip:AddDoubleLine(string.format(L["MULTIPLE_GEM_FORMAT"], i, #(gems), ww_gemDisplayNames[gem[2]], ww_gemColorDisplayNames[gem[1]]), " ")
- alternatesExist = true
+ if gem[2] == currentGems.gems[slot][1][2] then
+ alreadyApplied = true
+ break
+ end
+ end
+
+ local forceDisplay = false
+ if ww_vars.options.tooltip.showEnhancementsWhen == "Always" then
+ forceDisplay = true
+ elseif ww_vars.options.tooltip.showEnhancementsWhen == "None applied" then
+ if currentGems.gems[slot][1][2] == "None" then
+ forceDisplay = true
else
- tooltip:AddDoubleLine(string.format(L["SINGLE_GEM_FORMAT"], ww_gemDisplayNames[gem[2]], ww_gemColorDisplayNames[gem[1]]), " ")
+ alreadyApplied = true
end
- if showStats then
- for stat, value in pairs(gem[3]) do
- tooltip:AddDoubleLine(string.format(L["TREBLY_INDENTED_STRING_FORMAT"], ww_statDisplayNames[stat]), value)
+ end
+
+ if not alreadyApplied or forceDisplay then
+ changesExist = true
+ for i, gem in ipairs(gems) do
+ local score = WeightsWatcher.calculateWeight({}, { gemStats = {{{ [3] = gem[3] }}} }, weightScale)
+ local currentScore = WeightsWatcher.calculateWeight({}, { gemStats = {{{ [3] = currentGems.gems[slot][1][3] }}} }, weightScale)
+ if #(gems) > 1 then
+ addDifferenceLine(tooltip, string.format(L["MULTIPLE_GEM_FORMAT"], i, #(gems), ww_gemDisplayNames[gem[2]], ww_gemColorDisplayNames[gem[1]]), score, currentScore)
+ alternatesExist = true
+ else
+ addDifferenceLine(tooltip, string.format(L["SINGLE_GEM_FORMAT"], ww_gemDisplayNames[gem[2]], ww_gemColorDisplayNames[gem[1]]), score, currentScore)
+ end
+ if showStats then
+ for stat, value in pairs(gem[3]) do
+ local weight = WeightsWatcher.getWeight(stat, value, weightScale)
+ if ww_vars.options.tooltip.normalizeWeights then
+ weight = weight / ww_weightNormalizationCache[weightScale]
+ end
+ tooltip:AddDoubleLine(string.format(L["ENHANCEMENT_STAT_FORMAT"], value, ww_statDisplayNames[stat] or "Unlocalized: " .. stat), string.format("%.3f", weight))
+ end
+ end
+ if not showAlternates then
+ break
end
- end
- if not showAlternates then
- break
end
end
end
- return alternatesExist
+ if changesExist and gemStats.socketBonusActive ~= currentGems.socketBonusActive then
+ addDifferenceLine(tooltip, L["SOCKET_BONUS_FORMAT"], gemStats.socketBonusActive and gemStats.socketBonusScore or 0, currentGems.socketBonusActive and currentGems.socketBonusScore or 0)
+ end
+ return alternatesExist, changesExist
end
-local function addIdealEnchantInfo(tooltip, enchants, showStats, showAlternates)
+local function addIdealEnchantInfo(tooltip, enchants, showStats, showAlternates, currentEnchants, slot, weightScale)
local count, displayCount = 0, 0
+ local alreadyApplied = false
+ local enchantsExist = false
for name, ids in pairs(enchants) do
count = count + #(ids)
+ enchantsExist = true
+ if not alreadyApplied then
+ for _, slot in ipairs(ww_slotsToCheck[slot]) do
+ if currentEnchants.name then
+ if currentEnchants.name[slot] == name then
+ alreadyApplied = true
+ break
+ elseif type(currentEnchants.name[slot]) == "table" then
+ for _, curName in ipairs(currentEnchants.name[slot]) do
+ if curName == name then
+ alreadyApplied = true
+ break
+ end
+ end
+ if alreadyApplied then
+ break
+ end
+ end
+ end
+ end
+ end
+ end
+ if not enchantsExist then
+ alreadyApplied = true
end
- local alternatesExist = count > 1
- for name, ids in pairs(enchants) do
- for i, id in pairs(ids) do
- displayCount = displayCount + 1
- if alternatesExist then
- tooltip:AddDoubleLine(string.format(L["MULTIPLE_ENCHANT_FORMAT"], displayCount, count, name), " ")
- else
- tooltip:AddDoubleLine(string.format(L["SINGLE_ENCHANT_FORMAT"], name), " ")
- end
- if showStats then
- for stat, value in pairs(WeightsWatcher.enchantStats(id).stats) do
- tooltip:AddDoubleLine(string.format(L["TREBLY_INDENTED_STRING_FORMAT"], ww_statDisplayNames[stat] or "Unlocalized: " .. stat), value)
+ local forceDisplay = false
+ if ww_vars.options.tooltip.showEnhancementsWhen == "Always" then
+ forceDisplay = true
+ elseif ww_vars.options.tooltip.showEnhancementsWhen == "None applied" then
+ if currentEnchants.name == nil then
+ forceDisplay = true
+ else
+ alreadyApplied = true
+ end
+ end
+
+ local alternatesExist, changesExist = count > 1, false
+
+ if not alreadyApplied or forceDisplay then
+ changesExist = true
+ for name, ids in pairs(enchants) do
+ for i, id in ipairs(ids) do
+ local enchantStats = WeightsWatcher.enchantStats(id)
+ displayCount = displayCount + 1
+ local score = WeightsWatcher.calculateWeight({}, { enchantStats = enchantStats }, weightScale)
+ local currentScore = WeightsWatcher.calculateWeight({}, { enchantStats = currentEnchants }, weightScale)
+ if alternatesExist then
+ addDifferenceLine(tooltip, string.format(L["MULTIPLE_ENCHANT_FORMAT"], displayCount, count, name), score, currentScore)
+ else
+ addDifferenceLine(tooltip, string.format(L["SINGLE_ENCHANT_FORMAT"], name), score, currentScore)
+ end
+ if showStats then
+ for stat, value in pairs(enchantStats.stats) do
+ local weight = WeightsWatcher.getWeight(stat, value, weightScale)
+ if ww_vars.options.tooltip.normalizeWeights then
+ weight = weight / ww_weightNormalizationCache[weightScale]
+ end
+ tooltip:AddDoubleLine(string.format(L["ENHANCEMENT_STAT_FORMAT"], value, ww_statDisplayNames[stat] or "Unlocalized: " .. stat), string.format("%.3f", weight))
+ end
+ end
+ if alternatesExist and not showAlternates then
+ break
end
end
- if alternatesExist and not showAlternates then
+ if not showAlternates then
break
end
end
- if not showAlternates then
- break
- end
end
+ return alternatesExist, changesExist
+end
+
+local function addEnhancementInfo(tooltip, enhancements, showStats, showAlternates, currentEnhancements, slot, weightScale)
+ local alternatesExist, changesExist = false, false
+ if enhancements.gems then
+ local alternates, changes = addIdealGemInfo(tooltip, enhancements, showStats, showAlternates, currentEnhancements, weightScale)
+ if alternates then
+ alternatesExist = true
+ end
+ if changes then
+ changesExist = true
+ end
+ end
+ if enhancements.enchants then
+ local alternates, changes = addIdealEnchantInfo(tooltip, enhancements.enchants, showStats, showAlternates, currentEnhancements.enchants, slot, weightScale)
+ if alternates then
+ alternatesExist = true
+ end
+ if changes then
+ changesExist = true
+ end
+ end
+ if not changesExist then
+ tooltip:AddLine(string.format(L["DOUBLY_INDENTED_STRING_FORMAT"], "All enhancements already applied"))
+ end
return alternatesExist
end
function WeightsWatcher.displayItemStats(tooltip, ttname)
- local alternateGemsExist = false
+ local alternateEnhancementsExist = false
local _, link = tooltip:GetItem()
if link == nil then
@@ -919,12 +1030,13 @@ function WeightsWatcher.displayItemStats(tooltip, ttname)
local showWeights = ww_keyDetectors[ww_vars.options.tooltip.showWeights]()
local showIdealWeights = ww_keyDetectors[ww_vars.options.tooltip.showIdealWeights]()
- local showIdealGems = ww_keyDetectors[ww_vars.options.tooltip.showIdealGems]()
- local showIdealGemStats = ww_keyDetectors[ww_vars.options.tooltip.showIdealGemStats]()
- local showAlternateGems = ww_keyDetectors[ww_vars.options.tooltip.showAlternateGems]()
+ local showEnhancements = ww_keyDetectors[ww_vars.options.tooltip.showEnhancements]()
+ local showEnhancementStats = ww_keyDetectors[ww_vars.options.tooltip.showEnhancementStats]()
+ local showAlternateEnhancements = ww_keyDetectors[ww_vars.options.tooltip.showAlternateEnhancements]()
local bareLink = splitLink(link)
local bareItemInfo = ww_bareItemCache[bareLink]
+ local itemInfo = ww_itemCache[link]
local compareMethod, compareLink, compareBareLink, compareLink2, compareBareLink2 = getCompareInfo(ttname, bareLink, bareItemInfo)
@@ -935,34 +1047,27 @@ function WeightsWatcher.displayItemStats(tooltip, ttname)
end
if showWeights then
+ local currentEnhancements = {
+ gems = itemInfo.gemStats,
+ socketBonusActive = itemInfo.socketBonusActive,
+ enchants = itemInfo.enchantStats,
+ }
for _, class in ipairs(ww_charVars.activeWeights) do
if ww_vars.weightsList[class] then
for _, weight in pairs(ww_charVars.activeWeights[class]) do
if ww_vars.weightsList[class][weight] then
local currentScore = ww_weightCache[class][weight][link]
if ww_vars.options.tooltip.showZeroScores or currentScore > 0 then
- local compareScore, compareScore2, compareBareScore, compareBareScore2
+ local compareScore, compareScore2
local str = weight
if ww_vars.options.tooltip.showClassNames == "Always" or (ww_vars.options.tooltip.showClassNames == "Others" and class ~= WeightsWatcher.player.class) then
str = string.format(L["WEIGHT_CLASS_FORMAT"], str, ww_classDisplayNames[class])
end
if compareLink then
compareScore = ww_weightCache[class][weight][compareLink]
- if showIdealWeights and #(bareItemInfo.sockets) == 0 then
- compareBareScore = ww_weightIdealCache[class][weight][compareBareLink].score
- if compareScore < compareBareScore then
- compareScore = compareBareScore
- end
- end
end
if compareLink2 then
compareScore2 = ww_weightCache[class][weight][compareLink2]
- if showIdealWeights and #(bareItemInfo.sockets) == 0 then
- compareBareScore2 = ww_weightIdealCache[class][weight][compareBareLink2].score
- if compareScore2 < compareBareScore2 then
- compareScore2 = compareBareScore2
- end
- end
end
compareScore = computeDifference(compareMethod, compareScore, compareScore2, currentScore)
tooltip:AddDoubleLine(str, string.format(colorizeDifferences(compareScore), currentScore, compareScore))
@@ -977,16 +1082,15 @@ function WeightsWatcher.displayItemStats(tooltip, ttname)
end
compareScore = computeDifference(compareMethod, compareScore, compareScore2, currentScore)
tooltip:AddDoubleLine(L[" Ideally-enhanced:"], string.format(colorizeDifferences(compareScore), currentScore, compareScore))
- if #(bareItemInfo.sockets) > 0 and showIdealGems then
- local gemStats = ww_weightIdealCache[class][weight][bareLink].gemStats
- if addIdealGemInfo(tooltip, gemStats, showIdealGemStats, showAlternateGems) then
- alternateGemsExist = true
- end
- end
- if showIdealGems then
- local enchants = ww_bestEnchantsCache[class][weight][bareLink]
- if addIdealEnchantInfo(tooltip, enchants, showIdealGemStats, showAlternateGems) then
- alternateGemsExist = true
+ if showEnhancements then
+ local enhancements = {
+ gems = ww_weightIdealCache[class][weight][bareLink].gemStats,
+ socketBonusActive = ww_weightIdealCache[class][weight][bareLink].socketBonusActive,
+ socketBonusScore = ww_weightIdealCache[class][weight][bareLink].socketBonusScore,
+ enchants = ww_bestEnchantsCache[class][weight][bareLink],
+ }
+ if addEnhancementInfo(tooltip, enhancements, showEnhancementStats, showAlternateEnhancements, currentEnhancements, bareItemInfo.nonStats.slot, ww_vars.weightsList[class][weight]) then
+ alternateEnhancementsExist = true
end
end
end
@@ -1003,19 +1107,19 @@ function WeightsWatcher.displayItemStats(tooltip, ttname)
if ww_vars.options.tooltip.showIdealWeights ~= "Never" then
tooltip:AddLine(string.format(L["IDEAL_WTS_HINT"], ww_vars.options.tooltip.showIdealWeights))
end
- elseif not showIdealGems then
- if ww_vars.options.tooltip.showIdealGems ~= "Never" then
- tooltip:AddLine(string.format(L["IDEAL_GEMS_HINT"], ww_vars.options.tooltip.showIdealGems))
+ elseif not showEnhancements then
+ if ww_vars.options.tooltip.showEnhancements ~= "Never" then
+ tooltip:AddLine(string.format(L["IDEAL_ENHANCEMENTS_HINT"], ww_vars.options.tooltip.showEnhancements))
end
else
- if not showIdealGemStats then
- if ww_vars.options.tooltip.showIdealGemStats ~= "Never" then
- tooltip:AddLine(string.format(L["IDEAL_GEM_STATS_HINT"], ww_vars.options.tooltip.showIdealGemStats))
+ if not showEnhancementStats then
+ if ww_vars.options.tooltip.showEnhancementStats ~= "Never" then
+ tooltip:AddLine(string.format(L["ENHANCEMENT_STATS_HINT"], ww_vars.options.tooltip.showEnhancementStats))
end
end
- if not showAlternateGems and alternateGemsExist then
- if ww_vars.options.tooltip.showAlternateGems ~= "Never" then
- tooltip:AddLine(string.format(L["IDEAL_ALT_GEMS_HINT"], ww_vars.options.tooltip.showAlternateGems))
+ if not showAlternateEnhancements and alternateEnhancementsExist then
+ if ww_vars.options.tooltip.showAlternateEnhancements ~= "Never" then
+ tooltip:AddLine(string.format(L["ALT_ENHANCEMENTS_HINT"], ww_vars.options.tooltip.showAlternateEnhancements))
end
end
end
@@ -1188,7 +1292,7 @@ function WeightsWatcher.calculateWeight(bareItemStats, itemStats, weightsScale)
weight = weight + WeightsWatcher.getWeight(ww_englishStats[stat], value, weightsScale)
end
for _, useEffect in pairs(bareItemStats.useEffects or {}) do
- local factor = useEffect.duration / useEffect.cooldown * ww_vars.options.useEffects.uptimeRatio
+ local factor = useEffect.duration / useEffect.cooldown * ww_vars.options.calculation.useEffectUptimeRatio
for stat, value in pairs(useEffect.stats) do
weight = weight + WeightsWatcher.getWeight(ww_englishStats[stat], value * factor, weightsScale)
end
diff --git a/config-calculation.xml b/config-calculation.xml
index 3b462e5..0a7f30b 100644
--- a/config-calculation.xml
+++ b/config-calculation.xml
@@ -77,7 +77,7 @@
local text = self:GetText()
if self:GetNumber() ~= 0 or text:match("^[0.]+$") or text == "" then
self.number = text
- ww_vars.options.useEffects.uptimeRatio = self:GetNumber() / 100
+ ww_vars.options.calculation.useEffectUptimeRatio = self:GetNumber() / 100
ww_weightCache = setmetatable({}, ww_weightCacheMetatable)
ww_weightIdealCache = setmetatable({}, ww_weightIdealCacheMetatable)
end
@@ -85,7 +85,7 @@
<OnChar>
if ww_validateNumber(text, self:GetText()) then
self.number = self:GetText()
- ww_vars.options.useEffects.uptimeRatio = self:GetNumber() / 100
+ ww_vars.options.calculation.useEffectUptimeRatio = self:GetNumber() / 100
ww_weightCache = setmetatable({}, ww_weightCacheMetatable)
ww_weightIdealCache = setmetatable({}, ww_weightIdealCacheMetatable)
else
diff --git a/config-display.xml b/config-display.xml
index 8628a59..f441719 100644
--- a/config-display.xml
+++ b/config-display.xml
@@ -52,7 +52,7 @@
</OnLoad>
</Scripts>
</Frame>
- <Frame name="$parentShowIdealGems" parentKey="showIdealGems" inherits="ww_modifierKeyDropDown">
+ <Frame name="$parentShowEnhancements" parentKey="showEnhancements" inherits="ww_modifierKeyDropDown">
<Anchors>
<Anchor point="TOPLEFT" relativePoint="BOTTOMLEFT" relativeTo="$parentShowIdealWeights">
<Offset>
@@ -62,14 +62,14 @@
</Anchors>
<Scripts>
<OnLoad>
- self.label:SetText(ww_localization["SHOW_IDEAL_GEMS"])
- self.dropdown:SetText("showIdealGems")
+ self.label:SetText(ww_localization["SHOW_IDEAL_ENHANCEMENTS"])
+ self.dropdown:SetText("showEnhancements")
</OnLoad>
</Scripts>
</Frame>
- <Frame name="$parentShowAlternateGems" parentKey="showIdealGemStats" inherits="ww_modifierKeyDropDown">
+ <Frame name="$parentShowAlternateEnhancements" parentKey="showAlternateEnhancements" inherits="ww_modifierKeyDropDown">
<Anchors>
- <Anchor point="TOPLEFT" relativePoint="BOTTOMLEFT" relativeTo="$parentShowIdealGems">
+ <Anchor point="TOPLEFT" relativePoint="BOTTOMLEFT" relativeTo="$parentShowEnhancements">
<Offset>
<AbsDimension x="20" y="0"/>
</Offset>
@@ -77,25 +77,25 @@
</Anchors>
<Scripts>
<OnLoad>
- self.label:SetText(ww_localization["SHOW_ALT_IDEAL_GEMS"])
- self.dropdown:SetText("showAlternateGems")
+ self.label:SetText(ww_localization["SHOW_ALT_IDEAL_ENHANCEMENTS"])
+ self.dropdown:SetText("showAlternateEnhancements")
</OnLoad>
</Scripts>
</Frame>
- <Frame name="$parentShowIdealGemStats" parentKey="showIdealGemStats" inherits="ww_modifierKeyDropDown">
+ <Frame name="$parentShowEnhancementStats" parentKey="showEnhancementStats" inherits="ww_modifierKeyDropDown">
<Anchors>
- <Anchor point="TOPLEFT" relativePoint="BOTTOMLEFT" relativeTo="$parentShowAlternateGems"/>
+ <Anchor point="TOPLEFT" relativePoint="BOTTOMLEFT" relativeTo="$parentShowAlternateEnhancements"/>
</Anchors>
<Scripts>
<OnLoad>
- self.label:SetText(ww_localization["SHOW_IDEAL_GEM_STATS"])
- self.dropdown:SetText("showIdealGemStats")
+ self.label:SetText(ww_localization["SHOW_IDEAL_ENHANCEMENT_STATS"])
+ self.dropdown:SetText("showEnhancementStats")
</OnLoad>
</Scripts>
</Frame>
<Frame name="$parentShowDebugInfo" parentKey="showDebugInfo" inherits="ww_modifierKeyDropDown">
<Anchors>
- <Anchor point="TOP" relativePoint="BOTTOM" relativeTo="$parentShowIdealGemStats"/>
+ <Anchor point="TOP" relativePoint="BOTTOM" relativeTo="$parentShowEnhancementStats"/>
<Anchor point="LEFT">
<Offset>
<AbsDimension x="9" y="0"/>
@@ -109,9 +109,47 @@
</OnLoad>
</Scripts>
</Frame>
- <CheckButton name="$parentHideTooltipHints" parentKey="hideTooltipHints" inherits="ww_checkButton">
+ <Frame name="$parentShowEnhancementsWhen" parentKey="showEnhancementsWhen" inherits="ww_labeledElement">
<Anchors>
<Anchor point="TOP" relativePoint="BOTTOM" relativeTo="$parentShowDebugInfo"/>
+ <Anchor point="LEFT">
+ <Offset>
+ <AbsDimension x="9" y="0"/>
+ </Offset>
+ </Anchor>
+ </Anchors>
+ <Size>
+ <AbsDimension x="0" y="30"/>
+ </Size>
+ <Frames>
+ <Button name="$parentDropdown" parentKey="dropdown" inherits="UIDropDownMenuTemplate">
+ <Anchors>
+ <Anchor point="LEFT" relativePoint="RIGHT" relativeTo="$parentLabel">
+ <Offset>
+ <AbsDimension x="-15" y="0"/>
+ </Offset>
+ </Anchor>
+ </Anchors>
+ <Scripts>
+ <OnLoad>
+ UIDropDownMenu_JustifyText(self, "LEFT")
+ </OnLoad>
+ <OnShow>
+ UIDropDownMenu_Initialize(self, ww_ShowEnhancementsWhenDropDownInitialize)
+ UIDropDownMenu_SetSelectedValue(self, ww_vars.options.tooltip.showEnhancementsWhen)
+ </OnShow>
+ </Scripts>
+ </Button>
+ </Frames>
+ <Scripts>
+ <OnLoad>
+ self.label:SetText(ww_localization["SHOW_ENHANCEMENTS_WHEN"])
+ </OnLoad>
+ </Scripts>
+ </Frame>
+ <CheckButton name="$parentHideTooltipHints" parentKey="hideTooltipHints" inherits="ww_checkButton">
+ <Anchors>
+ <Anchor point="TOP" relativePoint="BOTTOM" relativeTo="$parentShowEnhancementsWhen"/>
</Anchors>
<Scripts>
<OnClick>
diff --git a/config-enchants.xml b/config-enchants.xml
index e69de29..ff8fc24 100644
--- a/config-enchants.xml
+++ b/config-enchants.xml
@@ -0,0 +1,243 @@
+<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
+ <Frame name="ww_configEnchantOptions" inherits="ww_borderedFrame" hidden="true">
+ <Anchors>
+ <Anchor point="TOPLEFT"/>
+ <Anchor point="BOTTOMRIGHT"/>
+ </Anchors>
+ <Layers>
+ <Layer level="ARTWORK">
+ <FontString name="$parentHeader" parentKey="header" inherits="ww_headerFont"/>
+ </Layer>
+ <Layer level="BACKGROUND">
+ <Texture setAllPoints="true">
+ <!--Plain black background with 80% alpha-->
+ <Color r="0" g="0" b="0" a="0.8"/>
+ </Texture>
+ </Layer>
+ </Layers>
+ <Frames>
+ <CheckButton name="$parentUseCraftedEnchants" parentKey="useCraftedEnchants" inherits="ww_checkButton">
+ <Anchors>
+ <Anchor point="TOP" relativePoint="BOTTOM" relativeTo="$parentHeader"/>
+ </Anchors>
+ <Scripts>
+ <OnClick>
+ if self:GetChecked() then
+ ww_vars.options.enchants.sources["Crafted"] = true
+ else
+ ww_vars.options.enchants.sources["Crafted"] = false
+ end
+ WeightsWatcher.ResetEnchantCache()
+ ww_weightIdealCache = setmetatable({}, ww_weightIdealCacheMetatable)
+ </OnClick>
+ <OnLoad>
+ self.shouldBeChecked = function() return ww_vars.options.enchants.sources["Crafted"] end
+ self.ttText = ww_localization["USE_PC_ENCH_TT"]
+ self:SetText(ww_localization["USE_PC_ENCH"])
+ </OnLoad>
+ </Scripts>
+ </CheckButton>
+ <CheckButton name="$parentUsePVPVendorEnchants" parentKey="usePVPVendorEnchants" inherits="ww_checkButton">
+ <Anchors>
+ <Anchor point="TOP" relativePoint="BOTTOM" relativeTo="$parentUseCraftedEnchants"/>
+ </Anchors>
+ <Scripts>
+ <OnClick>
+ if self:GetChecked() then
+ ww_vars.options.enchants.sources["PVP-Vendor"] = true
+ else
+ ww_vars.options.enchants.sources["PVP-Vendor"] = false
+ end
+ WeightsWatcher.ResetEnchantCache()
+ ww_weightIdealCache = setmetatable({}, ww_weightIdealCacheMetatable)
+ </OnClick>
+ <OnLoad>
+ self.shouldBeChecked = function() return ww_vars.options.enchants.sources["PVP-Vendor"] end
+ self.ttText = ww_localization["USE_PVPVP_ENCH_TT"]
+ self:SetText(ww_localization["USE_PVPVP_ENCH"])
+ </OnLoad>
+ </Scripts>
+ </CheckButton>
+ <CheckButton name="$parentUseQuestEnchants" parentKey="useQuestEnchants" inherits="ww_checkButton">
+ <Anchors>
+ <Anchor point="TOP" relativePoint="BOTTOM" relativeTo="$parentUsePVPVendorEnchants"/>
+ </Anchors>
+ <Scripts>
+ <OnClick>
+ if self:GetChecked() then
+ ww_vars.options.enchants.sources["Quest"] = true
+ else
+ ww_vars.options.enchants.sources["Quest"] = false
+ end
+ WeightsWatcher.ResetEnchantCache()
+ ww_weightIdealCache = setmetatable({}, ww_weightIdealCacheMetatable)
+ </OnClick>
+ <OnLoad>
+ self.shouldBeChecked = function() return ww_vars.options.enchants.sources["Quest"] end
+ self.ttText = ww_localization["USE_QR_ENCH_TT"]
+ self:SetText(ww_localization["USE_QR_ENCH"])
+ </OnLoad>
+ </Scripts>
+ </CheckButton>
+ <CheckButton name="$parentUseVendorEnchants" parentKey="useVendorEnchants" inherits="ww_checkButton">
+ <Anchors>
+ <Anchor point="TOP" relativePoint="BOTTOM" relativeTo="$parentUseQuestEnchants"/>
+ </Anchors>
+ <Scripts>
+ <OnClick>
+ if self:GetChecked() then
+ ww_vars.options.enchants.sources["Vendor"] = true
+ else
+ ww_vars.options.enchants.sources["Vendor"] = false
+ end
+ WeightsWatcher.ResetEnchantCache()
+ ww_weightIdealCache = setmetatable({}, ww_weightIdealCacheMetatable)
+ </OnClick>
+ <OnLoad>
+ self.shouldBeChecked = function() return ww_vars.options.enchants.sources["Vendor"] end
+ self.ttText = ww_localization["USE_VP_ENCH_TT"]
+ self:SetText(ww_localization["USE_VP_ENCH"])
+ </OnLoad>
+ </Scripts>
+ </CheckButton>
+ <Frame name="$parentConsiderRep" parentKey="considerRep" inherits="ww_labeledElement">
+ <Anchors>
+ <Anchor point="TOP" relativePoint="BOTTOM" relativeTo="$parentUseVendorEnchants"/>
+ <Anchor point="LEFT">
+ <Offset>
+ <AbsDimension x="9" y="0"/>
+ </Offset>
+ </Anchor>
+ </Anchors>
+ <Size>
+ <AbsDimension x="0" y="30"/>
+ </Size>
+ <Frames>
+ <Button name="$parentDropdown" parentKey="dropdown" inherits="UIDropDownMenuTemplate">
+ <Anchors>
+ <Anchor point="LEFT" relativePoint="RIGHT" relativeTo="$parentLabel">
+ <Offset>
+ <AbsDimension x="-15" y="0"/>
+ </Offset>
+ </Anchor>
+ </Anchors>
+ <Scripts>
+ <OnLoad>
+ UIDropDownMenu_JustifyText(self, "LEFT")
+ </OnLoad>
+ <OnShow>
+ UIDropDownMenu_Initialize(self, ww_RepOptionsDropDownInitialize)
+ UIDropDownMenu_SetSelectedValue(self, ww_vars.options.enchants.considerRep)
+ if ww_vars.options.enchants.considerRep == "Any" then
+ ww_configEnchantOptions.considerBoa:Disable()
+ else
+ ww_configEnchantOptions.considerBoa:Enable()
+ end
+ </OnShow>
+ </Scripts>
+ </Button>
+ </Frames>
+ <Scripts>
+ <OnLoad>
+ self.label:SetText(ww_localization["USE_REP_ENCH"])
+ </OnLoad>
+ </Scripts>
+ </Frame>
+ <CheckButton name="$parentConsiderBoa" parentKey="considerBoa" inherits="ww_checkButton">
+ <Anchors>
+ <Anchor point="TOPLEFT" relativePoint="BOTTOMLEFT" relativeTo="$parentConsiderRep">
+ <Offset>
+ <AbsDimension x="20" y="5"/>
+ </Offset>
+ </Anchor>
+ </Anchors>
+ <Scripts>
+ <OnClick>
+ if self:GetChecked() then
+ ww_vars.options.enchants.considerBoa = true
+ else
+ ww_vars.options.enchants.considerBoa = false
+ end
+ WeightsWatcher.ResetEnchantCache()
+ ww_weightIdealCache = setmetatable({}, ww_weightIdealCacheMetatable)
+ </OnClick>
+ <OnLoad>
+ self.shouldBeChecked = function() return ww_vars.options.enchants.considerBoa end
+ self.ttText = ww_localization["USE_BTA_ENCH_TT"]
+ self:SetText(ww_localization["USE_BTA_ENCH"])
+ </OnLoad>
+ </Scripts>
+ </CheckButton>
+ <Frame name="$parentConsiderProfessions" parentKey="considerProfessions" inherits="ww_labeledElement">
+ <Anchors>
+ <Anchor point="TOP" relativePoint="BOTTOM" relativeTo="$parentConsiderBoa"/>
+ <Anchor point="LEFT">
+ <Offset>
+ <AbsDimension x="9" y="0"/>
+ </Offset>
+ </Anchor>
+ </Anchors>
+ <Size>
+ <AbsDimension x="0" y="30"/>
+ </Size>
+ <Frames>
+ <Button name="$parentDropdown" parentKey="dropdown" inherits="UIDropDownMenuTemplate">
+ <Anchors>
+ <Anchor point="LEFT" relativePoint="RIGHT" relativeTo="$parentLabel">
+ <Offset>
+ <AbsDimension x="-15" y="0"/>
+ </Offset>
+ </Anchor>
+ </Anchors>
+ <Scripts>
+ <OnLoad>
+ UIDropDownMenu_JustifyText(self, "LEFT")
+ </OnLoad>
+ <OnShow>
+ UIDropDownMenu_Initialize(self, ww_ProfessionOptionsDropDownInitialize)
+ UIDropDownMenu_SetSelectedValue(self, ww_vars.options.enchants.considerProfessions)
+ </OnShow>
+ </Scripts>
+ </Button>
+ </Frames>
+ <Scripts>
+ <OnLoad>
+ self.label:SetText(ww_localization["USE_PROF_ENCH"])
+ </OnLoad>
+ </Scripts>
+ </Frame>
+ </Frames>
+ <Scripts>
+ <OnLoad>
+ self.header:SetText(ww_localization["IDEAL_ENCHANT_OPTS"])
+ self.name = ww_localization["IDEAL_ENCHANT_NAME"]
+ self.parent = "WeightsWatcher"
+ self.default = function()
+ ww_vars.options.enchants = ww_defaultVars.options.enchants
+ WeightsWatcher.ResetEnchantCache()
+ ww_weightIdealCache = setmetatable({}, ww_weightIdealCacheMetatable)
+ end
+ local checkBoxes = {
+ "Crafted",
+ "PVP-Vendor",
+ "Quest",
+ "Vendor",
+ "considerBoa",
+ ["Vendor"] = self.useVendorEnchants,
+ ["PVP-Vendor"] = self.usePVPVendorEnchants,
+ ["Crafted"] = self.useCraftedEnchants,
+ ["Quest"] = self.useQuestEnchants,
+ ["considerBoa"] = self.considerBoa,
+ }
+ self.refresh = function()
+ for _, option in ipairs(checkBoxes) do
+ local checkBox = checkBoxes[option]
+ checkBox:SetChecked(checkBox.shouldBeChecked())
+ end
+ end
+ InterfaceOptions_AddCategory(self)
+ </OnLoad>
+ </Scripts>
+ </Frame>
+</Ui>
diff --git a/config.lua b/config.lua
index 7dfdced..3c7c4ae 100644
--- a/config.lua
+++ b/config.lua
@@ -114,3 +114,66 @@ function ww_ShowClassNameDropDownInitialize(dropdown)
UIDropDownMenu_AddButton(info)
end
end
+
+local function RepOptionsDropDownOnClick(choice, dropdown)
+ UIDropDownMenu_SetSelectedValue(dropdown, choice.value, false)
+ ww_vars.options.enchants.considerRep = choice.value
+ if choice.value == "Any" then
+ ww_configEnchantOptions.considerBoa:Disable()
+ else
+ ww_configEnchantOptions.considerBoa:Enable()
+ end
+ WeightsWatcher.ResetEnchantCache()
+ ww_weightIdealCache = setmetatable({}, ww_weightIdealCacheMetatable)
+end
+
+function ww_RepOptionsDropDownInitialize(dropdown)
+ local info = {}
+
+ info.func = RepOptionsDropDownOnClick
+ info.arg1 = dropdown
+ for _, value in ipairs({ "High enough", "Neutral or better", "Any" }) do
+ info.text = value
+ info.value = value
+ info.checked = nil
+ UIDropDownMenu_AddButton(info)
+ end
+end
+
+local function ProfessionOptionsDropDownOnClick(choice, dropdown)
+ UIDropDownMenu_SetSelectedValue(dropdown, choice.value, false)
+ ww_vars.options.enchants.considerProfessions = choice.value
+ WeightsWatcher.ResetEnchantCache()
+ ww_weightIdealCache = setmetatable({}, ww_weightIdealCacheMetatable)
+end
+
+function ww_ProfessionOptionsDropDownInitialize(dropdown)
+ local info = {}
+
+ info.func = ProfessionOptionsDropDownOnClick
+ info.arg1 = dropdown
+ for _, value in ipairs({ "High enough", "One or higher", "Any" }) do
+ info.text = value
+ info.value = value
+ info.checked = nil
+ UIDropDownMenu_AddButton(info)
+ end
+end
+
+local function ShowEnhancementsWhenDropDownOnClick(choice, dropdown)
+ UIDropDownMenu_SetSelectedValue(dropdown, choice.value, false)
+ ww_vars.options.tooltip.showEnhancementsWhen = choice.value
+end
+
+function ww_ShowEnhancementsWhenDropDownInitialize(dropdown)
+ local info = {}
+
+ info.func = ShowEnhancementsWhenDropDownOnClick
+ info.arg1 = dropdown
+ for _, value in ipairs({ "None applied", "Non-ideal applied", "Always" }) do
+ info.text = value
+ info.value = value
+ info.checked = nil
+ UIDropDownMenu_AddButton(info)
+ end
+end
diff --git a/defaults.lua b/defaults.lua
index 8c5d6b5..96860f3 100644
--- a/defaults.lua
+++ b/defaults.lua
@@ -187,8 +187,8 @@ ww_classNameOptions = {
}
ww_defaultVars = {
- dataMajorVersion = 1,
- dataMinorVersion = 25,
+ dataMajorVersion = 2,
+ dataMinorVersion = 0,
weightsList = {
"DEATHKNIGHT",
"DRUID",
@@ -679,40 +679,52 @@ ww_defaultVars = {
},
},
options = {
+ calculation = {
+ useEffectUptimeRatio = 0.8,
+ },
+ enchants = {
+ considerBoa = true,
+ considerRep = "High enough",
+ considerProfessions = "High enough",
+ sources = {
+ ["Crafted"] = true,
+ ["PVP-Vendor"] = false,
+ ["Quest"] = false,
+ ["Vendor"] = true,
+ },
+ },
gems = {
- qualityLimit = 10,
breakSocketColors = true,
neverBreakSocketColors = false,
- types = {
- ["Normal"] = true,
- ["Unique-Equipped"] = false,
- ["Jewelcrafter-Only"] = false,
- },
+ qualityLimit = 10,
sources = {
- ["Vendor"] = true,
- ["PVP-Vendor"] = false,
["Crafted"] = true,
- ["Procced"] = true,
["Drop"] = false,
+ ["Procced"] = true,
+ ["PVP-Vendor"] = false,
["Quest"] = false,
+ ["Vendor"] = true,
+ },
+ types = {
+ ["Jewelcrafter-Only"] = false,
+ ["Normal"] = true,
+ ["Unique-Equipped"] = false,
},
},
tooltip = {
hideHints = false,
normalizeWeights = true,
- showAlternateGems = "Alt",
+ showAlternateEnhancements = "Alt",
showClassNames = "Other Classes",
showDebugInfo = "Never",
showDifferences = true,
- showIdealGems = "Control",
- showIdealGemStats = "Always",
+ showEnhancements = "Control",
+ showEnhancementStats = "Always",
+ showEnhancementsWhen = "Non-ideal applied",
showIdealWeights = "Shift",
showWeights = "Always",
showZeroScores = false,
},
- useEffects = {
- uptimeRatio = 0.8,
- }
},
}