You can do it with the qarp() expression.
x=lerp(ax, bx, t)
y=qarp(ay, (ay+by)/2-400, by, t)
where ax,ay and bx,by are the two endpoints and t is a variable that you'd gradually change from 0 to 1 and vise versa to go back.
In the example I just set t to a triangle wave that ping pongs from 0 to 1 and back with abs((time/duration+1)%2-1) since it matches your example.
alternately you could just do set t to clamp(self.t+dir*dt/duration, 0, 1) where dir is -1 or 1, and the clamp avoids overshoot. You could then compare if t is 0 or 1 to see where it's landed.
https://www.dropbox.com/scl/fi/zxa5wnncpmhyrovadxia0/jumpArc.c3p?rlkey=5n5s9v0bqg8hxu8ctm2nxsqh8
Oh man you're a life saver. I just never understood how to use qarp particularly what to enter in the last value.