From 46f0d69e1a8200fea3c7cf05592556c6f918b1b5 Mon Sep 17 00:00:00 2001 From: Charles A Edwards Date: Sun, 14 Feb 2016 08:02:13 +0000 Subject: [PATCH] (from cab's repo) Improved UpdateSpeed Improved UpdateSpeed Author: probably Olion, but not certain. --- src/game/Object/Pet.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/game/Object/Pet.cpp b/src/game/Object/Pet.cpp index 5e5ff13d..84e5f9bd 100644 --- a/src/game/Object/Pet.cpp +++ b/src/game/Object/Pet.cpp @@ -2074,8 +2074,17 @@ void Pet::UpdateSpeed(UnitMoveType mtype, bool forced, float ratio) break; case MOVE_RUN: { - main_speed_mod = GetMaxPositiveAuraModifier(SPELL_AURA_MOD_INCREASE_SPEED); - stack_bonus = GetTotalAuraMultiplier(SPELL_AURA_MOD_SPEED_ALWAYS); + if (!m_attacking && owner->HasAura(19596)) // Bestial Swiftness: prevent while following + { + AuraList const& auras = GetAurasByType(SPELL_AURA_MOD_INCREASE_SPEED); + for (AuraList::const_iterator it = auras.begin(); it != auras.end(); ++it) + if ((*it)->GetId() != 19582) // exclude the aura influenced by Bestial Swiftness + main_speed_mod = std::max((*it)->GetBasePoints(), main_speed_mod); + } + else + main_speed_mod = GetMaxPositiveAuraModifier(SPELL_AURA_MOD_INCREASE_SPEED); + + stack_bonus = GetTotalAuraMultiplier(SPELL_AURA_MOD_SPEED_ALWAYS); non_stack_bonus = (100.0f + GetMaxPositiveAuraModifier(SPELL_AURA_MOD_SPEED_NOT_STACK)) / 100.0f; break; }