i have this bot i made but the movement feels unnatural.
i need more vertical move randomly
i need more w a s d movement
i need more horizontal random linear, prabolic or cubic function mouse movement with loops

#!/bin/bash

hold_w=false
left_click=false

# Function for more natural mouse movement with easing and jitter
smooth_move() {
    local dx=$1
    local dy=$2
    local steps=$3
    local formula=$((RANDOM % 3))

    for (( i=0; i<steps; i++ )); do
        frac=$(awk -v i="$i" -v steps="$steps" 'BEGIN { print i / steps }')

        case "$formula" in
            0) # Linear
                factor=$frac
                ;;
            1) # Parabolic ease-in-out
                factor=$(awk -v f="$frac" 'BEGIN { print 3*f*f - 2*f*f*f }')
                ;;
            2) # Sinusoidal
                factor=$(awk -v f="$frac" 'BEGIN { print (1 - cos(f * 3.1415)) / 2 }')
                ;;
        esac

        # Add some jitter to simulate small adjustments
        jitter_x=$((RANDOM % 3 - 1))  # -1 to +1
        jitter_y=$((RANDOM % 3 - 1))

        move_x=$(awk -v dx="$dx" -v f="$factor" 'BEGIN { printf("%d", dx*f) }')
        move_y=$(awk -v dy="$dy" -v f="$factor" 'BEGIN { printf("%d", dy*f) }')

        xdotool mousemove_relative -- "$((move_x + jitter_x))" "$((move_y + jitter_y))"
        sleep 0.008  # slightly faster steps
    done
}

while true; do
    chance=$((RANDOM % 100 + 1))

    ### W KEY (90% hold)
    if [ "$chance" -le 90 ]; then
        if [ "$hold_w" = false ]; then
            xdotool keydown w
            hold_w=true
            echo "Holding W"
        fi
    else
        if [ "$hold_w" = true ]; then
            xdotool keyup w
            hold_w=false
            echo "Released W"
        fi
    fi

    ### A/D Movement (60% combined chance)
    if [ "$chance" -le 30 ]; then
        xdotool keydown a; sleep 0.08; xdotool keyup a
        echo "Tapped A"
    elif [ "$chance" -le 60 ]; then
        xdotool keydown d; sleep 0.08; xdotool keyup d
        echo "Tapped D"
    fi

    ### S Key (10%)
    if [ "$chance" -le 10 ]; then
        xdotool keydown s; sleep 0.08; xdotool keyup s
        echo "Tapped S"
    fi

    ### Spacebar (15%)
    if [ "$chance" -le 15 ]; then
        xdotool key space
        echo "Pressed SPACE"
    fi

    ### E Key (3%)
    if [ "$chance" -le 3 ]; then
        xdotool key e
        echo "Pressed E"
    fi

    ### Mouse Movement (70% horizontal dominant)
    move_chance=$((RANDOM % 100))
    if [ "$move_chance" -lt 70 ]; then
        dx=$((RANDOM % 400 - 200))    # Wide horizontal
        dy=$((RANDOM % 60 - 30))      # Narrow vertical
        steps=$((RANDOM % 40 + 20))   # 20 to 60 steps
        echo "Smooth mouse move dx=$dx dy=$dy steps=$steps"
        smooth_move "$dx" "$dy" "$steps"
    fi

    ### Left click (5% hold)
    click_chance=$((RANDOM % 100))
    if [ "$click_chance" -lt 5 ]; then
        if [ "$left_click" = false ]; then
            xdotool mousedown 1
            left_click=true
            echo "Left click down"
        fi
    else
        if [ "$left_click" = true ]; then
            xdotool mouseup 1
            left_click=false
            echo "Left click up"
        fi
    fi

    ### Random sleep (200ms to 400ms)
    sleep_time=$(awk -v min=0.2 -v max=0.4 'BEGIN{srand(); print min+rand()*(max-min)}')
    sleep "$sleep_time"
done