diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index feecb2e8f..b93d86a03 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -1889,8 +1889,27 @@ void Player::Regenerate(Powers power) } } break; - case POWER_ENERGY: // Regenerate energy (rogue) - addvalue += 0.01f * m_regenTimer * sWorld->getRate(RATE_POWER_ENERGY); + case POWER_ENERGY: + { + float baseRegenRate = 10.0f * sWorld->getRate(RATE_POWER_ENERGY); + float hasteModifier = 1.0f; + + // Apply Vitality + if (HasAura(61329)) + hasteModifier += 0.25f; + + // Apply Overkill + if (HasAura(58426)) + hasteModifier += 0.30f; + + // Apply Adrenaline Rush + if (HasAura(13750)) + hasteModifier += 1.0f; + + float adjustedRegenRate = baseRegenRate * hasteModifier; + + addvalue += adjustedRegenRate * 0.001f * m_regenTimer; + } break; case POWER_RUNIC_POWER: {