fix(Core/Spells): Autoshot should not interrupt Volley (#9202)

- Closes #8883
This commit is contained in:
UltraNix
2021-11-23 20:13:06 +01:00
committed by GitHub
parent 53e9759014
commit 647c91605c
3 changed files with 14 additions and 8 deletions

View File

@@ -4679,7 +4679,7 @@ void Unit::RemoveNotOwnSingleTargetAuras()
}
}
void Unit::RemoveAurasWithInterruptFlags(uint32 flag, uint32 except)
void Unit::RemoveAurasWithInterruptFlags(uint32 flag, uint32 except, bool isAutoshot /*= false*/)
{
if (!(m_interruptMask & flag))
return;
@@ -4700,10 +4700,16 @@ void Unit::RemoveAurasWithInterruptFlags(uint32 flag, uint32 except)
// interrupt channeled spell
if (Spell* spell = m_currentSpells[CURRENT_CHANNELED_SPELL])
if (spell->getState() == SPELL_STATE_CASTING
&& (spell->m_spellInfo->ChannelInterruptFlags & flag)
&& spell->m_spellInfo->Id != except)
InterruptNonMeleeSpells(false, spell->m_spellInfo->Id);
{
if (spell->getState() == SPELL_STATE_CASTING && (spell->m_spellInfo->ChannelInterruptFlags & flag) && spell->m_spellInfo->Id != except)
{
// Do not interrupt if auto shot
if (!(isAutoshot && spell->m_spellInfo->HasAttribute(SPELL_ATTR2_DO_NOT_RESET_COMBAT_TIMERS)))
{
InterruptNonMeleeSpells(false, spell->m_spellInfo->Id);
}
}
}
UpdateInterruptMask();
}