File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ export function randomInRange (
2+ min : number ,
3+ max : number ,
4+ integer = false ,
5+ ) : number {
6+ if ( min > max ) {
7+ [ min , max ] = [ max , min ]
8+ }
9+
10+ const value = Math . random ( ) * ( max - min ) + min
11+ return integer ? Math . floor ( value ) : value
12+ }
13+
114export function getHumanTypingDelay ( index : number , text : string ) {
215 const char = text [ index ]
316
4- // ===== 1. 基础速度(约 90–150 ms) =====
5- let delay = 90 + Math . random ( ) * 60
17+ // ===== 1. 基础速度 =====
18+ let delay = randomInRange ( 16 , 100 )
619
720 // ===== 2. 索引相关:开头慢,中段快,结尾慢 =====
821 const progress = index / text . length
@@ -16,16 +29,16 @@ export function getHumanTypingDelay(index: number, text: string) {
1629
1730 // ===== 3. 字符类型权重 =====
1831 if ( char === ' ' ) {
19- delay += 40
32+ delay += 16
2033 }
2134
2235 if ( / [ , . ! ? ; : ] / . test ( char ) ) {
23- delay += 200 + Math . random ( ) * 150
36+ delay += randomInRange ( 16 , 50 )
2437 }
2538
2639 // ===== 4. 小概率“走神”停顿 =====
2740 if ( Math . random ( ) < 0.03 ) {
28- delay += 300 + Math . random ( ) * 500
41+ delay += randomInRange ( 100 , 200 )
2942 }
3043
3144 // ===== 5. 下限保护 =====
You can’t perform that action at this time.
0 commit comments