ACR_CreatureBehavior.CreatureObject._FindTargetForBuff C# (CSharp) Method

_FindTargetForBuff() private method

This seeks a target for a buff talent, prioritizing on high-risk allies, but only selecting one who doesn't already have the effect.
private _FindTargetForBuff ( NWScript.NWScriptEngineStructure3 Buff ) : uint
Buff NWScript.NWScriptEngineStructure3 The talent to check
return uint
        private uint _FindTargetForBuff(NWTalent Buff)
        {
            int SpellId = Script.GetIdFromTalent(Buff);
            foreach (CreatureObject PartyMember in Party.PartyTanks)
            {
                if (Script.GetHasSpellEffect(SpellId, PartyMember.ObjectId) == CLRScriptBase.FALSE)
                    return PartyMember.ObjectId;
            }
            foreach (CreatureObject PartyMember in Party.PartyShocks)
            {
                if (Script.GetHasSpellEffect(SpellId, PartyMember.ObjectId) == CLRScriptBase.FALSE)
                    return PartyMember.ObjectId;
            }
            foreach (CreatureObject PartyMember in Party.PartySkrimishers)
            {
                if (Script.GetHasSpellEffect(SpellId, PartyMember.ObjectId) == CLRScriptBase.FALSE)
                    return PartyMember.ObjectId;
            }
            foreach (CreatureObject PartyMember in Party.PartyFlanks)
            {
                if (Script.GetHasSpellEffect(SpellId, PartyMember.ObjectId) == CLRScriptBase.FALSE)
                    return PartyMember.ObjectId;
            }
            foreach (CreatureObject PartyMember in Party.PartyAnimals)
            {
                if (Script.GetHasSpellEffect(SpellId, PartyMember.ObjectId) == CLRScriptBase.FALSE)
                    return PartyMember.ObjectId;
            }
            foreach (CreatureObject PartyMember in Party.PartyMindless)
            {
                if (Script.GetHasSpellEffect(SpellId, PartyMember.ObjectId) == CLRScriptBase.FALSE)
                    return PartyMember.ObjectId;
            }
            if (Script.GetHasSpellEffect(SpellId, ObjectId) == CLRScriptBase.FALSE)
                return ObjectId;            
            return OBJECT_INVALID;
        }
        #endregion