tick method
Advances by dt seconds toward target characters at
charactersPerSecond, adapting upward when behind.
Returns false once the reveal has caught up — the caller's cue to stop its ticker and stop rebuilding.
Implementation
bool tick(double dt, int target, double charactersPerSecond) {
var speed = charactersPerSecond;
final backlog = target - _revealed;
if (backlog > 0) {
final window = _fastForwarding ? fastForwardSeconds : maxLagSeconds;
speed = math.max(speed, backlog / window);
}
_revealed = math.min(_revealed + speed * dt, target.toDouble());
if (_revealed >= target) {
_fastForwarding = false;
return false;
}
return true;
}