partial void UpdateCore(RawFleet raw, DateTimeOffset timeStamp) { HomeportShip Exclusive(HomeportShip ship) { if (ship.Fleet != null) { ship.Fleet.Remove(ship); } return(ship); } for (int i = 0; i < ships.Count || i < raw.ShipIds.Count; i++) { if (i >= raw.ShipIds.Count) { ships.RemoveAt(i); i--; } else if (i >= ships.Count) { ships.Add(Exclusive(owner.AllShips[raw.ShipIds[i]])); } else if (raw.ShipIds[i] != ships[i].Id) { ships[i] = Exclusive(owner.AllShips[raw.ShipIds[i]]); } } Expedition = owner.MasterData.Expeditions[raw.ExpeditionId]; CascadeUpdate(); if (ExpeditionTimer.SetCompletionTime(raw.ExpeditionCompletionTime, timeStamp)) { owner.Notification.SetExpeditionCompletion(this, raw.ExpeditionCompletionTime); } }
internal void UpdateTimer(DateTimeOffset timeStamp) => ExpeditionTimer.Update(timeStamp);