Example #1
0
        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);
            }
        }
Example #2
0
 internal void UpdateTimer(DateTimeOffset timeStamp) => ExpeditionTimer.Update(timeStamp);