A scripted effect applied to a path.
For effects that can change over time, even
when the path does not change, markNeedsAdvance()
should be called on its context in the advance function
Called every frame to advance the effect over time.
seconds is the time delta since the last frame.
Return true to keep the effect active, or false to disable it.