コード例 #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);
        }
コード例 #2
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);
        }