示例#1
0
        public static async Task <bool> TryGotoAsync(Uri uri, NavigationSpeed speed)
        {
            TimeSpan responseTime;
            float    successRate = default;

            switch (speed)
            {
            case NavigationSpeed.Slow:
                responseTime = TimeSpan.FromSeconds(Random.Next(2, 10));
                successRate  = 0.5f;
                break;

            case NavigationSpeed.Normal:
                responseTime = TimeSpan.FromMilliseconds(Random.Next(1000, 2000));
                successRate  = 0.80f;
                break;

            case NavigationSpeed.Fast:
                successRate  = 0.95f;
                responseTime = TimeSpan.FromMilliseconds(Random.Next(1000));
                break;
            }
            Logger.Debug("Requestion {siteUrl}, that has a {successRate}% change of success", uri, successRate * 100);
            await Task.Delay(responseTime);

            var isSuccessful = Random.NextDouble() <= successRate;
            var statusCode   = isSuccessful ? SuccessStatus.OneAtRandom() : FailStatus.OneAtRandom();

            Logger.Information("Requested {siteUrl} completed in {responseTime:s\\.f} s with status code {statusCode}", SiteUrls.LoginPage, responseTime, statusCode);
            return(isSuccessful);
        }
示例#2
0
    public float GetSpeedFraction(NavigationSpeed speed)
    {
        switch (speed)
        {
        case NavigationSpeed.Fast:
            return(FastSpeedFraction);

        case NavigationSpeed.Normal:
            return(NormalSpeedFraction);

        case NavigationSpeed.Slow:
            return(SlowSpeedFraction);

        case NavigationSpeed.Slowest:
            return(SlowestSpeedFraction);

        default:
            return(1f);
        }
    }
示例#3
0
 public void SetCurrentSpeed(NavigationSpeed speed)
 {
     currentSpeedFraction = GetSpeedFraction(speed);
 }
示例#4
0
 public bool SetDestination(Vector3 pos, NavigationSpeed speed, float updateInterval = 0f, float navmeshSampleDistance = 0f)
 {
     return(SetDestination(pos, GetSpeedFraction(speed), updateInterval, navmeshSampleDistance));
 }