static public SictAufgaabeParamZerleegungErgeebnis ZerleegeScrollNaacUnte(
            ISictAutomatZuusctand AutomaatZuusctand,
            VonSensor.Scroll AusScnapscusScroll)
        {
            var AufgaabeParamZerleegungErgeebnis = new SictAufgaabeParamZerleegungErgeebnis(null, true);

            if (null == AusScnapscusScroll)
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            var AusScnapscusScrollScrollHandleGrenze = AusScnapscusScroll.ScrollHandleGrenze;

            var AusScnapscusScrollScrollHandle = AusScnapscusScroll.ScrollHandle;

            var AusScnapscusScrollScrollHandleGrenzeFläce = AusScnapscusScrollScrollHandleGrenze.InGbsFläceNullable() ?? OrtogoonInt.Leer;
            var AusScnapscusScrollScrollHandleFläce       = AusScnapscusScrollScrollHandle.InGbsFläceNullable() ?? OrtogoonInt.Leer;

            if (AusScnapscusScrollScrollHandleGrenzeFläce.IsLeer || AusScnapscusScrollScrollHandleFläce.IsLeer)
            {
                //	wen kain ScrollHandle vorhande dan isc nit genüügend Inhalt zum Scrole vorhande, d.h. Viewport raict beraits bis Top -> Erfolg.
                return(AufgaabeParamZerleegungErgeebnis);
            }

            var FürScrolKlikFläce = OrtogoonInt.AusPunktZentrumUndGrööse(
                new Vektor2DInt(
                    AusScnapscusScrollScrollHandleGrenzeFläce.ZentrumLaage.A,
                    AusScnapscusScrollScrollHandleFläce.ZentrumLaage.B +
                    AusScnapscusScrollScrollHandleFläce.Grööse.B / 2 + 3)
                +
                AufgaabeParamScrollToTop.StatScrollHandleVersaz,
                new Vektor2DInt(AusScnapscusScrollScrollHandleFläce.Grööse.A, 6));

            var KlikZiilFäce = SictGbsWindowZuusctand.FläceProjeziirtAufGbsAst(FürScrolKlikFläce, AusScnapscusScrollScrollHandleGrenze);

            AufgaabeParamZerleegungErgeebnis.FüügeAn(AufgaabeParamAndere.KonstruktMausPfaad(
                                                         SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(KlikZiilFäce)));

            return(AufgaabeParamZerleegungErgeebnis);
        }
        static public SictAufgaabeParamZerleegungErgeebnis ZerleegeOverviewPresetLaade(
            ISictAutomatZuusctand AutomaatZuusctand,
            OverviewPresetTyp PresetTyp,
            string PresetIdent,
            string ZiilTabIdent)
        {
            var AufgaabeParamZerleegungErgeebnis = new SictAufgaabeParamZerleegungErgeebnis(null, false);

            if (null == PresetIdent)
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            if (null == ZiilTabIdent)
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            if (null == AutomaatZuusctand)
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            var ScnapscusWindowOverview = AutomaatZuusctand.WindowOverviewScnapscusLezte();

            var WindowOverviewScnapscusLezteListeTab = AutomaatZuusctand.WindowOverviewScnapscusLezteListeTabNuzbar();

            if (null == ScnapscusWindowOverview)
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            if (null == WindowOverviewScnapscusLezteListeTab)
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            var ZiilTab =
                WindowOverviewScnapscusLezteListeTab
                .FirstOrDefault((Kandidaat) => string.Equals(Kandidaat.LabelBescriftung, ZiilTabIdent, StringComparison.InvariantCultureIgnoreCase));

            if (null == ZiilTab)
            {
                AufgaabeParamZerleegungErgeebnis.FüügeAn(
                    AufgaabeParamAndere.KonstruktNaacNuzerMeldungZuEveOnline(
                        SictNaacNuzerMeldungZuEveOnline.ErrorGenerel(-1, new SictNaacNuzerMeldungZuEveOnlineCause(
                                                                         OverviewMissingTab: ZiilTabIdent))));

                return(AufgaabeParamZerleegungErgeebnis);
            }

            if (!(ZiilTab == AutomaatZuusctand.WindowOverviewScnapscusLezteTabAktiiv()))
            {
                AufgaabeParamZerleegungErgeebnis.FüügeAn(
                    AufgaabeParamAndere.KonstruktMausPfaad(
                        SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(ZiilTab)));

                return(AufgaabeParamZerleegungErgeebnis);
            }

            AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAin();

            if (string.Equals(ScnapscusWindowOverview.OverviewPresetIdent, PresetIdent,
                              StringComparison.InvariantCultureIgnoreCase))
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            var MenuEntryPattern = "load\\s*" + PresetTyp.ToString();

            AufgaabeParamZerleegungErgeebnis.FüügeAn(
                AufgaabeParamAndere.AufgaabeAktioonMenu(
                    ZiilTab,
                    new SictAnforderungMenuKaskaadeAstBedingung[] {
                new SictAnforderungMenuKaskaadeAstBedingung(MenuEntryPattern),
                new SictAnforderungMenuKaskaadeAstBedingung("^" + Regex.Escape(PresetIdent) + "$", true)
            }));

            return(AufgaabeParamZerleegungErgeebnis);
        }
Beispiel #3
0
        static public SictAufgaabeParamZerleegungErgeebnis ZerleegeShipAktuelOpenInventoryCargoTyp(
            SictAutomatZuusctand AutomaatZuusctand,
            SictShipCargoTypSictEnum CargoTyp,
            out VonSensor.WindowInventoryPrimary ErgeebnisWindowShipInventory,
            out VonSensor.Inventory ErgeebnisShipInventory)
        {
            bool ZerleegungVolsctändig = true;
            var  InternMengeAufgaabeKomponenteParam = new List <SictAufgaabeParam>();

            ErgeebnisWindowShipInventory = null;
            ErgeebnisShipInventory       = null;

            VonSensor.WindowInventoryPrimary ScnapscusShipWindowInventory = null;

            var Gbs = AutomaatZuusctand.Gbs();

            var AusScnapscusAuswertungZuusctand = AutomaatZuusctand.ListeScnapscusLezteAuswertungErgeebnisNaacSimu;

            var AusScnapcusMengeWindowInventory =
                (null == AusScnapscusAuswertungZuusctand) ? null : AusScnapscusAuswertungZuusctand.MengeWindowInventory;

            if (null != AusScnapcusMengeWindowInventory)
            {
                if (1 == AusScnapcusMengeWindowInventory.Length)
                {
                    var KandidaatAnforderungLeereCargoWindowInventory = AusScnapcusMengeWindowInventory.FirstOrDefault();

                    if (null != KandidaatAnforderungLeereCargoWindowInventory)
                    {
                        if (null != KandidaatAnforderungLeereCargoWindowInventory.LinxTreeEntryActiveShip)
                        {
                            ScnapscusShipWindowInventory = KandidaatAnforderungLeereCargoWindowInventory;
                        }
                    }
                }
            }

            var ScnapscusShipWindowInventoryLinxTreeEntryActiveShip =
                (null == ScnapscusShipWindowInventory) ? null : ScnapscusShipWindowInventory.LinxTreeEntryActiveShip;

            if (null == ScnapscusShipWindowInventory)
            {
                ZerleegungVolsctändig = false;

                var NeocomButtonInventory = AusScnapscusAuswertungZuusctand.NeocomButtonInventory;

                if (null == NeocomButtonInventory)
                {
                }
                else
                {
                    InternMengeAufgaabeKomponenteParam.Add(AufgaabeParamAndere.KonstruktMausPfaad(SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(NeocomButtonInventory)));
                }
            }
            else
            {
                var WindowInventoryZuusctand =
                    (null == Gbs) ? null :
                    Gbs.ZuHerkunftAdreseWindow(ScnapscusShipWindowInventory.Ident);

                if (null == ScnapscusShipWindowInventoryLinxTreeEntryActiveShip)
                {
                }
                else
                {
                    var ZuCargoTypTreeEntry =
                        ScnapscusShipWindowInventoryLinxTreeEntryActiveShip.TreeEntryBerecneAusCargoTyp(CargoTyp);

                    var ZuAuswaalReczMengeKandidaatLinxTreeEntry = ScnapscusShipWindowInventory.ZuAuswaalReczMengeKandidaatLinxTreeEntry;

                    if (null == ZuCargoTypTreeEntry)
                    {
                        //	Sicersctele das AnforderungLeereCargoWindowInventoryLinxTreeEntryActiveShip expanded.

                        if (0 < ExtractFromOldAssembly.Bib3.Extension.CountNullable(ScnapscusShipWindowInventoryLinxTreeEntryActiveShip.MengeChild))
                        {
                            //	ist beraits Expanded.
                        }
                        else
                        {
                            var ExpandCollapseToggleFläce = ScnapscusShipWindowInventoryLinxTreeEntryActiveShip.ExpandCollapseToggleFläce;

                            if (null == ExpandCollapseToggleFläce)
                            {
                            }
                            else
                            {
                                InternMengeAufgaabeKomponenteParam.Add(AufgaabeParamAndere.KonstruktMausPfaad(
                                                                           SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(ExpandCollapseToggleFläce)));
                            }
                        }
                    }
                    else
                    {
                        if (1 == ExtractFromOldAssembly.Bib3.Extension.CountNullable(ZuAuswaalReczMengeKandidaatLinxTreeEntry))
                        {
                            var ZuAuswaalReczLinxTreeEntry = ZuAuswaalReczMengeKandidaatLinxTreeEntry.FirstOrDefault();
                            var AuswaalReczInventory       = ScnapscusShipWindowInventory.AuswaalReczInventory;

                            if (ZuCargoTypTreeEntry == ZuAuswaalReczLinxTreeEntry &&
                                null != AuswaalReczInventory)
                            {
                                //	Erfolg.

                                ErgeebnisWindowShipInventory = ScnapscusShipWindowInventory;
                                ErgeebnisShipInventory       = AuswaalReczInventory;
                            }
                            else
                            {
                                InternMengeAufgaabeKomponenteParam.Add(AufgaabeParamAndere.KonstruktMausPfaad(
                                                                           SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(ZuCargoTypTreeEntry.TopContLabel)));
                            }
                        }
                    }
                }
            }

            return(new SictAufgaabeParamZerleegungErgeebnis(InternMengeAufgaabeKomponenteParam, ZerleegungVolsctändig));
        }
Beispiel #4
0
        static public SictAufgaabeParamZerleegungErgeebnis ZerleegeShipStop(
            ISictAutomatZuusctand AutomaatZuusctand)
        {
            var AufgaabeParamZerleegungErgeebnis = new SictAufgaabeParamZerleegungErgeebnis(null, false);

            if (null == AutomaatZuusctand)
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            var Scnapscus = AutomaatZuusctand.ListeScnapscusLezteAuswertungErgeebnisNaacSimu;

            if (null == Scnapscus)
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            var ScnapscusShipUi = Scnapscus.ShipUi;

            if (null == ScnapscusShipUi)
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            var SelbstShipZuusctand = Scnapscus.SelfShipState;

            if (null == SelbstShipZuusctand)
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            var FittingUndShipZuusctand = AutomaatZuusctand.FittingUndShipZuusctand;

            if (SelbstShipZuusctand.Warping ?? false)
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            if (SelbstShipZuusctand.SpeedDurcMeterProSekunde < 1)
            {
                AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAin();

                return(AufgaabeParamZerleegungErgeebnis);
            }

            if (null != FittingUndShipZuusctand)
            {
                var AusShipUIIndicationLezteMitZait = FittingUndShipZuusctand.AusShipUIIndicationLezteMitZait;

                if (null != AusShipUIIndicationLezteMitZait)
                {
                    if (null != AusShipUIIndicationLezteMitZait.Wert)
                    {
                        if (SictZuInRaumObjektManööverTypEnum.Stop == AusShipUIIndicationLezteMitZait.Wert.ManöverTyp)
                        {
                            AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAin();

                            return(AufgaabeParamZerleegungErgeebnis);
                        }
                    }
                }
            }

            var ButtonStop = ScnapscusShipUi.ButtonStop;

            if (null == ButtonStop)
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            AufgaabeParamZerleegungErgeebnis.FüügeAn(
                AufgaabeParamAndere.KonstruktMausPfaad(
                    SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(ButtonStop)));

            AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAin();

            return(AufgaabeParamZerleegungErgeebnis);
        }
Beispiel #5
0
        public void FürMissionListeAufgaabeNääxteParamBerecne(
            ISictAutomatZuusctand AutomaatZuusctand,
            out IEnumerable <SictAufgaabeParam> FürMissionListeAufgaabeNääxteParam)
        {
            var ListeAufgaabeNääxteParam = new List <SictAufgaabeParam>();

            FürMissionListeAufgaabeNääxteParam = ListeAufgaabeNääxteParam;

            if (null == AutomaatZuusctand)
            {
                return;
            }

            var OptimatParam = AutomaatZuusctand.OptimatParam();

            if (null == OptimatParam)
            {
                return;
            }

            var ZaitMili = AutomaatZuusctand.NuzerZaitMili;

            var AusScnapscusAuswertungZuusctand = AutomaatZuusctand.ListeScnapscusLezteAuswertungErgeebnisNaacSimu;

            var GbsButtonListSurroundings =
                (null == AusScnapscusAuswertungZuusctand) ? null :
                AusScnapscusAuswertungZuusctand.InfoPanelLocationInfoButtonListSurroundings();

            var UtilmenuMission = (null == AusScnapscusAuswertungZuusctand) ? null : AusScnapscusAuswertungZuusctand.UtilmenuMission;

            var MengeWindowAgentDialogue = (null == AusScnapscusAuswertungZuusctand) ? null : AusScnapscusAuswertungZuusctand.MengeWindowAgentDialogue;

            var FittingUndShipZuusctand = AutomaatZuusctand.FittingUndShipZuusctand;
            var InRaumAktioonUndGefect  = AutomaatZuusctand.InRaumAktioonUndGefect;

            var UtilmenuMissionLezteNocOfeMitBeginZait = this.UtilmenuMissionLezteNocOfeMitBeginZait;

            var UtilmenuMissionLezteNocOfeAlter = (ZaitMili - UtilmenuMissionLezteNocOfeMitBeginZait.Zait) / 1000;

            var VonNuzerParamMission = (null == OptimatParam) ? null : OptimatParam.Mission;

            var VonNuzerParamMissionAktioonAcceptFraigaabe = (null == VonNuzerParamMission) ? null : VonNuzerParamMission.AktioonAcceptFraigaabe;

            var MissionAktuel = this.MissionAktuel;

            var MissionAktuelObjectiveZuZaitLezteNulbar =
                (null == MissionAktuel) ? null : MissionAktuel.ListeMesungObjectiveZuusctandZuZaitLezteBerecne();

            var MissionAktuelObjectiveLezte =
                MissionAktuelObjectiveZuZaitLezteNulbar.HasValue ? MissionAktuelObjectiveZuZaitLezteNulbar.Value.Wert : null;

            var MissionAktuelWindowAgentDialogueZuZaitLezte = (null == MissionAktuel) ? null : MissionAktuel.WindowAgentDialogueZuZaitLezteBerecne();

            var MissionAktuelTailFürNuzer = (null == MissionAktuel) ? null : MissionAktuel.TailFürNuzer;

            var MissionAktuelAgentLevel = (null == MissionAktuelTailFürNuzer) ? null : MissionAktuelTailFürNuzer.AgentLevel;

            var MissionAktuelStrategikon = (null == MissionAktuel) ? null : MissionAktuel.Strategikon;

            var MissionAktuelStrategikonFürLevel4WarpToWithinFürDistanceAbhängigVonWirkungDestruktRange =
                (null == MissionAktuelStrategikon) ? null :
                MissionAktuelStrategikon.FürLevel4WarpToWithinFürDistanceAbhängigVonWirkungDestruktRange;

            var MissionZiilLocationNääxteInUtilmenu = (null == MissionAktuel) ? null : MissionAktuel.ZiilLocationNääxteInUtilmenu;
            var MissionButtonUtilmenu = (null == MissionAktuel) ? null : MissionAktuel.ButtonUtilmenu;

            var ShipZuusctandLezte = (null == FittingUndShipZuusctand) ? null : FittingUndShipZuusctand.ShipZuusctand;

            var MissionAnforderungActiveShipCargoLeereLezteZaitMili = this.AnforderungActiveShipCargoLeereLezteZaitMili;

            var AnnaameActiveShipCargoLeerLezteZaitMili = AutomaatZuusctand.AnnaameActiveShipCargoGeneralLeerLezteZaitMili;

            var SelbsctShipDocking   = (null == ShipZuusctandLezte) ? null : ShipZuusctandLezte.Docking;
            var SelbsctShipDocked    = (null == ShipZuusctandLezte) ? null : ShipZuusctandLezte.Docked;
            var SelbsctShipWarping   = (null == ShipZuusctandLezte) ? null : ShipZuusctandLezte.Warping;
            var WarpingLezteZaitMili = (null == FittingUndShipZuusctand) ? null : FittingUndShipZuusctand.WarpingLezteZaitMili;
            var JumpingLezteZaitMili = (null == FittingUndShipZuusctand) ? null : FittingUndShipZuusctand.JumpingLezteZaitMili;

            var WarpingLezteAlterMili = ZaitMili - WarpingLezteZaitMili;
            var JumpingLezteAlterMili = ZaitMili - JumpingLezteZaitMili;

            var AnnaameGefectDistanceOptimum = (null == FittingUndShipZuusctand) ? null : FittingUndShipZuusctand.AnnaameModuleDestruktRangeOptimum;
            var FittingUndShipZuusctandAnnaameTargetingDistanceScrankeMax = (null == FittingUndShipZuusctand) ? null : FittingUndShipZuusctand.AnnaameTargetingDistanceScrankeMax;

            var LobbyAgentEntryStartConversation            = this.LobbyAgentEntryStartConversation;
            var MissionButtonUtilmenuObjectiveZuMese        = this.MissionButtonUtilmenuObjectiveZuMese;
            var WindowAgentDialogueMissionAcceptOderRequest = this.WindowAgentDialogueMissionAcceptOderRequest;

            var MissionAcceptNääxte  = this.MissionAcceptNääxte;
            var MissionDeclineNääxte = this.MissionDeclineNääxte;
            var InAktuelemSystemMengeStationFürWelcePasendeMissionNictAusgesclose = this.InAktuelemSystemMengeStationFürWelcePasendeMissionNictAusgesclose;

            var ZuBeginZaitMissionFittingZuTesteNääxte = this.ZuBeginZaitMissionFittingZuTesteNääxte;

            var CurrentLocation = (null == AusScnapscusAuswertungZuusctand) ? null : AusScnapscusAuswertungZuusctand.CurrentLocationInfo();

            var CurrentLocationNearestName = (null == CurrentLocation) ? null : CurrentLocation.NearestName;

            var MissionZiilLocationNääxteAuswert = (null == MissionAktuel) ? null : MissionAktuel.ZiilLocationNääxteAuswert;

            var MissionZiilLocationNääxteErraict = (null == MissionZiilLocationNääxteAuswert) ? null : MissionZiilLocationNääxteAuswert.LocationErraict;

            var MissionZiilLocationNääxteAuswertObjectiveLocation = (null == MissionZiilLocationNääxteAuswert) ? null : MissionZiilLocationNääxteAuswert.Objective;

            var MissionAktuelWindowAgentDialogueVolsctändigGeöfnet =
                (null == MengeWindowAgentDialogue || null == MissionAktuel) ? null :
                MengeWindowAgentDialogue.FirstOrDefault((KandidaatWindow) => EveOnline.Anwendung.SictMissionZuusctand.WindowAgentPastZuMission(MissionAktuel, KandidaatWindow, true, true, true, true));

            var MissionAktuelWindowAgentDialogueHalbGeöfnet =
                (null == MengeWindowAgentDialogue || null == MissionAktuel) ? null :
                MengeWindowAgentDialogue.FirstOrDefault((KandidaatWindow) => EveOnline.Anwendung.SictMissionZuusctand.WindowAgentPastZuMission(MissionAktuel, KandidaatWindow, true, true, false, false));

            var RaumVerlaseFraigaabe = (null == InRaumAktioonUndGefect) ? null : InRaumAktioonUndGefect.RaumVerlaseFraigaabe;

            var GefectBaitritFraigaabe = (null == InRaumAktioonUndGefect) ? null : InRaumAktioonUndGefect.GefectBaitritFraigaabe;

            var AbovemainMessageCannotWarpThereLezte = (null == FittingUndShipZuusctand) ? null : FittingUndShipZuusctand.AbovemainMessageCannotWarpThereLezte;

            var AbovemainMessageCannotWarpThereLezteBeginZait =
                (null == AbovemainMessageCannotWarpThereLezte) ? null : AbovemainMessageCannotWarpThereLezte.BeginZait;

            var AbovemainMessageCannotWarpThereLezteBeginAlterMili = ZaitMili - AbovemainMessageCannotWarpThereLezteBeginZait;

            var MissionListeMesungObjectiveZuusctandLezteMitZaitNulbar =
                (null == MissionAktuel) ? null : MissionAktuel.ListeMesungObjectiveZuusctandZuZaitLezteBerecne();

            var MissionListeMesungObjectiveZuusctandLezte =
                MissionListeMesungObjectiveZuusctandLezteMitZaitNulbar.HasValue ?
                MissionListeMesungObjectiveZuusctandLezteMitZaitNulbar.Value.Wert : null;

            var MissionListeMesungObjectiveZuusctandLezteCompleteBisAufLocationDropOff =
                (null == MissionListeMesungObjectiveZuusctandLezte) ? null : MissionListeMesungObjectiveZuusctandLezte.CompleteBisAufLocationDropOffBerecne();

            var MissionAktuelAgentLocation =
                (null == MissionAktuelTailFürNuzer) ? null : MissionAktuelTailFürNuzer.AgentLocation;

            var MissionAktuelAgentLocationLocationNameTailSystem =
                (null == MissionAktuelAgentLocation) ? null : MissionAktuelAgentLocation.LocationNameTailSystem;

            var CurrentLocationSolarSystemName =
                (null == CurrentLocation) ? null : CurrentLocation.SolarSystemName;

            var UtilmenuZuEntferneAlter =
                null == UtilmenuMissionLezteNocOfeMitBeginZait.Wert ? (Int64?)null :
                UtilmenuMissionLezteNocOfeAlter;

            if (null != MissionAktuelTailFürNuzer)
            {
                if (MissionAktuelTailFürNuzer.FürMissionFittingBezaicner.IsNullOrEmpty())
                {
                    ListeAufgaabeNääxteParam.Add(AufgaabeParamAndere.KonstruktNaacNuzerMeldungZuEveOnline(
                                                     SictNaacNuzerMeldungZuEveOnline.WarningGenerel(-1, SictNaacNuzerMeldungZuEveOnlineCauseTypeBinär.MissionCurrentNoFittingConfigured)));
                }
            }

            if (33 < UtilmenuZuEntferneAlter)
            {
                ListeAufgaabeNääxteParam.Add(AufgaabeParamAndere.KonstruktMenuEntferne());
            }

            if (null != MissionAktuelWindowAgentDialogueVolsctändigGeöfnet &&
                null != MissionAktuelObjectiveLezte)
            {
                if (true == MissionAktuelObjectiveLezte.Complete)
                {
                    //	Button Complete sol ersct naac Messung Objective Complete betäätigt werde da sunsct der Erfolg der Mission scpääter nit erkant werd.

                    var ButtonComplete = MissionAktuelWindowAgentDialogueVolsctändigGeöfnet.ButtonComplete;

                    if (null == ButtonComplete)
                    {
                    }
                    else
                    {
                        /*
                         * 2014.04.24 ("20:06") Beobactung Probleeem:
                         * "Mission of Mercy" werd von Automaat "complete remotely" -> mit Complete warte bis in Station "Agent Home Base" gedockt.
                         *
                         * Daher noie Bedingung für Complete: ersct wenn Scpiiler in glaiche System gedockt isc in welcem sic der Agent zur Mission befindet.
                         * */

                        if (true == SelbsctShipDocked &&
                            string.Equals(MissionAktuelAgentLocationLocationNameTailSystem, CurrentLocationSolarSystemName, StringComparison.InvariantCultureIgnoreCase))
                        {
                            ListeAufgaabeNääxteParam.Add(
                                SictAufgaabeParam.KonstruktAufgaabeParam(
                                    AufgaabeParamAndere.KonstruktMausPfaad(
                                        SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(ButtonComplete)),
                                    new     string[] { SictAufgaabeParam.ObjektSictZwekKomponente(MissionAktuel) + ".Complete" }));
                        }
                    }
                }
            }

            if (null != MissionListeMesungObjectiveZuusctandLezte &&
                !(false == MissionZiilLocationNääxteErraict))
            {
                //	Mission Complete

                if (true == MissionListeMesungObjectiveZuusctandLezte.Complete ||
                    true == MissionListeMesungObjectiveZuusctandLezteCompleteBisAufLocationDropOff)
                {
                    if (null != MissionAktuelWindowAgentDialogueHalbGeöfnet)
                    {
                        var ButtonRequestMission = MissionAktuelWindowAgentDialogueHalbGeöfnet.ButtonRequestMission;
                        var ButtonViewMission    = MissionAktuelWindowAgentDialogueHalbGeöfnet.ButtonViewMission;

                        var Button = ButtonRequestMission ?? ButtonViewMission;

                        if (null != Button)
                        {
                            ListeAufgaabeNääxteParam.Add(
                                SictAufgaabeParam.KonstruktAufgaabeParam(
                                    AufgaabeParamAndere.KonstruktMausPfaad(SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(Button)),
                                    new string[] {
                                "Button[" + (Button.Bescriftung ?? "") + "].click"
                            }));
                            return;
                        }
                    }

                    var DialogueBeraitsGeöfnet = false;

                    if (MissionAktuelWindowAgentDialogueZuZaitLezte.HasValue)
                    {
                        if (ZaitMili <= MissionAktuelWindowAgentDialogueZuZaitLezte.Value.Zait &&
                            null != MissionAktuelWindowAgentDialogueZuZaitLezte.Value.Wert)
                        {
                            DialogueBeraitsGeöfnet = true;
                        }
                    }

                    if (!DialogueBeraitsGeöfnet)
                    {
                        ListeAufgaabeNääxteParam.Add(AufgaabeParamAndere.KonstruktMissionStartConversation(MissionAktuel));
                    }
                }
            }

            if (null != MissionZiilLocationNääxteAuswert)
            {
                //	zu nääxte Ziil Location raise

                if (JumpingLezteAlterMili < 5e+3 ||
                    WarpingLezteAlterMili < 4e+3)
                {
                    return;
                }

                var MissionZiilLocationNääxteInfoAggr = MissionAktuel.ZuObjectiveLocationLocationInfoAggr(MissionZiilLocationNääxteAuswert, true);

                var MissionZiilLocationNääxteIstDeadspace = (null == MissionZiilLocationNääxteInfoAggr) ? null : MissionZiilLocationNääxteInfoAggr.IstDeadspace;

                if (false == MissionZiilLocationNääxteAuswert.LocationErraict)
                {
                    if (false == MissionZiilLocationNääxteAuswert.LocationErraictTailSystem &&
                        true == MissionZiilLocationNääxteAuswert.LocationSystemGlaicInfoPanelRouteDestinationSystem)
                    {
                        //	Ziilsystem isc in InfoPanel Route als Ziil gesezt.

                        ListeAufgaabeNääxteParam.Add(new AufgaabeParamInfoPanelRouteFüüreAus());
                    }

                    if (!(JumpingLezteAlterMili < 5e+3))
                    {
                        if (true == SelbsctShipDocked)
                        {
                            ListeAufgaabeNääxteParam.Add(AufgaabeParamAndere.KonstruktUnDock());
                        }

                        var InZiilLocationSystemUnDockedAktioon =
                            (true == MissionZiilLocationNääxteAuswert.LocationErraictTailSystem &&
                             !(true == SelbsctShipWarping) &&
                             !(true == SelbsctShipDocking) &&
                             false == SelbsctShipDocked);

                        {
                            //	2014.02.26	Noie Verzwaigung: Für LVL4 Mission sol "Warp to Location" -> "Within" verwendet werde.

                            if (InZiilLocationSystemUnDockedAktioon &&
                                (false == MissionZiilLocationNääxteAuswert.LocationErfordertDock) &&
                                !(MissionAktuelAgentLevel < 4) &&
                                !(true == MissionZiilLocationNääxteIstDeadspace) &&
                                null != MissionZiilLocationNääxteInfoAggr &&
                                true == MissionAktuelStrategikonFürLevel4WarpToWithinFürDistanceAbhängigVonWirkungDestruktRange &&
                                !(true == SelbsctShipDocked))
                            {
                                var MenuEntryMissionRegexPattern = VonSensor.MenuEntryScpez.InSurroundingsMenuEntryAgentMissionRegexPattern(
                                    MissionAktuelTailFürNuzer);

                                //	!!!!	Noc zu sctabilisiire: tatsäclice Bezaicnung ermitle, z.B. aus UtilMenu
                                var MenuEntryLocationRegexPattern = "Encounter";

                                var MenuEntryWarpToLocationRegexPattern = "Warp to Location";

                                var WarpDistanceOptimum = Math.Min((AnnaameGefectDistanceOptimum + 10000) ?? 100000, FittingUndShipZuusctandAnnaameTargetingDistanceScrankeMax ?? 80000);

                                var AnnaameMengeWarpDistanceVerfüügbar =
                                    Enumerable.Range(0, 21).Select((Index) => Index * 5000).ToArray();

                                //	!!!!	Noc zu sctabilisiire: tatsäclic verfüügbaare Entry ermitle aus lezte Menu
                                var AnnaameMengeWarpDistanceVerfüügbarMitRegexPattern =
                                    AnnaameMengeWarpDistanceVerfüügbar
                                    .Select((Distance) => new KeyValuePair <int, string>(Distance, "within\\s*" + (Distance / 1000).ToString() + "\\s*km"))
                                    .ToArray();

                                var ListeEntryDistanceRegexPatternOrdnetNaacGüte =
                                    AnnaameMengeWarpDistanceVerfüügbarMitRegexPattern
                                    .OrderBy((Kandidaat) => Math.Abs(Kandidaat.Key - WarpDistanceOptimum))
                                    .Select((Kandidaat) => Kandidaat.Value)
                                    .ToArray();

                                ListeAufgaabeNääxteParam.Add(AufgaabeParamAndere.AufgaabeAktioonMenu(
                                                                 GbsButtonListSurroundings,
                                                                 new SictAnforderungMenuKaskaadeAstBedingung[] {
                                    new     SictAnforderungMenuKaskaadeAstBedingung(MenuEntryMissionRegexPattern),
                                    new     SictAnforderungMenuKaskaadeAstBedingung(MenuEntryLocationRegexPattern),
                                    new     SictAnforderungMenuKaskaadeAstBedingung(new     string[] {
                                        MenuEntryWarpToLocationRegexPattern + "$",
                                        MenuEntryWarpToLocationRegexPattern
                                    }),
                                    new     SictAnforderungMenuKaskaadeAstBedingung(ListeEntryDistanceRegexPatternOrdnetNaacGüte),
                                }));
                            }
                        }

                        if ((false == MissionZiilLocationNääxteAuswert.LocationErraictTailSystem &&
                             false == MissionZiilLocationNääxteAuswert.LocationSystemGlaicInfoPanelRouteDestinationSystem) ||
                            InZiilLocationSystemUnDockedAktioon)
                        {
                            var MissionZiilLocationNääxteLocationName =
                                MissionZiilLocationNääxteAuswert.Objective.Location.LocationName;

                            var ZwekListeKomponente = new string[] { "travel to Mission Location[" + (MissionZiilLocationNääxteLocationName ?? "") + "]" };

                            //	Wen (Ship sic noc nit im Ziil Solarsysteem befindet und Route noc nit naac InfoPanelRoute gesezt wurde) oder (Ship sic scon im Ziil Solarsysteem und nit in Warp befindet) sol über Utilmenu waitergesctoiert werde.

                            if (AbovemainMessageCannotWarpThereLezteBeginAlterMili < 11111)
                            {
                                ListeAufgaabeNääxteParam.Add(AufgaabeParamAndere.KonstruktGridVerlase());
                            }

                            if (null == MissionZiilLocationNääxteInUtilmenu)
                            {
                                if (null == MissionButtonUtilmenu)
                                {
                                }
                                else
                                {
                                    ListeAufgaabeNääxteParam.Add(
                                        SictAufgaabeParam.KonstruktAufgaabeParam(
                                            AufgaabeParamAndere.KonstruktMausPfaad(SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(MissionButtonUtilmenu)),
                                            Optimat.Glob.ListeErwaitertAlsArray(ZwekListeKomponente, new string[] { "InfoPanelMenu.Create" })));
                                }
                            }
                            else
                            {
                                var KnopfSetDestination = MissionZiilLocationNääxteInUtilmenu.KnopfSetDestination;
                                var KnopfWarpTo         = MissionZiilLocationNääxteInUtilmenu.KnopfWarpTo;
                                var KnopfDock           = MissionZiilLocationNääxteInUtilmenu.KnopfDock;
                                var KnopfApproach       = MissionZiilLocationNääxteInUtilmenu.KnopfApproach;

                                //	WarpTo oder Dock oder Approach nur dan betäätige wen nict geraade in Warp

                                var KnopfZuBetäätige =
                                    ((true == SelbsctShipWarping) ? null : (KnopfWarpTo ?? KnopfDock)) ??
                                    KnopfSetDestination;

                                var KnopfBetäätigeFraigaabe =
                                    KnopfSetDestination == KnopfZuBetäätige;

                                if (true == RaumVerlaseFraigaabe)
                                {
                                    if (KnopfWarpTo == KnopfZuBetäätige &&
                                        true == GefectBaitritFraigaabe)
                                    {
                                        KnopfBetäätigeFraigaabe = true;
                                    }

                                    if (KnopfDock == KnopfZuBetäätige)
                                    {
                                        KnopfBetäätigeFraigaabe = true;
                                    }
                                }

                                if (null != KnopfZuBetäätige && KnopfBetäätigeFraigaabe)
                                {
                                    ListeAufgaabeNääxteParam.Add(
                                        SictAufgaabeParam.KonstruktAufgaabeParam(
                                            AufgaabeParamAndere.KonstruktMausPfaad(SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(KnopfZuBetäätige)),
                                            Optimat.Glob.ListeErwaitertAlsArray(ZwekListeKomponente, new string[] { "Button[" + KnopfZuBetäätige.Bescriftung + "]" })));
                                }
                            }
                        }
                    }
                }
            }

            if (null != WindowAgentDialogueMissionAcceptOderRequest)
            {
                ListeAufgaabeNääxteParam.Add(AufgaabeParamAndere.KonstruktWindowAgentDialogueMissionAcceptOderRequest(WindowAgentDialogueMissionAcceptOderRequest));
                return;
            }

            /*
             * 2014.06.10
             *
             * if (null != WindowAgentDialogueMissionDecline)
             * {
             *      ListeAufgaabeNääxteParam.Add(SictAufgaabeParam.KonstruktWindowAgentDialogueMissionDecline(WindowAgentDialogueMissionDecline));
             *      return;
             * }
             * */

            if (null != MissionDeclineNääxte)
            {
                ListeAufgaabeNääxteParam.Add(AufgaabeParamAndere.KonstruktMissionDecline(MissionDeclineNääxte));
                return;
            }

            if (null != MissionAcceptNääxte)
            {
                ListeAufgaabeNääxteParam.Add(AufgaabeParamAndere.KonstruktMissionAccept(MissionAcceptNääxte));
                return;
            }

            if (null != LobbyAgentEntryStartConversation)
            {
                var WindowAgentDialoguePasendZuAgentEntry =
                    ExtractFromOldAssembly.Bib3.Extension.FirstOrDefaultNullable(
                        MengeWindowAgentDialogue,
                        (Kandidaat) => string.Equals(Kandidaat.AgentName, LobbyAgentEntryStartConversation.AgentName, StringComparison.InvariantCultureIgnoreCase));

                if (null != WindowAgentDialoguePasendZuAgentEntry)
                {
                    var ButtonRequestMission = WindowAgentDialoguePasendZuAgentEntry.ButtonRequestMission;
                    var ButtonViewMission    = WindowAgentDialoguePasendZuAgentEntry.ButtonViewMission;

                    var Button = ButtonRequestMission ?? ButtonViewMission;

                    if (null != Button)
                    {
                        ListeAufgaabeNääxteParam.Add(
                            SictAufgaabeParam.KonstruktAufgaabeParam(
                                AufgaabeParamAndere.KonstruktMausPfaad(SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(Button)),
                                SictAufgaabeParam.ObjektSictZwekKomponente(WindowAgentDialoguePasendZuAgentEntry) + "." + (Button.Bescriftung ?? "")));
                        return;
                    }
                }

                ListeAufgaabeNääxteParam.Add(AufgaabeParamAndere.KonstruktLobbyAgentEntryStartConversation(LobbyAgentEntryStartConversation));
                return;
            }

            if (null != MissionButtonUtilmenuObjectiveZuMese)
            {
                ListeAufgaabeNääxteParam.Add(AufgaabeParamAndere.KonstruktMissionButtonUtilmenuObjectiveZuMese(MissionButtonUtilmenuObjectiveZuMese));
                return;
            }

            if (null != ZuBeginZaitMissionFittingZuTesteNääxte.Wert)
            {
                if (!(true == SelbsctShipDocked))
                {
                    var MissionFittingAgentLocation = ZuBeginZaitMissionFittingZuTesteNääxte.Wert.AgentLocation();

                    if (null == MissionFittingAgentLocation)
                    {
                    }
                    else
                    {
                        ListeAufgaabeNääxteParam.Add(new        AufgaabeParamShipDock(MissionFittingAgentLocation.LocationName));
                        return;
                    }
                }

                if (!(MissionAnforderungActiveShipCargoLeereLezteZaitMili < AnnaameActiveShipCargoLeerLezteZaitMili))
                {
                    //	Warte bis Cargo Leere abgesclose
                    return;
                }

                if (null != ZuBeginZaitMissionFittingZuTesteNääxte.Wert.FürMissionFittingBezaicner())
                {
                    ListeAufgaabeNääxteParam.Add(AufgaabeParamAndere.KonstruktFittingZuApliziire(
                                                     new SictOptimatParamFitting(null, ZuBeginZaitMissionFittingZuTesteNääxte.Wert.FürMissionFittingBezaicner())));
                    return;
                }
            }

            if (ZaitMili - WarpingLezteZaitMili < 3333)
            {
                //	Auf Ende Warp warte.
                return;
            }

            if (!(true == VonNuzerParamMissionAktioonAcceptFraigaabe))
            {
                return;
            }

            if (null != InAktuelemSystemMengeStationFürWelcePasendeMissionNictAusgesclose &&
                null != CurrentLocation)
            {
                //	Aine der Station aufsuuce in welce nit jeeder Agent unpasende Mission geOffered hat

                if (0 < InAktuelemSystemMengeStationFürWelcePasendeMissionNictAusgesclose.Length)
                {
                    var InAktuelemSystemMengeStationFürWelcePasendeMissionNictAusgescloseOrdnet =
                        InAktuelemSystemMengeStationFürWelcePasendeMissionNictAusgesclose
                        .OrderByDescending((StationUndAnzaal) => StationUndAnzaal.Value ?? 1)
                        .ToArray();

                    var MengeStationName =
                        InAktuelemSystemMengeStationFürWelcePasendeMissionNictAusgescloseOrdnet
                        .Select((Kandidaat) => Kandidaat.Key)
                        .Where((Kandidaat) => null != Kandidaat)
                        .ToArray();

                    var BeraitsDockedInStationMitAgentOoneUnpasendeOffer =
                        true == SelbsctShipDocked &&
                        null != CurrentLocationNearestName &&
                        MengeStationName.Any((StationName) => string.Equals(StationName, CurrentLocationNearestName));

                    if (!BeraitsDockedInStationMitAgentOoneUnpasendeOffer)
                    {
                        if (0 < MengeStationName.Length)
                        {
                            if (true == AusScnapscusAuswertungZuusctand.Docked())
                            {
                                ListeAufgaabeNääxteParam.Add(AufgaabeParamAndere.KonstruktUnDock());
                                return;
                            }

                            ListeAufgaabeNääxteParam.AddRange(
                                MengeStationName.Select((StationName) => new AufgaabeParamShipDock(StationName)));
                        }
                    }
                }
            }

            if (11 < UtilmenuZuEntferneAlter)
            {
                ListeAufgaabeNääxteParam.Add(AufgaabeParamAndere.KonstruktMenuEntferne());
            }
        }
        static public SictAufgaabeParamZerleegungErgeebnis ZerleegeShipAktuelOpenInventoryCargoTyp(
            ISictAutomatZuusctand AutomaatZuusctand,
            SictShipCargoTypSictEnum CargoTyp,
            out VonSensor.WindowInventoryPrimary ErgeebnisWindowShipInventory,
            out VonSensor.Inventory ErgeebnisShipInventory)
        {
            bool ZerleegungVolsctändig = true;
            var  InternMengeAufgaabeKomponenteParam = new List <SictAufgaabeParam>();

            ErgeebnisWindowShipInventory = null;
            ErgeebnisShipInventory       = null;

            VonSensor.WindowInventoryPrimary ScnapscusShipWindowInventory = null;

            var Gbs = AutomaatZuusctand.Gbs();

            var AusScnapscusAuswertungZuusctand = AutomaatZuusctand.ListeScnapscusLezteAuswertungErgeebnisNaacSimu;

            var AusScnapcusMengeWindowInventory =
                (null == AusScnapscusAuswertungZuusctand) ? null : AusScnapscusAuswertungZuusctand.MengeWindowInventory;

            if (null != AusScnapcusMengeWindowInventory)
            {
                if (1 == AusScnapcusMengeWindowInventory.Length)
                {
                    var KandidaatAnforderungLeereCargoWindowInventory = AusScnapcusMengeWindowInventory.FirstOrDefault();

                    if (null != KandidaatAnforderungLeereCargoWindowInventory)
                    {
                        if (null != KandidaatAnforderungLeereCargoWindowInventory.LinxTreeEntryActiveShip)
                        {
                            ScnapscusShipWindowInventory = KandidaatAnforderungLeereCargoWindowInventory;
                        }
                    }
                }
            }

            var ScnapscusShipWindowInventoryLinxTreeEntryActiveShip =
                (null == ScnapscusShipWindowInventory) ? null : ScnapscusShipWindowInventory.LinxTreeEntryActiveShip;

            if (null == ScnapscusShipWindowInventory)
            {
                ZerleegungVolsctändig = false;

                var NeocomButtonInventory = AusScnapscusAuswertungZuusctand.NeocomButtonInventory;

                if (null == NeocomButtonInventory)
                {
                }
                else
                {
                    InternMengeAufgaabeKomponenteParam.Add(AufgaabeParamAndere.KonstruktMausPfaad(
                                                               SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(NeocomButtonInventory)));
                }
            }
            else
            {
                var WindowInventoryZuusctand =
                    (null == Gbs) ? null :
                    Gbs.ZuHerkunftAdreseWindow(ScnapscusShipWindowInventory.Ident);

                {
                    //	2015.09.02	Erwaiterung:

                    var ScnapscusWindowInventoryLinxTreeListeEntryNitBenöötigt =
                        ScnapscusShipWindowInventory?.LinxTreeListeEntry
                        ?.Where(Kandidaat => !(Kandidaat == ScnapscusShipWindowInventory.LinxTreeEntryActiveShip))
                        ?.ToArray();

                    foreach (var LinxTreeEntryNitBenöötigt in ScnapscusWindowInventoryLinxTreeListeEntryNitBenöötigt)
                    {
                        if (!(0 < LinxTreeEntryNitBenöötigt.MengeChild.CountNullable()))
                        {
                            continue;
                        }

                        var LinxTreeEntryNitBenöötigtExpandCollapseToggleFläce = LinxTreeEntryNitBenöötigt.ExpandCollapseToggleFläce;

                        if (null == LinxTreeEntryNitBenöötigtExpandCollapseToggleFläce)
                        {
                        }
                        else
                        {
                            InternMengeAufgaabeKomponenteParam.Add(
                                SictAufgaabeParam.KonstruktAufgaabeParam(
                                    AufgaabeParamAndere.KonstruktMausPfaad(SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(LinxTreeEntryNitBenöötigtExpandCollapseToggleFläce)),
                                    "In Inventory collapse unnecessary branch"));
                        }
                    }
                }

                if (null == ScnapscusShipWindowInventoryLinxTreeEntryActiveShip)
                {
                }
                else
                {
                    var ZuCargoTypTreeEntry =
                        Optimat.EveOnline.Extension.TreeEntryBerecneAusCargoTyp(
                            ScnapscusShipWindowInventoryLinxTreeEntryActiveShip,
                            CargoTyp);

                    var ZuAuswaalReczMengeKandidaatLinxTreeEntry = ScnapscusShipWindowInventory.ZuAuswaalReczMengeKandidaatLinxTreeEntry;

                    if (null == ZuCargoTypTreeEntry)
                    {
                        //	Sicersctele das AnforderungLeereCargoWindowInventoryLinxTreeEntryActiveShip expanded.

                        if (0 < ExtractFromOldAssembly.Bib3.Extension.CountNullable(ScnapscusShipWindowInventoryLinxTreeEntryActiveShip.MengeChild))
                        {
                            //	ist beraits Expanded.

                            InternMengeAufgaabeKomponenteParam.Add(AufgaabeParamAndere.KonstruktNaacNuzerMeldungZuEveOnline(
                                                                       SictNaacNuzerMeldungZuEveOnline.ErrorGenerel(-1, new SictNaacNuzerMeldungZuEveOnlineCause(
                                                                                                                        ShipCargoMissingTyp: CargoTyp))));
                        }
                        else
                        {
                            var ExpandCollapseToggleFläce = ScnapscusShipWindowInventoryLinxTreeEntryActiveShip.ExpandCollapseToggleFläce;

                            if (null == ExpandCollapseToggleFläce)
                            {
                            }
                            else
                            {
                                InternMengeAufgaabeKomponenteParam.Add(AufgaabeParamAndere.KonstruktMausPfaad(
                                                                           SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(ExpandCollapseToggleFläce)));
                            }
                        }
                    }
                    else
                    {
                        var ZuAuswaalReczLinxTreeEntry = ZuAuswaalReczMengeKandidaatLinxTreeEntry.FirstOrDefaultNullable();
                        var AuswaalReczInventory       = ScnapscusShipWindowInventory.AuswaalReczInventory;

                        if (1 == ExtractFromOldAssembly.Bib3.Extension.CountNullable(ZuAuswaalReczMengeKandidaatLinxTreeEntry) &&
                            ZuCargoTypTreeEntry == ZuAuswaalReczLinxTreeEntry)
                        {
                            if (null == AuswaalReczInventory)
                            {
                                InternMengeAufgaabeKomponenteParam.Add(AufgaabeParamAndere.KonstruktMausPfaad(
                                                                           SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(ScnapscusShipWindowInventoryLinxTreeEntryActiveShip.TopContLabel)));
                            }
                            else
                            {
                                //	Erfolg.

                                ErgeebnisWindowShipInventory = ScnapscusShipWindowInventory;
                                ErgeebnisShipInventory       = AuswaalReczInventory;
                            }
                        }
                        else
                        {
                            InternMengeAufgaabeKomponenteParam.Add(AufgaabeParamAndere.KonstruktMausPfaad(
                                                                       SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(ZuCargoTypTreeEntry.TopContLabel)));
                        }
                    }
                }
            }

            return(new SictAufgaabeParamZerleegungErgeebnis(InternMengeAufgaabeKomponenteParam, ZerleegungVolsctändig));
        }
Beispiel #7
0
        public IEnumerable <SictAufgaabeParam> FürMineListeAufgaabeNääxteParamBerecneTailSurveyScan(
            ISictAutomatZuusctand AutomaatZuusctand)
        {
            if (null == AutomaatZuusctand)
            {
                return(null);
            }

            var NuzerZaitMili = AutomaatZuusctand.NuzerZaitMili;

            var ListeAufgaabeParam = new List <SictAufgaabeParam>();

            var MenuKaskaadeLezte = AutomaatZuusctand.MenuKaskaadeLezte();
            var MenuKaskaadeLezteAlterScritAnzaal = AutomaatZuusctand.ZuObjektBerecneAlterScnapscusAnzaal(MenuKaskaadeLezte);
            var TargetInputFookusTransitioonLezteAlterScritAnzaal = AutomaatZuusctand.TargetInputFookusTransitioonLezteAlterScritAnzaal();

            var MinerAktivitäätZyyklusGrenzeNaheSurveyScan =
                MengeTargetVerwendet
                .AnyNullable((Kandidaat) => Kandidaat.Value.MinerAktivitäätZyyklusGrenzeNaheSurveyScan ?? false);

            var ShipMengeModule = AutomaatZuusctand.ShipMengeModule();

            var ShipModuleSurveyScanner =
                ShipMengeModule
                .FirstOrDefaultNullable((Kandidaat) => Kandidaat.IstSurveyScanner ?? false);

            var WindowSurveyScanView = AutomaatZuusctand.WindowSurveyScanView();

            var WindowSurveyScanViewList = (null == WindowSurveyScanView) ? null : WindowSurveyScanView.ListHaupt;

            var WindowSurveyScanViewListListeEntry = (null == WindowSurveyScanViewList) ? null : WindowSurveyScanViewList.ListeEntry();

            var WindowSurveyScanViewListListeEntryGrupiirtNaacOreTyp =
                (null == WindowSurveyScanViewListListeEntry) ? null :
                WindowSurveyScanViewListListeEntry
                .GroupBy((Kandidaat) => Kandidaat.OreTypSictString ?? Kandidaat.BescriftungTailTitel)
                .ToArray();

            var SurveyScanAlterMili = AutomaatZuusctand.ScnapscusFrühesteZaitAlterMili(WindowSurveyScanViewList);

            var BisSurveyScanBeginZaitDauer = SurveyScanBeginZaitScrankeMin - NuzerZaitMili;

            var WindowSurveyScanViewListScnapscus = (null == WindowSurveyScanViewList) ? null : WindowSurveyScanViewList.AingangScnapscusTailObjektIdentLezteBerecne();

            if (MengeTargetVerwendet.WhereNullable((Kandidaat) => Kandidaat.Value.OreTypFraigaabe ?? false).IsNullOrEmpty())
            {
                return(ListeAufgaabeParam);
            }

            if (!(0 < BisSurveyScanBeginZaitDauer))
            {
                //	Verbindung zwisce SurveyScan und Target mese.

                var SurveyScanNoi = false;

                if (null == WindowSurveyScanViewList ||
                    !(SurveyScanAlterMili < 1000 * 60 * 4) ||
                    (4000 < SaitSurveyScanLezteShipStreke) ||
                    (!(SurveyScanAlterMili < 1000 * 10) &&
                     (MinerAktivitäätZyyklusGrenzeNaheSurveyScan ?? false)))
                {
                    SurveyScanNoi = true;
                }
                else
                {
                    var VonMinerNuldurcgangBisSurveyScanZait =
                        (WindowSurveyScanViewList.ScnapscusFrühesteZait ?? 0) - SurveyScanBeginZaitScrankeMin;

                    if (VonMinerNuldurcgangBisSurveyScanZait < 0)
                    {
                        SurveyScanNoi = true;
                    }
                }

                if (SurveyScanNoi)
                {
                    SictAufgaabeParam SurveyScanKonstruktAufgaabeParam = null;

                    if (null == WindowSurveyScanView)
                    {
                        SurveyScanKonstruktAufgaabeParam = AufgaabeParamAndere.KonstruktModuleScalteAin(ShipModuleSurveyScanner);
                    }
                    else
                    {
                        var WindowSurveyScanViewScnapscus =
                            WindowSurveyScanView.AingangScnapscusTailObjektIdentLezteBerecne() as WindowSurveyScanView;

                        if (null == WindowSurveyScanViewScnapscus)
                        {
                        }
                        else
                        {
                            SictAufgaabeParam SurveyScanEntferneAufgaabeParam = null;

                            var ButtonClear = WindowSurveyScanViewScnapscus.ButtonClear;

                            if (null == ButtonClear)
                            {
                                SurveyScanEntferneAufgaabeParam = AufgaabeParamAndere.KonstruktWindowMinimize(WindowSurveyScanView);
                            }
                            else
                            {
                                SurveyScanEntferneAufgaabeParam = AufgaabeParamAndere.KonstruktMausPfaad(SictAufgaabeParamMausPfaad.KonstruktMausKlikLinx(ButtonClear));
                            }

                            if (null != SurveyScanEntferneAufgaabeParam)
                            {
                                SurveyScanKonstruktAufgaabeParam =
                                    SictAufgaabeParam.KonstruktAufgaabeParam(
                                        SurveyScanEntferneAufgaabeParam,
                                        "clear Survey Scan");
                            }
                        }
                    }

                    if (null != SurveyScanKonstruktAufgaabeParam)
                    {
                        ListeAufgaabeParam.Add(SictAufgaabeParam.KonstruktAufgaabeParam(SurveyScanKonstruktAufgaabeParam, "create new Survey Scan"));
                    }
                }

                if (!SurveyScanNoi && null != WindowSurveyScanViewList)
                {
                    if (null != ListeTargetVerwendetMengeErzRestZuMeseNääxte.Key &&
                        !(MenuKaskaadeLezteAlterScritAnzaal < 2) &&
                        !(TargetInputFookusTransitioonLezteAlterScritAnzaal < 2))
                    {
                        var Target = ListeTargetVerwendetMengeErzRestZuMeseNääxte;

                        if (1 < MengeTargetVerwendet.CountNullable())
                        {
                            //	zunääxt InputFookus auf andere Target seze damit bai Auswaal über SurveyScanView Entry aine Transitioon beoobactet werde kan.

                            if (Target.Key.InputFookusTransitioonLezteZiilWert ?? false)
                            {
                                var TargetAndere =
                                    MengeTargetVerwendet
                                    .FirstOrDefault((Kandidaat) => !(Kandidaat.Key == Target.Key));

                                ListeAufgaabeParam.Add(
                                    AufgaabeParamAndere.KonstruktTargetInputFookusSeze(TargetAndere.Key));
                            }
                        }

                        var TargetAusSurveyScanListGroup = Target.Value.AusSurveyScanListGroup;
                        var AusSurveyScanMengeListItemPasendZuInRaumObjekt = Target.Value.AusSurveyScanMengeListItemPasendZuInRaumObjekt;

                        var ZuTargetAusSurveyScanInfo = Target.Value.AusSurveyScanInfo;

                        var TargetAusSurveyScanListGroupInScnapscusLezteSictbar =
                            (null == TargetAusSurveyScanListGroup) ? (bool?)null : TargetAusSurveyScanListGroup.InLezteScnapscusSictbar();

                        var TargetAusSurveyScanMengeListItemPasendZuOreTypeMitMenuLezte =
                            AusSurveyScanMengeListItemPasendZuInRaumObjekt
                            .WhereNullable((ListEntry) => !(true == ListEntry.IstGroup))
                            .SelectNullable((ListEntry) =>
                                            new KeyValuePair <GbsListGroupedEntryZuusctand, SictGbsMenuKaskaadeZuusctand>(
                                                ListEntry,
                                                AutomaatZuusctand.GbsMenuLezteInAstMitHerkunftAdrese(ListEntry.GbsAstHerkunftAdrese)))
                            .ToArrayNullable();

                        var TargetAusSurveyScanMengeListItemPasendZuOreTypeMitMenuLezteOrdnet =
                            TargetAusSurveyScanMengeListItemPasendZuOreTypeMitMenuLezte
                            .OrderByNullable((Kandidaat) => ((null == Kandidaat.Value) ? null : Kandidaat.Value.BeginZait) ?? int.MinValue)
                            .ToArrayNullable();

                        {
                            ListeTargetVerwendetMengeErzRestZuMeseNääxte = Target;

                            var WindowSurveyScanViewListListeGroup =
                                WindowSurveyScanViewList.ListeEntry()
                                .WhereNullable((Kandidaat) => Kandidaat.IstGroup ?? false)
                                .ToArrayNullable();

                            {
                                //	Ale andere Group collapse.

                                var WindowSurveyScanViewListListeGroupZuCollapse =
                                    WindowSurveyScanViewListListeGroup
                                    .WhereNullable((Kandidaat) =>
                                                   (Kandidaat.IstExpanded ?? true) &&
                                                   !(Kandidaat == TargetAusSurveyScanListGroup))
                                    .OrderByDescendingNullable((Kandidaat) => (Kandidaat.IstExpanded ?? false) ? 1 : 0)
                                    .ToArrayNullable();

                                foreach (var ListGroup in WindowSurveyScanViewListListeGroupZuCollapse)
                                {
                                    ListeAufgaabeParam.Add(AufgaabeParamAndere.KonstruktListEntryCollapse(ListGroup));
                                    break;
                                }
                            }

                            var SurveyScanListEntryZuMeseNääxte =
                                TargetAusSurveyScanMengeListItemPasendZuOreTypeMitMenuLezteOrdnet
                                .FirstOrDefaultNullable((Kandidaat) => !(Kandidaat.Key.IstGroup ?? false) && (Kandidaat.Key.InLezteScnapscusSictbar()));

                            if (null != SurveyScanListEntryZuMeseNääxte.Key)
                            {
                                var SurveyScanListEntryZuMeseNääxteLezteMenu = SurveyScanListEntryZuMeseNääxte.Value;

                                var SurveyScanListEntryZuMeseNääxteLezteMenuBeginZait =
                                    (null == SurveyScanListEntryZuMeseNääxteLezteMenu) ? null : SurveyScanListEntryZuMeseNääxteLezteMenu.BeginZait;

                                var SurveyScanListEntryZuMeseNääxteLezteMenuAlter =
                                    NuzerZaitMili - (SurveyScanListEntryZuMeseNääxteLezteMenuBeginZait ?? int.MinValue);

                                if (33333 < SurveyScanListEntryZuMeseNääxteLezteMenuAlter)
                                {
                                    ListeAufgaabeParam.Add(AufgaabeParamAndere.KonstruktMenuBegin(
                                                               SurveyScanListEntryZuMeseNääxte.Key.FläceFürMenuWurzelBerecne(),
                                                               new SictAnforderungMenuKaskaadeAstBedingung[] {
                                        new     SictAnforderungMenuKaskaadeAstBedingung("non existant Entry", false)
                                    }));
                                }
                            }

                            if (null == TargetAusSurveyScanListGroup)
                            {
                            }
                            else
                            {
                                if (!(true == TargetAusSurveyScanListGroup.IstExpanded))
                                {
                                    ListeAufgaabeParam.Add(AufgaabeParamAndere.KonstruktListEntryExpand(TargetAusSurveyScanListGroup));
                                }
                            }

                            if (null != WindowSurveyScanViewListScnapscus)
                            {
                                var WindowSurveyScanViewListScnapscusScroll = WindowSurveyScanViewListScnapscus.Scroll;

                                if (null != WindowSurveyScanViewListScnapscusScroll)
                                {
                                    if (null != ZuTargetAusSurveyScanInfo)
                                    {
                                        if (WindowSurveyScanViewListScnapscusScroll.ScrollHandleAntailAnGesamtMili < 990)
                                        {
                                            if ((ZuTargetAusSurveyScanInfo.OreTypInScnapscusSurveyScanEntryIstOoberste ?? false) &&
                                                3 < WindowSurveyScanViewListScnapscusScroll.ScrollHandleFläceGrenzeOobnAntailAnGesamtMili &&
                                                !(TargetAusSurveyScanListGroupInScnapscusLezteSictbar ?? false))
                                            {
                                                ListeAufgaabeParam.Add(
                                                    new AufgaabeParamScrollToTop(WindowSurveyScanViewListScnapscusScroll));
                                            }
                                            else
                                            {
                                                if ((ZuTargetAusSurveyScanInfo.OreTypInScnapscusSurveyScanEntryIstUnterste ?? false) &&
                                                    WindowSurveyScanViewListScnapscusScroll.ScrollHandleFläceGrenzeUntnAntailAnGesamtMili < 997)
                                                {
                                                    ListeAufgaabeParam.Add(
                                                        new AufgaabeParamScrollDown(WindowSurveyScanViewListScnapscusScroll));
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        /*
                         * 2014.10.00
                         *
                         * ListeAufgaabeParam.AddRange(
                         *      VerbindungSurveyScanZuTargetListeAufgaabeParam
                         *      .Select((AufgaabeParam) => SictAufgaabeParam.KonstruktAufgaabeParam(AufgaabeParam, "connect Survey Scan to Target")));
                         * */
                    }
                }
            }

            return(ListeAufgaabeParam);
        }