private ClientTile ReadTileDescription(NetworkMessage nmsg, MapPosition pos)
        {
            ClientTile Tile   = new ClientTile(pos);
            int        nStuff = 0;

            while (nStuff < 10)
            {
                if (nmsg.PeekU16() >= 0xFF00)
                {
                    return(Tile);
                }
                else
                {
                    Tile.Add(ReadThing(nmsg));
                }
                ++nStuff;
            }

            return(Tile);
        }
示例#2
0
        private void OnCreatureMove(Packet props)
        {
            MapPosition OldPosition = (MapPosition)props["OldPosition"];
            int         StackIndex  = (int)props["OldStackIndex"];
            MapPosition ToPosition  = (MapPosition)props["Position"];

            ClientTile FromTile = Map[OldPosition];
            ClientTile ToTile   = Map[ToPosition];

            if (FromTile == null || ToTile == null)
            {
                Log.Warning("OnCreatureMove - Tile is missing.");
                return;
            }

            ClientCreature Creature = (ClientCreature)FromTile.GetByIndex(StackIndex);

            FromTile.Remove(Creature);
            ToTile.Add(Creature, true);

            Creature.Move(OldPosition, ToPosition);
        }
        private ClientTile ReadTileDescription(NetworkMessage nmsg, MapPosition pos)
        {
            ClientTile Tile = new ClientTile(pos);
            int nStuff = 0;
            while (nStuff < 10)
            {
                if (nmsg.PeekU16() >= 0xFF00)
                {
                    return Tile;
                }
                else
                {
                    Tile.Add(ReadThing(nmsg));
                }
                ++nStuff;
            }

            return Tile;
        }