public Packet TestPacketConstruction()
        {
            Packet p = new VendorBuyContent(m_States);

            p.Compile(false, out _);
            return(p);
        }
Esempio n. 2
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. 3
0
        public void TestVendorBuyContent()
        {
            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 VendorBuyContent(buyStates).Compile();

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

            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
                buyState.ContainerSerial.CopyTo(ref pos, expectedData);
                ((ushort)buyState.Hue).CopyTo(ref pos, expectedData);
            }

            AssertThat.Equal(data, expectedData);
        }
Esempio n. 4
0
        public void TestVendorBuyContent()
        {
            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)
            };

            var data = new VendorBuyContent(buyStates).Compile();

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

            var pos = 0;

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

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

                expectedData.Write(ref pos, buyState.MySerial);
                expectedData.Write(ref pos, (ushort)buyState.ItemID);
                pos++;                                        // ItemID Offset
                expectedData.Write(ref pos, (ushort)buyState.Amount);
                expectedData.Write(ref pos, (ushort)(i + 1)); // X
                expectedData.Write(ref pos, (ushort)1);       // Y
                expectedData.Write(ref pos, buyState.ContainerSerial);
                expectedData.Write(ref pos, (ushort)buyState.Hue);
            }

            AssertThat.Equal(data, expectedData);
        }