getAnimations method
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,
);
});
}