private bool _IsFriendlyFire(int nTargetArea)
{
// Check for friendly fire.
switch ((SpellTargetAOE)nTargetArea)
{
case SpellTargetAOE.SPELL_TARGET_COLOSSAL_AOE:
// With a colossal AOE, no sense in checking. That as probably friendly fire.
return true;
case SpellTargetAOE.SPELL_TARGET_HUGE_AOE:
case SpellTargetAOE.SPELL_TARGET_HUGE_AOE_A:
case SpellTargetAOE.SPELL_TARGET_HUGE_AOE_B:
{
foreach (uint TargetId in Script.GetObjectsInShape(CLRScriptBase.SHAPE_SPHERE, CLRScriptBase.RADIUS_SIZE_HUGE * 2.0f, Script.GetLocation(this.ObjectId), false, CLRScriptBase.OBJECT_TYPE_CREATURE, Script.Vector(0.0f, 0.0f, 0.0f)))
{
// We found an enemy in sight; this is probably friendly fire.
if (Script.GetReputation(this.ObjectId, TargetId) < 11)
return true;
}
}
break;
case SpellTargetAOE.SPELL_TARGET_LARGE_AOE:
case SpellTargetAOE.SPELL_TARGET_PURPLE_LARGE:
case SpellTargetAOE.SPELL_TARGET_LINE:
{
foreach (uint TargetId in Script.GetObjectsInShape(CLRScriptBase.SHAPE_SPHERE, CLRScriptBase.RADIUS_SIZE_LARGE * 2.0f, Script.GetLocation(this.ObjectId), false, CLRScriptBase.OBJECT_TYPE_CREATURE, Script.Vector(0.0f, 0.0f, 0.0f)))
{
// We found an enemy nearby; this is probably friendly fire.
if (Script.GetReputation(this.ObjectId, TargetId) < 11)
return true;
}
}
break;
case SpellTargetAOE.SPELL_TARGET_PURPLE_MEDIUM:
case SpellTargetAOE.SPELL_TARGET_RECTANGLE_A:
case SpellTargetAOE.SPELL_TARGET_RECTANGLE_B:
{
foreach (uint TargetId in Script.GetObjectsInShape(CLRScriptBase.SHAPE_SPHERE, CLRScriptBase.RADIUS_SIZE_MEDIUM * 2.0f, Script.GetLocation(this.ObjectId), false, CLRScriptBase.OBJECT_TYPE_CREATURE, Script.Vector(0.0f, 0.0f, 0.0f)))
{
// We found an enemy nearby; this is probably friendly fire.
if (Script.GetReputation(this.ObjectId, TargetId) < 11)
return true;
}
}
break;
case SpellTargetAOE.SPELL_TARGET_PURPLE_SMALL:
case SpellTargetAOE.SPELL_TARGET_SHORT_CONE_A:
case SpellTargetAOE.SPELL_TARGET_SHORT_CONE_B:
case SpellTargetAOE.SPELL_TARGET_SHORT_CONE_C:
case SpellTargetAOE.SPELL_TARGET_SHORT_CONE_D:
{
foreach (uint TargetId in Script.GetObjectsInShape(CLRScriptBase.SHAPE_SPHERE, CLRScriptBase.RADIUS_SIZE_SMALL * 2.0f, Script.GetLocation(this.ObjectId), false, CLRScriptBase.OBJECT_TYPE_CREATURE, Script.Vector(0.0f, 0.0f, 0.0f)))
{
// We found an enemy nearby; this is probably friendly fire.
if (Script.GetReputation(this.ObjectId, TargetId) < 11)
return true;
}
}
break;
}
return false;
}