aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Unit
diff options
context:
space:
mode:
authorRushor <Rushor@users.noreply.github.com>2016-04-25 11:46:00 +0200
committerDDuarte <dnpd.dd@gmail.com>2016-04-28 17:20:40 +0100
commit2265e33cc2213f4c7bcead00173b4cd18cb46e5f (patch)
tree88dc495678f0d0e7a17392d9f17ae535eb8ad88b /src/server/game/Entities/Unit
parentd1aa171a7ad89db6283ddd93c29c346dc8373eae (diff)
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)
Diffstat (limited to 'src/server/game/Entities/Unit')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp10
-rw-r--r--src/server/game/Entities/Unit/Unit.h1
2 files changed, 11 insertions, 0 deletions
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);