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); }
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); }