예제 #1
0
        private void ObjectUpdated(ICity city, GameObjectArgs args)
        {
            if (!ShouldUpdate(city))
            {
                return;
            }

            RecalculateValue(city, args.Object);

            channel.Post(GetChannelName(city), () =>
            {
                var packet = new Packet(Command.CityObjectUpdate);
                packet.AddUInt16(regionLocator.GetRegionIndex(args.Object));
                PacketHelper.AddToPacket(args.Object, packet);
                return(packet);
            });
        }
예제 #2
0
        private void ObjectRemoved(ICity city, GameObjectArgs args)
        {
            if (!ShouldUpdate(city))
            {
                return;
            }

            RecalculateValue(city, args.Object);

            channel.Post(GetChannelName(city), () =>
            {
                var packet = new Packet(Command.CityObjectRemove);
                packet.AddUInt32(city.Id);
                packet.AddUInt32(args.Object.ObjectId);
                return(packet);
            });
        }