From 24b17b3a9833228436e19caa50518a3c24c1b41c Mon Sep 17 00:00:00 2001 From: Casey Raethke Date: Thu, 5 Dec 2024 16:07:53 -0600 Subject: [PATCH] Add new mana regen Stats and StatMod relationships --- RatingBuster.lua | 123 ++++++++++++++++++++++--------- libs/StatLogic/Cata_Logic.lua | 50 ++++++++----- libs/StatLogic/Global_Logic.lua | 5 ++ libs/StatLogic/StatLogic.lua | 50 +++++++++---- libs/StatLogic/Stats.lua | 2 + libs/StatLogic/TBC_Logic.lua | 54 ++++++++------ libs/StatLogic/Vanilla_Logic.lua | 46 +++++++----- libs/StatLogic/Wrath_Logic.lua | 71 +++++++++--------- 8 files changed, 259 insertions(+), 142 deletions(-) diff --git a/RatingBuster.lua b/RatingBuster.lua index a48e20c..26d26b8 100644 --- a/RatingBuster.lua +++ b/RatingBuster.lua @@ -2545,18 +2545,13 @@ do local healingPower = statModContext("ADD_HEALING_MOD_INT") self:ProcessStat(StatLogic.Stats.HealingPower, healingPower, infoTable, link, color, statModContext, false, db.profile.showHealingFromInt) - if db.profile.showMP5FromInt then - local effect = value * statModContext("ADD_MANA_REG_MOD_INT") - + value * statModContext("ADD_NORMAL_MANA_REG_MOD_INT") * statModContext("MOD_NORMAL_MANA_REG") * math.min(statModContext("ADD_MANA_REG_MOD_NORMAL_MANA_REG"), 1) - + value * statModContext("ADD_MANA_MOD_INT") * statModContext("MOD_MANA") * statModContext("ADD_MANA_REG_MOD_MANA") -- Replenishment - infoTable[StatLogic.Stats.ManaRegen] = infoTable[StatLogic.Stats.ManaRegen] + effect - end - if db.profile.showMP5NCFromInt then - local effect = value * statModContext("ADD_MANA_REG_MOD_INT") - + value * statModContext("ADD_NORMAL_MANA_REG_MOD_INT") * statModContext("MOD_NORMAL_MANA_REG") - + value * statModContext("ADD_MANA_MOD_INT") * statModContext("MOD_MANA") * statModContext("ADD_MANA_REG_MOD_MANA") -- Replenishment - infoTable[StatLogic.Stats.ManaRegenNotCasting] = infoTable[StatLogic.Stats.ManaRegenNotCasting] + effect - end + local genericManaRegen = value * statModContext("ADD_GENERIC_MANA_REGEN_MOD_INT") + -- TODO: Options key using wrong dest stat + self:ProcessStat(StatLogic.Stats.GenericManaRegen, genericManaRegen, infoTable, link, color, statModContext, false, db.profile.showManaRegenFromInt) + + local normalManaRegen = value * statModContext("ADD_NORMAL_MANA_REGEN_MOD_INT") + -- TODO: Options key using wrong dest stat + self:ProcessStat(StatLogic.Stats.NormalManaRegen, normalManaRegen, infoTable, link, color, statModContext, false, db.profile.showManaRegenFromInt) local rangedAttackPower = value * statModContext("ADD_RANGED_AP_MOD_INT") self:ProcessStat(StatLogic.Stats.RangedAttackPower, rangedAttackPower, infoTable, link, color, statModContext, false, db.profile.showRAPFromInt) @@ -2572,14 +2567,10 @@ do if isBaseStat and mod ~= 1 and db.profile.showModifiedSpirit then infoTable["Decimal"] = value end - if db.profile.showMP5FromSpi then - local effect = value * statModContext("ADD_NORMAL_MANA_REG_MOD_SPI") * statModContext("MOD_NORMAL_MANA_REG") * math.min(statModContext("ADD_MANA_REG_MOD_NORMAL_MANA_REG"), 1) - infoTable[StatLogic.Stats.ManaRegen] = infoTable[StatLogic.Stats.ManaRegen] + effect - end - if db.profile.showMP5NCFromSpi then - local effect = value * statModContext("ADD_NORMAL_MANA_REG_MOD_SPI") * statModContext("MOD_NORMAL_MANA_REG") - infoTable[StatLogic.Stats.ManaRegenNotCasting] = infoTable[StatLogic.Stats.ManaRegenNotCasting] + effect - end + + local normalManaRegen = value * statModContext("ADD_NORMAL_MANA_REGEN_MOD_SPI") + -- TODO: Options key using wrong dest stat + self:ProcessStat(StatLogic.Stats.NormalManaRegen, normalManaRegen, infoTable, link, color, statModContext, false, db.profile.showManaRegenFromSpi) local healthRegenOutOfCombat = value * statModContext("ADD_NORMAL_HEALTH_REG_MOD_SPI") self:ProcessStat(StatLogic.Stats.HealthRegenOutOfCombat, healthRegenOutOfCombat, infoTable, link, color, statModContext, false, db.profile.showHP5NCFromSpi) @@ -2641,6 +2632,49 @@ do local healingPower = value * statModContext("ADD_HEALING_MOD_MANA") -- TODO: Options key using wrong source stat self:ProcessStat(StatLogic.Stats.HealingPower, healingPower, infoTable, link, color, statModContext, false, db.profile.showHealingFromInt) + + local genericManaRegen = value * statModContext("ADD_GENERIC_MANA_REGEN_MOD_MANA") + -- TODO: Options key using wrong dest AND source stats + self:ProcessStat(StatLogic.Stats.GenericManaRegen, genericManaRegen, infoTable, link, color, statModContext, false, db.profile.showManaRegenFromInt) + elseif stat == StatLogic.Stats.NormalManaRegen then + local mod = statModContext("MOD_NORMAL_MANA_REGEN") + value = value * mod + + local manaRegen = value * math.min(statModContext("ADD_MANA_REGEN_MOD_NORMAL_MANA_REGEN"), 1) + -- TODO: Options key using wrong source stat + self:ProcessStat(StatLogic.Stats.ManaRegen, manaRegen, infoTable, link, color, statModContext, false, show and db.profile.showManaRegenFromManaRegen) + + local manaRegenNotCasting = value * statModContext("ADD_MANA_REGEN_NOT_CASTING_MOD_NORMAL_MANA_REGEN") + -- TODO: Options key using wrong source stat + self:ProcessStat(StatLogic.Stats.ManaRegenNotCasting, manaRegenNotCasting, infoTable, link, color, statModContext, false, show and db.profile.showManaRegenNotCastingFromManaRegen) + + local manaRegenOutOfCombat = value * statModContext("ADD_MANA_REGEN_OUT_OF_COMBAT_MOD_NORMAL_MANA_REGEN") + -- TODO: Options key using wrong source stat + self:ProcessStat(StatLogic.Stats.ManaRegenOutOfCombat, manaRegenOutOfCombat, infoTable, link, color, statModContext, false, show and db.profile.showManaRegenOutOfCombatFromManaRegen) + elseif stat == StatLogic.Stats.GenericManaRegen then + local manaRegen = value * statModContext("ADD_MANA_REGEN_MOD_GENERIC_MANA_REGEN") + -- TODO: Options key using wrong source stat + self:ProcessStat(StatLogic.Stats.ManaRegen, manaRegen, infoTable, link, color, statModContext, false, show and db.profile.showManaRegenFromManaRegen) + + local manaRegenNotCasting = value * statModContext("ADD_MANA_REGEN_NOT_CASTING_MOD_GENERIC_MANA_REGEN") + -- TODO: Options key using wrong source stat + self:ProcessStat(StatLogic.Stats.ManaRegenNotCasting, manaRegenNotCasting, infoTable, link, color, statModContext, false, show and db.profile.showManaRegenNotCastingFromManaRegen) + + local manaRegenOutOfCombat = value * statModContext("ADD_MANA_REGEN_OUT_OF_COMBAT_MOD_GENERIC_MANA_REGEN") + -- TODO: Options key using wrong source stat + self:ProcessStat(StatLogic.Stats.ManaRegenOutOfCombat, manaRegenOutOfCombat, infoTable, link, color, statModContext, false, show and db.profile.showManaRegenOutOfCombatFromManaRegen) + elseif stat == StatLogic.Stats.ManaRegen then + if show then + infoTable[stat] = infoTable[stat] + value + end + elseif stat == StatLogic.Stats.ManaRegenNotCasting then + if show then + infoTable[stat] = infoTable[stat] + value + end + elseif stat == StatLogic.Stats.ManaRegenOutOfCombat then + if show then + infoTable[stat] = infoTable[stat] + value + end elseif stat == StatLogic.Stats.SpellCrit then if show then infoTable[stat] = infoTable[stat] + value @@ -3072,30 +3106,47 @@ local summaryCalcData = { + summaryFunc[StatLogic.Stats.Health](sum, statModContext) * statModContext("ADD_NORMAL_HEALTH_REG_MOD_HEALTH") * statModContext("MOD_NORMAL_HEALTH_REG") end, }, - -- Mana Regen - MANA_REG, SPI, INT { - option = "sumMP5", + option = "sumGenericManaRegen", + stat = StatLogic.Stats.GenericManaRegen, + func = function(sum, statModContext) + return sum[StatLogic.Stats.GenericManaRegen] + + sum[StatLogic.Stats.Intellect] * statModContext("ADD_GENERIC_MANA_REGEN_MOD_INT") + + summaryFunc[StatLogic.Stats.Mana](sum, statModContext) * statModContext("ADD_GENERIC_MANA_REGEN_MOD_MANA") + end, + }, + { + option = "sumNormalManaRegen", + stat = StatLogic.Stats.NormalManaRegen, + func = function(sum, statModContext) + return statModContext("MOD_NORMAL_MANA_REGEN") * ( + sum[StatLogic.Stats.Intellect] * statModContext("ADD_NORMAL_MANA_REGEN_MOD_INT") + + sum[StatLogic.Stats.Spirit] * statModContext("ADD_NORMAL_MANA_REGEN_MOD_SPI") + ) + end, + }, + { + option = "sumManaRegen", stat = StatLogic.Stats.ManaRegen, func = function(sum, statModContext) - return sum[StatLogic.Stats.ManaRegen] - + sum[StatLogic.Stats.Intellect] * statModContext("ADD_MANA_REG_MOD_INT") - + math.min(statModContext("ADD_MANA_REG_MOD_NORMAL_MANA_REG"), 1) * statModContext("MOD_NORMAL_MANA_REG") * ( - sum[StatLogic.Stats.Intellect] * statModContext("ADD_NORMAL_MANA_REG_MOD_INT") - + sum[StatLogic.Stats.Spirit] * statModContext("ADD_NORMAL_MANA_REG_MOD_SPI") - ) + summaryFunc[StatLogic.Stats.Mana](sum, statModContext) * statModContext("ADD_MANA_REG_MOD_MANA") + return summaryFunc[StatLogic.Stats.GenericManaRegen](sum, statModContext) * statModContext("ADD_MANA_REGEN_MOD_GENERIC_MANA_REGEN") + + summaryFunc[StatLogic.Stats.NormalManaRegen](sum, statModContext) * math.min(statModContext("ADD_MANA_REGEN_MOD_NORMAL_MANA_REGEN"), 1) end, }, - -- Mana Regen while Not casting - MANA_REG, SPI, INT { - option = "sumMP5NC", + option = "sumManaRegenNotCasting", stat = StatLogic.Stats.ManaRegenNotCasting, func = function(sum, statModContext) - return sum[StatLogic.Stats.ManaRegen] - + sum[StatLogic.Stats.Intellect] * statModContext("ADD_MANA_REG_MOD_INT") - + statModContext("MOD_NORMAL_MANA_REG") * ( - sum[StatLogic.Stats.Intellect] * statModContext("ADD_NORMAL_MANA_REG_MOD_INT") - + sum[StatLogic.Stats.Spirit] * statModContext("ADD_NORMAL_MANA_REG_MOD_SPI") - ) + summaryFunc[StatLogic.Stats.Mana](sum, statModContext) * statModContext("ADD_MANA_REG_MOD_MANA") + return summaryFunc[StatLogic.Stats.GenericManaRegen](sum, statModContext) * statModContext("ADD_MANA_REGEN_NOT_CASTING_MOD_GENERIC_MANA_REGEN") + + summaryFunc[StatLogic.Stats.NormalManaRegen](sum, statModContext) * statModContext("ADD_MANA_REGEN_NOT_CASTING_MOD_NORMAL_MANA_REGEN") + end, + }, + { + option = "sumManaRegenOutOfCombat", + stat = StatLogic.Stats.ManaRegenOutOfCombat, + func = function(sum, statModContext) + return summaryFunc[StatLogic.Stats.GenericManaRegen](sum, statModContext) * statModContext("ADD_MANA_REGEN_OUT_OF_COMBAT_MOD_GENERIC_MANA_REGEN") + + summaryFunc[StatLogic.Stats.NormalManaRegen](sum, statModContext) * statModContext("ADD_MANA_REGEN_OUT_OF_COMBAT_MOD_NORMAL_MANA_REGEN") end, }, --------------------- diff --git a/libs/StatLogic/Cata_Logic.lua b/libs/StatLogic/Cata_Logic.lua index 4cf47a6..586bf71 100644 --- a/libs/StatLogic/Cata_Logic.lua +++ b/libs/StatLogic/Cata_Logic.lua @@ -959,12 +959,12 @@ if addon.class == "DRUID" then ["value"] = 1, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, @@ -979,7 +979,7 @@ if addon.class == "DRUID" then }, }, }, - ["ADD_MANA_REG_MOD_NORMAL_MANA_REG"] = { + ["ADD_MANA_REGEN_MOD_NORMAL_MANA_REGEN"] = { -- Passive: Meditation { ["value"] = 0.50, @@ -1486,12 +1486,12 @@ elseif addon.class == "MAGE" then ["value"] = 3.4575, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, @@ -1527,7 +1527,7 @@ elseif addon.class == "MAGE" then ["aura"] = 83098, -- ["Improved Mana Gem"], }, }, - ["ADD_MANA_REG_MOD_MANA"] = { + ["ADD_GENERIC_MANA_REGEN_MOD_MANA"] = { -- Buff: Mage Armor { ["value"] = 0.03, @@ -1605,17 +1605,17 @@ elseif addon.class == "PALADIN" then ["value"] = 5.0000, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, }, - ["ADD_MANA_REG_MOD_NORMAL_MANA_REG"] = { + ["ADD_MANA_REGEN_MOD_NORMAL_MANA_REGEN"] = { -- Passive: Meditation { ["value"] = 0.50, @@ -1776,17 +1776,17 @@ elseif addon.class == "PRIEST" then ["value"] = 3.1830, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, }, - ["ADD_MANA_REG_MOD_NORMAL_MANA_REG"] = { + ["ADD_MANA_REGEN_MOD_NORMAL_MANA_REGEN"] = { -- Passive: Meditation (Discipline) { ["value"] = 0.5, @@ -1808,7 +1808,7 @@ elseif addon.class == "PRIEST" then }, }, }, - ["ADD_MANA_REG_MOD_MANA"] = { + ["ADD_GENERIC_MANA_REGEN_MOD_MANA"] = { -- Talent: Dispersion { ["tab"] = 3, @@ -2030,12 +2030,12 @@ elseif addon.class == "SHAMAN" then ["value"] = 1.6750, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, @@ -2050,7 +2050,7 @@ elseif addon.class == "SHAMAN" then }, }, }, - ["ADD_MANA_REG_MOD_NORMAL_MANA_REG"] = { + ["ADD_MANA_REGEN_MOD_NORMAL_MANA_REGEN"] = { -- Passive: Meditation { ["value"] = 0.50, @@ -2170,12 +2170,12 @@ elseif addon.class == "WARLOCK" then ["value"] = 2.0350, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, @@ -2475,7 +2475,7 @@ StatLogic.StatModTable["ALL"] = { ["value"] = 15, }, }, - ["ADD_MANA_REG_MOD_MANA"] = { + ["ADD_GENERIC_MANA_REGEN_MOD_MANA"] = { -- Replenishment - Buff -- 4.0.1: Replenishes 1% of maximum mana per 10 sec. { @@ -2483,6 +2483,18 @@ StatLogic.StatModTable["ALL"] = { ["aura"] = 57669, }, }, + ["ADD_MANA_REGEN_OUT_OF_COMBAT_MOD_NORMAL_MANA_REGEN"] = { + -- Base + { + ["value"] = 1.0, + }, + }, + ["ADD_MANA_REGEN_OUT_OF_COMBAT_MOD_GENERIC_MANA_REGEN"] = { + -- Base + { + ["value"] = 1.0, + }, + }, ["MOD_SPELL_DMG"] = { -- Warlock: Demonic Pact - Buff: 53646 -- 4.0.1: Spell Power increased by 10%. diff --git a/libs/StatLogic/Global_Logic.lua b/libs/StatLogic/Global_Logic.lua index 628d140..7346f30 100644 --- a/libs/StatLogic/Global_Logic.lua +++ b/libs/StatLogic/Global_Logic.lua @@ -41,6 +41,11 @@ StatLogic.StatModTable["GLOBAL"] = { ["level"] = addon.CritPerAgi[addon.class] } }, + ["ADD_MANA_REGEN_MOD_GENERIC_MANA_REGEN"] = { + { + ["value"] = 1, + } + }, ["ADD_SPELL_CRIT_MOD_INT"] = { { ["level"] = conversionFallback(addon.SpellCritPerInt[addon.class], StatLogic.GetSpellCritPerInt), diff --git a/libs/StatLogic/StatLogic.lua b/libs/StatLogic/StatLogic.lua index 19f8aab..0d99731 100644 --- a/libs/StatLogic/StatLogic.lua +++ b/libs/StatLogic/StatLogic.lua @@ -400,7 +400,7 @@ StatLogic.StatModInfo = { initialValue = 1, finalAdjust = 0, }, - ["MOD_NORMAL_MANA_REG"] = { + ["MOD_NORMAL_MANA_REGEN"] = { initialValue = 1, finalAdjust = 0, }, @@ -437,13 +437,45 @@ local addedInfoMods = { mod = "SPI", }, { - add = "NORMAL_MANA_REG", + add = "NORMAL_MANA_REGEN", mod = "INT", }, { - add = "NORMAL_MANA_REG", + add = "NORMAL_MANA_REGEN", mod = "SPI", }, + { + add = "MANA_REGEN", + mod = "NORMAL_MANA_REGEN" + }, + { + add = "MANA_REGEN_NOT_CASTING", + mod = "NORMAL_MANA_REGEN" + }, + { + add = "MANA_REGEN_OUT_OF_COMBAT", + mod = "NORMAL_MANA_REGEN" + }, + { + add = "GENERIC_MANA_REGEN", + mod = "INT", + }, + { + add = "GENERIC_MANA_REGEN", + mod = "MANA", + }, + { + add = "MANA_REGEN", + mod = "GENERIC_MANA_REGEN" + }, + { + add = "MANA_REGEN_NOT_CASTING", + mod = "GENERIC_MANA_REGEN" + }, + { + add = "MANA_REGEN_OUT_OF_COMBAT", + mod = "GENERIC_MANA_REGEN" + }, { add = "AP", mod = "ARMOR", @@ -528,18 +560,6 @@ local addedInfoMods = { add = "MANA", mod = "INT", }, - { - add = "MANA_REG", - mod = "INT", - }, - { - add = "MANA_REG", - mod = "MANA", - }, - { - add = "MANA_REG", - mod = "NORMAL_MANA_REG", - }, { add = "MASTERY_EFFECT", mod = "MASTERY", diff --git a/libs/StatLogic/Stats.lua b/libs/StatLogic/Stats.lua index 9f7e582..2250583 100644 --- a/libs/StatLogic/Stats.lua +++ b/libs/StatLogic/Stats.lua @@ -76,6 +76,8 @@ StatLogic.Stats.MasteryRating = Stat:new() -- Resources StatLogic.Stats.Health = Stat:new() StatLogic.Stats.Mana = Stat:new() +StatLogic.Stats.NormalManaRegen = Stat:new({ show = false }) +StatLogic.Stats.GenericManaRegen = Stat:new({ show = false }) StatLogic.Stats.ManaRegen = Stat:new() StatLogic.Stats.HealthRegen = Stat:new() StatLogic.Stats.ManaRegenNotCasting = Stat:new() diff --git a/libs/StatLogic/TBC_Logic.lua b/libs/StatLogic/TBC_Logic.lua index 1949693..bba5ff8 100644 --- a/libs/StatLogic/TBC_Logic.lua +++ b/libs/StatLogic/TBC_Logic.lua @@ -257,12 +257,12 @@ if addon.class == "DRUID" then ["aura"] = 768, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, @@ -309,7 +309,7 @@ if addon.class == "DRUID" then }, -- Druid: Intensity (Rank 3) - 3,6 -- Allows 10/20/30% of your Mana regeneration to continue while casting and causes your Enrage ability to instantly generate 10 rage. - ["ADD_MANA_REG_MOD_NORMAL_MANA_REG"] = { + ["ADD_MANA_REGEN_MOD_NORMAL_MANA_REGEN"] = { { ["tab"] = 3, ["num"] = 6, @@ -320,7 +320,7 @@ if addon.class == "DRUID" then }, -- Druid: Dreamstate (Rank 3) - 1,17 -- Regenerate mana equal to 4%/7%/10% of your Intellect every 5 sec, even while casting. - ["ADD_MANA_REG_MOD_INT"] = { + ["ADD_GENERIC_MANA_REGEN_MOD_INT"] = { { ["tab"] = 1, ["num"] = 17, @@ -530,12 +530,12 @@ elseif addon.class == "HUNTER" then ["value"] = 1, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, @@ -557,7 +557,7 @@ elseif addon.class == "HUNTER" then -- that margin, it will be less effective. The mana regained never drops -- below 10% of intellect every 5 sec. or goes above 50% of intellect -- every 5 sec. - ["ADD_MANA_REG_MOD_INT"] = { + ["ADD_GENERIC_MANA_REGEN_MOD_INT"] = { { ["value"] = 0.25, ["aura"] = 34074, -- ["Aspect of the Viper"], @@ -712,12 +712,12 @@ elseif addon.class == "MAGE" then ["value"] = 3.4575, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, @@ -742,7 +742,7 @@ elseif addon.class == "MAGE" then }, -- Mage: Arcane Meditation (Rank 3) - 1,12 -- Allows 10/20/30% of your Mana regeneration to continue while casting. - ["ADD_MANA_REG_MOD_NORMAL_MANA_REG"] = { + ["ADD_MANA_REGEN_MOD_NORMAL_MANA_REGEN"] = { { ["tab"] = 1, ["num"] = 12, @@ -792,12 +792,12 @@ elseif addon.class == "PALADIN" then ["value"] = 0.6520, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, @@ -915,12 +915,12 @@ elseif addon.class == "PRIEST" then ["value"] = 3.1830, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, @@ -933,7 +933,7 @@ elseif addon.class == "PRIEST" then }, -- Priest: Meditation (Rank 3) - 1,9 -- Allows 10/20/30% of your Mana regeneration to continue while casting. - ["ADD_MANA_REG_MOD_NORMAL_MANA_REG"] = { + ["ADD_MANA_REGEN_MOD_NORMAL_MANA_REGEN"] = { { ["tab"] = 1, ["num"] = 9, @@ -1178,12 +1178,12 @@ elseif addon.class == "SHAMAN" then ["value"] = 2, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, @@ -1224,7 +1224,7 @@ elseif addon.class == "SHAMAN" then }, -- Shaman: Unrelenting Storm (Rank 5) - 1,14 -- Regenerate mana equal to 2%/4%/6%/8%/10% of your Intellect every 5 sec, even while casting. - ["ADD_MANA_REG_MOD_INT"] = { + ["ADD_GENERIC_MANA_REGEN_MOD_INT"] = { { ["tab"] = 1, ["num"] = 14, @@ -1317,12 +1317,12 @@ elseif addon.class == "WARLOCK" then ["value"] = 2.0350, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, @@ -1796,7 +1796,19 @@ StatLogic.StatModTable["ALL"] = { ["value"] = 0.07, }, }, - ["ADD_MANA_REG_MOD_NORMAL_MANA_REG"] = { + ["ADD_MANA_REGEN_NOT_CASTING_MOD_NORMAL_MANA_REGEN"] = { + -- Base + { + ["value"] = 1.0, + }, + }, + ["ADD_MANA_REGEN_NOT_CASTING_MOD_GENERIC_MANA_REGEN"] = { + -- Base + { + ["value"] = 1.0, + }, + }, + ["ADD_MANA_REGEN_MOD_NORMAL_MANA_REGEN"] = { -- Set: Primal Mooncloth { ["set"] = 554, diff --git a/libs/StatLogic/Vanilla_Logic.lua b/libs/StatLogic/Vanilla_Logic.lua index 0bba41f..eff2058 100644 --- a/libs/StatLogic/Vanilla_Logic.lua +++ b/libs/StatLogic/Vanilla_Logic.lua @@ -213,7 +213,7 @@ if addon.class == "DRUID" then ["aura"] = 768, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, @@ -224,7 +224,7 @@ if addon.class == "DRUID" then ["value"] = 0.0625 * 5, }, }, - ["ADD_MANA_REG_MOD_NORMAL_MANA_REG"] = { + ["ADD_MANA_REGEN_MOD_NORMAL_MANA_REGEN"] = { -- Talent: Reflection { ["tab"] = 3, @@ -374,7 +374,7 @@ elseif addon.class == "HUNTER" then ["aura"] = 409507, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, @@ -385,7 +385,7 @@ elseif addon.class == "HUNTER" then ["value"] = 0.125 * 5, }, }, - ["ADD_MANA_REG_MOD_MANA"] = { + ["ADD_GENERIC_MANA_REGEN_MOD_MANA"] = { -- Buff: Aspect of the Viper { ["value"] = 0.10 * 5/3, @@ -472,7 +472,7 @@ elseif addon.class == "MAGE" then ["value"] = 1, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, @@ -494,7 +494,7 @@ elseif addon.class == "MAGE" then }, }, }, - ["ADD_MANA_REG_MOD_NORMAL_MANA_REG"] = { + ["ADD_MANA_REGEN_MOD_NORMAL_MANA_REGEN"] = { -- Talent: Arcane Meditation { ["tab"] = 1, @@ -530,7 +530,7 @@ elseif addon.class == "MAGE" then ["aura"] = 425124, }, }, - ["MOD_NORMAL_MANA_REG"] = { + ["MOD_NORMAL_MANA_REGEN"] = { -- Arcane Surge { ["known"] = 425124, @@ -569,7 +569,7 @@ elseif addon.class == "PALADIN" then ["value"] = 2, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, @@ -580,7 +580,7 @@ elseif addon.class == "PALADIN" then ["value"] = 0.125 * 5, }, }, - ["ADD_MANA_REG_MOD_MANA"] = { + ["ADD_GENERIC_MANA_REGEN_MOD_MANA"] = { -- Rune: Guarded by the Light { ["known"] = 415059, @@ -756,7 +756,7 @@ elseif addon.class == "PRIEST" then ["value"] = 1, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, @@ -767,7 +767,7 @@ elseif addon.class == "PRIEST" then ["value"] = 0.041667 * 5, }, }, - ["ADD_MANA_REG_MOD_MANA"] = { + ["ADD_GENERIC_MANA_REGEN_MOD_MANA"] = { -- Rune: Dispersion { ["known"] = 425294, @@ -776,7 +776,7 @@ elseif addon.class == "PRIEST" then ["aura"] = 425294, }, }, - ["ADD_MANA_REG_MOD_NORMAL_MANA_REG"] = { + ["ADD_MANA_REGEN_MOD_NORMAL_MANA_REGEN"] = { -- Talent: Meditation { ["tab"] = 1, @@ -973,7 +973,7 @@ elseif addon.class == "SHAMAN" then ["value"] = 2, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, @@ -993,7 +993,7 @@ elseif addon.class == "SHAMAN" then ["aura"] = 454042, }, }, - ["ADD_MANA_REG_MOD_INT"] = { + ["ADD_GENERIC_MANA_REGEN_MOD_INT"] = { -- Rune: Power Surge { ["known"] = 415100, @@ -1065,7 +1065,7 @@ elseif addon.class == "SHAMAN" then ["value"] = 0.15, }, }, - ["ADD_MANA_REG_MOD_MANA"] = { + ["ADD_GENERIC_MANA_REGEN_MOD_MANA"] = { -- Shaman: Water Shield - Rune -- The caster is surrounded by 3 globes of water, granting 1% of your maximum mana per 5 sec. { @@ -1134,7 +1134,7 @@ elseif addon.class == "WARLOCK" then ["value"] = 1, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, @@ -1735,7 +1735,19 @@ StatLogic.StatModTable["ALL"] = { ["rune"] = true, }, }, - ["ADD_MANA_REG_MOD_NORMAL_MANA_REG"] = { + ["ADD_MANA_REGEN_NOT_CASTING_MOD_NORMAL_MANA_REGEN"] = { + -- Base + { + ["value"] = 1.0, + }, + }, + ["ADD_MANA_REGEN_NOT_CASTING_MOD_GENERIC_MANA_REGEN"] = { + -- Base + { + ["value"] = 1.0, + }, + }, + ["ADD_MANA_REGEN_MOD_NORMAL_MANA_REGEN"] = { -- Green Dragon Mail { ["set"] = 490, diff --git a/libs/StatLogic/Wrath_Logic.lua b/libs/StatLogic/Wrath_Logic.lua index 8666c84..bb54370 100644 --- a/libs/StatLogic/Wrath_Logic.lua +++ b/libs/StatLogic/Wrath_Logic.lua @@ -1119,12 +1119,12 @@ if addon.class == "DRUID" then ["aura"] = 768, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, @@ -1192,7 +1192,7 @@ if addon.class == "DRUID" then }, -- Druid: Intensity (Rank 3) - 3,6 -- Allows 17/33/50% of your Mana regeneration to continue while casting and causes your Enrage ability to instantly generate 10 rage. - ["ADD_MANA_REG_MOD_NORMAL_MANA_REG"] = { + ["ADD_MANA_REGEN_MOD_NORMAL_MANA_REGEN"] = { { ["tab"] = 3, ["num"] = 7, @@ -1203,7 +1203,7 @@ if addon.class == "DRUID" then }, -- Druid: Dreamstate (Rank 3) - 1,15 -- Regenerate mana equal to 4%/7%/10% of your Intellect every 5 sec, even while casting. - ["ADD_MANA_REG_MOD_INT"] = { + ["ADD_GENERIC_MANA_REGEN_MOD_INT"] = { { ["tab"] = 1, ["num"] = 15, @@ -1740,17 +1740,17 @@ elseif addon.class == "HUNTER" then ["aura"] = 34501, } }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, }, - ["ADD_MANA_REG_MOD_MANA"] = { + ["ADD_GENERIC_MANA_REGEN_MOD_MANA"] = { -- Buff: Aspect of the Viper { ["aura"] = 34074, @@ -1909,12 +1909,12 @@ elseif addon.class == "MAGE" then ["value"] = 3.6587, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, @@ -1972,7 +1972,7 @@ elseif addon.class == "MAGE" then -- Your Mage Armor spell grants an additional 20% mana regeneration while casting. -- Mage: Pyromaniac (Rank 3) - 2,19 -- Increases chance to critically hit by 1%/2%/3% and allows 17/33/50% of your mana regeneration to continue while casting. - ["ADD_MANA_REG_MOD_NORMAL_MANA_REG"] = { + ["ADD_MANA_REGEN_MOD_NORMAL_MANA_REGEN"] = { { ["tab"] = 1, ["num"] = 13, @@ -2063,12 +2063,12 @@ elseif addon.class == "PALADIN" then ["value"] = 2, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, @@ -2237,17 +2237,17 @@ elseif addon.class == "PRIEST" then ["value"] = 3.4178, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, }, - ["MOD_NORMAL_MANA_REG"] = { + ["MOD_NORMAL_MANA_REGEN"] = { -- Priest: Holy Concentration (Rank 3) - 2,17 -- Your mana regeneration from spirit is increased by 16/32/50% { @@ -2261,7 +2261,7 @@ elseif addon.class == "PRIEST" then }, -- Priest: Meditation (Rank 3) - 1,7 -- Allows 17/33/50% of your Mana regeneration to continue while casting. - ["ADD_MANA_REG_MOD_NORMAL_MANA_REG"] = { + ["ADD_MANA_REGEN_MOD_NORMAL_MANA_REGEN"] = { { ["tab"] = 1, ["num"] = 7, @@ -2288,7 +2288,7 @@ elseif addon.class == "PRIEST" then }, }, }, - ["ADD_MANA_REG_MOD_MANA"] = { + ["ADD_GENERIC_MANA_REGEN_MOD_MANA"] = { -- Talent: Dispersion { ["tab"] = 3, @@ -2529,12 +2529,12 @@ elseif addon.class == "SHAMAN" then ["value"] = 1, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, @@ -2582,7 +2582,7 @@ elseif addon.class == "SHAMAN" then }, -- Shaman: Unrelenting Storm (Rank 3) - 1,13 -- Regenerate mana equal to 4%/8%/12% of your Intellect every 5 sec, even while casting. - ["ADD_MANA_REG_MOD_INT"] = { + ["ADD_GENERIC_MANA_REGEN_MOD_INT"] = { { ["tab"] = 1, ["num"] = 13, @@ -2653,12 +2653,12 @@ elseif addon.class == "WARLOCK" then ["value"] = 2.4211, }, }, - ["ADD_NORMAL_MANA_REG_MOD_SPI"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_SPI"] = { { ["regen"] = NormalManaRegenPerSpi, }, }, - ["ADD_NORMAL_MANA_REG_MOD_INT"] = { + ["ADD_NORMAL_MANA_REGEN_MOD_INT"] = { { ["regen"] = NormalManaRegenPerInt, }, @@ -3096,20 +3096,23 @@ StatLogic.StatModTable["ALL"] = { ["aura"] = 69127, -- ["Chill of the Throne"], }, }, - -- Replenishment - Buff - -- Replenishes 1% of maximum mana per 5 sec. - -- Priest: Vampiric Touch - -- Priest's party or raid members gain 1% of their maximum mana per 5 sec when the priest deals damage from Mind Blast. - -- Paladin: Judgements of the Wise - -- Your damaging Judgement spells have a 100% chance to grant the Replenishment effect to - -- up to 10 party or raid members mana regeneration equal to 1% of their maximum mana per 5 sec for 15 sec - -- Hunter: Hunting Party - -- Your Arcane Shot, Explosive Shot and Steady Shot critical strikes have a 100% chance to - -- grant up to 10 party or raid members mana regeneration equal to 1% of the maximum mana per 5 sec. - ["ADD_MANA_REG_MOD_MANA"] = { + ["ADD_GENERIC_MANA_REGEN_MOD_MANA"] = { + -- Buff: Replenishment { ["value"] = 0.01, - ["aura"] = 57669, -- ["Replenishment"], + ["aura"] = 57669, + }, + }, + ["ADD_MANA_REGEN_NOT_CASTING_MOD_NORMAL_MANA_REGEN"] = { + -- Base + { + ["value"] = 1.0, + }, + }, + ["ADD_MANA_REGEN_NOT_CASTING_MOD_GENERIC_MANA_REGEN"] = { + -- Base + { + ["value"] = 1.0, }, }, -- MetaGem: Eternal Earthsiege Diamond - 41396