예제 #1
0
        private void HandleRoutineDepartureDetailWindow()
        {
            if (_routineDepartureDetailWindow == null)
            {
                return;
            }
            if (!WindowManager.IsOpen(_routineDepartureDetailWindow))
            {
                CancelRoutineDepartureDetail();
                return;
            }

            _routineDepartureDetailWindow.CrewCount = RmmUtil.CrewCount(_routineDepartureDetailWindow.DepartureParts);

            List <RoutineDepartureDetailWindow.ResourceItem> resources = new List <RoutineDepartureDetailWindow.ResourceItem>();

            foreach (String proppelant in _routineDepartureDetailWindow.RoutineDepartureMission.Proppelants)
            {
                foreach (MissionResource missionResource in _routineDepartureDetailWindow.RoutineDepartureMission.Resources)
                {
                    if (missionResource.Name == proppelant)
                    {
                        RoutineDepartureDetailWindow.ResourceItem resourceItem = new RoutineDepartureDetailWindow.ResourceItem
                        {
                            Name           = missionResource.Name,
                            RequiredAmount = missionResource.Amount,
                            CurrentAmount  = RmmUtil.ReadResource(_routineDepartureDetailWindow.DepartureParts, missionResource.Name),
                        };
                        resources.Add(resourceItem);
                    }
                }
            }
            _routineDepartureDetailWindow.Resources = resources;

            double currentVesselCargoMass          = 0;
            double currentVesselCargoFunds         = 0;
            List <MissionResource> vesselResources = MissionResource.GetMissionResourceList(_routineDepartureDetailWindow.DepartureParts);

            foreach (MissionResource vesselResource in vesselResources)
            {
                if (_routineDepartureDetailWindow.RoutineDepartureMission.Proppelants.Contains(vesselResource.Name))
                {
                    continue;
                }

                currentVesselCargoMass  += RmmUtil.Mass(vesselResource.Name, vesselResource.Amount);
                currentVesselCargoFunds += RmmUtil.Cost(vesselResource.Name, vesselResource.Amount);
            }
            _routineDepartureDetailWindow.CurrentCargoMass  = currentVesselCargoMass;
            _routineDepartureDetailWindow.CurrentCargoFunds = currentVesselCargoFunds;
        }