def mode 50
def minslime 51
def minshell 52
def minpoison 53

cond
 *.robage 0 =
start
 7890 .out10 store
 80 .eye1dir store
 60 .eye2dir store
 40 .eye3dir store
 20 .eye4dir store
 -20 .eye6dir store
 -40 .eye7dir store
 -60 .eye8dir store
 -80 .eye9dir store
 20 .eye1width store
 20 .eye2width store
 20 .eye3width store
 20 .eye4width store
 20 .eye5width store
 20 .eye6width store
 20 .eye7width store
 20 .eye8width store
 20 .eye9width store

 50 .minshell store
 150 .minshell store
 10 .minpoison store
stop

cond
 *.robage 5 <
 *.nrg 1000 <
start
 180 .dx store
 2 .mode store
stop

start
 *.body 250 div 2 floor .up store
 0 .fixpos store
 *.mkvirus .delgene store
 *.nrg *.body sub dup .strbody store - .fdbody store
 -4 *.eye1 *.eye9 sub sgn 0 floor mult *.eye1 *.eye8 sub sgn 0 floor mult *.eye1 *.eye7 sub sgn 0    floor mult *.eye1 *.eye6 sub sgn 0 floor mult *.eye1 *.eye5 sub sgn 0 floor mult *.eye1 *.eye4 sub   sgn 0 floor mult *.eye1 *.eye3 sub sgn 0 floor mult *.eye1 *.eye2 sub sgn 0 floor mult 4 *.eye9     *.eye8 sub sgn 0 floor mult *.eye9 *.eye7 sub sgn 0 floor mult *.eye9 *.eye6 sub sgn 0 floor mult
 *.eye9 *.eye5 sub sgn 0 floor mult *.eye9 *.eye4 sub sgn 0 floor mult *.eye9 *.eye3 sub sgn 0 floor  mult *.eye9 *.eye2 sub sgn 0 floor mult *.eye9 *.eye1 sub sgn ++ sgn mult add -3 *.eye2 *.eye9 sub   sgn ++ sgn mult *.eye2 *.eye8 sub sgn 0 floor mult *.eye2 *.eye7 sub sgn 0 floor mult *.eye2 *.eye6  sub sgn 0 floor mult *.eye2 *.eye5 sub sgn 0 floor mult *.eye2 *.eye4 sub sgn 0 floor mult *.eye2    *.eye3 sub sgn 0 floor mult *.eye2 *.eye1 sub sgn ++ sgn mult add 3 *.eye8 *.eye9 sub sgn ++ sgn     mult *.eye8 *.eye7 sub sgn 0 floor mult *.eye8 *.eye6 sub sgn 0 floor mult *.eye8 *.eye5 sub sgn 0   floor mult *.eye8 *.eye4 sub sgn 0 floor mult *.eye8 *.eye3 sub sgn 0 floor mult *.eye8 *.eye2 sub   sgn ++ sgn mult *.eye8 *.eye1 sub sgn ++ sgn mult add -2 *.eye3 *.eye9 sub sgn ++ sgn mult *.eye3    *.eye8 sub sgn ++ sgn mult *.eye3 *.eye7 sub sgn 0 floor mult *.eye3 *.eye6 sub sgn 0 floor mult
 *.eye3 *.eye5 sub sgn 0 floor mult *.eye3 *.eye4 sub sgn 0 floor mult *.eye3 *.eye2 sub sgn ++ sgn   mult *.eye3 *.eye1 sub sgn ++ sgn mult add 2 *.eye7 *.eye9 sub sgn ++ sgn mult *.eye7 *.eye8 sub     sgn ++ sgn mult *.eye7 *.eye7 sub sgn 0 floor mult *.eye7 *.eye6 sub sgn 0 floor mult *.eye7 *.eye5  sub sgn 0 floor mult *.eye7 *.eye4 sub sgn ++ sgn mult *.eye7 *.eye2 sub sgn ++ sgn mult *.eye7     *.eye1 sub sgn ++ sgn mult add -1 *.eye4 *.eye9 sub sgn ++ sgn mult *.eye4 *.eye8 sub sgn ++ sgn     mult *.eye4 *.eye7 sub sgn ++ sgn mult *.eye4 *.eye6 sub sgn 0 floor mult *.eye4 *.eye5 sub sgn 0    floor mult *.eye4 *.eye3 sub sgn ++ sgn mult *.eye4 *.eye2 sub sgn ++ sgn mult *.eye4 *.eye1 sub     sgn ++ sgn mult add 1 *.eye4 *.eye9 sub sgn ++ sgn mult *.eye4 *.eye8 sub sgn ++ sgn mult *.eye4    *.eye7 sub sgn ++ sgn mult *.eye4 *.eye6 sub sgn ++ sgn mult *.eye4 *.eye5 sub sgn 0 floor mult
 *.eye4 *.eye3 sub sgn ++ sgn mult *.eye4 *.eye2 sub sgn ++ sgn mult *.eye4 *.eye1 sub sgn ++ sgn     mult add 0 *.eye5 *.eye9 sub sgn ++ sgn mult *.eye5 *.eye8 sub sgn ++ sgn mult *.eye5 *.eye7 sub     sgn ++ sgn mult *.eye5 *.eye6 sub sgn ++ sgn mult *.eye5 *.eye4 sub sgn ++ sgn mult *.eye5 *.eye3   sub sgn ++ sgn mult *.eye5 *.eye2 sub sgn ++ sgn mult *.eye5 *.eye1 sub sgn ++ sgn mult add .focuseye store
stop

cond
 *.eyef 0 =
start
 400 .aimdx store
stop

cond
 *.eyef 0 =
 *.timer 3 mod 1 =
start
 20 .up store
stop

cond
 *.numties 0 >
start
 *.tiepres .deltie store
 *.minslime 25 add .minslime store
 180 .dx store
stop

cond
 *.shflav -6 =
start
 .minshell inc
stop

cond
 *.shflav -1 =
start
 *.minpoison inc
stop

cond
 *.eyef 0 =
 *.shang 0 !=
start
 *.shang .setaim store
stop

cond
 *.mode 0 =
start
 *.minslime *.slime sub .mkslime store
 *.minshell *.shell sub .mkshell store
 *.minpoison *.poison sub .strpoison store
 .shoot .ploc store
stop

cond
 *.in10 *.out10 !=
start
 *.refxpos *.refypos angle .setaim store
stop

cond
 *.mode 0 =
 *.body 30000 >
start
  .mode inc
stop

cond
 *.mode 2 =
 *.body 500 >
start
 0 .mode store
stop

cond
 *.mode 1 =
 *.nrg 1000 >
start
 32000 *.nrg div .repro store
 314 rnd .aimdx store
stop

cond
 *.eye5 40 >
 *.in10 *.out10 !=
start
 *.mode -- abs 63 mult ++ .shootval store
 -5 *. mode 2 sub sgn abs mult -- .shoot store
stop

cond
 *.eye5 32000 =
 *.in10 *.out10 !=
 *.timer 25 mod 1 =
start
 *.nrg 3 div .shootval store
stop

cond
 *.mode 1 =
 *.nrg 500 <
start
 .mode dec
stop

cond
 *.waste 150 >
start
 *.waste .shootval store
 -4 .shoot store
stop