public static bool FitsTrapTargetRestriction(CLRScriptBase s, ALFA.Shared.ActiveTrap trap, uint target)
{
if (s.GetIsDead(target, FALSE) == TRUE)
{
return false;
}
if (trap.TargetAlignment != ALIGNMENT_ALL)
{
if ((trap.TargetAlignment == ALIGNMENT_CHAOTIC ||
trap.TargetAlignment == ALIGNMENT_LAWFUL ||
trap.TargetAlignment == ALIGNMENT_NEUTRAL) &&
s.GetAlignmentLawChaos(target) != trap.TargetAlignment)
{
return false;
}
if ((trap.TargetAlignment == ALIGNMENT_GOOD ||
trap.TargetAlignment == ALIGNMENT_EVIL ||
trap.TargetAlignment == ALIGNMENT_NEUTRAL) &&
s.GetAlignmentGoodEvil(target) != trap.TargetAlignment)
{
return false;
}
}
if (trap.TargetRace != RACIAL_TYPE_ALL)
{
if (trap.TargetRace != s.GetRacialType(target))
{
return false;
}
}
return true;
}
}