aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2015-06-14 16:34:49 +0200
committerDDuarte <dnpd.dd@gmail.com>2015-06-26 03:25:51 +0100
commitd7258abb0e4d9ce89ca06ed0fc34d310a81a3cde (patch)
tree48fe7ac12815b4983526d9efb7d793eb69a8f90b
parentc6d3b0f2505e2bfaed1bd2af81d22640d99cea6e (diff)
Merge pull request #14250 from xjose93/SPELL_AURA_USE_NORMAL_MOVEMENT_SPEED
Core/Unit: Fix snare/daze immunities versus SPELL_AURA_USE_NORMAL_MOVEMENT_SPEED Fix SPELL_AURA_USE_NORMAL_MOVEMENT_SPEED modifying speeds of bosses that are immune to changes of speeds. (cherry picked from commit 81cec13a586c1d7e84d0936b4a385934f5f91ef1)
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index a2e08158a68..e6d69115a13 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -10403,6 +10403,13 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced)
/// @todo possible affect only on MOVE_RUN
if (int32 normalization = GetMaxPositiveAuraModifier(SPELL_AURA_USE_NORMAL_MOVEMENT_SPEED))
{
+ if (Creature* creature = ToCreature())
+ {
+ uint32 immuneMask = creature->GetCreatureTemplate()->MechanicImmuneMask;
+ if (immuneMask & (1 << MECHANIC_SNARE) || immuneMask & (1 << MECHANIC_DAZE))
+ break;
+ }
+
// Use speed from aura
float max_speed = normalization / (IsControlledByPlayer() ? playerBaseMoveSpeed[mtype] : baseMoveSpeed[mtype]);
if (speed > max_speed)