fix(Core/Spell): Implement SPELL_ATTR6_NO_PUSHBACK (#19292)

fix(Core/Spell): ImplementSPELL_ATTR6_NO_PUSHBACK
This commit is contained in:
avarishd
2024-07-17 15:09:34 +03:00
committed by GitHub
parent ca70459f05
commit cf7c015ea4
4 changed files with 14 additions and 2 deletions

View File

@@ -7746,6 +7746,9 @@ void Spell::Delayed() // only called in DealDamage()
if (isDelayableNoMore()) // Spells may only be delayed twice
return;
if (m_spellInfo->HasAttribute(SPELL_ATTR6_NO_PUSHBACK))
return;
// spells not loosing casting time (slam, dynamites, bombs..)
//if (!(m_spellInfo->InterruptFlags & SPELL_INTERRUPT_FLAG_DAMAGE))
// return;
@@ -7785,6 +7788,9 @@ void Spell::DelayedChannel()
if (isDelayableNoMore()) // Spells may only be delayed twice
return;
if (m_spellInfo->HasAttribute(SPELL_ATTR6_NO_PUSHBACK))
return;
//check pushback reduce
// should be affected by modifiers, not take the dbc duration.
int32 duration = ((m_channeledDuration > 0) ? m_channeledDuration : m_spellInfo->GetDuration());

View File

@@ -4815,6 +4815,12 @@ void SpellMgr::LoadSpellInfoCorrections()
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
});
// Shadow Grasp
ApplySpellFix({ 30410 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx6 |= SPELL_ATTR6_NO_PUSHBACK;
});
for (uint32 i = 0; i < GetSpellInfoStoreSize(); ++i)
{
SpellInfo* spellInfo = mSpellInfoMap[i];