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(); } }
public Weekbook(Store s) { _holder = s; _ships = new SortedDictionary <int, Ship>(); BasicInfo = new BasicInfo(this); Ships = new ShipsAccessor(this); }
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(); }
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); } }
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(); } }