コード例 #1
0
ファイル: App.Bot.cs プロジェクト: sUmcont/Optimat.EO
        void AutomatScritBerecne()
        {
            var Zait = Bib3.Glob.StopwatchZaitMiliSictInt();

            AutomatScritBerecneLezteNuzerZaitMili = Zait;

            var memoryMeasurement = Automat?.VonSensorikMesungLezte?.MemoryMeasurement;

            var timeMilli = memoryMeasurement?.End ?? 0;

            AutomatScritBerecneLezteSensorikMesungZaitMili = timeMilli;

            Automat.NuzerZaitMili = timeMilli;

            var preferences = EveOnlnOptimatParamBerecne();

            Automat.BotStepInput = new EveOnline.Base.BotStepInput
            {
                TimeMilli                    = timeMilli,
                PreferencesSerial            = preferences?.SerializeToString(),
                StepLastMotionResult         = ListeNaacProcessWirkung?.Select(motion => motion.MapToNew())?.ToArray(),
                FromProcessMemoryMeasurement = memoryMeasurement,
            };

            Automat.StepProcess();

            var AutomaatZuusctandDiferenzScrit = Automat.ZuusctandScritDiferenzBerecne(10);

            NaacBerictListeAutomaatZuusctandDiferenz.Add(new WertZuZaitpunktStruct <Bib3.RefNezDiferenz.SictZuNezSictDiferenzScritAbbild>(
                                                             AutomaatZuusctandDiferenzScrit, -1));

            NaacBerictListeAutomaatZuusctandDiferenz.ListeKürzeBegin(30);
        }
コード例 #2
0
ファイル: App.Bot.cs プロジェクト: sUmcont/Optimat.EO
        Int64?RequestedMeasurementTime(
            out Int64?AssumptionLastMeasurementTime)
        {
            AssumptionLastMeasurementTime = null;
            AssumptionLastMeasurementTime = SensorClient?.MemoryMeasurementLast?.End;

            var VonAutomatMeldungZuusctandLezte = this.VonOptimatMeldungZuusctandLezte;

            if (null == VonAutomatMeldungZuusctandLezte)
            {
                return((AssumptionLastMeasurementTime + 5000) ?? Bib3.Glob.StopwatchZaitMiliSictInt());
            }

            var ScritLeeseBeginZaitScrankeMinMili = VonAutomatMeldungZuusctandLezte.MesungNääxteZaitScrankeMin;

            if (AssumptionLastMeasurementTime.HasValue)
            {
                ScritLeeseBeginZaitScrankeMinMili = Math.Max(
                    ScritLeeseBeginZaitScrankeMinMili,
                    AssumptionLastMeasurementTime.Value + ZwisceMesungZaitScrankeMinMili);
            }
            else
            {
            }

            var VonOptimatVorsclaagBerecnetZuLezteScnapscus =
                !AssumptionLastMeasurementTime.HasValue ||
                AssumptionLastMeasurementTime <= VonAutomatMeldungZuusctandLezte.BerecnungVorsclaagLezteZait;

            if (!VonOptimatVorsclaagBerecnetZuLezteScnapscus)
            {
                return(null);
            }

            var VorsclaagListeWirkung = VonAutomatMeldungZuusctandLezte.VorsclaagListeWirkung.ToArrayFalsNitLeer();

            if (null != ListeNaacProcessWirkung)
            {
                //	lock (ListeNaacProcessWirkungLock)
                {
                    foreach (var NaacProcessWirkung in ListeNaacProcessWirkung)
                    {
                        var VorsclaagWirkung =
                            VonAutomatMeldungZuusctandLezte.VorsclaagListeWirkung
                            .FirstOrDefaultNullable((KandidaatVorsclaagWirkung) => KandidaatVorsclaagWirkung.Ident == NaacProcessWirkung.VorsclaagWirkungIdent);

                        var VonWirkungBisScnapscusWartezaitMili = this.VonWirkungBisScnapscusWartezaitMili;

                        if (null != VorsclaagWirkung)
                        {
                            VonWirkungBisScnapscusWartezaitMili = Math.Max(VonWirkungBisScnapscusWartezaitMili, (VorsclaagWirkung.VonWirkungBisVonZiilProcessLeeseWartezaitMili ?? 0));
                        }

                        var FürWirkungKarenzzaitEnde =
                            NaacProcessWirkung.EndeZaitMili + VonWirkungBisScnapscusWartezaitMili;

                        if (FürWirkungKarenzzaitEnde.HasValue)
                        {
                            ScritLeeseBeginZaitScrankeMinMili = Math.Max(ScritLeeseBeginZaitScrankeMinMili, FürWirkungKarenzzaitEnde.Value);
                        }
                    }

                    if (null != VorsclaagListeWirkung)
                    {
                        foreach (var VorsclaagWirkung in VorsclaagListeWirkung)
                        {
                            if (ListeNaacProcessWirkung.Any((KandidaatWirkung) => KandidaatWirkung.VorsclaagWirkungIdent == VorsclaagWirkung.Ident))
                            {
                                continue;
                            }

                            return(null);
                        }
                    }
                }
            }

            return(ScritLeeseBeginZaitScrankeMinMili);
        }
コード例 #3
0
ファイル: App.xaml.cs プロジェクト: sUmcont/Optimat.EO
        void ListeOptimatScritInspektAktualisiireTailWirkung()
        {
            var ListeOptimatScrit = this.ListeOptimatScrit;
            var VonOptimatMeldungZuusctandLezte = this.VonOptimatMeldungZuusctandLezte;

            IEnumerable <Optimat.EveOnline.SictVorsclaagNaacProcessWirkung> VorsclaagListeWirkung = null;

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

                var ListeOptimatScritLezte = ListeOptimatScrit.LastOrDefaultNullable();

                if (null == ListeOptimatScrit)
                {
                    return;
                }

                if (null == ListeOptimatScritLezte)
                {
                    return;
                }

                VorsclaagListeWirkung = VonOptimatMeldungZuusctandLezte.VorsclaagListeWirkung;
            }

            if (null != VorsclaagListeWirkung)
            {
                foreach (var VorsclaagWirkung in VorsclaagListeWirkung)
                {
                    if (ListeOptimatScrit.Any((KandidaatOptimatScrit) =>
                                              KandidaatOptimatScrit.VorsclaagListeWirkung
                                              .AnyNullable((KandidaatVorsclaagWirkung) => KandidaatVorsclaagWirkung.Ident == VorsclaagWirkung.Ident) ?? false))
                    {
                        //	Vorsclaag Wirkung wurde beraits in ain Scrit aingefüügt.
                        continue;
                    }

                    var OptimatScrit =
                        AusListeOptimatScritSuucePasendeZuVorsclaagWirkung(ListeOptimatScrit, VorsclaagWirkung);

                    if (null != OptimatScrit)
                    {
                        OptimatScrit.VorsclaagListeWirkung =
                            (OptimatScrit.VorsclaagListeWirkung ?? new Optimat.EveOnline.SictVorsclaagNaacProcessWirkung[0])
                            .Concat(new Optimat.EveOnline.SictVorsclaagNaacProcessWirkung[] { VorsclaagWirkung })
                            .ToArrayNullable();
                    }
                }
            }

            ListeNaacProcessWirkung.ForEachNullable((Wirkung) =>
            {
                var OptimatScrit =
                    ListeOptimatScrit.FirstOrDefaultNullable((KandidaatOptimatScrit) =>
                                                             KandidaatOptimatScrit.VorsclaagListeWirkung.AnyNullable((KandidaatWirkung) =>
                                                                                                                     KandidaatWirkung.Ident == Wirkung.VorsclaagWirkungIdent) ?? false);

                if (null != OptimatScrit)
                {
                    OptimatScrit.NaacProcessListeWirkung =
                        (OptimatScrit.NaacProcessListeWirkung ?? new Optimat.EveOnline.SictNaacProcessWirkung[0])
                        .Concat(new Optimat.EveOnline.SictNaacProcessWirkung[] { Wirkung })
                        .ToArrayNullable();
                }
            });
        }