From ecef2642f46d8aa16fbfc8ed92d91f95030614d0 Mon Sep 17 00:00:00 2001 From: maximius Date: Fri, 23 Oct 2009 20:01:15 -0700 Subject: *Use some more standard functions in _IsTargetAcceptable. Should also fix the perma-unattackable boss issue. --HG-- branch : trunk --- src/game/Creature.cpp | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp index c8ff97882d8..c627deb48e3 100644 --- a/src/game/Creature.cpp +++ b/src/game/Creature.cpp @@ -2187,28 +2187,22 @@ bool Creature::_IsTargetAcceptable(const Unit *target) const { assert(target); - // if the target or myself are unattackable, the target is not acceptable - if (!isAttackableByAOE() || !target->isAttackableByAOE()) - return false; - const Unit *myVictim = getAttackerForHelper(); + const Unit *targetVictim = target->getAttackerForHelper(); // if I'm already fighting target, the target is acceptable - if (myVictim == target || target->getVictim() == this) + if (myVictim == target || targetVictim == this) return true; // if I'm hostile towards the target, the target is acceptable - if (IsHostileTo(target)) - return true; - - const Unit *targetVictim = target->getAttackerForHelper(); + if (!canAttack(target, false)) + return false; // if the target does not have a victim, the target is not acceptable if (!targetVictim) return false; // if the target's victim is friendly, and the target is neutral, the target is acceptable - // NOTE: !IsHostileTo(target) is true at this point if (IsFriendlyTo(targetVictim) && !IsFriendlyTo(target)) return true; -- cgit v1.2.3