public void PropertyTest()
        {
            var timingHelper = new TimingHelper(_warmupIterations, _iterations);

            // One property.
            var onePropertyType = this._assembly.GetType("AssemblyToProcess.Performance.OneProperty");
            var instance = (dynamic) Activator.CreateInstance(onePropertyType);
            var oneProperty = new OneProperty();

            timingHelper.TimeIt("One property",
                new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()),
                new TimingHelper.Data("Hand Copy", () => instance.HCopy()),
                new TimingHelper.Data("Clone", () => oneProperty.Clone())
                );

            // Five properties.
            var fivePropertiesType = this._assembly.GetType("AssemblyToProcess.Performance.FiveProperties");
            instance = (dynamic) Activator.CreateInstance(fivePropertiesType);
            var fiveProperties = new FiveProperties();

            timingHelper.TimeIt("Five properties",
                new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()),
                new TimingHelper.Data("Hand Copy", () => instance.HCopy()),
                new TimingHelper.Data("Clfive", () => fiveProperties.Clone())
                );

            // Ten properties.
            var tenPropertiesType = this._assembly.GetType("AssemblyToProcess.Performance.TenProperties");
            instance = (dynamic) Activator.CreateInstance(tenPropertiesType);
            var tenProperties = new TenProperties();

            timingHelper.TimeIt("Ten properties",
                new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()),
                new TimingHelper.Data("Hand Copy", () => instance.HCopy()),
                new TimingHelper.Data("Clten", () => tenProperties.Clone())
                );
        }
Beispiel #2
0
 private void MouseDown(object sender, MouseEventExtArgs e)
 {
     if (_ActivityHandler != null)
     {
         _ActivityHandler.MouseActionFired(TimingHelper.GetCurrentTimestamp());
     }
 }
Beispiel #3
0
 private void KeyPress(object sender, KeyPressEventArgs e)
 {
     if (_ActivityHandler != null)
     {
         _ActivityHandler.KeyboardActionFired(TimingHelper.GetCurrentTimestamp());
     }
 }
Beispiel #4
0
        private IEnumerator BeginGameEffect()
        {
            if (RelicCollection == null)
            {
                RelicCollection = new RelicCollection();
            }
            else
            {
                RelicCollection.Reset();
            }

            if (StatisticManager == null)
            {
                StatisticManager = new StatisticManager();
            }
            else
            {
                StatisticManager.Reset();
            }

            // Fire a game begun event.
            OnGameBegun(EventArgs.Empty);

            yield return(Coroutines.Pause(TimingHelper.GetFrameCount(2.5f)));

            // Kick off the game with a coalsced phase. This should always be the Calm phase and we do want the player to be notified of this.
            PhaseManager.CoalescePlane();

            // Add a coroutine to handle updating remaining game time.
            CoroutineManager.Add(UpdateRemainingGameTimeKey, UpdateGameTimer());
        }
Beispiel #5
0
        public Image MakeScreenshot()
        {
            Bitmap img = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
                                    Screen.PrimaryScreen.Bounds.Height);

            using (Graphics g = Graphics.FromImage(img))
            {
                g.CopyFromScreen(Screen.PrimaryScreen.Bounds.X,
                                 Screen.PrimaryScreen.Bounds.Y,
                                 0, 0,
                                 img.Size,
                                 CopyPixelOperation.SourceCopy);
            }
            Size imgSize = Utils.CalcScreenshotSize(img);

            if (imgSize.Width != img.Width)
            {
                img = Utils.ResizeImage(img, imgSize.Width, imgSize.Height);
            }

            if (_ActivityHandler != null)
            {
                _ActivityHandler.ScreenshotActionFired(img, TimingHelper.GetCurrentTimestamp());
            }

            return(img);
        }
Beispiel #6
0
        private static void Main(string[] args)
        {
            Program.InitializeLogging();
            Program.InitializeExceptions();

            // Read command line arguments, and quit if necessary!
            if (!ReadCommandLineArgs(args))
            {
                return;
            }

            Program.SetLanguage();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            Trace.WriteLine("4DO Starting up");
            TimingHelper.MaximumResolutionPush();

            mainForm = new FourDO.UI.Main();
            Application.Run(mainForm);

            TimingHelper.MaximumResolutionPop();
            Trace.WriteLine("4DO Shutting down");
            Trace.Flush();

            PrintFakeDosPrompt();
        }
Beispiel #7
0
        public Point GetCurrentSessionTime()
        {
            int      current  = TimingHelper.GetCurrentTimestamp();
            TimeSpan timeSpan =
                TimeSpan.FromSeconds(current - CurrentContext.GetInstance().Session.StartTimestamp);

            return(new Point(timeSpan.Minutes < 0 ? 0 : timeSpan.Minutes, timeSpan.Hours < 0 ? 0 : timeSpan.Hours));
        }
        public async Task GetMarketTimeSeriesAsyncTest(string metricKey, string metricId)
        {
            var start    = TimingHelper.GetLastWednesday();
            var end      = TimingHelper.GetLastThursday();
            var response = await _client.Market
                           .GetMarketTimeSeriesAsync(metricKey, metricId, start, end);

            Assert.AreEqual(response.Status.ErrorCode, 0);
            Assert.IsNotNull(response.Data);
        }
Beispiel #9
0
        public void ScreenshotActionFired(Image img, int timestamp)
        {
            _LastScreenshotTime = timestamp;
            _NotificationHandler.ScreenshotTaken();

            int delta = TimingHelper.CalcTimestampDelta(CurrentContext
                                                        .GetInstance().Session.StartTimestamp, timestamp);

            CacheProcessor.SaveImage(img, delta.ToString(),
                                     CurrentContext.GetInstance().Session.StartTimestamp.ToString(), false);

            CurrentContext.GetInstance().Session.PostTime = delta;
            CurrentContext.GetInstance().Session.StopTime = -1;
            // AHMED TODO add app titles instead of TEST
            Process[] processes = Process.GetProcesses();
            var       sb        = new System.Text.StringBuilder();

            foreach (Process p in processes)
            {
                if (!String.IsNullOrEmpty(p.MainWindowTitle))
                {
                    sb.Append(p.MainWindowTitle.ToString() + "***");
                }
            }
            string outputSb = sb.ToString().Replace(",", " - ");

            if (!CurrentContext.GetInstance().Session.ActiveAppTitles.Contains(outputSb))
            {
                CurrentContext.GetInstance().Session.ActiveAppTitles.Add(outputSb);
            }
            // Ahmed END script

            /*LogController.GetInstance().LogData(LogController.
             *              GetInstance().LogFormat.GetSessionLine("ScreenshotActionFired() -- mode 1: IsSessionDataLocked: " +
             *              CurrentContext.GetInstance().IsSessionDataLocked.ToString()));*/

            // while (CurrentContext.GetInstance().IsSessionDataLocked)
            //     Thread.Sleep(1000);

            /*LogController.GetInstance().LogData(LogController.
             *              GetInstance().LogFormat.GetSessionLine("ScreenshotActionFired() -- mode 2: IsSessionDataLocked: " +
             *              CurrentContext.GetInstance().IsSessionDataLocked.ToString()));*/

            //CurrentContext.GetInstance().IsSessionDataLocked = true;
            CacheStrategyExecutor.GetInstance().CacheStrategy.PostCurrentSession(CurrentContext
                                                                                 .GetInstance().Session.StartTimestamp.ToString());

            CacheStrategyExecutor.GetInstance().CacheStrategy.PostOldSessions(CurrentContext
                                                                              .GetInstance().Session.StartTimestamp.ToString());
            // CurrentContext.GetInstance().IsSessionDataLocked = false;

            /*LogController.GetInstance().LogData(LogController.
             *              GetInstance().LogFormat.GetSessionLine("ScreenshotActionFired() -- mode 3: IsSessionDataLocked: " +
             *              CurrentContext.GetInstance().IsSessionDataLocked.ToString()));*/
        }
Beispiel #10
0
        public static ISession CreateSession()
        {
            ISession session = new DefaultSession(); // JUST SIMPLEST FACTORY NOW

            session.StartTimestamp      = TimingHelper.GetCurrentTimestamp();
            session.KeyboardTimes       = new List <int>();
            session.MouseTimes          = new List <int>();
            session.ScreenshotFileNames = new List <int>();
            session.ActiveAppTitles     = new List <String>();
            return(session);
        }
        public void DecryptedImageSaveTest()
        {
            Image  img       = ActivityProcessor.GetInstance().MakeScreenshot();
            string sessionId = (200 + TimingHelper.GetCurrentTimestamp()).ToString();

            CacheProcessor.SaveImage(img, "300", sessionId, false);
            string[] imgPaths = CacheProcessor.GetDecryptedImagePaths(sessionId);
            Assert.IsTrue(imgPaths.Length == 1);
            Assert.IsTrue(imgPaths[0].Contains("300.jpg"));
            CacheProcessor.DeleteAllSessions();
        }
        public void SaveDecryptedDataToFile()
        {
            IList <string> data      = PrepareData();
            string         sessionId = TimingHelper.GetCurrentTimestamp().ToString();

            CacheProcessor.SaveData(data, sessionId, false);
            Thread.Sleep(2000);
            CacheProcessor.SaveData(data, sessionId, false);
            Assert.IsTrue(File.Exists(CacheProcessor.GetDataDecryptedFilePath(sessionId)));
            CacheProcessor.DeleteAllSessions();
        }
Beispiel #13
0
        public async Task InvalidSymbolTest(string symbol)
        {
            var wednesday = TimingHelper.GetLastWednesday();
            var thursday  = TimingHelper.GetLastThursday();
            var response  = await _client.HistoricalData
                            .PricesAsync(symbol, wednesday, thursday);

            Assert.AreEqual(response.Status, "error");
            Assert.AreEqual(response.Message, "Invalid symbol");
            Assert.IsNull(response.Data);
        }
 private bool IsActualLog(string line)
 {
     try
     {
         string logDate = line.Split('-')[0].Substring(1).Trim();
         return(!TimingHelper.MoreThanInterval(TimingHelper.
                                               GetDateTimeFromString(logDate), DateTime.Now, CommonConst.LOG_INTERVAL));
     }
     catch
     {
         return(false);
     }
 }
        private IList <string> PrepareData()
        {
            IList <string> data = new List <string>();

            data.Add("username=test_user");
            data.Add("password=test_pass");
            data.Add("start_timestamp=" + TimingHelper.GetCurrentTimestamp().ToString());
            data.Add("stop_time=-1");
            data.Add("post_time=" + TimingHelper.GetCurrentTimestamp().ToString());
            data.Add("key_times=2,45,88,109,332,2000");
            data.Add("mouse_times=2,45,88,109,332,2000");
            return(data);
        }
        public async Task PricesAsyncTest(string symbol)
        {
            var wednesday = TimingHelper.GetLastWednesday();
            var thursday  = TimingHelper.GetLastThursday();
            var response  = await _client.HistoricalData
                            .PricesAsync(symbol, wednesday, thursday);

            Assert.AreEqual(response.Status, "Success");
            Assert.IsNotNull(response.Data);
            Assert.GreaterOrEqual(response.Data.Count(), 1);
            Assert.GreaterOrEqual(response.Data.First().Volume, 1);
            Assert.IsNotNull(response.Data.First().Start);
        }
        public async Task GetSingleDayHistoricalQuotesTest(string symbol, string interval)
        {
            var start  = TimingHelper.GetLastWednesday();
            var end    = TimingHelper.GetLastWednesday();
            var result = await _client.MarketData.GetHistoricalQuotes(symbol, interval, start, end);

            Assert.IsNotNull(result.Day);
            Assert.AreEqual(1, result.Day.Count);

            var firstDay = result.Day.First();

            Assert.AreEqual(start.ToString("yyyy-MM-dd"), firstDay.Date);
            Assert.NotZero(firstDay.Open);
        }
Beispiel #18
0
 /// <summary>
 ///     Starts the stub and waits for it to be listening on specified ports.
 /// </summary>
 /// <param name="standardOutputTextWriter">A text writer that the stub standard output will be redirected to.</param>
 /// <param name="httpPort">The http port to start the stub on</param>
 /// <param name="httpsPort">The https port to start the stub on</param>
 /// <param name="timeoutSeconds">Timeout on waiting for the stub to start</param>
 /// <exception cref="Exception"></exception>
 public void Start(TextWriter standardOutputTextWriter, int httpPort = DefaultPortConfiguration.HttpPort, int httpsPort = DefaultPortConfiguration.HttpsPort, int timeoutSeconds = 5)
 {
     LocalStubAddress = $"Https://localhost:{httpsPort}";
     stubTask         = Task.Run(() => StubStartup.StartStub(standardOutputTextWriter, httpPort, httpsPort));
     try
     {
         using (var stubClient = new StubClient(LocalStubAddress))
         {
             // ReSharper disable once AccessToDisposedClosure - this closure is only used in the timing helper and will not be used outside the using.
             TimingHelper.WaitFor(() => stubClient.HealthCheck().Result, timeoutSeconds);
         }
     }
     catch
     {
         throw new Exception("Stub did not start correctly.");
     }
 }
Beispiel #19
0
        public void StopSession(bool unsubscribe)
        {
            Context.Timer.Timer.GetInstance().StopTimer();
            ErrorTimer.GetInstance().StopTimer();
            if (unsubscribe)
            {
                ActivityProcessor.GetInstance().UnsubscribeFromMouseKeyEvents();
            }

            int delta = TimingHelper.CalcTimestampDelta(CurrentContext
                                                        .GetInstance().Session.StartTimestamp, TimingHelper.GetCurrentTimestamp());

            //if (delta < CommonConst.DELAY)
            //    return;

            CurrentContext.GetInstance().Session.PostTime = delta;
            CurrentContext.GetInstance().Session.StopTime = delta;

            ThreadPool.QueueUserWorkItem(new WaitCallback((s) =>
            {
                /*LogController.GetInstance().LogData(LogController.
                 *          GetInstance().LogFormat.GetSessionLine("StopSession() -- mode 1: IsSessionDataLocked: " +
                 *          CurrentContext.GetInstance().IsSessionDataLocked.ToString()));*/

                //while (CurrentContext.GetInstance().IsSessionDataLocked)
                //    Thread.Sleep(1000);

                /*LogController.GetInstance().LogData(LogController.
                 *          GetInstance().LogFormat.GetSessionLine("StopSession() -- mode 2: IsSessionDataLocked: " +
                 *          CurrentContext.GetInstance().IsSessionDataLocked.ToString()));*/

                //CurrentContext.GetInstance().IsSessionDataLocked = true;
                CacheStrategyExecutor.GetInstance().CacheStrategy.PostCurrentSession(CurrentContext
                                                                                     .GetInstance().Session.StartTimestamp.ToString());

                CacheStrategyExecutor.GetInstance().CacheStrategy.PostOldSessions(CurrentContext
                                                                                  .GetInstance().Session.StartTimestamp.ToString());
                // CurrentContext.GetInstance().IsSessionDataLocked = false;

                /*LogController.GetInstance().LogData(LogController.
                 *          GetInstance().LogFormat.GetSessionLine("StopSession() -- mode 3: IsSessionDataLocked: " +
                 *          CurrentContext.GetInstance().IsSessionDataLocked.ToString()));*/

                _NotificationHandler.SessionStopped();
            }));
        }
Beispiel #20
0
        public void KeyboardActionFired(int timestamp)
        {
            _LastActivityTime = timestamp;

            if (CurrentContext.GetInstance().IsSessionSleep)
            {
                _NotificationHandler.ActivityFired();
            }
            else
            {
                int delta = TimingHelper.CalcTimestampDelta(CurrentContext
                                                            .GetInstance().Session.StartTimestamp, timestamp);
                if (!CurrentContext.GetInstance().Session.KeyboardTimes.Contains(delta))
                {
                    CurrentContext.GetInstance().Session.KeyboardTimes.Add(delta);
                }
            }
        }
Beispiel #21
0
        public void StartSession(bool subscribe)
        {
            CacheStrategyExecutor.GetInstance().CacheStrategy.SetServerApiProvider(_ServerApiProvider);
            CurrentContext.GetInstance().Session = SessionFactory.CreateSession();
            _LastActivityTime   = TimingHelper.GetCurrentTimestamp();
            _LastScreenshotTime = _LastActivityTime;

            ThreadPool.QueueUserWorkItem(new WaitCallback((s) =>
            {
                /*LogController.GetInstance().LogData(LogController.
                 *          GetInstance().LogFormat.GetSessionLine("StartSession() -- mode 1: IsSessionDataLocked: " +
                 *          CurrentContext.GetInstance().IsSessionDataLocked.ToString()));*/

                //while (CurrentContext.GetInstance().IsSessionDataLocked)
                //    Thread.Sleep(1000);

                CurrentContext.GetInstance().Session.StopTime = -1;

                /*LogController.GetInstance().LogData(LogController.
                 *          GetInstance().LogFormat.GetSessionLine("StartSession() -- mode 2: IsSessionDataLocked: " +
                 *          CurrentContext.GetInstance().IsSessionDataLocked.ToString()));*/

                //CurrentContext.GetInstance().IsSessionDataLocked = true;
                CacheStrategyExecutor.GetInstance().CacheStrategy.PostCurrentSession(CurrentContext
                                                                                     .GetInstance().Session.StartTimestamp.ToString());

                CacheStrategyExecutor.GetInstance().CacheStrategy.PostOldSessions(CurrentContext
                                                                                  .GetInstance().Session.StartTimestamp.ToString());
                //CurrentContext.GetInstance().IsSessionDataLocked = false;

                /*LogController.GetInstance().LogData(LogController.
                 *          GetInstance().LogFormat.GetSessionLine("StartSession() -- mode 3: IsSessionDataLocked: " +
                 *          CurrentContext.GetInstance().IsSessionDataLocked.ToString()));*/
            }));

            ActivityProcessor.GetInstance().SetActivityHandler(this);
            if (subscribe)
            {
                ActivityProcessor.GetInstance().SubscribeToMouseKeyEvents();
            }
            Context.Timer.Timer.GetInstance().InitTimer(CommonConst.SESSION_INTERVAL, CommonConst.DELAY, this);
            Context.Timer.Timer.GetInstance().StartTimer();
        }
        public void EncryptDecryptTextFromFile()
        {
            IList <string> data      = PrepareData();
            string         sessionId = (200 + TimingHelper.GetCurrentTimestamp()).ToString();

            CacheProcessor.SaveData(data, sessionId, false);
            CacheProcessor.EncryptData(sessionId);
            CacheProcessor.DeleteDecryptedData(sessionId);
            CacheProcessor.DecryptData(sessionId);
            CacheProcessor.DeleteEncryptedData(sessionId);
            IList <string> loadedData = CacheProcessor.LoadData(sessionId);

            Assert.IsTrue(loadedData.Count == data.Count);
            for (int i = 0; i < loadedData.Count; i++)
            {
                Assert.IsTrue(data[i].Equals(loadedData[i]));
            }

            CacheProcessor.DeleteAllSessions();
        }
Beispiel #23
0
        public void FieldTest()
        {
            var timingHelper = new TimingHelper(_warmupIterations, _iterations);

            // One field.
            var oneFieldType = this._assembly.GetType("AssemblyToProcess.Performance.OneField");
            var instance     = (dynamic)Activator.CreateInstance(oneFieldType);
            var oneField     = new OneField();

            timingHelper.TimeIt("One Field",
                                new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()),
                                new TimingHelper.Data("Hand Copy", () => instance.HCopy()),
                                new TimingHelper.Data("Clone", () => oneField.Clone())
                                );

            // Five fields.
            var fiveFieldsType = this._assembly.GetType("AssemblyToProcess.Performance.FiveFields");

            instance = (dynamic)Activator.CreateInstance(fiveFieldsType);
            var fiveFields = new FiveFields();

            timingHelper.TimeIt("Five Fields",
                                new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()),
                                new TimingHelper.Data("Hand Copy", () => instance.HCopy()),
                                new TimingHelper.Data("Clone", () => fiveFields.Clone())
                                );

            // Ten fields.
            var tenFieldsType = this._assembly.GetType("AssemblyToProcess.Performance.TenFields");

            instance = (dynamic)Activator.CreateInstance(tenFieldsType);
            var tenFields = new TenFields();

            timingHelper.TimeIt("Ten Fields",
                                new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()),
                                new TimingHelper.Data("Hand Copy", () => instance.HCopy()),
                                new TimingHelper.Data("Clone", () => tenFields.Clone())
                                );
        }
Beispiel #24
0
        public void PropertyTest()
        {
            var timingHelper = new TimingHelper(_warmupIterations, _iterations);

            // One property.
            var onePropertyType = this._assembly.GetType("AssemblyToProcess.Performance.OneProperty");
            var instance        = (dynamic)Activator.CreateInstance(onePropertyType);
            var oneProperty     = new OneProperty();

            timingHelper.TimeIt("One property",
                                new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()),
                                new TimingHelper.Data("Hand Copy", () => instance.HCopy()),
                                new TimingHelper.Data("Clone", () => oneProperty.Clone())
                                );

            // Five properties.
            var fivePropertiesType = this._assembly.GetType("AssemblyToProcess.Performance.FiveProperties");

            instance = (dynamic)Activator.CreateInstance(fivePropertiesType);
            var fiveProperties = new FiveProperties();

            timingHelper.TimeIt("Five properties",
                                new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()),
                                new TimingHelper.Data("Hand Copy", () => instance.HCopy()),
                                new TimingHelper.Data("Clfive", () => fiveProperties.Clone())
                                );

            // Ten properties.
            var tenPropertiesType = this._assembly.GetType("AssemblyToProcess.Performance.TenProperties");

            instance = (dynamic)Activator.CreateInstance(tenPropertiesType);
            var tenProperties = new TenProperties();

            timingHelper.TimeIt("Ten properties",
                                new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()),
                                new TimingHelper.Data("Hand Copy", () => instance.HCopy()),
                                new TimingHelper.Data("Clten", () => tenProperties.Clone())
                                );
        }
        public void FieldTest()
        {
            var timingHelper = new TimingHelper(_warmupIterations, _iterations);

            // One field.
            var oneFieldType = this._assembly.GetType("AssemblyToProcess.Performance.OneField");
            var instance = (dynamic) Activator.CreateInstance(oneFieldType);
            var oneField = new OneField();

            timingHelper.TimeIt("One Field",
                new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()),
                new TimingHelper.Data("Hand Copy", () => instance.HCopy()),
                new TimingHelper.Data("Clone", () => oneField.Clone())
                );

            // Five fields.
            var fiveFieldsType = this._assembly.GetType("AssemblyToProcess.Performance.FiveFields");
            instance = (dynamic) Activator.CreateInstance(fiveFieldsType);
            var fiveFields = new FiveFields();

            timingHelper.TimeIt("Five Fields",
                new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()),
                new TimingHelper.Data("Hand Copy", () => instance.HCopy()),
                new TimingHelper.Data("Clone", () => fiveFields.Clone())
                );

            // Ten fields.
            var tenFieldsType = this._assembly.GetType("AssemblyToProcess.Performance.TenFields");
            instance = (dynamic) Activator.CreateInstance(tenFieldsType);
            var tenFields = new TenFields();

            timingHelper.TimeIt("Ten Fields",
                new TimingHelper.Data("Deep Copy", () => instance.DeepCopy()),
                new TimingHelper.Data("Hand Copy", () => instance.HCopy()),
                new TimingHelper.Data("Clone", () => tenFields.Clone())
                );
        }
Beispiel #26
0
    public void Start(OsuBeatmap beatmap)
    {
        Ac__DisplayClass18_0 ac__DisplayClass18_ = default(Ac__DisplayClass18_0);

        ac__DisplayClass18_.A4__this = this;
        ac__DisplayClass18_.beatmap  = beatmap;
        this.beatmap                     = ac__DisplayClass18_.beatmap;
        enabled                          = true;
        ac__DisplayClass18_.key1         = (VirtualKeyCode)osu.BindingManager.GetKeyCode(Bindings.OsuLeft);
        ac__DisplayClass18_.key2         = (VirtualKeyCode)osu.BindingManager.GetKeyCode(Bindings.OsuRight);
        currentKeyPressed                = ac__DisplayClass18_.key2;
        ac__DisplayClass18_.beatmapSpeed = (osu.Player.HitObjectManager.CurrentMods.HasFlag(Mods.DoubleTime) ? 1.5f : (osu.Player.HitObjectManager.CurrentMods.HasFlag(Mods.HalfTime) ? 0.75f : 1f));
        int num  = osu.HitWindow50(ac__DisplayClass18_.beatmap.OverallDifficulty);
        int num2 = osu.HitWindow50(ac__DisplayClass18_.beatmap.OverallDifficulty);
        int num3 = osu.HitWindow100(ac__DisplayClass18_.beatmap.OverallDifficulty);
        int num4 = osu.HitWindow300(ac__DisplayClass18_.beatmap.OverallDifficulty);

        ac__DisplayClass18_.hitObjectRadius = osu.HitObjectRadius(ac__DisplayClass18_.beatmap.CircleSize);
        ac__DisplayClass18_.alreadyHit      = false;
        bool flag = false;

        ac__DisplayClass18_.rand             = new Random();
        ac__DisplayClass18_.randomOffset     = ac__DisplayClass18_.rand.Next(-offset, offset);
        ac__DisplayClass18_.randomHoldTime   = ac__DisplayClass18_.rand.Next((int)(((float)holdTime - 5f) * ac__DisplayClass18_.beatmapSpeed), (int)(((float)holdTime + 5f) * ac__DisplayClass18_.beatmapSpeed));
        ac__DisplayClass18_.lastTimeHit      = 0;
        ac__DisplayClass18_.index            = osu.Player.HitObjectManager.CurrentHitObjectIndex;
        ac__DisplayClass18_.currentHitObject = ac__DisplayClass18_.beatmap.HitObjects[ac__DisplayClass18_.index];
        AStartg__releaseBothKeys18_2(ref ac__DisplayClass18_);
        Ac__DisplayClass18_1 ac__DisplayClass18_2 = default(Ac__DisplayClass18_1);

        while (osu.CanPlay && ac__DisplayClass18_.index < ac__DisplayClass18_.beatmap.HitObjects.Count && enabled)
        {
            TimingHelper.Delay(1u);
            if (osu.IsPaused)
            {
                Thread.Sleep(5);
                continue;
            }
            ac__DisplayClass18_2.currentTime = osu.CurrentTime;
            if (ac__DisplayClass18_2.currentTime >= ac__DisplayClass18_.currentHitObject.StartTime - num)
            {
                ac__DisplayClass18_.hitObjectPosition = ((ac__DisplayClass18_.currentHitObject is OsuSlider) ? (ac__DisplayClass18_.currentHitObject as OsuSlider).PositionAtTime(osu.CurrentTime) : ac__DisplayClass18_.currentHitObject.Position);
                if (!ac__DisplayClass18_.alreadyHit)
                {
                    if (AStartg__isMouseOnNote18_1(ref ac__DisplayClass18_))
                    {
                        if (ac__DisplayClass18_2.currentTime >= ac__DisplayClass18_.currentHitObject.StartTime + ac__DisplayClass18_.randomOffset)
                        {
                            flag = false;
                            AStartg__pressKey18_4(ref ac__DisplayClass18_, ref ac__DisplayClass18_2);
                        }
                    }
                    else if (ac__DisplayClass18_2.currentTime >= ac__DisplayClass18_.currentHitObject.StartTime + num2)
                    {
                        flag = true;
                        AStartg__pressKey18_4(ref ac__DisplayClass18_, ref ac__DisplayClass18_2);
                    }
                }
            }
            if (!flag & ac__DisplayClass18_.alreadyHit)
            {
                if (ac__DisplayClass18_2.currentTime >= ac__DisplayClass18_.currentHitObject.EndTime + ac__DisplayClass18_.randomOffset + ac__DisplayClass18_.randomHoldTime)
                {
                    AStartg__releaseKey18_5(ref ac__DisplayClass18_);
                    AStartg__getNextObject18_3(ref ac__DisplayClass18_);
                }
            }
            else if (ac__DisplayClass18_2.currentTime >= ac__DisplayClass18_.currentHitObject.EndTime + num2 + ac__DisplayClass18_.randomHoldTime)
            {
                AStartg__releaseKey18_5(ref ac__DisplayClass18_);
                AStartg__getNextObject18_3(ref ac__DisplayClass18_);
            }
            while (osu.CanPlay && ac__DisplayClass18_.index >= ac__DisplayClass18_.beatmap.HitObjects.Count && enabled)
            {
                Thread.Sleep(5);
            }
        }
    }
 public string GetSettingsLine(string action)
 {
     return(string.Format("<{0} - {1}>: SETTING, {2}", TimingHelper.GetCurrentDate(), TimingHelper.GetCurrentTime(), action));
 }
 public string GetSessionLine(string condition)
 {
     return(string.Format("<{0} - {1}>: SESSION: {2}", TimingHelper.GetCurrentDate(), TimingHelper.GetCurrentTime(), condition));
 }
Beispiel #29
0
        public int SinceLastScreenshot()
        {
            int current = TimingHelper.GetCurrentTimestamp();

            return(TimeSpan.FromSeconds(current - _LastScreenshotTime).Minutes);
        }
 public string GetNetworkLine(string condition)
 {
     return(string.Format("<{0} - {1}>: NETWORK: {2}", TimingHelper.GetCurrentDate(), TimingHelper.GetCurrentTime(), condition));
 }
 public string GetCrashReportLine(string condition)
 {
     return(string.Format("<{0} - {1}>: SYSTEM: Application Crashed{2}<{0} - {1}>##### CRASH LOG #####{2}<{0} - {1}>{3}{2}<{0} - {1}>##### CRASH LOG #####", TimingHelper.GetCurrentDate(), TimingHelper.GetCurrentTime(), Environment.NewLine, condition));
 }
Beispiel #32
0
        public void Start(Replay replay, bool flipInputs)
        {
            currentReplay = replay;

            double lastTime = quaverManager.QuaverBase.GameplayScreen.GameplayAudioTiming.Time + configManager.AudioOffset;
            int    keyCount = currentReplay.Mode == GameMode.Keys4 ? 4 : 7;

            var replayKeys = new List <int>();

            for (int i = 0; i < keyCount; i++)
            {
                replayKeys.Add(i);
            }

            int index = nearestFrameIndex(quaverManager.QuaverBase.GameplayScreen.GameplayAudioTiming.Time);

            while (quaverManager.QuaverBase.GameplayScreen.IsLoaded && index < currentReplay.Frames.Count)
            {
                double currentTime = quaverManager.QuaverBase.GameplayScreen.GameplayAudioTiming.Time + configManager.AudioOffset;
                if (Math.Abs(currentTime - lastTime) >= 50)
                {
                    break;
                }
                else
                {
                    lastTime = currentTime;
                }

                if (currentTime >= currentReplay.Frames[index].Time)
                {
                    var keyState = Replay.KeyPressStateToLanes(currentReplay.Frames[index].Keys);
                    for (int i = 0; i < replayKeys.Count; i++)
                    {
                        var key = getKeyByLaneIndex(flipInputs ? keyCount - 1 - replayKeys[i] : replayKeys[i]);
                        if (keyState.Contains(replayKeys[i]))
                        {
                            input.Keyboard.KeyDown(key);
                        }
                        else
                        {
                            input.Keyboard.KeyUp(key);
                        }
                    }

                    index++;
                }

                TimingHelper.Delay(1);
            }

            releaseAllKeys();

            //old auto algo

            /*int index = 0;
             * var queuedKeyUps = new List<(int, int)>();
             * while (quaverManager.QuaverBase.GameplayScreen.IsLoaded && (index < currentMap.HitObjects.Count || queuedKeyUps.Count != 0))
             * {
             *  var queuedForDeletion = new List<(int, int)>();
             *  foreach (var element in queuedKeyUps)
             *  {
             *      if (quaverManager.QuaverBase.GameplayScreen.GameplayAudioTiming.Time >= element.Item2)
             *      {
             *          inputSimulator.Keyboard.KeyUp(getKeyByLaneIndex(element.Item1 - 1));
             *          queuedForDeletion.Add(element);
             *      }
             *  }
             *  queuedKeyUps = queuedKeyUps.Except(queuedForDeletion).ToList();
             *
             *  if (index < currentMap.HitObjects.Count)
             *  {
             *      if (quaverManager.QuaverBase.GameplayScreen.GameplayAudioTiming.Time >= currentMap.HitObjects[index].StartTime)
             *      {
             *          inputSimulator.Keyboard.KeyDown(getKeyByLaneIndex(currentMap.HitObjects[index].Lane - 1));
             *          queuedKeyUps.Add((currentMap.HitObjects[index].Lane, currentMap.HitObjects[index].IsLongNote ? currentMap.HitObjects[index].EndTime : currentMap.HitObjects[index].StartTime + 50));
             *          index++;
             *      }
             *  }
             *
             *  Thread.Sleep(1);
             * }
             *
             * releaseAllKeys();*/
        }