private uint _FindTargetForDebuff(NWTalent Debuff)
{
int SpellId = Script.GetIdFromTalent(Debuff);
CreatureObject Target = Party.GetFarthest(this, Party.Enemies);
if (Target != null && Script.GetHasSpellEffect(SpellId, Target.ObjectId) == CLRScriptBase.FALSE)
{
foreach (uint Collateral in Script.GetObjectsInShape(CLRScriptBase.SHAPE_SPHERE, CLRScriptBase.RADIUS_SIZE_MEDIUM, Script.GetLocation(Target.ObjectId), false, CLRScriptBase.OBJECT_TYPE_CREATURE, Script.Vector(0.0f, 0.0f, 0.0f)))
{
if (Script.GetIsReactionTypeHostile(Target.ObjectId, ObjectId) != CLRScriptBase.TRUE)
Target = null;
}
if(Target != null)
return Target.ObjectId;
}
Target = Party.GetFarthest(this, Party.EnemySpellcasters);
if (Target != null && Script.GetHasSpellEffect(SpellId, Target.ObjectId) == CLRScriptBase.FALSE)
{
foreach (uint Collateral in Script.GetObjectsInShape(CLRScriptBase.SHAPE_SPHERE, CLRScriptBase.RADIUS_SIZE_MEDIUM, Script.GetLocation(Target.ObjectId), false, CLRScriptBase.OBJECT_TYPE_CREATURE, Script.Vector(0.0f, 0.0f, 0.0f)))
{
if (Script.GetIsReactionTypeHostile(Target.ObjectId, ObjectId) != CLRScriptBase.TRUE)
Target = null;
}
if (Target != null)
return Target.ObjectId;
}
Target = Party.GetFarthest(this, Party.EnemyHealers);
if (Target != null && Script.GetHasSpellEffect(SpellId, Target.ObjectId) == CLRScriptBase.FALSE)
{
foreach (uint Collateral in Script.GetObjectsInShape(CLRScriptBase.SHAPE_SPHERE, CLRScriptBase.RADIUS_SIZE_MEDIUM, Script.GetLocation(Target.ObjectId), false, CLRScriptBase.OBJECT_TYPE_CREATURE, Script.Vector(0.0f, 0.0f, 0.0f)))
{
if (Script.GetIsReactionTypeHostile(Target.ObjectId, ObjectId) != CLRScriptBase.TRUE)
Target = null;
}
if (Target != null)
return Target.ObjectId;
}
Target = Party.GetFarthest(this, Party.EnemySoftTargets);
if (Target != null && Script.GetHasSpellEffect(SpellId, Target.ObjectId) == CLRScriptBase.FALSE)
{
foreach (uint Collateral in Script.GetObjectsInShape(CLRScriptBase.SHAPE_SPHERE, CLRScriptBase.RADIUS_SIZE_MEDIUM, Script.GetLocation(Target.ObjectId), false, CLRScriptBase.OBJECT_TYPE_CREATURE, Script.Vector(0.0f, 0.0f, 0.0f)))
{
if (Script.GetIsReactionTypeHostile(Target.ObjectId, ObjectId) != CLRScriptBase.TRUE)
Target = null;
}
if (Target != null)
return Target.ObjectId;
}
foreach(CreatureObject SpellTarget in Party.EnemyHardTargets)
{
if (Script.GetHasSpellEffect(SpellId, SpellTarget.ObjectId) == CLRScriptBase.FALSE)
{
foreach (uint Collateral in Script.GetObjectsInShape(CLRScriptBase.SHAPE_SPHERE, CLRScriptBase.RADIUS_SIZE_MEDIUM, Script.GetLocation(Target.ObjectId), false, CLRScriptBase.OBJECT_TYPE_CREATURE, Script.Vector(0.0f, 0.0f, 0.0f)))
{
if (Script.GetIsReactionTypeHostile(Target.ObjectId, ObjectId) != CLRScriptBase.TRUE)
Target = null;
}
if (Target != null)
return Target.ObjectId;
}
}
return OBJECT_INVALID;
}