Example #1
0
        public static List <Mobile> ApplyFilter(Filter filter)
        {
            List <Mobile>           result           = new List <Mobile>();
            List <Assistant.Mobile> assistantMobiles = new List <Assistant.Mobile>(World.Mobiles.Values.ToList());

            if (filter.Enabled)
            {
                if (filter.Serials.Count > 0)
                {
                    assistantMobiles = assistantMobiles.Where((m) => filter.Serials.Contains((int)m.Serial.Value)).ToList();
                }
                else
                {
                    if (filter.Name != String.Empty)
                    {
                        Regex rgx = new Regex(filter.Name, RegexOptions.IgnoreCase);
                        List <Assistant.Mobile> list = assistantMobiles.Where(i => rgx.IsMatch(i.Name)).ToList();
                        assistantMobiles = list;
                    }

                    if (filter.Bodies.Count > 0)
                    {
                        assistantMobiles = assistantMobiles.Where((m) => filter.Bodies.Contains(m.Body)).ToList();
                    }

                    if (filter.Hues.Count > 0)
                    {
                        assistantMobiles = assistantMobiles.Where((i) => filter.Hues.Contains(i.Hue)).ToList();
                    }

                    if (filter.RangeMin != -1)
                    {
                        assistantMobiles = assistantMobiles.Where((m) =>
                                                                  Utility.Distance(World.Player.Position.X, World.Player.Position.Y, m.Position.X, m.Position.Y) >= filter.RangeMin
                                                                  ).ToList();
                    }

                    if (filter.RangeMax != -1)
                    {
                        assistantMobiles = assistantMobiles.Where((m) =>
                                                                  Utility.Distance(World.Player.Position.X, World.Player.Position.Y, m.Position.X, m.Position.Y) <= filter.RangeMax
                                                                  ).ToList();
                    }

                    if (filter.Warmode != -1)
                    {
                        assistantMobiles = assistantMobiles.Where((m) => m.Warmode == Convert.ToBoolean(filter.Warmode)).ToList();
                    }

                    if (filter.Poisoned != -1)
                    {
                        assistantMobiles = assistantMobiles.Where((m) => m.Poisoned == Convert.ToBoolean(filter.Poisoned)).ToList();
                    }

                    if (filter.Blessed != -1)
                    {
                        assistantMobiles = assistantMobiles.Where((m) => m.Blessed == Convert.ToBoolean(filter.Blessed)).ToList();
                    }

                    if (filter.IsHuman != -1)
                    {
                        assistantMobiles = assistantMobiles.Where((m) => m.IsHuman == Convert.ToBoolean(filter.IsHuman)).ToList();
                    }

                    if (filter.IsGhost != -1)
                    {
                        assistantMobiles = assistantMobiles.Where((m) => m.IsGhost == Convert.ToBoolean(filter.IsGhost)).ToList();
                    }

                    if (filter.Female != -1)
                    {
                        assistantMobiles = assistantMobiles.Where((m) => m.Female == Convert.ToBoolean(filter.Female)).ToList();
                    }

                    if (filter.Friend != -1)
                    {
                        assistantMobiles = assistantMobiles.Where((m) => RazorEnhanced.Friend.IsFriend(m.Serial) == Convert.ToBoolean(filter.Friend)).ToList();
                    }

                    if (filter.Paralized != -1)
                    {
                        assistantMobiles = assistantMobiles.Where((m) => m.Paralized == Convert.ToBoolean(filter.Paralized)).ToList();
                    }

                    if (filter.Notorieties.Count > 0)
                    {
                        assistantMobiles = assistantMobiles.Where((m) => filter.Notorieties.Contains(m.Notoriety)).ToList();
                    }

                    if (filter.CheckIgnoreObject)
                    {
                        assistantMobiles = assistantMobiles.Where((m) => Misc.CheckIgnoreObject(m.Serial) != true).ToList();
                    }

                    // Esclude Self dalla ricerca
                    assistantMobiles = assistantMobiles.Where((m) => m.Serial != World.Player.Serial).ToList();
                }
            }

            foreach (Assistant.Mobile assistantMobile in assistantMobiles)
            {
                RazorEnhanced.Mobile enhancedMobile = new RazorEnhanced.Mobile(assistantMobile);
                result.Add(enhancedMobile);
            }

            return(result);
        }
Example #2
0
        public static List <Item> ApplyFilter(Filter filter)
        {
            List <Item>           result         = new List <Item>();
            List <Assistant.Item> assistantItems = new List <Assistant.Item>(World.Items.Values.ToList());

            try
            {
                if (filter.Enabled)
                {
                    if (filter.Serials.Count > 0)
                    {
                        assistantItems = assistantItems.Where((i) => filter.Serials.Contains((int)i.Serial.Value)).ToList();
                    }
                    else
                    {
                        if (filter.Name != String.Empty)
                        {
                            Regex rgx = new Regex(filter.Name, RegexOptions.IgnoreCase);
                            List <Assistant.Item> list = new List <Assistant.Item>();
                            foreach (Assistant.Item i in assistantItems)
                            {
                                if (rgx.IsMatch(i.Name))
                                {
                                    list.Add(i);
                                }
                            }
                            assistantItems = list;
                        }

                        if (filter.Graphics.Count > 0)
                        {
                            assistantItems = assistantItems.Where((i) => filter.Graphics.Contains(i.ItemID.Value)).ToList();
                        }

                        if (filter.Hues.Count > 0)
                        {
                            assistantItems = assistantItems.Where((i) => filter.Hues.Contains(i.Hue)).ToList();
                        }

                        if (filter.RangeMin != -1)
                        {
                            assistantItems = assistantItems.Where((i) =>
                                                                  Utility.Distance(World.Player.Position.X, World.Player.Position.Y, i.Position.X, i.Position.Y) >= filter.RangeMin
                                                                  ).ToList();
                        }

                        if (filter.RangeMax != -1)
                        {
                            assistantItems = assistantItems.Where((i) =>
                                                                  Utility.Distance(World.Player.Position.X, World.Player.Position.Y, i.Position.X, i.Position.Y) <= filter.RangeMax
                                                                  ).ToList();
                        }

                        if (filter.Movable >= 0)
                        {
                            assistantItems = assistantItems.Where((i) => i.Movable == (filter.Movable > 0)).ToList();
                        }

                        if (filter.Layers.Count > 0)
                        {
                            List <Assistant.Layer> list = new List <Assistant.Layer>();

                            foreach (string text in filter.Layers)
                            {
                                Enum.TryParse <Layer>(text, out Layer l);
                                if (l != Assistant.Layer.Invalid)
                                {
                                    list.Add(l);
                                }
                            }

                            assistantItems = assistantItems.Where((i) => list.Contains(i.Layer)).ToList();
                        }

                        if (filter.OnGround != -1)
                        {
                            assistantItems = assistantItems.Where((i) => i.OnGround == Convert.ToBoolean(filter.OnGround)).ToList();
                        }

                        if (filter.IsContainer != -1)
                        {
                            assistantItems = assistantItems.Where((i) => i.IsContainer == Convert.ToBoolean(filter.IsContainer)).ToList();
                        }

                        if (filter.IsCorpse != -1)
                        {
                            assistantItems = assistantItems.Where((i) => i.IsCorpse == Convert.ToBoolean(filter.IsCorpse)).ToList();
                        }

                        if (filter.CheckIgnoreObject)
                        {
                            assistantItems = assistantItems.Where((i) => Misc.CheckIgnoreObject(i.Serial) != true).ToList();
                        }
                    }
                }
            }
            catch { }

            foreach (Assistant.Item assistantItem in assistantItems)
            {
                RazorEnhanced.Item enhancedItem = new RazorEnhanced.Item(assistantItem);
                result.Add(enhancedItem);
            }

            return(result);
        }