; The actual frag code.
Subclick optimised, I think, it's been awhile.
; The order matters here, so don't mix them up.
gotcha__ 8:
-- explain
scan forward
-- explain
if value #scan = 0 then move forward
-- explain
if value #scan <> 0 then goto
evade
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 > 52 then goto
evade -- explain
gotcha__ 7:
-- explain
scan forward
-- explain
if scan found nothing then launch missile
-- explain
scan perimeter
-- explain
if value #scan <> 3 then goto
#scan -- explain
goto evade
gotcha__ 5:
-- explain
cmath vx = ((#cur_head-2) * (#cur_head-3) * (#cur_head-4)
* (#x_pos)/-6)
+ ((#cur_head-1) * (#cur_head-3) * (#cur_head-4)* (#x_pos+2)/2)
+ ((#cur_head-1) * (#cur_head-2) * (#cur_head-4) * (#x_pos)/-2)
+ ((#cur_head-1) * (#cur_head-2) * (#cur_head-3) * (#x_pos-2)/6)
-- explain
cmath vy = ((#cur_head-2) * (#cur_head-3) * (#cur_head-4)
* (#y_pos-2)/-6)
+ ((#cur_head-1) * (#cur_head-3) * (#cur_head-4) * (#y_pos)/2)
+ ((#cur_head-1) * (#cur_head-2) * (#cur_head-4) * (#y_pos+2)/-2)
+ ((#cur_head-1) * (#cur_head-2) * (#cur_head-3) * (#y_pos)/6)
-- explain
scan relative 1
-- explain
if value #scan = 0 then gps scan x ~vx y ~vy
-- explain
cmath vx = ((#cur_head-2) * (#cur_head-3) * (#cur_head-4)
* (#x_pos)/-6)
+ ((#cur_head-1) * (#cur_head-3) * (#cur_head-4) * (#x_pos+3)/2)
+ ((#cur_head-1) * (#cur_head-2) * (#cur_head-4) * (#x_pos)/-2)
+ ((#cur_head-1) * (#cur_head-2) * (#cur_head-3) * (#x_pos-3)/6)
-- explain
cmath vy = ((#cur_head-2) * (#cur_head-3) * (#cur_head-4)
* (#y_pos-3)/-6)
+ ((#cur_head-1) * (#cur_head-3) * (#cur_head-4) * (#y_pos)/2)
+ ((#cur_head-1) * (#cur_head-2) * (#cur_head-4) * (#y_pos+3)/-2)
+ ((#cur_head-1) * (#cur_head-2) * (#cur_head-3) * (#y_pos)/6)
-- explain
if value #scan = 0 then gps scan x ~vx y ~vy
-- explain
if value #scan <> 0 then gosub
evade
launch missile
scan perimeter
-- explain
if value #scan <> 3 then goto
#scan -- explain
goto evade
gotcha__ 4:
-- explain
scan relative 1
-- explain
if value #scan = 0 then move forward
if value #scan <> 0 then goto
evade
gotcha__ 3:
-- explain
scan relative 1
-- explain
if scan found nothing then launch missile
if scan found nothing then goto
re_check -- explain
goto evade
gotcha__ 2:
-- explain
move backward
if bump barrier then goto evade
-- explain
cmath v1 = ((#cur_head-2) * (#cur_head-3)
* (#cur_head-4) * (#y_pos-#enemy_y)/-6)
+ ((#cur_head-1) * (#cur_head-3) * (#cur_head-4) * (#enemy_x-#x_pos)/2)
+ ((#cur_head-1) * (#cur_head-2) * (#cur_head-4) * (#enemy_y-#y_pos)/-2)
+ ((#cur_head-1) * (#cur_head-2) * (#cur_head-3) * (#x_pos-#enemy_x)/6)
-- explain
cmath v2 = ((#cur_head-2) * (#cur_head-3) * (#cur_head-4)
* (#x_pos-#enemy_x)/-6)
+ ((#cur_head-1) * (#cur_head-3) * (#cur_head-4) * (#y_pos-#enemy_y)/2)
+ ((#cur_head-1) * (#cur_head-2) * (#cur_head-4) * (#x_pos-#enemy_x)/-2)
+ ((#cur_head-1) * (#cur_head-2) * (#cur_head-3) * (#y_pos-#enemy_y)/6)
-- explain
if value ~v2 >= -1 then if value ~v2 <= 1 then
if value ~v1 <= 3 then if value ~v1 >= 1 then launch missile
-- explain
if grenade ready then if value ~v2 >= -1 then
if value ~v2 <= 1 then if value ~v1 <= 3 then if value ~v1 >= 1 then
goto re_check
-- explain
if value ~v1 >= -1 then if value ~v1 <= 1 then
if value ~v2 >= -1 then if value ~v2 <= 1 then if value #enemy_x <>
0 then if value ~v9 = ~v9 then goto
2 --
explain
goto evade
re_check:
-- explain
cmath v1 = ((#cur_head-2) * (#cur_head-3) * (#cur_head-4)
* (#y_pos-#enemy_y)/-6)
+ ((#cur_head-1) * (#cur_head-3) * (#cur_head-4) * (#enemy_x-#x_pos)/2)
+ ((#cur_head-1) * (#cur_head-2) * (#cur_head-4) * (#enemy_y-#y_pos)/-2)
+ ((#cur_head-1) * (#cur_head-2) * (#cur_head-3) * (#x_pos-#enemy_x)/6)
-- explain
cmath v2 = ((#cur_head-2) * (#cur_head-3) * (#cur_head-4)
* (#x_pos-#enemy_x)/-6)
+ ((#cur_head-1) * (#cur_head-3) * (#cur_head-4) * (#y_pos-#enemy_y)/2)+
((#cur_head-1) * (#cur_head-2) * (#cur_head-4) * (#x_pos-#enemy_x)/-2)
+ ((#cur_head-1) * (#cur_head-2) * (#cur_head-3) * (#y_pos-#enemy_y)/6)
-- explain
if missile not ready then if grenade ready then
if value ~v2 >= -1 then if value ~v2 <= 1 then if value ~v1 <= 3
then if value ~v1 >= 1 then launch grenade
-- explain
if value ~v2 >= -1 then if value ~v2 <= 1 then
if value ~v1 <= 3 then if value ~v1 >= 1 then launch missile
-- explain
if missile not ready then if grenade ready then
if value ~v2 >= -1 then if value ~v2 <= 1 then if value ~v1 <= 3
then if value ~v1 >= 1 then goto re_check
-- explain
if missile ready then if value ~v2 >= -1 then
if value ~v2 <= 1 then if value ~v1 <= 3 then if value ~v1 >= 1 then
goto re_check
-- explain
if value ~v1 >= -1 then if value ~v1 <= 1 then
if value ~v2 >= -1 then if value ~v2 <= 1 then gosub
2 --
explain
goto evade