Beispiel #1
0
        private void TroopManagerTroopRemoved(ICity city, TroopStubEventArgs args)
        {
            if (!ShouldUpdate(city))
            {
                return;
            }

            bool doUpdate = city.IsUpdating;

            if (!doUpdate)
            {
                city.BeginUpdate();
            }
            city.Resource.Crop.Upkeep = procedure.UpkeepForCity(city, battleFormulas);
            if (!doUpdate)
            {
                city.EndUpdate();
            }

            channel.Post(GetChannelName(city), () =>
            {
                var packet = new Packet(Command.TroopRemoved);
                packet.AddUInt32(city.Id);
                packet.AddUInt32(args.Stub.City.Id);
                packet.AddUInt16(args.Stub.TroopId);
                return(packet);
            });
        }
Beispiel #2
0
        private void TroopManagerTroopUnitUpdated(ICity city, TroopStubEventArgs args)
        {
            if (!ShouldUpdate(city))
            {
                return;
            }

            RecalculateUpkeep(city);
        }
Beispiel #3
0
        private void TroopManagerTroopUpdated(ICity city, TroopStubEventArgs args)
        {
            if (!ShouldUpdate(city))
            {
                return;
            }

            channel.Post(GetChannelName(city), () =>
            {
                var packet = new Packet(Command.TroopUpdated);
                packet.AddUInt32(city.Id);
                PacketHelper.AddToPacket(args.Stub, packet);
                return(packet);
            });
        }