static void ProcShipDataChanged(Store ds, int shipId)
        {
            var ship = ds.Ships[shipId];
            var histo = new IShipsLogAccessor[] { ds.CurrentLogbook.Ships, ds.Weekbook.Ships };
            foreach(var storage in histo) {
                Ship shipHisto;
                if(ship == null) {
                    if(!storage.Contains(shipId)) continue;
                    shipHisto = storage[shipId];
                    shipHisto.ExistenceLog.Append(ShipExistenceStatus.NonExistence, 0);
                } else {
                    shipHisto = storage[shipId];
                    shipHisto.EnhancedAntiAir.Append(ship.EnhancedAntiAir, ds.Settings.ShipDataLoggingInterval, false);
                    shipHisto.EnhancedDefense.Append(ship.EnhancedDefense, ds.Settings.ShipDataLoggingInterval, false);
                    shipHisto.EnhancedLuck.Append(ship.EnhancedLuck, ds.Settings.ShipDataLoggingInterval, false);
                    shipHisto.EnhancedPower.Append(ship.EnhancedPower, ds.Settings.ShipDataLoggingInterval, false);
                    shipHisto.EnhancedTorpedo.Append(ship.EnhancedTorpedo, ds.Settings.ShipDataLoggingInterval, false);
                    shipHisto.Exp.Append(ship.Exp, ds.Settings.ShipDataLoggingInterval);
                    shipHisto.Level.Append(ship.Level, ds.Settings.ShipDataLoggingInterval, false);
                    shipHisto.SRate.Append(ship.SRate, ds.Settings.ShipDataLoggingInterval, false);
                    shipHisto.ShipNameType.Append(ship.ShipInfo, 0, false);

                    if(ship.Locked) {
                        shipHisto.ExistenceLog.Append(ShipExistenceStatus.Locked, 0, false);
                    } else {
                        shipHisto.ExistenceLog.Append(ShipExistenceStatus.Existing, 0, false);
                    }
                }

                shipHisto.RefreshUpdateTime();
            }
        }
Beispiel #2
0
 public Weekbook(Store s)
 {
     _holder   = s;
     _ships    = new SortedDictionary <int, Ship>();
     BasicInfo = new BasicInfo(this);
     Ships     = new ShipsAccessor(this);
 }
Beispiel #3
0
        public Logbook(string memId, ulong seqId)
        {
            MemberId   = memId;
            SequenceId = seqId;
            BasicInfo  = new BasicInfo(this);
            _ships     = new SortedDictionary <int, Ship>();

            Ships          = new ShipsAccessor(this);
            StartTimestamp = Helpers.FromLogbookSequence(SequenceId).ToUnixTimestamp();
            EndTimestamp   = Helpers.FromLogbookSequence(SequenceId + 1).ToUnixTimestamp();
        }
Beispiel #4
0
        public Weekbook(Premitives.StoragePremitive info, LinkedList <object> serializationPath) : base(info, serializationPath)
        {
            _holder = (Store)serializationPath.First(x => x is Store);
            Ships   = new ShipsAccessor(this);

            var keys = _ships.Where(kv => !(kv.Value?.ShipNameType?.Count > 0) || !(kv.Value?.UpdateTime > StartTimestamp)).Select(x => x.Key).ToList();

            foreach (var k in keys)
            {
                _ships.Remove(k);
            }
        }
Beispiel #5
0
        public Logbook(Premitives.StoragePremitive info, LinkedList <object> serializationPath) : base(info, serializationPath)
        {
            Ships          = new ShipsAccessor(this);
            StartTimestamp = Helpers.FromLogbookSequence(SequenceId).ToUnixTimestamp();
            EndTimestamp   = Helpers.FromLogbookSequence(SequenceId + 1).ToUnixTimestamp();

            var keys = _ships.Where(kv => !(kv.Value?.ShipNameType?.Count > 0) || !(kv.Value?.UpdateTime > StartTimestamp)).Select(x => x.Key).ToList();

            foreach (var k in keys)
            {
                _ships.Remove(k);
            }
        }
        static void ProcShipDataChanged(Store ds, int shipId)
        {
            var ship  = ds.Ships[shipId];
            var histo = new IShipsLogAccessor[] { ds.CurrentLogbook.Ships, ds.Weekbook.Ships };

            foreach (var storage in histo)
            {
                Ship shipHisto;
                if (ship == null)
                {
                    if (!storage.Contains(shipId))
                    {
                        continue;
                    }
                    shipHisto = storage[shipId];
                    shipHisto.ExistenceLog.Append(ShipExistenceStatus.NonExistence, 0);
                }
                else
                {
                    shipHisto = storage[shipId];
                    shipHisto.EnhancedAntiAir.Append(ship.EnhancedAntiAir, ds.Settings.ShipDataLoggingInterval, false);
                    shipHisto.EnhancedDefense.Append(ship.EnhancedDefense, ds.Settings.ShipDataLoggingInterval, false);
                    shipHisto.EnhancedLuck.Append(ship.EnhancedLuck, ds.Settings.ShipDataLoggingInterval, false);
                    shipHisto.EnhancedPower.Append(ship.EnhancedPower, ds.Settings.ShipDataLoggingInterval, false);
                    shipHisto.EnhancedTorpedo.Append(ship.EnhancedTorpedo, ds.Settings.ShipDataLoggingInterval, false);
                    shipHisto.Exp.Append(ship.Exp, ds.Settings.ShipDataLoggingInterval);
                    shipHisto.Level.Append(ship.Level, ds.Settings.ShipDataLoggingInterval, false);
                    shipHisto.SRate.Append(ship.SRate, ds.Settings.ShipDataLoggingInterval, false);
                    shipHisto.ShipNameType.Append(ship.ShipInfo, 0, false);

                    if (ship.Locked)
                    {
                        shipHisto.ExistenceLog.Append(ShipExistenceStatus.Locked, 0, false);
                    }
                    else
                    {
                        shipHisto.ExistenceLog.Append(ShipExistenceStatus.Existing, 0, false);
                    }
                }

                shipHisto.RefreshUpdateTime();
            }
        }