public void RemoveByDistance(int maxDistance, int x, int y) { bool changed = false; Mobile[] mobileArray = this.GetMobiles(); for (int i = 0; i < mobileArray.Length; i++) { double d = UOMath.Distance(x, y, mobileArray[i].X, mobileArray[i].Y); if (d > maxDistance) { myMobileList.Remove(mobileArray[i].Serial); myLinkedItemCollection.RemoveByOwner(mobileArray[i].Serial); /*foreach (int serial in mobileArray[i].GetAllLayers()) * { * if (serial != 0) myLinkedItemCollection.Remove(serial); * }*/ changed = true; } } if (changed) { this.OnCollectionChanged(); } }