tick method
Implementation
@override
void tick(Duration elapsed) {
var cursor = Duration.zero;
for (final step in spec.steps) {
final start = cursor + step.delay;
final end = start + step.effect.duration;
final localElapsed = switch (elapsed) {
_ when elapsed < start => Duration.zero,
_ when elapsed >= end => step.effect.duration,
_ => elapsed - start,
};
step.effect.tick(localElapsed);
cursor = end;
}
}