aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Movement
diff options
context:
space:
mode:
authorMrSmite <mrsmite@att.net>2012-12-06 09:58:32 -0500
committerMrSmite <mrsmite@att.net>2012-12-07 22:13:57 -0500
commit777b287dff8bce806849a26d59fe40f864c385ed (patch)
tree18a9231bd70d014083309b198b293576a3f63630 /src/server/game/Movement
parentb9442f3773ad8ab43dcc52b649a4f6d7a4869354 (diff)
PetAI - Overhaul / bug fix
* Aggressive pets now use aggro radius check based on level diff of target * Aggro radius limited to max 45 yards (per wowwiki) * Pets no longer "dance" when fighting a creature * Pets returning will defend themselves (if not passive) if owner didn't click "follow" * Pets at stay will properly pick up their owner's attackers that pass within range * Fix "no empty line at end of file" warning in PetAI * Fix typo in GetAggroRange() * Fix spell "Eyes of the Beast" - player can move pet freely * Code style cleanup * Update commit comment Closes #8398, #7455
Diffstat (limited to 'src/server/game/Movement')
-rwxr-xr-xsrc/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
index 7a669642e7e..8712b2cf527 100755
--- a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
@@ -66,7 +66,9 @@ void TargetedMovementGeneratorMedium<T,D>::_setTargetLocation(T &owner)
// We need to subtract GetObjectSize() because it gets added back further down the chain
// and that makes pets too far away. Subtracting it allows pets to properly
// be (GetCombatReach() + i_offset) away.
- if (owner.isPet())
+ // Only applies when i_target is pet's owner otherwise pets and mobs end up
+ // doing a "dance" while fighting
+ if (owner.isPet() && i_target->GetTypeId() == TYPEID_PLAYER)
{
dist = i_target->GetCombatReach();
size = i_target->GetCombatReach() - i_target->GetObjectSize();