aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-03-23 18:01:40 +0100
committerOvahlord <dreadkiller@gmx.de>2025-04-06 19:35:41 +0200
commitd21fb472f0fa29c8d2cda359d6c25983db186dd4 (patch)
treeb8eb8bf317f404d7ddbe093bf9ef3f032a71ace3 /src
parentce106b59f66b22a5d5fc45462466fe91b494db0e (diff)
Core/Auras: Fixed SPELL_ATTR13_PERIODIC_REFRESH_EXTENDS_DURATION
(cherry picked from commit 92773e207c94e355fd37b266a219aad977cce9e2)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/Auras/SpellAuras.cpp3
-rw-r--r--src/server/game/Spells/Spell.cpp6
2 files changed, 6 insertions, 3 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp
index ea99543c16e..5725fce7ed6 100644
--- a/src/server/game/Spells/Auras/SpellAuras.cpp
+++ b/src/server/game/Spells/Auras/SpellAuras.cpp
@@ -968,9 +968,6 @@ void Aura::RefreshTimers(bool resetPeriodicTimer)
{
// Pandemic doesn't reset periodic timer
resetPeriodicTimer = false;
-
- int32 pandemicDuration = CalculatePct(m_maxDuration, 30.f);
- m_maxDuration = std::max(GetDuration(), std::min(pandemicDuration, GetDuration()) + m_maxDuration);
}
RefreshDuration();
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index f0d88451c29..b2142825d9d 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -3267,6 +3267,12 @@ void Spell::DoSpellEffectHit(Unit* unit, SpellEffectInfo const& spellEffectInfo,
if (!hitInfo.AuraDuration)
hitInfo.AuraDuration = int32(origDuration * m_originalCaster->m_unitData->ModCastingSpeed);
}
+
+ if (refresh && m_spellInfo->HasAttribute(SPELL_ATTR13_PERIODIC_REFRESH_EXTENDS_DURATION))
+ {
+ int32 newDuration = hitInfo.AuraDuration + hitInfo.HitAura->GetDuration();
+ hitInfo.AuraDuration = std::min(newDuration, CalculatePct(hitInfo.AuraDuration, 130));
+ }
}
}
else