Core/SmartAI: Implement SMART_TARGET_CLOSEST_ENEMY (25)

Required for upcoming EAI to SAI conversion.

Closes #10482
This commit is contained in:
Discover-
2013-08-07 19:59:06 +01:00
committed by Nay
parent 1e8fd6489d
commit 9d4c2c5b1e
3 changed files with 18 additions and 2 deletions

View File

@@ -1422,7 +1422,8 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
e.GetTargetType() == SMART_TARGET_CREATURE_DISTANCE || e.GetTargetType() == SMART_TARGET_GAMEOBJECT_RANGE ||
e.GetTargetType() == SMART_TARGET_GAMEOBJECT_GUID || e.GetTargetType() == SMART_TARGET_GAMEOBJECT_DISTANCE ||
e.GetTargetType() == SMART_TARGET_CLOSEST_CREATURE || e.GetTargetType() == SMART_TARGET_CLOSEST_GAMEOBJECT ||
e.GetTargetType() == SMART_TARGET_OWNER_OR_SUMMONER || e.GetTargetType() == SMART_TARGET_ACTION_INVOKER)
e.GetTargetType() == SMART_TARGET_OWNER_OR_SUMMONER || e.GetTargetType() == SMART_TARGET_ACTION_INVOKER ||
e.GetTargetType() == SMART_TARGET_CLOSEST_ENEMY)
{
ObjectList* targets = GetTargets(e, unit);
if (!targets)
@@ -2485,6 +2486,14 @@ ObjectList* SmartScript::GetTargets(SmartScriptHolder const& e, Unit* invoker /*
}
break;
}
case SMART_TARGET_CLOSEST_ENEMY:
{
if (me)
if (Unit* target = me->SelectNearestTarget(e.target.closestAttackable.maxDist))
l->push_back(target);
break;
}
case SMART_TARGET_POSITION:
default:
break;