diff options
| author | treeston <treeston.mmoc@gmail.com> | 2016-02-03 21:34:17 +0100 |
|---|---|---|
| committer | treeston <treeston.mmoc@gmail.com> | 2016-02-03 21:34:17 +0100 |
| commit | 53d6431c1973ddf912ebf485eeeae7774ce4588e (patch) | |
| tree | 2df8f784d1bc164b6f0b77c41df65161262f7bd7 /src/server/game/Entities/Creature | |
| parent | fe2a0fda4464effeb2fb655da84a0460328b1aeb (diff) | |
Creature/AI: Fix incorrect evade logic (closes #16461)
Diffstat (limited to 'src/server/game/Entities/Creature')
| -rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 73b9e0580cf..e519276f0ef 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2142,6 +2142,11 @@ bool Creature::CanCreatureAttack(Unit const* victim, bool /*force*/) const if (GetMap()->IsDungeon()) return true; + // if the mob is actively being damaged, do not reset due to distance unless it's a world boss + if (!isWorldBoss()) + if (time(NULL) - GetLastDamagedTime() <= MAX_AGGRO_RESET_TIME) + return true; + //Use AttackDistance in distance check if threat radius is lower. This prevents creature bounce in and out of combat every update tick. float dist = std::max(GetAttackDistance(victim), sWorld->getFloatConfig(CONFIG_THREAT_RADIUS)) + m_CombatDistance; |
