; Not sure if this even works.
; It is supposed to frag an enemy when it is tracing
a wall.
; Saw it work! Once anyway.
; Fixed it! Seems my own missiles return
#inbound variables.
longfrag: --
explain
if value #x_pos = #enemy_x then goto
same_x_ #cur_head -- explain
if value #y_pos = #enemy_y then goto
same_y_ #cur_head -- explain
math vq = 2 * #enemy_x - #x_pos / #x_pos / #y_pos
+ #y_pos / #enemy_y - 2 * #x_pos * #x_pos / #enemy_x / #enemy_x - 2 * #enemy_y
/ #y_pos + 1 * #enemy_x / #x_pos - 2 * #y_pos / #enemy_y + 4 * #y_pos /
#enemy_y - 2 * #x_pos + #enemy_x * #enemy_x / #x_pos + #x_pos * #x_pos
- 1 * #enemy_y / #y_pos + 2 * #enemy_y - #y_pos * #y_pos / #enemy_x - #enemy_x
* #enemy_x + 1
if missile not ready then goto
err_ #cur_head -- explain
math v2 = #x_pos - #enemy_x - #enemy_x * #x_pos
/ #enemy_x + #enemy_x * #enemy_x / #y_pos + #y_pos - #enemy_y - #enemy_y
* #y_pos / #enemy_y + #enemy_y * #enemy_y -- explain
if value ~v2 < 3 then if value #enemy_x <>
0 then if value ~v9 = ~v9 then goto
2 -- explain
math v2 = #x_pos - #enemy_x - #enemy_x * #x_pos
/ #enemy_x + #enemy_x * #enemy_x / #y_pos + #y_pos - #enemy_y - #enemy_y
* #y_pos / #enemy_y + #enemy_y * #enemy_y -- explain
if value ~v2 < 3 then if value #enemy_x <>
0 then if value ~v9 = ~v9 then goto
2 -- explain
math v3 = ~vx - #enemy_x - #enemy_x * ~vx / #enemy_x
+ #enemy_x * #enemy_x / ~vy + ~vy - #enemy_y - #enemy_y * ~vy / #enemy_y
+ #enemy_y * #enemy_y
if value ~v3 < 3 then if value #enemy_x <>
0 then if value ~vq < 2 then launch missile
if value #x_pos = #enemy_x then goto
same_x_ #cur_head -- explain
if value #y_pos = #enemy_y then goto
same_y_ #cur_head -- explain
goto
err_ #cur_head