Exemple #1
0
        static public AufgaabeParamAndere KonstruktMissionButtonUtilmenuObjectiveZuMese(
            VonSensor.InfoPanelMissionsMission MissionButtonUtilmenuObjectiveZuMese)
        {
            var Aufgaabe = new AufgaabeParamAndere(MissionButtonUtilmenuObjectiveZuMese: MissionButtonUtilmenuObjectiveZuMese);

            return(Aufgaabe);
        }
Exemple #2
0
        /// <summary>
        /// Noc zu erseze durc MissionAccept
        /// </summary>
        /// <param name="WindowAgentDialogueMissionAcceptOderRequest"></param>
        /// <returns></returns>
        static public AufgaabeParamAndere KonstruktWindowAgentDialogueMissionAcceptOderRequest(
            VonSensor.WindowAgentDialogue WindowAgentDialogueMissionAcceptOderRequest)
        {
            var Aufgaabe = new AufgaabeParamAndere(WindowAgentDialogueMissionAcceptOderRequest: WindowAgentDialogueMissionAcceptOderRequest);

            return(Aufgaabe);
        }
Exemple #3
0
        /// <summary>
        /// Noc zu erseze durc MissionDecline
        /// </summary>
        /// <param name="WindowAgentDialogueMissionDecline"></param>
        /// <returns></returns>
        static public AufgaabeParamAndere KonstruktWindowAgentDialogueMissionDecline(
            VonSensor.WindowAgentDialogue WindowAgentDialogueMissionDecline)
        {
            var Aufgaabe = new AufgaabeParamAndere(WindowAgentDialogueMissionDecline: WindowAgentDialogueMissionDecline);

            return(Aufgaabe);
        }
Exemple #4
0
        static public AufgaabeParamAndere KonstruktFittingZuApliziire(
            SictOptimatParamFitting FittingZuApliziire)
        {
            var Aufgaabe = new AufgaabeParamAndere(FittingZuApliziire: FittingZuApliziire);

            return(Aufgaabe);
        }
Exemple #5
0
        static public AufgaabeParamAndere KonstruktMissionStartConversation(
            SictMissionZuusctand MissionStartConversation)
        {
            var Aufgaabe = new AufgaabeParamAndere(MissionStartConversation: MissionStartConversation);

            return(Aufgaabe);
        }
Exemple #6
0
        static public AufgaabeParamAndere AufgaabeMissionObjectiveMese(
            SictMissionZuusctand MissionObjectiveMese)
        {
            var Aufgaabe = new AufgaabeParamAndere(MissionObjectiveMese: MissionObjectiveMese);

            return(Aufgaabe);
        }
Exemple #7
0
        static public SictAufgaabeParamZerleegungErgeebnis ZerleegeGbsElementVerberge(
            ISictAutomatZuusctand AutomaatZuusctand,
            GbsElement GbsElement)
        {
            var AufgaabeParamZerleegungErgeebnis = new SictAufgaabeParamZerleegungErgeebnis(null, true);

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

            var GbsAstVerbergeBezaicnerNulbar = (Int64?)GbsElement.Ident;

            if (GbsAstVerbergeBezaicnerNulbar.HasValue)
            {
                var KandidaatOklusioonInfo =
                    AutomaatZuusctand.ZuGbsAstHerkunftAdreseKandidaatOklusioonBerecne(GbsAstVerbergeBezaicnerNulbar.Value);

                if (null == KandidaatOklusioonInfo)
                {
                    AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAus();
                }
                else
                {
                    var KandidaatOklusioonInfoMenu       = KandidaatOklusioonInfo.Menu;
                    var KandidaatOklusioonInfoUtilmenu   = KandidaatOklusioonInfo.Utilmenu;
                    var KandidaatOklusioonInfoPanelGroup = KandidaatOklusioonInfo.PanelGroup;
                    var KandidaatOklusioonInfoWindow     = KandidaatOklusioonInfo.Window;

                    var ListeAufgaabeVerberge = new List <SictAufgaabeParam>();

                    if (null != KandidaatOklusioonInfoMenu ||
                        null != KandidaatOklusioonInfoUtilmenu)
                    {
                        ListeAufgaabeVerberge.Add(AufgaabeParamAndere.KonstruktMenuEntferne());
                    }

                    if (null != KandidaatOklusioonInfoPanelGroup)
                    {
                        //	PanelGroup sctamt vermuutlic aus Neocom
                        ListeAufgaabeVerberge.Add(AufgaabeParamAndere.KonstruktNeocomMenuEntferne());
                    }

                    if (null != KandidaatOklusioonInfoWindow)
                    {
                        ListeAufgaabeVerberge.Add(AufgaabeParamAndere.KonstruktWindowMinimize(KandidaatOklusioonInfoWindow));
                    }

                    if (ListeAufgaabeVerberge.Count < 1)
                    {
                        AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAus();
                    }

                    AufgaabeParamZerleegungErgeebnis = AufgaabeParamZerleegungErgeebnis.Kombiniire(ListeAufgaabeVerberge);
                }
            }

            return(AufgaabeParamZerleegungErgeebnis);
        }
Exemple #8
0
        static public AufgaabeParamAndere KonstruktNaacNuzerVorsclaagWirkung(
            SictVorsclaagNaacProcessWirkung VorsclaagWirkung,
            string[] ZwekListeKomponenteZuusaz = null)
        {
            var Aufgaabe = new AufgaabeParamAndere(ZwekListeKomponenteZuusaz: ZwekListeKomponenteZuusaz);

            Aufgaabe.NaacNuzerVorsclaagWirkung = VorsclaagWirkung;

            return(Aufgaabe);
        }
Exemple #9
0
        static public AufgaabeParamAndere AufgaabeAktioonDroneEngage(
            SictTargetZuusctand TargetZuBearbeite)
        {
            var Aufgaabe = new AufgaabeParamAndere();

            Aufgaabe.TargetZuBearbaite = TargetZuBearbeite;

            Aufgaabe.AktioonDroneEngage = true;

            return(Aufgaabe);
        }
Exemple #10
0
        static public AufgaabeParamAndere KonstruktOverviewTabAktiviire(
            string OverviewTabZuAktiviire,
            string[] ZwekListeKomponente = null)
        {
            if (null == OverviewTabZuAktiviire)
            {
                return(null);
            }

            var Aufgaabe = new AufgaabeParamAndere(AktioonInOverviewTabZuAktiviire: OverviewTabZuAktiviire, ZwekListeKomponenteZuusaz: ZwekListeKomponente);

            return(Aufgaabe);
        }
Exemple #11
0
        static public AufgaabeParamAndere AufgaabeInOverViewMaceSictbar(
            SictOverViewObjektZuusctand InRaumObjekt,
            string[] ZwekListeKomponente = null)
        {
            if (null == InRaumObjekt)
            {
                return(null);
            }

            var Aufgaabe = new AufgaabeParamAndere(OverViewObjektZuBearbeite:       InRaumObjekt, AktioonInOverviewMaceSictbar: true, ZwekListeKomponenteZuusaz: ZwekListeKomponente);

            return(Aufgaabe);
        }
        override public bool HinraicendGlaicwertigFürFortsazScpez(
            SictAufgaabeParam Andere)
        {
            var AndereScpez = Andere as AufgaabeParamInSolarSystemMenuAktioon;

            if (null == AndereScpez)
            {
                return(false);
            }

            return
                (AufgaabeParamAndere.HinraicendGlaicwertigFürFortsaz(
                     ListeMenuKaskaadeAstBedingung, AndereScpez.ListeMenuKaskaadeAstBedingung));
        }
Exemple #13
0
        static public AufgaabeParamAndere AufgaabeAktioonMenu(
            SictOverViewObjektZuusctand InRaumObjektOverview,
            SictAnforderungMenuKaskaadeAstBedingung[] MenuListeAstBedingung,
            string[] ZwekListeKomponente = null)
        {
            if (null == InRaumObjektOverview)
            {
                return(null);
            }

            var Aufgaabe = new AufgaabeParamAndere(OverViewObjektZuBearbeite:       InRaumObjektOverview, MenuListeAstBedingung: MenuListeAstBedingung, ZwekListeKomponenteZuusaz: ZwekListeKomponente);

            return(Aufgaabe);
        }
Exemple #14
0
        static public AufgaabeParamAndere AufgaabeDistanceAinzusctele(
            SictTargetZuusctand Target,
            Int64?DistanceScrankeMin,
            Int64?DistanceScrankeMax)
        {
            if (null == Target)
            {
                return(null);
            }

            var Aufgaabe = new AufgaabeParamAndere(TargetZuBearbeite: Target);

            Aufgaabe.DistanzAinzuscteleScrankeMin = DistanceScrankeMin;
            Aufgaabe.DistanzAinzuscteleScrankeMax = DistanceScrankeMax;

            return(Aufgaabe);
        }
Exemple #15
0
        static public AufgaabeParamAndere AufgaabeAktioonMenu(
            GbsElement MenuWurzelGbsObjekt,
            SictAnforderungMenuKaskaadeAstBedingung[] MenuListeAstBedingung,
            string[] ZwekListeKomponente = null)
        {
            if (null == MenuWurzelGbsObjekt)
            {
                return(null);
            }

            var Aufgaabe = new AufgaabeParamAndere(
                MenuWurzelGbsObjekt: MenuWurzelGbsObjekt,
                MenuListeAstBedingung: MenuListeAstBedingung,
                ZwekListeKomponenteZuusaz: ZwekListeKomponente);

            return(Aufgaabe);
        }
        static public SictAufgaabeParamZerleegungErgeebnis ZerleegeOverviewPresetLaadeNaacVorgeseheneTab(
            ISictAutomatZuusctand AutomaatZuusctand,
            OverviewPresetDefaultTyp PresetDefault)
        {
            var AufgaabeParamZerleegungErgeebnis = new SictAufgaabeParamZerleegungErgeebnis(null, false);

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

            var InRaumAktioonUndGefect = AutomaatZuusctand.InRaumAktioonUndGefect;

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

            var ZiilTab =
                InRaumAktioonUndGefect.OverviewMengeZuTabNamePresetDefault
                .FirstOrDefaultNullable((Kandidaat) => Kandidaat.Value == PresetDefault).Key;

            if (ZiilTab.IsNullOrEmpty())
            {
                AufgaabeParamZerleegungErgeebnis.FüügeAn(
                    AufgaabeParamAndere.KonstruktNaacNuzerMeldungZuEveOnline(
                        SictNaacNuzerMeldungZuEveOnline.ErrorGenerel(-1, new SictNaacNuzerMeldungZuEveOnlineCause(
                                                                         CauseText: "Overview Management"))));

                return(AufgaabeParamZerleegungErgeebnis);
            }

            AufgaabeParamZerleegungErgeebnis.FüügeAn(
                AufgaabeParamAndere.KonstruktOverviewTabAktiviire(ZiilTab));

            AufgaabeParamZerleegungErgeebnis.FüügeAn(
                new     AufgaabeParamOverviewPresetLaade(OverviewPresetTyp.Default, PresetDefault.ToString(), ZiilTab));

            AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAin();

            return(AufgaabeParamZerleegungErgeebnis);
        }
        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 ZerleegeInSolarSystemMenuAktioon(
            ISictAutomatZuusctand AutomaatZuusctand,
            SictAnforderungMenuKaskaadeAstBedingung[] ListeMenuKaskaadeAstBedingung)
        {
            var AufgaabeParamZerleegungErgeebnis = new SictAufgaabeParamZerleegungErgeebnis(null, false);

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

            var Scnapscus = AutomaatZuusctand.ListeScnapscusLezteAuswertungErgeebnisNaacSimu;

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

            var GbsButtonListSurroundings = Scnapscus.InfoPanelLocationInfoButtonListSurroundings();

            if (null == GbsButtonListSurroundings)
            {
                AufgaabeParamZerleegungErgeebnis.FüügeAn(AufgaabeParamAndere.KonstruktNaacNuzerMeldungZuEveOnline(
                                                             SictNaacNuzerMeldungZuEveOnline.ErrorGenerel(-1,
                                                                                                          new SictNaacNuzerMeldungZuEveOnlineCause(CauseText: "Solar System Menu not found"))));

                return(AufgaabeParamZerleegungErgeebnis);
            }

            AufgaabeParamZerleegungErgeebnis.FüügeAn(AufgaabeParamAndere.AufgaabeAktioonMenu(
                                                         GbsButtonListSurroundings,
                                                         ListeMenuKaskaadeAstBedingung));

            AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAin();

            return(AufgaabeParamZerleegungErgeebnis);
        }
Exemple #19
0
        public SictAufgaabeParamZerleegungErgeebnis ZerleegeScteleSicerOverviewSortNaacDistance(
            ISictAutomatZuusctand AutomaatZuusctand)
        {
            var AufgaabeParamZerleegungErgeebnis = new SictAufgaabeParamZerleegungErgeebnis();

            AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAus();

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

            var OverviewUndTarget = AutomaatZuusctand.OverviewUndTarget;

            var WindowOverview = AutomaatZuusctand.WindowOverView();

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

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

            if (!(OverviewUndTarget.SortedNaacDistanceNict ?? false))
            {
                AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAin();

                return(AufgaabeParamZerleegungErgeebnis);
            }

            var WindowOverviewScnapscus = WindowOverview.AingangScnapscusTailObjektIdentLezteBerecne() as VonSensor.WindowOverView;

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

            var ScnapscusWindowOverviewAusTabListeZaileOrdnetNaacLaage = (null == WindowOverviewScnapscus) ? null : WindowOverviewScnapscus.AusTabListeZaileOrdnetNaacLaage;
            var ScnapscusWindowOverviewColumnHeaderDistance            = (null == WindowOverviewScnapscus) ? null : WindowOverviewScnapscus.ColumnHeaderDistance;

            AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAin();

            if (!(4 < ExtractFromOldAssembly.Bib3.Extension.CountNullable(ScnapscusWindowOverviewAusTabListeZaileOrdnetNaacLaage)))
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            if (WindowOverviewScnapscus.ZaileSindSortiirtNaacDistanceAufsctaigend ?? false)
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            if (null == ScnapscusWindowOverviewColumnHeaderDistance)
            {
                AufgaabeParamZerleegungErgeebnis.FüügeAn(
                    AufgaabeParamAndere.KonstruktNaacNuzerMeldungZuEveOnline(SictNaacNuzerMeldungZuEveOnline.ErrorGenerel(-1,

                                                                                                                          //	!!!!	Cause Anzupase:	Meldung das ColumnHeaderDistance feelt!

                                                                                                                          new SictNaacNuzerMeldungZuEveOnlineCause(SictNaacNuzerMeldungZuEveOnlineCauseTypeBinär.OverviewSortingNotOptimized))),
                    false);
            }
            else
            {
                AufgaabeParamZerleegungErgeebnis.FüügeAn(
                    AufgaabeParamAndere.KonstruktColumnHeaderSort(ScnapscusWindowOverviewColumnHeaderDistance));
            }

            return(AufgaabeParamZerleegungErgeebnis);
        }
Exemple #20
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);
        }
Exemple #21
0
        static public SictAufgaabeParamZerleegungErgeebnis ZerleegeLockTarget(
            ISictAutomatZuusctand AutomaatZuusctand,
            SictOverViewObjektZuusctand OverviewObjekt)
        {
            var AufgaabeParamZerleegungErgeebnis = new SictAufgaabeParamZerleegungErgeebnis(null, true);

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

            if (true == OverviewObjekt.TargetingOderTargeted)
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAus();

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

            var FittingUndShipZuusctand = AutomaatZuusctand.FittingUndShipZuusctand;
            var OverviewUndTarget       = AutomaatZuusctand.OverviewUndTarget;

            var MengeTargetNocSictbar = (null == OverviewUndTarget) ? null : OverviewUndTarget.MengeTargetNocSictbar;

            var MengeTargetAnzaalScrankeMax = (null == FittingUndShipZuusctand) ? null : FittingUndShipZuusctand.MengeTargetAnzaalScrankeMax;
            var ScritNääxteJammed           = (null == FittingUndShipZuusctand) ? null : FittingUndShipZuusctand.ScritNääxteJammed;
            var ScritÜüberNääxteJammed      = (null == FittingUndShipZuusctand) ? null : FittingUndShipZuusctand.ScritÜüberNääxteJammed;

            if (ScritÜüberNääxteJammed ?? false)
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            if (MengeTargetAnzaalScrankeMax.HasValue)
            {
                if (MengeTargetAnzaalScrankeMax <= MengeTargetNocSictbar.CountNullable())
                {
                    return(AufgaabeParamZerleegungErgeebnis);
                }
            }

            var MenuKaskaadeLezte = AutomaatZuusctand.GbsMenuLezteInAst(OverviewObjekt);

            var MenuAstBedingung =
                new SictAnforderungMenuKaskaadeAstBedingung(SictShipZuusctandMitFitting.MenuEntryLockTargetRegexPattern, true);

            if (null != MenuKaskaadeLezte)
            {
                var MenuKaskaadeLezteAlter = AutomaatZuusctand.NuzerZaitMili - MenuKaskaadeLezte.BeginZait;

                var Menu0ListeEntry = MenuKaskaadeLezte.AusMenu0ListeEntryBerecne();

                if (!Menu0ListeEntry.IsNullOrEmpty())
                {
                    var MenuEntryLock = MenuAstBedingung.AusMengeMenuEntryGibUntermengePasendFürFrüühestePasendePrio(Menu0ListeEntry);

                    if (null == MenuEntryLock &&
                        !(8888 < MenuKaskaadeLezteAlter))
                    {
                        //	Kain Entry "Lock" vorhande. Daher Vermuutung das Objekt zu wait entfernt für Lock.

                        AufgaabeParamZerleegungErgeebnis.FüügeAn(AufgaabeParamAndere.AufgaabeDistanceAinzusctele(OverviewObjekt, null, 4444));
                    }
                }

                if (!MenuKaskaadeLezte.EndeZait.HasValue)
                {
                    //	Menu zu OverviewObjekt isc noc geöfnet.

                    if (ScritNääxteJammed ?? false)
                    {
                        return(AufgaabeParamZerleegungErgeebnis);
                    }
                }
            }

            AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAin();

            AufgaabeParamZerleegungErgeebnis.FüügeAn(
                AufgaabeParamAndere.AufgaabeAktioonMenu(OverviewObjekt,
                                                        MenuAstBedingung));

            return(AufgaabeParamZerleegungErgeebnis);
        }
Exemple #22
0
        public SictAufgaabeParamZerleegungErgeebnis ZerleegeShipAktuelOpenCargoLeereTyp(
            ISictAutomatZuusctand AutomaatZuusctand,
            SictShipCargoTypSictEnum CargoTyp,
            out VonSensor.WindowInventoryPrimary ErgeebnisWindowShipInventory,
            out VonSensor.Inventory ErgeebnisShipInventory)
        {
            ErgeebnisWindowShipInventory = null;
            ErgeebnisShipInventory       = null;

            var AufgaabeParamZerleegungErgeebnis = new SictAufgaabeParamZerleegungErgeebnis();

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

            var NuzerZaitMili = AutomaatZuusctand.NuzerZaitMili;

            var TailInventoryAuswaalZerleegungErgeebnis =
                AufgaabeParamShipAktuelOpenInventoryCargoTyp.ZerleegeShipAktuelOpenInventoryCargoTyp(
                    AutomaatZuusctand,
                    CargoTyp,
                    out ErgeebnisWindowShipInventory,
                    out ErgeebnisShipInventory);

            AufgaabeParamZerleegungErgeebnis.FüügeAn(TailInventoryAuswaalZerleegungErgeebnis);

            if (null == ErgeebnisShipInventory)
            {
                AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAus();

                return(AufgaabeParamZerleegungErgeebnis);
            }

            if (!(TailInventoryAuswaalZerleegungErgeebnis.ListeKomponenteAufgaabeParam).IsNullOrEmpty())
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            if (true == ErgeebnisShipInventory.SictwaiseScaintGeseztAufListNict)
            {
                //	!!!!	Meldung Warnung

                AufgaabeParamZerleegungErgeebnis.FüügeAn(
                    AufgaabeParamAndere.KonstruktInventorySezeSictTypAufList(ErgeebnisWindowShipInventory),
                    false);
            }
            else
            {
                var InventoryLinxTreeListeEntry = ErgeebnisWindowShipInventory.LinxTreeListeEntry;

                if (null != InventoryLinxTreeListeEntry)
                {
                    var LinxEntryItemHangar =
                        InventoryLinxTreeListeEntry
                        .FirstOrDefault((Kandidaat) => Regex.Match(Kandidaat.LabelText ?? "", "item hangar", RegexOptions.IgnoreCase).Success);

                    var AuswaalReczListeItem = ErgeebnisShipInventory.ListeItem;

                    if (null != AuswaalReczListeItem &&
                        null != LinxEntryItemHangar)
                    {
                        var AuswaalReczListeItemFrühesteDrai = AuswaalReczListeItem.Take(3).ToArray();

                        if (0 < AuswaalReczListeItemFrühesteDrai.Length)
                        {
                            //	zu klikende Item mit etwas zuufal auswääle
                            var AuswaalItem =
                                AuswaalReczListeItemFrühesteDrai.ElementAtOrDefault((int)((NuzerZaitMili / 100) % AuswaalReczListeItemFrühesteDrai.Length));

                            /*
                             * 2014.03.28
                             *
                             * Tail select all vorersct sctilgeleegt
                             *
                             * if (null != WindowInventoryZuusctand)
                             * {
                             *      if ((!VersuucMenuEntryKlikLezteZait.HasValue ||
                             *              VersuucMenuEntryKlikLezteZait < WindowInventoryZuusctand.BeginZait) &&
                             *              3 < AuswaalReczListeItem.Length)
                             *      {
                             *              //	Saitdeem WindowInventory ersctelt wurde, wurde noc kain Versuuc unternome ain MenuEntry zu aktiviire.
                             *
                             *              //	Versuuce ale Item auszuwääle
                             *
                             *              var AnforderungGbsMenu =
                             *                      new SictAnforderungMenuBescraibung(
                             *                              AuswaalItem,
                             *                              AnforderungLeereCargoWindowInventory,
                             *                              true,
                             *                              new SictAnforderungMenuKaskaadeAstBedingung[]{
                             *                                      new	SictAnforderungMenuKaskaadeAstBedingung("select all"),});
                             *
                             *              return new SictWirkungNaacGbsUndShipSlot(new string[] { ZwekBeginKomponente, "select all items" }, AnforderungGbsMenu);
                             *      }
                             * }
                             * *
                             * */

                            AufgaabeParamZerleegungErgeebnis.FüügeAn(AufgaabeParamAndere.KonstruktInventoryItemTransport(
                                                                         new SictInventoryItemTransport(
                                                                             ErgeebnisWindowShipInventory,
                                                                             LinxEntryItemHangar,
                                                                             new VonSensor.InventoryItem[] { AuswaalItem })));

                            if (AuswaalReczListeItem.Length <= 1)
                            {
                                AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAin();
                            }
                        }
                    }
                }
            }

            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);
        }
Exemple #24
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));
        }
Exemple #25
0
        static public bool HinraicendGlaicwertigFürFortsazScpezAndere(
            AufgaabeParamAndere O0,
            AufgaabeParamAndere O1)
        {
            if (object.Equals(O0, O1))
            {
                return(true);
            }

            if (null == O0 || null == O1)
            {
                return(false);
            }


            return

                (O0.NaacNuzerMeldungZuEveOnline == O1.NaacNuzerMeldungZuEveOnline &&

                 object.Equals(O0.NaacNuzerVorsclaagWirkung, O1.NaacNuzerVorsclaagWirkung) &&

                 object.Equals(O0.NaacAbsclusTailWirkungWartezaitScranke, O1.NaacAbsclusTailWirkungWartezaitScranke) &&

                 string.Equals(O0.AktioonInOverviewTabZuAktiviire, O1.AktioonInOverviewTabZuAktiviire, StringComparison.InvariantCultureIgnoreCase) &&

                 O0.InOverviewTabFolgeViewportDurcGrid == O1.InOverviewTabFolgeViewportDurcGrid &&

                 O0.AktioonInOverviewMaceSictbar == O1.AktioonInOverviewMaceSictbar &&

                 object.Equals(O0.OverViewObjektZuBearbaite, O1.OverViewObjektZuBearbaite) &&
                 object.Equals(O0.TargetZuBearbaite, O1.TargetZuBearbaite) &&

                 object.Equals(O0.AktioonTargetActivate, O1.AktioonTargetActivate) &&

                 O0.AktioonCargoDurcsuuce == O1.AktioonCargoDurcsuuce &&

                 object.Equals(O0.TargetUnLock, O1.TargetUnLock) &&
                 object.Equals(O0.TargetInputFookusSeze, O1.TargetInputFookusSeze) &&

                 object.Equals(O0.ModuleMesungModuleButtonHint, O1.ModuleMesungModuleButtonHint) &&
                 object.Equals(O0.ModuleScalteAin, O1.ModuleScalteAin) &&
                 object.Equals(O0.ModuleScalteAus, O1.ModuleScalteAus) &&
                 object.Equals(O0.ModuleScalteUm, O1.ModuleScalteUm) &&

                 O0.AfterburnerScalteAin == O1.AfterburnerScalteAin &&

                 HinraicendGlaicwertigFürFortsaz(O0.MausPfaad, O1.MausPfaad) &&

                 O1.AktioonUnDock == O1.AktioonUnDock &&

                 HinraicendGlaicwertigFürFortsaz(O0.MenuListeAstBedingung, O1.MenuListeAstBedingung) &&
                 MenuWurzelHinraicendGlaicwertigFürFortsaz(O0.MenuWurzelGbsObjekt, O1.MenuWurzelGbsObjekt) &&
                 O0.AktioonMenuBegin == O1.AktioonMenuBegin &&
                 HinraicendGlaicwertigFürFortsaz(O0.MenuEntry, O1.MenuEntry) &&

                 //	TailIdentHinraicendGlaicwertigFürFortsaz(O0.GbsAstVerberge, O1.GbsAstVerberge) &&

                 O0.AktioonNeocomMenuEntferne == O1.AktioonNeocomMenuEntferne &&

                 O0.InfoPanelExpand == O1.InfoPanelExpand &&
                 O0.InfoPanelEnable == O1.InfoPanelEnable &&

                 HinraicendGlaicwertigFürFortsaz(O0.GbsAstOklusioonVermaidung, O1.GbsAstOklusioonVermaidung) &&

                 O0.WindowMinimize == O1.WindowMinimize &&
                 O0.WindowHooleNaacVorne == O1.WindowHooleNaacVorne &&

                 GbsElement.Identisc(O0.ColumnHeaderSort, O1.ColumnHeaderSort) &&
                 O0.ListEntryMaceSictbar == O1.ListEntryMaceSictbar &&
                 O0.ListEntryExpand == O1.ListEntryExpand &&
                 O0.ListEntryCollapse == O1.ListEntryCollapse &&
                 O0.ListEntryToggleExpandCollapse == O1.ListEntryToggleExpandCollapse &&

                 O0.GridVerlase == O1.GridVerlase &&

                 O0.ManööverUnterbreceNict == O1.ManööverUnterbreceNict &&
                 O0.VorrangVorManööverUnterbreceNict == O1.VorrangVorManööverUnterbreceNict &&
                 O0.ManööverAuszufüüreTyp == O1.ManööverAuszufüüreTyp &&
                 O0.DistanzAinzuscteleScrankeMin == O1.DistanzAinzuscteleScrankeMin &&
                 O0.DistanzAinzuscteleScrankeMax == O1.DistanzAinzuscteleScrankeMax &&

                 HinraicendGlaicwertigFürFortsaz(O0.LobbyAgentEntryStartConversation, O1.LobbyAgentEntryStartConversation) &&
                 MenuWurzelHinraicendGlaicwertigFürFortsaz(O0.MissionButtonUtilmenuObjectiveZuMese, O1.MissionButtonUtilmenuObjectiveZuMese) &&
                 HinraicendGlaicwertigFürFortsaz(O0.WindowAgentDialogueMissionAcceptOderRequest, O1.WindowAgentDialogueMissionAcceptOderRequest) &&
                 HinraicendGlaicwertigFürFortsaz(O0.WindowAgentDialogueMissionDecline, O1.WindowAgentDialogueMissionDecline) &&
                 O0.MissionAccept == O1.MissionAccept &&
                 O0.MissionDecline == O1.MissionDecline &&

                 HinraicendGlaicwertigFürFortsaz(O0.FittingZuApliziire, O1.FittingZuApliziire) &&

                 O0.AktioonDroneLaunch == O1.AktioonDroneLaunch &&
                 O0.AktioonDroneEngage == O1.AktioonDroneEngage &&
                 O0.AktioonDroneReturn == O1.AktioonDroneReturn &&

                 HinraicendGlaicwertigFürFortsaz(O0.InventoryItemTransport, O1.InventoryItemTransport) &&

                 HinraicendGlaicwertigFürFortsaz(O0.InventorySezeSictTypAufList, O1.InventorySezeSictTypAufList)

                );
        }
Exemple #26
0
        static public SictAufgaabeParamZerleegungErgeebnis ZerleegeDestrukt(
            ISictAutomatZuusctand AutomaatZuusctand,
            SictAufgaabeKombiZuusctand KombiZuusctand,
            SictOverViewObjektZuusctand ZiilOverviewObjekt,
            SictTargetZuusctand ZiilTarget)
        {
            var AufgaabeParamZerleegungErgeebnis = new SictAufgaabeParamZerleegungErgeebnis(null, false);

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

            var NuzerZaitMili = AutomaatZuusctand.NuzerZaitMili;

            var ZiilOverviewObjektSictungLezteAlterMili = NuzerZaitMili - ((null == ZiilOverviewObjekt) ? null : ZiilOverviewObjekt.SictungLezteZait);

            var Gbs = AutomaatZuusctand.Gbs;
            var OverviewUndTarget               = AutomaatZuusctand.OverviewUndTarget;
            var FittingUndShipZuusctand         = AutomaatZuusctand.FittingUndShipZuusctand;
            var InRaumAktioonUndGefect          = AutomaatZuusctand.InRaumAktioonUndGefect;
            var AusScnapscusAuswertungZuusctand = AutomaatZuusctand.ListeScnapscusLezteAuswertungErgeebnisNaacSimu;

            var FürWirkungDestruktAufgaabeDroneEngageTarget = (null == InRaumAktioonUndGefect) ? null : InRaumAktioonUndGefect.FürWirkungDestruktAufgaabeDroneEngageTarget;

            var ScnapscusWindowDroneView = (null == AusScnapscusAuswertungZuusctand) ? null : AusScnapscusAuswertungZuusctand.WindowDroneView;

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

            var AnnaameDroneControlCountScrankeMaxNulbar = (null == FittingUndShipZuusctand) ? null : FittingUndShipZuusctand.AnnaameDroneControlCountScrankeMax;

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

            var MengeModuleUmscaltFraigaabe =
                AutomaatZuusctand.MengeModuleUmscaltFraigaabe
                .WhereNullable((KandidaatModule) => (null == KombiZuusctand) ? true : KombiZuusctand.ModuleVerwendungFraigaabe(KandidaatModule))
                .ToArrayNullable();

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

            var AnnaameModuleDestruktRangeMax           = (null == FittingUndShipZuusctand) ? null : FittingUndShipZuusctand.AnnaameModuleDestruktRangeMax;
            var AnnaameModuleDestruktRangeOptimumNulbar = (null == FittingUndShipZuusctand) ? null : FittingUndShipZuusctand.AnnaameModuleDestruktRangeOptimum;

            var AnnaameGefectDistanzOptimum = Bib3.Glob.Min(AnnaameModuleDestruktRangeOptimumNulbar, AnnaameTargetingDistanceScrankeMax);

            var ScritNääxteJammed      = (null == FittingUndShipZuusctand) ? null : FittingUndShipZuusctand.ScritNääxteJammed;
            var ScritÜüberNääxteJammed = (null == FittingUndShipZuusctand) ? null : FittingUndShipZuusctand.ScritÜüberNääxteJammed;

            var ListeAbovemainMessageDronesLezteAlter = (null == Gbs) ? null : Gbs.ListeAbovemainMessageDronesLezteAlter;
            var MengeTargetNocSictbar = (null == OverviewUndTarget) ? null : OverviewUndTarget.MengeTargetNocSictbar;

            bool DroneLaunchVolsctändig = false;

            if (ListeAbovemainMessageDronesLezteAlter < 3e+4)
            {
                DroneLaunchVolsctändig = true;
            }

            if (!DroneLaunchVolsctändig &&
                0 < ExtractFromOldAssembly.Bib3.Extension.CountNullable(MengeTargetNocSictbar) || (ScritNääxteJammed ?? false))
            {
                //	Drones Launch

                if (false == AnforderungDroneReturnLezte &&
                    null != ScnapscusWindowDroneView)
                {
                    //	Drones Launch

                    if (0 < ScnapscusWindowDroneView.DronesInBayAnzaal)
                    {
                        /*
                         * 2013.09.24
                         * Anforderung vorerst nur für Scpeziaalfal das nur fünf drones in space sain köne.
                         * Scpääter sol Anzaal nuzbaarer drones berüksictigt were.
                         * */
                        if ((AnnaameDroneControlCountScrankeMaxNulbar ?? 5) <= ScnapscusWindowDroneView.DronesInLocalSpaceAnzaal)
                        {
                            DroneLaunchVolsctändig = true;
                        }
                        else
                        {
                            AufgaabeParamZerleegungErgeebnis.FüügeAn(AufgaabeParamAndere.AufgaabeAktioonDroneLaunch());
                        }
                    }
                    else
                    {
                        DroneLaunchVolsctändig = true;
                    }
                }
            }

            var MengeModuleAinSol =
                MengeModuleUmscaltFraigaabe.IntersectNullable(
                    MengeModuleRepr.WhereNullable((KandidaatModule) =>
                                                  (((true == KandidaatModule.IstWirkmitelDestrukt) &&
                                                    (true == KandidaatModule.ChargeLoaded)) ||
                                                   (true == KandidaatModule.IstTargetPainter)) &&
                                                  !(true == KandidaatModule.AktiivBerecne(1))))
                .ToArrayNullable();

            if (null == ZiilTarget)
            {
                var MengeTargetPasend =
                    OverviewUndTarget.MengeTargetTailmengePasendZuOverviewObjektBerecne(ZiilOverviewObjekt);

                if (null != MengeTargetPasend)
                {
                    ZiilTarget = MengeTargetPasend.OrderBy((KandidaatTarget) => KandidaatTarget.SictungLezteDistanceScrankeMaxScpezTarget ?? int.MaxValue).FirstOrDefault();
                }
            }

            if (null == ZiilTarget)
            {
                if (null != ZiilOverviewObjekt)
                {
                    if (!(GefectListeLockedTargetScranke <= ExtractFromOldAssembly.Bib3.Extension.CountNullable(MengeTargetNocSictbar)))
                    {
                        if (true == ZiilOverviewObjekt.TargetingOderTargeted &&
                            7777 < ZiilOverviewObjektSictungLezteAlterMili)
                        {
                            AufgaabeParamZerleegungErgeebnis.FüügeAn(AufgaabeParamAndere.AufgaabeInOverViewMaceSictbar(ZiilOverviewObjekt));
                        }
                        else
                        {
                            var DistanceHinraicendGeringFürLock = true;

                            if (0 < ExtractFromOldAssembly.Bib3.Extension.CountNullable(MengeTargetNocSictbar))
                            {
                                if (ZiilOverviewObjekt.SaitSictbarkaitLezteListeScritAnzaal < 1)
                                {
                                    if (AnnaameTargetingDistanceScrankeMax < ZiilOverviewObjekt.SictungLezteDistanceScrankeMaxScpezOverview &&
                                        NuzerZaitMili - 4444 < ZiilOverviewObjekt.SictungLezteZait)
                                    {
                                        DistanceHinraicendGeringFürLock = false;
                                    }

                                    if (AnnaameGefectDistanzOptimum < ZiilOverviewObjekt.SictungLezteDistanceScrankeMaxScpezOverview)
                                    {
                                        DistanceHinraicendGeringFürLock = false;
                                    }
                                }
                            }

                            if (DistanceHinraicendGeringFürLock)
                            {
                                AufgaabeParamZerleegungErgeebnis.FüügeAn(new AufgaabeParamLockTarget(ZiilOverviewObjekt));
                            }
                            else
                            {
                                AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAus();
                            }
                        }
                    }

                    if (!(ZiilOverviewObjekt.SictungLezteDistanceScrankeMaxScpezOverview < AnnaameGefectDistanzOptimum))
                    {
                        AufgaabeParamZerleegungErgeebnis.FüügeAn(AufgaabeParamAndere.AufgaabeDistanceAinzusctele(ZiilOverviewObjekt, null, AnnaameGefectDistanzOptimum));
                    }
                }
            }
            else
            {
                var AnnaameDroneCommandRange = (null == FittingUndShipZuusctand) ? null : FittingUndShipZuusctand.AnnaameDroneCommandRange;

                var TargetDistancePasendFürModule = false;
                var TargetDistancePasendFürDrone  = false;

                //	!!!!	zu ergänze: Berecnung soldistance für Turret
                //	!!!!	zu ergänze: Berecnung TargetMengeModuleAinSol: untermenge von MengeModuleAinSol da Module untersciidlice optimaale Distance haabe (TargetPainter)
                if (ZiilTarget.SictungLezteDistanceScrankeMaxScpezTarget < AnnaameGefectDistanzOptimum)
                {
                    TargetDistancePasendFürModule = true;
                }

                {
                    AufgaabeParamZerleegungErgeebnis.FüügeAn(AufgaabeParamAndere.AufgaabeDistanceAinzusctele(ZiilTarget, null, AnnaameGefectDistanzOptimum));
                }

                if (ZiilTarget.SictungLezteDistanceScrankeMaxScpezTarget < AnnaameDroneCommandRange)
                {
                    TargetDistancePasendFürDrone = true;
                }

                var DroneEngage =
                    DroneLaunchVolsctändig &&
                    TargetDistancePasendFürDrone &&
                    true == FürWirkungDestruktAufgaabeDroneEngageTarget;

                if (DroneEngage || !MengeModuleAinSol.IsNullOrEmpty())
                {
                    {
                        if (TargetDistancePasendFürModule)
                        {
                            AufgaabeParamZerleegungErgeebnis.FüügeAn(AufgaabeParamAndere.KonstruktTargetInputFookusSeze(ZiilTarget));
                        }
                    }
                }

                if (!MengeModuleAinSol.IsNullOrEmpty())
                {
                    //	Hiir werd nuur waitergemact wen noc mindesctens ain Module noc aigescaltet werde sol.

                    if (true == ZiilTarget.InputFookusTransitioonLezteZiilWert)
                    {
                        if (TargetDistancePasendFürModule)
                        {
                            AufgaabeParamZerleegungErgeebnis.FüügeAn(
                                MengeModuleAinSol.Select((ModuleAinSol) => AufgaabeParamAndere.KonstruktModuleScalteAin(ModuleAinSol)));
                        }
                    }
                }

                if (DroneEngage)
                {
                    if (true == ZiilTarget.InputFookusTransitioonLezteZiilWert)
                    {
                        AufgaabeParamZerleegungErgeebnis.FüügeAn(AufgaabeParamAndere.KonstruktDronesEngage(ZiilTarget));
                    }
                }
            }

            return(AufgaabeParamZerleegungErgeebnis);
        }
Exemple #27
0
        public IEnumerable <SictAufgaabeParam> FürMineListeAufgaabeNääxteParamBerecneTailWarpToBelt(
            ISictAutomatZuusctand AutomaatZuusctand)
        {
            if (null == AutomaatZuusctand)
            {
                return(null);
            }

            var ListeAufgaabeParam = new List <SictAufgaabeParam>();

            var NuzerZaitMili           = AutomaatZuusctand.NuzerZaitMili;
            var FittingUndShipZuusctand = AutomaatZuusctand.FittingUndShipZuusctand;

            if (null == FittingUndShipZuusctand)
            {
                return(null);
            }

            var LocationNearestLezteVerlauf = AutomaatZuusctand.ListeLocationNearest().LastOrDefaultNullable();

            var LocationNearestLezteName = (null == LocationNearestLezteVerlauf) ? null : LocationNearestLezteVerlauf.Wert;

            var ShipZuusctand = FittingUndShipZuusctand.ShipZuusctand;

            var CharZuusctandDocked  = (null == ShipZuusctand) ? null : ShipZuusctand.Docked;
            var CharZuusctandWarping = (null == ShipZuusctand) ? null : ShipZuusctand.Warping;

            if (CharZuusctandDocked ?? false)
            {
                ListeAufgaabeParam.Add(AufgaabeParamAndere.KonstruktUnDock());
            }
            else
            {
                if (Regex.Match(LocationNearestLezteName ?? "", "Asteroid", RegexOptions.IgnoreCase).Success)
                {
                    if (null == OverviewTabBevorzuugtTitel)
                    {
                    }
                    else
                    {
                        //	Laade Overview Default "Mining" naac Tab.

                        ListeAufgaabeParam.Add(new AufgaabeParamOverviewPresetLaade(OverviewPresetTyp.Default, "Mining", OverviewTabBevorzuugtTitel));
                    }
                }

                if (!(CharZuusctandWarping ?? false))
                {
                    var MenuAsteroidBeltListePrioRegexPattern =
                        (ListePrioAsteroidBeltBescriftung.SelectNullable((Kandidaat) => Regex.Escape(Kandidaat)) ?? new string[0])
                        .Concat(new string[] { "Asteroid\\s*Belt" })
                        .ToArrayNullable();

                    ListeAufgaabeParam.Add(new AufgaabeParamInSolarSystemMenuAktioon(
                                               new SictAnforderungMenuKaskaadeAstBedingung[] {
                        new     SictAnforderungMenuKaskaadeAstBedingung("Asteroid"),
                        new     SictAnforderungMenuKaskaadeAstBedingung(MenuAsteroidBeltListePrioRegexPattern),
                        new     SictAnforderungMenuKaskaadeAstBedingung("warp to within\\s*0", true)
                    }));
                }
            }

            return(ListeAufgaabeParam);
        }
        static public SictAufgaabeParamZerleegungErgeebnis ZerleegeMengeOverviewObjGrupeMesung(
            ISictAutomatZuusctand AutomaatZuusctand,
            SictOverviewObjektGrupeEnum[] MengeObjGrupe)
        {
            var AufgaabeParamZerleegungErgeebnis = new SictAufgaabeParamZerleegungErgeebnis(null, true);

            if (MengeObjGrupe.IsNullOrEmpty())
            {
                return(AufgaabeParamZerleegungErgeebnis);
            }

            AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAus();

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

            var OverviewUndTarget = AutomaatZuusctand.OverviewUndTarget;

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

            var InRaumAktioonUndGefect = AutomaatZuusctand.InRaumAktioonUndGefect;

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

            /*
             * 2015.00.04
             *
             * Aufgaabe werd vorersct so zerleegt das für ObjGrupe jewails ainzeln Overview durchsuuct werd.
             * */

            var MengePresetDefault =
                SictOverviewUndTargetZuusctand.ListePresetDefaultPrioSctaatisc
                .Where((Kandidaat) =>
                       0 <
                       SictOverviewUndTargetZuusctand.ZuOverviewDefaultMengeObjektGrupeSictbar(Kandidaat)
                       .IntersectNullable(MengeObjGrupe).CountNullable())
                .ToArray();

            var ListePresetDefault = SictOverviewUndTargetZuusctand.MengePresetDefaultOrdnetNaacPrioSctaatisc(MengePresetDefault);

            var PresetNääxte = ListePresetDefault.FirstOrDefaultNullable();

            var OverviewMengeZuTabNamePresetDefault = InRaumAktioonUndGefect.OverviewMengeZuTabNamePresetDefault;

            var TabFürPresetDefault =
                OverviewMengeZuTabNamePresetDefault
                .FirstOrDefaultNullable((Kandidaat) => Kandidaat.Value == PresetNääxte).Key;

            if (TabFürPresetDefault.IsNullOrEmpty())
            {
                AufgaabeParamZerleegungErgeebnis.FüügeAn(
                    AufgaabeParamAndere.KonstruktNaacNuzerMeldungZuEveOnline(
                        SictNaacNuzerMeldungZuEveOnline.ErrorGenerel(-1, new SictNaacNuzerMeldungZuEveOnlineCause(CauseText: "Overview Management"))));

                return(AufgaabeParamZerleegungErgeebnis);
            }

            //	Für nääxte Preset vorgesehene Tab öfne.
            AufgaabeParamZerleegungErgeebnis.FüügeAn(
                AufgaabeParamAndere.KonstruktOverviewTabAktiviire(TabFürPresetDefault));

            //	Preset laade.
            AufgaabeParamZerleegungErgeebnis.FüügeAn(
                new AufgaabeParamOverviewPresetLaade(OverviewPresetTyp.Default, PresetNääxte.ToString(), TabFürPresetDefault));

            //	Dirc Viewport Scrolle.
            AufgaabeParamZerleegungErgeebnis.FüügeAn(AufgaabeParamAndere.KonstruktInOverviewTabFolgeViewportDurcGrid());

            AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändigSezeAin();

            return(AufgaabeParamZerleegungErgeebnis);
        }
Exemple #29
0
        public IEnumerable <SictAufgaabeParam> FürMineListeAufgaabeNääxteParamBerecneTailInBeltMine(
            ISictAutomatZuusctand AutomaatZuusctand)
        {
            if (null == AutomaatZuusctand)
            {
                return(null);
            }

            var ListeAufgaabeParam = new List <SictAufgaabeParam>();

            var AsteroidLockListeAufgaabeParam = new List <SictAufgaabeParam>();

            var AsteroidMineListeAufgaabeParam = new List <SictAufgaabeParam>();

            var AsteroidMineModuleScalteAinListeAufgaabeParam = new List <SictAufgaabeParam>();

            var FittingUndShipZuusctand = AutomaatZuusctand.FittingUndShipZuusctand;
            var OverviewUndTarget       = AutomaatZuusctand.OverviewUndTarget;

            if (null == FittingUndShipZuusctand)
            {
                return(null);
            }

            var ShipMengeModule = AutomaatZuusctand.ShipMengeModule();

            var ShipMengeModuleMiner =
                ShipMengeModule
                .WhereNullable((Kandidaat) => Kandidaat.IstMiner ?? false)
                .ToArrayNullable();

            var ShipZuusctand = FittingUndShipZuusctand.ShipZuusctand;

            if (null == ShipZuusctand)
            {
                return(null);
            }

            var CharZuusctandWarping = ShipZuusctand.Warping;
            var CharZuusctandDocking = ShipZuusctand.Docking;

            var ListeTargetVerwendet =
                MengeTargetVerwendet
                .OrderByNullable((Kandidaat) => Kandidaat.Key.SictungLezteDistanceScrankeMaxScpezTarget ?? int.MaxValue)
                .OrderByNullable((Kandidaat) => true == Kandidaat.Key.InputFookusTransitioonLezteZiilWert ? -1 : 0)
                .ToArrayNullable();

            var OverViewScrolledToTopLezteAlter = AutomaatZuusctand.OverViewScrolledToTopLezteAlter();
            var WindowOverviewScroll            = AutomaatZuusctand.WindowOverviewScnapscusLezteScroll();

            var MengeOverviewObjektVerwendetFraigaabe =
                MengeOverviewObjektVerwendet
                .WhereNullable((Kandidaat) => Kandidaat.Value.OreTypFraigaabe ?? false)
                .ToArrayNullable();

            ListeTargetVerwendet.ForEachNullable((Target) =>
            {
                if (!Target.Value.OreTypFraigaabe ?? false)
                {
                    ListeAufgaabeParam.Add(
                        SictAufgaabeParam.KonstruktAufgaabeParam(
                            AufgaabeParamAndere.KonstruktTargetUnLock(Target.Key),
                            "Target Ore Type not suiting Preferences"));
                }
            });

            var AsteroidKeepInRangeListeAufgaabeParam = new List <SictAufgaabeParam>();

            if ((MengeAsteroidInRaicwaiteAnzaalAusraicend ?? false) &&
                (0 < MengeTargetVerwendet.CountNullable((Kandidaat) => Kandidaat.Value.OreTyp.HasValue)))
            {
                AsteroidKeepInRangeListeAufgaabeParam.Add(new AufgaabeParamShipStop());
            }
            else
            {
                if (null != OverviewObjektFraigaabeLockedNictNääxte.Key)
                {
                    var TargetOoneAssignedWaitestEntfernte =
                        MengeTargetVerwendet
                        .WhereNullable((Kandidaat) => !(0 < Kandidaat.Key.ScnapscusMengeAssignedAnzaal()))
                        .OrderByDescendingNullable((Kandidaat) => Kandidaat.Key.SictungLezteDistanceScrankeMax() ?? int.MaxValue)
                        .FirstOrDefaultNullable();

                    if (null != TargetOoneAssignedWaitestEntfernte.Key)
                    {
                        if (OverviewObjektFraigaabeLockedNictNääxte.Key.DistanceScrankeMaxKombi < TargetOoneAssignedWaitestEntfernte.Key.SictungLezteDistanceScrankeMin() - 1111)
                        {
                            ListeAufgaabeParam.Add(AufgaabeParamAndere.KonstruktTargetUnLock(TargetOoneAssignedWaitestEntfernte.Key));
                        }
                    }
                }

                if (!(AutomaatZuusctand.OverViewScrolledToTopLezteAlter() < 13111))
                {
                    AsteroidKeepInRangeListeAufgaabeParam.Add(new AufgaabeParamScrollToTop(WindowOverviewScroll));
                }

                if (null != TargetAnzufliigeNääxte)
                {
                    AsteroidKeepInRangeListeAufgaabeParam.Add(AufgaabeParamAndere.AufgaabeDistanceAinzusctele(TargetAnzufliigeNääxte, null, 4444));
                }
            }

            ListeAufgaabeParam.AddRange(
                AsteroidKeepInRangeListeAufgaabeParam
                .Select((AufgaabeParam) => SictAufgaabeParam.KonstruktAufgaabeParam(
                            AufgaabeParam, "keep Asteroid in Range")));

            if (null == OverviewTabBevorzuugtTitel)
            {
            }
            else
            {
                //	ListeAufgaabeParam.Add(AufgaabeParamAndere.KonstruktOverviewTabAktiviire(OverviewTabBevorzuugtTitel));

                //	Laade Overview Default "Mining" naac Tab.

                ListeAufgaabeParam.Add(new AufgaabeParamOverviewPresetLaade(OverviewPresetTyp.Default, OverviewDefaultMiningIdent, OverviewTabBevorzuugtTitel));
            }

            if (null != ShipMengeModuleMiner)
            {
                foreach (var ModuleMiner in ShipMengeModuleMiner)
                {
                    var ModuleMinerTarget = ModuleMiner.TargetAktuel();

                    var ModuleMinerTargetInfo =
                        MengeTargetVerwendet
                        .FirstOrDefaultNullable((Kandidaat) => Kandidaat.Key == ModuleMinerTarget);

                    if (ModuleMiner.AktiivBerecne(1))
                    {
                        string ModuleScalteAusUrsaceSictString = null;

                        if (true == AnnaameNaacAbbrucMinerZyyklusOreHoldGefült)
                        {
                            ModuleScalteAusUrsaceSictString = "Ore Hold Full";
                        }

                        if (null != ModuleMinerTargetInfo.Key)
                        {
                            if (ModuleMinerTargetInfo.Value.ErzMengeRestScrankeMin <= 0)
                            {
                                ModuleScalteAusUrsaceSictString = "Asteroid depleted";
                            }
                        }

                        if (null != ModuleScalteAusUrsaceSictString)
                        {
                            AsteroidMineListeAufgaabeParam.Add(
                                SictAufgaabeParam.KonstruktAufgaabeParam(
                                    AufgaabeParamAndere.KonstruktModuleScalteAus(ModuleMiner),
                                    ModuleScalteAusUrsaceSictString));
                        }

                        continue;
                    }

                    if (true == DockUndOffloadPrioVorMine)
                    {
                        continue;
                    }

                    var ModuleMinerRange = (ModuleMiner.RangeMax ?? ModuleMiner.RangeOptimal);

                    if (!ModuleMinerRange.HasValue)
                    {
                        continue;
                    }

                    SictTargetZuusctand ZuModuleTargetVerwendet = null;

                    if (!(true == CharZuusctandWarping))
                    {
                        if (null != ListeTargetVerwendet)
                        {
                            foreach (var Target in ListeTargetVerwendet)
                            {
                                if (null != ZuModuleTargetVerwendet)
                                {
                                    break;
                                }

                                if (Target.Key.SictungLezteDistanceScrankeMaxScpezTarget <= TargetDistanceScrankeMax)
                                {
                                    //	Pro Scrit nur ain Module Assigne.
                                    if (AsteroidMineModuleScalteAinListeAufgaabeParam.Count < 1)
                                    {
                                        if (0 < Target.Value.MengeAssignedAnzaal)
                                        {
                                            //	zu diisem Target isc beraits mindestens ain Module Assigned.

                                            if (0 < TargetAssignmentMeerereKarenzDauerRest)
                                            {
                                                continue;
                                            }
                                        }

                                        ZuModuleTargetVerwendet = Target.Key;

                                        if (true == Target.Key.InputFookusTransitioonLezteZiilWert)
                                        {
                                            if (0 < TargetAssignmentKarenzDauerRest)
                                            {
                                            }
                                            else
                                            {
                                                AsteroidMineModuleScalteAinListeAufgaabeParam.Add(AufgaabeParamAndere.KonstruktModuleScalteAin(ModuleMiner));
                                            }
                                        }
                                        else
                                        {
                                            AsteroidMineListeAufgaabeParam.Add(AufgaabeParamAndere.KonstruktTargetInputFookusSeze(Target.Key));
                                        }
                                    }
                                }
                                else
                                {
                                }
                            }
                        }

                        if (null != ZuModuleTargetVerwendet)
                        {
                            continue;
                        }
                    }
                }
            }

            AsteroidMineListeAufgaabeParam.AddRange(AsteroidMineModuleScalteAinListeAufgaabeParam.Take(1));

            if (null != AsteroidZuLockeNääxte)
            {
                AsteroidLockListeAufgaabeParam.Add(new AufgaabeParamLockTarget(AsteroidZuLockeNääxte));
            }

            if (InOverviewSuuceAsteroid ?? false)
            {
                /*
                 * 2014.10.05
                 *
                 * if (OverViewScrolledToTopLezteAlter < 13333)
                 * {
                 *      AsteroidLockListeAufgaabeParam.Add(new AufgaabeParamScrollDown(WindowOverviewScroll));
                 * }
                 * else
                 * {
                 *      AsteroidLockListeAufgaabeParam.Add(new AufgaabeParamScrollToTop(WindowOverviewScroll));
                 * }
                 * */

                AsteroidLockListeAufgaabeParam.Add(AufgaabeParamAndere.KonstruktInOverviewTabFolgeViewportDurcGrid());
            }

            ListeAufgaabeParam.AddRange(AsteroidMineListeAufgaabeParam);
            ListeAufgaabeParam.AddRange(AsteroidLockListeAufgaabeParam);

            return(ListeAufgaabeParam);
        }
Exemple #30
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="AutomaatZuusctand"></param>
        /// <param name="StrategikonInstanz"></param>
        /// <param name="InStrategikonAtom"></param>
        /// <param name="MengeObjektGrupeMesungZaitScrankeMin">
        /// Früheste Zait zu der dii Mesung der Objekt Grupe zum ausscliise der Existenz noc zu bearbaitender Objekte begine darf.</param>
        public void Aktualisiire(
            SictAutomatZuusctand AutomaatZuusctand,
            SictMissionStrategikonInstanz StrategikonInstanz,
            SictMissionStrategikonInRaumAtom InStrategikonAtom,
            Int64?MengeObjektGrupeMesungZaitScrankeMin)
        {
            this.MengeObjektGrupeMesungZaitScrankeMin = MengeObjektGrupeMesungZaitScrankeMin;

            var AtomZwisceergeebnis = this;

            if (null == AutomaatZuusctand)
            {
                return;
            }

            if (null == StrategikonInstanz)
            {
                return;
            }

            var ZaitMili = AutomaatZuusctand.NuzerZaitMili;

            var RaumMengeObjektCargoDurcsuuct = StrategikonInstanz.MengeObjektCargoDurcsuuct;

            var OverviewUndTarget = (null == AutomaatZuusctand) ? null : AutomaatZuusctand.OverviewUndTarget;

            var MengeInRaumObjekt = (null == OverviewUndTarget) ? null : OverviewUndTarget.MengeOverViewObjekt;

            Int64?ErfolgTailVorMengeOverviewObjektGrupeMesungZuErscteleZait = null;

            SictOverviewObjektGrupeEnum[] ZuMengeObjektGrupeMesungVolsctändigFeelend = null;
            var   AtomZwisceergeebnisErfolg = false;
            Int64?MesungMengeObjektGrupeZaitScrankeMinPlusBeruhigungszait = null;

            try
            {
                if (null == InStrategikonAtom)
                {
                    AtomZwisceergeebnisErfolg = true;
                    return;
                }

                if (null == MengeInRaumObjekt)
                {
                    return;
                }

                var InStrategikonAtomMengeObjektFilter = InStrategikonAtom.MengeObjektFilter;

                var InStrategikonAtomMengeObjektFilterGrupe =
                    (null == InStrategikonAtomMengeObjektFilter) ? null :
                    Bib3.Glob.ArrayAusListeFeldGeflact(
                        InStrategikonAtomMengeObjektFilter.Select((ObjektFilter) =>
                {
                    var BedingungTypeUndName = ObjektFilter.BedingungTypeUndName;

                    if (null == BedingungTypeUndName)
                    {
                        return(null);
                    }

                    return(BedingungTypeUndName.MengeGrupeZuDurcsuuce);
                })
                        .Where((Kandidaat) => null != Kandidaat))
                    .Distinct()
                    .ToArray();

                var MengeObjektGefiltert = MengeInRaumObjektGefiltert(MengeInRaumObjekt, InStrategikonAtomMengeObjektFilter);

                var MengeObjektGefiltertNocSictbar =
                    (null == MengeObjektGefiltert) ? null :
                    MengeObjektGefiltert.Where((OverViewObjekt) => ZaitMili <= OverViewObjekt.SictungLezteZait).ToArray();

                var BedingungObjektExistentErfült = false;

                SictOverViewObjektZuusctand[] MengeObjektCargoZuDurcsuuce = null;
                SictOverViewObjektZuusctand[] MengeObjektZuZersctööre     = null;
                KeyValuePair <SictOverViewObjektZuusctand, Int64>?ObjektAnzufliigeUndDistanceScranke = null;

                var FilterCargoZuDurcsuuce =
                    new Func <SictOverViewObjektZuusctand, bool>((InRaumObjekt) => SictMissionZuusctand.FilterCargoZuDurcsuuce(InRaumObjekt, RaumMengeObjektCargoDurcsuuct));

                if (!(true == InStrategikonAtom.BedingungObjektExistent) ||
                    !MengeObjektGefiltertNocSictbar.IsNullOrEmpty())
                {
                    BedingungObjektExistentErfült = true;
                }

                var InStrategikonAtomZuObjektDistanzAinzuscteleScrankeMax = InStrategikonAtom.ZuObjektDistanzAinzuscteleScrankeMax;

                if (null != MengeObjektGefiltert)
                {
                    if (true == InStrategikonAtom.ObjektDurcsuuceCargo)
                    {
                        MengeObjektCargoZuDurcsuuce = MengeObjektGefiltert.Where(FilterCargoZuDurcsuuce).ToArray();
                    }

                    if (true == InStrategikonAtom.ObjektZersctööre)
                    {
                        MengeObjektZuZersctööre = MengeObjektGefiltert;
                    }

                    if (InStrategikonAtomZuObjektDistanzAinzuscteleScrankeMax.HasValue)
                    {
                        var MengeObjektGefiltertDistanceNitPasend =
                            MengeObjektGefiltert.Where((InRaumObjekt) => !(InRaumObjekt.SictungLezteDistanceScrankeMaxScpezOverview <= InStrategikonAtomZuObjektDistanzAinzuscteleScrankeMax.Value)).ToArray();

                        if (0 < MengeObjektGefiltertDistanceNitPasend.Length)
                        {
                            ObjektAnzufliigeUndDistanceScranke = new KeyValuePair <SictOverViewObjektZuusctand, Int64>(
                                MengeObjektGefiltertDistanceNitPasend.FirstOrDefault(), InStrategikonAtomZuObjektDistanzAinzuscteleScrankeMax.Value);
                        }
                    }
                }

                var AtomZwisceergeebnisMengeAufgaabeObjektZuBearbaite = new List <SictAufgaabeParam>();

                if (ObjektAnzufliigeUndDistanceScranke.HasValue)
                {
                    if (null != ObjektAnzufliigeUndDistanceScranke.Value.Key)
                    {
                        AtomZwisceergeebnisMengeAufgaabeObjektZuBearbaite.Add(
                            AufgaabeParamAndere.AufgaabeDistanceAinzusctele(
                                ObjektAnzufliigeUndDistanceScranke.Value.Key, null, ObjektAnzufliigeUndDistanceScranke.Value.Value));
                    }
                }

                if (null != MengeObjektCargoZuDurcsuuce)
                {
                    AtomZwisceergeebnisMengeAufgaabeObjektZuBearbaite.AddRange(
                        MengeObjektCargoZuDurcsuuce.Select((InRaumObjekt) => AufgaabeParamAndere.AufgaabeAktioonCargoDurcsuuce(InRaumObjekt)));
                }

                if (null != MengeObjektZuZersctööre)
                {
                    AtomZwisceergeebnisMengeAufgaabeObjektZuBearbaite.AddRange(
                        MengeObjektZuZersctööre.Select((InRaumObjekt) => new AufgaabeParamDestrukt(InRaumObjekt)));
                }

                AtomZwisceergeebnis.MengeAufgaabeObjektZuBearbaite = AtomZwisceergeebnisMengeAufgaabeObjektZuBearbaite.ToArray();

                if (MengeObjektCargoZuDurcsuuce.IsNullOrEmpty())
                {
                    if (!AtomZwisceergeebnis.CargoDurcsuuceErfolgZait.HasValue)
                    {
                        AtomZwisceergeebnis.CargoDurcsuuceErfolgZait = ZaitMili;
                    }
                }
                else
                {
                    AtomZwisceergeebnis.CargoDurcsuuceErfolgZait = null;
                }

                if (MengeObjektZuZersctööre.IsNullOrEmpty())
                {
                    if (!AtomZwisceergeebnis.ZersctööreErfolgZait.HasValue)
                    {
                        AtomZwisceergeebnis.ZersctööreErfolgZait = ZaitMili;
                    }
                }
                else
                {
                    AtomZwisceergeebnis.ZersctööreErfolgZait = null;
                }

                if (ObjektAnzufliigeUndDistanceScranke.HasValue)
                {
                    AtomZwisceergeebnis.AnfliigeErfolgZait = null;
                }
                else
                {
                    if (!AtomZwisceergeebnis.AnfliigeErfolgZait.HasValue)
                    {
                        AtomZwisceergeebnis.AnfliigeErfolgZait = ZaitMili;
                    }
                }

                if (BedingungObjektExistentErfült)
                {
                    if (!AtomZwisceergeebnis.ObjektExistentErfolgZait.HasValue)
                    {
                        AtomZwisceergeebnis.ObjektExistentErfolgZait = ZaitMili;
                    }
                }
                else
                {
                    AtomZwisceergeebnis.ObjektExistentErfolgZait = null;
                }

                var ScritBedingungErfültBeruhigungszaitMili = InStrategikonAtom.ScritBedingungErfültBeruhigungszaitMili ?? 1000;

                var AtomZwisceergeebnisMengeScpezielErfültZaitNulbar = new Int64?[] {
                    AtomZwisceergeebnis.CargoDurcsuuceErfolgZait,
                    AtomZwisceergeebnis.ZersctööreErfolgZait,
                    AtomZwisceergeebnis.AnfliigeErfolgZait,
                    AtomZwisceergeebnis.ObjektExistentErfolgZait
                };

                if (AtomZwisceergeebnisMengeScpezielErfültZaitNulbar.Any((ScpezielErfültZaitNulbar) => !ScpezielErfültZaitNulbar.HasValue))
                {
                    //	Aine der Scpezialisiirte Aufgaabe isc noc nit erfült.
                    return;
                }

                ErfolgTailVorMengeOverviewObjektGrupeMesungZuErscteleZait =
                    Bib3.Glob.Max(AtomZwisceergeebnisMengeScpezielErfültZaitNulbar) ?? 0;

                var MesungMengeObjektGrupeZaitScrankeMin =
                    Bib3.Glob.Max(ErfolgTailVorMengeOverviewObjektGrupeMesungZuErscteleZait, MengeObjektGrupeMesungZaitScrankeMin) ?? 0;

                MesungMengeObjektGrupeZaitScrankeMinPlusBeruhigungszait =
                    MesungMengeObjektGrupeZaitScrankeMin + ScritBedingungErfültBeruhigungszaitMili;

                ZuMengeObjektGrupeMesungVolsctändigFeelend =
                    OverviewUndTarget.MengeObjektGrupeUntermengeOoneOverviewViewportFolgeVolsctändigNaacZait(
                        InStrategikonAtomMengeObjektFilterGrupe,
                        MesungMengeObjektGrupeZaitScrankeMin);

                if (!ZuMengeObjektGrupeMesungVolsctändigFeelend.IsNullOrEmpty())
                {
                    //	Verzwaigung Für Debug Haltepunkt
                }

                if (MesungMengeObjektGrupeZaitScrankeMinPlusBeruhigungszait < ZaitMili)
                {
                    /*
                     * 2014.06.12
                     *
                     * Korektur: Versciibe diise Blok naac finally um überscraibe des vorherige Wert mit null zu ermööglice fals try Blok scon vorher unterbroce werd.
                     *
                     * AtomZwisceergeebnis.MengeOverviewObjektGrupeMesungZuErsctele = ZuMengeObjektGrupeMesungVolsctändigFeelend;
                     *
                     * //	if (ZuMengeObjektGrupeMesungVolsctändigFeelend.Length < 1)
                     * if (Optimat.Glob.NullOderLeer(ZuMengeObjektGrupeMesungVolsctändigFeelend))
                     * {
                     *      AtomZwisceergeebnisErfolg = true;
                     * }
                     * */
                }
            }
            finally
            {
                AtomZwisceergeebnis.MengeOverviewObjektGrupeMesungZuErsctele = ZuMengeObjektGrupeMesungVolsctändigFeelend;

                /*
                 * 2014.07.10	Korektur: zuusäzlice Bedingung:
                 * MesungMengeObjektGrupeZaitScrankeMinPlusBeruhigungszait < ZaitMili
                 *
                 * //	if (ZuMengeObjektGrupeMesungVolsctändigFeelend.Length < 1)
                 * if (Optimat.Glob.NullOderLeer(ZuMengeObjektGrupeMesungVolsctändigFeelend))
                 * {
                 *      AtomZwisceergeebnisErfolg = true;
                 * }
                 * */

                if (MesungMengeObjektGrupeZaitScrankeMinPlusBeruhigungszait < ZaitMili)
                {
                    if (ZuMengeObjektGrupeMesungVolsctändigFeelend.IsNullOrEmpty())
                    {
                        AtomZwisceergeebnisErfolg = true;
                    }
                }

                AtomZwisceergeebnis.ErfolgTailVorMengeOverviewObjektGrupeMesungZuErscteleZait =
                    ErfolgTailVorMengeOverviewObjektGrupeMesungZuErscteleZait;

                if (ErfolgTailVorMengeOverviewObjektGrupeMesungZuErscteleZait.HasValue)
                {
                    AtomZwisceergeebnis.ErfolgTailVorMengeOverviewObjektGrupeMesungZuErscteleZaitLezte = ErfolgTailVorMengeOverviewObjektGrupeMesungZuErscteleZait;
                }

                if (AtomZwisceergeebnisErfolg)
                {
                    AtomZwisceergeebnis.EntscaidungErfolgLezteZait = ZaitMili;
                }
                else
                {
                    AtomZwisceergeebnis.EntscaidungErfolgLezteZait = null;
                }

                AtomZwisceergeebnis.AktualisiireTailEntscaidungErfolgFrühesteZait();
            }
        }