private static TargetOwnerEnum GetOwnershipTypes(List <long> identities) { TargetOwnerEnum result = 0; foreach (var identity in identities) { if (identity == 0 && result.HasFlag(TargetOwnerEnum.Unowned) == false) { result |= TargetOwnerEnum.Unowned; continue; } if (IsNPC(identity) == true && result.HasFlag(TargetOwnerEnum.NPC) == false) { result |= TargetOwnerEnum.NPC; continue; } if (IsNPC(identity) == false && result.HasFlag(TargetOwnerEnum.Player) == false) { result |= TargetOwnerEnum.Player; continue; } } return(result); }
public static bool CompareAllowedOwnerTypes(TargetOwnerEnum allowedOwner, TargetOwnerEnum resultOwner) { //Owner: Unowned if (allowedOwner.HasFlag(TargetOwnerEnum.Unowned) && resultOwner.HasFlag(TargetOwnerEnum.Unowned)) { return(true); } //Owner: Owned if (allowedOwner.HasFlag(TargetOwnerEnum.Owned) && resultOwner.HasFlag(TargetOwnerEnum.Owned)) { return(true); } //Owner: Player if (allowedOwner.HasFlag(TargetOwnerEnum.Player) && resultOwner.HasFlag(TargetOwnerEnum.Player)) { return(true); } //Owner: NPC if (allowedOwner.HasFlag(TargetOwnerEnum.NPC) && resultOwner.HasFlag(TargetOwnerEnum.NPC)) { return(true); } return(false); }