diff options
Diffstat (limited to 'src/game/Creature.cpp')
-rw-r--r-- | src/game/Creature.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp index c627deb48e3..7f5af5f354b 100644 --- a/src/game/Creature.cpp +++ b/src/game/Creature.cpp @@ -2190,20 +2190,16 @@ bool Creature::_IsTargetAcceptable(const Unit *target) const const Unit *myVictim = getAttackerForHelper(); const Unit *targetVictim = target->getAttackerForHelper(); - // if I'm already fighting target, the target is acceptable - if (myVictim == target || targetVictim == this) - return true; - - // if I'm hostile towards the target, the target is acceptable - if (!canAttack(target, false)) + // if the target cannot be attacked, the target is not acceptable + if (!canAttack(target, true)) return false; - // if the target does not have a victim, the target is not acceptable - if (!targetVictim) - return false; + // if I'm already fighting target, or I'm hostile towards the target, the target is acceptable + if (myVictim == target || targetVictim == this || IsHostileTo(target)) + return true; // if the target's victim is friendly, and the target is neutral, the target is acceptable - if (IsFriendlyTo(targetVictim) && !IsFriendlyTo(target)) + if (targetVictim && IsFriendlyTo(targetVictim) && !IsFriendlyTo(target)) return true; // if the target's victim is not friendly, or the target is friendly, the target is not acceptable |