示例#1
0
        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();
            }
        }