getAnimations method

  1. @override
List<CharacterAnimation> getAnimations(
  1. double progress,
  2. int charCount
)
override

Generates per-character random char override until noise-based reveal.

Implementation

@override
List<CharacterAnimation> getAnimations(double progress, int charCount) {
  if (charCount == 0) return [];

  return List.generate(charCount, (index) {
    final staggered = staggeredProgress(progress, index, charCount);
    final curved = applyCurve(staggered);

    final revealThreshold = noise(index, seed);
    final isRevealed = curved >= revealThreshold;

    String? overrideChar;
    if (!isRevealed) {
      final randomIndex = (noise(index, seed + 1) * charset.length).floor();
      overrideChar = charset[randomIndex % charset.length];
    }

    return CharacterAnimation(
      opacity: isRevealed ? 1.0 : 0.0,
      character: overrideChar,
    );
  });
}