Esempio n. 1
0
        public void TestCorpseEquipPacket()
        {
            var m = new Mobile(0x1);

            m.DefaultMobileInit();

            var weapon = new VikingSword();

            m.EquipItem(weapon);

            var c = new Corpse(m, m.Items);

            var expected = new CorpseEquip(m, c).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendCorpseEquip(m, c);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
Esempio n. 2
0
        public void TestGumpPacketAdmin(ProtocolChanges changes)
        {
            var m = new Mobile((Serial)0x1);

            m.DefaultMobileInit();
            m.RawName     = "Test Mobile";
            m.AccessLevel = AccessLevel.Administrator;

            var gump = new AdminGump(m, AdminGumpPage.Clients);

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.ProtocolChanges = changes;

            var expected = gump.Compile(ns).Compile();

            ns.SendDisplayGump(gump, out _, out _);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
Esempio n. 3
0
        public void TestVendorBuyList()
        {
            var vendor = new Mobile(0x1);

            vendor.DefaultMobileInit();

            var cont = new Container(World.NewItem);

            var buyStates = new List <BuyItemState>
            {
                new("First Item", cont.Serial, World.NewItem, 10, 1, 0x01, 0),
                new("Second Item", cont.Serial, World.NewItem, 20, 2, 0x0A, 0),
                new("Third Item", cont.Serial, World.NewItem, 30, 10, 0x0F, 0)
            };

            var data = new VendorBuyList(vendor, buyStates).Compile();

            var length = 8 + buyStates.Sum(state => 6 + state.Description.Length);

            Span <byte> expectedData = stackalloc byte[length];

            var pos = 0;

            expectedData.Write(ref pos, (byte)0x74);                  // Packet ID
            expectedData.Write(ref pos, (ushort)expectedData.Length); // Length
            expectedData.Write(ref pos, Serial.MinusOne);             // Vendor Buy Pack Serial or -1
            expectedData.Write(ref pos, (byte)buyStates.Count);

            for (var i = 0; i < buyStates.Count; i++)
            {
                var state = buyStates[i];
                expectedData.Write(ref pos, state.Price);
                var description = state.Description ?? "";
                expectedData.Write(ref pos, (byte)Math.Min(255, description.Length + 1));
                expectedData.WriteAsciiNull(ref pos, description, 255);
            }

            AssertThat.Equal(data, expectedData);
        }
Esempio n. 4
0
        public void TestMobileAttributesN()
        {
            var m = new Mobile(0x1);

            m.DefaultMobileInit();
            m.Str  = 50;
            m.Hits = 100;
            m.Int  = 75;
            m.Mana = 100;
            m.Dex  = 25;
            m.Stam = 100;

            var expected = new MobileAttributesN(m).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendMobileAttributes(m, true);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
Esempio n. 5
0
        public void TestBookCover(string author, string title)
        {
            var m = new Mobile(0x1);

            m.DefaultMobileInit();

            Serial serial = 0x1001;
            var    book   = new TestBook(serial)
            {
                Author = author, Title = title
            };

            var expected = new BookHeader(m, book).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendBookCover(m, book);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
Esempio n. 6
0
        public void TestDragEffect(
            uint srcSerial, int srcX, int srcY, int srcZ,
            uint trgSerial, int trgX, int trgY, int trgZ,
            int itemId, int hue, int amount
            )
        {
            var src  = new Entity(srcSerial, new Point3D(srcX, srcY, srcZ), null);
            var targ = new Entity(trgSerial, new Point3D(trgX, trgY, trgZ), null);

            var expected = new DragEffect(src, targ, itemId, hue, amount).Compile();

            using var ns = PacketTestUtilities.CreateTestNetState();
            ns.SendDragEffect(
                src.Serial, src.Location,
                targ.Serial, targ.Location,
                itemId, hue, amount
                );

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
Esempio n. 7
0
        public void TestUnicodeMessage()
        {
            Serial serial      = 0x1;
            var    graphic     = 0x100;
            var    messageType = MessageType.Label;
            var    hue         = 1024;
            var    font        = 3;
            var    lang        = "ENU";
            var    name        = "Stuff";
            var    text        = "Some Text";

            var expected = new UnicodeMessage(
                serial,
                graphic,
                messageType,
                hue,
                font,
                lang,
                name,
                text
                ).Compile();

            using var ns = PacketTestUtilities.CreateTestNetState();
            ns.SendMessage(
                serial,
                graphic,
                messageType,
                hue,
                font,
                false,
                lang,
                name,
                text
                );

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
Esempio n. 8
0
        public void TestUnicodeMessage()
        {
            Serial serial      = 0x1;
            var    graphic     = 0x100;
            var    messageType = MessageType.Label;
            var    hue         = 1024;
            var    font        = 3;
            var    lang        = "ENU";
            var    name        = "Stuff";
            var    text        = "Some Text";

            var data = new UnicodeMessage(
                serial,
                graphic,
                messageType,
                hue,
                font,
                lang,
                name,
                text
                ).Compile();

            Span <byte> expectedData = stackalloc byte[50 + text.Length * 2];
            var         pos          = 0;

            expectedData.Write(ref pos, (byte)0xAE);                  // Packet ID
            expectedData.Write(ref pos, (ushort)expectedData.Length); // Length

            expectedData.Write(ref pos, serial);
            expectedData.Write(ref pos, (ushort)graphic);
            expectedData.Write(ref pos, (byte)messageType);
            expectedData.Write(ref pos, (ushort)hue);
            expectedData.Write(ref pos, (ushort)font);
            expectedData.WriteAsciiFixed(ref pos, lang, 4);
            expectedData.WriteAsciiFixed(ref pos, name, 30);
            expectedData.WriteBigUniNull(ref pos, text);

            AssertThat.Equal(data, expectedData);
        }
Esempio n. 9
0
        public void TestMapPatches()
        {
            var data = new MapPatches().Compile();

            Span <byte> expectedData = stackalloc byte[]
            {
                0xBF,                   // Packet ID
                0x00, 0x29,             // Length
                0x00, 0x18,             // Sub-packet
                0x00, 0x00, 0x00, 0x04, // 4 maps
                0x00, 0x00, 0x00, 0x00, // Felucca
                0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, // Trammel
                0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, // Ilshenar
                0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, // Malas
                0x00, 0x00, 0x00, 0x00
            };

            AssertThat.Equal(data, expectedData);
        }
Esempio n. 10
0
        public void TestSwing()
        {
            Serial attacker = 0x1000;
            Serial defender = 0x2000;

            var data = new Swing(attacker, defender).Compile();

            Span <byte> expectedData = stackalloc byte[10];
            var         pos          = 0;

            expectedData.Write(ref pos, (byte)0x2F); // Packet ID
#if NO_LOCAL_INIT
            expectedData.Write(ref pos, (byte)0);
#else
            pos++;
#endif

            expectedData.Write(ref pos, attacker);
            expectedData.Write(ref pos, defender);

            AssertThat.Equal(data, expectedData);
        }
Esempio n. 11
0
        public void TestMessageLocalized()
        {
            Serial serial      = 0x1;
            var    graphic     = 0x100;
            var    messageType = MessageType.Label;
            var    hue         = 1024;
            var    font        = 3;
            var    number      = 150000;
            var    name        = "Stuff";
            var    args        = "Arguments";

            var data = new MessageLocalized(
                serial,
                graphic,
                messageType,
                hue,
                font,
                number,
                name,
                args
                ).Compile();

            Span <byte> expectedData = stackalloc byte[50 + args.Length * 2];
            var         pos          = 0;

            expectedData.Write(ref pos, (byte)0xC1);                  // Packet ID
            expectedData.Write(ref pos, (ushort)expectedData.Length); // Length

            expectedData.Write(ref pos, serial);
            expectedData.Write(ref pos, (ushort)graphic);
            expectedData.Write(ref pos, (byte)messageType);
            expectedData.Write(ref pos, (ushort)hue);
            expectedData.Write(ref pos, (ushort)font);
            expectedData.Write(ref pos, number);
            expectedData.WriteAsciiFixed(ref pos, name, 30);
            expectedData.WriteLittleUniNull(ref pos, args);

            AssertThat.Equal(data, expectedData);
        }
Esempio n. 12
0
        public void TestUnicodePrompt()
        {
            var         prompt = new TestPrompt();
            Span <byte> data   = new UnicodePrompt(prompt).Compile();

            Span <byte> expectedData = stackalloc byte[]
            {
                0xC2,                   // Packet ID
                0x00, 0x15,             // Length
                0x00, 0x00, 0x00, 0x00, // Serial
                0x00, 0x00, 0x00, 0x00, // Prompt Serial
                0x00, 0x00, 0x00, 0x00, // Unused
                0x00, 0x00, 0x00, 0x00, // Unused
                0x00, 0x00              // Unused
            };

            prompt.Serial.CopyTo(expectedData.Slice(3, 4));
            prompt.Serial.CopyTo(expectedData.Slice(7, 4));

            AssertThat.Equal(data, expectedData);
        }
    }
Esempio n. 13
0
        public void TestVendorBuyContent6017()
        {
            var cont = new Container(Serial.LastItem + 1);

            var buyStates = new List <BuyItemState>
            {
                new BuyItemState("First Item", cont.Serial, Serial.NewItem, 10, 1, 0x01, 0),
                new BuyItemState("Second Item", cont.Serial, Serial.NewItem, 20, 2, 0x0A, 0),
                new BuyItemState("Third Item", cont.Serial, Serial.NewItem, 30, 10, 0x0F, 0)
            };

            Span <byte> data = new VendorBuyContent6017(buyStates).Compile();

            Span <byte> expectedData = stackalloc byte[5 + buyStates.Count * 20];

            int pos = 0;

            expectedData[pos++] = 0x3C;                                  // Packet ID
            ((ushort)expectedData.Length).CopyTo(ref pos, expectedData); // Length
            ((ushort)buyStates.Count).CopyTo(ref pos, expectedData);     // Count

            for (int i = buyStates.Count - 1; i >= 0; i--)
            {
                BuyItemState buyState = buyStates[i];

                buyState.MySerial.CopyTo(ref pos, expectedData);
                ((ushort)buyState.ItemID).CopyTo(ref pos, expectedData);
                pos++;                                           // ItemID Offset
                ((ushort)buyState.Amount).CopyTo(ref pos, expectedData);
                ((ushort)(i + 1)).CopyTo(ref pos, expectedData); // X
                expectedData[pos++] = 0;
                expectedData[pos++] = 1;                         // Y
                expectedData[pos++] = 0;                         // Grid Location
                buyState.ContainerSerial.CopyTo(ref pos, expectedData);
                ((ushort)buyState.Hue).CopyTo(ref pos, expectedData);
            }

            AssertThat.Equal(data, expectedData);
        }
Esempio n. 14
0
        public void TestVendorBuyContent(ProtocolChanges protocolChanges)
        {
            var cont = new Container(World.NewItem);

            var buyStates = new List <BuyItemState>
            {
                new("First Item", cont.Serial, World.NewItem, 10, 1, 0x01, 0),
                new("Second Item", cont.Serial, World.NewItem, 20, 2, 0x0A, 0),
                new("Third Item", cont.Serial, World.NewItem, 30, 10, 0x0F, 0)
            };

            using var ns       = PacketTestUtilities.CreateTestNetState();
            ns.ProtocolChanges = protocolChanges;

            var expected = new VendorBuyContent(buyStates, ns.ContainerGridLines).Compile();

            ns.SendVendorBuyContent(buyStates);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
Esempio n. 15
0
        public void TestNullFastwalkStack()
        {
            var data = new NullFastwalkStack().Compile();

            Span <byte> expectedData = stackalloc byte[29];
            var         pos          = 0;

            expectedData.Write(ref pos, (byte)0xBF); // Packet ID
            expectedData.Write(ref pos, (ushort)29); // Length
            expectedData.Write(ref pos, (short)0x1); // Sub-packet

#if NO_LOCAL_INIT
            expectedData.Write(ref pos, 0); // Key 1
            expectedData.Write(ref pos, 0); // Key 2
            expectedData.Write(ref pos, 0); // Key 3
            expectedData.Write(ref pos, 0); // Key 4
            expectedData.Write(ref pos, 0); // Key 5
            expectedData.Write(ref pos, 0); // Key 6
#endif

            AssertThat.Equal(data, expectedData);
        }
Esempio n. 16
0
        public void TestMobileStatus(ProtocolChanges changes)
        {
            var beholder = new Mobile(0x1)
            {
                Name = "Random Mobile 1"
            };

            beholder.DefaultMobileInit();
            beholder.Str  = 50;
            beholder.Hits = 100;
            beholder.Int  = 75;
            beholder.Mana = 100;
            beholder.Dex  = 25;
            beholder.Stam = 100;

            var beheld = new Mobile(0x2)
            {
                Name = "Random Mobile 2"
            };

            beheld.DefaultMobileInit();
            beheld.Str  = 50;
            beheld.Hits = 100;
            beheld.Int  = 75;
            beheld.Mana = 100;
            beheld.Dex  = 25;
            beheld.Stam = 100;

            using var ns       = PacketTestUtilities.CreateTestNetState();
            ns.ProtocolChanges = changes;

            var expected = new MobileStatus(beholder, beheld, ns).Compile();

            ns.SendMobileStatus(beholder, beheld);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
Esempio n. 17
0
        public void TestChangeCharacter()
        {
            var firstMobile = new Mobile(0x1);

            firstMobile.DefaultMobileInit();
            firstMobile.RawName = "Test Mobile";

            var secondMobile = new Mobile(0x2);

            secondMobile.DefaultMobileInit();
            secondMobile.RawName = null;

            var account  = new MockAccount(new[] { firstMobile, null, secondMobile });
            var expected = new ChangeCharacter(account).Compile();

            using var ns = PacketTestUtilities.CreateTestNetState();
            ns.SendChangeCharacter(account);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
Esempio n. 18
0
        public void TestMahjongTilesInfo(bool spectatorVision)
        {
            var m = new Mobile(0x1);

            m.DefaultMobileInit();

            var game = new MahjongGame {
                SpectatorVision = spectatorVision
            };

            game.Players.Join(m);

            var expected = new MahjongTilesInfo(game, m).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendMahjongTilesInfo(game, m);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
Esempio n. 19
0
        public void TestHealthbarPoison(string pName)
        {
            var p = Poison.GetPoison(pName);
            var m = new Mobile(0x1);

            m.DefaultMobileInit();
            m.Poison = p;

            var data = new HealthbarPoison(m).Compile();

            Span <byte> expectedData = stackalloc byte[12];
            var         pos          = 0;

            expectedData.Write(ref pos, (byte)0x17); // Packet ID
            expectedData.Write(ref pos, (ushort)12); // Length
            expectedData.Write(ref pos, m.Serial);
            expectedData.Write(ref pos, 0x10001);    // Show Bar?, Poison Bar
            expectedData.Write(ref pos, (byte)((p?.Level ?? -1) + 1));

            AssertThat.Equal(data, expectedData);
            Assert.Equal(p?.Level, m.Poison?.Level);
        }
Esempio n. 20
0
        public void TestMovementRej()
        {
            var m = new Mobile(0x1);

            m.DefaultMobileInit();

            const byte seq = 100;

            var data = new MovementRej(seq, m).Compile();

            Span <byte> expectedData = stackalloc byte[8];
            var         pos          = 0;

            expectedData.Write(ref pos, (byte)0x21); // Packet ID
            expectedData.Write(ref pos, seq);
            expectedData.Write(ref pos, (short)m.X);
            expectedData.Write(ref pos, (short)m.Y);
            expectedData.Write(ref pos, (byte)m.Direction);
            expectedData.Write(ref pos, (byte)m.Z);

            AssertThat.Equal(data, expectedData);
        }
Esempio n. 21
0
        public void TestParticleEffect()
        {
            var    effectType    = EffectType.Moving;
            Serial serial        = (Serial)0x4000;
            Serial from          = (Serial)0x1000;
            Serial to            = (Serial)0x2000;
            var    itemId        = 0x100;
            var    fromPoint     = new Point3D(1000, 100, -10);
            var    toPoint       = new Point3D(1500, 500, 0);
            byte   speed         = 3;
            byte   duration      = 2;
            var    direction     = false;
            var    explode       = false;
            var    hue           = 0x1024;
            var    renderMode    = 1;
            ushort effect        = 3;
            ushort explodeEffect = 0;
            ushort explodeSound  = 0;
            byte   layer         = 9;
            ushort unknown       = 0;

            var expected = new ParticleEffect(
                effectType, from, to, itemId, fromPoint, toPoint, speed, duration, direction,
                explode, hue, renderMode, effect, explodeEffect, explodeSound, serial, layer,
                unknown
                ).Compile();

            Span <byte> actual = stackalloc byte[OutgoingEffectPackets.ParticleEffectLength];

            OutgoingEffectPackets.CreateParticleEffect(
                actual,
                effectType, from, to, itemId, fromPoint, toPoint, speed, duration, direction,
                explode, hue, renderMode, effect, explodeEffect, explodeSound, serial, layer,
                unknown
                );

            AssertThat.Equal(actual, expected);
        }
Esempio n. 22
0
        public void TestMessageLocalized()
        {
            Serial serial      = 0x1;
            var    graphic     = 0x100;
            var    messageType = MessageType.Label;
            var    hue         = 1024;
            var    font        = 3;
            var    number      = 150000;
            var    name        = "Stuff";
            var    args        = "Arguments";

            var expected = new MessageLocalized(
                serial,
                graphic,
                messageType,
                hue,
                font,
                number,
                name,
                args
                ).Compile();

            using var ns = PacketTestUtilities.CreateTestNetState();
            ns.SendMessageLocalized(
                serial,
                graphic,
                messageType,
                hue,
                font,
                number,
                name,
                args
                );

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
Esempio n. 23
0
        public void TestMultiTargetReqHS()
        {
            var         multiID = 0x1024;
            var         p       = new Point3D(1000, 100, 10);
            MultiTarget t       = new TestMultiTarget(multiID, p);

            var data = new MultiTargetReqHS(t).Compile();

            Span <byte> expectedData = stackalloc byte[30];
            var         pos          = 0;

            expectedData.Write(ref pos, (byte)0x99); // Packet ID
            expectedData.Write(ref pos, t.AllowGround);
            expectedData.Write(ref pos, t.TargetID);

#if NO_LOCAL_INIT
            expectedData.Write(ref pos, 0);
            expectedData.Write(ref pos, (ushort)0);
            expectedData.Write(ref pos, (ushort)0);
            expectedData.Write(ref pos, (byte)0);
            expectedData.Write(ref pos, (byte)0);
            expectedData.Write(ref pos, (ushort)0);
#else
            pos += 12;
#endif

            expectedData.Write(ref pos, (short)t.MultiID);
            expectedData.Write(ref pos, (ushort)t.Offset.X);
            expectedData.Write(ref pos, (ushort)t.Offset.Y);
            expectedData.Write(ref pos, (short)t.Offset.Z);

#if NO_LOCAL_INIT
            // Hue (4 bytes)
            expectedData.Write(ref pos, 0);
#endif

            AssertThat.Equal(data, expectedData);
        }
Esempio n. 24
0
        public void TestSecureTradeEquip6017()
        {
            var m = new Mobile(0x1);

            m.DefaultMobileInit();

            var cont       = new Container(Serial.LastItem + 1);
            var itemInCont = new Item(Serial.LastItem + 2)
            {
                Parent = cont
            };

            var data = new SecureTradeEquip6017(itemInCont, m).Compile();

            Span <byte> expectedData = stackalloc byte[21];
            var         pos          = 0;

            expectedData.Write(ref pos, (byte)0x25); // Packet ID
            expectedData.Write(ref pos, itemInCont.Serial);
            expectedData.Write(ref pos, (short)itemInCont.ItemID);
#if NO_LOCAL_INIT
            expectedData.Write(ref pos, (byte)0);
#else
            pos++;
#endif
            expectedData.Write(ref pos, (short)itemInCont.Amount);
            expectedData.Write(ref pos, (short)itemInCont.X);
            expectedData.Write(ref pos, (short)itemInCont.Y);
#if NO_LOCAL_INIT
            expectedData.Write(ref pos, (byte)0);
#else
            pos++;
#endif
            expectedData.Write(ref pos, m.Serial);
            expectedData.Write(ref pos, (short)itemInCont.Hue);

            AssertThat.Equal(data, expectedData);
        }
Esempio n. 25
0
        public void TestContainerContent6017()
        {
            var cont = new Container(World.NewItem);

            cont.AddItem(new Item(World.NewItem));
            cont.Map = Map.Felucca;

            var m = new Mobile(0x1);

            m.DefaultMobileInit();
            m.AccessLevel = AccessLevel.Administrator;
            m.Map         = Map.Felucca;

            var expected = new ContainerContent6017(m, cont).Compile();

            using var ns        = PacketTestUtilities.CreateTestNetState();
            ns.ProtocolChanges |= ProtocolChanges.ContainerGridLines;
            ns.SendContainerContent(m, cont);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
Esempio n. 26
0
        public void TestNewSpellbookContent()
        {
            Serial serial  = 0x1000;
            ushort graphic = 100;
            ushort offset  = 10;
            ulong  content = 0x123456789ABCDEF0;

            var data = new NewSpellbookContent(serial, graphic, offset, content).Compile();

            Span <byte> expectedData = stackalloc byte[23];
            var         pos          = 0;

            expectedData.Write(ref pos, (byte)0xBF);   // Packet ID
            expectedData.Write(ref pos, (ushort)0x17); // Length
            expectedData.Write(ref pos, (ushort)0x1B); // Sub-packet
            expectedData.Write(ref pos, (ushort)0x1);  // Command
            expectedData.Write(ref pos, serial);
            expectedData.Write(ref pos, graphic);
            expectedData.Write(ref pos, offset);
            expectedData.WriteLE(ref pos, content);

            AssertThat.Equal(data, expectedData);
        }
Esempio n. 27
0
        public void TestNewMobileAnimation(int action, int frameCount, byte delay)
        {
            Serial mobile = 0x1;

            var expected = new NewMobileAnimation(
                mobile,
                action,
                frameCount,
                delay
                ).Compile();

            using var ns = PacketTestUtilities.CreateTestNetState();
            ns.SendNewMobileAnimation(
                mobile,
                action,
                frameCount,
                delay
                );

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
Esempio n. 28
0
        public void TestSecureTradeEquip6017()
        {
            var m = new Mobile(0x1);

            m.DefaultMobileInit();

            var cont       = new Container(World.NewItem);
            var itemInCont = new Item(World.NewItem)
            {
                Parent = cont
            };

            var expected = new SecureTradeEquip6017(itemInCont, m).Compile();

            using var ns        = PacketTestUtilities.CreateTestNetState();
            ns.ProtocolChanges |= ProtocolChanges.ContainerGridLines;

            ns.SendSecureTradeEquip(itemInCont, m);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
Esempio n. 29
0
        public void TestPartyMemberList()
        {
            var leader = new Mobile(0x1024u);

            leader.DefaultMobileInit();

            var member = new Mobile(0x2048u);

            member.DefaultMobileInit();

            var p = new Party(leader);

            p.Add(member);

            var expected = new PartyMemberList(p).Compile();

            using var ns = PacketTestUtilities.CreateTestNetState();
            ns.SendPartyMemberList(p);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
Esempio n. 30
0
        public void TestCorpseContainerPacket(ProtocolChanges changes)
        {
            var m = new Mobile(0x1);

            m.DefaultMobileInit();

            var weapon = new VikingSword();

            m.EquipItem(weapon);

            var c = new Corpse(m, m.Items);

            using var ns       = PacketTestUtilities.CreateTestNetState();
            ns.ProtocolChanges = changes;

            var expected = (ns.ContainerGridLines ? (Packet) new CorpseContent6017(m, c) : new CorpseContent(m, c)).Compile();

            ns.SendCorpseContent(m, c);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }