public void WillFindTypeSubcontainer()
        {
            Item container = new Item(1)
            {
                Container = new ItemCollection(1)
                {
                    new Item(0x02)
                    {
                        ID = 0xdda, Owner = 1
                    }
                }
            };

            Engine.Items.Add(container);

            AliasCommands.SetAlias("cont", 1);

            bool result = ObjectCommands.FindType(0xdda, -1, "cont");

            Assert.IsTrue(result);

            int val = AliasCommands.GetAlias("found");

            Assert.AreEqual(0x02, val);

            Engine.Items.Clear();
        }
        public void WillFindTypeAnyGraphic()
        {
            Item container = new Item(0x40000000)
            {
                Container = new ItemCollection(0x40000000)
            };

            for (int i = 1; i < 11; i++)
            {
                container.Container.Add(new Item(0x40000000 + i, 0x40000000)
                {
                    ID = i
                });
            }

            Engine.Items.Add(container);
            ObjectCommands.ClearIgnoreList();

            int count = 0;

            while (ObjectCommands.FindType(-1, -1, 0x40000000))
            {
                ObjectCommands.IgnoreObject(AliasCommands.GetAlias("found"));
                count++;
            }

            Assert.AreEqual(10, count);

            Engine.Items.Remove(container);
            ObjectCommands.ClearIgnoreList();
        }
        public void WontFindTypeOutsideSearchRange()
        {
            Engine.Player = new PlayerMobile(1);
            Item backpack = new Item(0x40000000)
            {
                Container = new ItemCollection(0x40000000)
            };
            Item subContainer = new Item(0x40000001, 0x40000000)
            {
                Container = new ItemCollection(0x40000001)
            };

            backpack.Container.Add(subContainer);
            AliasCommands.SetAlias("backpack", backpack.Serial);

            backpack.Container.Add(new Item(0x40000002, 0x40000000)
            {
                ID = 0xabcd
            });
            subContainer.Container.Add(new Item(0x40000003, 0x40000001)
            {
                ID = 0xabcd
            });

            Engine.Items.Add(backpack);

            int count = 0;

            while (ObjectCommands.FindType(0xabcd, 0, "backpack"))
            {
                Assert.AreNotEqual(AliasCommands.GetAlias("found"), 0x40000003);
                ObjectCommands.IgnoreObject(AliasCommands.GetAlias("found"));
                count++;
            }

            Assert.AreEqual(1, count);

            ObjectCommands.ClearIgnoreList();

            count = 0;

            while (ObjectCommands.FindType(0xabcd, 1, "backpack"))
            {
                ObjectCommands.IgnoreObject(AliasCommands.GetAlias("found"));
                count++;
            }

            Assert.AreEqual(2, count);

            ObjectCommands.ClearIgnoreList();
            Engine.Player = null;
            Engine.Items.Clear();
        }
        public void WontFindTypeOutOfRange()
        {
            Engine.Player = new PlayerMobile(1);
            Engine.Mobiles.Add(new Mobile(0x02)
            {
                ID = 0x190, X = 5, Y = 5
            });

            bool result = ObjectCommands.FindType(0x190, 1);

            Assert.IsFalse(result);

            Engine.Mobiles.Clear();
            Engine.Player = null;
        }
        public void WillFindTypeInRange()
        {
            Engine.Player = new PlayerMobile(1);
            Engine.Mobiles.Add(new Mobile(0x02)
            {
                ID = 0x190, X = 5, Y = 5
            });

            bool result = ObjectCommands.FindType(0x190, 8);

            Assert.IsTrue(result);

            Engine.Mobiles.Clear();
            Engine.Player = null;
        }
        public void WillFindTypeStackAmountIgnoreIfMobile()
        {
            Mobile mobile = new Mobile(0x01)
            {
                ID = 0x190
            };

            Engine.Mobiles.Add(mobile);

            bool found = ObjectCommands.FindType(0x190, -1, null, -1, 50);

            Assert.IsTrue(found);

            Engine.Mobiles.Clear();
        }
        public void WillFindTypeStackAmount()
        {
            Item stack = new Item(0x40000001)
            {
                ID = 0xabcd, Count = 100
            };

            Engine.Items.Add(stack);

            bool found = ObjectCommands.FindType(0xabcd, -1, null, -1, 50);

            Assert.IsTrue(found);

            Engine.Items.Clear();
        }
        public void WillFindTypeGroundMobile()
        {
            Engine.Mobiles.Add(new Mobile(0x02)
            {
                ID = 0x190
            });

            bool result = ObjectCommands.FindType(0x190);

            Assert.IsTrue(result);

            int val = AliasCommands.GetAlias("found");

            Assert.AreEqual(0x02, val);

            Engine.Mobiles.Clear();
        }
        public void WillFindTypeGround()
        {
            Engine.Items.Add(new Item(0x40000001)
            {
                ID = 0xdda
            });

            bool result = ObjectCommands.FindType(0xdda);

            Assert.IsTrue(result);

            int val = AliasCommands.GetAlias("found");

            Assert.AreEqual(0x40000001, val);

            Engine.Items.Clear();
        }
        public void WillIgnoreObject()
        {
            Engine.Mobiles.Add(new Mobile(0x02)
            {
                ID = 0x190, X = 5, Y = 5
            });

            bool result = ObjectCommands.FindType(0x190);

            Assert.IsTrue(result);

            ObjectCommands.IgnoreObject("found");

            result = ObjectCommands.FindType(0x190);

            Assert.IsFalse(result);

            Engine.Mobiles.Clear();
            ObjectCommands.ClearIgnoreList();
        }