public void WillTargetTypeLessThanSearchLevel()
        {
            Engine.Player = new PlayerMobile(0x01);
            Item backpack =
                new Item(0x40000000, Engine.Player.Serial)
            {
                Container = new ItemCollection(0x40000000)
            };

            Engine.Items.Add(backpack);
            Engine.Player.SetLayer(Layer.Backpack, backpack.Serial);

            ItemCollection container = backpack.Container;

            for (int i = 0; i < 5; i++)
            {
                Item subitem =
                    new Item(container.Serial + 1, container.Serial)
                {
                    Container = new ItemCollection(container.Serial + 1), Owner = container.Serial
                };

                container.Add(subitem);

                container = subitem.Container;
            }

            Item item = new Item(container.Serial + 1, container.Serial)
            {
                ID = 0xfeef
            };

            container.Add(item);

            AutoResetEvent are = new AutoResetEvent(false);

            void PassOnTargetSent(byte[] data, int length)
            {
                if (data[0] == 0x6C)
                {
                    are.Set();
                }
            }

            Engine.InternalPacketSentEvent += PassOnTargetSent;

            TargetCommands.TargetType(item.ID, -1, 5);

            bool result = are.WaitOne(5000);

            Assert.IsTrue(result);

            Engine.InternalPacketSentEvent -= PassOnTargetSent;
            Engine.Items.Clear();
            Engine.Player = null;
        }
        public void WontTargetTypeGreaterThanSearchLevel()
        {
            Engine.Player = new PlayerMobile(0x01);
            Item backpack =
                new Item(0x40000000, Engine.Player.Serial)
            {
                Container = new ItemCollection(0x40000000)
            };

            Engine.Items.Add(backpack);
            Engine.Player.SetLayer(Layer.Backpack, backpack.Serial);

            ItemCollection container = backpack.Container;

            for (int i = 0; i < 5; i++)
            {
                Item subitem =
                    new Item(container.Serial + 1, container.Serial)
                {
                    Container = new ItemCollection(container.Serial + 1), Owner = container.Serial
                };

                container.Add(subitem);

                container = subitem.Container;
            }

            Item item = new Item(container.Serial + 1, container.Serial)
            {
                ID = 0xfeef
            };

            container.Add(item);

            void FailOnTargetSent(byte[] data, int length)
            {
                if (data[0] == 0x6C)
                {
                    Assert.Fail();
                }
            }

            Engine.InternalPacketSentEvent += FailOnTargetSent;

            TargetCommands.TargetType(item.ID, -1, 4);

            Engine.InternalPacketSentEvent -= FailOnTargetSent;
            Engine.Items.Clear();
            Engine.Player = null;
        }
        public void WillTargetType()
        {
            Engine.Player = new PlayerMobile(0x01);
            Item backpack =
                new Item(0x40000000, Engine.Player.Serial)
            {
                Container = new ItemCollection(0x40000000)
            };

            Engine.Items.Add(backpack);
            Engine.Player.SetLayer(Layer.Backpack, backpack.Serial);

            Item item = new Item(0x40000001, backpack.Serial)
            {
                ID = 0xfeef
            };

            backpack.Container.Add(item);

            AutoResetEvent are = new AutoResetEvent(false);

            void PassOnTargetSent(byte[] data, int length)
            {
                if (data[0] == 0x6C)
                {
                    are.Set();
                }
            }

            Engine.InternalPacketSentEvent += PassOnTargetSent;

            TargetCommands.TargetType(item.ID);

            bool result = are.WaitOne(5000);

            Assert.IsTrue(result);

            Engine.InternalPacketSentEvent -= PassOnTargetSent;
            Engine.Items.Clear();
            Engine.Player = null;
        }