mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-19 17:05:44 +01:00
Code/Battleground Opening a game object(banner) under absorb effects … (#17459)
* Code/Battleground Opening a game object(banner) under absorb effects in battlegrounds should result an interupt
By zwerg, closes #6222
(cherry picked from commit d34cce1edb)
This commit is contained in:
@@ -651,6 +651,17 @@ uint32 Unit::DealDamage(Unit* victim, uint32 damage, CleanDamage const* cleanDam
|
||||
else
|
||||
victim->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_TAKE_DAMAGE, 0);
|
||||
|
||||
// interrupt spells with SPELL_INTERRUPT_FLAG_ABORT_ON_DMG on absorbed damage (no dots)
|
||||
if (!damage && damagetype != DOT && cleanDamage && cleanDamage->absorbed_damage)
|
||||
if (victim != this && victim->GetTypeId() == TYPEID_PLAYER)
|
||||
if (Spell* spell = victim->m_currentSpells[CURRENT_GENERIC_SPELL])
|
||||
if (spell->getState() == SPELL_STATE_PREPARING)
|
||||
{
|
||||
uint32 interruptFlags = spell->m_spellInfo->InterruptFlags;
|
||||
if ((interruptFlags & SPELL_INTERRUPT_FLAG_ABORT_ON_DMG) != 0)
|
||||
victim->InterruptNonMeleeSpells(false);
|
||||
}
|
||||
|
||||
// We're going to call functions which can modify content of the list during iteration over it's elements
|
||||
// Let's copy the list so we can prevent iterator invalidation
|
||||
AuraEffectList vCopyDamageCopy(victim->GetAuraEffectsByType(SPELL_AURA_SHARE_DAMAGE_PCT));
|
||||
|
||||
Reference in New Issue
Block a user