From a67562baa306cb5bbef964566a9b98fb18c8d676 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Thu, 29 Jan 2026 04:11:10 +0100 Subject: [PATCH 1/5] wip --- Modules/Config/DefenseSection.lua | 78 +++++++++++++----- Modules/Config/MeleeSection.lua | 16 +++- Modules/Config/RangeSection.lua | 16 +++- Modules/Config/SpellSection.lua | 16 +++- Modules/Data/Data.lua | 14 ++-- Modules/Data/Defense.lua | 15 ++++ Modules/Data/Melee.lua | 6 ++ Modules/Data/Ranged.lua | 6 ++ Modules/Data/SpellCrit.lua | 6 ++ .../DefenseConfigTranslations.lua | 80 +++++++++++++++++++ .../MeleeConfigTranslations.lua | 22 ++++- .../RangedConfigTranslations.lua | 20 +++++ .../SpellConfigTranslations.lua | 20 +++++ 13 files changed, 285 insertions(+), 30 deletions(-) diff --git a/Modules/Config/DefenseSection.lua b/Modules/Config/DefenseSection.lua index 2d42f42c..d2030d91 100755 --- a/Modules/Config/DefenseSection.lua +++ b/Modules/Config/DefenseSection.lua @@ -42,7 +42,7 @@ function _Config:LoadDefenseSection() }, meleeCritReduction = { type = "toggle", - order = 1.81, + order = 2, name = function() return i18n("Melee Crit Reduction") end, desc = function() return i18n("Shows/Hides the reduction percentage of being critically hit by melee attacks.") end, width = 1.5, @@ -55,7 +55,7 @@ function _Config:LoadDefenseSection() }, rangedCritReduction = { type = "toggle", - order = 1.82, + order = 2.1, name = function() return i18n("Ranged Crit Reduction") end, desc = function() return i18n("Shows/Hides the reduction percentage of being critically hit by ranged attacks.") end, width = 1.5, @@ -68,7 +68,7 @@ function _Config:LoadDefenseSection() }, spellCritReduction = { type = "toggle", - order = 1.83, + order = 2.2, name = function() return i18n("Spell Crit Reduction") end, desc = function() return i18n("Shows/Hides the reduction percentage of being critically hit by spells.") end, width = 1.5, @@ -81,7 +81,7 @@ function _Config:LoadDefenseSection() }, avoidance = { type = "toggle", - order = 1.85, + order = 3, name = function() return i18n("Avoidance") end, desc = function() return i18n("Shows/Hides the total avoidance.") end, width = 1.5, @@ -94,7 +94,7 @@ function _Config:LoadDefenseSection() }, avoidanceBoss = { type = "toggle", - order = 1.86, + order = 3.1, name = function() return i18n("Avoidance (Lvl +3)") end, desc = function() return i18n("Shows/Hides the total avoidance (Lvl +3).") end, width = 1.5, @@ -107,7 +107,7 @@ function _Config:LoadDefenseSection() }, defenseRating = { type = "toggle", - order = 1.9, + order = 4, name = function() return i18n("Defense Rating") end, desc = function() return i18n("Shows/Hides the defense rating.") end, width = 1.5, @@ -123,7 +123,7 @@ function _Config:LoadDefenseSection() }, defense = { type = "toggle", - order = 2, + order = 4.1, name = function() return i18n("Defense") end, desc = function() return i18n("Shows/Hides the defense value.") end, width = 1.5, @@ -134,9 +134,23 @@ function _Config:LoadDefenseSection() Stats.RebuildStatInfos() end, }, + blockRating = { + type = "toggle", + order = 5, + name = function() return i18n("Block Rating") end, + desc = function() return i18n("Shows/Hides the block rating.") end, + width = 1.5, + hidden = function() return ECS.IsClassic end, + disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, + get = function () return ExtendedCharacterStats.profile.defense.blockRating.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.defense.blockRating.display = value + Stats.RebuildStatInfos() + end, + }, blockChance = { type = "toggle", - order = 3, + order = 5.1, name = function() return i18n("Block Chance") end, desc = function() return i18n("Shows/Hides the block chance.") end, width = 1.5, @@ -149,7 +163,7 @@ function _Config:LoadDefenseSection() }, blockValue = { type = "toggle", - order = 4, + order = 5.2, name = function() return i18n("Block Value") end, desc = function() return i18n("Shows/Hides the block value.") end, width = 1.5, @@ -160,9 +174,23 @@ function _Config:LoadDefenseSection() Stats.RebuildStatInfos() end, }, + parryRating = { + type = "toggle", + order = 6, + name = function() return i18n("Parry Rating") end, + desc = function() return i18n("Shows/Hides the parry rating.") end, + width = 1.5, + hidden = function() return ECS.IsClassic end, + disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, + get = function () return ExtendedCharacterStats.profile.defense.parryRating.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.defense.parryRating.display = value + Stats.RebuildStatInfos() + end, + }, parry = { type = "toggle", - order = 5, + order = 6.1, name = function() return i18n("Parry Chance") end, desc = function() return i18n("Shows/Hides the parry chance.") end, width = 1.5, @@ -173,9 +201,23 @@ function _Config:LoadDefenseSection() Stats.RebuildStatInfos() end, }, + dodgeRating = { + type = "toggle", + order = 7, + name = function() return i18n("Dodge Rating") end, + desc = function() return i18n("Shows/Hides the dodge rating.") end, + width = 1.5, + hidden = function() return ECS.IsClassic end, + disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, + get = function () return ExtendedCharacterStats.profile.defense.dodgeRating.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.defense.dodgeRating.display = value + Stats.RebuildStatInfos() + end, + }, dodge = { type = "toggle", - order = 6, + order = 7.1, name = function() return i18n("Dodge Chance") end, desc = function() return i18n("Shows/Hides the dodge chance.") end, width = 1.5, @@ -188,17 +230,15 @@ function _Config:LoadDefenseSection() }, resilience = { type = "toggle", - order = 7, - name = function() return i18n("Resilience") end, - desc = function() return i18n("Shows/Hides the resilience value.") end, + order = 8, + name = function() return i18n("Resilience Rating") end, + desc = function() return i18n("Shows/Hides the resilience rating.") end, width = 1.5, - hidden = function() - return (not ECS.IsWotlk) - end, + hidden = function() return ECS.IsClassic end, disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, - get = function () return ExtendedCharacterStats.profile.defense.resilience.display; end, + get = function () return ExtendedCharacterStats.profile.defense.resilienceRating.display; end, set = function (_, value) - ExtendedCharacterStats.profile.defense.resilience.display = value + ExtendedCharacterStats.profile.defense.resilienceRating.display = value Stats.RebuildStatInfos() end, }, diff --git a/Modules/Config/MeleeSection.lua b/Modules/Config/MeleeSection.lua index 19c4a905..91e04290 100755 --- a/Modules/Config/MeleeSection.lua +++ b/Modules/Config/MeleeSection.lua @@ -40,9 +40,23 @@ function _Config:LoadMeleeSection() Stats.RebuildStatInfos() end, }, - meleeCrit = { + meleeCritRating = { type = "toggle", order = 2, + name = function() return i18n("Melee Crit Rating") end, + desc = function() return i18n("Shows/Hides the melee crit rating.") end, + width = 1.5, + hidden = function() return ECS.IsClassic end, + disabled = function() return (not ExtendedCharacterStats.profile.melee.display); end, + get = function () return ExtendedCharacterStats.profile.melee.critRating.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.melee.critRating.display = value + Stats.RebuildStatInfos() + end, + }, + meleeCrit = { + type = "toggle", + order = 2.1, name = function() return i18n("Melee Crit") end, desc = function() return i18n("Shows/Hides the melee crit chance.") end, width = 1.5, diff --git a/Modules/Config/RangeSection.lua b/Modules/Config/RangeSection.lua index 591e33c0..fdb594df 100755 --- a/Modules/Config/RangeSection.lua +++ b/Modules/Config/RangeSection.lua @@ -40,9 +40,23 @@ function _Config:LoadRangeSection() Stats.RebuildStatInfos() end, }, - rangeCrit = { + rangedCritRating = { type = "toggle", order = 2, + name = function() return i18n("Ranged Crit Rating") end, + desc = function() return i18n("Shows/Hides the ranged crit rating.") end, + width = 1.5, + hidden = function() return ECS.IsClassic end, + disabled = function() return (not ExtendedCharacterStats.profile.ranged.display); end, + get = function () return ExtendedCharacterStats.profile.ranged.critRating.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.ranged.critRating.display = value + Stats.RebuildStatInfos() + end, + }, + rangeCrit = { + type = "toggle", + order = 2.1, name = function() return i18n("Ranged Crit") end, desc = function() return i18n("Shows/Hides the ranged crit chance.") end, width = 1.5, diff --git a/Modules/Config/SpellSection.lua b/Modules/Config/SpellSection.lua index d026e2b6..410e9cb9 100755 --- a/Modules/Config/SpellSection.lua +++ b/Modules/Config/SpellSection.lua @@ -27,9 +27,23 @@ function _Config:LoadSpellSection() Stats.RebuildStatInfos() end, }, - spellCrit = { + spellCritRating = { type = "toggle", order = 1, + name = function() return i18n("Spell Crit Rating") end, + desc = function() return i18n("Shows/Hides the spell crit rating.") end, + width = 1.5, + hidden = function() return ECS.IsClassic end, + disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, + get = function () return ExtendedCharacterStats.profile.spell.critRating.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.spell.critRating.display = value + Stats.RebuildStatInfos() + end, + }, + spellCrit = { + type = "toggle", + order = 1.1, name = function() return i18n("Spell Crit") end, desc = function() return i18n("Shows/Hides the spell crit chance.") end, width = 1.5, diff --git a/Modules/Data/Data.lua b/Modules/Data/Data.lua index 7cfb50bf..a460ce25 100755 --- a/Modules/Data/Data.lua +++ b/Modules/Data/Data.lua @@ -21,6 +21,7 @@ dataFunctionRefs = { ["MovementSpeed"] = function() return Data:GetMovementSpeed() end, -- Melee ["MeleeAttackPower"] = function() return Data:GetMeleeAttackPower() end, + ["MeleeCritRating"] = function() return ECS.IsClassic and 0 or Data:GetMeleeCritRating() end, ["MeleeCritChance"] = function() return Data:MeleeCrit() end, ["Expertise"] = function() if ECS.IsWotlk then @@ -85,6 +86,7 @@ dataFunctionRefs = { ["MeleeAttackSpeedOffHand"] = function() return Data:GetMeleeAttackSpeedOffHand() end, -- Ranged ["RangeAttackpower"] = function() return Data:GetRangeAttackPower() end, + ["RangedCritRating"] = function() return ECS.IsClassic and 0 or Data:GetRangedCritRating() end, ["RangedCritChance"] = function() return Data:RangedCrit() end, ["RangedHitRating"] = function() if ECS.IsWotlk then @@ -140,17 +142,14 @@ dataFunctionRefs = { end end, ["DefenseValue"] = function() return Data:GetDefenseValue() end, + ["DodgeRating"] = function() return ECS.IsClassic and 0 or Data:GetDodgeRating() end, ["DodgeChance"] = function() return Data:GetDodgeChance() end, + ["ParryRating"] = function() return ECS.IsClassic and 0 or Data:GetParryRating() end, ["ParryChance"] = function() return Data:GetParryChance() end, + ["BlockRating"] = function() return ECS.IsClassic and 0 or Data:GetBlockRating() end, ["BlockChance"] = function() return Data:GetBlockChance() end, ["BlockValue"] = function() return Data:GetBlockValue() end, - ["ResilienceValue"] = function() - if ECS.IsWotlk then - return Data:GetResilienceRating() - else - return 0 - end - end, + ["ResilienceRating"] = function() return ECS.IsClassic and 0 or Data:GetResilienceRating() end, -- Spell ["SpellHitRating"] = function() if ECS.IsWotlk then @@ -162,6 +161,7 @@ dataFunctionRefs = { ["SpellHitBonus"] = function() return Data.SpellHitBonus(Data.HOLY_SCHOOL) end, ["SpellHitSameLevel"] = function() return Data:SpellMissChanceSameLevel(Data.HOLY_SCHOOL) end, ["SpellHitBossLevel"] = function() return Data:SpellMissChanceBossLevel(Data.HOLY_SCHOOL) end, + ["SpellCritRating"] = function() return ECS.IsClassic and 0 or Data:GetSpellCritRating() end, ["SpellCritChance"] = function() return Data:GetSpellCrit(Data.HOLY_SCHOOL) end, ["SpellHasteRating"] = function() if ECS.IsWotlk then diff --git a/Modules/Data/Defense.lua b/Modules/Data/Defense.lua index f50d2f2f..f05036a6 100755 --- a/Modules/Data/Defense.lua +++ b/Modules/Data/Defense.lua @@ -234,6 +234,21 @@ function Data:GetResilienceRating() return DataUtils:Round(GetCombatRating(15), 2) end +---@return number +function Data:GetParryRating() + return DataUtils:Round(GetCombatRating(CR_PARRY), 2) +end + +---@return number +function Data:GetDodgeRating() + return DataUtils:Round(GetCombatRating(CR_DODGE), 2) +end + +---@return number +function Data:GetBlockRating() + return DataUtils:Round(GetCombatRating(CR_BLOCK), 2) +end + ---@return number function _Defense:GetEnchantsBlockValue() local mod = 0 diff --git a/Modules/Data/Melee.lua b/Modules/Data/Melee.lua index e0f36ccf..93172cf3 100755 --- a/Modules/Data/Melee.lua +++ b/Modules/Data/Melee.lua @@ -277,6 +277,12 @@ function Data:GetMeleeHasteRating() return DataUtils:Round(hasteRating, 0) end +---@return number +function Data:GetMeleeCritRating() + local critRating = GetCombatRating(CR_CRIT_MELEE) + return DataUtils:Round(critRating, 0) +end + ---@return string function Data:GetMeleeHasteBonus() local hasteBonus = GetCombatRatingBonus(CR_HASTE_MELEE) diff --git a/Modules/Data/Ranged.lua b/Modules/Data/Ranged.lua index 957571d1..87a5b926 100755 --- a/Modules/Data/Ranged.lua +++ b/Modules/Data/Ranged.lua @@ -144,4 +144,10 @@ function Data.RangeMissChanceBossLevel() return DataUtils:Round(missChance, 2) .. "%" end +---@return number +function Data:GetRangedCritRating() + local critRating = GetCombatRating(CR_CRIT_RANGED) + return DataUtils:Round(critRating, 0) +end + return Data diff --git a/Modules/Data/SpellCrit.lua b/Modules/Data/SpellCrit.lua index 2d6569e9..2b21befb 100755 --- a/Modules/Data/SpellCrit.lua +++ b/Modules/Data/SpellCrit.lua @@ -185,3 +185,9 @@ end function Data:GetSpellPenetration() return DataUtils:Round(GetSpellPenetration(), 2) end + +---@return number +function Data:GetSpellCritRating() + local critRating = GetCombatRating(CR_CRIT_SPELL) + return DataUtils:Round(critRating, 0) +end \ No newline at end of file diff --git a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua index 8d2a36cb..06861091 100644 --- a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua @@ -182,6 +182,86 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false }, + ["Parry Rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, + ["Dodge Rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, + ["Block Rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, + ["Resilience Rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, + ["Shows/Hides the resilience rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, + ["Shows/Hides the parry rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, + ["Shows/Hides the dodge rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, + ["Shows/Hides the block rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, } for k, v in pairs(defenseConfigTranslations) do diff --git a/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua index 57db826a..8ed17347 100644 --- a/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua @@ -361,7 +361,27 @@ local meleeConfigTranslations = { ["esES"] = "Muestra/oculta todas las estadísticas de golpes de refilón", ["esMX"] = "Muestra/oculta todas las estadísticas de golpes de refilón", ["ptBR"] = "Mostra/oculta todas as estatísticas de pancada de relance" - } + }, + ["Melee Crit Rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, + ["Shows/Hides the melee crit rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, } for k, v in pairs(meleeConfigTranslations) do diff --git a/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua index f8576871..7b53c869 100644 --- a/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua @@ -161,6 +161,26 @@ local rangedConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de fallo contra jefes (nivel +3)", ["ptBR"] = "Mostra/oculta a chance de erro contra chefes (nível +3)" }, + ["Ranged Crit Rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, + ["Shows/Hides the ranged crit rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, } for k, v in pairs(rangedConfigTranslations) do diff --git a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua index 9fd59d06..e10fe768 100644 --- a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua @@ -222,6 +222,26 @@ local spellConfigTranslations = { ["esMX"] = "Muestra/oculta el valor de poder de sanación", ["ptBR"] = "Mostra/oculta o valor de poder de cura" }, + ["Spell Crit Rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, + ["Shows/Hides the spell crit rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, } for k, v in pairs(spellConfigTranslations) do From 1af29d6d3381c91b3ffa5bc26a3abad9400f6869 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Thu, 29 Jan 2026 17:10:34 +0100 Subject: [PATCH 2/5] wip --- Modules/Stats.lua | 182 +++++++++++++++++++++++----------------------- 1 file changed, 92 insertions(+), 90 deletions(-) diff --git a/Modules/Stats.lua b/Modules/Stats.lua index e10820a4..7c100ea7 100755 --- a/Modules/Stats.lua +++ b/Modules/Stats.lua @@ -215,12 +215,19 @@ _CreateStatInfos = function() _CreateStatInfo(category, category.movementSpeed) category = profile.melee - if ECS.IsWotlk then - _CreateStatInfo(category, category.attackPower, category.crit, category.penetration, category.penetrationRating, category.expertise, - category.expertiseRating, category.hasteRating, category.hasteBonus) - else - _CreateStatInfo(category, category.attackPower, category.crit) - end + _CreateStatInfo( + category, + category.attackPower, + ECS.IsClassic and nil or category.critRating, + category.crit, + ECS.IsWotlk and category.penetrationRating or nil, + ECS.IsClassic and nil or category.penetration, + ECS.IsClassic and nil or category.expertiseRating, + ECS.IsClassic and nil or category.expertise, + ECS.IsClassic and nil or category.hasteRating, + category.hasteBonus + ) + if category.display then category = category.hit _CreateStatInfo(category, category.rating, category.bonus, category.sameLevel, category.bossLevel) @@ -235,12 +242,17 @@ _CreateStatInfos = function() end category = profile.ranged - if ECS.IsWotlk then - _CreateStatInfo(category, category.attackPower, category.crit, category.penetration, category.penetrationRating, - category.hasteRating, category.hasteBonus, category.attackSpeed) - else - _CreateStatInfo(category, category.attackPower, category.crit, category.attackSpeed) - end + _CreateStatInfo( + category, + category.attackPower, + ECS.IsClassic and nil or category.critRating, + category.crit, + ECS.IsWotlk and category.penetrationRating or nil, + ECS.IsClassic and nil or category.penetration, + ECS.IsClassic and nil or category.hasteRating, + category.hasteBonus, + category.attackSpeed + ) if category.display then category = category.hit @@ -248,88 +260,78 @@ _CreateStatInfos = function() end category = profile.defense - _CreateStatInfo(category, category.armor, category.meleeCritReduction, category.rangedCritReduction, category.spellCritReduction, category.avoidance, category.avoidanceBoss, - category.defenseRating, category.defense, category.blockChance, category.blockValue, category.parry, category.dodge, category.resilience) + _CreateStatInfo( + category, + category.armor, + category.meleeCritReduction, + category.rangedCritReduction, + category.spellCritReduction, + category.avoidance, + category.avoidanceBoss, + ECS.IsClassic and nil or category.defenseRating, + category.defense, + ECS.IsClassic and nil or category.blockRating, + category.blockChance, + category.blockValue, + ECS.IsClassic and nil or category.parryRating, + category.parry, + ECS.IsClassic and nil or category.dodgeRating, + category.dodge, + ECS.IsClassic and nil or category.resilienceRating + ) category = profile.regen _CreateStatInfo(category, category.mp5Items, category.mp5Spirit, category.mp5Buffs, category.mp5Casting, category.mp5NotCasting) - category = profile.spell - if ECS.IsWotlk then - _CreateStatInfo(category, category.hasteRating, category.hasteBonus, category.penetration) - - if category.display then - category = category.hit - _CreateStatInfo(category, category.rating, category.bonus, category.sameLevel, category.bossLevel) - end - - category = profile.spellBonus - local spell = profile.spell - local spellCrit = spell.crit - _CreateStatInfo( - category, - category.bonusHealing, - spell.arcane.display and category.arcaneDmg or nil, - spell.arcane.display and spellCrit.arcane or nil, - spell.fire.display and category.fireDmg or nil, - spell.fire.display and spellCrit.fire or nil, - spell.frost.display and category.frostDmg or nil, - spell.frost.display and spellCrit.frost or nil, - spell.holy.display and category.holyDmg or nil, - spell.holy.display and spellCrit.holy or nil, - spell.nature.display and category.natureDmg or nil, - spell.nature.display and spellCrit.nature or nil, - spell.physical.display and category.physicalDmg or nil, - spell.physical.display and spellCrit.physical or nil, - spell.shadow.display and category.shadowDmg or nil, - spell.shadow.display and spellCrit.shadow or nil - ) - else - local spellBonus = profile.spellBonus - local spell = profile.spell - local spellCrit = spell.crit - local spellHit = spell.hit - _CreateStatInfo( - category, - category.penetration, - spellBonus.bonusHealing, - spell.arcane.display and spellBonus.arcaneDmg or nil, - spell.arcane.display and spellCrit.display and spellCrit.arcane or nil, - spell.arcane.display and spellHit.bonus.display and spellHit.arcaneHitBonus or nil, - spell.arcane.display and spellHit.sameLevel.display and spellHit.arcaneMissChance or nil, - spell.arcane.display and spellHit.bossLevel.display and spellHit.arcaneMissChanceBoss or nil, - spell.fire.display and spellBonus.fireDmg or nil, - spell.fire.display and spellCrit.display and spellCrit.fire or nil, - spell.fire.display and spellHit.bonus.display and spellHit.fireHitBonus or nil, - spell.fire.display and spellHit.sameLevel.display and spellHit.fireMissChance or nil, - spell.fire.display and spellHit.bossLevel.display and spellHit.fireMissChanceBoss or nil, - spell.frost.display and spellBonus.frostDmg or nil, - spell.frost.display and spellCrit.display and spellCrit.frost or nil, - spell.frost.display and spellHit.bonus.display and spellHit.frostHitBonus or nil, - spell.frost.display and spellHit.sameLevel.display and spellHit.frostMissChance or nil, - spell.frost.display and spellHit.bossLevel.display and spellHit.frostMissChanceBoss or nil, - spell.holy.display and spellBonus.holyDmg or nil, - spell.holy.display and spellCrit.display and spellCrit.holy or nil, - spell.holy.display and spellHit.bonus.display and spellHit.holyHitBonus or nil, - spell.holy.display and spellHit.sameLevel.display and spellHit.holyMissChance or nil, - spell.holy.display and spellHit.bossLevel.display and spellHit.holyMissChanceBoss or nil, - spell.nature.display and spellBonus.natureDmg or nil, - spell.nature.display and spellCrit.display and spellCrit.nature or nil, - spell.nature.display and spellHit.bonus.display and spellHit.natureHitBonus or nil, - spell.nature.display and spellHit.sameLevel.display and spellHit.natureMissChance or nil, - spell.nature.display and spellHit.bossLevel.display and spellHit.natureMissChanceBoss or nil, - spell.physical.display and spellBonus.physicalDmg or nil, - spell.physical.display and spellCrit.display and spellCrit.physical or nil, - spell.physical.display and spellHit.bonus.display and spellHit.physicalHitBonus or nil, - spell.physical.display and spellHit.sameLevel.display and spellHit.physicalMissChance or nil, - spell.physical.display and spellHit.bossLevel.display and spellHit.physicalMissChanceBoss or nil, - spell.shadow.display and spellBonus.shadowDmg or nil, - spell.shadow.display and spellCrit.display and spellCrit.shadow or nil, - spell.shadow.display and spellHit.bonus.display and spellHit.shadowHitBonus or nil, - spell.shadow.display and spellHit.sameLevel.display and spellHit.shadowMissChance or nil, - spell.shadow.display and spellHit.bossLevel.display and spellHit.shadowMissChanceBoss or nil - ) - end + local spellBonus = profile.spellBonus + local spell = profile.spell + local spellCrit = spell.crit + local spellHit = spell.hit + _CreateStatInfo( + category, + ECS.IsClassic and nil or category.hasteRating, + ECS.IsClassic and nil or category.hasteBonus, + ECS.IsClassic and nil or category.penetrationRating, + ECS.IsClassic and nil or category.penetration, + spellBonus.bonusHealing, + ECS.IsClassic and nil or spellHit.rating, + ECS.IsClassic and nil or spellCrit.rating, + spell.arcane.display and spellBonus.arcaneDmg or nil, + spell.arcane.display and spellCrit.display and spellCrit.arcane or nil, + spell.arcane.display and spellHit.bonus.display and spellHit.arcaneHitBonus or nil, + spell.arcane.display and spellHit.sameLevel.display and spellHit.arcaneMissChance or nil, + spell.arcane.display and spellHit.bossLevel.display and spellHit.arcaneMissChanceBoss or nil, + spell.fire.display and spellBonus.fireDmg or nil, + spell.fire.display and spellCrit.display and spellCrit.fire or nil, + spell.fire.display and spellHit.bonus.display and spellHit.fireHitBonus or nil, + spell.fire.display and spellHit.sameLevel.display and spellHit.fireMissChance or nil, + spell.fire.display and spellHit.bossLevel.display and spellHit.fireMissChanceBoss or nil, + spell.frost.display and spellBonus.frostDmg or nil, + spell.frost.display and spellCrit.display and spellCrit.frost or nil, + spell.frost.display and spellHit.bonus.display and spellHit.frostHitBonus or nil, + spell.frost.display and spellHit.sameLevel.display and spellHit.frostMissChance or nil, + spell.frost.display and spellHit.bossLevel.display and spellHit.frostMissChanceBoss or nil, + spell.holy.display and spellBonus.holyDmg or nil, + spell.holy.display and spellCrit.display and spellCrit.holy or nil, + spell.holy.display and spellHit.bonus.display and spellHit.holyHitBonus or nil, + spell.holy.display and spellHit.sameLevel.display and spellHit.holyMissChance or nil, + spell.holy.display and spellHit.bossLevel.display and spellHit.holyMissChanceBoss or nil, + spell.nature.display and spellBonus.natureDmg or nil, + spell.nature.display and spellCrit.display and spellCrit.nature or nil, + spell.nature.display and spellHit.bonus.display and spellHit.natureHitBonus or nil, + spell.nature.display and spellHit.sameLevel.display and spellHit.natureMissChance or nil, + spell.nature.display and spellHit.bossLevel.display and spellHit.natureMissChanceBoss or nil, + spell.physical.display and spellBonus.physicalDmg or nil, + spell.physical.display and spellCrit.display and spellCrit.physical or nil, + spell.physical.display and spellHit.bonus.display and spellHit.physicalHitBonus or nil, + spell.physical.display and spellHit.sameLevel.display and spellHit.physicalMissChance or nil, + spell.physical.display and spellHit.bossLevel.display and spellHit.physicalMissChanceBoss or nil, + spell.shadow.display and spellBonus.shadowDmg or nil, + spell.shadow.display and spellCrit.display and spellCrit.shadow or nil, + spell.shadow.display and spellHit.bonus.display and spellHit.shadowHitBonus or nil, + spell.shadow.display and spellHit.sameLevel.display and spellHit.shadowMissChance or nil, + spell.shadow.display and spellHit.bossLevel.display and spellHit.shadowMissChanceBoss or nil + ) end --- Creates a new header in the stats UI From e8f2af3bd9dd4fa529c2d459b88d66a3aa60cacd Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Fri, 30 Jan 2026 03:58:45 +0100 Subject: [PATCH 3/5] wip --- .../DefenseConfigTranslations.lua | 40 ------------------- .../i18n/translations/StatTranslations.lua | 40 +++++++++++++++++++ 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua index 06861091..6707f6a2 100644 --- a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua @@ -182,46 +182,6 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false }, - ["Parry Rating."] = { - ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, - }, - ["Dodge Rating."] = { - ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, - }, - ["Block Rating."] = { - ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, - }, - ["Resilience Rating."] = { - ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, - }, ["Shows/Hides the resilience rating."] = { ["enUS"] = true, ["deDE"] = true, diff --git a/Modules/i18n/translations/StatTranslations.lua b/Modules/i18n/translations/StatTranslations.lua index 6bf9140e..1226068a 100644 --- a/Modules/i18n/translations/StatTranslations.lua +++ b/Modules/i18n/translations/StatTranslations.lua @@ -322,6 +322,36 @@ local statTranslations = { ["esMX"] = "Defensa", ["ptBR"] = "Defesa" }, + ["Parry Rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, + ["Dodge Rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, + ["Block Rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, ["Block Chance"] = { ["enUS"] = true, ["deDE"] = "Blockchance", @@ -362,6 +392,16 @@ local statTranslations = { ["esMX"] = "Probabilidad de esquivar", ["ptBR"] = "Chance de esquivar" }, + ["Resilience Rating."] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, ["Resilience"] = { ["enUS"] = true, ["deDE"] = "Abhärtung", From 547646037426883bb1f8b14b6199438ce90c0875 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Fri, 30 Jan 2026 04:58:49 +0100 Subject: [PATCH 4/5] wip --- .../DefenseConfigTranslations.lua | 40 +++++++++++++++++++ .../MeleeConfigTranslations.lua | 2 +- .../RangedConfigTranslations.lua | 2 +- .../SpellConfigTranslations.lua | 2 +- .../i18n/translations/StatTranslations.lua | 32 ++++++++++++++- 5 files changed, 74 insertions(+), 4 deletions(-) diff --git a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua index 6707f6a2..ac53f08c 100644 --- a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua @@ -2,6 +2,46 @@ local i18n = ECSLoader:ImportModule("i18n") local defenseConfigTranslations = { + ["Parry Rating"] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, + ["Dodge Rating"] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, + ["Block Rating"] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, + ["Resilience Rating"] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, ["Melee Crit Reduction"] = { ["enUS"] = true, ["deDE"] = false, diff --git a/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua index 8ed17347..9e5a600c 100644 --- a/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua @@ -362,7 +362,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta todas las estadísticas de golpes de refilón", ["ptBR"] = "Mostra/oculta todas as estatísticas de pancada de relance" }, - ["Melee Crit Rating."] = { + ["Melee Crit Rating"] = { ["enUS"] = true, ["deDE"] = true, ["frFR"] = true, diff --git a/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua index 7b53c869..00baa15d 100644 --- a/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua @@ -161,7 +161,7 @@ local rangedConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de fallo contra jefes (nivel +3)", ["ptBR"] = "Mostra/oculta a chance de erro contra chefes (nível +3)" }, - ["Ranged Crit Rating."] = { + ["Ranged Crit Rating"] = { ["enUS"] = true, ["deDE"] = true, ["frFR"] = true, diff --git a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua index e10fe768..c72e1bdd 100644 --- a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua @@ -222,7 +222,7 @@ local spellConfigTranslations = { ["esMX"] = "Muestra/oculta el valor de poder de sanación", ["ptBR"] = "Mostra/oculta o valor de poder de cura" }, - ["Spell Crit Rating."] = { + ["Spell Crit Rating"] = { ["enUS"] = true, ["deDE"] = true, ["frFR"] = true, diff --git a/Modules/i18n/translations/StatTranslations.lua b/Modules/i18n/translations/StatTranslations.lua index 1226068a..ee17e8d3 100644 --- a/Modules/i18n/translations/StatTranslations.lua +++ b/Modules/i18n/translations/StatTranslations.lua @@ -42,6 +42,16 @@ local statTranslations = { ["esMX"] = "Poder de ataque", ["ptBR"] = "Poder de ataque" }, + ["Melee Crit Rating"] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, ["Crit Chance"] = { ["enUS"] = true, ["deDE"] = "Kritische Chance", @@ -252,6 +262,16 @@ local statTranslations = { ["esMX"] = "A distancia", ["ptBR"] = "Longo alcance" }, + ["Ranged Crit Rating"] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, ["Armor"] = { ["enUS"] = true, ["deDE"] = "Rüstung", @@ -392,7 +412,7 @@ local statTranslations = { ["esMX"] = "Probabilidad de esquivar", ["ptBR"] = "Chance de esquivar" }, - ["Resilience Rating."] = { + ["Resilience Rating"] = { ["enUS"] = true, ["deDE"] = true, ["frFR"] = true, @@ -482,6 +502,16 @@ local statTranslations = { ["esMX"] = "Hechizo", ["ptBR"] = "Feitiço" }, + ["Spell Crit Rating"] = { + ["enUS"] = true, + ["deDE"] = true, + ["frFR"] = true, + ["zhCN"] = true, + ["ruRU"] = true, + ["esES"] = true, + ["esMX"] = true, + ["ptBR"] = true, + }, ["Penetration"] = { ["enUS"] = true, ["deDE"] = "Durchschlagskraft", From a0e6b0f033b31c884a15019c3899d101771f03d2 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Fri, 30 Jan 2026 05:14:00 +0100 Subject: [PATCH 5/5] wip --- Modules/Config/MeleeSection.lua | 4 ++-- Modules/Config/RangeSection.lua | 4 ++-- Modules/Config/SpellSection.lua | 4 ++-- Modules/Profile.lua | 10 ++++----- .../MeleeConfigTranslations.lua | 4 ++-- .../RangedConfigTranslations.lua | 4 ++-- .../SpellConfigTranslations.lua | 4 ++-- .../i18n/translations/StatTranslations.lua | 22 +++++++++---------- 8 files changed, 28 insertions(+), 28 deletions(-) diff --git a/Modules/Config/MeleeSection.lua b/Modules/Config/MeleeSection.lua index 91e04290..afb9faf2 100755 --- a/Modules/Config/MeleeSection.lua +++ b/Modules/Config/MeleeSection.lua @@ -43,8 +43,8 @@ function _Config:LoadMeleeSection() meleeCritRating = { type = "toggle", order = 2, - name = function() return i18n("Melee Crit Rating") end, - desc = function() return i18n("Shows/Hides the melee crit rating.") end, + name = function() return i18n("Melee Crit. Rating") end, + desc = function() return i18n("Shows/Hides the melee crit. rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, disabled = function() return (not ExtendedCharacterStats.profile.melee.display); end, diff --git a/Modules/Config/RangeSection.lua b/Modules/Config/RangeSection.lua index fdb594df..7c277b83 100755 --- a/Modules/Config/RangeSection.lua +++ b/Modules/Config/RangeSection.lua @@ -43,8 +43,8 @@ function _Config:LoadRangeSection() rangedCritRating = { type = "toggle", order = 2, - name = function() return i18n("Ranged Crit Rating") end, - desc = function() return i18n("Shows/Hides the ranged crit rating.") end, + name = function() return i18n("Ranged Crit. Rating") end, + desc = function() return i18n("Shows/Hides the ranged crit. rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, disabled = function() return (not ExtendedCharacterStats.profile.ranged.display); end, diff --git a/Modules/Config/SpellSection.lua b/Modules/Config/SpellSection.lua index 410e9cb9..56f1c301 100755 --- a/Modules/Config/SpellSection.lua +++ b/Modules/Config/SpellSection.lua @@ -30,8 +30,8 @@ function _Config:LoadSpellSection() spellCritRating = { type = "toggle", order = 1, - name = function() return i18n("Spell Crit Rating") end, - desc = function() return i18n("Shows/Hides the spell crit rating.") end, + name = function() return i18n("Spell Crit. Rating") end, + desc = function() return i18n("Shows/Hides the spell crit. rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, diff --git a/Modules/Profile.lua b/Modules/Profile.lua index 2739d369..2833c596 100755 --- a/Modules/Profile.lua +++ b/Modules/Profile.lua @@ -128,12 +128,12 @@ local function GetDefaultStatsProfile() statColor = colors.ATTACK_SPEED_PRIMARY, }, expertise = {display = true, isTbcOnly = true, refName = "Expertise", text = "Expertise"}, - expertiseRating = {display = true, isTbcOnly = true, refName = "ExpertiseRating", text = "Expertise Rating"}, + expertiseRating = {display = true, isTbcOnly = true, refName = "ExpertiseRating", text = "Expertise rating"}, hasteRating = { display = true, isTbcOnly = true, refName = "MeleeHasteRating", - text = "Haste Rating", + text = "Haste rating", textColor = colors.HASTE_RATING_SECONDARY, statColor = colors.HASTE_RATING_PRIMARY }, @@ -236,7 +236,7 @@ local function GetDefaultStatsProfile() display = true, isTbcOnly = true, refName = "RangedArmorPenetrationRating", - text = "Armor Pen. Rating", + text = "Armor pen. rating", textColor = colors.ATTACK_SPEED_SECONDARY, statColor = colors.ATTACK_SPEED_PRIMARY, }, @@ -244,7 +244,7 @@ local function GetDefaultStatsProfile() display = true, isTbcOnly = true, refName = "RangedHasteRating", - text = "Haste Rating", + text = "Haste rating", textColor = colors.HASTE_RATING_SECONDARY, statColor = colors.HASTE_RATING_PRIMARY }, @@ -542,7 +542,7 @@ local function GetDefaultStatsProfile() display = true, isTbcOnly = true, refName = "SpellHasteRating", - text = "Haste Rating", + text = "Haste rating", textColor = colors.HASTE_RATING_SECONDARY, statColor = colors.HASTE_RATING_PRIMARY }, diff --git a/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua index 9e5a600c..ccf015a3 100644 --- a/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua @@ -362,7 +362,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta todas las estadísticas de golpes de refilón", ["ptBR"] = "Mostra/oculta todas as estatísticas de pancada de relance" }, - ["Melee Crit Rating"] = { + ["Melee Crit. Rating"] = { ["enUS"] = true, ["deDE"] = true, ["frFR"] = true, @@ -372,7 +372,7 @@ local meleeConfigTranslations = { ["esMX"] = true, ["ptBR"] = true, }, - ["Shows/Hides the melee crit rating."] = { + ["Shows/Hides the melee crit. rating."] = { ["enUS"] = true, ["deDE"] = true, ["frFR"] = true, diff --git a/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua index 00baa15d..42771fd2 100644 --- a/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua @@ -161,7 +161,7 @@ local rangedConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de fallo contra jefes (nivel +3)", ["ptBR"] = "Mostra/oculta a chance de erro contra chefes (nível +3)" }, - ["Ranged Crit Rating"] = { + ["Ranged Crit. Rating"] = { ["enUS"] = true, ["deDE"] = true, ["frFR"] = true, @@ -171,7 +171,7 @@ local rangedConfigTranslations = { ["esMX"] = true, ["ptBR"] = true, }, - ["Shows/Hides the ranged crit rating."] = { + ["Shows/Hides the ranged crit. rating."] = { ["enUS"] = true, ["deDE"] = true, ["frFR"] = true, diff --git a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua index c72e1bdd..592281f6 100644 --- a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua @@ -222,7 +222,7 @@ local spellConfigTranslations = { ["esMX"] = "Muestra/oculta el valor de poder de sanación", ["ptBR"] = "Mostra/oculta o valor de poder de cura" }, - ["Spell Crit Rating"] = { + ["Spell Crit. Rating"] = { ["enUS"] = true, ["deDE"] = true, ["frFR"] = true, @@ -232,7 +232,7 @@ local spellConfigTranslations = { ["esMX"] = true, ["ptBR"] = true, }, - ["Shows/Hides the spell crit rating."] = { + ["Shows/Hides the spell crit. rating."] = { ["enUS"] = true, ["deDE"] = true, ["frFR"] = true, diff --git a/Modules/i18n/translations/StatTranslations.lua b/Modules/i18n/translations/StatTranslations.lua index ee17e8d3..f1683d93 100644 --- a/Modules/i18n/translations/StatTranslations.lua +++ b/Modules/i18n/translations/StatTranslations.lua @@ -42,7 +42,7 @@ local statTranslations = { ["esMX"] = "Poder de ataque", ["ptBR"] = "Poder de ataque" }, - ["Melee Crit Rating"] = { + ["Melee crit. rating"] = { ["enUS"] = true, ["deDE"] = true, ["frFR"] = true, @@ -72,7 +72,7 @@ local statTranslations = { ["esMX"] = "Penetración de armadura", ["ptBR"] = "Penetração em Armadura" }, - ["Armor Pen. Rating"] = { + ["Armor pen. rating"] = { ["enUS"] = true, ["deDE"] = "Rüstungsdurchschlagwertung", ["frFR"] = "Score de pénétration d'armure", @@ -92,7 +92,7 @@ local statTranslations = { ["esMX"] = "Pericia", ["ptBR"] = "Aptidão" }, - ["Expertise Rating"] = { + ["Expertise rating"] = { ["enUS"] = true, ["deDE"] = "Waffenkundewertung", ["frFR"] = "Score d'expertise", @@ -202,7 +202,7 @@ local statTranslations = { ["esMX"] = "Daño (Niv. + 3)", ["ptBR"] = "Dano (Nív. + 3)" }, - ["Haste Rating"] = { + ["Haste rating"] = { ["enUS"] = true, ["deDE"] = "Tempowertung", ["frFR"] = "Score de hâte", @@ -262,7 +262,7 @@ local statTranslations = { ["esMX"] = "A distancia", ["ptBR"] = "Longo alcance" }, - ["Ranged Crit Rating"] = { + ["Ranged crit. rating"] = { ["enUS"] = true, ["deDE"] = true, ["frFR"] = true, @@ -322,7 +322,7 @@ local statTranslations = { ["esMX"] = "Eludir (Niv. +3)", ["ptBR"] = "Evasiva (Nív. +3)" }, - ["Defense Rating"] = { + ["Defense rating"] = { ["enUS"] = true, ["deDE"] = "Verteidigungswertung", ["frFR"] = "Score de défense", @@ -342,7 +342,7 @@ local statTranslations = { ["esMX"] = "Defensa", ["ptBR"] = "Defesa" }, - ["Parry Rating."] = { + ["Parry rating"] = { ["enUS"] = true, ["deDE"] = true, ["frFR"] = true, @@ -352,7 +352,7 @@ local statTranslations = { ["esMX"] = true, ["ptBR"] = true, }, - ["Dodge Rating."] = { + ["Dodge rating."] = { ["enUS"] = true, ["deDE"] = true, ["frFR"] = true, @@ -362,7 +362,7 @@ local statTranslations = { ["esMX"] = true, ["ptBR"] = true, }, - ["Block Rating."] = { + ["Block rating"] = { ["enUS"] = true, ["deDE"] = true, ["frFR"] = true, @@ -412,7 +412,7 @@ local statTranslations = { ["esMX"] = "Probabilidad de esquivar", ["ptBR"] = "Chance de esquivar" }, - ["Resilience Rating"] = { + ["Resilience rating"] = { ["enUS"] = true, ["deDE"] = true, ["frFR"] = true, @@ -502,7 +502,7 @@ local statTranslations = { ["esMX"] = "Hechizo", ["ptBR"] = "Feitiço" }, - ["Spell Crit Rating"] = { + ["Spell crit. rating"] = { ["enUS"] = true, ["deDE"] = true, ["frFR"] = true,