From 2265e33cc2213f4c7bcead00173b4cd18cb46e5f Mon Sep 17 00:00:00 2001 From: Rushor Date: Mon, 25 Apr 2016 11:46:00 +0200 Subject: Merge pull request #16503 from Rushor/evading [3.3.5][6.x]Core/Unit: Do not remove auras from Pets and Guardians after evading (cherry picked from commit e869ccb29793aa0dd39dc2ecef9f11ab56ba010e) --- src/server/game/Entities/Unit/Unit.cpp | 10 ++++++++++ src/server/game/Entities/Unit/Unit.h | 1 + 2 files changed, 11 insertions(+) (limited to 'src/server/game/Entities/Unit') diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index ed3227f225b..e25d8ebe8e1 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -3951,6 +3951,16 @@ void Unit::RemoveArenaAuras() } } +void Unit::RemoveAurasOnEvade() +{ + if (IsCharmedOwnedByPlayerOrPlayer()) // if it is a player owned creature it should not remove the aura + return; + + // don't remove vehicle auras, passengers aren't supposed to drop off the vehicle + // don't remove clone caster on evade (to be verified) + RemoveAllAurasExceptType(SPELL_AURA_CONTROL_VEHICLE, SPELL_AURA_CLONE_CASTER); +} + void Unit::RemoveAllAurasOnDeath() { // used just after dieing to remove all visible auras diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index d0d824b41c0..2f4926be741 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1821,6 +1821,7 @@ class TC_GAME_API Unit : public WorldObject void RemoveAreaAurasDueToLeaveWorld(); void RemoveAllAuras(); void RemoveArenaAuras(); + void RemoveAurasOnEvade(); void RemoveAllAurasOnDeath(); void RemoveAllAurasRequiringDeadTarget(); void RemoveAllAurasExceptType(AuraType type); -- cgit v1.2.3