From a67562baa306cb5bbef964566a9b98fb18c8d676 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Thu, 29 Jan 2026 04:11:10 +0100 Subject: [PATCH 01/23] 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 02/23] 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 03/23] 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 04/23] 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 05/23] 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, From ea984ca007951ad6ffff8aa7af2b2244ee18f638 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Fri, 13 Feb 2026 23:01:55 +0100 Subject: [PATCH 06/23] false on non english lines --- .../DefenseConfigTranslations.lua | 112 +++++++++--------- .../MeleeConfigTranslations.lua | 28 ++--- .../RangedConfigTranslations.lua | 28 ++--- .../SpellConfigTranslations.lua | 28 ++--- .../i18n/translations/StatTranslations.lua | 98 +++++++-------- 5 files changed, 147 insertions(+), 147 deletions(-) diff --git a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua index ac53f08c..9be3c1e3 100644 --- a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua @@ -4,43 +4,43 @@ 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, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Dodge Rating"] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Block Rating"] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Resilience Rating"] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Melee Crit Reduction"] = { ["enUS"] = true, @@ -224,43 +224,43 @@ local defenseConfigTranslations = { }, ["Shows/Hides the resilience rating."] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Shows/Hides the parry rating."] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Shows/Hides the dodge rating."] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Shows/Hides the block rating."] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, } diff --git a/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua index ccf015a3..5a328c58 100644 --- a/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua @@ -364,23 +364,23 @@ local meleeConfigTranslations = { }, ["Melee Crit. Rating"] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Shows/Hides the melee crit. rating."] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, } diff --git a/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua index 42771fd2..db729293 100644 --- a/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua @@ -163,23 +163,23 @@ local rangedConfigTranslations = { }, ["Ranged Crit. Rating"] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Shows/Hides the ranged crit. rating."] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, } diff --git a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua index 592281f6..b9f52891 100644 --- a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua @@ -224,23 +224,23 @@ local spellConfigTranslations = { }, ["Spell Crit. Rating"] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Shows/Hides the spell crit. rating."] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, } diff --git a/Modules/i18n/translations/StatTranslations.lua b/Modules/i18n/translations/StatTranslations.lua index f1683d93..cf824ad0 100644 --- a/Modules/i18n/translations/StatTranslations.lua +++ b/Modules/i18n/translations/StatTranslations.lua @@ -44,13 +44,13 @@ local statTranslations = { }, ["Melee crit. rating"] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Crit Chance"] = { ["enUS"] = true, @@ -264,13 +264,13 @@ local statTranslations = { }, ["Ranged crit. rating"] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Armor"] = { ["enUS"] = true, @@ -344,33 +344,33 @@ local statTranslations = { }, ["Parry rating"] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Dodge rating."] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Block rating"] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Block Chance"] = { ["enUS"] = true, @@ -414,13 +414,13 @@ local statTranslations = { }, ["Resilience rating"] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Resilience"] = { ["enUS"] = true, @@ -504,13 +504,13 @@ local statTranslations = { }, ["Spell crit. rating"] = { ["enUS"] = true, - ["deDE"] = true, - ["frFR"] = true, - ["zhCN"] = true, - ["ruRU"] = true, - ["esES"] = true, - ["esMX"] = true, - ["ptBR"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Penetration"] = { ["enUS"] = true, From b6b245d6d2635ecdf77dc22b081df0338d8788e1 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Wed, 18 Feb 2026 00:09:38 +0100 Subject: [PATCH 07/23] wip --- Modules/Data/Defense.lua | 24 ++++++++++++++++++++---- Modules/Data/Melee.lua | 5 ++++- Modules/Data/Ranged.lua | 5 ++++- Modules/Data/SpellCrit.lua | 5 ++++- 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/Modules/Data/Defense.lua b/Modules/Data/Defense.lua index 1a632064..4508f0da 100755 --- a/Modules/Data/Defense.lua +++ b/Modules/Data/Defense.lua @@ -219,22 +219,38 @@ end ---@return number function Data:GetResilienceRating() - return DataUtils:Round(GetCombatRating(15), 2) + local rating = 0 + if CR_RESILIENCE_CRIT_TAKEN then + rating = GetCombatRating(CR_RESILIENCE_CRIT_TAKEN) + end + return DataUtils:Round(rating, 2) end ---@return number function Data:GetParryRating() - return DataUtils:Round(GetCombatRating(CR_PARRY), 2) + local rating = 0 + if CR_PARRY then + rating = GetCombatRating(CR_PARRY) + end + return DataUtils:Round(rating, 2) end ---@return number function Data:GetDodgeRating() - return DataUtils:Round(GetCombatRating(CR_DODGE), 2) + local rating = 0 + if CR_DODGE then + rating = GetCombatRating(CR_DODGE) + end + return DataUtils:Round(rating, 2) end ---@return number function Data:GetBlockRating() - return DataUtils:Round(GetCombatRating(CR_BLOCK), 2) + local rating = 0 + if CR_BLOCK then + rating = GetCombatRating(CR_BLOCK) + end + return DataUtils:Round(rating, 2) end ---@return number diff --git a/Modules/Data/Melee.lua b/Modules/Data/Melee.lua index 7249076c..c6ebc968 100755 --- a/Modules/Data/Melee.lua +++ b/Modules/Data/Melee.lua @@ -268,7 +268,10 @@ end ---@return number function Data:GetMeleeCritRating() - local critRating = GetCombatRating(CR_CRIT_MELEE) + local critRating = 0 + if CR_CRIT_MELEE then + critRating = GetCombatRating(CR_CRIT_MELEE) + end return DataUtils:Round(critRating, 0) end diff --git a/Modules/Data/Ranged.lua b/Modules/Data/Ranged.lua index 2606c07a..cb684256 100755 --- a/Modules/Data/Ranged.lua +++ b/Modules/Data/Ranged.lua @@ -134,7 +134,10 @@ end ---@return number function Data:GetRangedCritRating() - local critRating = GetCombatRating(CR_CRIT_RANGED) + local critRating = 0 + if CR_CRIT_RANGED then + critRating = GetCombatRating(CR_CRIT_RANGED) + end return DataUtils:Round(critRating, 0) end diff --git a/Modules/Data/SpellCrit.lua b/Modules/Data/SpellCrit.lua index 076c9898..3ba05638 100755 --- a/Modules/Data/SpellCrit.lua +++ b/Modules/Data/SpellCrit.lua @@ -164,6 +164,9 @@ end ---@return number function Data:GetSpellCritRating() - local critRating = GetCombatRating(CR_CRIT_SPELL) + local critRating = 0 + if CR_CRIT_SPELL then + critRating = GetCombatRating(CR_CRIT_SPELL) + end return DataUtils:Round(critRating, 0) end \ No newline at end of file From 8748aa7de42bfcdccf4fcda9be54e6922ed67420 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Wed, 18 Feb 2026 03:06:29 +0100 Subject: [PATCH 08/23] wip --- .luacheckrc | 2 ++ Modules/Config/DefenseSection.lua | 16 +++++++++++++++- Modules/Config/RangeSection.lua | 1 + Modules/Data/Data.lua | 1 + Modules/Data/Defense.lua | 14 +++++++++++--- Modules/Stats.lua | 3 ++- 6 files changed, 32 insertions(+), 5 deletions(-) diff --git a/.luacheckrc b/.luacheckrc index 2e903fee..c32c27af 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -819,6 +819,8 @@ stds.ecs = { "CR_HIT_RANGED", "CR_HIT_SPELL", "CR_PARRY", + "CR_RESILIENCE_CRIT_TAKEN", + "CR_RESILIENCE_PLAYER_DAMAGE_TAKEN", "CR_WEAPON_SKILL", "CreateFont", "CreateFrame", diff --git a/Modules/Config/DefenseSection.lua b/Modules/Config/DefenseSection.lua index c2a51771..9155477c 100755 --- a/Modules/Config/DefenseSection.lua +++ b/Modules/Config/DefenseSection.lua @@ -231,7 +231,7 @@ function _Config:LoadDefenseSection() Stats.RebuildStatInfos() end, }, - resilience = { + resilienceRating = { type = "toggle", order = 8, name = function() return i18n("Resilience Rating") end, @@ -245,6 +245,20 @@ function _Config:LoadDefenseSection() Stats.RebuildStatInfos() end, }, + resilience = { + type = "toggle", + order = 8.1, + name = function() return i18n("Resilience") end, + desc = function() return i18n("Shows/Hides the resilience value.") 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.resilienceValue.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.defense.resilienceValue.display = value + Stats.RebuildStatInfos() + end, + }, }, } end diff --git a/Modules/Config/RangeSection.lua b/Modules/Config/RangeSection.lua index b31062ce..2a7a9e7b 100755 --- a/Modules/Config/RangeSection.lua +++ b/Modules/Config/RangeSection.lua @@ -74,6 +74,7 @@ function _Config:LoadRangeSection() name = function() return i18n("Armor Pen.") end, desc = function() return i18n("Shows/Hides the armor penetration value.") end, width = 1.5, + hidden = function() return (not ECS.IsWotlk) end, disabled = function() return (not ExtendedCharacterStats.profile.ranged.display); end, get = function () return ExtendedCharacterStats.profile.ranged.penetration.display; end, set = function (_, value) diff --git a/Modules/Data/Data.lua b/Modules/Data/Data.lua index af0e75f4..47dac2ae 100755 --- a/Modules/Data/Data.lua +++ b/Modules/Data/Data.lua @@ -72,6 +72,7 @@ dataFunctionRefs = { ["BlockChance"] = function() return Data:GetBlockChance() end, ["BlockValue"] = function() return Data:GetBlockValue() end, ["ResilienceRating"] = function() return ECS.IsClassic and 0 or Data:GetResilienceRating() end, + ["ResilienceValue"] = function() return ECS.IsClassic and 0 or Data:GetResilienceValue() end, -- Spell ["SpellHitRating"] = function() return ECS.IsClassic and 0 or Data:SpellHitRating() end, ["SpellHitBonus"] = function() return Data.SpellHitBonus(Data.HOLY_SCHOOL) end, diff --git a/Modules/Data/Defense.lua b/Modules/Data/Defense.lua index 4508f0da..4678e0bd 100755 --- a/Modules/Data/Defense.lua +++ b/Modules/Data/Defense.lua @@ -27,6 +27,7 @@ function _Defense:GetCritReduction() local meleeCritReduction = 0 local rangedCritReduction = 0 local spellCritReduction = 0 + local critReducingFromResilience = 0 local i = 1 repeat local aura = C_UnitAuras.GetAuraDataByIndex("player", i, "HELPFUL") @@ -60,7 +61,9 @@ function _Defense:GetCritReduction() if critReductionFromDefense < 0 then critReductionFromDefense = 0 end - local critReducingFromResilience = GetCombatRatingBonus(15) + if CR_RESILIENCE_CRIT_TAKEN then + critReducingFromResilience = GetCombatRatingBonus(CR_RESILIENCE_CRIT_TAKEN) + end if classId == Data.DRUID then local coeff = ECS.IsWotlk and 2 or 1 @@ -220,12 +223,17 @@ end ---@return number function Data:GetResilienceRating() local rating = 0 - if CR_RESILIENCE_CRIT_TAKEN then - rating = GetCombatRating(CR_RESILIENCE_CRIT_TAKEN) + if CR_RESILIENCE_PLAYER_DAMAGE_TAKEN then + rating = GetCombatRating(CR_RESILIENCE_PLAYER_DAMAGE_TAKEN) end return DataUtils:Round(rating, 2) end +---@return number +function Data:GetResilienceValue() + return DataUtils:Round(GetModResilienceDamageReduction(), 2) +end + ---@return number function Data:GetParryRating() local rating = 0 diff --git a/Modules/Stats.lua b/Modules/Stats.lua index b61dd86f..00ce6ffa 100755 --- a/Modules/Stats.lua +++ b/Modules/Stats.lua @@ -286,7 +286,8 @@ _CreateStatInfos = function() DataUtils:CanParry() and category.parry or nil, (not ECS.IsClassic) and category.dodgeRating or nil, category.dodge or nil, - (not ECS.IsClassic) and category.resilienceRating or nil + (not ECS.IsClassic) and category.resilienceRating or nil, + ECS.IsClassic and nil or category.resilienceValue ) if UnitHasMana("player") then From 713c77283425d2690824de4507e1da5cd91021d4 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Wed, 18 Feb 2026 03:11:18 +0100 Subject: [PATCH 09/23] wip --- .luacheckrc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.luacheckrc b/.luacheckrc index c32c27af..95792921 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -347,10 +347,10 @@ stds.ecs = { "C_Debug.GetMapDebugObjects", "C_Debug.TeleportToMapDebugObject", "C_Debug.TeleportToMapLocation", - "C_Engraving", "C_Engraving.GetRuneForEquipmentSlot", - "C_EventUtils", + "C_Engraving", "C_EventUtils.IsEventValid", + "C_EventUtils", "C_FriendList.AddFriend", "C_FriendList.AddIgnore", "C_FriendList.AddOrDelIgnore", @@ -570,11 +570,11 @@ stds.ecs = { "C_UIWidgetManager.GetTextureWithStateVisualizationInfo", "C_UIWidgetManager.GetTextWithStateWidgetVisualizationInfo", "C_UIWidgetManager.GetTopCenterWidgetSetID", - "C_UnitAuras", "C_UnitAuras.GetAuraDataByIndex", "C_UnitAuras.GetBuffDataByIndex", "C_UnitAuras.GetDebuffDataByIndex", "C_UnitAuras.GetPlayerAuraBySpellID", + "C_UnitAuras", "C_VideoOptions.GetGxAdapterInfo", "C_VoiceChat.ActivateChannel", "C_VoiceChat.BeginLocalCapture", @@ -1198,6 +1198,7 @@ stds.ecs = { "GetMirrorTimerProgress", "GetModifiedClick", "GetModifiedClickAction", + "GetModResilienceDamageReduction", "GetMoney", "GetMonitorAspectRatio", "GetMonitorCount", From cb4bffec4c66fe9965332ceb6b9e1f93a9654fc7 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Wed, 18 Feb 2026 04:12:36 +0100 Subject: [PATCH 10/23] wip --- Modules/Config/DefenseSection.lua | 6 +- Modules/Config/MeleeSection.lua | 2 +- Modules/Config/RangeSection.lua | 4 +- Modules/Config/SpellSection.lua | 2 +- Modules/Profile.lua | 120 +++++++++--------- .../DefenseConfigTranslations.lua | 6 +- .../MeleeConfigTranslations.lua | 2 +- .../RangedConfigTranslations.lua | 2 +- .../SpellConfigTranslations.lua | 2 +- .../i18n/translations/StatTranslations.lua | 108 +++++++--------- 10 files changed, 122 insertions(+), 132 deletions(-) diff --git a/Modules/Config/DefenseSection.lua b/Modules/Config/DefenseSection.lua index 9155477c..860dc9d4 100755 --- a/Modules/Config/DefenseSection.lua +++ b/Modules/Config/DefenseSection.lua @@ -45,7 +45,7 @@ function _Config:LoadDefenseSection() meleeCritReduction = { type = "toggle", order = 2, - name = function() return i18n("Melee Crit Reduction") end, + 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, disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, @@ -58,7 +58,7 @@ function _Config:LoadDefenseSection() rangedCritReduction = { type = "toggle", order = 2.1, - name = function() return i18n("Ranged Crit Reduction") end, + 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, disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, @@ -71,7 +71,7 @@ function _Config:LoadDefenseSection() spellCritReduction = { type = "toggle", order = 2.2, - name = function() return i18n("Spell Crit Reduction") end, + 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, disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, diff --git a/Modules/Config/MeleeSection.lua b/Modules/Config/MeleeSection.lua index f5892711..33025e9a 100755 --- a/Modules/Config/MeleeSection.lua +++ b/Modules/Config/MeleeSection.lua @@ -58,7 +58,7 @@ function _Config:LoadMeleeSection() type = "toggle", order = 2.1, name = function() return i18n("Melee Crit") end, - desc = function() return i18n("Shows/Hides the melee crit chance.") end, + desc = function() return i18n("Shows/Hides the melee crit. chance.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.melee.display); end, get = function () return ExtendedCharacterStats.profile.melee.crit.display; end, diff --git a/Modules/Config/RangeSection.lua b/Modules/Config/RangeSection.lua index 2a7a9e7b..bbd2a27b 100755 --- a/Modules/Config/RangeSection.lua +++ b/Modules/Config/RangeSection.lua @@ -55,11 +55,11 @@ function _Config:LoadRangeSection() Stats.RebuildStatInfos() end, }, - rangeCrit = { + rangeCrit. = { type = "toggle", order = 2.1, name = function() return i18n("Ranged Crit") end, - desc = function() return i18n("Shows/Hides the ranged crit chance.") end, + desc = function() return i18n("Shows/Hides the ranged crit. chance.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.ranged.display); end, get = function () return ExtendedCharacterStats.profile.ranged.crit.display; end, diff --git a/Modules/Config/SpellSection.lua b/Modules/Config/SpellSection.lua index f55a3872..65e06485 100755 --- a/Modules/Config/SpellSection.lua +++ b/Modules/Config/SpellSection.lua @@ -45,7 +45,7 @@ function _Config:LoadSpellSection() type = "toggle", order = 1.1, name = function() return i18n("Spell Crit") end, - desc = function() return i18n("Shows/Hides the spell crit chance.") end, + desc = function() return i18n("Shows/Hides the spell crit. chance.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, get = function () return ExtendedCharacterStats.profile.spell.crit.display; end, diff --git a/Modules/Profile.lua b/Modules/Profile.lua index ddeca2aa..5ea5e05b 100755 --- a/Modules/Profile.lua +++ b/Modules/Profile.lua @@ -19,7 +19,7 @@ local function GetDefaultStatsProfile() refName = "GeneralHeader", text = "General", - movementSpeed = {display = true, refName = "MovementSpeed", text = "Movement Speed"}, + movementSpeed = {display = true, refName = "MovementSpeed", text = "Movement speed"}, }, melee = { @@ -99,28 +99,28 @@ local function GetDefaultStatsProfile() attackPower = { display = true, refName = "MeleeAttackPower", - text = "Attack Power", + text = "Attack power", textColor = colors.ATTACK_POWER_SECONDARY, statColor = colors.ATTACK_POWER_PRIMARY }, crit = { display = true, refName = "MeleeCritChance", - text = "Crit Chance", + text = "Crit. chance", textColor = colors.CRIT_SECONDARY, statColor = colors.CRIT_PRIMARY }, penetration = { display = true, refName = "MeleeArmorPenetration", - text = "Armor Pen.", + text = "Armor pen.", textColor = colors.ATTACK_SPEED_SECONDARY, statColor = colors.ATTACK_SPEED_PRIMARY, }, penetrationRating = { display = true, refName = "MeleeArmorPenetrationRating", - text = "Armor Pen. Rating", + text = "Armor pen. rating", textColor = colors.ATTACK_SPEED_SECONDARY, statColor = colors.ATTACK_SPEED_PRIMARY, }, @@ -132,7 +132,7 @@ local function GetDefaultStatsProfile() expertiseRating = { display = true, refName = "ExpertiseRating", - text = "Expertise Rating" + text = "Expertise rating" }, hasteRating = { display = true, @@ -144,7 +144,7 @@ local function GetDefaultStatsProfile() hasteBonus = { display = true, refName = "MeleeHasteBonus", - text = "Haste Bonus", + text = "Haste bonus", textColor = colors.HASTE_RATING_SECONDARY, statColor = colors.HASTE_RATING_PRIMARY }, @@ -152,7 +152,7 @@ local function GetDefaultStatsProfile() display = true, isSubGroup = true, refName = "MeleeAttackSpeedHeader", - text = "Attack Speed", + text = "Attack speed", mainHand = { display = true, @@ -215,21 +215,21 @@ local function GetDefaultStatsProfile() attackPower = { display = true, refName = "RangeAttackpower", - text = "Attack Power", + text = "Attack power", textColor = colors.ATTACK_POWER_SECONDARY, statColor = colors.ATTACK_POWER_PRIMARY }, crit = { display = true, refName = "RangedCritChance", - text = "Crit Chance", + text = "Crit. chance", textColor = colors.CRIT_SECONDARY, statColor = colors.CRIT_PRIMARY }, penetration = { display = true, refName = "RangedArmorPenetration", - text = "Armor Pen.", + text = "Armor pen.", textColor = colors.ATTACK_SPEED_SECONDARY, statColor = colors.ATTACK_SPEED_PRIMARY, }, @@ -250,14 +250,14 @@ local function GetDefaultStatsProfile() hasteBonus = { display = true, refName = "RangedHasteBonus", - text = "Haste Bonus", + text = "Haste bonus", textColor = colors.HASTE_RATING_SECONDARY, statColor = colors.HASTE_RATING_PRIMARY }, attackSpeed = { display = true, refName = "RangedAttackSpeed", - text = "Attack Speed", + text = "Attack speed", textColor = colors.ATTACK_SPEED_SECONDARY, statColor = colors.ATTACK_SPEED_PRIMARY }, @@ -269,21 +269,21 @@ local function GetDefaultStatsProfile() text = "Defense", armor = {display = true, refName = "Armor", text = "Armor"}, - meleeCritReduction = {display = true, refName = "MeleeCritReduction", text = "Melee Crit Reduction"}, - rangedCritReduction = {display = true, refName = "RangedCritReduction", text = "Ranged Crit Reduction"}, - spellCritReduction = {display = true, refName = "SpellCritReduction", text = "Spell Crit Reduction"}, + meleeCritReduction = {display = true, refName = "MeleeCritReduction", text = "Melee crit. reduction"}, + rangedCritReduction = {display = true, refName = "RangedCritReduction", text = "Ranged crit. reduction"}, + spellCritReduction = {display = true, refName = "SpellCritReduction", text = "Spell crit. reduction"}, avoidance = {display = true, refName = "Avoidance", text = "Avoidance"}, avoidanceBoss = {display = true, refName = "AvoidanceBoss", text = "Avoidance (Lvl +3)"}, defenseRating = { display = true, refName = "DefenseRating", - text = "Defense Rating" + text = "Defense rating" }, defense = {display = true, refName = "DefenseValue", text = "Defense"}, - blockChance = {display = true, refName = "BlockChance", text = "Block Chance"}, - blockValue = {display = true, refName = "BlockValue", text = "Block Value"}, - parry = {display = true, refName = "ParryChance", text = "Parry Chance"}, - dodge = {display = true, refName = "DodgeChance", text = "Dodge Chance"}, + blockChance = {display = true, refName = "BlockChance", text = "Block chance"}, + blockValue = {display = true, refName = "BlockValue", text = "Block value"}, + parry = {display = true, refName = "ParryChance", text = "Parry chance"}, + dodge = {display = true, refName = "DodgeChance", text = "Dodge chance"}, resilience = { display = true, refName = "ResilienceValue", @@ -370,14 +370,14 @@ local function GetDefaultStatsProfile() rating = { display = true, refName = "SpellHitRating", - text = "Hit Rating", + text = "Hit rating", textColor = colors.HIT_SECONDARY, statColor = colors.HIT_PRIMARY }, bonus = { display = true, refName = "SpellHitBonus", - text = "Hit Bonus", + text = "Hit bonus", textColor = colors.HIT_SECONDARY, statColor = colors.HIT_PRIMARY }, @@ -398,147 +398,147 @@ local function GetDefaultStatsProfile() arcaneHitBonus = { display = true, refName = "ArcaneHitBonus", - text = "Arcane Hit Bonus", + text = "Arcane hit bonus", textColor = colors.ARCANE_SECONDARY, statColor = colors.ARCANE_PRIMARY }, arcaneMissChance = { display = true, refName = "ArcaneMissChance", - text = "Arcane Miss", + text = "Arcane miss", textColor = colors.ARCANE_SECONDARY, statColor = colors.ARCANE_PRIMARY }, arcaneMissChanceBoss = { display = true, refName = "ArcaneMissChanceBoss", - text = "Arcane Miss (Lvl + 3)", + text = "Arcane miss (Lvl + 3)", textColor = colors.ARCANE_SECONDARY, statColor = colors.ARCANE_PRIMARY }, fireHitBonus = { display = true, refName = "FireHitBonus", - text = "Fire Hit Bonus", + text = "Fire hit bonus", textColor = colors.FIRE_SECONDARY, statColor = colors.FIRE_PRIMARY }, fireMissChance = { display = true, refName = "FireMissChance", - text = "Fire Miss", + text = "Fire miss", textColor = colors.FIRE_SECONDARY, statColor = colors.FIRE_PRIMARY }, fireMissChanceBoss = { display = true, refName = "FireMissChanceBoss", - text = "Fire Miss (Lvl + 3)", + text = "Fire miss (Lvl + 3)", textColor = colors.FIRE_SECONDARY, statColor = colors.FIRE_PRIMARY }, frostHitBonus = { display = true, refName = "FrostHitBonus", - text = "Frost Hit Bonus", + text = "Frost hit bonus", textColor = colors.FROST_SECONDARY, statColor = colors.FROST_PRIMARY }, frostMissChance = { display = true, refName = "FrostMissChance", - text = "Frost Miss", + text = "Frost miss", textColor = colors.FROST_SECONDARY, statColor = colors.FROST_PRIMARY }, frostMissChanceBoss = { display = true, refName = "FrostMissChanceBoss", - text = "Frost Miss (Lvl + 3)", + text = "Frost miss (Lvl + 3)", textColor = colors.FROST_SECONDARY, statColor = colors.FROST_PRIMARY }, holyHitBonus = { display = true, refName = "HolyHitBonus", - text = "Holy Hit Bonus", + text = "Holy hit bonus", textColor = colors.HOLY_SECONDARY, statColor = colors.HOLY_PRIMARY }, holyMissChance = { display = true, refName = "HolyMissChance", - text = "Holy Miss", + text = "Holy miss", textColor = colors.HOLY_SECONDARY, statColor = colors.HOLY_PRIMARY }, holyMissChanceBoss = { display = true, refName = "HolyMissChanceBoss", - text = "Holy Miss (Lvl + 3)", + text = "Holy miss (Lvl + 3)", textColor = colors.HOLY_SECONDARY, statColor = colors.HOLY_PRIMARY }, natureHitBonus = { display = true, refName = "NatureHitBonus", - text = "Nature Hit Bonus", + text = "Nature hit bonus", textColor = colors.NATURE_SECONDARY, statColor = colors.NATURE_PRIMARY }, natureMissChance = { display = true, refName = "NatureMissChance", - text = "Nature Miss", + text = "Nature miss", textColor = colors.NATURE_SECONDARY, statColor = colors.NATURE_PRIMARY }, natureMissChanceBoss = { display = true, refName = "NatureMissChanceBoss", - text = "Nature Miss (Lvl + 3)", + text = "Nature miss (Lvl + 3)", textColor = colors.NATURE_SECONDARY, statColor = colors.NATURE_PRIMARY }, physicalHitBonus = { display = true, refName = "PhysicalHitBonus", - text = "Physical Hit Bonus", + text = "Physical hit bonus", textColor = colors.PHYSICAL_SECONDARY, statColor = colors.PHYSICAL_PRIMARY }, physicalMissChance = { display = true, refName = "PhysicalMissChance", - text = "Physical Miss", + text = "Physical miss", textColor = colors.PHYSICAL_SECONDARY, statColor = colors.PHYSICAL_PRIMARY }, physicalMissChanceBoss = { display = true, refName = "PhysicalMissChanceBoss", - text = "Physical Miss (Lvl + 3)", + text = "Physical miss (Lvl + 3)", textColor = colors.PHYSICAL_SECONDARY, statColor = colors.PHYSICAL_PRIMARY }, shadowHitBonus = { display = true, refName = "ShadowHitBonus", - text = "Shadow Hit Bonus", + text = "Shadow hit bonus", textColor = colors.SHADOW_SECONDARY, statColor = colors.SHADOW_PRIMARY }, shadowMissChance = { display = true, refName = "ShadowMissChance", - text = "Shadow Miss", + text = "Shadow miss", textColor = colors.SHADOW_SECONDARY, statColor = colors.SHADOW_PRIMARY }, shadowMissChanceBoss = { display = true, refName = "ShadowMissChanceBoss", - text = "Shadow Miss (Lvl + 3)", + text = "Shadow miss (Lvl + 3)", textColor = colors.SHADOW_SECONDARY, statColor = colors.SHADOW_PRIMARY }, @@ -553,7 +553,7 @@ local function GetDefaultStatsProfile() hasteBonus = { display = true, refName = "SpellHasteBonus", - text = "Haste Bonus", + text = "Haste bonus", textColor = colors.HASTE_RATING_SECONDARY, statColor = colors.HASTE_RATING_PRIMARY }, @@ -564,49 +564,49 @@ local function GetDefaultStatsProfile() arcane = { display = true, refName = "ArcaneCritChance", - text = "Arcane Crit", + text = "Arcane crit.", textColor = colors.ARCANE_SECONDARY, statColor = colors.ARCANE_PRIMARY }, fire = { display = true, refName = "FireCritChance", - text = "Fire Crit", + text = "Fire crit.", textColor = colors.FIRE_SECONDARY, statColor = colors.FIRE_PRIMARY }, frost = { display = true, refName = "FrostCritChance", - text = "Frost Crit", + text = "Frost crit.", textColor = colors.FROST_SECONDARY, statColor = colors.FROST_PRIMARY }, holy = { display = true, refName = "HolyCritChance", - text = "Holy Crit", + text = "Holy crit.", textColor = colors.HOLY_SECONDARY, statColor = colors.HOLY_PRIMARY }, nature = { display = true, refName = "NatureCritChance", - text = "Nature Crit", + text = "Nature crit.", textColor = colors.NATURE_SECONDARY, statColor = colors.NATURE_PRIMARY }, physical = { display = true, refName = "PhysicalCritChance", - text = "Physical Crit", + text = "Physical crit.", textColor = colors.PHYSICAL_SECONDARY, statColor = colors.PHYSICAL_PRIMARY }, shadow = { display = true, refName = "ShadowCritChance", - text = "Shadow Crit", + text = "Shadow crit.", textColor = colors.SHADOW_SECONDARY, statColor = colors.SHADOW_PRIMARY }, @@ -620,56 +620,56 @@ local function GetDefaultStatsProfile() bonusHealing = { display = true, refName = "BonusHealing", - text = "Healing Power", + text = "Healing power", textColor = colors.HEALING_SECONDARY, statColor = colors.HEALING_PRIMARY }, arcaneDmg = { display = true, refName = "ArcaneDmg", - text = "Arcane Damage", + text = "Arcane damage", textColor = colors.ARCANE_SECONDARY, statColor = colors.ARCANE_PRIMARY }, fireDmg = { display = true, refName = "FireDmg", - text = "Fire Damage", + text = "Fire damage", textColor = colors.FIRE_SECONDARY, statColor = colors.FIRE_PRIMARY }, frostDmg = { display = true, refName = "FrostDmg", - text = "Frost Damage", + text = "Frost damage", textColor = colors.FROST_SECONDARY, statColor = colors.FROST_PRIMARY }, holyDmg = { display = true, refName = "HolyDmg", - text = "Holy Damage", + text = "Holy damage", textColor = colors.HOLY_SECONDARY, statColor = colors.HOLY_PRIMARY }, natureDmg = { display = true, refName = "NatureDmg", - text = "Nature Damage", + text = "Nature damage", textColor = colors.NATURE_SECONDARY, statColor = colors.NATURE_PRIMARY }, physicalDmg = { display = true, refName = "PhysicalDmg", - text = "Physical Damage", + text = "Physical damage", textColor = colors.PHYSICAL_SECONDARY, statColor = colors.PHYSICAL_PRIMARY }, shadowDmg = { display = true, refName = "ShadowDmg", - text = "Shadow Damage", + text = "Shadow damage", textColor = colors.SHADOW_SECONDARY, statColor = colors.SHADOW_PRIMARY }, diff --git a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua index 9be3c1e3..c746dc8d 100644 --- a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua @@ -42,7 +42,7 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Melee Crit Reduction"] = { + ["Melee Crit. Reduction"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -52,7 +52,7 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false }, - ["Ranged Crit Reduction"] = { + ["Ranged Crit. Reduction"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -62,7 +62,7 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false }, - ["Spell Crit Reduction"] = { + ["Spell Crit. Reduction"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, diff --git a/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua index 5a328c58..90a7429c 100644 --- a/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua @@ -52,7 +52,7 @@ local meleeConfigTranslations = { ["esMX"] = "Probabilidad de golpe crítico", ["ptBR"] = "Chance de acerto crítico" }, - ["Shows/Hides the melee crit chance."] = { + ["Shows/Hides the melee crit. chance."] = { ["enUS"] = true, ["deDE"] = "Zeigt/Versteckt die Chance im Nahkampf kritisch zu treffen.", ["frFR"] = "Affiche/cache les chances d'infliger un coup critique en mêlée.", diff --git a/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua index db729293..191ba04f 100644 --- a/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua @@ -51,7 +51,7 @@ local rangedConfigTranslations = { ["esMX"] = "Crítico a distancia", ["ptBR"] = "Crítico de longo alcance" }, - ["Shows/Hides the ranged crit chance."] = { + ["Shows/Hides the ranged crit. chance."] = { ["enUS"] = true, ["deDE"] = "Zeigt/Versteckt die Chance im Fernkampf kritisch zu treffen.", ["frFR"] = "Affiche/cache les chances de coup critique à distance.", diff --git a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua index b9f52891..38e8ccf4 100644 --- a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua @@ -32,7 +32,7 @@ local spellConfigTranslations = { ["esMX"] = "Crítico con hechizos", ["ptBR"] = "Crítico com feitiços", }, - ["Shows/Hides the spell crit chance."] = { + ["Shows/Hides the spell crit. chance."] = { ["enUS"] = true, ["deDE"] = "Zeigt/Versteckt die Chance mit einem Zauber kritisch zu treffen.", ["frFR"] = "Affiche/cache les chances d'infliger un coup critique avec les sorts.", diff --git a/Modules/i18n/translations/StatTranslations.lua b/Modules/i18n/translations/StatTranslations.lua index cf824ad0..71d1a03a 100644 --- a/Modules/i18n/translations/StatTranslations.lua +++ b/Modules/i18n/translations/StatTranslations.lua @@ -12,7 +12,7 @@ local statTranslations = { ["esMX"] = true, ["ptBR"] = "Geral" }, - ["Movement Speed"] = { + ["Movement speed"] = { ["enUS"] = true, ["deDE"] = "Geschwindigkeit", ["frFR"] = "Vitesse de déplacement", @@ -32,7 +32,7 @@ local statTranslations = { ["esMX"] = "Cuerpo a cuerpo", ["ptBR"] = "Corpo a corpo" }, - ["Attack Power"] = { + ["Attack power"] = { ["enUS"] = true, ["deDE"] = "Angriffskraft", ["frFR"] = "Puissance d'attaque", @@ -52,7 +52,7 @@ local statTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Crit Chance"] = { + ["Crit. chance"] = { ["enUS"] = true, ["deDE"] = "Kritische Chance", ["frFR"] = "Chances de critique", @@ -62,7 +62,7 @@ local statTranslations = { ["esMX"] = "Probabilidad de golpe crítico", ["ptBR"] = "Chance de acerto crítico" }, - ["Armor Pen."] = { + ["Armor pen."] = { ["enUS"] = true, ["deDE"] = "Rüstungsdurchschlagskraft", ["frFR"] = "Pénétration d'armure", @@ -152,7 +152,7 @@ local statTranslations = { ["esMX"] = "Fallo (Niv. + 3)", ["ptBR"] = "Erro (Nív. + 3)", }, - ["Glancing Blow"] = { + ["Glancing blow"] = { ["enUS"] = true, ["deDE"] = "Streifschlag", ["frFR"] = "Coup d'éraflure", @@ -212,7 +212,7 @@ local statTranslations = { ["esMX"] = "Índice de celeridad", ["ptBR"] = "Taxa de aceleração" }, - ["Haste Bonus"] = { + ["Haste bonus"] = { ["enUS"] = true, ["deDE"] = "Tempobonus", ["frFR"] = "Bonus de hâte", @@ -222,7 +222,7 @@ local statTranslations = { ["esMX"] = "Bonus de celeridad", ["ptBR"] = "Bônus de aceleração" }, - ["Attack Speed"] = { + ["Attack speed"] = { ["enUS"] = true, ["deDE"] = "Angriffstempo", ["frFR"] = "Vitesse d'attaque", @@ -232,7 +232,7 @@ local statTranslations = { ["esMX"] = "Velocidad de ataque", ["ptBR"] = "Velocidade de ataque" }, - ["Main Hand"] = { + ["Main hand"] = { ["enUS"] = true, ["deDE"] = "Waffenhand", ["frFR"] = "Main droite", @@ -242,7 +242,7 @@ local statTranslations = { ["esMX"] = "Mano derecha", ["ptBR"] = "Mão principal" }, - ["Off Hand"] = { + ["Off hand"] = { ["enUS"] = true, ["deDE"] = "Schildhand", ["frFR"] = "Main gauche", @@ -282,24 +282,14 @@ local statTranslations = { ["esMX"] = "Armadura", ["ptBR"] = "Armadura" }, - ["Crit Immune"] = { - ["enUS"] = true, - ["deDE"] = "Krit. Immun", - ["frFR"] = "Immunisé des critiques", - ["zhCN"] = false, - ["ruRU"] = "Крит иммун", - ["esES"] = "Inmune Crít", - ["esMX"] = "Inmune Crít", - ["ptBR"] = "Imune a críticos" - }, - ["Crit Reduction"] = { + ["Crit. reduction"] = { ["enUS"] = true, ["deDE"] = "Krit. Reduzierung", ["frFR"] = "Réduction des critiques", ["zhCN"] = false, ["ruRU"] = "Снижение крита", - ["esES"] = "Reducción de Crít", - ["esMX"] = "Reducción de Crít", + ["esES"] = "Reducción de crít", + ["esMX"] = "Reducción de crít", ["ptBR"] = "Redução de crítico" }, ["Avoidance"] = { @@ -352,7 +342,7 @@ local statTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Dodge rating."] = { + ["Dodge rating"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -372,7 +362,7 @@ local statTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Block Chance"] = { + ["Block chance"] = { ["enUS"] = true, ["deDE"] = "Blockchance", ["frFR"] = "Chances de bloquer", @@ -382,7 +372,7 @@ local statTranslations = { ["esMX"] = "Probabilidad de bloquear", ["ptBR"] = "Chance de bloquear" }, - ["Block Value"] = { + ["Block value"] = { ["enUS"] = true, ["deDE"] = "Blockwertung", ["frFR"] = "Bloquer", @@ -392,7 +382,7 @@ local statTranslations = { ["esMX"] = "Bloqueo", ["ptBR"] = "Bloqueio" }, - ["Parry Chance"] = { + ["Parry chance"] = { ["enUS"] = true, ["deDE"] = "Parrierchance", ["frFR"] = "Chances de parer", @@ -402,7 +392,7 @@ local statTranslations = { ["esMX"] = "Probabilidad de parar", ["ptBR"] = "Chance de aparar" }, - ["Dodge Chance"] = { + ["Dodge chance"] = { ["enUS"] = true, ["deDE"] = "Ausweichchance", ["frFR"] = "Chances d'esquiver", @@ -522,7 +512,7 @@ local statTranslations = { ["esMX"] = "Penetración", ["ptBR"] = "Penetração" }, - ["Healing Power"] = { + ["Healing power"] = { ["enUS"] = true, ["deDE"] = "Heilungskraft", ["frFR"] = "Pouvoir de guérison", @@ -532,7 +522,7 @@ local statTranslations = { ["esMX"] = "Sanación", ["ptBR"] = "Poder de cura" }, - ["Arcane Damage"] = { + ["Arcane damage"] = { ["enUS"] = true, ["deDE"] = "Arkanschaden", ["frFR"] = "Dégats des arcanes", @@ -542,7 +532,7 @@ local statTranslations = { ["esMX"] = "Daño arcano", ["ptBR"] = "Dano arcano" }, - ["Arcane Crit"] = { + ["Arcane crit."] = { ["enUS"] = true, ["deDE"] = "Arkan Kritisch", ["frFR"] = "Critique des arcanes", @@ -552,7 +542,7 @@ local statTranslations = { ["esMX"] = "Crítico arcano", ["ptBR"] = "Crítico arcano" }, - ["Arcane Hit Bonus"] = { + ["Arcane hit bonus"] = { ["enUS"] = true, ["deDE"] = "Arkan Trefferchancebonus", ["frFR"] = "Bonus de toucher des arcanes", @@ -562,7 +552,7 @@ local statTranslations = { ["esMX"] = "Bonificación de golpe arcano", ["ptBR"] = "Bônus de acerto arcano" }, - ["Arcane Miss"] = { + ["Arcane miss"] = { ["enUS"] = true, ["deDE"] = "Arkan Verfehlen", ["frFR"] = "Rater des arcanes", @@ -572,7 +562,7 @@ local statTranslations = { ["esMX"] = "Fallo arcano", ["ptBR"] = "Erro arcano" }, - ["Arcane Miss (Lvl + 3)"] = { + ["Arcane miss (Lvl + 3)"] = { ["enUS"] = true, ["deDE"] = "Arkan Verfehlen (Lvl + 3)", ["frFR"] = "Rater des arcanes (Niv. + 3)", @@ -582,7 +572,7 @@ local statTranslations = { ["esMX"] = "Fallo arcano (Niv. + 3)", ["ptBR"] = "Erro arcano (Nív. + 3)" }, - ["Fire Damage"] = { + ["Fire damage"] = { ["enUS"] = true, ["deDE"] = "Feuerschaden", ["frFR"] = "Dégats du feu", @@ -592,7 +582,7 @@ local statTranslations = { ["esMX"] = "Daño de fuego", ["ptBR"] = "Dano de fogo" }, - ["Fire Crit"] = { + ["Fire crit."] = { ["enUS"] = true, ["deDE"] = "Feuer Kritisch", ["frFR"] = "Critique du feu", @@ -602,7 +592,7 @@ local statTranslations = { ["esMX"] = "Crítico de fuego", ["ptBR"] = "Crítico de fogo" }, - ["Fire Hit Bonus"] = { + ["Fire hit bonus"] = { ["enUS"] = true, ["deDE"] = "Feuer Trefferchancebonus", ["frFR"] = "Bonus de toucher du feu", @@ -612,7 +602,7 @@ local statTranslations = { ["esMX"] = "Bonificación de golpe de fuego", ["ptBR"] = "Bônus de acerto de fogo" }, - ["Fire Miss"] = { + ["Fire miss"] = { ["enUS"] = true, ["deDE"] = "Feuer Verfehlen", ["frFR"] = "Rater du feu", @@ -622,7 +612,7 @@ local statTranslations = { ["esMX"] = "Fallo de fuego", ["ptBR"] = "Erro de fogo" }, - ["Fire Miss (Lvl + 3)"] = { + ["Fire miss (Lvl + 3)"] = { ["enUS"] = true, ["deDE"] = "Feuer Verfehlen (Lvl + 3)", ["frFR"] = "Rater du feu (Niv. + 3)", @@ -632,7 +622,7 @@ local statTranslations = { ["esMX"] = "Fallo de fuego (Niv. + 3)", ["ptBR"] = "Erro de fogo (Nív. + 3)" }, - ["Frost Damage"] = { + ["Frost damage"] = { ["enUS"] = true, ["deDE"] = "Frostschaden", ["frFR"] = "Dégats du givre", @@ -642,7 +632,7 @@ local statTranslations = { ["esMX"] = "Daño de escarcha", ["ptBR"] = "Dano de gelo" }, - ["Frost Crit"] = { + ["Frost crit."] = { ["enUS"] = true, ["deDE"] = "Frost Kritisch", ["frFR"] = "Critique du givre", @@ -652,7 +642,7 @@ local statTranslations = { ["esMX"] = "Crítico de escarcha", ["ptBR"] = "Crítico de gelo" }, - ["Frost Hit Bonus"] = { + ["Frost hit bonus"] = { ["enUS"] = true, ["deDE"] = "Frost Trefferchancebonus", ["frFR"] = "Bonus de toucher du givre", @@ -662,7 +652,7 @@ local statTranslations = { ["esMX"] = "Bonificación de golpe de escarcha", ["ptBR"] = "Bônus de acerto de gelo" }, - ["Frost Miss"] = { + ["Frost miss"] = { ["enUS"] = true, ["deDE"] = "Frost Verfehlen", ["frFR"] = "Rater du givre", @@ -672,7 +662,7 @@ local statTranslations = { ["esMX"] = "Fallo de escarcha", ["ptBR"] = "Erro de gelo" }, - ["Frost Miss (Lvl + 3)"] = { + ["Frost miss (Lvl + 3)"] = { ["enUS"] = true, ["deDE"] = "Frost Verfehlen (Lvl + 3)", ["frFR"] = "Rater du givre (Niv. + 3)", @@ -692,7 +682,7 @@ local statTranslations = { ["esMX"] = "Daño sagrado", ["ptBR"] = "Dano sagrado" }, - ["Holy Crit"] = { + ["Holy crit."] = { ["enUS"] = true, ["deDE"] = "Heilig Kritisch", ["frFR"] = "Critique du sacré", @@ -702,7 +692,7 @@ local statTranslations = { ["esMX"] = "Crítico sagrado", ["ptBR"] = "Crítico sagrado" }, - ["Holy Hit Bonus"] = { + ["Holy hit bonus"] = { ["enUS"] = true, ["deDE"] = "Heilig Trefferchancebonus", ["frFR"] = "Bonus de toucher du sacré", @@ -712,7 +702,7 @@ local statTranslations = { ["esMX"] = "Bonificación de golpe sagrado", ["ptBR"] = "Bônus de acerto sagrado" }, - ["Holy Miss"] = { + ["Holy miss"] = { ["enUS"] = true, ["deDE"] = "Heilig Verfehlen", ["frFR"] = "Rater du sacré", @@ -722,7 +712,7 @@ local statTranslations = { ["esMX"] = "Fallo sagrado", ["ptBR"] = "Erro sagrado" }, - ["Holy Miss (Lvl + 3)"] = { + ["Holy miss (Lvl + 3)"] = { ["enUS"] = true, ["deDE"] = "Heilig Verfehlen (Lvl + 3)", ["frFR"] = "Rater du sacré (Niv. + 3)", @@ -742,7 +732,7 @@ local statTranslations = { ["esMX"] = "Daño de la naturaleza", ["ptBR"] = "Dano de natureza" }, - ["Nature Crit"] = { + ["Nature crit."] = { ["enUS"] = true, ["deDE"] = "Natur Kritisch", ["frFR"] = "Critique de la nature", @@ -752,7 +742,7 @@ local statTranslations = { ["esMX"] = "Crítico de la naturaleza", ["ptBR"] = "Crítico de natureza" }, - ["Nature Hit Bonus"] = { + ["Nature hit bonus"] = { ["enUS"] = true, ["deDE"] = "Natur Trefferchancebonus", ["frFR"] = "Bonus de toucher de la nature", @@ -762,7 +752,7 @@ local statTranslations = { ["esMX"] = "Bonificación de golpe de la naturaleza", ["ptBR"] = "Bônus de acerto de natureza" }, - ["Nature Miss"] = { + ["Nature miss"] = { ["enUS"] = true, ["deDE"] = "Natur Verfehlen", ["frFR"] = "Rater de la nature", @@ -772,7 +762,7 @@ local statTranslations = { ["esMX"] = "Fallo de la naturaleza", ["ptBR"] = "Erro de natureza" }, - ["Nature Miss (Lvl + 3)"] = { + ["Nature miss (Lvl + 3)"] = { ["enUS"] = true, ["deDE"] = "Natur Verfehlen (Lvl + 3)", ["frFR"] = "Rater de la nature (Niv. + 3)", @@ -792,7 +782,7 @@ local statTranslations = { ["esMX"] = "Daño físico", ["ptBR"] = "Dano físico" }, - ["Physical Crit"] = { + ["Physical crit."] = { ["enUS"] = true, ["deDE"] = "Physisch Kritisch", ["frFR"] = "Critique physique", @@ -802,7 +792,7 @@ local statTranslations = { ["esMX"] = "Crítico físico", ["ptBR"] = "Crítico físico" }, - ["Physical Hit Bonus"] = { + ["Physical hit bonus"] = { ["enUS"] = true, ["deDE"] = "Physischer Trefferchancebonus", ["frFR"] = "Bonus de toucher physique", @@ -812,7 +802,7 @@ local statTranslations = { ["esMX"] = "Bonificación de golpe físico", ["ptBR"] = "Bônus de acerto físico" }, - ["Physical Miss"] = { + ["Physical miss"] = { ["enUS"] = true, ["deDE"] = "Physisch Verfehlen", ["frFR"] = "Rater physique", @@ -822,7 +812,7 @@ local statTranslations = { ["esMX"] = "Fallo físico", ["ptBR"] = "Erro físico" }, - ["Physical Miss (Lvl + 3)"] = { + ["Physical miss (Lvl + 3)"] = { ["enUS"] = true, ["deDE"] = "Physisch Verfehlen (Lvl + 3)", ["frFR"] = "Rater physique (Niv. + 3)", @@ -842,7 +832,7 @@ local statTranslations = { ["esMX"] = "Daño de las sombras", ["ptBR"] = "Dano de sombra" }, - ["Shadow Crit"] = { + ["Shadow crit."] = { ["enUS"] = true, ["deDE"] = "Schatten Kritisch", ["frFR"] = "Critique des ombres", @@ -852,7 +842,7 @@ local statTranslations = { ["esMX"] = "Crítico de las sombras", ["ptBR"] = "Crítico de sombra" }, - ["Shadow Hit Bonus"] = { + ["Shadow hit bonus"] = { ["enUS"] = true, ["deDE"] = "Schatten Trefferchancebonus", ["frFR"] = "Bonus de toucher des ombres", @@ -862,7 +852,7 @@ local statTranslations = { ["esMX"] = "Bonificación de golpe de las sombras", ["ptBR"] = "Bônus de acerto de sombra" }, - ["Shadow Miss"] = { + ["Shadow miss"] = { ["enUS"] = true, ["deDE"] = "Schatten Verfehlen", ["frFR"] = "Rater des ombres", @@ -872,7 +862,7 @@ local statTranslations = { ["esMX"] = "Fallo de las sombras", ["ptBR"] = "Erro de sombra" }, - ["Shadow Miss (Lvl + 3)"] = { + ["Shadow miss (Lvl + 3)"] = { ["enUS"] = true, ["deDE"] = "Schatten Verfehlen (Lvl + 3)", ["frFR"] = "Rater des ombres (Niv. + 3)", From 8393988108d24bad7850db5c4d0f51eed241fd00 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Wed, 18 Feb 2026 04:15:20 +0100 Subject: [PATCH 11/23] resilience --- Modules/Data/Data.lua | 2 +- Modules/Data/Defense.lua | 2 +- Modules/Profile.lua | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Modules/Data/Data.lua b/Modules/Data/Data.lua index 47dac2ae..94b2cdaf 100755 --- a/Modules/Data/Data.lua +++ b/Modules/Data/Data.lua @@ -72,7 +72,7 @@ dataFunctionRefs = { ["BlockChance"] = function() return Data:GetBlockChance() end, ["BlockValue"] = function() return Data:GetBlockValue() end, ["ResilienceRating"] = function() return ECS.IsClassic and 0 or Data:GetResilienceRating() end, - ["ResilienceValue"] = function() return ECS.IsClassic and 0 or Data:GetResilienceValue() end, + ["Resilience"] = function() return ECS.IsClassic and 0 or Data:GetResilience() end, -- Spell ["SpellHitRating"] = function() return ECS.IsClassic and 0 or Data:SpellHitRating() end, ["SpellHitBonus"] = function() return Data.SpellHitBonus(Data.HOLY_SCHOOL) end, diff --git a/Modules/Data/Defense.lua b/Modules/Data/Defense.lua index 4678e0bd..44774029 100755 --- a/Modules/Data/Defense.lua +++ b/Modules/Data/Defense.lua @@ -230,7 +230,7 @@ function Data:GetResilienceRating() end ---@return number -function Data:GetResilienceValue() +function Data:GetResilience() return DataUtils:Round(GetModResilienceDamageReduction(), 2) end diff --git a/Modules/Profile.lua b/Modules/Profile.lua index 5ea5e05b..5e1f3e0b 100755 --- a/Modules/Profile.lua +++ b/Modules/Profile.lua @@ -286,7 +286,7 @@ local function GetDefaultStatsProfile() dodge = {display = true, refName = "DodgeChance", text = "Dodge chance"}, resilience = { display = true, - refName = "ResilienceValue", + refName = "Resilience", text = "Resilience" }, }, From f2bb975f086cf9f295c456a58b2908fbf3ba10f2 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Wed, 18 Feb 2026 04:19:53 +0100 Subject: [PATCH 12/23] wip --- Modules/Config/DefenseSection.lua | 6 +++--- Modules/Stats.lua | 2 +- .../ConfigTranslations/DefenseConfigTranslations.lua | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Modules/Config/DefenseSection.lua b/Modules/Config/DefenseSection.lua index 860dc9d4..cd8c43d9 100755 --- a/Modules/Config/DefenseSection.lua +++ b/Modules/Config/DefenseSection.lua @@ -249,13 +249,13 @@ function _Config:LoadDefenseSection() type = "toggle", order = 8.1, name = function() return i18n("Resilience") end, - desc = function() return i18n("Shows/Hides the resilience value.") end, + desc = function() return i18n("Shows/Hides the resilience damage reduction.") 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.resilienceValue.display; end, + get = function () return ExtendedCharacterStats.profile.defense.resilience.display; end, set = function (_, value) - ExtendedCharacterStats.profile.defense.resilienceValue.display = value + ExtendedCharacterStats.profile.defense.resilience.display = value Stats.RebuildStatInfos() end, }, diff --git a/Modules/Stats.lua b/Modules/Stats.lua index 00ce6ffa..2c4bb07d 100755 --- a/Modules/Stats.lua +++ b/Modules/Stats.lua @@ -287,7 +287,7 @@ _CreateStatInfos = function() (not ECS.IsClassic) and category.dodgeRating or nil, category.dodge or nil, (not ECS.IsClassic) and category.resilienceRating or nil, - ECS.IsClassic and nil or category.resilienceValue + ECS.IsClassic and nil or category.resilience ) if UnitHasMana("player") then diff --git a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua index c746dc8d..49d846df 100644 --- a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua @@ -192,7 +192,7 @@ local defenseConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de esquivar", ["ptBR"] = "Mostra/oculta a chance de esquivar" }, - ["Shows/Hides the resilience value."] = { + ["Shows/Hides the resilience damage reduction."] = { ["enUS"] = true, ["deDE"] = "Zeigt/Versteckt den Abhärtungswert.", ["frFR"] = "Affiche/cache la valeur de résilience.", From 883d038d1091d0aa2800d2ace1ea4c660654df4a Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Wed, 18 Feb 2026 04:25:45 +0100 Subject: [PATCH 13/23] wip --- Modules/i18n/translations/StatTranslations.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Modules/i18n/translations/StatTranslations.lua b/Modules/i18n/translations/StatTranslations.lua index 71d1a03a..b86efce9 100644 --- a/Modules/i18n/translations/StatTranslations.lua +++ b/Modules/i18n/translations/StatTranslations.lua @@ -70,7 +70,7 @@ local statTranslations = { ["ruRU"] = "Проник. способ. броня", ["esES"] = "Penetración de armadura", ["esMX"] = "Penetración de armadura", - ["ptBR"] = "Penetração em Armadura" + ["ptBR"] = "Penetração em armadura" }, ["Armor pen. rating"] = { ["enUS"] = true, @@ -288,8 +288,8 @@ local statTranslations = { ["frFR"] = "Réduction des critiques", ["zhCN"] = false, ["ruRU"] = "Снижение крита", - ["esES"] = "Reducción de crít", - ["esMX"] = "Reducción de crít", + ["esES"] = "Reducción de crít.", + ["esMX"] = "Reducción de crít.", ["ptBR"] = "Redução de crítico" }, ["Avoidance"] = { From 482cfdf3e9babca2c9b621801adff67d4efa86e7 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Wed, 18 Feb 2026 04:28:10 +0100 Subject: [PATCH 14/23] wip --- Modules/Stats.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Stats.lua b/Modules/Stats.lua index 2c4bb07d..47c77140 100755 --- a/Modules/Stats.lua +++ b/Modules/Stats.lua @@ -286,7 +286,7 @@ _CreateStatInfos = function() DataUtils:CanParry() and category.parry or nil, (not ECS.IsClassic) and category.dodgeRating or nil, category.dodge or nil, - (not ECS.IsClassic) and category.resilienceRating or nil, + ECS.IsClassic and nil or category.resilienceRating, ECS.IsClassic and nil or category.resilience ) From f1bc415bbcced233d09a923c3f1b80edd305e6f5 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Wed, 18 Feb 2026 04:33:36 +0100 Subject: [PATCH 15/23] wip --- Modules/Config/RangeSection.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Config/RangeSection.lua b/Modules/Config/RangeSection.lua index bbd2a27b..914fb82f 100755 --- a/Modules/Config/RangeSection.lua +++ b/Modules/Config/RangeSection.lua @@ -55,7 +55,7 @@ function _Config:LoadRangeSection() Stats.RebuildStatInfos() end, }, - rangeCrit. = { + rangeCrit = { type = "toggle", order = 2.1, name = function() return i18n("Ranged Crit") end, From 5a7fa6b5b738ffeff5050534600293cd710861fb Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Wed, 18 Feb 2026 06:16:21 +0100 Subject: [PATCH 16/23] wip --- Modules/Config/Config.lua | 18 +++---- Modules/Config/DefenseSection.lua | 26 +++++----- Modules/Config/GeneralSection.lua | 4 +- Modules/Config/ManaSection.lua | 2 +- Modules/Config/MeleeSection.lua | 50 +++++++++---------- Modules/Config/RangeSection.lua | 30 +++++------ Modules/Config/SpellSchoolsSection.lua | 2 +- Modules/Config/SpellSection.lua | 44 ++++++++-------- Modules/Migration.lua | 17 ++++++- Modules/Profile.lua | 33 ++++++++++-- .../i18n/translations/CommandTranslations.lua | 2 +- .../ConfigTranslations/ConfigTranslations.lua | 20 ++++---- .../DefenseConfigTranslations.lua | 16 +++--- .../GeneralConfigTranslations.lua | 4 +- .../ManaConfigTranslations.lua | 2 +- .../MeleeConfigTranslations.lua | 30 +++++------ .../RangedConfigTranslations.lua | 12 ++--- .../SpellConfigTranslations.lua | 12 ++--- .../SpellSchoolsConfigTranslations.lua | 2 +- .../i18n/translations/StatTranslations.lua | 18 +++++-- 20 files changed, 197 insertions(+), 147 deletions(-) diff --git a/Modules/Config/Config.lua b/Modules/Config/Config.lua index a0d2ac2a..8ef302f4 100755 --- a/Modules/Config/Config.lua +++ b/Modules/Config/Config.lua @@ -60,7 +60,7 @@ _GeneralTab = function() generalHeader = { type = "header", order = 1, - name = function() return i18n("General Settings") end, + name = function() return i18n("General settings") end, }, statsWindowClosedOnOpen = { type = "toggle", @@ -76,7 +76,7 @@ _GeneralTab = function() addColorsToStatTexts = { type = "toggle", order = 2, - name = function() return i18n("Colorize Stats") end, + name = function() return i18n("Colorize stats") end, desc = function() return i18n("Adds colors to the stats overview.") end, width = "full", get = function () return ExtendedCharacterStats.general.addColorsToStatTexts; end, @@ -111,7 +111,7 @@ _GeneralTab = function() showQualityColors = { type = "toggle", order = 3, - name = function() return i18n("Show Item Quality Colors") end, + name = function() return i18n("Show item quality colors") end, desc = function() return i18n("Shows/Hides the colored frames around equipped items.") end, width = "full", get = function () return ExtendedCharacterStats.general.showQualityColors; end, @@ -123,7 +123,7 @@ _GeneralTab = function() qualityColorsIntensity = { type = "range", order = 4, - name = function() return i18n("Quality Colors' Intensity") end, + name = function() return i18n("Quality colors' intensity") end, desc = function() return i18n("Changes the intensity of the colored frames' glow.") end, width = "double", min = 0.10, @@ -138,7 +138,7 @@ _GeneralTab = function() headerFontSize = { type = "range", order = 5, - name = function() return i18n("Header Font Size") end, + name = function() return i18n("Header font size") end, desc = function() return i18n("Changes the font size of the headers (e.g. Melee)") end, width = "double", min = 8, @@ -153,8 +153,8 @@ _GeneralTab = function() statFontSize = { type = "range", order = 6, - name = function() return i18n("Stat Font Size") end, - desc = function() return i18n("Changes the font size of the stat lines (e.g. Crit)") end, + name = function() return i18n("Stat font size") end, + desc = function() return i18n("Changes the font size of the stat lines (e.g. Crit.)") end, width = "double", min = 8, max = 18, @@ -168,7 +168,7 @@ _GeneralTab = function() windowWidth = { type = "range", order = 7, - name = function() return i18n("Window Width") end, + name = function() return i18n("Window width") end, desc = function() return i18n("Changes the width of the stats window") end, width = "double", min = 12, @@ -241,7 +241,7 @@ _StatsTab = function () statsHeader = { type = "header", order = 1, - name = function() return i18n("Stats Settings") end, + name = function() return i18n("Stats settings") end, }, generalGroup = _Config:LoadGeneralSection(), meleeGroup = _Config:LoadMeleeSection(), diff --git a/Modules/Config/DefenseSection.lua b/Modules/Config/DefenseSection.lua index cd8c43d9..c86ad084 100755 --- a/Modules/Config/DefenseSection.lua +++ b/Modules/Config/DefenseSection.lua @@ -20,7 +20,7 @@ function _Config:LoadDefenseSection() showDefenseStats = { type = "toggle", order = 0, - name = function() return i18n("Show Defense Stats") end, + name = function() return i18n("Show defense stats") end, desc = function() return i18n("Shows/Hides all defense stats.") end, width = 1.5, get = function () return ExtendedCharacterStats.profile.defense.display; end, @@ -45,7 +45,7 @@ function _Config:LoadDefenseSection() meleeCritReduction = { type = "toggle", order = 2, - name = function() return i18n("Melee Crit. Reduction") end, + 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, disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, @@ -58,7 +58,7 @@ function _Config:LoadDefenseSection() rangedCritReduction = { type = "toggle", order = 2.1, - name = function() return i18n("Ranged Crit. Reduction") end, + 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, disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, @@ -71,7 +71,7 @@ function _Config:LoadDefenseSection() spellCritReduction = { type = "toggle", order = 2.2, - name = function() return i18n("Spell Crit. Reduction") end, + 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, disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, @@ -110,7 +110,7 @@ function _Config:LoadDefenseSection() defenseRating = { type = "toggle", order = 4, - name = function() return i18n("Defense Rating") end, + name = function() return i18n("Defense rating") end, desc = function() return i18n("Shows/Hides the defense rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -137,7 +137,7 @@ function _Config:LoadDefenseSection() blockRating = { type = "toggle", order = 5, - name = function() return i18n("Block Rating") end, + 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, @@ -151,7 +151,7 @@ function _Config:LoadDefenseSection() blockChance = { type = "toggle", order = 5.1, - name = function() return i18n("Block Chance") end, + name = function() return i18n("Block chance") end, desc = function() return i18n("Shows/Hides the block chance.") end, width = 1.5, hidden = function() return not IsSpellKnown(107) end, @@ -165,7 +165,7 @@ function _Config:LoadDefenseSection() blockValue = { type = "toggle", order = 5.2, - name = function() return i18n("Block Value") end, + name = function() return i18n("Block value") end, desc = function() return i18n("Shows/Hides the block value.") end, width = 1.5, hidden = function() return not DataUtils:CanBlock() end, @@ -179,7 +179,7 @@ function _Config:LoadDefenseSection() parryRating = { type = "toggle", order = 6, - name = function() return i18n("Parry Rating") end, + 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, @@ -193,7 +193,7 @@ function _Config:LoadDefenseSection() parry = { type = "toggle", order = 6.1, - name = function() return i18n("Parry Chance") end, + name = function() return i18n("Parry chance") end, desc = function() return i18n("Shows/Hides the parry chance.") end, width = 1.5, hidden = function() return not DataUtils:CanParry() end, @@ -207,7 +207,7 @@ function _Config:LoadDefenseSection() dodgeRating = { type = "toggle", order = 7, - name = function() return i18n("Dodge Rating") end, + 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, @@ -221,7 +221,7 @@ function _Config:LoadDefenseSection() dodge = { type = "toggle", order = 7.1, - name = function() return i18n("Dodge Chance") end, + name = function() return i18n("Dodge chance") end, desc = function() return i18n("Shows/Hides the dodge chance.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, @@ -234,7 +234,7 @@ function _Config:LoadDefenseSection() resilienceRating = { type = "toggle", order = 8, - name = function() return i18n("Resilience Rating") end, + name = function() return i18n("Resilience rating") end, desc = function() return i18n("Shows/Hides the resilience rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, diff --git a/Modules/Config/GeneralSection.lua b/Modules/Config/GeneralSection.lua index 8adafb23..d0354e82 100644 --- a/Modules/Config/GeneralSection.lua +++ b/Modules/Config/GeneralSection.lua @@ -18,7 +18,7 @@ function _Config:LoadGeneralSection() showGeneralStats = { type = "toggle", order = 0, - name = function() return i18n("Show General Stats") end, + name = function() return i18n("Show general stats") end, desc = function() return i18n("Shows/Hides all general stats.") end, width = 1.5, get = function () return ExtendedCharacterStats.profile.general.display; end, @@ -30,7 +30,7 @@ function _Config:LoadGeneralSection() movementSpeed = { type = "toggle", order = 1, - name = function() return i18n("Show Movement Speed") end, + name = function() return i18n("Show movement speed") end, desc = function() return i18n("Shows/Hides the movement speed value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.general.display); end, diff --git a/Modules/Config/ManaSection.lua b/Modules/Config/ManaSection.lua index d62c4f5c..8931aec3 100755 --- a/Modules/Config/ManaSection.lua +++ b/Modules/Config/ManaSection.lua @@ -19,7 +19,7 @@ function _Config:LoadManaSection() showManaStats = { type = "toggle", order = 0, - name = function() return i18n("Show Mana Stats") end, + name = function() return i18n("Show mana stats") end, desc = function() return i18n("Shows/Hides all mana stats.") end, width = 1.5, get = function () return ExtendedCharacterStats.profile.regen.display; end, diff --git a/Modules/Config/MeleeSection.lua b/Modules/Config/MeleeSection.lua index 33025e9a..4b8c5a48 100755 --- a/Modules/Config/MeleeSection.lua +++ b/Modules/Config/MeleeSection.lua @@ -18,7 +18,7 @@ function _Config:LoadMeleeSection() showMeleeStats = { type = "toggle", order = 0, - name = function() return i18n("Show Melee Stats") end, + name = function() return i18n("Show melee stats") end, desc = function() return i18n("Shows/Hides all melee stats.") end, width = 1.5, get = function () return ExtendedCharacterStats.profile.melee.display; end, @@ -30,7 +30,7 @@ function _Config:LoadMeleeSection() meleeAttackPower = { type = "toggle", order = 1, - name = function() return i18n("Melee Attack Power") end, + name = function() return i18n("Melee attack power") end, desc = function() return i18n("Shows/Hides the melee attack power value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.melee.display); end, @@ -43,7 +43,7 @@ function _Config:LoadMeleeSection() meleeCritRating = { type = "toggle", order = 2, - name = function() return i18n("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, @@ -57,7 +57,7 @@ function _Config:LoadMeleeSection() meleeCrit = { type = "toggle", order = 2.1, - name = function() return i18n("Melee Crit") end, + name = function() return i18n("Melee crit.") end, desc = function() return i18n("Shows/Hides the melee crit. chance.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.melee.display); end, @@ -70,7 +70,7 @@ function _Config:LoadMeleeSection() penetration = { type = "toggle", order = 2.3, - name = function() return i18n("Armor Pen.") end, + name = function() return i18n("Armor pen.") end, desc = function() return i18n("Shows/Hides the armor penetration value.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -84,7 +84,7 @@ function _Config:LoadMeleeSection() penetrationRating = { type = "toggle", order = 2.4, - name = function() return i18n("Armor Pen. Rating") end, + name = function() return i18n("Armor pen. rating") end, desc = function() return i18n("Shows/Hides the armor penetration rating value.") end, width = 1.5, hidden = function() return not ECS.IsWotlk end, @@ -112,7 +112,7 @@ function _Config:LoadMeleeSection() expertiseRating = { type = "toggle", order = 2.6, - name = function() return i18n("Expertise Rating") end, + name = function() return i18n("Expertise rating") end, desc = function() return i18n("Shows/Hides the expertise rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -126,7 +126,7 @@ function _Config:LoadMeleeSection() hasteRating = { type = "toggle", order = 2.6, - name = function() return i18n("Haste Rating") end, + name = function() return i18n("Haste rating") end, desc = function() return i18n("Shows/Hides the melee haste rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -140,7 +140,7 @@ function _Config:LoadMeleeSection() hasteBonus = { type = "toggle", order = 2.7, - name = function() return i18n("Haste Bonus") end, + name = function() return i18n("Haste bonus") end, desc = function() return i18n("Shows/Hides the melee haste bonus value.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -154,7 +154,7 @@ function _Config:LoadMeleeSection() meleeHit = { type = "toggle", order = 3, - name = function() return i18n("Melee Hit") end, + name = function() return i18n("Melee hit") end, desc = function() return i18n("Shows/Hides all melee hit chance.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.melee.display); end, @@ -168,12 +168,12 @@ function _Config:LoadMeleeSection() type = "group", order = 4, inline = true, - name = function() return i18n("Melee Hit Values") end, + name = function() return i18n("Melee hit values") end, args = { meleeHitRating = { type = "toggle", order = 1, - name = function() return i18n("Hit Rating") end, + name = function() return i18n("Hit rating") end, desc = function() return i18n("Shows/Hides the melee hit rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -190,7 +190,7 @@ function _Config:LoadMeleeSection() meleeHitBonus = { type = "toggle", order = 2, - name = function() return i18n("Hit Bonus") end, + name = function() return i18n("Hit bonus") end, desc = function() return i18n("Shows/Hides the melee hit bonus.") end, width = 1.5, disabled = function() @@ -206,7 +206,7 @@ function _Config:LoadMeleeSection() meleeMiss = { type = "toggle", order = 3, - name = function() return i18n("Miss Chance") end, + name = function() return i18n("Miss chance") end, desc = function() return i18n("Shows/Hides the melee miss chance against enemies on the same level.") end, width = 1.5, disabled = function() @@ -222,7 +222,7 @@ function _Config:LoadMeleeSection() meleeMissBoss = { type = "toggle", order = 4, - name = function() return i18n("Miss Chance Boss") end, + name = function() return i18n("Miss chance boss") end, desc = function() return i18n("Shows/Hides the melee miss chance against boss enemies (+3 Level).") end, width = 1.5, disabled = function() @@ -240,7 +240,7 @@ function _Config:LoadMeleeSection() glancingBlow = { type = "toggle", order = 5, - name = function() return i18n("Glancing Blow") end, + name = function() return i18n("Glancing blow") end, desc = function() return i18n("Shows/Hides all glancing blow stats") end, width = 1.5, hidden = function() return ECS.IsWotlk end, @@ -255,13 +255,13 @@ function _Config:LoadMeleeSection() type = "group", order = 6, inline = true, - name = function() return i18n("Melee Glance Values") end, + name = function() return i18n("Melee glance values") end, hidden = function() return ECS.IsWotlk end, args = { meleeGlance = { type = "toggle", order = 1, - name = function() return i18n("Glancing Blow Chance") end, + name = function() return i18n("Glancing blow chance") end, desc = function() return i18n("Shows/Hides the glancing chance against enemies on same level.") end, width = 1.5, disabled = function() @@ -277,7 +277,7 @@ function _Config:LoadMeleeSection() meleeGlanceBoss = { type = "toggle", order = 2, - name = function() return i18n("Glancing Blow Chance Boss") end, + name = function() return i18n("Glancing blow chance boss") end, desc = function() return i18n("Shows/Hides the glancing chance against boss enemies (+3 Level).") end, width = 1.5, disabled = function() @@ -293,7 +293,7 @@ function _Config:LoadMeleeSection() meleeGlanceDamage = { type = "toggle", order = 3, - name = function() return i18n("Glancing Blow Damage") end, + name = function() return i18n("Glancing blow damage") end, desc = function() return i18n("Shows/Hides the damage reduction against enemies on the same level.") end, width = 1.5, disabled = function() @@ -309,7 +309,7 @@ function _Config:LoadMeleeSection() meleeGlanceDamageBoss = { type = "toggle", order = 4, - name = function() return i18n("Glancing Blow Damage Boss") end, + name = function() return i18n("Glancing blow damage boss") end, desc = function() return i18n("Shows/Hides the damage reduction against boss enemies (+3 Level).") end, width = 1.5, disabled = function() @@ -327,7 +327,7 @@ function _Config:LoadMeleeSection() meleeAttackSpeed = { type = "toggle", order = 7, - name = function() return i18n("Attack Speed") end, + name = function() return i18n("Attack speed") end, desc = function() return i18n("Shows/Hides the melee attack speed.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.melee.display); end, @@ -341,12 +341,12 @@ function _Config:LoadMeleeSection() type = "group", order = 8, inline = true, - name = function() return i18n("Attack Speed") end, + name = function() return i18n("Attack speed") end, args = { mainHand = { type = "toggle", order = 1, - name = function() return i18n("Main Hand") end, + name = function() return i18n("Main hand") end, desc = function() return i18n("Shows/Hides the attack speed of the main hand.") end, width = 1.5, disabled = function() @@ -362,7 +362,7 @@ function _Config:LoadMeleeSection() offHand = { type = "toggle", order = 2, - name = function() return i18n("Off Hand") end, + name = function() return i18n("Off hand") end, hidden = function() return not CanDualWield() end, desc = function() return i18n("Shows/Hides the attack speed of the off hand.") end, width = 1.5, diff --git a/Modules/Config/RangeSection.lua b/Modules/Config/RangeSection.lua index 914fb82f..87952765 100755 --- a/Modules/Config/RangeSection.lua +++ b/Modules/Config/RangeSection.lua @@ -19,7 +19,7 @@ function _Config:LoadRangeSection() showRangeStats = { type = "toggle", order = 0, - name = function() return i18n("Show Ranged Stats") end, + name = function() return i18n("Show ranged stats") end, desc = function() return i18n("Shows/Hides all ranged stats.") end, width = 1.5, get = function () return ExtendedCharacterStats.profile.ranged.display; end, @@ -31,7 +31,7 @@ function _Config:LoadRangeSection() rangedAttackPower = { type = "toggle", order = 1, - name = function() return i18n("Ranged Attack Power") end, + name = function() return i18n("Ranged attack power") end, desc = function() return i18n("Shows/Hides the ranged attack power value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.ranged.display); end, @@ -44,7 +44,7 @@ function _Config:LoadRangeSection() rangedCritRating = { type = "toggle", order = 2, - name = function() return i18n("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, @@ -58,7 +58,7 @@ function _Config:LoadRangeSection() rangeCrit = { type = "toggle", order = 2.1, - name = function() return i18n("Ranged Crit") end, + name = function() return i18n("Ranged crit.") end, desc = function() return i18n("Shows/Hides the ranged crit. chance.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.ranged.display); end, @@ -71,7 +71,7 @@ function _Config:LoadRangeSection() penetration = { type = "toggle", order = 2.3, - name = function() return i18n("Armor Pen.") end, + name = function() return i18n("Armor pen.") end, desc = function() return i18n("Shows/Hides the armor penetration value.") end, width = 1.5, hidden = function() return (not ECS.IsWotlk) end, @@ -85,7 +85,7 @@ function _Config:LoadRangeSection() penetrationRating = { type = "toggle", order = 2.4, - name = function() return i18n("Armor Pen. Rating") end, + name = function() return i18n("Armor pen. rating") end, desc = function() return i18n("Shows/Hides the armor penetration rating value.") end, width = 1.5, hidden = function() return (not ECS.IsWotlk) end, @@ -99,7 +99,7 @@ function _Config:LoadRangeSection() hasteRating = { type = "toggle", order = 2.6, - name = function() return i18n("Haste Rating") end, + name = function() return i18n("Haste rating") end, desc = function() return i18n("Shows/Hides the ranged haste rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -113,7 +113,7 @@ function _Config:LoadRangeSection() hasteBonus = { type = "toggle", order = 2.7, - name = function() return i18n("Haste Bonus") end, + name = function() return i18n("Haste bonus") end, desc = function() return i18n("Shows/Hides the ranged haste bonus value.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -127,7 +127,7 @@ function _Config:LoadRangeSection() rangedAttackSpeed = { type = "toggle", order = 3, - name = function() return i18n("Attack Speed") end, + name = function() return i18n("Attack speed") end, desc = function() return i18n("Shows/Hides the ranged attack speed.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.ranged.display); end, @@ -140,7 +140,7 @@ function _Config:LoadRangeSection() rangeHit = { type = "toggle", order = 4, - name = function() return i18n("Ranged Hit") end, + name = function() return i18n("Ranged hit") end, desc = function() return i18n("Shows/Hides all ranged hit chance.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.ranged.display); end, @@ -154,12 +154,12 @@ function _Config:LoadRangeSection() type = "group", order = 5, inline = true, - name = function() return i18n("Ranged Hit Values") end, + name = function() return i18n("Ranged hit values") end, args = { rangeHitRating = { type = "toggle", order = 1, - name = function() return i18n("Hit Rating") end, + name = function() return i18n("Hit rating") end, desc = function() return i18n("Shows/Hides the ranged hit rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -176,7 +176,7 @@ function _Config:LoadRangeSection() rangeHitBonus = { type = "toggle", order = 2, - name = function() return i18n("Hit Bonus") end, + name = function() return i18n("Hit bonus") end, desc = function() return i18n("Shows/Hides the ranged hit bonus.") end, width = 1.5, disabled = function() @@ -192,7 +192,7 @@ function _Config:LoadRangeSection() rangeMiss = { type = "toggle", order = 3, - name = function() return i18n("Miss Chance") end, + name = function() return i18n("Miss chance") end, desc = function() return i18n("Shows/Hides the ranged miss chance against enemies on the same level.") end, width = 1.5, disabled = function() @@ -208,7 +208,7 @@ function _Config:LoadRangeSection() rangeMissBoss = { type = "toggle", order = 4, - name = function() return i18n("Miss Chance Boss") end, + name = function() return i18n("Miss chance boss") end, desc = function() return i18n("Shows/Hides the ranged miss chance against boss enemies (+3 Level).") end, width = 1.5, disabled = function() diff --git a/Modules/Config/SpellSchoolsSection.lua b/Modules/Config/SpellSchoolsSection.lua index bc3b5881..a676f531 100644 --- a/Modules/Config/SpellSchoolsSection.lua +++ b/Modules/Config/SpellSchoolsSection.lua @@ -13,7 +13,7 @@ function _Config:SpellSchoolsSection() order = 6, inline = false, width = 2, - name = function() return i18n("Spell Schools") end, + name = function() return i18n("Spell schools") end, args = { arcane = { type = "toggle", diff --git a/Modules/Config/SpellSection.lua b/Modules/Config/SpellSection.lua index 65e06485..bab9fd99 100755 --- a/Modules/Config/SpellSection.lua +++ b/Modules/Config/SpellSection.lua @@ -18,7 +18,7 @@ function _Config:LoadSpellSection() showSpellStats = { type = "toggle", order = 0, - name = function() return i18n("Show Spell Stats") end, + name = function() return i18n("Show spell stats") end, desc = function() return i18n("Shows/Hides all spell stats.") end, width = 1.5, get = function () return ExtendedCharacterStats.profile.spell.display; end, @@ -30,21 +30,21 @@ function _Config:LoadSpellSection() spellCritRating = { type = "toggle", order = 1, - name = function() return i18n("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, - get = function () return ExtendedCharacterStats.profile.spell.critRating.display; end, + get = function () return ExtendedCharacterStats.profile.spell.crit.rating.display; end, set = function (_, value) - ExtendedCharacterStats.profile.spell.critRating.display = value + ExtendedCharacterStats.profile.spell.crit.rating.display = value Stats.RebuildStatInfos() end, }, spellCrit = { type = "toggle", order = 1.1, - name = function() return i18n("Spell Crit") end, + name = function() return i18n("Spell crit.") end, desc = function() return i18n("Shows/Hides the spell crit. chance.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, @@ -57,7 +57,7 @@ function _Config:LoadSpellSection() hasteRating = { type = "toggle", order = 2, - name = function() return i18n("Haste Rating") end, + name = function() return i18n("Haste rating") end, desc = function() return i18n("Shows/Hides the spell haste rating value.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -71,7 +71,7 @@ function _Config:LoadSpellSection() hasteBonus = { type = "toggle", order = 3, - name = function() return i18n("Haste Bonus") end, + name = function() return i18n("Haste bonus") end, desc = function() return i18n("Shows/Hides the spell haste bonus value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, @@ -84,7 +84,7 @@ function _Config:LoadSpellSection() spellPenetration = { type = "toggle", order = 4, - name = function() return i18n("Spell Penetration") end, + name = function() return i18n("Spell penetration") end, desc = function() return i18n("Shows/Hides the spell penetration value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, @@ -98,12 +98,12 @@ function _Config:LoadSpellSection() type = "group", order = 5, inline = true, - name = function() return i18n("Spell Hit Values") end, + name = function() return i18n("Spell hit values") end, args = { spellHitRating = { type = "toggle", order = 1, - name = function() return i18n("Hit Rating") end, + name = function() return i18n("Hit rating") end, desc = function() return i18n("Shows/Hides the spell hit rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -120,7 +120,7 @@ function _Config:LoadSpellSection() spellHitBonus = { type = "toggle", order = 2, - name = function() return i18n("Hit Bonus") end, + name = function() return i18n("Hit bonus") end, desc = function() return i18n("Shows/Hides the spell hit bonus.") end, width = 1.5, disabled = function() @@ -136,7 +136,7 @@ function _Config:LoadSpellSection() spellMiss = { type = "toggle", order = 3, - name = function() return i18n("Miss Chance") end, + name = function() return i18n("Miss chance") end, desc = function() return i18n("Shows/Hides the spell miss chance against enemies on the same level.") end, width = 1.5, disabled = function() @@ -152,7 +152,7 @@ function _Config:LoadSpellSection() spellMissBoss = { type = "toggle", order = 4, - name = function() return i18n("Miss Chance Boss") end, + name = function() return i18n("Miss chance boss") end, desc = function() return i18n("Shows/Hides the spell miss chance against boss enemies (+3 Level).") end, width = 1.5, disabled = function() @@ -171,12 +171,12 @@ function _Config:LoadSpellSection() type = "group", order = 6, inline = true, - name = function() return i18n("Spell Power") end, + name = function() return i18n("Spell power") end, args = { bonusHealing = { type = "toggle", order = 1, - name = function() return i18n("Healing Power") end, + name = function() return i18n("Healing power") end, desc = function() return i18n("Shows/Hides the healing power value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, @@ -189,7 +189,7 @@ function _Config:LoadSpellSection() arcaneDmg = { type = "toggle", order = 2, - name = function() return i18n("Arcane Damage") end, + name = function() return i18n("Arcane damage") end, desc = function() return i18n("Shows/Hides the arcane damage value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, @@ -202,7 +202,7 @@ function _Config:LoadSpellSection() fireDmg = { type = "toggle", order = 3, - name = function() return i18n("Fire Damage") end, + name = function() return i18n("Fire damage") end, desc = function() return i18n("Shows/Hides the fire damage value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, @@ -215,7 +215,7 @@ function _Config:LoadSpellSection() frostDmg = { type = "toggle", order = 4, - name = function() return i18n("Frost Damage") end, + name = function() return i18n("Frost damage") end, desc = function() return i18n("Shows/Hides the frost damage value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, @@ -228,7 +228,7 @@ function _Config:LoadSpellSection() holyDmg = { type = "toggle", order = 5, - name = function() return i18n("Holy Damage") end, + name = function() return i18n("Holy damage") end, desc = function() return i18n("Shows/Hides the holy damage value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, @@ -241,7 +241,7 @@ function _Config:LoadSpellSection() natureDmg = { type = "toggle", order = 6, - name = function() return i18n("Nature Damage") end, + name = function() return i18n("Nature damage") end, desc = function() return i18n("Shows/Hides the nature damage value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, @@ -254,7 +254,7 @@ function _Config:LoadSpellSection() physicalDmg = { type = "toggle", order = 7, - name = function() return i18n("Physical Damage") end, + name = function() return i18n("Physical damage") end, desc = function() return i18n("Shows/Hides the physical damage value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, @@ -267,7 +267,7 @@ function _Config:LoadSpellSection() shadowDmg = { type = "toggle", order = 8, - name = function() return i18n("Shadow Damage") end, + name = function() return i18n("Shadow damage") end, desc = function() return i18n("Shows/Hides the shadow damage value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, diff --git a/Modules/Migration.lua b/Modules/Migration.lua index 59cd8135..e6068677 100644 --- a/Modules/Migration.lua +++ b/Modules/Migration.lua @@ -14,4 +14,19 @@ function Migration:ToLatestProfileVersion(profileVersion) ECS:Print(i18n("Profile has been reset due to a major update.")) -- because of TBC anniversary return end -end + + local defaultProfile = Profile:GetDefaultProfile() + if profileVersion < 24 then + ExtendedCharacterStats.profile.defense.blockRating = defaultProfile.profile.defense.blockRating + ExtendedCharacterStats.profile.defense.resilience = defaultProfile.profile.defense.resilience + ExtendedCharacterStats.profile.melee.critRating = defaultProfile.profile.melee.critRating + ExtendedCharacterStats.profile.melee.penetration = defaultProfile.profile.melee.penetration + ExtendedCharacterStats.profile.melee.penetrationRating = defaultProfile.profile.melee.penetrationRating + ExtendedCharacterStats.profile.ranged.critRating = defaultProfile.profile.ranged.critRating + ExtendedCharacterStats.profile.ranged.penetration = defaultProfile.profile.ranged.penetration + ExtendedCharacterStats.profile.ranged.penetrationRating = defaultProfile.profile.ranged.penetrationRating + ExtendedCharacterStats.profile.spell.crit.rating = defaultProfile.profile.spell.crit.rating + ExtendedCharacterStats.profile.spell.penetration = defaultProfile.profile.spell.penetration + ExtendedCharacterStats.profile.spell.penetrationRating = defaultProfile.profile.spell.penetrationRating + end +end \ No newline at end of file diff --git a/Modules/Profile.lua b/Modules/Profile.lua index 5e1f3e0b..3acc538a 100755 --- a/Modules/Profile.lua +++ b/Modules/Profile.lua @@ -6,7 +6,7 @@ local Utils = ECSLoader:ImportModule("Utils") ---@return number function Profile.GetProfileVersion() - return 23 + return 24 end ---@return ECSProfile @@ -66,7 +66,7 @@ local function GetDefaultStatsProfile() display = true, isSubGroup = true, refName = "GlanceChanceHeader", - text = "Glancing Blow", + text = "Glancing blow", sameLevel = { display = true, refName = "GlanceHitChanceSameLevel", @@ -103,6 +103,13 @@ local function GetDefaultStatsProfile() textColor = colors.ATTACK_POWER_SECONDARY, statColor = colors.ATTACK_POWER_PRIMARY }, + critRating = { + display = true, + refName = "RangedCritRating", + text = "Crit. rating", + textColor = colors.CRIT_SECONDARY, + statColor = colors.CRIT_PRIMARY + }, crit = { display = true, refName = "MeleeCritChance", @@ -157,14 +164,14 @@ local function GetDefaultStatsProfile() mainHand = { display = true, refName = "MeleeAttackSpeedMainHand", - text = "Main Hand", + text = "Main hand", textColor = colors.ATTACK_SPEED_SECONDARY, statColor = colors.ATTACK_SPEED_PRIMARY }, offHand = { display = true, refName = "MeleeAttackSpeedOffHand", - text = "Off Hand", + text = "Off hand", textColor = colors.ATTACK_SPEED_SECONDARY, statColor = colors.ATTACK_SPEED_PRIMARY }, @@ -219,6 +226,13 @@ local function GetDefaultStatsProfile() textColor = colors.ATTACK_POWER_SECONDARY, statColor = colors.ATTACK_POWER_PRIMARY }, + critRating = { + display = true, + refName = "RangedCritRating", + text = "Crit. rating", + textColor = colors.CRIT_SECONDARY, + statColor = colors.CRIT_PRIMARY + }, crit = { display = true, refName = "RangedCritChance", @@ -280,10 +294,14 @@ local function GetDefaultStatsProfile() text = "Defense rating" }, defense = {display = true, refName = "DefenseValue", text = "Defense"}, + blockRating = {display = true, refName = "BlockRating", text = "Block rating"}, blockChance = {display = true, refName = "BlockChance", text = "Block chance"}, blockValue = {display = true, refName = "BlockValue", text = "Block value"}, + parryRating = {display = true, refName = "ParryRating", text = "Parry rating"}, parry = {display = true, refName = "ParryChance", text = "Parry chance"}, + dodgeRating = {display = true, refName = "DodgeRating", text = "Dodge rating"}, dodge = {display = true, refName = "DodgeChance", text = "Dodge chance"}, + resilienceRating = {display = true,refName = "ResilienceRating", text = "Resilience rating"}, resilience = { display = true, refName = "Resilience", @@ -561,6 +579,13 @@ local function GetDefaultStatsProfile() crit = { display = true, + rating = { + display = true, + refName = "SpellCritRating", + text = "Crit. rating", + textColor = colors.CRIT_SECONDARY, + statColor = colors.CRIT_PRIMARY + }, arcane = { display = true, refName = "ArcaneCritChance", diff --git a/Modules/i18n/translations/CommandTranslations.lua b/Modules/i18n/translations/CommandTranslations.lua index 45e8820a..40b667ae 100644 --- a/Modules/i18n/translations/CommandTranslations.lua +++ b/Modules/i18n/translations/CommandTranslations.lua @@ -2,7 +2,7 @@ local i18n = ECSLoader:ImportModule("i18n") local commandTranslations = { - ["Available Commands"] = { + ["Available commands"] = { ["enUS"] = true, ["deDE"] = "Verfügbare Befehle", ["frFR"] = "Commandes disponibles", diff --git a/Modules/i18n/translations/ConfigTranslations/ConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/ConfigTranslations.lua index a8b72073..99d00412 100644 --- a/Modules/i18n/translations/ConfigTranslations/ConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/ConfigTranslations.lua @@ -32,7 +32,7 @@ local configTranslations = { ["esMX"] = "Estadísticas", ["ptBR"] = "Estatísticas" }, - ["General Settings"] = { + ["General settings"] = { ["enUS"] = true, ["deDE"] = "Allgemeine Einstellungen", ["frFR"] = "Paramètres généraux", @@ -62,7 +62,7 @@ local configTranslations = { ["esMX"] = "Oculta la ventana de estadísticas cuando abriendo la información del personaje", ["ptBR"] = "Oculta as janelas de estatísticas ao abrir as informações do personagem" }, - ["Colorize Stats"] = { + ["Colorize stats"] = { ["enUS"] = true, ["deDE"] = "Werte färben", ["frFR"] = "Coloriser les statistiques", @@ -122,7 +122,7 @@ local configTranslations = { ["esMX"] = "Valores de estadísticas", ["ptBR"] = "Valores das estatísticas" }, - ["Show Item Quality Colors"] = { + ["Show item quality colors"] = { ["enUS"] = true, ["deDE"] = "Zeige Item Qualitätsfarben", ["frFR"] = "Affiche la couleur de rareté des objets", @@ -142,7 +142,7 @@ local configTranslations = { ["esMX"] = "Muestra/oculta los marcos coloreados alrededor de los objetos equipados", ["ptBR"] = "Mostra/oculta os quadros coloridos ao redor dos itens equipados" }, - ["Quality Colors' Intensity"] = { + ["Quality colors' intensity"] = { ["enUS"] = true, ["deDE"] = "Intensität der Qualitätsfarben", ["frFR"] = "Intensité des couleurs de qualité", @@ -162,7 +162,7 @@ local configTranslations = { ["esMX"] = "Cambia la intensidad del brillo de los marcos coloreados.", ["ptBR"] = "Altera a intensidade do brilho dos quadros coloridos." }, - ["Header Font Size"] = { + ["Header font size"] = { ["enUS"] = true, ["deDE"] = "Überschriften Schriftgröße", ["frFR"] = "Taille de la police d'entête", @@ -182,7 +182,7 @@ local configTranslations = { ["esMX"] = "Cambia el tamaño de fuente de los encabezados (p. ej., cuerpo a cuerpo)", ["ptBR"] = "Altera o tamanho da fonte dos cabeçalhos (por exemplo, corpo a corpo)" }, - ["Stat Font Size"] = { + ["Stat font size"] = { ["enUS"] = true, ["deDE"] = "Werte Schriftgröße", ["frFR"] = "Taille de la police des statistiques", @@ -192,17 +192,17 @@ local configTranslations = { ["esMX"] = "Tamaño de fuente de estadística", ["ptBR"] = "Tamanho da fonte das estatísticas" }, - ["Changes the font size of the stat lines (e.g. Crit)"] = { + ["Changes the font size of the stat lines (e.g. Crit.)"] = { ["enUS"] = true, ["deDE"] = "Ändert die Schriftgröße der Werte (z.B. Kritische Chance)", ["frFR"] = "Modifie la taille de la police des statistiques (ex. Critique)", ["zhCN"] = "更改统计行的字体大小 (例如:暴击)", - ["ruRU"] = "Изменяет размер шрифта характеристик (например, \"Крит\")", + ["ruRU"] = "Изменяет размер шрифта характеристик (например, \"Крит.\")", ["esES"] = "Cambia el tamaño de fuente de las líneas de estadísticas (p. ej., crítico)", ["esMX"] = "Cambia el tamaño de fuente de las líneas de estadísticas (p. ej., crítico)", ["ptBR"] = "Altera o tamanho da fonte das linhas de estatísticas (por exemplo, crítico)" }, - ["Window Width"] = { + ["Window width"] = { ["enUS"] = true, ["deDE"] = "Fensterbreite", ["frFR"] = "Largeur de fenêtre", @@ -232,7 +232,7 @@ local configTranslations = { ["esMX"] = "Idioma", ["ptBR"] = "Idioma" }, - ["Stats Settings"] = { + ["Stats settings"] = { ["enUS"] = true, ["deDE"] = "Werte Einstellungen", ["frFR"] = "Paramètres des statistiques", diff --git a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua index 49d846df..6e62d5b3 100644 --- a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua @@ -2,7 +2,7 @@ local i18n = ECSLoader:ImportModule("i18n") local defenseConfigTranslations = { - ["Parry Rating"] = { + ["Parry rating"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -12,7 +12,7 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Dodge Rating"] = { + ["Dodge rating"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -22,7 +22,7 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Block Rating"] = { + ["Block rating"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -32,7 +32,7 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Resilience Rating"] = { + ["Resilience rating"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -42,7 +42,7 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Melee Crit. Reduction"] = { + ["Melee crit. reduction"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -52,7 +52,7 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false }, - ["Ranged Crit. Reduction"] = { + ["Ranged crit. reduction"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -62,7 +62,7 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false }, - ["Spell Crit. Reduction"] = { + ["Spell crit. reduction"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -72,7 +72,7 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false }, - ["Show Defense Stats"] = { + ["Show defense stats"] = { ["enUS"] = true, ["deDE"] = "Verteidigungswerte anzeigen", ["frFR"] = "Afficher défense", diff --git a/Modules/i18n/translations/ConfigTranslations/GeneralConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/GeneralConfigTranslations.lua index 88bb1158..fdb9a963 100644 --- a/Modules/i18n/translations/ConfigTranslations/GeneralConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/GeneralConfigTranslations.lua @@ -2,7 +2,7 @@ local i18n = ECSLoader:ImportModule("i18n") local generalConfigTranslations = { - ["Show General Stats"] = { + ["Show general stats"] = { ["enUS"] = true, ["deDE"] = "Allgemeine Werte anzeigen", ["frFR"] = "Afficher les statistiques", @@ -22,7 +22,7 @@ local generalConfigTranslations = { ["esMX"] = "Muestra/oculta todas estadísticas generales", ["ptBR"] = "Mostra/oculta todas as estatísticas gerais" }, - ["Show Movement Speed"] = { + ["Show movement speed"] = { ["enUS"] = true, ["deDE"] = "Bewegungsgeschwindigkeit anzeigen", ["frFR"] = "Afficher la vitesse de déplacement", diff --git a/Modules/i18n/translations/ConfigTranslations/ManaConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/ManaConfigTranslations.lua index 21443840..8a9db4bc 100644 --- a/Modules/i18n/translations/ConfigTranslations/ManaConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/ManaConfigTranslations.lua @@ -2,7 +2,7 @@ local i18n = ECSLoader:ImportModule("i18n") local manaConfigTranslations = { - ["Show Mana Stats"] = { + ["Show mana stats"] = { ["enUS"] = true, ["deDE"] = "Manawerte anzeigen", ["frFR"] = "Afficher mana", diff --git a/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua index 90a7429c..dba3d4ea 100644 --- a/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua @@ -2,7 +2,7 @@ local i18n = ECSLoader:ImportModule("i18n") local meleeConfigTranslations = { - ["Show Melee Stats"] = { + ["Show melee stats"] = { ["enUS"] = true, ["deDE"] = "Nahkampfwerte anzeigen", ["frFR"] = "Afficher mêlée", @@ -22,7 +22,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta todas estadísticas cuerpo a cuerpo", ["ptBR"] = "Mostra/oculta todas as estatísticas corpo a corpo" }, - ["Melee Attack Power"] = { + ["Melee attack power"] = { ["enUS"] = true, ["deDE"] = "Nahkampf Angriffskraft", ["frFR"] = "Puissance d'attaque en mêlée", @@ -42,7 +42,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta el valor de poder de ataque cuerpo a cuerpo", ["ptBR"] = "Mostra/oculta o valor de poder de ataque corpo a corpo" }, - ["Melee Crit"] = { + ["Melee crit."] = { ["enUS"] = true, ["deDE"] = "Nahkampf Kritisch", ["frFR"] = "Critique en mêlée", @@ -152,7 +152,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta la velocidad de ataque de la mano izquierda", ["ptBR"] = "Mostra/oculta a velocidade de ataque da mão secundária" }, - ["Melee Hit"] = { + ["Melee hit"] = { ["enUS"] = true, ["deDE"] = "Nahkampf Trefferwertung", ["frFR"] = "Toucher en mêlée", @@ -162,7 +162,7 @@ local meleeConfigTranslations = { ["esMX"] = "Probabilidad de golpear", ["ptBR"] = "Chance de acerto" }, - ["Melee Hit Values"] = { + ["Melee hit values"] = { ["enUS"] = true, ["deDE"] = "Nahkampf Trefferwertung", ["frFR"] = "Valeurs de toucher en mêlée", @@ -182,7 +182,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de golpear", ["ptBR"] = "Mostra/oculta a chance de acerto" }, - ["Hit Rating"] = { + ["Hit rating"] = { ["enUS"] = true, ["deDE"] = "Trefferwertung", ["frFR"] = "Score de toucher", @@ -202,7 +202,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta el índice de golpear", ["ptBR"] = "Mostra/oculta a taxa de acerto" }, - ["Hit Bonus"] = { + ["Hit bonus"] = { ["enUS"] = true, ["deDE"] = "Trefferwertungsbonus", ["frFR"] = "Bonus de toucher", @@ -222,7 +222,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta el bonus de golpear", ["ptBR"] = "Mostra/oculta o bônus de acerto" }, - ["Miss Chance"] = { + ["Miss chance"] = { ["enUS"] = true, ["deDE"] = "Chance zu verfehlen", ["frFR"] = "Chances de rater", @@ -242,7 +242,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de fallo contra enemigos del mismo nivel", ["ptBR"] = "Mostra/oculta a chance de erro contra inimigos do mesmo nível" }, - ["Miss Chance Boss"] = { + ["Miss chance boss"] = { ["enUS"] = true, ["deDE"] = "Chance zu verfehlen (Boss)", ["frFR"] = "Chances de rater (Boss)", @@ -262,7 +262,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de fallo contra jefes (nivel +3)", ["ptBR"] = "Mostra/oculta a chance de erro contra chefes (nível +3)." }, - ["Glancing Blow Chance"] = { + ["Glancing blow chance"] = { ["enUS"] = true, ["deDE"] = "Streifschlagchance", ["frFR"] = "Chance de coup d'éraflure", @@ -282,7 +282,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de golpe de refilón contra enemigos del mismo nivel.", ["ptBR"] = "Mostra/oculta a chance de pancada de relance contra inimigos do mesmo nível." }, - ["Glancing Blow Chance Boss"] = { + ["Glancing blow chance boss"] = { ["enUS"] = true, ["deDE"] = "Streifschlagchance (Boss)", ["frFR"] = "Chance de coup d'éraflure (Boss)", @@ -302,7 +302,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de golpe de refilón contra jefes (nivel +3)", ["ptBR"] = "Mostra/oculta a chance de pancada de relance contra chefes (nível +3)." }, - ["Glancing Blow Damage"] = { + ["Glancing blow damage"] = { ["enUS"] = true, ["deDE"] = "Streifschlagschaden", ["frFR"] = "Dégâts du coup d'éraflure", @@ -322,7 +322,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta el daño de golpe de refilón contra enemigos del mismo nivel.", ["ptBR"] = "Mostra/oculta o dano de pancada de relance contra inimigos do mesmo nível." }, - ["Glancing Blow Damage Boss"] = { + ["Glancing blow damage boss"] = { ["enUS"] = true, ["deDE"] = "Streifschlagschaden (Boss)", ["frFR"] = "Dégâts du coup d'éraflure (Boss)", @@ -342,7 +342,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta el daño de golpe de refilón contra jefes (nivel +3)", ["ptBR"] = "Mostra/oculta o dano de pancada de relance contra chefes (nível +3)." }, - ["Melee Glance Values"] = { + ["Melee glance values"] = { ["enUS"] = true, ["deDE"] = "Nahkampf-Streifwerte", ["frFR"] = "Valeurs de coup d'éraflure en mêlée", @@ -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"] = false, ["frFR"] = false, diff --git a/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua index 191ba04f..f378285c 100644 --- a/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua @@ -2,7 +2,7 @@ local i18n = ECSLoader:ImportModule("i18n") local rangedConfigTranslations = { - ["Show Ranged Stats"] = { + ["Show ranged stats"] = { ["enUS"] = true, ["deDE"] = "Fernkampfwerte anzeigen", ["frFR"] = "Afficher à distance", @@ -21,7 +21,7 @@ local rangedConfigTranslations = { ["esES"] = "Muestra/oculta todas estadísticas a distancia", ["esMX"] = "Muestra/oculta todas estadísticas a distancia" }, - ["Ranged Attack Power"] = { + ["Ranged attack power"] = { ["enUS"] = true, ["deDE"] = "Fernkampf Angriffskraft", ["frFR"] = "Puissance d'attaque à distance", @@ -41,7 +41,7 @@ local rangedConfigTranslations = { ["esMX"] = "Muestra/oculta el valor de poder de ataque a distancia", ["ptBR"] = "Mostra/oculta o valor de poder de ataque de longo alcance" }, - ["Ranged Crit"] = { + ["Ranged crit."] = { ["enUS"] = true, ["deDE"] = "Fernkampf Kritisch", ["frFR"] = "Critique à distance", @@ -91,7 +91,7 @@ local rangedConfigTranslations = { ["esMX"] = "Muestra/oculta la velocidad de ataque a distancia", ["ptBR"] = "Mostra/oculta a velocidade de ataque de longo alcance" }, - ["Ranged Hit"] = { + ["Ranged hit"] = { ["enUS"] = true, ["deDE"] = "Fernkampf Trefferwertung", ["frFR"] = "Toucher à distance", @@ -101,7 +101,7 @@ local rangedConfigTranslations = { ["esMX"] = "Probabilidad de golpear", ["ptBR"] = "Chance de acerto" }, - ["Ranged Hit Values"] = { + ["Ranged hit values"] = { ["enUS"] = true, ["deDE"] = "Fernkampf Trefferwertung", ["frFR"] = "Valeurs de toucher à distance", @@ -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"] = false, ["frFR"] = false, diff --git a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua index 38e8ccf4..8e77e9e1 100644 --- a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua @@ -2,7 +2,7 @@ local i18n = ECSLoader:ImportModule("i18n") local spellConfigTranslations = { - ["Show Spell Stats"] = { + ["Show spell stats"] = { ["enUS"] = true, ["deDE"] = "Zauberwerte anzeigen", ["frFR"] = "Afficher sorts", @@ -22,7 +22,7 @@ local spellConfigTranslations = { ["esMX"] = "Muestra/oculta todas estadísticas de hechizos", ["ptBR"] = "Mostra/oculta todas as estatísticas de feitiços" }, - ["Spell Crit"] = { + ["Spell crit."] = { ["enUS"] = true, ["deDE"] = "Zauber Kritisch", ["frFR"] = "Critique des sorts", @@ -42,7 +42,7 @@ local spellConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de asestar un golpe crítico con hechizos", ["ptBR"] = "Mostra/oculta a chance de realizar acertos críticos com feitiços" }, - ["Spell Penetration"] = { + ["Spell penetration"] = { ["enUS"] = true, ["deDE"] = "Zauberdurchschlagskraft", ["frFR"] = "Pénétration des sorts", @@ -82,7 +82,7 @@ local spellConfigTranslations = { ["esMX"] = "Muestra/oculta el bonus de celeridad con hechizos", ["ptBR"] = "Mostra/oculta o bônus de de aceleração de feitiço" }, - ["Spell Hit Values"] = { + ["Spell hit values"] = { ["enUS"] = true, ["deDE"] = "Zauber Trefferwertung", ["frFR"] = "Toucher des sorts", @@ -132,7 +132,7 @@ local spellConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de fallo con hechizos contra jefes (nivel +3)", ["ptBR"] = "Mostra/oculta a chance de erro de feitiço contra inimigos chefes (nível +3)" }, - ["Spell Power"] = { + ["Spell power"] = { ["enUS"] = true, ["deDE"] = "Zauberkraft", ["frFR"] = "Puissance des sorts", @@ -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"] = false, ["frFR"] = false, diff --git a/Modules/i18n/translations/ConfigTranslations/SpellSchoolsConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/SpellSchoolsConfigTranslations.lua index 55c4a28c..0eb920cf 100644 --- a/Modules/i18n/translations/ConfigTranslations/SpellSchoolsConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/SpellSchoolsConfigTranslations.lua @@ -2,7 +2,7 @@ local i18n = ECSLoader:ImportModule("i18n") local spellSchoolsConfigTranslations = { - ["Spell Schools"] = { + ["Spell schools"] = { ["enUS"] = true, ["deDE"] = "Zauber Schulen", ["frFR"] = "Écoles de magie", diff --git a/Modules/i18n/translations/StatTranslations.lua b/Modules/i18n/translations/StatTranslations.lua index b86efce9..241e559b 100644 --- a/Modules/i18n/translations/StatTranslations.lua +++ b/Modules/i18n/translations/StatTranslations.lua @@ -52,6 +52,16 @@ local statTranslations = { ["esMX"] = false, ["ptBR"] = false, }, + ["Crit. rating"] = { + ["enUS"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, + }, ["Crit. chance"] = { ["enUS"] = true, ["deDE"] = "Kritische Chance", @@ -672,7 +682,7 @@ local statTranslations = { ["esMX"] = "Fallo de escarcha (Niv. + 3)", ["ptBR"] = "Erro de gelo (Nív. + 3)" }, - ["Holy Damage"] = { + ["Holy damage"] = { ["enUS"] = true, ["deDE"] = "Heiligschaden", ["frFR"] = "Dégats du sacré", @@ -722,7 +732,7 @@ local statTranslations = { ["esMX"] = "Fallo sagrado (Niv. + 3)", ["ptBR"] = "Erro sagrado (Nív. + 3)" }, - ["Nature Damage"] = { + ["Nature damage"] = { ["enUS"] = true, ["deDE"] = "Naturschaden", ["frFR"] = "Dégats de la nature", @@ -772,7 +782,7 @@ local statTranslations = { ["esMX"] = "Fallo de la naturaleza (Niv. + 3)", ["ptBR"] = "Erro de natureza (Nív. + 3)" }, - ["Physical Damage"] = { + ["Physical damage"] = { ["enUS"] = true, ["deDE"] = "Physischer Schaden", ["frFR"] = "Dégats physiques", @@ -822,7 +832,7 @@ local statTranslations = { ["esMX"] = "Fallo físico (Niv. + 3)", ["ptBR"] = "Erro físico (Nív. + 3)" }, - ["Shadow Damage"] = { + ["Shadow damage"] = { ["enUS"] = true, ["deDE"] = "Schattenschaden", ["frFR"] = "Dégats des ombres", From bb193ce3a0e39b1090e761719f318be6815c6a41 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Thu, 19 Feb 2026 04:26:03 +0100 Subject: [PATCH 17/23] wip --- Modules/Config/DefenseSection.lua | 256 ++++++++++-------- Modules/Config/SpellSection.lua | 64 +++-- Modules/Profile.lua | 140 +++++++--- Modules/Stats.lua | 111 +++++--- .../DefenseConfigTranslations.lua | 16 +- .../i18n/translations/StatTranslations.lua | 92 +------ 6 files changed, 356 insertions(+), 323 deletions(-) diff --git a/Modules/Config/DefenseSection.lua b/Modules/Config/DefenseSection.lua index c86ad084..08c0f37a 100755 --- a/Modules/Config/DefenseSection.lua +++ b/Modules/Config/DefenseSection.lua @@ -42,137 +42,111 @@ function _Config:LoadDefenseSection() Stats.RebuildStatInfos() end, }, - meleeCritReduction = { + resilienceRating = { type = "toggle", 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, + name = function() return i18n("Resilience rating") end, + desc = function() return i18n("Shows/Hides the resilience 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.meleeCritReduction.display; end, + get = function () return ExtendedCharacterStats.profile.defense.resilienceRating.display; end, set = function (_, value) - ExtendedCharacterStats.profile.defense.meleeCritReduction.display = value + ExtendedCharacterStats.profile.defense.resilienceRating.display = value Stats.RebuildStatInfos() end, }, - rangedCritReduction = { + resilience = { type = "toggle", 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, - disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, - get = function () return ExtendedCharacterStats.profile.defense.rangedCritReduction.display; end, - set = function (_, value) - ExtendedCharacterStats.profile.defense.rangedCritReduction.display = value - Stats.RebuildStatInfos() - end, - }, - spellCritReduction = { - type = "toggle", - 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, + name = function() return i18n("Resilience") end, + desc = function() return i18n("Shows/Hides the resilience damage reduction.") 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.spellCritReduction.display; end, + get = function () return ExtendedCharacterStats.profile.defense.resilience.display; end, set = function (_, value) - ExtendedCharacterStats.profile.defense.spellCritReduction.display = value + ExtendedCharacterStats.profile.defense.resilience.display = value Stats.RebuildStatInfos() end, }, - avoidance = { + defenseRating = { type = "toggle", order = 3, - name = function() return i18n("Avoidance") end, - desc = function() return i18n("Shows/Hides the total avoidance.") end, + name = function() return i18n("Defense rating") end, + desc = function() return i18n("Shows/Hides the defense 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.avoidance.display; end, + get = function () return ExtendedCharacterStats.profile.defense.defenseRating.display; end, set = function (_, value) - ExtendedCharacterStats.profile.defense.avoidance.display = value + ExtendedCharacterStats.profile.defense.defenseRating.display = value Stats.RebuildStatInfos() end, }, - avoidanceBoss = { + defense = { type = "toggle", order = 3.1, - name = function() return i18n("Avoidance (Lvl +3)") end, - desc = function() return i18n("Shows/Hides the total avoidance (Lvl +3).") end, + name = function() return i18n("Defense") end, + desc = function() return i18n("Shows/Hides the defense value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, - get = function () return ExtendedCharacterStats.profile.defense.avoidanceBoss.display; end, + get = function () return ExtendedCharacterStats.profile.defense.defense.display; end, set = function (_, value) - ExtendedCharacterStats.profile.defense.avoidanceBoss.display = value + ExtendedCharacterStats.profile.defense.defense.display = value Stats.RebuildStatInfos() end, }, - defenseRating = { + avoidance = { type = "toggle", order = 4, - name = function() return i18n("Defense rating") end, - desc = function() return i18n("Shows/Hides the defense rating.") end, + name = function() return i18n("Avoidance") end, + desc = function() return i18n("Shows/Hides the total avoidance.") 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.defenseRating.display; end, + get = function () return ExtendedCharacterStats.profile.defense.avoidance.display; end, set = function (_, value) - ExtendedCharacterStats.profile.defense.defenseRating.display = value + ExtendedCharacterStats.profile.defense.avoidance.display = value Stats.RebuildStatInfos() end, }, - defense = { + avoidanceBoss = { type = "toggle", order = 4.1, - name = function() return i18n("Defense") end, - desc = function() return i18n("Shows/Hides the defense value.") end, + name = function() return i18n("Avoidance (Lvl +3)") end, + desc = function() return i18n("Shows/Hides the total avoidance (Lvl +3).") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, - get = function () return ExtendedCharacterStats.profile.defense.defense.display; end, + get = function () return ExtendedCharacterStats.profile.defense.avoidanceBoss.display; end, set = function (_, value) - ExtendedCharacterStats.profile.defense.defense.display = value + ExtendedCharacterStats.profile.defense.avoidanceBoss.display = value Stats.RebuildStatInfos() end, }, - blockRating = { + dodgeRating = { type = "toggle", order = 5, - name = function() return i18n("Block rating") end, - desc = function() return i18n("Shows/Hides the block rating.") end, + 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.blockRating.display; end, + get = function () return ExtendedCharacterStats.profile.defense.dodgeRating.display; end, set = function (_, value) - ExtendedCharacterStats.profile.defense.blockRating.display = value + ExtendedCharacterStats.profile.defense.dodgeRating.display = value Stats.RebuildStatInfos() end, }, - blockChance = { + dodge = { type = "toggle", order = 5.1, - name = function() return i18n("Block chance") end, - desc = function() return i18n("Shows/Hides the block chance.") end, - width = 1.5, - hidden = function() return not IsSpellKnown(107) end, - disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, - get = function () return ExtendedCharacterStats.profile.defense.blockChance.display; end, - set = function (_, value) - ExtendedCharacterStats.profile.defense.blockChance.display = value - Stats.RebuildStatInfos() - end, - }, - blockValue = { - type = "toggle", - order = 5.2, - name = function() return i18n("Block value") end, - desc = function() return i18n("Shows/Hides the block value.") end, + name = function() return i18n("Dodge chance") end, + desc = function() return i18n("Shows/Hides the dodge chance.") end, width = 1.5, - hidden = function() return not DataUtils:CanBlock() end, disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, - get = function () return ExtendedCharacterStats.profile.defense.blockValue.display; end, + get = function () return ExtendedCharacterStats.profile.defense.dodge.display; end, set = function (_, value) - ExtendedCharacterStats.profile.defense.blockValue.display = value + ExtendedCharacterStats.profile.defense.dodge.display = value Stats.RebuildStatInfos() end, }, @@ -204,60 +178,102 @@ function _Config:LoadDefenseSection() Stats.RebuildStatInfos() end, }, - dodgeRating = { - type = "toggle", + blockGroup = { + type = "group", 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, + inline = true, + name = function() return i18n("Block values") end, + args = { + rating = { + 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, + }, + chance = { + type = "toggle", + order = 5.1, + name = function() return i18n("Block chance") end, + desc = function() return i18n("Shows/Hides the block chance.") end, + width = 1.5, + hidden = function() return not IsSpellKnown(107) end, + disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, + get = function () return ExtendedCharacterStats.profile.defense.blockChance.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.defense.blockChance.display = value + Stats.RebuildStatInfos() + end, + }, + amount = { + type = "toggle", + order = 5.2, + name = function() return i18n("Blocked amount") end, + desc = function() return i18n("Shows/Hides the blocked amount.") end, + width = 1.5, + hidden = function() return not DataUtils:CanBlock() end, + disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, + get = function () return ExtendedCharacterStats.profile.defense.blockValue.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.defense.blockValue.display = value + Stats.RebuildStatInfos() + end, + }, + } }, - dodge = { - type = "toggle", - order = 7.1, - name = function() return i18n("Dodge chance") end, - desc = function() return i18n("Shows/Hides the dodge chance.") end, - width = 1.5, - disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, - get = function () return ExtendedCharacterStats.profile.defense.dodge.display; end, - set = function (_, value) - ExtendedCharacterStats.profile.defense.dodge.display = value - Stats.RebuildStatInfos() - end, - }, - resilienceRating = { - type = "toggle", + critReductionGroup = { + type = "group", 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 ECS.IsClassic end, - disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, - get = function () return ExtendedCharacterStats.profile.defense.resilienceRating.display; end, - set = function (_, value) - ExtendedCharacterStats.profile.defense.resilienceRating.display = value - Stats.RebuildStatInfos() - end, - }, - resilience = { - type = "toggle", - order = 8.1, - name = function() return i18n("Resilience") end, - desc = function() return i18n("Shows/Hides the resilience damage reduction.") 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.resilience.display; end, - set = function (_, value) - ExtendedCharacterStats.profile.defense.resilience.display = value - Stats.RebuildStatInfos() - end, + inline = true, + name = function() return i18n("Crit. reduction values") end, + args = { + melee = { + type = "toggle", + 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, + disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, + get = function () return ExtendedCharacterStats.profile.defense.meleeCritReduction.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.defense.meleeCritReduction.display = value + Stats.RebuildStatInfos() + end, + }, + ranged = { + type = "toggle", + 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, + disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, + get = function () return ExtendedCharacterStats.profile.defense.rangedCritReduction.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.defense.rangedCritReduction.display = value + Stats.RebuildStatInfos() + end, + }, + spell = { + type = "toggle", + 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, + disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, + get = function () return ExtendedCharacterStats.profile.defense.spellCritReduction.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.defense.spellCritReduction.display = value + Stats.RebuildStatInfos() + end, + }, + } }, }, } diff --git a/Modules/Config/SpellSection.lua b/Modules/Config/SpellSection.lua index bab9fd99..60fa2c35 100755 --- a/Modules/Config/SpellSection.lua +++ b/Modules/Config/SpellSection.lua @@ -27,33 +27,6 @@ function _Config:LoadSpellSection() Stats.RebuildStatInfos() end, }, - 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.crit.rating.display; end, - set = function (_, value) - ExtendedCharacterStats.profile.spell.crit.rating.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, - disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, - get = function () return ExtendedCharacterStats.profile.spell.crit.display; end, - set = function (_, value) - ExtendedCharacterStats.profile.spell.crit.display = value - Stats.RebuildStatInfos() - end, - }, hasteRating = { type = "toggle", order = 2, @@ -94,10 +67,45 @@ function _Config:LoadSpellSection() Stats.RebuildStatInfos() end, }, - spellHitGroup = { + spellCritGroup = { type = "group", order = 5, inline = true, + name = function() return i18n("Spell crit values") end, + args = { + 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.crit.rating.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.spell.crit.rating.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, + disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, + get = function () return ExtendedCharacterStats.profile.spell.crit.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.spell.crit.display = value + Stats.RebuildStatInfos() + end, + }, + } + }, + spellHitGroup = { + type = "group", + order = 6, + inline = true, name = function() return i18n("Spell hit values") end, args = { spellHitRating = { diff --git a/Modules/Profile.lua b/Modules/Profile.lua index 3acc538a..127864d2 100755 --- a/Modules/Profile.lua +++ b/Modules/Profile.lua @@ -19,7 +19,11 @@ local function GetDefaultStatsProfile() refName = "GeneralHeader", text = "General", - movementSpeed = {display = true, refName = "MovementSpeed", text = "Movement speed"}, + movementSpeed = { + display = true, + refName = "MovementSpeed", + text = "Movement speed" + }, }, melee = { @@ -281,32 +285,103 @@ local function GetDefaultStatsProfile() display = true, refName = "DefenseHeader", text = "Defense", - - armor = {display = true, refName = "Armor", text = "Armor"}, - meleeCritReduction = {display = true, refName = "MeleeCritReduction", text = "Melee crit. reduction"}, - rangedCritReduction = {display = true, refName = "RangedCritReduction", text = "Ranged crit. reduction"}, - spellCritReduction = {display = true, refName = "SpellCritReduction", text = "Spell crit. reduction"}, - avoidance = {display = true, refName = "Avoidance", text = "Avoidance"}, - avoidanceBoss = {display = true, refName = "AvoidanceBoss", text = "Avoidance (Lvl +3)"}, - defenseRating = { + armor = { display = true, - refName = "DefenseRating", - text = "Defense rating" + refName = "Armor", + text = "Armor" + }, + resilienceRating = { + display = true, + refName = "ResilienceRating", + text = "Resilience rating" }, - defense = {display = true, refName = "DefenseValue", text = "Defense"}, - blockRating = {display = true, refName = "BlockRating", text = "Block rating"}, - blockChance = {display = true, refName = "BlockChance", text = "Block chance"}, - blockValue = {display = true, refName = "BlockValue", text = "Block value"}, - parryRating = {display = true, refName = "ParryRating", text = "Parry rating"}, - parry = {display = true, refName = "ParryChance", text = "Parry chance"}, - dodgeRating = {display = true, refName = "DodgeRating", text = "Dodge rating"}, - dodge = {display = true, refName = "DodgeChance", text = "Dodge chance"}, - resilienceRating = {display = true,refName = "ResilienceRating", text = "Resilience rating"}, resilience = { display = true, refName = "Resilience", text = "Resilience" }, + defenseRating = { + display = true, + refName = "DefenseRating", + text = "Defense rating" + }, + defense = { + display = true, + refName = "DefenseValue", + text = "Defense" + }, + avoidance = { + display = true, + refName = "Avoidance", + text = "Avoidance" + }, + avoidanceBoss = { + display = true, + refName = "AvoidanceBoss", + text = "Avoidance (Lvl +3)" + }, + dodgeRating = { + display = true, + refName = "DodgeRating", + text = "Dodge rating" + }, + dodge = { + display = true, + refName = "DodgeChance", + text = "Dodge chance" + }, + parryRating = { + display = true, + refName = "ParryRating", + text = "Parry rating" + }, + parry = { + display = true, + refName = "ParryChance", + text = "Parry chance" + }, + block = { + display = true, + isSubGroup = true, + refName = "BlockHeader", + text = "Block", + rating = { + display = true, + refName = "BlockRating", + text = "Rating" + }, + chance = { + display = true, + refName = "BlockChance", + text = "Chance" + }, + amount = { + display = true, + refName = "BlockValue", + text = "Amount" + }, + }, + critReduction = { + display = true, + isSubGroup = true, + refName = "CritReductionHeader", + text = "Crit. reduction", + melee = { + display = true, + refName = "MeleeCritReduction", + text = "Melee" + }, + ranged = { + display = true, + refName = "RangedCritReduction", + text = "Ranged" + }, + spell = { + display = true, + refName = "SpellCritReduction", + text = "Spell" + }, + }, }, regen = { @@ -388,7 +463,7 @@ local function GetDefaultStatsProfile() rating = { display = true, refName = "SpellHitRating", - text = "Hit rating", + text = "Rating", textColor = colors.HIT_SECONDARY, statColor = colors.HIT_PRIMARY }, @@ -575,63 +650,66 @@ local function GetDefaultStatsProfile() textColor = colors.HASTE_RATING_SECONDARY, statColor = colors.HASTE_RATING_PRIMARY }, - penetration = {display = true, refName = "SpellPenetration", text = "Penetration"}, - + penetration = { + display = true, + refName = "SpellPenetration", + text = "Penetration" + }, crit = { display = true, rating = { display = true, refName = "SpellCritRating", - text = "Crit. rating", + text = "Rating", textColor = colors.CRIT_SECONDARY, statColor = colors.CRIT_PRIMARY }, arcane = { display = true, refName = "ArcaneCritChance", - text = "Arcane crit.", + text = "Arcane", textColor = colors.ARCANE_SECONDARY, statColor = colors.ARCANE_PRIMARY }, fire = { display = true, refName = "FireCritChance", - text = "Fire crit.", + text = "Fire", textColor = colors.FIRE_SECONDARY, statColor = colors.FIRE_PRIMARY }, frost = { display = true, refName = "FrostCritChance", - text = "Frost crit.", + text = "Frost", textColor = colors.FROST_SECONDARY, statColor = colors.FROST_PRIMARY }, holy = { display = true, refName = "HolyCritChance", - text = "Holy crit.", + text = "Holy", textColor = colors.HOLY_SECONDARY, statColor = colors.HOLY_PRIMARY }, nature = { display = true, refName = "NatureCritChance", - text = "Nature crit.", + text = "Nature", textColor = colors.NATURE_SECONDARY, statColor = colors.NATURE_PRIMARY }, physical = { display = true, refName = "PhysicalCritChance", - text = "Physical crit.", + text = "Physical", textColor = colors.PHYSICAL_SECONDARY, statColor = colors.PHYSICAL_PRIMARY }, shadow = { display = true, refName = "ShadowCritChance", - text = "Shadow crit.", + text = "Shadow.", textColor = colors.SHADOW_SECONDARY, statColor = colors.SHADOW_PRIMARY }, diff --git a/Modules/Stats.lua b/Modules/Stats.lua index 47c77140..7698744c 100755 --- a/Modules/Stats.lua +++ b/Modules/Stats.lua @@ -272,23 +272,35 @@ _CreateStatInfos = function() _CreateStatInfo( category, category.armor, - category.meleeCritReduction, - category.rangedCritReduction, - category.spellCritReduction, - category.avoidance, - category.avoidanceBoss, + ECS.IsClassic and nil or category.resilienceRating, + ECS.IsClassic and nil or category.resilience, (not ECS.IsClassic) and category.defenseRating or nil, category.defense, - (not ECS.IsClassic and DataUtils:CanBlock()) and category.blockRating or nil, - DataUtils:CanBlock() and category.blockChance or nil, - DataUtils:CanBlock() and category.blockValue or nil, - (not ECS.IsClassic and DataUtils:CanParry()) and category.parryRating or nil, - DataUtils:CanParry() and category.parry or nil, + category.avoidance, + category.avoidanceBoss, (not ECS.IsClassic) and category.dodgeRating or nil, category.dodge or nil, - ECS.IsClassic and nil or category.resilienceRating, - ECS.IsClassic and nil or category.resilience + (not ECS.IsClassic and DataUtils:CanParry()) and category.parryRating or nil, + DataUtils:CanParry() and category.parry or nil ) + if category.display then + if DataUtils:CanBlock() then + category = category.block + _CreateStatInfo( + category, + ECS.IsClassic and nil or category.rating, + category.chance, + category.value + ) + end + category = category.critReduction + _CreateStatInfo( + category, + category.melee, + category.ranged, + category.spell + ) + end if UnitHasMana("player") then category = profile.regen @@ -298,8 +310,6 @@ _CreateStatInfos = function() category = profile.spell local spellBonus = profile.spellBonus local spell = profile.spell - local spellCrit = spell.crit - local spellHit = spell.hit _CreateStatInfo( category, (not ECS.IsClassic) and category.hasteRating or nil, @@ -307,44 +317,55 @@ _CreateStatInfos = function() (not ECS.IsClassic) and category.penetrationRating or nil, category.penetration, spellBonus.bonusHealing, - (not ECS.IsClassic) and spellHit.rating or nil, - 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 + spell.shadow.display and spellBonus.shadowDmg or nil ) + if category.display then + local spellCrit = spell.crit + _CreateStatInfo( + category, + ECS.IsClassic and nil or spellCrit.rating, + spell.arcane.display and spellCrit.display and spellCrit.arcane or nil, + spell.fire.display and spellCrit.display and spellCrit.fire or nil, + spell.frost.display and spellCrit.display and spellCrit.frost or nil, + spell.holy.display and spellCrit.display and spellCrit.holy or nil, + spell.nature.display and spellCrit.display and spellCrit.nature or nil, + spell.physical.display and spellCrit.display and spellCrit.physical or nil, + spell.shadow.display and spellCrit.display and spellCrit.shadow or nil + ) + local spellHit = spell.hit + category = spellHit + _CreateStatInfo( + category, + ECS.IsClassic and nil or spellHit.rating, + spell.arcane.display and spellHit.bonus.display and spellHit.arcaneHitBonus or nil, + spell.fire.display and spellHit.bonus.display and spellHit.fireHitBonus or nil, + spell.frost.display and spellHit.bonus.display and spellHit.frostHitBonus or nil, + spell.holy.display and spellHit.bonus.display and spellHit.holyHitBonus or nil, + spell.nature.display and spellHit.bonus.display and spellHit.natureHitBonus or nil, + spell.physical.display and spellHit.bonus.display and spellHit.physicalHitBonus or nil, + spell.shadow.display and spellHit.bonus.display and spellHit.shadowHitBonus or nil, + spell.arcane.display and spellHit.sameLevel.display and spellHit.arcaneMissChance or nil, + spell.fire.display and spellHit.sameLevel.display and spellHit.fireMissChance or nil, + spell.frost.display and spellHit.sameLevel.display and spellHit.frostMissChance or nil, + spell.holy.display and spellHit.sameLevel.display and spellHit.holyMissChance or nil, + spell.nature.display and spellHit.sameLevel.display and spellHit.natureMissChance or nil, + spell.physical.display and spellHit.sameLevel.display and spellHit.physicalMissChance or nil, + spell.shadow.display and spellHit.sameLevel.display and spellHit.shadowMissChance or nil, + spell.arcane.display and spellHit.bossLevel.display and spellHit.arcaneMissChanceBoss or nil, + spell.fire.display and spellHit.bossLevel.display and spellHit.fireMissChanceBoss or nil, + spell.frost.display and spellHit.bossLevel.display and spellHit.frostMissChanceBoss or nil, + spell.holy.display and spellHit.bossLevel.display and spellHit.holyMissChanceBoss or nil, + spell.nature.display and spellHit.bossLevel.display and spellHit.natureMissChanceBoss or nil, + spell.physical.display and spellHit.bossLevel.display and spellHit.physicalMissChanceBoss or nil, + spell.shadow.display and spellHit.bossLevel.display and spellHit.shadowMissChanceBoss or nil + ) + end end --- Creates a new header in the stats UI diff --git a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua index 6e62d5b3..1813205d 100644 --- a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua @@ -162,15 +162,15 @@ local defenseConfigTranslations = { ["esMX"] = "Muestra/oculta la probababilidad de bloquear", ["ptBR"] = "Mostra/oculta a chance de bloquear" }, - ["Shows/Hides the block value."] = { + ["Shows/Hides the blocked amount."] = { ["enUS"] = true, - ["deDE"] = "Zeigt/Versteckt die Blockwertung.", - ["frFR"] = "Affiche/cache le score de blocage.", - ["zhCN"] = "显示/隐藏 格挡值", - ["ruRU"] = "Показать/скрыть значение рейтинга блокирования", - ["esES"] = "Muestra/oculta el valor de bloqueo", - ["esMX"] = "Muestra/oculta el valor de bloqueo", - ["ptBR"] = "Muestra/oculta o valor de bloqueio" + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, }, ["Shows/Hides the parry chance."] = { ["enUS"] = true, diff --git a/Modules/i18n/translations/StatTranslations.lua b/Modules/i18n/translations/StatTranslations.lua index 241e559b..0b4be1e9 100644 --- a/Modules/i18n/translations/StatTranslations.lua +++ b/Modules/i18n/translations/StatTranslations.lua @@ -292,16 +292,6 @@ local statTranslations = { ["esMX"] = "Armadura", ["ptBR"] = "Armadura" }, - ["Crit. reduction"] = { - ["enUS"] = true, - ["deDE"] = "Krit. Reduzierung", - ["frFR"] = "Réduction des critiques", - ["zhCN"] = false, - ["ruRU"] = "Снижение крита", - ["esES"] = "Reducción de crít.", - ["esMX"] = "Reducción de crít.", - ["ptBR"] = "Redução de crítico" - }, ["Avoidance"] = { ["enUS"] = true, ["deDE"] = "Vermeidung", @@ -362,7 +352,7 @@ local statTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Block rating"] = { + ["Amount"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -372,26 +362,6 @@ local statTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Block chance"] = { - ["enUS"] = true, - ["deDE"] = "Blockchance", - ["frFR"] = "Chances de bloquer", - ["zhCN"] = "格挡几率", - ["ruRU"] = "Шанс блока", - ["esES"] = "Probabilidad de bloquear", - ["esMX"] = "Probabilidad de bloquear", - ["ptBR"] = "Chance de bloquear" - }, - ["Block value"] = { - ["enUS"] = true, - ["deDE"] = "Blockwertung", - ["frFR"] = "Bloquer", - ["zhCN"] = "格挡值", - ["ruRU"] = "Блок", - ["esES"] = "Bloqueo", - ["esMX"] = "Bloqueo", - ["ptBR"] = "Bloqueio" - }, ["Parry chance"] = { ["enUS"] = true, ["deDE"] = "Parrierchance", @@ -592,16 +562,6 @@ local statTranslations = { ["esMX"] = "Daño de fuego", ["ptBR"] = "Dano de fogo" }, - ["Fire crit."] = { - ["enUS"] = true, - ["deDE"] = "Feuer Kritisch", - ["frFR"] = "Critique du feu", - ["zhCN"] = "火焰暴击", - ["ruRU"] = "Крит (огонь)", - ["esES"] = "Crítico de fuego", - ["esMX"] = "Crítico de fuego", - ["ptBR"] = "Crítico de fogo" - }, ["Fire hit bonus"] = { ["enUS"] = true, ["deDE"] = "Feuer Trefferchancebonus", @@ -642,16 +602,6 @@ local statTranslations = { ["esMX"] = "Daño de escarcha", ["ptBR"] = "Dano de gelo" }, - ["Frost crit."] = { - ["enUS"] = true, - ["deDE"] = "Frost Kritisch", - ["frFR"] = "Critique du givre", - ["zhCN"] = "冰霜暴击", - ["ruRU"] = "Крит (лед)", - ["esES"] = "Crítico de escarcha", - ["esMX"] = "Crítico de escarcha", - ["ptBR"] = "Crítico de gelo" - }, ["Frost hit bonus"] = { ["enUS"] = true, ["deDE"] = "Frost Trefferchancebonus", @@ -692,16 +642,6 @@ local statTranslations = { ["esMX"] = "Daño sagrado", ["ptBR"] = "Dano sagrado" }, - ["Holy crit."] = { - ["enUS"] = true, - ["deDE"] = "Heilig Kritisch", - ["frFR"] = "Critique du sacré", - ["zhCN"] = "神圣暴击", - ["ruRU"] = "Крит (свет)", - ["esES"] = "Crítico sagrado", - ["esMX"] = "Crítico sagrado", - ["ptBR"] = "Crítico sagrado" - }, ["Holy hit bonus"] = { ["enUS"] = true, ["deDE"] = "Heilig Trefferchancebonus", @@ -742,16 +682,6 @@ local statTranslations = { ["esMX"] = "Daño de la naturaleza", ["ptBR"] = "Dano de natureza" }, - ["Nature crit."] = { - ["enUS"] = true, - ["deDE"] = "Natur Kritisch", - ["frFR"] = "Critique de la nature", - ["zhCN"] = "自然暴击", - ["ruRU"] = "Крит (природа)", - ["esES"] = "Crítico de la naturaleza", - ["esMX"] = "Crítico de la naturaleza", - ["ptBR"] = "Crítico de natureza" - }, ["Nature hit bonus"] = { ["enUS"] = true, ["deDE"] = "Natur Trefferchancebonus", @@ -792,16 +722,6 @@ local statTranslations = { ["esMX"] = "Daño físico", ["ptBR"] = "Dano físico" }, - ["Physical crit."] = { - ["enUS"] = true, - ["deDE"] = "Physisch Kritisch", - ["frFR"] = "Critique physique", - ["zhCN"] = "物理暴击", - ["ruRU"] = "Крит (физ.)", - ["esES"] = "Crítico físico", - ["esMX"] = "Crítico físico", - ["ptBR"] = "Crítico físico" - }, ["Physical hit bonus"] = { ["enUS"] = true, ["deDE"] = "Physischer Trefferchancebonus", @@ -842,16 +762,6 @@ local statTranslations = { ["esMX"] = "Daño de las sombras", ["ptBR"] = "Dano de sombra" }, - ["Shadow crit."] = { - ["enUS"] = true, - ["deDE"] = "Schatten Kritisch", - ["frFR"] = "Critique des ombres", - ["zhCN"] = "暗影暴击", - ["ruRU"] = "Крит (тьма)", - ["esES"] = "Crítico de las sombras", - ["esMX"] = "Crítico de las sombras", - ["ptBR"] = "Crítico de sombra" - }, ["Shadow hit bonus"] = { ["enUS"] = true, ["deDE"] = "Schatten Trefferchancebonus", From f0b6aa91709082582c08b8887f318d505c3b21e2 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Thu, 19 Feb 2026 19:49:19 +0100 Subject: [PATCH 18/23] wip --- Modules/Config/DefenseSection.lua | 15 ++++--- Modules/Config/SpellSection.lua | 2 +- Modules/Profile.lua | 7 +++- .../DefenseConfigTranslations.lua | 40 +++++++++++++++++++ .../SpellConfigTranslations.lua | 10 +++++ .../i18n/translations/StatTranslations.lua | 10 +++++ 6 files changed, 74 insertions(+), 10 deletions(-) diff --git a/Modules/Config/DefenseSection.lua b/Modules/Config/DefenseSection.lua index 08c0f37a..ffa6ec87 100755 --- a/Modules/Config/DefenseSection.lua +++ b/Modules/Config/DefenseSection.lua @@ -183,10 +183,11 @@ function _Config:LoadDefenseSection() order = 7, inline = true, name = function() return i18n("Block values") end, + hidden = function() return not DataUtils:CanBlock() end, args = { rating = { type = "toggle", - order = 5, + order = 1, name = function() return i18n("Block rating") end, desc = function() return i18n("Shows/Hides the block rating.") end, width = 1.5, @@ -200,11 +201,10 @@ function _Config:LoadDefenseSection() }, chance = { type = "toggle", - order = 5.1, + order = 1.1, name = function() return i18n("Block chance") end, desc = function() return i18n("Shows/Hides the block chance.") end, width = 1.5, - hidden = function() return not IsSpellKnown(107) end, disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, get = function () return ExtendedCharacterStats.profile.defense.blockChance.display; end, set = function (_, value) @@ -214,11 +214,10 @@ function _Config:LoadDefenseSection() }, amount = { type = "toggle", - order = 5.2, + order = 1.2, name = function() return i18n("Blocked amount") end, desc = function() return i18n("Shows/Hides the blocked amount.") end, width = 1.5, - hidden = function() return not DataUtils:CanBlock() end, disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, get = function () return ExtendedCharacterStats.profile.defense.blockValue.display; end, set = function (_, value) @@ -236,7 +235,7 @@ function _Config:LoadDefenseSection() args = { melee = { type = "toggle", - order = 2, + order = 1, 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, @@ -249,7 +248,7 @@ function _Config:LoadDefenseSection() }, ranged = { type = "toggle", - order = 2.1, + order = 1.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, @@ -262,7 +261,7 @@ function _Config:LoadDefenseSection() }, spell = { type = "toggle", - order = 2.2, + order = 1.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, diff --git a/Modules/Config/SpellSection.lua b/Modules/Config/SpellSection.lua index 60fa2c35..a93f6dd3 100755 --- a/Modules/Config/SpellSection.lua +++ b/Modules/Config/SpellSection.lua @@ -71,7 +71,7 @@ function _Config:LoadSpellSection() type = "group", order = 5, inline = true, - name = function() return i18n("Spell crit values") end, + name = function() return i18n("Spell crit. values") end, args = { spellCritRating = { type = "toggle", diff --git a/Modules/Profile.lua b/Modules/Profile.lua index 127864d2..c8eca87b 100755 --- a/Modules/Profile.lua +++ b/Modules/Profile.lua @@ -340,6 +340,7 @@ local function GetDefaultStatsProfile() refName = "ParryChance", text = "Parry chance" }, + ---@type SubCategory block = { display = true, isSubGroup = true, @@ -361,6 +362,7 @@ local function GetDefaultStatsProfile() text = "Amount" }, }, + ---@type SubCategory critReduction = { display = true, isSubGroup = true, @@ -657,6 +659,9 @@ local function GetDefaultStatsProfile() }, crit = { display = true, + isSubGroup = true, + refName = "SpellCritHeader", + text = "Crit.", rating = { display = true, refName = "SpellCritRating", @@ -709,7 +714,7 @@ local function GetDefaultStatsProfile() shadow = { display = true, refName = "ShadowCritChance", - text = "Shadow.", + text = "Shadow", textColor = colors.SHADOW_SECONDARY, statColor = colors.SHADOW_PRIMARY }, diff --git a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua index 1813205d..bbe37466 100644 --- a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua @@ -32,6 +32,36 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false, }, + ["Block chance"] = { + ["enUS"] = true, + ["deDE"] = "Blockchance", + ["frFR"] = "Chances de bloquer", + ["zhCN"] = "格挡几率", + ["ruRU"] = "Шанс блока", + ["esES"] = "Probabilidad de bloquear", + ["esMX"] = "Probabilidad de bloquear", + ["ptBR"] = "Chance de bloquear" + }, + ["Block values"] = { + ["enUS"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, + }, + ["Blocked amount"] = { + ["enUS"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, + }, ["Resilience rating"] = { ["enUS"] = true, ["deDE"] = false, @@ -42,6 +72,16 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false, }, + ["Crit. reduction values"] = { + ["enUS"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false + }, ["Melee crit. reduction"] = { ["enUS"] = true, ["deDE"] = false, diff --git a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua index 8e77e9e1..7aa99a27 100644 --- a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua @@ -222,6 +222,16 @@ local spellConfigTranslations = { ["esMX"] = "Muestra/oculta el valor de poder de sanación", ["ptBR"] = "Mostra/oculta o valor de poder de cura" }, + ["Spell crit. values"] = { + ["enUS"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false, + }, ["Spell crit. rating"] = { ["enUS"] = true, ["deDE"] = false, diff --git a/Modules/i18n/translations/StatTranslations.lua b/Modules/i18n/translations/StatTranslations.lua index 0b4be1e9..de24a48b 100644 --- a/Modules/i18n/translations/StatTranslations.lua +++ b/Modules/i18n/translations/StatTranslations.lua @@ -402,6 +402,16 @@ local statTranslations = { ["esMX"] = "Temple", ["ptBR"] = "Resiliência" }, + ["Crit. reduction"] = { + ["enUS"] = true, + ["deDE"] = false, + ["frFR"] = false, + ["zhCN"] = false, + ["ruRU"] = false, + ["esES"] = false, + ["esMX"] = false, + ["ptBR"] = false + }, ["Mana"] = { ["enUS"] = true, ["deDE"] = true, From 2f23430a9db8d1cfcadacbcfcda7fcfee9cb55fe Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Fri, 20 Feb 2026 06:27:51 +0100 Subject: [PATCH 19/23] wip --- Modules/Config/DefenseSection.lua | 54 ++-- Modules/Config/SpellSection.lua | 241 +++++++-------- Modules/Migration.lua | 3 + Modules/Profile.lua | 248 +++++++-------- Modules/Stats.lua | 70 +++-- .../i18n/translations/StatTranslations.lua | 290 ------------------ 6 files changed, 327 insertions(+), 579 deletions(-) diff --git a/Modules/Config/DefenseSection.lua b/Modules/Config/DefenseSection.lua index ffa6ec87..e42693ac 100755 --- a/Modules/Config/DefenseSection.lua +++ b/Modules/Config/DefenseSection.lua @@ -192,10 +192,13 @@ function _Config:LoadDefenseSection() 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, + disabled = function() + return (not ExtendedCharacterStats.profile.defense.display) or + (not ExtendedCharacterStats.profile.block.display) + end, + get = function () return ExtendedCharacterStats.profile.defense.block.rating.display; end, set = function (_, value) - ExtendedCharacterStats.profile.defense.blockRating.display = value + ExtendedCharacterStats.profile.defense.block.rating.display = value Stats.RebuildStatInfos() end, }, @@ -205,10 +208,13 @@ function _Config:LoadDefenseSection() name = function() return i18n("Block chance") end, desc = function() return i18n("Shows/Hides the block chance.") end, width = 1.5, - disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, - get = function () return ExtendedCharacterStats.profile.defense.blockChance.display; end, + disabled = function() + return (not ExtendedCharacterStats.profile.defense.display) or + (not ExtendedCharacterStats.profile.block.display) + end, + get = function () return ExtendedCharacterStats.profile.defense.block.chance.display; end, set = function (_, value) - ExtendedCharacterStats.profile.defense.blockChance.display = value + ExtendedCharacterStats.profile.defense.block.chance.display = value Stats.RebuildStatInfos() end, }, @@ -218,10 +224,13 @@ function _Config:LoadDefenseSection() name = function() return i18n("Blocked amount") end, desc = function() return i18n("Shows/Hides the blocked amount.") end, width = 1.5, - disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, - get = function () return ExtendedCharacterStats.profile.defense.blockValue.display; end, + disabled = function() + return (not ExtendedCharacterStats.profile.defense.display) or + (not ExtendedCharacterStats.profile.block.display) + end, + get = function () return ExtendedCharacterStats.profile.defense.block.amount.display; end, set = function (_, value) - ExtendedCharacterStats.profile.defense.blockValue.display = value + ExtendedCharacterStats.profile.defense.block.amount.display = value Stats.RebuildStatInfos() end, }, @@ -239,10 +248,13 @@ function _Config:LoadDefenseSection() 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, - disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, - get = function () return ExtendedCharacterStats.profile.defense.meleeCritReduction.display; end, + disabled = function() + return (not ExtendedCharacterStats.profile.defense.display) or + (not ExtendedCharacterStats.profile.critReduction.display) + end, + get = function () return ExtendedCharacterStats.profile.defense.critReduction.melee.display; end, set = function (_, value) - ExtendedCharacterStats.profile.defense.meleeCritReduction.display = value + ExtendedCharacterStats.profile.defense.critReduction.melee.display = value Stats.RebuildStatInfos() end, }, @@ -252,10 +264,13 @@ function _Config:LoadDefenseSection() 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, - disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, - get = function () return ExtendedCharacterStats.profile.defense.rangedCritReduction.display; end, + disabled = function() + return (not ExtendedCharacterStats.profile.defense.display) or + (not ExtendedCharacterStats.profile.critReduction.display) + end, + get = function () return ExtendedCharacterStats.profile.defense.critReduction.ranged.display; end, set = function (_, value) - ExtendedCharacterStats.profile.defense.rangedCritReduction.display = value + ExtendedCharacterStats.profile.defense.critReduction.ranged.display = value Stats.RebuildStatInfos() end, }, @@ -265,10 +280,13 @@ function _Config:LoadDefenseSection() 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, - disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, - get = function () return ExtendedCharacterStats.profile.defense.spellCritReduction.display; end, + disabled = function() + return (not ExtendedCharacterStats.profile.defense.display) or + (not ExtendedCharacterStats.profile.critReduction.display) + end, + get = function () return ExtendedCharacterStats.profile.defense.critReduction.spell.display; end, set = function (_, value) - ExtendedCharacterStats.profile.defense.spellCritReduction.display = value + ExtendedCharacterStats.profile.defense.critReduction.spell.display = value Stats.RebuildStatInfos() end, }, diff --git a/Modules/Config/SpellSection.lua b/Modules/Config/SpellSection.lua index a93f6dd3..94284fb7 100755 --- a/Modules/Config/SpellSection.lua +++ b/Modules/Config/SpellSection.lua @@ -67,10 +67,122 @@ function _Config:LoadSpellSection() Stats.RebuildStatInfos() end, }, - spellCritGroup = { + spellPower = { type = "group", order = 5, inline = true, + name = function() return i18n("Spell power") end, + args = { + bonusHealing = { + type = "toggle", + order = 1, + name = function() return i18n("Healing power") end, + desc = function() return i18n("Shows/Hides the healing power value.") end, + width = 1.5, + disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, + get = function () return ExtendedCharacterStats.profile.spellBonus.bonusHealing.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.spellBonus.bonusHealing.display = value + Stats.RebuildStatInfos() + end, + }, + arcane = { + type = "toggle", + order = 2, + name = function() return i18n("Arcane") end, + desc = function() return i18n("Shows/Hides the arcane damage value.") end, + width = 1.5, + disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, + get = function () return ExtendedCharacterStats.profile.spellBonus.arcane.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.spellBonus.arcane.display = value + Stats.RebuildStatInfos() + end, + }, + fire = { + type = "toggle", + order = 3, + name = function() return i18n("Fire") end, + desc = function() return i18n("Shows/Hides the fire damage value.") end, + width = 1.5, + disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, + get = function () return ExtendedCharacterStats.profile.spellBonus.fire.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.spellBonus.fire.display = value + Stats.RebuildStatInfos() + end, + }, + frost = { + type = "toggle", + order = 4, + name = function() return i18n("Frost") end, + desc = function() return i18n("Shows/Hides the frost damage value.") end, + width = 1.5, + disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, + get = function () return ExtendedCharacterStats.profile.spellBonus.frost.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.spellBonus.frost.display = value + Stats.RebuildStatInfos() + end, + }, + holy = { + type = "toggle", + order = 5, + name = function() return i18n("Holy") end, + desc = function() return i18n("Shows/Hides the holy damage value.") end, + width = 1.5, + disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, + get = function () return ExtendedCharacterStats.profile.spellBonus.holy.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.spellBonus.holy.display = value + Stats.RebuildStatInfos() + end, + }, + nature = { + type = "toggle", + order = 6, + name = function() return i18n("Nature") end, + desc = function() return i18n("Shows/Hides the nature damage value.") end, + width = 1.5, + disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, + get = function () return ExtendedCharacterStats.profile.spellBonus.nature.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.spellBonus.nature.display = value + Stats.RebuildStatInfos() + end, + }, + physical = { + type = "toggle", + order = 7, + name = function() return i18n("Physical") end, + desc = function() return i18n("Shows/Hides the physical damage value.") end, + width = 1.5, + disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, + get = function () return ExtendedCharacterStats.profile.spellBonus.physical.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.spellBonus.physical.display = value + Stats.RebuildStatInfos() + end, + }, + shadow = { + type = "toggle", + order = 8, + name = function() return i18n("Shadow") end, + desc = function() return i18n("Shows/Hides the shadow damage value.") end, + width = 1.5, + disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, + get = function () return ExtendedCharacterStats.profile.spellBonus.shadow.display; end, + set = function (_, value) + ExtendedCharacterStats.profile.spellBonus.shadow.display = value + Stats.RebuildStatInfos() + end, + }, + } + }, + spellCritGroup = { + type = "group", + order = 6, + inline = true, name = function() return i18n("Spell crit. values") end, args = { spellCritRating = { @@ -104,7 +216,7 @@ function _Config:LoadSpellSection() }, spellHitGroup = { type = "group", - order = 6, + order = 7, inline = true, name = function() return i18n("Spell hit values") end, args = { @@ -149,11 +261,11 @@ function _Config:LoadSpellSection() width = 1.5, disabled = function() return ((not ExtendedCharacterStats.profile.spell.display) or - (not ExtendedCharacterStats.profile.spell.hit.display)) + (not ExtendedCharacterStats.profile.spell.miss.display)) end, - get = function () return ExtendedCharacterStats.profile.spell.hit.sameLevel.display; end, + get = function () return ExtendedCharacterStats.profile.spell.miss.display; end, set = function (_, value) - ExtendedCharacterStats.profile.spell.hit.sameLevel.display = value + ExtendedCharacterStats.profile.spell.miss.display = value Stats.RebuildStatInfos() end, }, @@ -165,128 +277,17 @@ function _Config:LoadSpellSection() width = 1.5, disabled = function() return ((not ExtendedCharacterStats.profile.spell.display) or - (not ExtendedCharacterStats.profile.spell.hit.display)) + (not ExtendedCharacterStats.profile.spell.missBoss.display)) end, - get = function () return ExtendedCharacterStats.profile.spell.hit.bossLevel.display; end, + get = function () return ExtendedCharacterStats.profile.spell.missBoss.display; end, set = function (_, value) - ExtendedCharacterStats.profile.spell.hit.bossLevel.display = value + ExtendedCharacterStats.profile.spell.missBoss.display = value Stats.RebuildStatInfos() end, }, } }, - spellPower = { - type = "group", - order = 6, - inline = true, - name = function() return i18n("Spell power") end, - args = { - bonusHealing = { - type = "toggle", - order = 1, - name = function() return i18n("Healing power") end, - desc = function() return i18n("Shows/Hides the healing power value.") end, - width = 1.5, - disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, - get = function () return ExtendedCharacterStats.profile.spellBonus.bonusHealing.display; end, - set = function (_, value) - ExtendedCharacterStats.profile.spellBonus.bonusHealing.display = value - Stats.RebuildStatInfos() - end, - }, - arcaneDmg = { - type = "toggle", - order = 2, - name = function() return i18n("Arcane damage") end, - desc = function() return i18n("Shows/Hides the arcane damage value.") end, - width = 1.5, - disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, - get = function () return ExtendedCharacterStats.profile.spellBonus.arcaneDmg.display; end, - set = function (_, value) - ExtendedCharacterStats.profile.spellBonus.arcaneDmg.display = value - Stats.RebuildStatInfos() - end, - }, - fireDmg = { - type = "toggle", - order = 3, - name = function() return i18n("Fire damage") end, - desc = function() return i18n("Shows/Hides the fire damage value.") end, - width = 1.5, - disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, - get = function () return ExtendedCharacterStats.profile.spellBonus.fireDmg.display; end, - set = function (_, value) - ExtendedCharacterStats.profile.spellBonus.fireDmg.display = value - Stats.RebuildStatInfos() - end, - }, - frostDmg = { - type = "toggle", - order = 4, - name = function() return i18n("Frost damage") end, - desc = function() return i18n("Shows/Hides the frost damage value.") end, - width = 1.5, - disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, - get = function () return ExtendedCharacterStats.profile.spellBonus.frostDmg.display; end, - set = function (_, value) - ExtendedCharacterStats.profile.spellBonus.frostDmg.display = value - Stats.RebuildStatInfos() - end, - }, - holyDmg = { - type = "toggle", - order = 5, - name = function() return i18n("Holy damage") end, - desc = function() return i18n("Shows/Hides the holy damage value.") end, - width = 1.5, - disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, - get = function () return ExtendedCharacterStats.profile.spellBonus.holyDmg.display; end, - set = function (_, value) - ExtendedCharacterStats.profile.spellBonus.holyDmg.display = value - Stats.RebuildStatInfos() - end, - }, - natureDmg = { - type = "toggle", - order = 6, - name = function() return i18n("Nature damage") end, - desc = function() return i18n("Shows/Hides the nature damage value.") end, - width = 1.5, - disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, - get = function () return ExtendedCharacterStats.profile.spellBonus.natureDmg.display; end, - set = function (_, value) - ExtendedCharacterStats.profile.spellBonus.natureDmg.display = value - Stats.RebuildStatInfos() - end, - }, - physicalDmg = { - type = "toggle", - order = 7, - name = function() return i18n("Physical damage") end, - desc = function() return i18n("Shows/Hides the physical damage value.") end, - width = 1.5, - disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, - get = function () return ExtendedCharacterStats.profile.spellBonus.physicalDmg.display; end, - set = function (_, value) - ExtendedCharacterStats.profile.spellBonus.physicalDmg.display = value - Stats.RebuildStatInfos() - end, - }, - shadowDmg = { - type = "toggle", - order = 8, - name = function() return i18n("Shadow damage") end, - desc = function() return i18n("Shows/Hides the shadow damage value.") end, - width = 1.5, - disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, - get = function () return ExtendedCharacterStats.profile.spellBonus.shadowDmg.display; end, - set = function (_, value) - ExtendedCharacterStats.profile.spellBonus.shadowDmg.display = value - Stats.RebuildStatInfos() - end, - }, - } - } + }, } end diff --git a/Modules/Migration.lua b/Modules/Migration.lua index e6068677..8956fc98 100644 --- a/Modules/Migration.lua +++ b/Modules/Migration.lua @@ -17,6 +17,9 @@ function Migration:ToLatestProfileVersion(profileVersion) local defaultProfile = Profile:GetDefaultProfile() if profileVersion < 24 then + ExtendedCharacterStats.profile.spell.miss = defaultProfile.profile.spell.miss + ExtendedCharacterStats.profile.defense.critReduction = defaultProfile.profile.defense.critReduction + ExtendedCharacterStats.profile.defense.blockRating = defaultProfile.profile.defense.blockRating ExtendedCharacterStats.profile.defense.resilience = defaultProfile.profile.defense.resilience ExtendedCharacterStats.profile.melee.critRating = defaultProfile.profile.melee.critRating diff --git a/Modules/Profile.lua b/Modules/Profile.lua index c8eca87b..14ebbc7a 100755 --- a/Modules/Profile.lua +++ b/Modules/Profile.lua @@ -472,168 +472,170 @@ local function GetDefaultStatsProfile() bonus = { display = true, refName = "SpellHitBonus", - text = "Hit bonus", - textColor = colors.HIT_SECONDARY, - statColor = colors.HIT_PRIMARY - }, - sameLevel = { - display = true, - refName = "SpellHitSameLevel", - text = "Miss", - textColor = colors.HIT_SECONDARY, - statColor = colors.HIT_PRIMARY - }, - bossLevel = { - display = true, - refName = "SpellHitBossLevel", - text = "Miss (Lvl + 3)", + text = "Bonus", textColor = colors.HIT_SECONDARY, statColor = colors.HIT_PRIMARY }, arcaneHitBonus = { display = true, refName = "ArcaneHitBonus", - text = "Arcane hit bonus", - textColor = colors.ARCANE_SECONDARY, - statColor = colors.ARCANE_PRIMARY - }, - arcaneMissChance = { - display = true, - refName = "ArcaneMissChance", - text = "Arcane miss", - textColor = colors.ARCANE_SECONDARY, - statColor = colors.ARCANE_PRIMARY - }, - arcaneMissChanceBoss = { - display = true, - refName = "ArcaneMissChanceBoss", - text = "Arcane miss (Lvl + 3)", + text = "Arcane", textColor = colors.ARCANE_SECONDARY, statColor = colors.ARCANE_PRIMARY }, fireHitBonus = { display = true, refName = "FireHitBonus", - text = "Fire hit bonus", - textColor = colors.FIRE_SECONDARY, - statColor = colors.FIRE_PRIMARY - }, - fireMissChance = { - display = true, - refName = "FireMissChance", - text = "Fire miss", - textColor = colors.FIRE_SECONDARY, - statColor = colors.FIRE_PRIMARY - }, - fireMissChanceBoss = { - display = true, - refName = "FireMissChanceBoss", - text = "Fire miss (Lvl + 3)", + text = "Fire", textColor = colors.FIRE_SECONDARY, statColor = colors.FIRE_PRIMARY }, frostHitBonus = { display = true, refName = "FrostHitBonus", - text = "Frost hit bonus", - textColor = colors.FROST_SECONDARY, - statColor = colors.FROST_PRIMARY - }, - frostMissChance = { - display = true, - refName = "FrostMissChance", - text = "Frost miss", - textColor = colors.FROST_SECONDARY, - statColor = colors.FROST_PRIMARY - }, - frostMissChanceBoss = { - display = true, - refName = "FrostMissChanceBoss", - text = "Frost miss (Lvl + 3)", + text = "Frost", textColor = colors.FROST_SECONDARY, statColor = colors.FROST_PRIMARY }, holyHitBonus = { display = true, refName = "HolyHitBonus", - text = "Holy hit bonus", - textColor = colors.HOLY_SECONDARY, - statColor = colors.HOLY_PRIMARY - }, - holyMissChance = { - display = true, - refName = "HolyMissChance", - text = "Holy miss", - textColor = colors.HOLY_SECONDARY, - statColor = colors.HOLY_PRIMARY - }, - holyMissChanceBoss = { - display = true, - refName = "HolyMissChanceBoss", - text = "Holy miss (Lvl + 3)", + text = "Holy", textColor = colors.HOLY_SECONDARY, statColor = colors.HOLY_PRIMARY }, natureHitBonus = { display = true, refName = "NatureHitBonus", - text = "Nature hit bonus", - textColor = colors.NATURE_SECONDARY, - statColor = colors.NATURE_PRIMARY - }, - natureMissChance = { - display = true, - refName = "NatureMissChance", - text = "Nature miss", - textColor = colors.NATURE_SECONDARY, - statColor = colors.NATURE_PRIMARY - }, - natureMissChanceBoss = { - display = true, - refName = "NatureMissChanceBoss", - text = "Nature miss (Lvl + 3)", + text = "Nature", textColor = colors.NATURE_SECONDARY, statColor = colors.NATURE_PRIMARY }, physicalHitBonus = { display = true, refName = "PhysicalHitBonus", - text = "Physical hit bonus", + text = "Physical", textColor = colors.PHYSICAL_SECONDARY, statColor = colors.PHYSICAL_PRIMARY }, - physicalMissChance = { + shadowHitBonus = { display = true, - refName = "PhysicalMissChance", - text = "Physical miss", - textColor = colors.PHYSICAL_SECONDARY, - statColor = colors.PHYSICAL_PRIMARY + refName = "ShadowHitBonus", + text = "Shadow", + textColor = colors.SHADOW_SECONDARY, + statColor = colors.SHADOW_PRIMARY }, - physicalMissChanceBoss = { + }, + ---@type SubCategory + miss = { + display = true, + isSubGroup = true, + refName = "SpellMissHeader", + text = "Miss", + + arcane = { display = true, - refName = "PhysicalMissChanceBoss", - text = "Physical miss (Lvl + 3)", + refName = "ArcaneMissChance", + text = "Arcane", + textColor = colors.ARCANE_SECONDARY, + statColor = colors.ARCANE_PRIMARY + }, + fire = { + display = true, + refName = "FireMissChance", + text = "Fire", + textColor = colors.FIRE_SECONDARY, + statColor = colors.FIRE_PRIMARY + }, + frost = { + display = true, + refName = "FrostMissChance", + text = "Frost", + textColor = colors.FROST_SECONDARY, + statColor = colors.FROST_PRIMARY + }, + holy = { + display = true, + refName = "HolyMissChance", + text = "Holy", + textColor = colors.HOLY_SECONDARY, + statColor = colors.HOLY_PRIMARY + }, + nature = { + display = true, + refName = "NatureMissChance", + text = "Nature", + textColor = colors.NATURE_SECONDARY, + statColor = colors.NATURE_PRIMARY + }, + physical = { + display = true, + refName = "PhysicalMissChance", + text = "Physical", textColor = colors.PHYSICAL_SECONDARY, statColor = colors.PHYSICAL_PRIMARY }, - shadowHitBonus = { + shadow = { display = true, - refName = "ShadowHitBonus", - text = "Shadow hit bonus", + refName = "ShadowMissChance", + text = "Shadow", textColor = colors.SHADOW_SECONDARY, statColor = colors.SHADOW_PRIMARY }, - shadowMissChance = { + }, + ---@type SubCategory + missBoss = { + display = true, + isSubGroup = true, + refName = "SpellMissBossHeader", + text = "Miss (Lvl + 3)", + + arcane = { display = true, - refName = "ShadowMissChance", - text = "Shadow miss", - textColor = colors.SHADOW_SECONDARY, - statColor = colors.SHADOW_PRIMARY + refName = "ArcaneMissChanceBoss", + text = "Arcane", + textColor = colors.ARCANE_SECONDARY, + statColor = colors.ARCANE_PRIMARY }, - shadowMissChanceBoss = { + fire = { + display = true, + refName = "FireMissChanceBoss", + text = "Fire", + textColor = colors.FIRE_SECONDARY, + statColor = colors.FIRE_PRIMARY + }, + frost = { + display = true, + refName = "FrostMissChanceBoss", + text = "Frost", + textColor = colors.FROST_SECONDARY, + statColor = colors.FROST_PRIMARY + }, + holy = { + display = true, + refName = "HolyMissChanceBoss", + text = "Holy", + textColor = colors.HOLY_SECONDARY, + statColor = colors.HOLY_PRIMARY + }, + nature = { + display = true, + refName = "NatureMissChanceBoss", + text = "Nature", + textColor = colors.NATURE_SECONDARY, + statColor = colors.NATURE_PRIMARY + }, + physical = { + display = true, + refName = "PhysicalMissChanceBoss", + text = "Physical", + textColor = colors.PHYSICAL_SECONDARY, + statColor = colors.PHYSICAL_PRIMARY + }, + shadow = { display = true, refName = "ShadowMissChanceBoss", - text = "Shadow miss (Lvl + 3)", + text = "Shadow", textColor = colors.SHADOW_SECONDARY, statColor = colors.SHADOW_PRIMARY }, @@ -732,52 +734,52 @@ local function GetDefaultStatsProfile() textColor = colors.HEALING_SECONDARY, statColor = colors.HEALING_PRIMARY }, - arcaneDmg = { + arcane = { display = true, refName = "ArcaneDmg", - text = "Arcane damage", + text = "Arcane", textColor = colors.ARCANE_SECONDARY, statColor = colors.ARCANE_PRIMARY }, - fireDmg = { + fire = { display = true, refName = "FireDmg", - text = "Fire damage", + text = "Fire", textColor = colors.FIRE_SECONDARY, statColor = colors.FIRE_PRIMARY }, - frostDmg = { + frost = { display = true, refName = "FrostDmg", - text = "Frost damage", + text = "Frost", textColor = colors.FROST_SECONDARY, statColor = colors.FROST_PRIMARY }, - holyDmg = { + holy = { display = true, refName = "HolyDmg", - text = "Holy damage", + text = "Holy", textColor = colors.HOLY_SECONDARY, statColor = colors.HOLY_PRIMARY }, - natureDmg = { + nature = { display = true, refName = "NatureDmg", - text = "Nature damage", + text = "Nature", textColor = colors.NATURE_SECONDARY, statColor = colors.NATURE_PRIMARY }, - physicalDmg = { + physical = { display = true, refName = "PhysicalDmg", - text = "Physical damage", + text = "Physical", textColor = colors.PHYSICAL_SECONDARY, statColor = colors.PHYSICAL_PRIMARY }, - shadowDmg = { + shadow = { display = true, refName = "ShadowDmg", - text = "Shadow damage", + text = "Shadow", textColor = colors.SHADOW_SECONDARY, statColor = colors.SHADOW_PRIMARY }, diff --git a/Modules/Stats.lua b/Modules/Stats.lua index 7698744c..e16e10da 100755 --- a/Modules/Stats.lua +++ b/Modules/Stats.lua @@ -317,13 +317,13 @@ _CreateStatInfos = function() (not ECS.IsClassic) and category.penetrationRating or nil, category.penetration, spellBonus.bonusHealing, - spell.arcane.display and spellBonus.arcaneDmg or nil, - spell.fire.display and spellBonus.fireDmg or nil, - spell.frost.display and spellBonus.frostDmg or nil, - spell.holy.display and spellBonus.holyDmg or nil, - spell.nature.display and spellBonus.natureDmg or nil, - spell.physical.display and spellBonus.physicalDmg or nil, - spell.shadow.display and spellBonus.shadowDmg or nil + spell.arcane.display and spellBonus.arcane or nil, + spell.fire.display and spellBonus.fire or nil, + spell.frost.display and spellBonus.frost or nil, + spell.holy.display and spellBonus.holy or nil, + spell.nature.display and spellBonus.nature or nil, + spell.physical.display and spellBonus.physical or nil, + spell.shadow.display and spellBonus.shadow or nil ) if category.display then local spellCrit = spell.crit @@ -343,28 +343,42 @@ _CreateStatInfos = function() _CreateStatInfo( category, ECS.IsClassic and nil or spellHit.rating, - spell.arcane.display and spellHit.bonus.display and spellHit.arcaneHitBonus or nil, - spell.fire.display and spellHit.bonus.display and spellHit.fireHitBonus or nil, - spell.frost.display and spellHit.bonus.display and spellHit.frostHitBonus or nil, - spell.holy.display and spellHit.bonus.display and spellHit.holyHitBonus or nil, - spell.nature.display and spellHit.bonus.display and spellHit.natureHitBonus or nil, - spell.physical.display and spellHit.bonus.display and spellHit.physicalHitBonus or nil, - spell.shadow.display and spellHit.bonus.display and spellHit.shadowHitBonus or nil, - spell.arcane.display and spellHit.sameLevel.display and spellHit.arcaneMissChance or nil, - spell.fire.display and spellHit.sameLevel.display and spellHit.fireMissChance or nil, - spell.frost.display and spellHit.sameLevel.display and spellHit.frostMissChance or nil, - spell.holy.display and spellHit.sameLevel.display and spellHit.holyMissChance or nil, - spell.nature.display and spellHit.sameLevel.display and spellHit.natureMissChance or nil, - spell.physical.display and spellHit.sameLevel.display and spellHit.physicalMissChance or nil, - spell.shadow.display and spellHit.sameLevel.display and spellHit.shadowMissChance or nil, - spell.arcane.display and spellHit.bossLevel.display and spellHit.arcaneMissChanceBoss or nil, - spell.fire.display and spellHit.bossLevel.display and spellHit.fireMissChanceBoss or nil, - spell.frost.display and spellHit.bossLevel.display and spellHit.frostMissChanceBoss or nil, - spell.holy.display and spellHit.bossLevel.display and spellHit.holyMissChanceBoss or nil, - spell.nature.display and spellHit.bossLevel.display and spellHit.natureMissChanceBoss or nil, - spell.physical.display and spellHit.bossLevel.display and spellHit.physicalMissChanceBoss or nil, - spell.shadow.display and spellHit.bossLevel.display and spellHit.shadowMissChanceBoss or nil + spell.arcane.display and spellHit.bonus.display and spellHit.arcane or nil, + spell.fire.display and spellHit.bonus.display and spellHit.fire or nil, + spell.frost.display and spellHit.bonus.display and spellHit.frost or nil, + spell.holy.display and spellHit.bonus.display and spellHit.holy or nil, + spell.nature.display and spellHit.bonus.display and spellHit.nature or nil, + spell.physical.display and spellHit.bonus.display and spellHit.physical or nil, + spell.shadow.display and spellHit.bonus.display and spellHit.shadow or nil ) + local spellMiss = spell.miss + if spellMiss.display then + category = spellMiss + _CreateStatInfo( + category, + spell.arcane.display and category.arcane or nil, + spell.fire.display and category.fire or nil, + spell.frost.display and category.frost or nil, + spell.holy.display and category.holy or nil, + spell.nature.display and category.nature or nil, + spell.physical.display and category.physical or nil, + spell.shadow.display and category.shadow or nil + ) + end + local spellMissBoss = spell.missBoss + if spellMissBoss.display then + category = spellMissBoss + _CreateStatInfo( + category, + spell.arcane.display and category.arcane or nil, + spell.fire.display and category.fire or nil, + spell.frost.display and category.frost or nil, + spell.holy.display and category.holy or nil, + spell.nature.display and category.nature or nil, + spell.physical.display and category.physical or nil, + spell.shadow.display and category.shadow or nil + ) + end end end diff --git a/Modules/i18n/translations/StatTranslations.lua b/Modules/i18n/translations/StatTranslations.lua index de24a48b..c5b0b200 100644 --- a/Modules/i18n/translations/StatTranslations.lua +++ b/Modules/i18n/translations/StatTranslations.lua @@ -512,296 +512,6 @@ local statTranslations = { ["esMX"] = "Sanación", ["ptBR"] = "Poder de cura" }, - ["Arcane damage"] = { - ["enUS"] = true, - ["deDE"] = "Arkanschaden", - ["frFR"] = "Dégats des arcanes", - ["zhCN"] = "奥术伤害", - ["ruRU"] = "Тайная магия", - ["esES"] = "Daño arcano", - ["esMX"] = "Daño arcano", - ["ptBR"] = "Dano arcano" - }, - ["Arcane crit."] = { - ["enUS"] = true, - ["deDE"] = "Arkan Kritisch", - ["frFR"] = "Critique des arcanes", - ["zhCN"] = "奥术暴击", - ["ruRU"] = "Крит (ТМ)", - ["esES"] = "Crítico arcano", - ["esMX"] = "Crítico arcano", - ["ptBR"] = "Crítico arcano" - }, - ["Arcane hit bonus"] = { - ["enUS"] = true, - ["deDE"] = "Arkan Trefferchancebonus", - ["frFR"] = "Bonus de toucher des arcanes", - ["zhCN"] = "奥术命中加成", - ["ruRU"] = "Меткость (ТМ)", - ["esES"] = "Bonificación de golpe arcano", - ["esMX"] = "Bonificación de golpe arcano", - ["ptBR"] = "Bônus de acerto arcano" - }, - ["Arcane miss"] = { - ["enUS"] = true, - ["deDE"] = "Arkan Verfehlen", - ["frFR"] = "Rater des arcanes", - ["zhCN"] = "奥术未命中", - ["ruRU"] = "Сопротивление (ТМ)", - ["esES"] = "Fallo arcano", - ["esMX"] = "Fallo arcano", - ["ptBR"] = "Erro arcano" - }, - ["Arcane miss (Lvl + 3)"] = { - ["enUS"] = true, - ["deDE"] = "Arkan Verfehlen (Lvl + 3)", - ["frFR"] = "Rater des arcanes (Niv. + 3)", - ["zhCN"] = "奥术未命中(等级 + 3)", - ["ruRU"] = "Сопрот. (ТМ) (+3 ур.)", - ["esES"] = "Fallo arcano (Niv. + 3)", - ["esMX"] = "Fallo arcano (Niv. + 3)", - ["ptBR"] = "Erro arcano (Nív. + 3)" - }, - ["Fire damage"] = { - ["enUS"] = true, - ["deDE"] = "Feuerschaden", - ["frFR"] = "Dégats du feu", - ["zhCN"] = "火焰伤害", - ["ruRU"] = "Огонь", - ["esES"] = "Daño de fuego", - ["esMX"] = "Daño de fuego", - ["ptBR"] = "Dano de fogo" - }, - ["Fire hit bonus"] = { - ["enUS"] = true, - ["deDE"] = "Feuer Trefferchancebonus", - ["frFR"] = "Bonus de toucher du feu", - ["zhCN"] = "火焰命中加成", - ["ruRU"] = "Меткость (огонь)", - ["esES"] = "Bonificación de golpe de fuego", - ["esMX"] = "Bonificación de golpe de fuego", - ["ptBR"] = "Bônus de acerto de fogo" - }, - ["Fire miss"] = { - ["enUS"] = true, - ["deDE"] = "Feuer Verfehlen", - ["frFR"] = "Rater du feu", - ["zhCN"] = "火焰未命中", - ["ruRU"] = "Сопротивление (огонь)", - ["esES"] = "Fallo de fuego", - ["esMX"] = "Fallo de fuego", - ["ptBR"] = "Erro de fogo" - }, - ["Fire miss (Lvl + 3)"] = { - ["enUS"] = true, - ["deDE"] = "Feuer Verfehlen (Lvl + 3)", - ["frFR"] = "Rater du feu (Niv. + 3)", - ["zhCN"] = "火焰未命中(等级 + 3)", - ["ruRU"] = "Сопрот. (огонь) (+3 ур.)", - ["esES"] = "Fallo de fuego (Niv. + 3)", - ["esMX"] = "Fallo de fuego (Niv. + 3)", - ["ptBR"] = "Erro de fogo (Nív. + 3)" - }, - ["Frost damage"] = { - ["enUS"] = true, - ["deDE"] = "Frostschaden", - ["frFR"] = "Dégats du givre", - ["zhCN"] = "冰霜伤害", - ["ruRU"] = "Лед", - ["esES"] = "Daño de escarcha", - ["esMX"] = "Daño de escarcha", - ["ptBR"] = "Dano de gelo" - }, - ["Frost hit bonus"] = { - ["enUS"] = true, - ["deDE"] = "Frost Trefferchancebonus", - ["frFR"] = "Bonus de toucher du givre", - ["zhCN"] = "冰霜命中加成", - ["ruRU"] = "Меткость (лед)", - ["esES"] = "Bonificación de golpe de escarcha", - ["esMX"] = "Bonificación de golpe de escarcha", - ["ptBR"] = "Bônus de acerto de gelo" - }, - ["Frost miss"] = { - ["enUS"] = true, - ["deDE"] = "Frost Verfehlen", - ["frFR"] = "Rater du givre", - ["zhCN"] = "冰霜未命中", - ["ruRU"] = "Сопротивление (лед)", - ["esES"] = "Fallo de escarcha", - ["esMX"] = "Fallo de escarcha", - ["ptBR"] = "Erro de gelo" - }, - ["Frost miss (Lvl + 3)"] = { - ["enUS"] = true, - ["deDE"] = "Frost Verfehlen (Lvl + 3)", - ["frFR"] = "Rater du givre (Niv. + 3)", - ["zhCN"] = "冰霜未命中(等级 + 3)", - ["ruRU"] = "Сопрот. (лед) (+3 ур.)", - ["esES"] = "Fallo de escarcha (Niv. + 3)", - ["esMX"] = "Fallo de escarcha (Niv. + 3)", - ["ptBR"] = "Erro de gelo (Nív. + 3)" - }, - ["Holy damage"] = { - ["enUS"] = true, - ["deDE"] = "Heiligschaden", - ["frFR"] = "Dégats du sacré", - ["zhCN"] = "神圣伤害", - ["ruRU"] = "Свет", - ["esES"] = "Daño sagrado", - ["esMX"] = "Daño sagrado", - ["ptBR"] = "Dano sagrado" - }, - ["Holy hit bonus"] = { - ["enUS"] = true, - ["deDE"] = "Heilig Trefferchancebonus", - ["frFR"] = "Bonus de toucher du sacré", - ["zhCN"] = "神圣命中加成", - ["ruRU"] = "Меткость (свет)", - ["esES"] = "Bonificación de golpe sagrado", - ["esMX"] = "Bonificación de golpe sagrado", - ["ptBR"] = "Bônus de acerto sagrado" - }, - ["Holy miss"] = { - ["enUS"] = true, - ["deDE"] = "Heilig Verfehlen", - ["frFR"] = "Rater du sacré", - ["zhCN"] = "神圣未命中", - ["ruRU"] = "Сопротивление (свет)", - ["esES"] = "Fallo sagrado", - ["esMX"] = "Fallo sagrado", - ["ptBR"] = "Erro sagrado" - }, - ["Holy miss (Lvl + 3)"] = { - ["enUS"] = true, - ["deDE"] = "Heilig Verfehlen (Lvl + 3)", - ["frFR"] = "Rater du sacré (Niv. + 3)", - ["zhCN"] = "神圣未命中(等级 + 3)", - ["ruRU"] = "Сопрот. (свет) (+3 ур.)", - ["esES"] = "Fallo sagrado (Niv. + 3)", - ["esMX"] = "Fallo sagrado (Niv. + 3)", - ["ptBR"] = "Erro sagrado (Nív. + 3)" - }, - ["Nature damage"] = { - ["enUS"] = true, - ["deDE"] = "Naturschaden", - ["frFR"] = "Dégats de la nature", - ["zhCN"] = "自然伤害", - ["ruRU"] = "Природа", - ["esES"] = "Daño de la naturaleza", - ["esMX"] = "Daño de la naturaleza", - ["ptBR"] = "Dano de natureza" - }, - ["Nature hit bonus"] = { - ["enUS"] = true, - ["deDE"] = "Natur Trefferchancebonus", - ["frFR"] = "Bonus de toucher de la nature", - ["zhCN"] = "自然命中加成", - ["ruRU"] = "Меткость (природа)", - ["esES"] = "Bonificación de golpe de la naturaleza", - ["esMX"] = "Bonificación de golpe de la naturaleza", - ["ptBR"] = "Bônus de acerto de natureza" - }, - ["Nature miss"] = { - ["enUS"] = true, - ["deDE"] = "Natur Verfehlen", - ["frFR"] = "Rater de la nature", - ["zhCN"] = "自然未命中", - ["ruRU"] = "Сопротивление (природа)", - ["esES"] = "Fallo de la naturaleza", - ["esMX"] = "Fallo de la naturaleza", - ["ptBR"] = "Erro de natureza" - }, - ["Nature miss (Lvl + 3)"] = { - ["enUS"] = true, - ["deDE"] = "Natur Verfehlen (Lvl + 3)", - ["frFR"] = "Rater de la nature (Niv. + 3)", - ["zhCN"] = "自然未命中(等级 + 3)", - ["ruRU"] = "Сопрот. (природа) (+3 ур.)", - ["esES"] = "Fallo de la naturaleza (Niv. + 3)", - ["esMX"] = "Fallo de la naturaleza (Niv. + 3)", - ["ptBR"] = "Erro de natureza (Nív. + 3)" - }, - ["Physical damage"] = { - ["enUS"] = true, - ["deDE"] = "Physischer Schaden", - ["frFR"] = "Dégats physiques", - ["zhCN"] = "物理伤害", - ["ruRU"] = "Физ. урон", - ["esES"] = "Daño físico", - ["esMX"] = "Daño físico", - ["ptBR"] = "Dano físico" - }, - ["Physical hit bonus"] = { - ["enUS"] = true, - ["deDE"] = "Physischer Trefferchancebonus", - ["frFR"] = "Bonus de toucher physique", - ["zhCN"] = "物理命中加成", - ["ruRU"] = "Меткость (физ.)", - ["esES"] = "Bonificación de golpe físico", - ["esMX"] = "Bonificación de golpe físico", - ["ptBR"] = "Bônus de acerto físico" - }, - ["Physical miss"] = { - ["enUS"] = true, - ["deDE"] = "Physisch Verfehlen", - ["frFR"] = "Rater physique", - ["zhCN"] = "物理未命中", - ["ruRU"] = "Сопротивление (физ.)", - ["esES"] = "Fallo físico", - ["esMX"] = "Fallo físico", - ["ptBR"] = "Erro físico" - }, - ["Physical miss (Lvl + 3)"] = { - ["enUS"] = true, - ["deDE"] = "Physisch Verfehlen (Lvl + 3)", - ["frFR"] = "Rater physique (Niv. + 3)", - ["zhCN"] = "物理未命中(等级 + 3)", - ["ruRU"] = "Сопрот. (физ.) (+3 ур.)", - ["esES"] = "Fallo físico (Niv. + 3)", - ["esMX"] = "Fallo físico (Niv. + 3)", - ["ptBR"] = "Erro físico (Nív. + 3)" - }, - ["Shadow damage"] = { - ["enUS"] = true, - ["deDE"] = "Schattenschaden", - ["frFR"] = "Dégats des ombres", - ["zhCN"] = "暗影伤害", - ["ruRU"] = "Тьма", - ["esES"] = "Daño de las sombras", - ["esMX"] = "Daño de las sombras", - ["ptBR"] = "Dano de sombra" - }, - ["Shadow hit bonus"] = { - ["enUS"] = true, - ["deDE"] = "Schatten Trefferchancebonus", - ["frFR"] = "Bonus de toucher des ombres", - ["zhCN"] = "暗影命中加成", - ["ruRU"] = "Меткость (тьма)", - ["esES"] = "Bonificación de golpe de las sombras", - ["esMX"] = "Bonificación de golpe de las sombras", - ["ptBR"] = "Bônus de acerto de sombra" - }, - ["Shadow miss"] = { - ["enUS"] = true, - ["deDE"] = "Schatten Verfehlen", - ["frFR"] = "Rater des ombres", - ["zhCN"] = "暗影未命中", - ["ruRU"] = "Сопротивление (тьма)", - ["esES"] = "Fallo de las sombras", - ["esMX"] = "Fallo de las sombras", - ["ptBR"] = "Erro de sombra" - }, - ["Shadow miss (Lvl + 3)"] = { - ["enUS"] = true, - ["deDE"] = "Schatten Verfehlen (Lvl + 3)", - ["frFR"] = "Rater des ombres (Niv. + 3)", - ["zhCN"] = "暗影未命中(等级 + 3)", - ["ruRU"] = "Сопрот. (тьма) (+3 ур.)", - ["esES"] = "Fallo de las sombras (Niv. + 3)", - ["esMX"] = "Fallo de las sombras (Niv. + 3)", - ["ptBR"] = "Erro de sombra (Nív. + 3)" - }, } for k, v in pairs(statTranslations) do From c94af6b883578040d2307cf0b4af6f231781b4f3 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Fri, 20 Feb 2026 23:16:57 +0100 Subject: [PATCH 20/23] wip --- Modules/Migration.lua | 2 + .../DefenseConfigTranslations.lua | 60 ------------------- .../SpellConfigTranslations.lua | 10 ---- 3 files changed, 2 insertions(+), 70 deletions(-) diff --git a/Modules/Migration.lua b/Modules/Migration.lua index e202cf20..e1e308d0 100644 --- a/Modules/Migration.lua +++ b/Modules/Migration.lua @@ -21,6 +21,8 @@ function Migration:ToLatestProfileVersion(profileVersion) ExtendedCharacterStats.profile.defense.resilienceRating = ExtendedCharacterStats.profile.defense.resilience end if profileVersion < 25 then + ExtendedCharacterStats.profile.defense.resilience = ExtendedCharacterStats.profile.defense.resilience + ExtendedCharacterStats.profile.defense.resilienceRating = ExtendedCharacterStats.profile.defense.resilienceRating ExtendedCharacterStats.profile.spell.miss = defaultProfile.profile.spell.miss ExtendedCharacterStats.profile.defense.critReduction = defaultProfile.profile.defense.critReduction ExtendedCharacterStats.profile.defense.blockRating = defaultProfile.profile.defense.blockRating diff --git a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua index bbe37466..0ac92ab9 100644 --- a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua @@ -22,36 +22,6 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Block rating"] = { - ["enUS"] = true, - ["deDE"] = false, - ["frFR"] = false, - ["zhCN"] = false, - ["ruRU"] = false, - ["esES"] = false, - ["esMX"] = false, - ["ptBR"] = false, - }, - ["Block chance"] = { - ["enUS"] = true, - ["deDE"] = "Blockchance", - ["frFR"] = "Chances de bloquer", - ["zhCN"] = "格挡几率", - ["ruRU"] = "Шанс блока", - ["esES"] = "Probabilidad de bloquear", - ["esMX"] = "Probabilidad de bloquear", - ["ptBR"] = "Chance de bloquear" - }, - ["Block values"] = { - ["enUS"] = true, - ["deDE"] = false, - ["frFR"] = false, - ["zhCN"] = false, - ["ruRU"] = false, - ["esES"] = false, - ["esMX"] = false, - ["ptBR"] = false, - }, ["Blocked amount"] = { ["enUS"] = true, ["deDE"] = false, @@ -82,36 +52,6 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false }, - ["Melee crit. reduction"] = { - ["enUS"] = true, - ["deDE"] = false, - ["frFR"] = false, - ["zhCN"] = false, - ["ruRU"] = false, - ["esES"] = false, - ["esMX"] = false, - ["ptBR"] = false - }, - ["Ranged crit. reduction"] = { - ["enUS"] = true, - ["deDE"] = false, - ["frFR"] = false, - ["zhCN"] = false, - ["ruRU"] = false, - ["esES"] = false, - ["esMX"] = false, - ["ptBR"] = false - }, - ["Spell crit. reduction"] = { - ["enUS"] = true, - ["deDE"] = false, - ["frFR"] = false, - ["zhCN"] = false, - ["ruRU"] = false, - ["esES"] = false, - ["esMX"] = false, - ["ptBR"] = false - }, ["Show defense stats"] = { ["enUS"] = true, ["deDE"] = "Verteidigungswerte anzeigen", diff --git a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua index 7aa99a27..0f235cfb 100644 --- a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua @@ -232,16 +232,6 @@ local spellConfigTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Spell crit. rating"] = { - ["enUS"] = true, - ["deDE"] = false, - ["frFR"] = false, - ["zhCN"] = false, - ["ruRU"] = false, - ["esES"] = false, - ["esMX"] = false, - ["ptBR"] = false, - }, ["Shows/Hides the spell crit. rating."] = { ["enUS"] = true, ["deDE"] = false, From a8f4cb12ed283e8f78c8a261f1171caf8daa25dc Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Mon, 2 Mar 2026 22:24:42 +0100 Subject: [PATCH 21/23] revert --- Modules/Stats.lua | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Modules/Stats.lua b/Modules/Stats.lua index 774ed1e6..61007ad5 100755 --- a/Modules/Stats.lua +++ b/Modules/Stats.lua @@ -216,7 +216,7 @@ _CreateStatInfos = function() _CreateStatInfo( category, category.attackPower, - ECS.IsClassic and nil or category.critRating, + (not ECS.IsClassic) and category.critRating or nil, category.crit, ECS.IsWotlk and category.penetrationRating or nil, ECS.IsWotlk and category.penetration or nil, @@ -253,7 +253,7 @@ _CreateStatInfos = function() _CreateStatInfo( category, category.attackPower, - ECS.IsClassic and nil or category.critRating, + (not ECS.IsClassic) and category.critRating or nil, category.crit, ECS.IsWotlk and category.penetrationRating or nil, ECS.IsWotlk and category.penetration or nil, @@ -278,8 +278,8 @@ _CreateStatInfos = function() _CreateStatInfo( category, category.armor, - ECS.IsClassic and nil or category.resilienceRating, - ECS.IsClassic and nil or category.resilience, + (not ECS.IsClassic) and category.resilienceRating or nil, + (not ECS.IsClassic) and category.resilience or nil, (not ECS.IsClassic) and category.defenseRating or nil, category.defense, category.avoidance, @@ -294,7 +294,7 @@ _CreateStatInfos = function() category = category.block _CreateStatInfo( category, - ECS.IsClassic and nil or category.rating, + (not ECS.IsClassic) and category.rating or nil, category.chance, category.value ) @@ -335,7 +335,7 @@ _CreateStatInfos = function() local spellCrit = spell.crit _CreateStatInfo( category, - ECS.IsClassic and nil or spellCrit.rating, + (not ECS.IsClassic) and spellCrit.rating or nil, spell.arcane.display and spellCrit.display and spellCrit.arcane or nil, spell.fire.display and spellCrit.display and spellCrit.fire or nil, spell.frost.display and spellCrit.display and spellCrit.frost or nil, @@ -348,7 +348,7 @@ _CreateStatInfos = function() category = spellHit _CreateStatInfo( category, - ECS.IsClassic and nil or spellHit.rating, + (not ECS.IsClassic) and spellHit.rating or nil, spell.arcane.display and spellHit.bonus.display and spellHit.arcane or nil, spell.fire.display and spellHit.bonus.display and spellHit.fire or nil, spell.frost.display and spellHit.bonus.display and spellHit.frost or nil, From 8af86d263281c29f17114cfa7c322b217566f3cc Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Sat, 14 Mar 2026 21:44:57 +0100 Subject: [PATCH 22/23] wip --- Modules/Config/Config.lua | 16 ++--- Modules/Config/DefenseSection.lua | 28 ++++----- Modules/Config/GeneralSection.lua | 4 +- Modules/Config/ManaSection.lua | 2 +- Modules/Config/MeleeSection.lua | 50 +++++++-------- Modules/Config/RangeSection.lua | 30 ++++----- Modules/Config/SpellSchoolsSection.lua | 2 +- Modules/Config/SpellSection.lua | 28 ++++----- Modules/Profile.lua | 62 +++++++++---------- .../i18n/translations/CommandTranslations.lua | 2 +- .../ConfigTranslations/ConfigTranslations.lua | 30 ++++----- .../DefenseConfigTranslations.lua | 24 +++---- .../GeneralConfigTranslations.lua | 28 ++++----- .../ManaConfigTranslations.lua | 12 ++-- .../MeleeConfigTranslations.lua | 42 ++++++------- .../RangedConfigTranslations.lua | 12 ++-- .../SpellConfigTranslations.lua | 12 ++-- .../SpellSchoolsConfigTranslations.lua | 2 +- .../i18n/translations/StatTranslations.lua | 46 +++++++------- 19 files changed, 216 insertions(+), 216 deletions(-) diff --git a/Modules/Config/Config.lua b/Modules/Config/Config.lua index 8ef302f4..1b71334d 100755 --- a/Modules/Config/Config.lua +++ b/Modules/Config/Config.lua @@ -60,7 +60,7 @@ _GeneralTab = function() generalHeader = { type = "header", order = 1, - name = function() return i18n("General settings") end, + name = function() return i18n("General Settings") end, }, statsWindowClosedOnOpen = { type = "toggle", @@ -76,7 +76,7 @@ _GeneralTab = function() addColorsToStatTexts = { type = "toggle", order = 2, - name = function() return i18n("Colorize stats") end, + name = function() return i18n("Colorize stats.") end, desc = function() return i18n("Adds colors to the stats overview.") end, width = "full", get = function () return ExtendedCharacterStats.general.addColorsToStatTexts; end, @@ -111,7 +111,7 @@ _GeneralTab = function() showQualityColors = { type = "toggle", order = 3, - name = function() return i18n("Show item quality colors") end, + name = function() return i18n("Show item quality colors.") end, desc = function() return i18n("Shows/Hides the colored frames around equipped items.") end, width = "full", get = function () return ExtendedCharacterStats.general.showQualityColors; end, @@ -123,7 +123,7 @@ _GeneralTab = function() qualityColorsIntensity = { type = "range", order = 4, - name = function() return i18n("Quality colors' intensity") end, + name = function() return i18n("Quality Colors' Intensity") end, desc = function() return i18n("Changes the intensity of the colored frames' glow.") end, width = "double", min = 0.10, @@ -138,7 +138,7 @@ _GeneralTab = function() headerFontSize = { type = "range", order = 5, - name = function() return i18n("Header font size") end, + name = function() return i18n("Header Font Size") end, desc = function() return i18n("Changes the font size of the headers (e.g. Melee)") end, width = "double", min = 8, @@ -153,7 +153,7 @@ _GeneralTab = function() statFontSize = { type = "range", order = 6, - name = function() return i18n("Stat font size") end, + name = function() return i18n("Stat Font Size") end, desc = function() return i18n("Changes the font size of the stat lines (e.g. Crit.)") end, width = "double", min = 8, @@ -168,7 +168,7 @@ _GeneralTab = function() windowWidth = { type = "range", order = 7, - name = function() return i18n("Window width") end, + name = function() return i18n("Window Width") end, desc = function() return i18n("Changes the width of the stats window") end, width = "double", min = 12, @@ -241,7 +241,7 @@ _StatsTab = function () statsHeader = { type = "header", order = 1, - name = function() return i18n("Stats settings") end, + name = function() return i18n("Stats Settings") end, }, generalGroup = _Config:LoadGeneralSection(), meleeGroup = _Config:LoadMeleeSection(), diff --git a/Modules/Config/DefenseSection.lua b/Modules/Config/DefenseSection.lua index e42693ac..19aa5498 100755 --- a/Modules/Config/DefenseSection.lua +++ b/Modules/Config/DefenseSection.lua @@ -45,7 +45,7 @@ function _Config:LoadDefenseSection() resilienceRating = { type = "toggle", order = 2, - name = function() return i18n("Resilience rating") end, + name = function() return i18n("Resilience Rating") end, desc = function() return i18n("Shows/Hides the resilience rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -73,7 +73,7 @@ function _Config:LoadDefenseSection() defenseRating = { type = "toggle", order = 3, - name = function() return i18n("Defense rating") end, + name = function() return i18n("Defense Rating") end, desc = function() return i18n("Shows/Hides the defense rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -126,7 +126,7 @@ function _Config:LoadDefenseSection() dodgeRating = { type = "toggle", order = 5, - name = function() return i18n("Dodge rating") end, + 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, @@ -140,7 +140,7 @@ function _Config:LoadDefenseSection() dodge = { type = "toggle", order = 5.1, - name = function() return i18n("Dodge chance") end, + name = function() return i18n("Dodge Chance") end, desc = function() return i18n("Shows/Hides the dodge chance.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.defense.display); end, @@ -153,7 +153,7 @@ function _Config:LoadDefenseSection() parryRating = { type = "toggle", order = 6, - name = function() return i18n("Parry rating") end, + 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, @@ -167,7 +167,7 @@ function _Config:LoadDefenseSection() parry = { type = "toggle", order = 6.1, - name = function() return i18n("Parry chance") end, + name = function() return i18n("Parry Chance") end, desc = function() return i18n("Shows/Hides the parry chance.") end, width = 1.5, hidden = function() return not DataUtils:CanParry() end, @@ -182,13 +182,13 @@ function _Config:LoadDefenseSection() type = "group", order = 7, inline = true, - name = function() return i18n("Block values") end, + name = function() return i18n("Block Values") end, hidden = function() return not DataUtils:CanBlock() end, args = { rating = { type = "toggle", order = 1, - name = function() return i18n("Block rating") end, + 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, @@ -205,7 +205,7 @@ function _Config:LoadDefenseSection() chance = { type = "toggle", order = 1.1, - name = function() return i18n("Block chance") end, + name = function() return i18n("Block Chance") end, desc = function() return i18n("Shows/Hides the block chance.") end, width = 1.5, disabled = function() @@ -221,7 +221,7 @@ function _Config:LoadDefenseSection() amount = { type = "toggle", order = 1.2, - name = function() return i18n("Blocked amount") end, + name = function() return i18n("Blocked Amount") end, desc = function() return i18n("Shows/Hides the blocked amount.") end, width = 1.5, disabled = function() @@ -240,12 +240,12 @@ function _Config:LoadDefenseSection() type = "group", order = 8, inline = true, - name = function() return i18n("Crit. reduction values") end, + name = function() return i18n("Crit. Reduction Values") end, args = { melee = { type = "toggle", order = 1, - name = function() return i18n("Melee crit. reduction") end, + 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, disabled = function() @@ -261,7 +261,7 @@ function _Config:LoadDefenseSection() ranged = { type = "toggle", order = 1.1, - name = function() return i18n("Ranged crit. reduction") end, + 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, disabled = function() @@ -277,7 +277,7 @@ function _Config:LoadDefenseSection() spell = { type = "toggle", order = 1.2, - name = function() return i18n("Spell crit. reduction") end, + 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, disabled = function() diff --git a/Modules/Config/GeneralSection.lua b/Modules/Config/GeneralSection.lua index d0354e82..b1c157d1 100644 --- a/Modules/Config/GeneralSection.lua +++ b/Modules/Config/GeneralSection.lua @@ -18,7 +18,7 @@ function _Config:LoadGeneralSection() showGeneralStats = { type = "toggle", order = 0, - name = function() return i18n("Show general stats") end, + name = function() return i18n("Show general stats.") end, desc = function() return i18n("Shows/Hides all general stats.") end, width = 1.5, get = function () return ExtendedCharacterStats.profile.general.display; end, @@ -30,7 +30,7 @@ function _Config:LoadGeneralSection() movementSpeed = { type = "toggle", order = 1, - name = function() return i18n("Show movement speed") end, + name = function() return i18n("Show movement speed.") end, desc = function() return i18n("Shows/Hides the movement speed value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.general.display); end, diff --git a/Modules/Config/ManaSection.lua b/Modules/Config/ManaSection.lua index 8931aec3..20f7df4c 100755 --- a/Modules/Config/ManaSection.lua +++ b/Modules/Config/ManaSection.lua @@ -19,7 +19,7 @@ function _Config:LoadManaSection() showManaStats = { type = "toggle", order = 0, - name = function() return i18n("Show mana stats") end, + name = function() return i18n("Show mana stats.") end, desc = function() return i18n("Shows/Hides all mana stats.") end, width = 1.5, get = function () return ExtendedCharacterStats.profile.regen.display; end, diff --git a/Modules/Config/MeleeSection.lua b/Modules/Config/MeleeSection.lua index 4b8c5a48..054d18f7 100755 --- a/Modules/Config/MeleeSection.lua +++ b/Modules/Config/MeleeSection.lua @@ -18,7 +18,7 @@ function _Config:LoadMeleeSection() showMeleeStats = { type = "toggle", order = 0, - name = function() return i18n("Show melee stats") end, + name = function() return i18n("Show melee stats.") end, desc = function() return i18n("Shows/Hides all melee stats.") end, width = 1.5, get = function () return ExtendedCharacterStats.profile.melee.display; end, @@ -30,7 +30,7 @@ function _Config:LoadMeleeSection() meleeAttackPower = { type = "toggle", order = 1, - name = function() return i18n("Melee attack power") end, + name = function() return i18n("Melee Attack Power") end, desc = function() return i18n("Shows/Hides the melee attack power value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.melee.display); end, @@ -43,7 +43,7 @@ function _Config:LoadMeleeSection() meleeCritRating = { type = "toggle", order = 2, - name = function() return i18n("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, @@ -57,7 +57,7 @@ function _Config:LoadMeleeSection() meleeCrit = { type = "toggle", order = 2.1, - name = function() return i18n("Melee crit.") end, + name = function() return i18n("Melee Crit.") end, desc = function() return i18n("Shows/Hides the melee crit. chance.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.melee.display); end, @@ -70,7 +70,7 @@ function _Config:LoadMeleeSection() penetration = { type = "toggle", order = 2.3, - name = function() return i18n("Armor pen.") end, + name = function() return i18n("Armor Pen.") end, desc = function() return i18n("Shows/Hides the armor penetration value.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -84,7 +84,7 @@ function _Config:LoadMeleeSection() penetrationRating = { type = "toggle", order = 2.4, - name = function() return i18n("Armor pen. rating") end, + name = function() return i18n("Armor Pen. Rating") end, desc = function() return i18n("Shows/Hides the armor penetration rating value.") end, width = 1.5, hidden = function() return not ECS.IsWotlk end, @@ -112,7 +112,7 @@ function _Config:LoadMeleeSection() expertiseRating = { type = "toggle", order = 2.6, - name = function() return i18n("Expertise rating") end, + name = function() return i18n("Expertise Rating") end, desc = function() return i18n("Shows/Hides the expertise rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -126,7 +126,7 @@ function _Config:LoadMeleeSection() hasteRating = { type = "toggle", order = 2.6, - name = function() return i18n("Haste rating") end, + name = function() return i18n("Haste Rating") end, desc = function() return i18n("Shows/Hides the melee haste rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -140,7 +140,7 @@ function _Config:LoadMeleeSection() hasteBonus = { type = "toggle", order = 2.7, - name = function() return i18n("Haste bonus") end, + name = function() return i18n("Haste Bonus") end, desc = function() return i18n("Shows/Hides the melee haste bonus value.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -154,7 +154,7 @@ function _Config:LoadMeleeSection() meleeHit = { type = "toggle", order = 3, - name = function() return i18n("Melee hit") end, + name = function() return i18n("Melee Hit") end, desc = function() return i18n("Shows/Hides all melee hit chance.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.melee.display); end, @@ -168,12 +168,12 @@ function _Config:LoadMeleeSection() type = "group", order = 4, inline = true, - name = function() return i18n("Melee hit values") end, + name = function() return i18n("Melee Hit Values") end, args = { meleeHitRating = { type = "toggle", order = 1, - name = function() return i18n("Hit rating") end, + name = function() return i18n("Hit Rating") end, desc = function() return i18n("Shows/Hides the melee hit rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -190,7 +190,7 @@ function _Config:LoadMeleeSection() meleeHitBonus = { type = "toggle", order = 2, - name = function() return i18n("Hit bonus") end, + name = function() return i18n("Hit Bonus") end, desc = function() return i18n("Shows/Hides the melee hit bonus.") end, width = 1.5, disabled = function() @@ -206,7 +206,7 @@ function _Config:LoadMeleeSection() meleeMiss = { type = "toggle", order = 3, - name = function() return i18n("Miss chance") end, + name = function() return i18n("Miss Chance") end, desc = function() return i18n("Shows/Hides the melee miss chance against enemies on the same level.") end, width = 1.5, disabled = function() @@ -222,7 +222,7 @@ function _Config:LoadMeleeSection() meleeMissBoss = { type = "toggle", order = 4, - name = function() return i18n("Miss chance boss") end, + name = function() return i18n("Miss Chance Boss") end, desc = function() return i18n("Shows/Hides the melee miss chance against boss enemies (+3 Level).") end, width = 1.5, disabled = function() @@ -240,7 +240,7 @@ function _Config:LoadMeleeSection() glancingBlow = { type = "toggle", order = 5, - name = function() return i18n("Glancing blow") end, + name = function() return i18n("Glancing Blow") end, desc = function() return i18n("Shows/Hides all glancing blow stats") end, width = 1.5, hidden = function() return ECS.IsWotlk end, @@ -255,13 +255,13 @@ function _Config:LoadMeleeSection() type = "group", order = 6, inline = true, - name = function() return i18n("Melee glance values") end, + name = function() return i18n("Melee Glance Values") end, hidden = function() return ECS.IsWotlk end, args = { meleeGlance = { type = "toggle", order = 1, - name = function() return i18n("Glancing blow chance") end, + name = function() return i18n("Glancing Blow Chance") end, desc = function() return i18n("Shows/Hides the glancing chance against enemies on same level.") end, width = 1.5, disabled = function() @@ -277,7 +277,7 @@ function _Config:LoadMeleeSection() meleeGlanceBoss = { type = "toggle", order = 2, - name = function() return i18n("Glancing blow chance boss") end, + name = function() return i18n("Glancing Blow Chance Boss") end, desc = function() return i18n("Shows/Hides the glancing chance against boss enemies (+3 Level).") end, width = 1.5, disabled = function() @@ -293,7 +293,7 @@ function _Config:LoadMeleeSection() meleeGlanceDamage = { type = "toggle", order = 3, - name = function() return i18n("Glancing blow damage") end, + name = function() return i18n("Glancing Blow Damage") end, desc = function() return i18n("Shows/Hides the damage reduction against enemies on the same level.") end, width = 1.5, disabled = function() @@ -309,7 +309,7 @@ function _Config:LoadMeleeSection() meleeGlanceDamageBoss = { type = "toggle", order = 4, - name = function() return i18n("Glancing blow damage boss") end, + name = function() return i18n("Glancing Blow Damage Boss") end, desc = function() return i18n("Shows/Hides the damage reduction against boss enemies (+3 Level).") end, width = 1.5, disabled = function() @@ -327,7 +327,7 @@ function _Config:LoadMeleeSection() meleeAttackSpeed = { type = "toggle", order = 7, - name = function() return i18n("Attack speed") end, + name = function() return i18n("Attack Speed") end, desc = function() return i18n("Shows/Hides the melee attack speed.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.melee.display); end, @@ -341,12 +341,12 @@ function _Config:LoadMeleeSection() type = "group", order = 8, inline = true, - name = function() return i18n("Attack speed") end, + name = function() return i18n("Attack Speed") end, args = { mainHand = { type = "toggle", order = 1, - name = function() return i18n("Main hand") end, + name = function() return i18n("Main Hand") end, desc = function() return i18n("Shows/Hides the attack speed of the main hand.") end, width = 1.5, disabled = function() @@ -362,7 +362,7 @@ function _Config:LoadMeleeSection() offHand = { type = "toggle", order = 2, - name = function() return i18n("Off hand") end, + name = function() return i18n("Off Hand") end, hidden = function() return not CanDualWield() end, desc = function() return i18n("Shows/Hides the attack speed of the off hand.") end, width = 1.5, diff --git a/Modules/Config/RangeSection.lua b/Modules/Config/RangeSection.lua index 87952765..6bca9e08 100755 --- a/Modules/Config/RangeSection.lua +++ b/Modules/Config/RangeSection.lua @@ -19,7 +19,7 @@ function _Config:LoadRangeSection() showRangeStats = { type = "toggle", order = 0, - name = function() return i18n("Show ranged stats") end, + name = function() return i18n("Show ranged stats.") end, desc = function() return i18n("Shows/Hides all ranged stats.") end, width = 1.5, get = function () return ExtendedCharacterStats.profile.ranged.display; end, @@ -31,7 +31,7 @@ function _Config:LoadRangeSection() rangedAttackPower = { type = "toggle", order = 1, - name = function() return i18n("Ranged attack power") end, + name = function() return i18n("Ranged Attack Power") end, desc = function() return i18n("Shows/Hides the ranged attack power value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.ranged.display); end, @@ -44,7 +44,7 @@ function _Config:LoadRangeSection() rangedCritRating = { type = "toggle", order = 2, - name = function() return i18n("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, @@ -58,7 +58,7 @@ function _Config:LoadRangeSection() rangeCrit = { type = "toggle", order = 2.1, - name = function() return i18n("Ranged crit.") end, + name = function() return i18n("Ranged Crit.") end, desc = function() return i18n("Shows/Hides the ranged crit. chance.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.ranged.display); end, @@ -71,7 +71,7 @@ function _Config:LoadRangeSection() penetration = { type = "toggle", order = 2.3, - name = function() return i18n("Armor pen.") end, + name = function() return i18n("Armor Pen.") end, desc = function() return i18n("Shows/Hides the armor penetration value.") end, width = 1.5, hidden = function() return (not ECS.IsWotlk) end, @@ -85,7 +85,7 @@ function _Config:LoadRangeSection() penetrationRating = { type = "toggle", order = 2.4, - name = function() return i18n("Armor pen. rating") end, + name = function() return i18n("Armor Pen. Rating") end, desc = function() return i18n("Shows/Hides the armor penetration rating value.") end, width = 1.5, hidden = function() return (not ECS.IsWotlk) end, @@ -99,7 +99,7 @@ function _Config:LoadRangeSection() hasteRating = { type = "toggle", order = 2.6, - name = function() return i18n("Haste rating") end, + name = function() return i18n("Haste Rating") end, desc = function() return i18n("Shows/Hides the ranged haste rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -113,7 +113,7 @@ function _Config:LoadRangeSection() hasteBonus = { type = "toggle", order = 2.7, - name = function() return i18n("Haste bonus") end, + name = function() return i18n("Haste Bonus") end, desc = function() return i18n("Shows/Hides the ranged haste bonus value.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -127,7 +127,7 @@ function _Config:LoadRangeSection() rangedAttackSpeed = { type = "toggle", order = 3, - name = function() return i18n("Attack speed") end, + name = function() return i18n("Attack Speed") end, desc = function() return i18n("Shows/Hides the ranged attack speed.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.ranged.display); end, @@ -140,7 +140,7 @@ function _Config:LoadRangeSection() rangeHit = { type = "toggle", order = 4, - name = function() return i18n("Ranged hit") end, + name = function() return i18n("Ranged Hit") end, desc = function() return i18n("Shows/Hides all ranged hit chance.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.ranged.display); end, @@ -154,12 +154,12 @@ function _Config:LoadRangeSection() type = "group", order = 5, inline = true, - name = function() return i18n("Ranged hit values") end, + name = function() return i18n("Ranged Hit Values") end, args = { rangeHitRating = { type = "toggle", order = 1, - name = function() return i18n("Hit rating") end, + name = function() return i18n("Hit Rating") end, desc = function() return i18n("Shows/Hides the ranged hit rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -176,7 +176,7 @@ function _Config:LoadRangeSection() rangeHitBonus = { type = "toggle", order = 2, - name = function() return i18n("Hit bonus") end, + name = function() return i18n("Hit Bonus") end, desc = function() return i18n("Shows/Hides the ranged hit bonus.") end, width = 1.5, disabled = function() @@ -192,7 +192,7 @@ function _Config:LoadRangeSection() rangeMiss = { type = "toggle", order = 3, - name = function() return i18n("Miss chance") end, + name = function() return i18n("Miss Chance") end, desc = function() return i18n("Shows/Hides the ranged miss chance against enemies on the same level.") end, width = 1.5, disabled = function() @@ -208,7 +208,7 @@ function _Config:LoadRangeSection() rangeMissBoss = { type = "toggle", order = 4, - name = function() return i18n("Miss chance boss") end, + name = function() return i18n("Miss Chance Boss") end, desc = function() return i18n("Shows/Hides the ranged miss chance against boss enemies (+3 Level).") end, width = 1.5, disabled = function() diff --git a/Modules/Config/SpellSchoolsSection.lua b/Modules/Config/SpellSchoolsSection.lua index a676f531..bc3b5881 100644 --- a/Modules/Config/SpellSchoolsSection.lua +++ b/Modules/Config/SpellSchoolsSection.lua @@ -13,7 +13,7 @@ function _Config:SpellSchoolsSection() order = 6, inline = false, width = 2, - name = function() return i18n("Spell schools") end, + name = function() return i18n("Spell Schools") end, args = { arcane = { type = "toggle", diff --git a/Modules/Config/SpellSection.lua b/Modules/Config/SpellSection.lua index 94284fb7..379341a8 100755 --- a/Modules/Config/SpellSection.lua +++ b/Modules/Config/SpellSection.lua @@ -18,7 +18,7 @@ function _Config:LoadSpellSection() showSpellStats = { type = "toggle", order = 0, - name = function() return i18n("Show spell stats") end, + name = function() return i18n("Show spell stats.") end, desc = function() return i18n("Shows/Hides all spell stats.") end, width = 1.5, get = function () return ExtendedCharacterStats.profile.spell.display; end, @@ -30,7 +30,7 @@ function _Config:LoadSpellSection() hasteRating = { type = "toggle", order = 2, - name = function() return i18n("Haste rating") end, + name = function() return i18n("Haste Rating") end, desc = function() return i18n("Shows/Hides the spell haste rating value.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -44,7 +44,7 @@ function _Config:LoadSpellSection() hasteBonus = { type = "toggle", order = 3, - name = function() return i18n("Haste bonus") end, + name = function() return i18n("Haste Bonus") end, desc = function() return i18n("Shows/Hides the spell haste bonus value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, @@ -57,7 +57,7 @@ function _Config:LoadSpellSection() spellPenetration = { type = "toggle", order = 4, - name = function() return i18n("Spell penetration") end, + name = function() return i18n("Spell Penetration") end, desc = function() return i18n("Shows/Hides the spell penetration value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, @@ -71,12 +71,12 @@ function _Config:LoadSpellSection() type = "group", order = 5, inline = true, - name = function() return i18n("Spell power") end, + name = function() return i18n("Spell Power") end, args = { bonusHealing = { type = "toggle", order = 1, - name = function() return i18n("Healing power") end, + name = function() return i18n("Healing Power") end, desc = function() return i18n("Shows/Hides the healing power value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, @@ -183,12 +183,12 @@ function _Config:LoadSpellSection() type = "group", order = 6, inline = true, - name = function() return i18n("Spell crit. values") end, + name = function() return i18n("Spell Crit. Values") end, args = { spellCritRating = { type = "toggle", order = 1, - name = function() return i18n("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, @@ -202,7 +202,7 @@ function _Config:LoadSpellSection() spellCrit = { type = "toggle", order = 1.1, - name = function() return i18n("Spell crit.") end, + name = function() return i18n("Spell Crit.") end, desc = function() return i18n("Shows/Hides the spell crit. chance.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.spell.display); end, @@ -218,12 +218,12 @@ function _Config:LoadSpellSection() type = "group", order = 7, inline = true, - name = function() return i18n("Spell hit values") end, + name = function() return i18n("Spell Hit Values") end, args = { spellHitRating = { type = "toggle", order = 1, - name = function() return i18n("Hit rating") end, + name = function() return i18n("Hit Rating") end, desc = function() return i18n("Shows/Hides the spell hit rating.") end, width = 1.5, hidden = function() return ECS.IsClassic end, @@ -240,7 +240,7 @@ function _Config:LoadSpellSection() spellHitBonus = { type = "toggle", order = 2, - name = function() return i18n("Hit bonus") end, + name = function() return i18n("Hit Bonus") end, desc = function() return i18n("Shows/Hides the spell hit bonus.") end, width = 1.5, disabled = function() @@ -256,7 +256,7 @@ function _Config:LoadSpellSection() spellMiss = { type = "toggle", order = 3, - name = function() return i18n("Miss chance") end, + name = function() return i18n("Miss Chance") end, desc = function() return i18n("Shows/Hides the spell miss chance against enemies on the same level.") end, width = 1.5, disabled = function() @@ -272,7 +272,7 @@ function _Config:LoadSpellSection() spellMissBoss = { type = "toggle", order = 4, - name = function() return i18n("Miss chance boss") end, + name = function() return i18n("Miss Chance Boss") end, desc = function() return i18n("Shows/Hides the spell miss chance against boss enemies (+3 Level).") end, width = 1.5, disabled = function() diff --git a/Modules/Profile.lua b/Modules/Profile.lua index 6a79b614..411b8790 100755 --- a/Modules/Profile.lua +++ b/Modules/Profile.lua @@ -22,7 +22,7 @@ local function GetDefaultStatsProfile() movementSpeed = { display = true, refName = "MovementSpeed", - text = "Movement speed" + text = "Movement Speed" }, }, @@ -70,7 +70,7 @@ local function GetDefaultStatsProfile() display = true, isSubGroup = true, refName = "GlanceChanceHeader", - text = "Glancing blow", + text = "Glancing Blow", sameLevel = { display = true, refName = "GlanceHitChanceSameLevel", @@ -103,35 +103,35 @@ local function GetDefaultStatsProfile() attackPower = { display = true, refName = "MeleeAttackPower", - text = "Attack power", + text = "Attack Power", textColor = colors.ATTACK_POWER_SECONDARY, statColor = colors.ATTACK_POWER_PRIMARY }, critRating = { display = true, refName = "RangedCritRating", - text = "Crit. rating", + text = "Crit. Rating", textColor = colors.CRIT_SECONDARY, statColor = colors.CRIT_PRIMARY }, crit = { display = true, refName = "MeleeCritChance", - text = "Crit. chance", + text = "Crit. Chance", textColor = colors.CRIT_SECONDARY, statColor = colors.CRIT_PRIMARY }, penetration = { display = true, refName = "MeleeArmorPenetration", - text = "Armor pen.", + text = "Armor Pen.", textColor = colors.ATTACK_SPEED_SECONDARY, statColor = colors.ATTACK_SPEED_PRIMARY, }, penetrationRating = { display = true, refName = "MeleeArmorPenetrationRating", - text = "Armor pen. rating", + text = "Armor Pen. Rating", textColor = colors.ATTACK_SPEED_SECONDARY, statColor = colors.ATTACK_SPEED_PRIMARY, }, @@ -143,19 +143,19 @@ local function GetDefaultStatsProfile() expertiseRating = { display = true, refName = "ExpertiseRating", - text = "Expertise rating" + text = "Expertise Rating" }, hasteRating = { display = true, refName = "MeleeHasteRating", - text = "Haste rating", + text = "Haste Rating", textColor = colors.HASTE_RATING_SECONDARY, statColor = colors.HASTE_RATING_PRIMARY }, hasteBonus = { display = true, refName = "MeleeHasteBonus", - text = "Haste bonus", + text = "Haste Bonus", textColor = colors.HASTE_RATING_SECONDARY, statColor = colors.HASTE_RATING_PRIMARY }, @@ -163,19 +163,19 @@ local function GetDefaultStatsProfile() display = true, isSubGroup = true, refName = "MeleeAttackSpeedHeader", - text = "Attack speed", + text = "Attack Speed", mainHand = { display = true, refName = "MeleeAttackSpeedMainHand", - text = "Main hand", + text = "Main Hand", textColor = colors.ATTACK_SPEED_SECONDARY, statColor = colors.ATTACK_SPEED_PRIMARY }, offHand = { display = true, refName = "MeleeAttackSpeedOffHand", - text = "Off hand", + text = "Off Hand", textColor = colors.ATTACK_SPEED_SECONDARY, statColor = colors.ATTACK_SPEED_PRIMARY }, @@ -226,56 +226,56 @@ local function GetDefaultStatsProfile() attackPower = { display = true, refName = "RangeAttackpower", - text = "Attack power", + text = "Attack Power", textColor = colors.ATTACK_POWER_SECONDARY, statColor = colors.ATTACK_POWER_PRIMARY }, critRating = { display = true, refName = "RangedCritRating", - text = "Crit. rating", + text = "Crit. Rating", textColor = colors.CRIT_SECONDARY, statColor = colors.CRIT_PRIMARY }, crit = { display = true, refName = "RangedCritChance", - text = "Crit. chance", + text = "Crit. Chance", textColor = colors.CRIT_SECONDARY, statColor = colors.CRIT_PRIMARY }, penetration = { display = true, refName = "RangedArmorPenetration", - text = "Armor pen.", + text = "Armor Pen.", textColor = colors.ATTACK_SPEED_SECONDARY, statColor = colors.ATTACK_SPEED_PRIMARY, }, penetrationRating = { display = true, refName = "RangedArmorPenetrationRating", - text = "Armor pen. rating", + text = "Armor Pen. Rating", textColor = colors.ATTACK_SPEED_SECONDARY, statColor = colors.ATTACK_SPEED_PRIMARY, }, hasteRating = { display = true, refName = "RangedHasteRating", - text = "Haste rating", + text = "Haste Rating", textColor = colors.HASTE_RATING_SECONDARY, statColor = colors.HASTE_RATING_PRIMARY }, hasteBonus = { display = true, refName = "RangedHasteBonus", - text = "Haste bonus", + text = "Haste Bonus", textColor = colors.HASTE_RATING_SECONDARY, statColor = colors.HASTE_RATING_PRIMARY }, attackSpeed = { display = true, refName = "RangedAttackSpeed", - text = "Attack speed", + text = "Attack Speed", textColor = colors.ATTACK_SPEED_SECONDARY, statColor = colors.ATTACK_SPEED_PRIMARY }, @@ -293,7 +293,7 @@ local function GetDefaultStatsProfile() resilienceRating = { display = true, refName = "ResilienceRating", - text = "Resilience rating" + text = "Resilience Rating" }, resilience = { display = true, @@ -303,7 +303,7 @@ local function GetDefaultStatsProfile() defenseRating = { display = true, refName = "DefenseRating", - text = "Defense rating" + text = "Defense Rating" }, defense = { display = true, @@ -323,22 +323,22 @@ local function GetDefaultStatsProfile() dodgeRating = { display = true, refName = "DodgeRating", - text = "Dodge rating" + text = "Dodge Rating" }, dodge = { display = true, refName = "DodgeChance", - text = "Dodge chance" + text = "Dodge Chance" }, parryRating = { display = true, refName = "ParryRating", - text = "Parry rating" + text = "Parry Rating" }, parry = { display = true, refName = "ParryChance", - text = "Parry chance" + text = "Parry Chance" }, ---@type SubCategory block = { @@ -367,7 +367,7 @@ local function GetDefaultStatsProfile() display = true, isSubGroup = true, refName = "CritReductionHeader", - text = "Crit. reduction", + text = "Crit. Reduction", melee = { display = true, refName = "MeleeCritReduction", @@ -643,14 +643,14 @@ local function GetDefaultStatsProfile() hasteRating = { display = true, refName = "SpellHasteRating", - text = "Haste rating", + text = "Haste Rating", textColor = colors.HASTE_RATING_SECONDARY, statColor = colors.HASTE_RATING_PRIMARY }, hasteBonus = { display = true, refName = "SpellHasteBonus", - text = "Haste bonus", + text = "Haste Bonus", textColor = colors.HASTE_RATING_SECONDARY, statColor = colors.HASTE_RATING_PRIMARY }, @@ -730,7 +730,7 @@ local function GetDefaultStatsProfile() bonusHealing = { display = true, refName = "BonusHealing", - text = "Healing power", + text = "Healing Power", textColor = colors.HEALING_SECONDARY, statColor = colors.HEALING_PRIMARY }, diff --git a/Modules/i18n/translations/CommandTranslations.lua b/Modules/i18n/translations/CommandTranslations.lua index 40b667ae..45e8820a 100644 --- a/Modules/i18n/translations/CommandTranslations.lua +++ b/Modules/i18n/translations/CommandTranslations.lua @@ -2,7 +2,7 @@ local i18n = ECSLoader:ImportModule("i18n") local commandTranslations = { - ["Available commands"] = { + ["Available Commands"] = { ["enUS"] = true, ["deDE"] = "Verfügbare Befehle", ["frFR"] = "Commandes disponibles", diff --git a/Modules/i18n/translations/ConfigTranslations/ConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/ConfigTranslations.lua index 99d00412..48067c58 100644 --- a/Modules/i18n/translations/ConfigTranslations/ConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/ConfigTranslations.lua @@ -32,7 +32,7 @@ local configTranslations = { ["esMX"] = "Estadísticas", ["ptBR"] = "Estatísticas" }, - ["General settings"] = { + ["General Settings"] = { ["enUS"] = true, ["deDE"] = "Allgemeine Einstellungen", ["frFR"] = "Paramètres généraux", @@ -62,15 +62,15 @@ local configTranslations = { ["esMX"] = "Oculta la ventana de estadísticas cuando abriendo la información del personaje", ["ptBR"] = "Oculta as janelas de estatísticas ao abrir as informações do personagem" }, - ["Colorize stats"] = { + ["Colorize stats."] = { ["enUS"] = true, - ["deDE"] = "Werte färben", - ["frFR"] = "Coloriser les statistiques", + ["deDE"] = "Werte färben.", + ["frFR"] = "Coloriser les statistiques.", ["zhCN"] = "染色统计信息", - ["ruRU"] = "Окрашивание характеристик", - ["esES"] = "Colorear estadísticas", - ["esMX"] = "Colorear estadísticas", - ["ptBR"] = "Colorir estatísticas" + ["ruRU"] = "Окрашивание характеристик.", + ["esES"] = "Colorear estadísticas.", + ["esMX"] = "Colorear estadísticas.", + ["ptBR"] = "Colorir estatísticas." }, ["Adds colors to the stats overview."] = { ["enUS"] = true, @@ -122,7 +122,7 @@ local configTranslations = { ["esMX"] = "Valores de estadísticas", ["ptBR"] = "Valores das estatísticas" }, - ["Show item quality colors"] = { + ["Show item quality colors."] = { ["enUS"] = true, ["deDE"] = "Zeige Item Qualitätsfarben", ["frFR"] = "Affiche la couleur de rareté des objets", @@ -142,7 +142,7 @@ local configTranslations = { ["esMX"] = "Muestra/oculta los marcos coloreados alrededor de los objetos equipados", ["ptBR"] = "Mostra/oculta os quadros coloridos ao redor dos itens equipados" }, - ["Quality colors' intensity"] = { + ["Quality Colors' Intensity"] = { ["enUS"] = true, ["deDE"] = "Intensität der Qualitätsfarben", ["frFR"] = "Intensité des couleurs de qualité", @@ -162,7 +162,7 @@ local configTranslations = { ["esMX"] = "Cambia la intensidad del brillo de los marcos coloreados.", ["ptBR"] = "Altera a intensidade do brilho dos quadros coloridos." }, - ["Header font size"] = { + ["Header Font Size"] = { ["enUS"] = true, ["deDE"] = "Überschriften Schriftgröße", ["frFR"] = "Taille de la police d'entête", @@ -182,7 +182,7 @@ local configTranslations = { ["esMX"] = "Cambia el tamaño de fuente de los encabezados (p. ej., cuerpo a cuerpo)", ["ptBR"] = "Altera o tamanho da fonte dos cabeçalhos (por exemplo, corpo a corpo)" }, - ["Stat font size"] = { + ["Stat Font Size"] = { ["enUS"] = true, ["deDE"] = "Werte Schriftgröße", ["frFR"] = "Taille de la police des statistiques", @@ -192,7 +192,7 @@ local configTranslations = { ["esMX"] = "Tamaño de fuente de estadística", ["ptBR"] = "Tamanho da fonte das estatísticas" }, - ["Changes the font size of the stat lines (e.g. Crit.)"] = { + ["Changes the font size of the stat lines (e.g. Crit.)."] = { ["enUS"] = true, ["deDE"] = "Ändert die Schriftgröße der Werte (z.B. Kritische Chance)", ["frFR"] = "Modifie la taille de la police des statistiques (ex. Critique)", @@ -202,7 +202,7 @@ local configTranslations = { ["esMX"] = "Cambia el tamaño de fuente de las líneas de estadísticas (p. ej., crítico)", ["ptBR"] = "Altera o tamanho da fonte das linhas de estatísticas (por exemplo, crítico)" }, - ["Window width"] = { + ["Window Width"] = { ["enUS"] = true, ["deDE"] = "Fensterbreite", ["frFR"] = "Largeur de fenêtre", @@ -232,7 +232,7 @@ local configTranslations = { ["esMX"] = "Idioma", ["ptBR"] = "Idioma" }, - ["Stats settings"] = { + ["Stats Settings"] = { ["enUS"] = true, ["deDE"] = "Werte Einstellungen", ["frFR"] = "Paramètres des statistiques", diff --git a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua index 0ac92ab9..0fee1a1c 100644 --- a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua @@ -2,7 +2,7 @@ local i18n = ECSLoader:ImportModule("i18n") local defenseConfigTranslations = { - ["Parry rating"] = { + ["Parry Rating"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -12,7 +12,7 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Dodge rating"] = { + ["Dodge Rating"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -22,7 +22,7 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Blocked amount"] = { + ["Blocked Amount"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -32,7 +32,7 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Resilience rating"] = { + ["Resilience Rating"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -42,7 +42,7 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Crit. reduction values"] = { + ["Crit. Reduction Values"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -52,15 +52,15 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false }, - ["Show defense stats"] = { + ["Show defense stats."] = { ["enUS"] = true, - ["deDE"] = "Verteidigungswerte anzeigen", - ["frFR"] = "Afficher défense", + ["deDE"] = "Verteidigungswerte anzeigen.", + ["frFR"] = "Afficher défense.", ["zhCN"] = "显示防御属性", - ["ruRU"] = "Защита", - ["esES"] = "Mostrar defensa", - ["esMX"] = "Mostrar defensa", - ["ptBR"] = "Mostrar defesa" + ["ruRU"] = "Защита.", + ["esES"] = "Mostrar defensa.", + ["esMX"] = "Mostrar defensa.", + ["ptBR"] = "Mostrar defesa." }, ["Shows/Hides all defense stats."] = { ["enUS"] = true, diff --git a/Modules/i18n/translations/ConfigTranslations/GeneralConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/GeneralConfigTranslations.lua index fdb9a963..43b2a729 100644 --- a/Modules/i18n/translations/ConfigTranslations/GeneralConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/GeneralConfigTranslations.lua @@ -2,15 +2,15 @@ local i18n = ECSLoader:ImportModule("i18n") local generalConfigTranslations = { - ["Show general stats"] = { + ["Show general stats."] = { ["enUS"] = true, - ["deDE"] = "Allgemeine Werte anzeigen", - ["frFR"] = "Afficher les statistiques", + ["deDE"] = "Allgemeine Werte anzeigen.", + ["frFR"] = "Afficher les statistiques.", ["zhCN"] = "显示常规属性信息", - ["ruRU"] = "Основные характеристики", - ["esES"] = "Mostrar estadísticas", - ["esMX"] = "Mostrar estadísticas", - ["ptBR"] = "Mostrar estatísticas" + ["ruRU"] = "Основные характеристики.", + ["esES"] = "Mostrar estadísticas.", + ["esMX"] = "Mostrar estadísticas.", + ["ptBR"] = "Mostrar estatísticas." }, ["Shows/Hides all general stats."] = { ["enUS"] = true, @@ -22,15 +22,15 @@ local generalConfigTranslations = { ["esMX"] = "Muestra/oculta todas estadísticas generales", ["ptBR"] = "Mostra/oculta todas as estatísticas gerais" }, - ["Show movement speed"] = { + ["Show movement speed."] = { ["enUS"] = true, - ["deDE"] = "Bewegungsgeschwindigkeit anzeigen", - ["frFR"] = "Afficher la vitesse de déplacement", + ["deDE"] = "Bewegungsgeschwindigkeit anzeigen.", + ["frFR"] = "Afficher la vitesse de déplacement.", ["zhCN"] = "显示移动速度", - ["ruRU"] = "Скорость движения", - ["esES"] = "Mostrar velocidad de movimiento", - ["esMX"] = "Mostrar velocidad de movimiento", - ["ptBR"] = "Mostrar velocidade de movimento" + ["ruRU"] = "Скорость движения.", + ["esES"] = "Mostrar velocidad de movimiento.", + ["esMX"] = "Mostrar velocidad de movimiento.", + ["ptBR"] = "Mostrar velocidade de movimento." }, ["Shows/Hides the movement speed value."] = { ["enUS"] = true, diff --git a/Modules/i18n/translations/ConfigTranslations/ManaConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/ManaConfigTranslations.lua index 8a9db4bc..23e3cfc5 100644 --- a/Modules/i18n/translations/ConfigTranslations/ManaConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/ManaConfigTranslations.lua @@ -2,15 +2,15 @@ local i18n = ECSLoader:ImportModule("i18n") local manaConfigTranslations = { - ["Show mana stats"] = { + ["Show mana stats."] = { ["enUS"] = true, - ["deDE"] = "Manawerte anzeigen", - ["frFR"] = "Afficher mana", + ["deDE"] = "Manawerte anzeigen.", + ["frFR"] = "Afficher mana.", ["zhCN"] = "显示法力回复", ["ruRU"] = "Мана", - ["esES"] = "Mostrar maná", - ["esMX"] = "Mostrar maná", - ["ptBR"] = "Mostrar mana" + ["esES"] = "Mostrar maná.", + ["esMX"] = "Mostrar maná.", + ["ptBR"] = "Mostrar mana." }, ["Shows/Hides all mana stats."] = { ["enUS"] = true, diff --git a/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua index dba3d4ea..41087be0 100644 --- a/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua @@ -2,15 +2,15 @@ local i18n = ECSLoader:ImportModule("i18n") local meleeConfigTranslations = { - ["Show melee stats"] = { + ["Show melee stats."] = { ["enUS"] = true, - ["deDE"] = "Nahkampfwerte anzeigen", - ["frFR"] = "Afficher mêlée", + ["deDE"] = "Nahkampfwerte anzeigen.", + ["frFR"] = "Afficher mêlée.", ["zhCN"] = "显示近战属性", - ["ruRU"] = "Ближний бой", - ["esES"] = "Mostrar cuerpo a cuerpo", - ["esMX"] = "Mostrar cuerpo a cuerpo", - ["ptBR"] = "Mostrar corpo a corpo" + ["ruRU"] = "Ближний бой.", + ["esES"] = "Mostrar cuerpo a cuerpo.", + ["esMX"] = "Mostrar cuerpo a cuerpo.", + ["ptBR"] = "Mostrar corpo a corpo." }, ["Shows/Hides all melee stats."] = { ["enUS"] = true, @@ -22,7 +22,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta todas estadísticas cuerpo a cuerpo", ["ptBR"] = "Mostra/oculta todas as estatísticas corpo a corpo" }, - ["Melee attack power"] = { + ["Melee Attack Power"] = { ["enUS"] = true, ["deDE"] = "Nahkampf Angriffskraft", ["frFR"] = "Puissance d'attaque en mêlée", @@ -42,7 +42,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta el valor de poder de ataque cuerpo a cuerpo", ["ptBR"] = "Mostra/oculta o valor de poder de ataque corpo a corpo" }, - ["Melee crit."] = { + ["Melee Crit."] = { ["enUS"] = true, ["deDE"] = "Nahkampf Kritisch", ["frFR"] = "Critique en mêlée", @@ -152,7 +152,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta la velocidad de ataque de la mano izquierda", ["ptBR"] = "Mostra/oculta a velocidade de ataque da mão secundária" }, - ["Melee hit"] = { + ["Melee Hit"] = { ["enUS"] = true, ["deDE"] = "Nahkampf Trefferwertung", ["frFR"] = "Toucher en mêlée", @@ -162,7 +162,7 @@ local meleeConfigTranslations = { ["esMX"] = "Probabilidad de golpear", ["ptBR"] = "Chance de acerto" }, - ["Melee hit values"] = { + ["Melee Hit Values"] = { ["enUS"] = true, ["deDE"] = "Nahkampf Trefferwertung", ["frFR"] = "Valeurs de toucher en mêlée", @@ -182,7 +182,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de golpear", ["ptBR"] = "Mostra/oculta a chance de acerto" }, - ["Hit rating"] = { + ["Hit Rating"] = { ["enUS"] = true, ["deDE"] = "Trefferwertung", ["frFR"] = "Score de toucher", @@ -202,7 +202,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta el índice de golpear", ["ptBR"] = "Mostra/oculta a taxa de acerto" }, - ["Hit bonus"] = { + ["Hit Bonus"] = { ["enUS"] = true, ["deDE"] = "Trefferwertungsbonus", ["frFR"] = "Bonus de toucher", @@ -222,7 +222,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta el bonus de golpear", ["ptBR"] = "Mostra/oculta o bônus de acerto" }, - ["Miss chance"] = { + ["Miss Chance"] = { ["enUS"] = true, ["deDE"] = "Chance zu verfehlen", ["frFR"] = "Chances de rater", @@ -242,7 +242,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de fallo contra enemigos del mismo nivel", ["ptBR"] = "Mostra/oculta a chance de erro contra inimigos do mesmo nível" }, - ["Miss chance boss"] = { + ["Miss Chance Boss"] = { ["enUS"] = true, ["deDE"] = "Chance zu verfehlen (Boss)", ["frFR"] = "Chances de rater (Boss)", @@ -262,7 +262,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de fallo contra jefes (nivel +3)", ["ptBR"] = "Mostra/oculta a chance de erro contra chefes (nível +3)." }, - ["Glancing blow chance"] = { + ["Glancing Blow Chance"] = { ["enUS"] = true, ["deDE"] = "Streifschlagchance", ["frFR"] = "Chance de coup d'éraflure", @@ -282,7 +282,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de golpe de refilón contra enemigos del mismo nivel.", ["ptBR"] = "Mostra/oculta a chance de pancada de relance contra inimigos do mesmo nível." }, - ["Glancing blow chance boss"] = { + ["Glancing Blow Chance Boss"] = { ["enUS"] = true, ["deDE"] = "Streifschlagchance (Boss)", ["frFR"] = "Chance de coup d'éraflure (Boss)", @@ -302,7 +302,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de golpe de refilón contra jefes (nivel +3)", ["ptBR"] = "Mostra/oculta a chance de pancada de relance contra chefes (nível +3)." }, - ["Glancing blow damage"] = { + ["Glancing Blow Damage"] = { ["enUS"] = true, ["deDE"] = "Streifschlagschaden", ["frFR"] = "Dégâts du coup d'éraflure", @@ -322,7 +322,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta el daño de golpe de refilón contra enemigos del mismo nivel.", ["ptBR"] = "Mostra/oculta o dano de pancada de relance contra inimigos do mesmo nível." }, - ["Glancing blow damage boss"] = { + ["Glancing Blow Damage Boss"] = { ["enUS"] = true, ["deDE"] = "Streifschlagschaden (Boss)", ["frFR"] = "Dégâts du coup d'éraflure (Boss)", @@ -342,7 +342,7 @@ local meleeConfigTranslations = { ["esMX"] = "Muestra/oculta el daño de golpe de refilón contra jefes (nivel +3)", ["ptBR"] = "Mostra/oculta o dano de pancada de relance contra chefes (nível +3)." }, - ["Melee glance values"] = { + ["Melee Glance Values"] = { ["enUS"] = true, ["deDE"] = "Nahkampf-Streifwerte", ["frFR"] = "Valeurs de coup d'éraflure en mêlée", @@ -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"] = false, ["frFR"] = false, diff --git a/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua index f378285c..80918182 100644 --- a/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua @@ -2,7 +2,7 @@ local i18n = ECSLoader:ImportModule("i18n") local rangedConfigTranslations = { - ["Show ranged stats"] = { + ["Show ranged stats."] = { ["enUS"] = true, ["deDE"] = "Fernkampfwerte anzeigen", ["frFR"] = "Afficher à distance", @@ -21,7 +21,7 @@ local rangedConfigTranslations = { ["esES"] = "Muestra/oculta todas estadísticas a distancia", ["esMX"] = "Muestra/oculta todas estadísticas a distancia" }, - ["Ranged attack power"] = { + ["Ranged Attack Power"] = { ["enUS"] = true, ["deDE"] = "Fernkampf Angriffskraft", ["frFR"] = "Puissance d'attaque à distance", @@ -41,7 +41,7 @@ local rangedConfigTranslations = { ["esMX"] = "Muestra/oculta el valor de poder de ataque a distancia", ["ptBR"] = "Mostra/oculta o valor de poder de ataque de longo alcance" }, - ["Ranged crit."] = { + ["Ranged Crit."] = { ["enUS"] = true, ["deDE"] = "Fernkampf Kritisch", ["frFR"] = "Critique à distance", @@ -91,7 +91,7 @@ local rangedConfigTranslations = { ["esMX"] = "Muestra/oculta la velocidad de ataque a distancia", ["ptBR"] = "Mostra/oculta a velocidade de ataque de longo alcance" }, - ["Ranged hit"] = { + ["Ranged Hit"] = { ["enUS"] = true, ["deDE"] = "Fernkampf Trefferwertung", ["frFR"] = "Toucher à distance", @@ -101,7 +101,7 @@ local rangedConfigTranslations = { ["esMX"] = "Probabilidad de golpear", ["ptBR"] = "Chance de acerto" }, - ["Ranged hit values"] = { + ["Ranged Hit Values"] = { ["enUS"] = true, ["deDE"] = "Fernkampf Trefferwertung", ["frFR"] = "Valeurs de toucher à distance", @@ -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"] = false, ["frFR"] = false, diff --git a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua index 0f235cfb..136e9dcf 100644 --- a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua @@ -2,7 +2,7 @@ local i18n = ECSLoader:ImportModule("i18n") local spellConfigTranslations = { - ["Show spell stats"] = { + ["Show spell stats."] = { ["enUS"] = true, ["deDE"] = "Zauberwerte anzeigen", ["frFR"] = "Afficher sorts", @@ -22,7 +22,7 @@ local spellConfigTranslations = { ["esMX"] = "Muestra/oculta todas estadísticas de hechizos", ["ptBR"] = "Mostra/oculta todas as estatísticas de feitiços" }, - ["Spell crit."] = { + ["Spell Crit."] = { ["enUS"] = true, ["deDE"] = "Zauber Kritisch", ["frFR"] = "Critique des sorts", @@ -42,7 +42,7 @@ local spellConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de asestar un golpe crítico con hechizos", ["ptBR"] = "Mostra/oculta a chance de realizar acertos críticos com feitiços" }, - ["Spell penetration"] = { + ["Spell Penetration"] = { ["enUS"] = true, ["deDE"] = "Zauberdurchschlagskraft", ["frFR"] = "Pénétration des sorts", @@ -82,7 +82,7 @@ local spellConfigTranslations = { ["esMX"] = "Muestra/oculta el bonus de celeridad con hechizos", ["ptBR"] = "Mostra/oculta o bônus de de aceleração de feitiço" }, - ["Spell hit values"] = { + ["Spell Hit Values"] = { ["enUS"] = true, ["deDE"] = "Zauber Trefferwertung", ["frFR"] = "Toucher des sorts", @@ -132,7 +132,7 @@ local spellConfigTranslations = { ["esMX"] = "Muestra/oculta la probabilidad de fallo con hechizos contra jefes (nivel +3)", ["ptBR"] = "Mostra/oculta a chance de erro de feitiço contra inimigos chefes (nível +3)" }, - ["Spell power"] = { + ["Spell Power"] = { ["enUS"] = true, ["deDE"] = "Zauberkraft", ["frFR"] = "Puissance des sorts", @@ -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. values"] = { + ["Spell Crit. Values"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, diff --git a/Modules/i18n/translations/ConfigTranslations/SpellSchoolsConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/SpellSchoolsConfigTranslations.lua index 0eb920cf..55c4a28c 100644 --- a/Modules/i18n/translations/ConfigTranslations/SpellSchoolsConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/SpellSchoolsConfigTranslations.lua @@ -2,7 +2,7 @@ local i18n = ECSLoader:ImportModule("i18n") local spellSchoolsConfigTranslations = { - ["Spell schools"] = { + ["Spell Schools"] = { ["enUS"] = true, ["deDE"] = "Zauber Schulen", ["frFR"] = "Écoles de magie", diff --git a/Modules/i18n/translations/StatTranslations.lua b/Modules/i18n/translations/StatTranslations.lua index c5b0b200..c303314f 100644 --- a/Modules/i18n/translations/StatTranslations.lua +++ b/Modules/i18n/translations/StatTranslations.lua @@ -12,7 +12,7 @@ local statTranslations = { ["esMX"] = true, ["ptBR"] = "Geral" }, - ["Movement speed"] = { + ["Movement Speed"] = { ["enUS"] = true, ["deDE"] = "Geschwindigkeit", ["frFR"] = "Vitesse de déplacement", @@ -32,7 +32,7 @@ local statTranslations = { ["esMX"] = "Cuerpo a cuerpo", ["ptBR"] = "Corpo a corpo" }, - ["Attack power"] = { + ["Attack Power"] = { ["enUS"] = true, ["deDE"] = "Angriffskraft", ["frFR"] = "Puissance d'attaque", @@ -42,7 +42,7 @@ local statTranslations = { ["esMX"] = "Poder de ataque", ["ptBR"] = "Poder de ataque" }, - ["Melee crit. rating"] = { + ["Melee Crit. Rating"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -52,7 +52,7 @@ local statTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Crit. rating"] = { + ["Crit. Rating"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -72,7 +72,7 @@ local statTranslations = { ["esMX"] = "Probabilidad de golpe crítico", ["ptBR"] = "Chance de acerto crítico" }, - ["Armor pen."] = { + ["Armor Pen."] = { ["enUS"] = true, ["deDE"] = "Rüstungsdurchschlagskraft", ["frFR"] = "Pénétration d'armure", @@ -82,7 +82,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", @@ -102,7 +102,7 @@ local statTranslations = { ["esMX"] = "Pericia", ["ptBR"] = "Aptidão" }, - ["Expertise rating"] = { + ["Expertise Rating"] = { ["enUS"] = true, ["deDE"] = "Waffenkundewertung", ["frFR"] = "Score d'expertise", @@ -162,7 +162,7 @@ local statTranslations = { ["esMX"] = "Fallo (Niv. + 3)", ["ptBR"] = "Erro (Nív. + 3)", }, - ["Glancing blow"] = { + ["Glancing Blow"] = { ["enUS"] = true, ["deDE"] = "Streifschlag", ["frFR"] = "Coup d'éraflure", @@ -212,7 +212,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", @@ -222,7 +222,7 @@ local statTranslations = { ["esMX"] = "Índice de celeridad", ["ptBR"] = "Taxa de aceleração" }, - ["Haste bonus"] = { + ["Haste Bonus"] = { ["enUS"] = true, ["deDE"] = "Tempobonus", ["frFR"] = "Bonus de hâte", @@ -232,7 +232,7 @@ local statTranslations = { ["esMX"] = "Bonus de celeridad", ["ptBR"] = "Bônus de aceleração" }, - ["Attack speed"] = { + ["Attack Speed"] = { ["enUS"] = true, ["deDE"] = "Angriffstempo", ["frFR"] = "Vitesse d'attaque", @@ -242,7 +242,7 @@ local statTranslations = { ["esMX"] = "Velocidad de ataque", ["ptBR"] = "Velocidade de ataque" }, - ["Main hand"] = { + ["Main Hand"] = { ["enUS"] = true, ["deDE"] = "Waffenhand", ["frFR"] = "Main droite", @@ -252,7 +252,7 @@ local statTranslations = { ["esMX"] = "Mano derecha", ["ptBR"] = "Mão principal" }, - ["Off hand"] = { + ["Off Hand"] = { ["enUS"] = true, ["deDE"] = "Schildhand", ["frFR"] = "Main gauche", @@ -272,7 +272,7 @@ local statTranslations = { ["esMX"] = "A distancia", ["ptBR"] = "Longo alcance" }, - ["Ranged crit. rating"] = { + ["Ranged Crit. Rating"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -312,7 +312,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", @@ -332,7 +332,7 @@ local statTranslations = { ["esMX"] = "Defensa", ["ptBR"] = "Defesa" }, - ["Parry rating"] = { + ["Parry Rating"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -342,7 +342,7 @@ local statTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Dodge rating"] = { + ["Dodge Rating"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -362,7 +362,7 @@ local statTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Parry chance"] = { + ["Parry Chance"] = { ["enUS"] = true, ["deDE"] = "Parrierchance", ["frFR"] = "Chances de parer", @@ -372,7 +372,7 @@ local statTranslations = { ["esMX"] = "Probabilidad de parar", ["ptBR"] = "Chance de aparar" }, - ["Dodge chance"] = { + ["Dodge Chance"] = { ["enUS"] = true, ["deDE"] = "Ausweichchance", ["frFR"] = "Chances d'esquiver", @@ -382,7 +382,7 @@ local statTranslations = { ["esMX"] = "Probabilidad de esquivar", ["ptBR"] = "Chance de esquivar" }, - ["Resilience rating"] = { + ["Resilience Rating"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -402,7 +402,7 @@ local statTranslations = { ["esMX"] = "Temple", ["ptBR"] = "Resiliência" }, - ["Crit. reduction"] = { + ["Crit. Reduction"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -482,7 +482,7 @@ local statTranslations = { ["esMX"] = "Hechizo", ["ptBR"] = "Feitiço" }, - ["Spell crit. rating"] = { + ["Spell Crit. Rating"] = { ["enUS"] = true, ["deDE"] = false, ["frFR"] = false, @@ -502,7 +502,7 @@ local statTranslations = { ["esMX"] = "Penetración", ["ptBR"] = "Penetração" }, - ["Healing power"] = { + ["Healing Power"] = { ["enUS"] = true, ["deDE"] = "Heilungskraft", ["frFR"] = "Pouvoir de guérison", From 434a77f34c7eabc1503a1f6833799da0fa198089 Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Mon, 16 Mar 2026 00:45:46 +0100 Subject: [PATCH 23/23] partial revert --- Modules/Config/Config.lua | 4 +-- Modules/Config/GeneralSection.lua | 4 +-- Modules/Config/ManaSection.lua | 2 +- Modules/Config/MeleeSection.lua | 2 +- Modules/Config/RangeSection.lua | 2 +- Modules/Config/SpellSection.lua | 2 +- .../ConfigTranslations/ConfigTranslations.lua | 18 ++++++------ .../DefenseConfigTranslations.lua | 14 +++++----- .../GeneralConfigTranslations.lua | 28 +++++++++---------- .../ManaConfigTranslations.lua | 12 ++++---- .../MeleeConfigTranslations.lua | 14 +++++----- .../RangedConfigTranslations.lua | 4 +-- .../SpellConfigTranslations.lua | 2 +- .../i18n/translations/StatTranslations.lua | 2 +- 14 files changed, 55 insertions(+), 55 deletions(-) diff --git a/Modules/Config/Config.lua b/Modules/Config/Config.lua index 1b71334d..e68a9439 100755 --- a/Modules/Config/Config.lua +++ b/Modules/Config/Config.lua @@ -76,7 +76,7 @@ _GeneralTab = function() addColorsToStatTexts = { type = "toggle", order = 2, - name = function() return i18n("Colorize stats.") end, + name = function() return i18n("Colorize stats") end, desc = function() return i18n("Adds colors to the stats overview.") end, width = "full", get = function () return ExtendedCharacterStats.general.addColorsToStatTexts; end, @@ -111,7 +111,7 @@ _GeneralTab = function() showQualityColors = { type = "toggle", order = 3, - name = function() return i18n("Show item quality colors.") end, + name = function() return i18n("Show item quality colors") end, desc = function() return i18n("Shows/Hides the colored frames around equipped items.") end, width = "full", get = function () return ExtendedCharacterStats.general.showQualityColors; end, diff --git a/Modules/Config/GeneralSection.lua b/Modules/Config/GeneralSection.lua index b1c157d1..d0354e82 100644 --- a/Modules/Config/GeneralSection.lua +++ b/Modules/Config/GeneralSection.lua @@ -18,7 +18,7 @@ function _Config:LoadGeneralSection() showGeneralStats = { type = "toggle", order = 0, - name = function() return i18n("Show general stats.") end, + name = function() return i18n("Show general stats") end, desc = function() return i18n("Shows/Hides all general stats.") end, width = 1.5, get = function () return ExtendedCharacterStats.profile.general.display; end, @@ -30,7 +30,7 @@ function _Config:LoadGeneralSection() movementSpeed = { type = "toggle", order = 1, - name = function() return i18n("Show movement speed.") end, + name = function() return i18n("Show movement speed") end, desc = function() return i18n("Shows/Hides the movement speed value.") end, width = 1.5, disabled = function() return (not ExtendedCharacterStats.profile.general.display); end, diff --git a/Modules/Config/ManaSection.lua b/Modules/Config/ManaSection.lua index 20f7df4c..8931aec3 100755 --- a/Modules/Config/ManaSection.lua +++ b/Modules/Config/ManaSection.lua @@ -19,7 +19,7 @@ function _Config:LoadManaSection() showManaStats = { type = "toggle", order = 0, - name = function() return i18n("Show mana stats.") end, + name = function() return i18n("Show mana stats") end, desc = function() return i18n("Shows/Hides all mana stats.") end, width = 1.5, get = function () return ExtendedCharacterStats.profile.regen.display; end, diff --git a/Modules/Config/MeleeSection.lua b/Modules/Config/MeleeSection.lua index 054d18f7..6062d518 100755 --- a/Modules/Config/MeleeSection.lua +++ b/Modules/Config/MeleeSection.lua @@ -18,7 +18,7 @@ function _Config:LoadMeleeSection() showMeleeStats = { type = "toggle", order = 0, - name = function() return i18n("Show melee stats.") end, + name = function() return i18n("Show melee stats") end, desc = function() return i18n("Shows/Hides all melee stats.") end, width = 1.5, get = function () return ExtendedCharacterStats.profile.melee.display; end, diff --git a/Modules/Config/RangeSection.lua b/Modules/Config/RangeSection.lua index 6bca9e08..ec7f9177 100755 --- a/Modules/Config/RangeSection.lua +++ b/Modules/Config/RangeSection.lua @@ -19,7 +19,7 @@ function _Config:LoadRangeSection() showRangeStats = { type = "toggle", order = 0, - name = function() return i18n("Show ranged stats.") end, + name = function() return i18n("Show ranged stats") end, desc = function() return i18n("Shows/Hides all ranged stats.") end, width = 1.5, get = function () return ExtendedCharacterStats.profile.ranged.display; end, diff --git a/Modules/Config/SpellSection.lua b/Modules/Config/SpellSection.lua index 379341a8..85cc9a02 100755 --- a/Modules/Config/SpellSection.lua +++ b/Modules/Config/SpellSection.lua @@ -18,7 +18,7 @@ function _Config:LoadSpellSection() showSpellStats = { type = "toggle", order = 0, - name = function() return i18n("Show spell stats.") end, + name = function() return i18n("Show spell stats") end, desc = function() return i18n("Shows/Hides all spell stats.") end, width = 1.5, get = function () return ExtendedCharacterStats.profile.spell.display; end, diff --git a/Modules/i18n/translations/ConfigTranslations/ConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/ConfigTranslations.lua index 48067c58..f138742f 100644 --- a/Modules/i18n/translations/ConfigTranslations/ConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/ConfigTranslations.lua @@ -62,15 +62,15 @@ local configTranslations = { ["esMX"] = "Oculta la ventana de estadísticas cuando abriendo la información del personaje", ["ptBR"] = "Oculta as janelas de estatísticas ao abrir as informações do personagem" }, - ["Colorize stats."] = { + ["Colorize stats"] = { ["enUS"] = true, - ["deDE"] = "Werte färben.", - ["frFR"] = "Coloriser les statistiques.", + ["deDE"] = "Werte färben", + ["frFR"] = "Coloriser les statistiques", ["zhCN"] = "染色统计信息", - ["ruRU"] = "Окрашивание характеристик.", - ["esES"] = "Colorear estadísticas.", - ["esMX"] = "Colorear estadísticas.", - ["ptBR"] = "Colorir estatísticas." + ["ruRU"] = "Окрашивание характеристик", + ["esES"] = "Colorear estadísticas", + ["esMX"] = "Colorear estadísticas", + ["ptBR"] = "Colorir estatísticas" }, ["Adds colors to the stats overview."] = { ["enUS"] = true, @@ -122,7 +122,7 @@ local configTranslations = { ["esMX"] = "Valores de estadísticas", ["ptBR"] = "Valores das estatísticas" }, - ["Show item quality colors."] = { + ["Show item quality colors"] = { ["enUS"] = true, ["deDE"] = "Zeige Item Qualitätsfarben", ["frFR"] = "Affiche la couleur de rareté des objets", @@ -192,7 +192,7 @@ local configTranslations = { ["esMX"] = "Tamaño de fuente de estadística", ["ptBR"] = "Tamanho da fonte das estatísticas" }, - ["Changes the font size of the stat lines (e.g. Crit.)."] = { + ["Changes the font size of the stat lines (e.g. Crit.)"] = { ["enUS"] = true, ["deDE"] = "Ändert die Schriftgröße der Werte (z.B. Kritische Chance)", ["frFR"] = "Modifie la taille de la police des statistiques (ex. Critique)", diff --git a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua index 0fee1a1c..e11e9018 100644 --- a/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/DefenseConfigTranslations.lua @@ -52,15 +52,15 @@ local defenseConfigTranslations = { ["esMX"] = false, ["ptBR"] = false }, - ["Show defense stats."] = { + ["Show defense stats"] = { ["enUS"] = true, - ["deDE"] = "Verteidigungswerte anzeigen.", - ["frFR"] = "Afficher défense.", + ["deDE"] = "Verteidigungswerte anzeigen", + ["frFR"] = "Afficher défense", ["zhCN"] = "显示防御属性", - ["ruRU"] = "Защита.", - ["esES"] = "Mostrar defensa.", - ["esMX"] = "Mostrar defensa.", - ["ptBR"] = "Mostrar defesa." + ["ruRU"] = "Защита", + ["esES"] = "Mostrar defensa", + ["esMX"] = "Mostrar defensa", + ["ptBR"] = "Mostrar defesa" }, ["Shows/Hides all defense stats."] = { ["enUS"] = true, diff --git a/Modules/i18n/translations/ConfigTranslations/GeneralConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/GeneralConfigTranslations.lua index 43b2a729..fdb9a963 100644 --- a/Modules/i18n/translations/ConfigTranslations/GeneralConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/GeneralConfigTranslations.lua @@ -2,15 +2,15 @@ local i18n = ECSLoader:ImportModule("i18n") local generalConfigTranslations = { - ["Show general stats."] = { + ["Show general stats"] = { ["enUS"] = true, - ["deDE"] = "Allgemeine Werte anzeigen.", - ["frFR"] = "Afficher les statistiques.", + ["deDE"] = "Allgemeine Werte anzeigen", + ["frFR"] = "Afficher les statistiques", ["zhCN"] = "显示常规属性信息", - ["ruRU"] = "Основные характеристики.", - ["esES"] = "Mostrar estadísticas.", - ["esMX"] = "Mostrar estadísticas.", - ["ptBR"] = "Mostrar estatísticas." + ["ruRU"] = "Основные характеристики", + ["esES"] = "Mostrar estadísticas", + ["esMX"] = "Mostrar estadísticas", + ["ptBR"] = "Mostrar estatísticas" }, ["Shows/Hides all general stats."] = { ["enUS"] = true, @@ -22,15 +22,15 @@ local generalConfigTranslations = { ["esMX"] = "Muestra/oculta todas estadísticas generales", ["ptBR"] = "Mostra/oculta todas as estatísticas gerais" }, - ["Show movement speed."] = { + ["Show movement speed"] = { ["enUS"] = true, - ["deDE"] = "Bewegungsgeschwindigkeit anzeigen.", - ["frFR"] = "Afficher la vitesse de déplacement.", + ["deDE"] = "Bewegungsgeschwindigkeit anzeigen", + ["frFR"] = "Afficher la vitesse de déplacement", ["zhCN"] = "显示移动速度", - ["ruRU"] = "Скорость движения.", - ["esES"] = "Mostrar velocidad de movimiento.", - ["esMX"] = "Mostrar velocidad de movimiento.", - ["ptBR"] = "Mostrar velocidade de movimento." + ["ruRU"] = "Скорость движения", + ["esES"] = "Mostrar velocidad de movimiento", + ["esMX"] = "Mostrar velocidad de movimiento", + ["ptBR"] = "Mostrar velocidade de movimento" }, ["Shows/Hides the movement speed value."] = { ["enUS"] = true, diff --git a/Modules/i18n/translations/ConfigTranslations/ManaConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/ManaConfigTranslations.lua index 23e3cfc5..8a9db4bc 100644 --- a/Modules/i18n/translations/ConfigTranslations/ManaConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/ManaConfigTranslations.lua @@ -2,15 +2,15 @@ local i18n = ECSLoader:ImportModule("i18n") local manaConfigTranslations = { - ["Show mana stats."] = { + ["Show mana stats"] = { ["enUS"] = true, - ["deDE"] = "Manawerte anzeigen.", - ["frFR"] = "Afficher mana.", + ["deDE"] = "Manawerte anzeigen", + ["frFR"] = "Afficher mana", ["zhCN"] = "显示法力回复", ["ruRU"] = "Мана", - ["esES"] = "Mostrar maná.", - ["esMX"] = "Mostrar maná.", - ["ptBR"] = "Mostrar mana." + ["esES"] = "Mostrar maná", + ["esMX"] = "Mostrar maná", + ["ptBR"] = "Mostrar mana" }, ["Shows/Hides all mana stats."] = { ["enUS"] = true, diff --git a/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua index 41087be0..9a17214f 100644 --- a/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/MeleeConfigTranslations.lua @@ -2,15 +2,15 @@ local i18n = ECSLoader:ImportModule("i18n") local meleeConfigTranslations = { - ["Show melee stats."] = { + ["Show melee stats"] = { ["enUS"] = true, - ["deDE"] = "Nahkampfwerte anzeigen.", - ["frFR"] = "Afficher mêlée.", + ["deDE"] = "Nahkampfwerte anzeigen", + ["frFR"] = "Afficher mêlée", ["zhCN"] = "显示近战属性", - ["ruRU"] = "Ближний бой.", - ["esES"] = "Mostrar cuerpo a cuerpo.", - ["esMX"] = "Mostrar cuerpo a cuerpo.", - ["ptBR"] = "Mostrar corpo a corpo." + ["ruRU"] = "Ближний бой", + ["esES"] = "Mostrar cuerpo a cuerpo", + ["esMX"] = "Mostrar cuerpo a cuerpo", + ["ptBR"] = "Mostrar corpo a corpo" }, ["Shows/Hides all melee stats."] = { ["enUS"] = true, diff --git a/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua index 80918182..36f0e4dc 100644 --- a/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/RangedConfigTranslations.lua @@ -2,7 +2,7 @@ local i18n = ECSLoader:ImportModule("i18n") local rangedConfigTranslations = { - ["Show ranged stats."] = { + ["Show ranged stats"] = { ["enUS"] = true, ["deDE"] = "Fernkampfwerte anzeigen", ["frFR"] = "Afficher à distance", @@ -41,7 +41,7 @@ local rangedConfigTranslations = { ["esMX"] = "Muestra/oculta el valor de poder de ataque a distancia", ["ptBR"] = "Mostra/oculta o valor de poder de ataque de longo alcance" }, - ["Ranged Crit."] = { + ["Ranged Crit"] = { ["enUS"] = true, ["deDE"] = "Fernkampf Kritisch", ["frFR"] = "Critique à distance", diff --git a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua index 136e9dcf..d5124e9a 100644 --- a/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua +++ b/Modules/i18n/translations/ConfigTranslations/SpellConfigTranslations.lua @@ -2,7 +2,7 @@ local i18n = ECSLoader:ImportModule("i18n") local spellConfigTranslations = { - ["Show spell stats."] = { + ["Show spell stats"] = { ["enUS"] = true, ["deDE"] = "Zauberwerte anzeigen", ["frFR"] = "Afficher sorts", diff --git a/Modules/i18n/translations/StatTranslations.lua b/Modules/i18n/translations/StatTranslations.lua index c303314f..c52c20b3 100644 --- a/Modules/i18n/translations/StatTranslations.lua +++ b/Modules/i18n/translations/StatTranslations.lua @@ -62,7 +62,7 @@ local statTranslations = { ["esMX"] = false, ["ptBR"] = false, }, - ["Crit. chance"] = { + ["Crit. Chance"] = { ["enUS"] = true, ["deDE"] = "Kritische Chance", ["frFR"] = "Chances de critique",