Core/Spells: let all periodic effects roll over their timers on refresh

* renamed SPELL_ATTR0_CU_DONT_RESET_PERIODIC to SPELL_ATTR0_CU_RESET_PERIODIC_TIMER and changed functionality to prevent described behavior from happening
This commit is contained in:
Ovahlord committed 2022-01-12 18:51:21 +01:00
1 parent 1149fbce3d
commit 0aa9129c3b
3 files changed
+2 -12

No files matched your search

+1 -1
View File
@@ -769,7 +769,7 @@ void Aura::RefreshTimers()
{
m_maxDuration = CalcMaxDuration();
bool resetPeriodicTimer = !m_spellInfo->HasAttribute(SPELL_ATTR0_CU_DONT_RESET_PERIODIC);
bool resetPeriodicTimer = m_spellInfo->HasAttribute(SPELL_ATTR0_CU_RESET_PERIODIC_TIMER);
if (!resetPeriodicTimer)
{
int32 minAmplitude = m_maxDuration;
+1 -1
View File
@@ -200,7 +200,7 @@ enum SpellCustomAttributes
SPELL_ATTR0_CU_BINARY_SPELL = 0x00100000,
SPELL_ATTR0_CU_SCHOOLMASK_NORMAL_WITH_MAGIC = 0x00200000,
SPELL_ATTR0_CU_LIQUID_AURA = 0x00400000,
SPELL_ATTR0_CU_DONT_RESET_PERIODIC = 0x00800000,
SPELL_ATTR0_CU_RESET_PERIODIC_TIMER = 0x00800000,
SPELL_ATTR0_CU_NEGATIVE = SPELL_ATTR0_CU_NEGATIVE_EFF0 | SPELL_ATTR0_CU_NEGATIVE_EFF1 | SPELL_ATTR0_CU_NEGATIVE_EFF2
};
-10
View File
@@ -4771,16 +4771,6 @@ void SpellMgr::LoadSpellInfoCorrections()
spellInfo->Effects[EFFECT_0].MaxRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_45_YARDS);
});
// Reverberating Hymn
ApplySpellFix({
75323,
90008
}, [](SpellInfo* spellInfo)
{
// Aura is refreshed at 3 seconds, and the tick should happen at the fourth.
spellInfo->AttributesEx8 |= SPELL_ATTR0_CU_DONT_RESET_PERIODIC;
});
// Destruction Protocoll
ApplySpellFix({ 77437 }, [](SpellInfo* spellInfo)
{