; The main navigation routines!!!
start_ 1:
-- explain
scan perimeter
-- explain
if value #scan <> 0 then if value #scan <>
1 then if value #scan <> 4 then goto
#scan -- explain
; Check and see if you are in attack or grenade
position.
math v1 = #y_pos - #enemy_y - 1
if value #cur_ammo >= 5 then if value #cur_fuel
>= 200 then if value ~v1 <> 0 then if value ~v1 <= 7 then cmath
v1 = 0-ABS(#x_pos - #enemy_x) --
explain
if value #enemy_y <= #y_pos then if value #enemy_x
<> #x_pos then if value #enemy_y <> #y_pos then goto
closechk_ ~v1 #cur_head -- explain
; Move!
if value #enemy_y <= #y_pos then move forward
-- explain
; Notice all the inverted if checks on the goto
statement.
; This is one of the best ways to speed up your
code.
if shield is down then if value #cloakstatus =
0 then if value ~h1 <> 1 then if value #enemy_y <= #y_pos then if
value #enemy_y <> #y_pos then if value #x_pos <> #enemy_x then if
value #cur_fuel > 75 then if value #inbound = 0 then if damage is = 0 then
if not bump barrier then goto
start_ #cur_head -- explain
; The 3 most basic and often checked conditions.
; Always try to count the subclicks when calling
these.
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
if value #inbound >= 1 then goto
locked_ #cur_head #inbound --
explain
if value #cloakstatus = 0 then if bump barrier
then goto barrier
-- explain
; Old, old p-scan formula, with a Leo check added
on.
math vp = #y_pos - #enemy_y
math vo = #x_pos - #enemy_x
if value ~vp >= -1 then if value ~vp <= 1 then
if value ~vo >= -1 then if value ~vo <= 1 then if value #enemy_x <>
0 then if value ~v9 = ~v9 then goto
2 -- explain
if value #enemy_h <> #cur_head then if value
~vp >= 3 then if value ~vp <= 4 then if value ~vo <= 1 then if value
~vo >= -1 then if value #cur_life >= 7 then gosub leo
-- explain
; Fix ourselves up.
if damage is > 0 then attempt repairs
; Tons of inverse checks again.
if shield is down then if value #cloakstatus =
0 then if value #enemy_y < #y_pos then if value ~h1 <> 1 then if
value #cur_fuel > 75 then if value #enemy_y <> #y_pos then if value
#x_pos <> #enemy_x then if value #inbound = 0 then goto
start_ #cur_head -- explain
; Go through the basics, again!
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
if value #inbound >= 1 then goto
locked_ #cur_head #inbound --
explain
; The seldom used thus neglected down the chain
of checks.
if value #enemy_y > #y_pos then gosub
err_ #cur_head -- explain
if value #cur_fuel <= 75 then goto
lowfuel
if value ~h1 = 1 then goto
stopper -- explain
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 -- explain
if value ~v1 < 3 then if value #enemy_x <>
0 then if value ~v9 = ~v9 then goto
2 --
explain
if shield is up then lower shield
if value #cloakstatus = 1 then cloak off
-- explain
if value #inbound = 0 then if value #enemy_x <>
#x_pos then if value #enemy_y <> #y_pos then goto
start_ #cur_head -- explain
if value #enemy_y <> #y_pos then if value #x_pos
= #enemy_x then goto same_x_
#cur_head -- explain
if value #enemy_x <> #x_pos then if value #y_pos
= #enemy_y then goto same_y_
#cur_head -- explain
if value #inbound >= 1 then goto
locked_ #cur_head #inbound --
explain
; In memory of the bug, I leave
it in here, though it never runs now.
leo: --
explain
move backward
assign vb 3
goto
looptyi --
explain
start_ 2:
-- explain
scan perimeter
-- explain
if value #scan <> 0 then if value #scan <>
1 then if value #scan <> 4 then goto
#scan -- explain
math v1 = #enemy_x - #x_pos - 1
if value #cur_ammo >= 5 then if value #cur_fuel
>= 200 then if value ~v1 <> 0 then if value ~v1 <= 7 then cmath
v1 = 0-ABS(#y_pos - #enemy_y) --
explain
if value #enemy_x >= #x_pos then if value #enemy_x
<> #x_pos then if value #enemy_y <> #y_pos then goto
closechk_ ~v1 #cur_head -- explain
if value #enemy_x >= #x_pos then move forward
-- explain
if shield is down then if value #cloakstatus =
0 then if value ~h1 <> 1 then if value #enemy_x >= #x_pos then if value
#enemy_y <> #y_pos then if value #x_pos <> #enemy_x then if value
#cur_fuel > 75 then if value #inbound = 0 then if damage is = 0 then if
not bump barrier then goto
start_ #cur_head -- 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
if value #inbound >= 1 then goto
locked_ #cur_head #inbound --
explain
if value #cloakstatus = 0 then if bump barrier
then goto barrier
-- explain
math vp = #enemy_x - #x_pos
math vo = #y_pos - #enemy_y
if value ~vp >= -1 then if value ~vp <= 1 then
if value ~vo >= -1 then if value ~vo <= 1 then if value #enemy_x <>
0 then if value ~v9 = ~v9 then goto
2 -- explain
if value #enemy_h <> #cur_head then if value
~vp >= 3 then if value ~vp <= 4 then if value ~vo <= 1 then if value
~vo >= -1 then if value #cur_life >= 7 then gosub leo
-- explain
if damage is > 0 then attempt repairs
if shield is down then if value #cloakstatus =
0 then if value #enemy_x > #x_pos then if value ~h1 <> 1 then if value
#cur_fuel > 75 then if value #enemy_y <> #y_pos then if value #x_pos
<> #enemy_x then if value #inbound = 0 then goto
start_ #cur_head -- 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
if value #inbound >= 1 then goto
locked_ #cur_head #inbound --
explain
if value #enemy_x < #x_pos then gosub
err_ #cur_head -- explain
if value #cur_fuel <= 75 then goto
lowfuel
if value ~h1 = 1 then goto
stopper -- explain
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 -- explain
if value ~v1 < 3 then if value #enemy_x <>
0 then if value ~v9 = ~v9 then goto
2 --
explain
if shield is up then lower shield
if value #cloakstatus = 1 then cloak off
-- explain
if value #inbound = 0 then if value #enemy_x <>
#x_pos then if value #enemy_y <> #y_pos then goto
start_ #cur_head -- explain
if value #enemy_y <> #y_pos then if value #x_pos
= #enemy_x then goto same_x_
#cur_head -- explain
if value #enemy_x <> #x_pos then if value #y_pos
= #enemy_y then goto same_y_
#cur_head -- explain
if value #inbound >= 1 then goto
locked_ #cur_head #inbound --
explain
start_ 3:
-- explain
scan perimeter
-- explain
if value #scan <> 0 then if value #scan <>
1 then if value #scan <> 4 then goto
#scan -- explain
math v1 = #enemy_y - #y_pos - 1
if value #cur_ammo >= 5 then if value #cur_fuel
>= 200 then if value ~v1 <> 0 then if value ~v1 <= 7 then cmath
v1 = 0-ABS(#x_pos - #enemy_x) --
explain
if value #enemy_y >= #y_pos then if value #enemy_x
<> #x_pos then if value #enemy_y <> #y_pos then goto
closechk_ ~v1 #cur_head -- explain
if value #enemy_y >= #y_pos then move forward
-- explain
if shield is down then if value #cloakstatus =
0 then if value ~h1 <> 1 then if value #enemy_y >= #y_pos then if value
#enemy_y <> #y_pos then if value #x_pos <> #enemy_x then if value
#cur_fuel > 75 then if value #inbound = 0 then if damage is = 0 then if
not bump barrier then goto
start_ #cur_head -- 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
if value #inbound >= 1 then goto
locked_ #cur_head #inbound --
explain
if value #cloakstatus = 0 then if bump barrier
then goto barrier
-- explain
math vp = #enemy_y - #y_pos
math vo = #x_pos - #enemy_x
if value ~vp >= -1 then if value ~vp <= 1 then
if value ~vo >= -1 then if value ~vo <= 1 then if value #enemy_x <>
0 then if value ~v9 = ~v9 then goto
2 -- explain
if value #enemy_h <> #cur_head then if value
~vp >= 3 then if value ~vp <= 4 then if value ~vo <= 1 then if value
~vo >= -1 then if value #cur_life >= 7 then gosub leo
-- explain
if damage is > 0 then attempt repairs
if shield is down then if value #cloakstatus =
0 then if value #enemy_y > #y_pos then if value ~h1 <> 1 then if value
#cur_fuel > 75 then if value #enemy_y <> #y_pos then if value #x_pos
<> #enemy_x then if value #inbound = 0 then goto
start_ #cur_head -- 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
if value #inbound >= 1 then goto
locked_ #cur_head #inbound --
explain
if value #enemy_y < #y_pos then gosub
err_ #cur_head -- explain
if value #cur_fuel <= 75 then goto
lowfuel
if value ~h1 = 1 then goto
stopper -- explain
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 --
explain
if value ~v1 < 3 then if value #enemy_x <>
0 then if value ~v9 = ~v9 then goto
2 --
explain
if shield is up then lower shield
if value #cloakstatus = 1 then cloak off
-- explain
if value #inbound = 0 then if value #enemy_x <>
#x_pos then if value #enemy_y <> #y_pos then goto
start_ #cur_head -- explain
if value #enemy_y <> #y_pos then if value #x_pos
= #enemy_x then goto same_x_
#cur_head -- explain
if value #enemy_x <> #x_pos then if value #y_pos
= #enemy_y then goto same_y_
#cur_head -- explain
if value #inbound >= 1 then goto
locked_ #cur_head #inbound --
explain
start_ 4:
-- explain
scan perimeter
-- explain
if value #scan <> 0 then if value #scan <>
1 then if value #scan <> 4 then goto
#scan -- explain
math v1 = #x_pos - #enemy_x - 1
if value #cur_ammo >= 5 then if value #cur_fuel
>= 200 then if value ~v1 <> 0 then if value ~v1 <= 7 then cmath
v1 = 0-ABS(#y_pos - #enemy_y) --
explain
if value #enemy_x <= #x_pos then if value #enemy_x
<> #x_pos then if value #enemy_y <> #y_pos then goto
closechk_ ~v1 #cur_head -- explain
if value #enemy_x <= #x_pos then move forward
-- explain
if shield is down then if value #cloakstatus =
0 then if value ~h1 <> 1 then if value #enemy_x <= #x_pos then if
value #enemy_y <> #y_pos then if value #x_pos <> #enemy_x then if
value #cur_fuel > 75 then if value #inbound = 0 then if damage is = 0 then
if not bump barrier then goto
start_ #cur_head -- 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
if value #inbound >= 1 then goto
locked_ #cur_head #inbound --
explain
if value #cloakstatus = 0 then if bump barrier
then goto barrier
-- explain
math vp = #x_pos - #enemy_x
math vo = #y_pos - #enemy_y
if value ~vp >= -1 then if value ~vp <= 1 then
if value ~vo >= -1 then if value ~vo <= 1 then if value #enemy_x <>
0 then if value ~v9 = ~v9 then goto
2 -- explain
if value #enemy_h <> #cur_head then if value
~vp >= 3 then if value ~vp <= 4 then if value ~vo <= 1 then if value
~vo >= -1 then if value #cur_life >= 7 then gosub leo
-- explain
if damage is > 0 then attempt repairs
if shield is down then if value #cloakstatus =
0 then if value #enemy_x < #x_pos then if value ~h1 <> 1 then if
value #cur_fuel > 75 then if value #enemy_y <> #y_pos then if value
#x_pos <> #enemy_x then if value #inbound = 0 then goto
start_ #cur_head -- 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
if value #inbound >= 1 then goto
locked_ #cur_head #inbound --
explain
if value #enemy_x > #x_pos then gosub
err_ #cur_head -- explain
if value #cur_fuel <= 75 then goto
lowfuel
if value ~h1 = 1 then goto
stopper -- explain
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 --
explain
if value ~v1 < 3 then if value #enemy_x <>
0 then if value ~v9 = ~v9 then goto
2 --
explain
if shield is up then lower shield
if value #cloakstatus = 1 then cloak off
-- explain
if value #inbound = 0 then if value #enemy_x <>
#x_pos then if value #enemy_y <> #y_pos then goto
start_ #cur_head -- explain
if value #enemy_y <> #y_pos then if value #x_pos
= #enemy_x then goto same_x_
#cur_head -- explain
if value #enemy_x <> #x_pos then if value #y_pos
= #enemy_y then goto same_y_
#cur_head -- explain
if value #inbound >= 1 then goto
locked_ #cur_head #inbound --
explain