diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 5eb28396d85..9636ec581e8 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -4321,19 +4321,18 @@ void AuraEffect::HandleModStateImmunityMask(AuraApplication const * aurApp, uint immunity_list.pop_back(); // delete Disarm target->RemoveAurasByType(SPELL_AURA_MOD_ROOT); target->RemoveAurasByType(SPELL_AURA_MOD_DECREASE_SPEED); + // also drop flag + if (Player* player = target->ToPlayer()) + if (Battleground* bg = player->GetBattleground()) + bg->EventPlayerDroppedFlag(player); } if (apply && GetSpellProto()->AttributesEx & SPELL_ATTR_EX_DISPEL_AURAS_ON_IMMUNITY) - { for (std::list <AuraType>::iterator iter = immunity_list.begin(); iter != immunity_list.end(); ++iter) - { target->RemoveAurasByType(*iter); - } - } + for (std::list <AuraType>::iterator iter = immunity_list.begin(); iter != immunity_list.end(); ++iter) - { - target->ApplySpellImmune(GetId(),IMMUNITY_STATE,*iter, apply); - } + target->ApplySpellImmune(GetId(), IMMUNITY_STATE, *iter, apply); } void AuraEffect::HandleModMechanicImmunity(AuraApplication const * aurApp, uint8 mode, bool apply) const |