use std::time::Duration;
use tokio::time::sleep;
use rand::RngExt;
pub(super) async fn keystroke_delay() {
let ms: u64 = {
let mut rng = rand::rng();
if rng.random_range(0..100) < 3 {
rng.random_range(300..=650)
} else {
rng.random_range(50..=140)
}
};
sleep(Duration::from_millis(ms)).await;
}
pub(super) async fn click_hold_delay() {
let ms: u64 = {
let mut rng = rand::rng();
rng.random_range(40..=120)
};
sleep(Duration::from_millis(ms)).await;
}
pub(super) async fn settle_delay() {
let ms: u64 = {
let mut rng = rand::rng();
rng.random_range(80..=220)
};
sleep(Duration::from_millis(ms)).await;
}
pub(super) fn jitter_point(x: f64, y: f64, radius: f64) -> (f64, f64) {
if radius <= 0.0 {
return (x, y);
}
let mut rng = rand::rng();
let dx: f64 = rng.random_range(-radius..=radius);
let dy: f64 = rng.random_range(-radius..=radius);
(x + dx, y + dy)
}