Core/Spells: Implemented SPELL_ATTR6_NO_PUSHBACK

This commit is contained in:
Shauren
2022-05-07 00:18:01 +02:00
parent 0710fd0ee0
commit 50eff8c238
2 changed files with 7 additions and 7 deletions

View File

@@ -989,7 +989,7 @@ bool Unit::HasBreakableByDamageCrowdControlAura(Unit* excludeCasterChannel) cons
if (damagetype != NODAMAGE && damagetype != DOT)
{
if (victim != attacker && (!spellProto || !(spellProto->HasAttribute(SPELL_ATTR7_NO_PUSHBACK_ON_DAMAGE) || spellProto->HasAttribute(SPELL_ATTR3_TREAT_AS_PERIODIC))))
if (victim != attacker && (!spellProto || !(spellProto->HasAttribute(SPELL_ATTR6_NO_PUSHBACK) || spellProto->HasAttribute(SPELL_ATTR7_NO_PUSHBACK_ON_DAMAGE) || spellProto->HasAttribute(SPELL_ATTR3_TREAT_AS_PERIODIC))))
{
if (Spell* spell = victim->m_currentSpells[CURRENT_GENERIC_SPELL])
{
@@ -1028,12 +1028,12 @@ bool Unit::HasBreakableByDamageCrowdControlAura(Unit* excludeCasterChannel) cons
else if (isCastDelayed())
spell->Delayed();
}
if (damage && victim->IsPlayer())
if (Spell* spell = victim->m_currentSpells[CURRENT_CHANNELED_SPELL])
if (spell->getState() == SPELL_STATE_CASTING && spell->m_spellInfo->HasChannelInterruptFlag(SpellAuraInterruptFlags::DamageChannelDuration))
spell->DelayedChannel();
}
if (damage && victim->IsPlayer())
if (Spell* spell = victim->m_currentSpells[CURRENT_CHANNELED_SPELL])
if (spell->getState() == SPELL_STATE_CASTING && spell->m_spellInfo->HasChannelInterruptFlag(SpellAuraInterruptFlags::DamageChannelDuration))
spell->DelayedChannel();
}
}

View File

@@ -641,7 +641,7 @@ enum SpellAttr6 : uint32
SPELL_ATTR6_ALLOW_WHILE_RIDING_VEHICLE = 0x00001000, // TITLE Allow While Riding Vehicle
SPELL_ATTR6_IGNORE_PHASE_SHIFT = 0x00002000, // TITLE Ignore Phase Shift
SPELL_ATTR6_AI_PRIMARY_RANGED_ATTACK = 0x00004000, /*NYI*/ // TITLE AI Primary Ranged Attack
SPELL_ATTR6_NO_PUSHBACK = 0x00008000, /*NYI*/ // TITLE No Pushback
SPELL_ATTR6_NO_PUSHBACK = 0x00008000, // TITLE No Pushback
SPELL_ATTR6_NO_JUMP_PATHING = 0x00010000, /*NYI*/ // TITLE No Jump Pathing
SPELL_ATTR6_ALLOW_EQUIP_WHILE_CASTING = 0x00020000, // TITLE Allow Equip While Casting
SPELL_ATTR6_ORIGINATE_FROM_CONTROLLER = 0x00040000, // TITLE Originate From Controller DESCRIPTION Client will prevent casting if not possessed, charmer will be caster for all intents and purposes