; *********************************************************************** ; H O V E R B O T ; Hier werde ich versuchen einiges von TankSweeper zu verbessern zum ; Beispiel das Scannen und so weiter ; *********************************************************************** #config scanner=3 #config engine=4 #config armor=2 #config weapon=3 #config heatsinks=0 !INIT xor cx, cx jmp !SCAN !DRIVE opo P_THROTTLE, 100 int 2 mov dx, 64 cmp @08, 0 je 342 opo P_STEERING, 32 opo P_THROTTLE, 100 opo P_TROTATE, -32 int 13 jmp 04 :342 cmp ex, 100 ja 01 cmp @01, 128 jb 01 opo P_STEERING, dx neg dx opo P_TROTATE, dx jmp 04 :01 cmp ex, 900 jb 02 cmp @01, 128 ja 02 opo P_STEERING, dx neg dx opo P_TROTATE, dx jmp 04 :02 cmp fx, 100 ja 03 mov bx, @01 add bx, 64 cmp bx, 128 ja 03 opo P_STEERING, dx neg dx opo P_TROTATE, dx jmp 04 :03 cmp fx, 900 jb 04 mov bx, @01 sub bx, 64 cmp bx, 128 ja 04 opo P_STEERING, dx neg dx opo P_TROTATE, dx :04 ret !SCAN call !DRIVE opo P_ARC, 64 ; Find nearest Target opo P_TROTATE, 128 ipo P_SCAN, ax cmp ax, 1500 ja !NOTARGET !APPRSCAN ; Approach Scanarc to target call !DRIVE ipo P_ARC, ax shr ax, 1 opo P_ARC, ax ; ok mpy ax, @03 opo P_TROTATE, ax ipo P_SCAN, ax cmp ax, 1500 ja !NOTARGET ipo P_ARC, ax cmp ax, 4 ja !APPRSCAN ipo P_SCAN, ax cmp ax, 1500 ja !FIRE ; above 400 Meters only Fire ; else lock Target !LOCK call !DRIVE mov ax, @03 shl ax, 2 opo P_TROTATE, ax ipo 2, ax cmp ax, 200 ja !TOHOT ipo P_SCAN, ax cmp ax, 400 ja !LOWACC opo P_FIRE, 0 opo P_FIRE, 1 opo P_FIRE, -1 jmp !TOHOT !LOWACC opo P_FIRE, -1 opo P_FIRE, 0 opo P_FIRE, 1 !TOHOT cmp ax, 1500 jb !LOCK opo P_ARC, 32 ipo P_SCAN, ax cmp ax, 1500 jb !APPRSCAN jmp !SCAN !FIRE opo P_FIRE, 0 jmp !SCAN !NOTARGET jmp !SCAN