예제 #1
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);
        }
        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));
        }
예제 #3
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());
            }
        }
예제 #4
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);
        }