diff --git a/Locales/enUS/base.lua b/Locales/enUS/base.lua index 68a746d..9b90264 100644 --- a/Locales/enUS/base.lua +++ b/Locales/enUS/base.lua @@ -4,7 +4,7 @@ end local L = ww_localization --- Strings in config.lua +-- config.lua L["WW_VERSION"] = "WeightsWatcher version: %s" L["ACCT_VERSION"] = " Account data version: %d%s%d" L["CHAR_VERSION"] = " Character data version: %d%s%d" @@ -19,7 +19,7 @@ L["version"] = "version" L["weights"] = "weights" L["DECIMAL_SEPARATOR"] = "." --- Strings in config.xml +-- config.xml L["CALC_OPTS"] = "Calculation Options" L["USE_UE_GEMS_TT"] = "Consider gems that are Unique-Equipped" L["USE_UE_GEMS"] = "Use Unique-Equipped Gems" diff --git a/Locales/enUS/classes-specs.lua b/Locales/enUS/classes-specs.lua new file mode 100644 index 0000000..b84de14 --- /dev/null +++ b/Locales/enUS/classes-specs.lua @@ -0,0 +1,47 @@ +if GetLocale() ~= "enUS" then + return +end + +ww_classDisplayNames = { + ["DEATHKNIGHT"] = "Death Knight", + ["DRUID"] = "Druid", + ["HUNTER"] = "Hunter", + ["MAGE"] = "Mage", + ["PALADIN"] = "Paladin", + ["PRIEST"] = "Priest", + ["ROGUE"] = "Rogue", + ["SHAMAN"] = "Shaman", + ["WARLOCK"] = "Warlock", + ["WARRIOR"] = "Warrior", +} + +ww_specNames = { + ["Affliction"] = "Affliction", + ["Arcane"] = "Arcane", + ["Assassination"] = "Assassination", + ["Balance"] = "Balance", + ["Beast Mastery"] = "Beast Mastery", + ["Blood DPS"] = "Blood DPS", + ["Combat"] = "Combat", + ["Demonology"] = "Demonology", + ["Destruction"] = "Destruction", + ["Discipline"] = "Discipline", + ["DPS"] = "DPS", + ["Elemental"] = "Elemental", + ["Enhancement"] = "Enhancement", + ["Feral DPS"] = "Feral DPS", + ["Feral Tank"] = "Feral Tank", + ["Fire"] = "Fire", + ["Frost"] = "Frost", + ["Frost DPS"] = "Frost DPS", + ["Holy"] = "Holy", + ["Marksmanship"] = "Marksmanship", + ["Protection"] = "Protection", + ["Restoration"] = "Restoration", + ["Retribution"] = "Retribution", + ["Shadow"] = "Shadow", + ["Subtlety"] = "Subtlety", + ["Survival"] = "Survival", + ["Tank"] = "Tank", + ["Unholy DPS"] = "Unholy DPS", +} diff --git a/Locales/enUS/dropdown-options.lua b/Locales/enUS/dropdown-options.lua new file mode 100644 index 0000000..f0c0ea2 --- /dev/null +++ b/Locales/enUS/dropdown-options.lua @@ -0,0 +1,18 @@ +if GetLocale() ~= "enUS" then + return +end + +ww_dropdownOptions = { + ["Always"] = "Always", + ["Other Classes"] = "Other Classes", + ["Never"] = "Never", + ["Shift"] = "Shift", + ["Control"] = "Control", + ["Alt"] = "Alt", + ["Left Shift"] = "Left Shift", + ["Right Shift"] = "Right Shift", + ["Left Control"] = "Left Control", + ["Right Control"] = "Right Control", + ["Left Alt"] = "Left Alt", + ["Right Alt"] = "Right Alt", +} diff --git a/Locales/enUS/enUS.xml b/Locales/enUS/enUS.xml index 9800c22..96c59ee 100644 --- a/Locales/enUS/enUS.xml +++ b/Locales/enUS/enUS.xml @@ -4,4 +4,7 @@ <Script file="gems.lua"/> <Script file="stats.lua"/> <Script file="slots.lua"/> + <Script file="classes-specs.lua"/> + <Script file="triggers.lua"/> + <Script file="dropdown-options.lua"/> </Ui> \ No newline at end of file diff --git a/Locales/enUS/gems.lua b/Locales/enUS/gems.lua index a8b9ccb..8608ad3 100644 --- a/Locales/enUS/gems.lua +++ b/Locales/enUS/gems.lua @@ -603,3 +603,13 @@ ww_socketColorDisplayNames = { [ww_localizedSocketColors["red"]] = "Red", [ww_localizedSocketColors["yellow"]] = "Yellow", } + +ww_gemQualityNames = { + [1] = "Burning Crusade common", + [2] = "Burning Crusade uncommon", + [3] = "Burning Crusade rare", + [4] = "Burning Crusade epic", + [5] = "Wrath uncommon", + [6] = "Wrath rare", + [7] = "Wrath epic", +} diff --git a/Locales/enUS/stats.lua b/Locales/enUS/stats.lua index 4de30e3..6b65db7 100644 --- a/Locales/enUS/stats.lua +++ b/Locales/enUS/stats.lua @@ -186,3 +186,21 @@ ww_statDisplayNames = { [ww_localizedStats["threat (percent)"]] = "Threat (Percent)", [ww_localizedStats["threat reduction (percent)"]] = "Threat Reduction (Percent)", } + +ww_statCategories = { + ["General"] = "General", + ["DPS"] = "DPS", + ["Tanking"] = "Tanking", + ["Physical DPS"] = "Physical DPS", + ["Melee DPS"] = "Melee DPS", + ["Ranged DPS"] = "Ranged DPS", + ["Caster"] = "Caster", + ["Caster DPS"] = "Caster DPS", + ["Healing"] = "Healing", + ["PVP"] = "PVP", + ["CC Resists/Reductions"] = "CC Resists/Reductions", + ["Resistances"] = "Resistances", + ["Professions"] = "Professions", + ["Triggers"] = "Triggers", + ["Miscellaneous"] = "Miscellaneous", +} diff --git a/Locales/enUS/triggers.lua b/Locales/enUS/triggers.lua new file mode 100644 index 0000000..d32daf0 --- /dev/null +++ b/Locales/enUS/triggers.lua @@ -0,0 +1,22 @@ +if GetLocale() == "enUS" then + local L = ww_localization + + ww_triggerDisplayNames = { + ["meleeDamage"] = "Melee damage dealt", + ["rangedDamage"] = "Ranged damage dealt", + ["harmfulSpell"] = "Harmful spell cast", + ["helpfulSpell"] = "Helpful spell cast", + } + + ww_triggerGroups = { + ["meleeDamageDealt"] = {"meleeDamage"}, + ["rangedDamageDealt"] = {"rangedDamage"}, + ["spellDamageDealt"] = {"harmfulSpell"}, + ["damagingSpellCast"] = {"harmfulSpell"}, + ["harmfulSpellHit"] = {"harmfulSpell"}, + ["spellCast"] = {"harmfulSpell", "helpfulSpell"}, + ["healingSpellCast"] = {"helpfulSpell"}, + ["helpfulSpellCast"] = {"helpfulSpell"}, + } + +end diff --git a/Upgrade.lua b/Upgrade.lua index 00e16e3..2a75965 100644 --- a/Upgrade.lua +++ b/Upgrade.lua @@ -53,6 +53,26 @@ local function noop_major_up(vars) return vars end +local function upgradeAccountToNewClassNameDisplayOptions(vars) + if vars.options.tooltip.showClassNames == "Others" then + vars.options.tooltip.showClassNames = "Other Classes" + end + + vars.dataMinorVersion = 21 + return vars +end + +local downgradeAccountFromNewClassNameDisplayOptions = [[ + return function(vars) + if vars.options.tooltip.showClassNames == "Other Classes" then + vars.options.tooltip.showClassNames = "Others" + end + + vars.dataMinorVersion = 20 + return vars + end +]] + local function upgradeAccountToRangedCritHasteAndHit(vars) for _, class in ipairs(vars.weightsList) do for _, weight in ipairs(vars.weightsList[class]) do @@ -982,6 +1002,7 @@ local upgradeAccountFunctions = { [17] = upgradeAccountToNoMeleeDamage, [18] = upgradeAccountToSpellHitAndCrit, [19] = upgradeAccountToRangedCritHasteAndHit, + [20] = upgradeAccountToNewClassNameDisplayOptions, }, } @@ -1019,6 +1040,7 @@ local downgradeAccountFunctions = { [18] = noop_down, [19] = noop_down, [20] = noop_down, + [21] = downgradeAccountFromNewClassNameDisplayOptions, }, } diff --git a/config.lua b/config.lua index 566a235..a1ebe03 100644 --- a/config.lua +++ b/config.lua @@ -70,7 +70,7 @@ function ww_ModifierKeyDropDownInitialize(dropdown) info.func = ModifierKeyDropDownOnClick info.arg1 = dropdown for _, value in ipairs(ww_keyDetectors) do - info.text = value + info.text = ww_dropdownOptions[value] info.value = value info.checked = nil UIDropDownMenu_AddButton(info) @@ -88,7 +88,7 @@ function ww_ShowClassNameDropDownInitialize(dropdown) info.func = ShowClassNameDropDownOnClick info.arg1 = dropdown for _, value in ipairs(ww_classNameOptions) do - info.text = ww_classNameOptions[value] + info.text = ww_dropdownOptions[value] info.value = value info.checked = nil UIDropDownMenu_AddButton(info) diff --git a/defaults.lua b/defaults.lua index d98c52a..6b0d98f 100644 --- a/defaults.lua +++ b/defaults.lua @@ -1,181 +1,139 @@ +local L = ww_localization + ww_trackedStats = { - "General", - "DPS", - "Physical DPS", - "Melee DPS", - "Ranged DPS", - "Tanking", - "Caster", - "Caster DPS", - "Healing", - "PVP", - "CC Resists/Reductions", - "Resistances", - "Triggers", - "Professions", - "Miscellaneous", - ["General"] = { - "Critical Strike Rating", - "Haste Rating", + ww_statCategories["General"], + ww_statCategories["DPS"], + ww_statCategories["Physical DPS"], + ww_statCategories["Melee DPS"], + ww_statCategories["Ranged DPS"], + ww_statCategories["Tanking"], + ww_statCategories["Caster"], + ww_statCategories["Caster DPS"], + ww_statCategories["Healing"], + ww_statCategories["PVP"], + ww_statCategories["CC Resists/Reductions"], + ww_statCategories["Resistances"], + ww_statCategories["Triggers"], + ww_statCategories["Professions"], + ww_statCategories["Miscellaneous"], + [ww_statCategories["General"]] = { + "critical strike rating", + "haste rating", }, - ["DPS"] = { - "Critical Damage (Percent)", - "Hit Rating", - "Threat Reduction (Percent)", + [ww_statCategories["DPS"]] = { + "critical damage (percent)", + "hit rating", + "threat reduction (percent)", }, - ["Physical DPS"] = { - "Agility", - "Armor Penetration Rating", - "Attack Power", - "Chance to Increase Physical Haste", - "Strength", + [ww_statCategories["Physical DPS"]] = { + "agility", + "armor penetration rating", + "attack power", + "chance to increase physical haste", + "strength", }, - ["Melee DPS"] = { - "Feral Attack Power", - "Expertise Rating", - "Melee DPS", - "Average Melee Weapon Damage", - "Maximum Melee Weapon Damage", - "Melee Weapon Speed", + [ww_statCategories["Melee DPS"]] = { + "feral attack power", + "expertise rating", + "melee dps", + "average melee weapon damage", + "maximum melee weapon damage", + "melee weapon speed", }, - ["Ranged DPS"] = { - "Ranged Attack Power", - "Ranged Critical Strike Rating", - "Ranged DPS", - "Ranged Haste Rating", - "Ranged Hit Rating", - "Average Ranged Weapon Damage", - "Maximum Ranged Weapon Damage", - "Ranged Weapon Speed", + [ww_statCategories["Ranged DPS"]] = { + "ranged attack power", + "ranged critical strike rating", + "ranged dps", + "ranged haste rating", + "ranged hit rating", + "average ranged weapon damage", + "maximum ranged weapon damage", + "ranged weapon speed", }, - ["Tanking"] = { - "Armor", - "Armor from Items (Percent)", - "Block Rating", - "Block Value", - "Block Value (Percent)", - "Chance to Restore Health on Hit", - "Defense Rating", - "Dodge Rating", - "Health", - "HP5", - "Parry Rating", - "Spell Damage Taken Reduction (Percent)", - "Stamina", - "Threat (Percent)", + [ww_statCategories["Tanking"]] = { + "armor", + "armor from items (percent)", + "block rating", + "block value", + "block value (percent)", + "chance to restore health on hit", + "defense rating", + "dodge rating", + "health", + "hp5", + "parry rating", + "spell damage taken reduction (percent)", + "stamina", + "threat (percent)", }, - ["Caster"] = { - "Chance to Increase Spell Haste", - "Intellect", - "Intellect (Percent)", - "Spell Critical Strike Rating", - "Spell Power", - "Spirit", + [ww_statCategories["Caster"]] = { + "chance to increase spell haste", + "intellect", + "intellect (percent)", + "spell critical strike rating", + "spell power", + "spirit", }, - ["Caster DPS"] = { - "Spell Hit Rating", - "Arcane Spell Damage", - "Fire Spell Damage", - "Frost Spell Damage", - "Holy Spell Damage", - "Nature Spell Damage", - "Shadow Spell Damage", + [ww_statCategories["Caster DPS"]] = { + "spell hit rating", + "arcane spell damage", + "fire spell damage", + "frost spell damage", + "holy spell damage", + "nature spell damage", + "shadow spell damage", }, - ["Healing"] = { - "Chance to Restore Mana on Spellcast", - "Critical Healing (Percent)", - "Mana", - "Mana (Percent)", - "MP5", + [ww_statCategories["Healing"]] = { + "chance to restore mana on spellcast", + "critical healing (percent)", + "mana", + "mana (percent)", + "mp5", }, - ["PVP"] = { - "Chance to Stun Target", - "Increased Stealth", - "Minor Run Speed", - "Resilience Rating", - "Sometimes Heal on your Crits", - "Spell Penetration", + [ww_statCategories["PVP"]] = { + "chance to stun target", + "increased stealth", + "minor run speed", + "resilience rating", + "sometimes heal on your crits", + "spell penetration", }, - ["CC Resists/Reductions"] = { - "Disarm Duration Reduction (Percent)", - "Disorient Resist Chance (Percent)", - "Fear Duration Reduction (Percent)", - "Fear Resist Chance (Percent)", - "Silence Duration Reduction (Percent)", - "Snare/Root Duration Reduction (Percent)", - "Spell Reflect (Percent)", - "Stun Duration Reduction (Percent)", - "Stun Resist Chance (Percent)", + [ww_statCategories["CC Resists/Reductions"]] = { + "disarm duration reduction (percent)", + "disorient resist chance (percent)", + "fear duration reduction (percent)", + "fear resist chance (percent)", + "silence duration reduction (percent)", + "snare/root duration reduction (percent)", + "spell reflect (percent)", + "stun duration reduction (percent)", + "stun resist chance (percent)", }, - ["Resistances"] = { - "Arcane", - "Fire", - "Frost", - "Holy", - "Nature", - "Shadow", - ["Arcane"] = "arcane resistance", - ["Fire"] = "fire resistance", - ["Frost"] = "frost resistance", - ["Holy"] = "holy resistance", - ["Nature"] = "nature resistance", - ["Shadow"] = "shadow resistance", + [ww_statCategories["Resistances"]] = { + "arcane resistance", + "fire resistance", + "frost resistance", + "holy resistance", + "nature resistance", + "shadow resistance", }, - ["Triggers"] = {}, - ["Professions"] = { - "Fishing", - "Herbalism", - "Mining", - "Skinning", + [ww_statCategories["Triggers"]] = {}, + [ww_statCategories["Professions"]] = { + "fishing", + "herbalism", + "mining", + "skinning", }, - ["Miscellaneous"] = { - "Mount Speed (Percent)", + [ww_statCategories["Miscellaneous"]] = { + "mount speed (percent)", }, } -ww_triggerGroups = { - ["meleeDamageDealt"] = {"meleeDamage"}, - ["rangedDamageDealt"] = {"rangedDamage"}, - ["spellDamageDealt"] = {"harmfulSpell"}, - ["damagingSpellCast"] = {"harmfulSpell"}, - ["harmfulSpellHit"] = {"harmfulSpell"}, - ["spellCast"] = {"harmfulSpell", "helpfulSpell"}, - ["healingSpellCast"] = {"helpfulSpell"}, - ["helpfulSpellCast"] = {"helpfulSpell"}, -} - -ww_triggerNames = { +ww_triggerTypes = { "meleeDamage", "rangedDamage", "harmfulSpell", "helpfulSpell", - ["meleeDamage"] = "Melee damage dealt", - ["rangedDamage"] = "Ranged damage dealt", - ["harmfulSpell"] = "Harmful spell cast", - ["helpfulSpell"] = "Helpful spell cast", -} - -ww_classDisplayNames = { - ["DEATHKNIGHT"] = "Death Knight", - ["DRUID"] = "Druid", - ["HUNTER"] = "Hunter", - ["MAGE"] = "Mage", - ["PALADIN"] = "Paladin", - ["PRIEST"] = "Priest", - ["ROGUE"] = "Rogue", - ["SHAMAN"] = "Shaman", - ["WARLOCK"] = "Warlock", - ["WARRIOR"] = "Warrior", -} - -ww_gemQualityNames = { - "Burning Crusade common", - "Burning Crusade uncommon", - "Burning Crusade rare", - "Burning Crusade epic", - "Wrath uncommon", - "Wrath rare", - "Wrath epic", } ww_keyDetectors = { @@ -205,16 +163,13 @@ ww_keyDetectors = { ww_classNameOptions = { "Always", - "Others", + "Other Classes", "Never", - ["Always"] = "Always", - ["Others"] = "Other Classes", - ["Never"] = "Never", } ww_defaultVars = { dataMajorVersion = 1, - dataMinorVersion = 20, + dataMinorVersion = 21, weightsList = { "DEATHKNIGHT", "DRUID", @@ -227,11 +182,11 @@ ww_defaultVars = { "WARLOCK", "WARRIOR", ["DEATHKNIGHT"] = { - "Blood DPS", - "Frost DPS", - "Unholy DPS", - "Tank", - ["Blood DPS"] = { + ww_specNames["Blood DPS"], + ww_specNames["Frost DPS"], + ww_specNames["Unholy DPS"], + ww_specNames["Tank"], + [ww_specNames["Blood DPS"]] = { ["melee dps"] = 360, ["armor penetration rating"] = 100, ["strength"] = 99, @@ -245,7 +200,7 @@ ww_defaultVars = { meleeDamage = true, } }, - ["Frost DPS"] = { + [ww_specNames["Frost DPS"]] = { ["melee dps"] = 337, ["hit rating"] = 100, ["strength"] = 97, @@ -259,7 +214,7 @@ ww_defaultVars = { meleeDamage = true, } }, - ["Unholy DPS"] = { + [ww_specNames["Unholy DPS"]] = { ["melee dps"] = 209, ["strength"] = 100, ["hit rating"] = 66, @@ -273,7 +228,7 @@ ww_defaultVars = { meleeDamage = true, } }, - ["Tank"] = { + [ww_specNames["Tank"]] = { ["melee dps"] = 419, ["parry rating"] = 100, ["hit rating"] = 97, @@ -293,11 +248,11 @@ ww_defaultVars = { }, }, ["DRUID"] = { - "Balance", - "Feral DPS", - "Feral Tank", - "Restoration", - ["Balance"] = { + ww_specNames["Balance"], + ww_specNames["Feral DPS"], + ww_specNames["Feral Tank"], + ww_specNames["Restoration"], + [ww_specNames["Balance"]] = { ["hit rating"] = 100, ["spell hit rating"] = 100, ["spell power"] = 66, @@ -310,7 +265,7 @@ ww_defaultVars = { harmfulSpell = true, } }, - ["Feral DPS"] = { + [ww_specNames["Feral DPS"]] = { ["agility"] = 100, ["armor penetration rating"] = 90, ["strength"] = 80, @@ -324,7 +279,7 @@ ww_defaultVars = { meleeDamage = true, } }, - ["Feral Tank"] = { + [ww_specNames["Feral Tank"]] = { ["agility"] = 100, ["stamina"] = 75, ["dodge rating"] = 65, @@ -341,7 +296,7 @@ ww_defaultVars = { meleeDamage = true, } }, - ["Restoration"] = { + [ww_specNames["Restoration"]] = { ["spell power"] = 100, ["mp5"] = 73, ["haste rating"] = 57, @@ -355,10 +310,10 @@ ww_defaultVars = { }, }, ["HUNTER"] = { - "Beast Mastery", - "Marksmanship", - "Survival", - ["Beast Mastery"] = { + ww_specNames["Beast Mastery"], + ww_specNames["Marksmanship"], + ww_specNames["Survival"], + [ww_specNames["Beast Mastery"]] = { ["ranged dps"] = 213, ["hit rating"] = 100, ["ranged hit rating"] = 100, @@ -375,7 +330,7 @@ ww_defaultVars = { rangedDamage = true, } }, - ["Marksmanship"] = { + [ww_specNames["Marksmanship"]] = { ["ranged dps"] = 379, ["hit rating"] = 100, ["ranged hit rating"] = 100, @@ -392,7 +347,7 @@ ww_defaultVars = { rangedDamage = true, } }, - ["Survival"] = { + [ww_specNames["Survival"]] = { ["ranged dps"] = 181, ["hit rating"] = 100, ["ranged hit rating"] = 100, @@ -411,10 +366,10 @@ ww_defaultVars = { }, }, ["MAGE"] = { - "Arcane", - "Fire", - "Frost", - ["Arcane"] = { + ww_specNames["Arcane"], + ww_specNames["Fire"], + ww_specNames["Frost"], + [ww_specNames["Arcane"]] = { ["hit rating"] = 100, ["spell hit rating"] = 100, ["haste rating"] = 54, @@ -430,7 +385,7 @@ ww_defaultVars = { harmfulSpell = true, } }, - ["Fire"] = { + [ww_specNames["Fire"]] = { ["hit rating"] = 100, ["spell hit rating"] = 100, ["haste rating"] = 53, @@ -445,7 +400,7 @@ ww_defaultVars = { harmfulSpell = true, } }, - ["Frost"] = { + [ww_specNames["Frost"]] = { ["hit rating"] = 100, ["spell hit rating"] = 100, ["haste rating"] = 42, @@ -462,10 +417,10 @@ ww_defaultVars = { }, }, ["PALADIN"] = { - "Holy", - "Protection", - "Retribution", - ["Holy"] = { + ww_specNames["Holy"], + ww_specNames["Protection"], + ww_specNames["Retribution"], + [ww_specNames["Holy"]] = { ["intellect"] = 100, ["mp5"] = 88, ["spell power"] = 58, @@ -476,7 +431,7 @@ ww_defaultVars = { helpfulSpell = true, } }, - ["Protection"] = { + [ww_specNames["Protection"]] = { ["stamina"] = 100, ["dodge rating"] = 94, ["block value"] = 86, @@ -496,7 +451,7 @@ ww_defaultVars = { meleeDamage = true, } }, - ["Retribution"] = { + [ww_specNames["Retribution"]] = { ["melee dps"] = 470, ["hit rating"] = 100, ["strength"] = 80, @@ -514,10 +469,10 @@ ww_defaultVars = { }, }, ["PRIEST"] = { - "Discipline", - "Holy", - "Shadow", - ["Discipline"] = { + ww_specNames["Discipline"], + ww_specNames["Holy"], + ww_specNames["Shadow"], + [ww_specNames["Discipline"]] = { ["spell power"] = 100, ["mp5"] = 67, ["intellect"] = 65, @@ -529,7 +484,7 @@ ww_defaultVars = { helpfulSpell = true, } }, - ["Holy"] = { + [ww_specNames["Holy"]] = { ["mp5"] = 100, ["intellect"] = 69, ["spell power"] = 60, @@ -541,7 +496,7 @@ ww_defaultVars = { helpfulSpell = true, } }, - ["Shadow"] = { + [ww_specNames["Shadow"]] = { ["hit rating"] = 100, ["spell hit rating"] = 100, ["shadow spell damage"] = 76, @@ -557,10 +512,10 @@ ww_defaultVars = { }, }, ["ROGUE"] = { - "Assassination", - "Combat", - "Subtlety", - ["Assassination"] = { + ww_specNames["Assassination"], + ww_specNames["Combat"], + ww_specNames["Subtlety"], + [ww_specNames["Assassination"]] = { ["melee dps"] = 170, ["agility"] = 100, ["expertise rating"] = 87, @@ -574,7 +529,7 @@ ww_defaultVars = { meleeDamage = true, } }, - ["Combat"] = { + [ww_specNames["Combat"]] = { ["melee dps"] = 220, ["armor penetration rating"] = 100, ["agility"] = 100, @@ -588,7 +543,7 @@ ww_defaultVars = { meleeDamage = true, } }, - ["Subtlety"] = { + [ww_specNames["Subtlety"]] = { ["melee dps"] = 228, ["expertise rating"] = 100, ["agility"] = 100, @@ -604,10 +559,10 @@ ww_defaultVars = { }, }, ["SHAMAN"] = { - "Elemental", - "Enhancement", - "Restoration", - ["Elemental"] = { + ww_specNames["Elemental"], + ww_specNames["Enhancement"], + ww_specNames["Restoration"], + [ww_specNames["Elemental"]] = { ["hit rating"] = 100, ["spell hit rating"] = 100, ["spell power"] = 60, @@ -619,7 +574,7 @@ ww_defaultVars = { harmfulSpell = true, } }, - ["Enhancement"] = { + [ww_specNames["Enhancement"]] = { ["melee dps"] = 135, ["hit rating"] = 100, ["expertise rating"] = 84, @@ -636,7 +591,7 @@ ww_defaultVars = { meleeDamage = true, } }, - ["Restoration"] = { + [ww_specNames["Restoration"]] = { ["mp5"] = 100, ["intellect"] = 85, ["spell power"] = 77, @@ -649,10 +604,10 @@ ww_defaultVars = { }, }, ["WARLOCK"] = { - "Affliction", - "Demonology", - "Destruction", - ["Affliction"] = { + ww_specNames["Affliction"], + ww_specNames["Demonology"], + ww_specNames["Destruction"], + [ww_specNames["Affliction"]] = { ["hit rating"] = 100, ["spell hit rating"] = 100, ["shadow spell damage"] = 72, @@ -667,7 +622,7 @@ ww_defaultVars = { harmfulSpell = true, } }, - ["Demonology"] = { + [ww_specNames["Demonology"]] = { ["hit rating"] = 100, ["spell hit rating"] = 100, ["haste rating"] = 50, @@ -682,7 +637,7 @@ ww_defaultVars = { harmfulSpell = true, } }, - ["Destruction"] = { + [ww_specNames["Destruction"]] = { ["hit rating"] = 100, ["spell hit rating"] = 100, ["fire spell damage"] = 47, @@ -699,9 +654,9 @@ ww_defaultVars = { }, }, ["WARRIOR"] = { - "DPS", - "Protection", - ["DPS"] = { + ww_specNames["DPS"], + ww_specNames["Protection"], + [ww_specNames["DPS"]] = { ["expertise rating"] = 100, ["strength"] = 82, ["critical strike rating"] = 66, @@ -715,7 +670,7 @@ ww_defaultVars = { meleeDamage = true, } }, - ["Protection"] = { + [ww_specNames["Protection"]] = { ["stamina"] = 100, ["dodge rating"] = 90, ["defense rating"] = 86, @@ -760,7 +715,7 @@ ww_defaultVars = { hideHints = false, normalizeWeights = true, showAlternateGems = "Alt", - showClassNames = "Others", + showClassNames = "Other Classes", showDebugInfo = "Never", showDifferences = true, showIdealGems = "Control", diff --git a/weights.lua b/weights.lua index a5bc30c..7e91048 100644 --- a/weights.lua +++ b/weights.lua @@ -364,7 +364,7 @@ end -- scrolledFrame is the frame that will hold everything -- elementType is the element template type -- elementHeight is the height of each element -local function createScrollableTieredList(template, scrollFrame, scrolledFrame, elementType, elementHeight) +local function createScrollableTieredList(template, scrollFrame, scrolledFrame, elementType, elementHeight, nameTable) local categoryFrame, elementFrame scrollFrame.categories = {} @@ -388,8 +388,8 @@ local function createScrollableTieredList(template, scrollFrame, scrolledFrame, elementFrame = CreateFrame("Frame", "WW_" .. element, scrollFrame.categories[i], elementType) elementFrame.position = j elementFrame.category = categoryFrame - elementFrame.text:SetText(element) - elementFrame.name = template[category][element] or element + elementFrame.text:SetText(nameTable[element]) + elementFrame.name = element elementFrame:SetPoint("TOPLEFT", 0, -elementHeight * j) table.insert(scrollFrame.shown, elementFrame) categoryFrame.length = categoryFrame.length + 1 @@ -403,6 +403,11 @@ end --loads the various class buttons onto the config frame local function loadClassButtons() local classes, revClassLookup, newClass = {}, {} + local metatable = { + __index = function(tbl, key) + return key + end + } for i, class in ipairs(ww_vars.weightsList) do newClass = ww_classDisplayNames[class] @@ -414,7 +419,7 @@ local function loadClassButtons() end end - createScrollableTieredList(classes, ww_weights.leftPanel.scrollFrame, ww_weights.leftPanel.scrollContainer, "ww_weightFrame", 22) + createScrollableTieredList(classes, ww_weights.leftPanel.scrollFrame, ww_weights.leftPanel.scrollContainer, "ww_weightFrame", 22, setmetatable({}, metatable)) for _, classFrame in ipairs(ww_weights.leftPanel.scrollFrame.categories) do classFrame.class = revClassLookup[classFrame.text:GetText()] @@ -445,16 +450,21 @@ end local function loadStatButtons() local stats = {} + local metatable = { + __index = function(tbl, key) + return ww_statDisplayNames[ww_localizedStats[key]] + end + } - createScrollableTieredList(ww_trackedStats, ww_weights.rightPanel.scrollFrame, ww_weights.rightPanel.scrollContainer, "ww_statFrame", 22) + createScrollableTieredList(ww_trackedStats, ww_weights.rightPanel.scrollFrame, ww_weights.rightPanel.scrollContainer, "ww_statFrame", 22, setmetatable({}, metatable)) for _, categoryFrame in ipairs(ww_weights.rightPanel.scrollFrame.categories) do if categoryFrame.name == "Triggers" then - for i, trigger in ipairs(ww_triggerNames) do + for i, trigger in ipairs(ww_triggerTypes) do local triggerFrame = CreateFrame("Frame", "WW_" .. trigger, categoryFrame, "ww_triggerFrame") triggerFrame.position = i triggerFrame.category = categoryFrame - triggerFrame.text:SetText(ww_triggerNames[trigger]) + triggerFrame.text:SetText(ww_triggerDisplayNames[trigger]) triggerFrame.active:SetText(trigger) triggerFrame.name = trigger triggerFrame:SetPoint("TOPLEFT", 0, -ww_weights.rightPanel.scrollFrame.elementHeight * i) @@ -468,7 +478,7 @@ local function loadStatButtons() for i, statFrame in ipairs(children) do if statFrame.name then table.insert(stats, statFrame) - statFrame.statName = string.lower(statFrame.name) + statFrame.statName = statFrame.name end end end