#config armor=2 #config scanner=3 #config engine=3 #config heatsinks=1 #config weapon=3 #def arc #def heat mov ax, 2 int 3 mov arc, 64 mov heat, 0 !start call arc call !move call !heat-ob call !heat cmp heat, 1 jeq !start call !fire je !start jne !start :64 opo 17, 64 ipo 7, bx cmp bx, 2000 jgr !64-nt mov fx, @3 shl fx, 5 opo 12, fx shr arc, 2 ret :16 opo 17, 16 ipo 7, bx cmp bx, 2000 jgr !nt mov fx, @3 shl fx, 3 opo 12, fx shr arc, 2 ret :4 opo 17, 4 ipo 7, bx cmp bx, 2000 jgr !nt mov fx, @3 shl fx, 1 opo 12, fx shr arc, 1 ret :2 opo 17, 2 ipo 7, bx cmp bx, 2000 jgr !2-nt opo 12, @3 ret !2-nt shl arc, 1 ret !nt shl arc, 2 ret !64-nt opo 12, 128 ret !heat ipo 2, fx cmp fx, 200 jgr !2hot mov heat, 0 ret !2hot mov heat, 1 ret !heat-ob ipo 2, fx cmp fx, 100 jgr !no-ob opo 18, 1 ret !no-ob opo 18, 0 ret !move cmp @9, 100 ; clear wall jls !clear int 2 ; wall missing stuff cmp ex, 100 jls !mleft cmp ex, 900 jgr !mright cmp fx, 100 jls !mup cmp fx, 900 jgr !mdown cmp bx, 2000 jgr !move-nt cmp bx, 200 jls !move-around ; if less bot close run around movement !move-back ; if not stand back and shoot opo 14, 32 je !clear jne !clear !move-around mov fx, @2 add fx, 16 opo 14, fx cmp ax, 0 ; mine laying system for close range jeq !clear opo 22, 12 sub ax, 1 !move-nt !clear opo 11, 100 ret !mleft int 19 ipo 3, fx mov dx, 64 sub dx, fx opo 14, dx opo 11, 100 ret !mright int 19 ipo 3, fx mov dx, 192 sub dx, fx opo 14, dx opo 11, 100 ret !mdown int 19 ipo 3, fx mov dx, 0 sub dx, fx opo 14, dx opo 11, 100 ret !mup int 19 ipo 3, fx mov dx, 128 sub dx, fx opo 14, dx opo 11, 100 ret !fire cmp arc, 16 jls !shoot ret !shoot opo 15 ret