Esempio n. 1
0
        public string GetExpiringRoute()
        {
            List <Mission> missions         = missionMonitor.missions.ToList();
            string         expiringSystem   = null;
            decimal        expiringDistance = 0;
            long           expiringSeconds  = 0;
            List <long>    missionids       = new List <long>(); // List of mission IDs for the next system

            if (missions.Count > 0)
            {
                StarSystem curr = EDDI.Instance?.CurrentStarSystem;
                StarSystem dest = new StarSystem();             // Destination star system

                foreach (Mission mission in missions.Where(m => m.statusEDName == "Active").ToList())
                {
                    if (expiringSeconds == 0 || mission.expiryseconds < expiringSeconds)
                    {
                        expiringSeconds = mission.expiryseconds ?? 0;
                        expiringSystem  = mission.destinationsystem;
                    }
                }
                dest             = StarSystemSqLiteRepository.Instance.GetOrCreateStarSystem(expiringSystem, true);
                expiringDistance = CalculateDistance(curr, dest);

                // Get mission IDs for 'expiring' system
                missionids = missionMonitor.GetSystemMissionIds(expiringSystem);

                // Set route and destination variables
                missionMonitor.SetNavigationData(expiringSystem, null, expiringDistance);
            }
            EDDI.Instance.enqueueEvent(new RouteDetailsEvent(DateTime.Now, "expiring", expiringSystem, expiringSystem, expiringSeconds, expiringDistance, expiringDistance, missionids));
            return(expiringSystem);
        }