tick method

bool tick(
  1. double dt,
  2. int target,
  3. double charactersPerSecond
)

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;
}