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); }
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); } }
public void SetCurrentSpeed(NavigationSpeed speed) { currentSpeedFraction = GetSpeedFraction(speed); }
public bool SetDestination(Vector3 pos, NavigationSpeed speed, float updateInterval = 0f, float navmeshSampleDistance = 0f) { return(SetDestination(pos, GetSpeedFraction(speed), updateInterval, navmeshSampleDistance)); }