Пример #1
0
            public void ProcessMove(Move move, MouseLagProcessor otherMouse)
            {
                if (move.Mouse != _mouse)
                {
                    return;
                }
                var movingFromDeadStop = _lastMove != null && _lastMove < move.Time - DeadStop;

                if (movingFromDeadStop)
                {
                    CompareMovementFromDeadStop(move.Time, otherMouse);
                    _lastMoveFromDeadStop = move.Time;
                }
                _lastMove = move.Time;
            }
Пример #2
0
            private void CompareMovementFromDeadStop(TimeSpan moveTime, MouseLagProcessor otherMouse)
            {
                if (otherMouse._lastMoveFromDeadStop == null)
                {
                    return;
                }
                var ourDelay = moveTime - otherMouse._lastMoveFromDeadStop.Value;

                if (ourDelay >= DeadStop)
                {
                    return;                       // this is from an older move
                }
                var subjectDelay =
                    _isBaseline ? -ourDelay : ourDelay;

                _stats.AddPoint(moveTime, subjectDelay.TotalMilliseconds);
            }
Пример #3
0
        public IStats Analyze(Mouse baseline, Mouse subject, IEnumerable <Move> moves)
        {
            var stats = new PointStats
                            (StatDescription
                            , DefaultFactor
                            , -250.0
                            , 250.0
                            , 100.0
                            , 10.0
                            );

            var baseAnalyzer    = new MouseLagProcessor(baseline, stats, isBaseline: true);
            var subjectAnalyzer = new MouseLagProcessor(subject, stats, isBaseline: false);

            foreach (var move in moves)
            {
                baseAnalyzer.ProcessMove(move, subjectAnalyzer);
                subjectAnalyzer.ProcessMove(move, baseAnalyzer);
            }

            return(stats);
        }