diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 11 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.h | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index f4761931c42..a8f015a8749 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -2149,6 +2149,17 @@ void Player::RemoveFromWorld() } } +bool Player::IsImmunedToSpellEffect(SpellInfo const* spellInfo, uint32 index) const +{ + // players are immune to taunt (the aura and the spell effect) + if (spellInfo->Effects[index].IsAura(SPELL_AURA_MOD_TAUNT)) + return true; + if (spellInfo->Effects[index].IsEffect(SPELL_EFFECT_ATTACK_ME)) + return true; + + return Unit::IsImmunedToSpellEffect(spellInfo, index); +} + void Player::RegenerateAll() { //if (m_regenTimer <= 500) diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 7f72bff5211..26944de9770 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1034,6 +1034,8 @@ class Player : public Unit, public GridObject<Player> static bool BuildEnumData(PreparedQueryResult result, WorldPacket* data); + bool IsImmunedToSpellEffect(SpellInfo const* spellInfo, uint32 index) const override; + void SetInWater(bool apply); bool IsInWater() const override { return m_isInWater; } |