aboutsummaryrefslogtreecommitdiff
path: root/src/game/TargetedMovementGenerator.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-08-23 16:27:00 -0500
committermegamage <none@none>2009-08-23 16:27:00 -0500
commita6e2196247602eb1ce1dc854dc4afd87c63e8f53 (patch)
treee06a343d9e1f96484f2f3c802b5a591229d87e27 /src/game/TargetedMovementGenerator.cpp
parent78a6a04db9f58ef25a908223bc30bd0172fce807 (diff)
*Better mob ai for quest an end to all things.
--HG-- branch : trunk
Diffstat (limited to 'src/game/TargetedMovementGenerator.cpp')
-rw-r--r--src/game/TargetedMovementGenerator.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/game/TargetedMovementGenerator.cpp b/src/game/TargetedMovementGenerator.cpp
index 231b5a74e24..c5ef0d5be87 100644
--- a/src/game/TargetedMovementGenerator.cpp
+++ b/src/game/TargetedMovementGenerator.cpp
@@ -66,8 +66,21 @@ TargetedMovementGenerator<T>::_setTargetLocation(T &owner)
if(i_destinationHolder.HasArrived())
{
// prevent redundant micro-movement
- if(i_offset ? i_target->IsWithinDistInMap(&owner, i_offset + 1.0f) : i_target->IsWithinMeleeRange(&owner))
- return false;
+ if(!i_offset)
+ {
+ if(i_target->IsWithinMeleeRange(&owner))
+ return false;
+ }
+ else if(!i_angle && !owner.hasUnitState(UNIT_STAT_FOLLOW))
+ {
+ if(i_target->IsWithinDistInMap(&owner, i_offset))
+ return false;
+ }
+ else
+ {
+ if(i_target->IsWithinDistInMap(&owner, i_offset + 1.0f))
+ return false;
+ }
}
else
{
@@ -79,7 +92,7 @@ TargetedMovementGenerator<T>::_setTargetLocation(T &owner)
}
else if(!i_angle && !owner.hasUnitState(UNIT_STAT_FOLLOW))
{
- if(i_target->IsWithinDist(&owner, i_offset * 0.8))
+ if(i_target->IsWithinDist(&owner, i_offset * 0.8f))
stop = true;
}
@@ -105,7 +118,7 @@ TargetedMovementGenerator<T>::_setTargetLocation(T &owner)
else if(!i_angle && !owner.hasUnitState(UNIT_STAT_FOLLOW))
{
// caster chase
- i_target->GetContactPoint(&owner, x, y, z, i_offset * urand(80, 100) * 0.01f);
+ i_target->GetContactPoint(&owner, x, y, z, i_offset * urand(80, 95) * 0.01f);
}
else
{