Core/Spells: SPELL_AURA_MOD_POWER_REGEN and SPELL_AURA_MOD_POWER_REGEN_PERCENT will now correctly handle the regeneration modifier update fields for focus and energy power types instead of using the haste_regen field

This commit is contained in:
Ovahlord committed 2021-11-28 16:31:23 +01:00
1 parent a8301ba5f6
commit 31a4dd2929
2 files changed
+11 -6

No files matched your search

+11 -2
View File
@@ -791,8 +791,17 @@ void Player::UpdatePowerRegeneration(Powers powerType)
// Set regen rate in cast state apply only on spirit based regen
int32 modManaRegenInterrupt = GetTotalAuraModifier(SPELL_AURA_MOD_MANA_REGEN_INTERRUPT);
SetStatFloatValue(UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER + powerIndex, base_regen + CalculatePct(spirit_regen, modManaRegenInterrupt));
SetStatFloatValue(UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER + powerIndex, spirit_regen + base_regen);
SetFloatValue(UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER + powerIndex, base_regen + CalculatePct(spirit_regen, modManaRegenInterrupt));
SetFloatValue(UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER + powerIndex, spirit_regen + base_regen);
break;
}
case POWER_FOCUS:
case POWER_ENERGY:
{
// Energy and Focus regeneration is always consistent in and out of combat
float baseRegen = Unit::GetBasePowerRegen(0, powerType, false);
SetFloatValue(UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER + powerIndex, baseRegen * powerRegenModPct - baseRegen + powerRegenMod);
SetFloatValue(UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER + powerIndex, baseRegen * powerRegenModPct - baseRegen + powerRegenMod);
break;
}
case POWER_RUNIC_POWER: