Because vJass version is confusing and took a long while to figure out, here is a list of variable + explanation:
u --> caster unit --> Caster
axe --> axe dummy unit --> Axe
p --> owner of caster unit --> Player
grp --> unit group for 1 hit rule --> Group
x --> position of caster unit --> CasterX
y --> position of caster unit --> CasterY
xl --> position of target point --> LocationX
yl --> position of target point --> LocationY
a --> progression to target point (in short, 0 at destination and 1 at caster point) --> A
outx --> output of parabolic for calculation --> OutputX
outy --> output of parabolic for calculation --> OutputY
ang --> angle of attack/alpha (refer to projectile physic math) --> Ang
lvl --> level of ability on cast (preserve on cast, so any level up won't change effect mid-way) --> Level
first --> is this first phase (throw) or second phase (return) [true --> false] --> FirstPhase
In a deeper restropect, a sort of missile system with angular control can be a long-term benefit here. However, it feels very overkill