; I think there's something
wrong with this still, but I don't care enough to find out.
; Found the bug! v1 was being used twice.
; Added grenades to the mix.
; Our own fragger!
[JAMES] -- I haven't got around to explaining
this section yet, but all of the links still work OK.
mine_layer:
-- explain
scan relative 5
if value #scan <> 0 then if value #scan <>
5 then goto outofit
lay mines on
move backward
lay mines off
scan relative 5
if value #scan <> 0 then if value #scan <>
5 then goto outofit
math v1 = #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
if value #enemy_d >= #cur_life then if value ~v1
< 3 then if value #enemy_x <> 0 then if value ~v9 = ~v9 then goto
2
math vg = #cur_fuel - 3 - #burn
move backward
if shield is up then lower shield
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)
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)
if value ~v2 >= -1 then if value ~v2 <= 1 then
if value ~v1 <= 3 then if value ~v1 >= 1 then launch missile
gosub
bright_ #cur_head
goto
mine_loop_ ~vj
[JAMES] -- I haven't
got around to explaining this section yet, but all of the links still work
OK.
mine_loop_ 1:
cmath v3 = ((#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)
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)
if missile is ready then if value ~v2 >= -1 then
if value ~v2 <= 1 then if value ~v3 <= 3 then if value ~v3
>= 1 then launch missile
if grenade is ready then if value ~v2 >= -1 then
if value ~v2 <= 1 then if value ~v3 <= 3 then if value ~v3
>= 1 then launch missile
if value ~v2 >= -1 then if value ~v2 <= 1 then
if value ~v3 <= 1 then if value ~v3 >= -1 then goto 2
if value ~v2 >= -1 then if value ~v2 <= 1 then
if value ~v3 <= 3 then if value ~v3 >= 1 then if value #cur_ammo
>= 5 then if value #cur_fuel >= 200 then goto mine_loop_
1
if grenade is ready then lower shield
if value #x_pos = #enemy_x then if value #enemy_y
~vk ~vl then goto same_x_
#cur_head
if grenade is ready then if value #scan <>
0 then if value #scan <> 5 then if value ~vg < #cur_fuel then if
value #enemy_y <> #y_pos then goto mine_loop_
1
if value #y_pos = #enemy_y then goto
same_y_ #cur_head
goto
outofit
[JAMES] -- I haven't
got around to explaining this section yet, but all of the links still work
OK.
mine_loop_ 2:
cmath v3 = ((#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)
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)
if value ~v2 >= -1 then if value ~v2 <= 1 then
if value ~v3 <= 3 then if value ~v3 >= 1 then launch missile
if missile is ready then if value ~v2 >= -1 then
if value ~v2 <= 1 then if value ~v3 <= 3 then if value ~v3
>= 1 then launch missile
if grenade is ready then if value ~v2 >= -1 then
if value ~v2 <= 1 then if value ~v3 <= 3 then if value ~v3
>= 1 then launch missile
if value ~v2 >= -1 then if value ~v2 <= 1 then
if value ~v3 <= 1 then if value ~v3 >= -1 then goto 2
if value ~v2 >= -1 then if value ~v2 <= 1 then
if value ~v3 <= 3 then if value ~v3 >= 1 then if value #cur_ammo
>= 5 then if value #cur_fuel >= 200 then goto mine_loop_
2
if grenade is ready then lower shield
if value #y_pos = #enemy_y then if value #enemy_x
~vk ~vl then goto same_y_
#cur_head
if grenade is ready then if value #scan <>
0 then if value #scan <> 5 then if value ~vg < #cur_fuel then if
value #enemy_x <> #x_pos then goto mine_loop_
2
if value #x_pos = #enemy_x then goto
same_x_ #cur_head
goto
outofit