Esempio n. 1
0
        private void SendTile(Tile tile)
        {
            message.Reset();
            message.WriteByte(0x01);

            message.WriteLocation(tile.Location);
            message.WriteByte((byte)tile.ThingCount);

            for (int i = 0; i < tile.ThingCount; i++)
            {
                var thing = tile.GetThing(i);

                if (thing is Creature)
                {
                    var cr = thing as Creature;
                    message.WriteByte(0x01);
                    message.WriteUInt(cr.Id);
                    message.WriteString(cr.Name);
                    message.WriteByte((byte)cr.Type);
                }
                else
                {
                    var item = thing as Item;
                    message.WriteByte(0x02);
                    message.WriteUShort((ushort)item.Id);
                    message.WriteByte(item.SubType);
                }
            }

            message.WriteInternalHead();
            Adler.Generate(message, true);
            message.WriteHead();

            connection.Send(message);
        }