diff options
author | megamage <none@none> | 2009-08-23 16:27:00 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-08-23 16:27:00 -0500 |
commit | a6e2196247602eb1ce1dc854dc4afd87c63e8f53 (patch) | |
tree | e06a343d9e1f96484f2f3c802b5a591229d87e27 /src/game/TargetedMovementGenerator.cpp | |
parent | 78a6a04db9f58ef25a908223bc30bd0172fce807 (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.cpp | 21 |
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 { |