home *** CD-ROM | disk | FTP | other *** search
/ 300 Favorite Games / 300GAMES.iso / 316 / sniper.atr < prev    next >
Text File  |  1992-02-16  |  2KB  |  124 lines

  1. ; Sniper                    Ed T. Toton III   2/9/92
  2.  
  3. ; define vars
  4. #def speed
  5. #def shoot
  6. #def move
  7. #def armor
  8. #def hitcheck
  9. #def hit
  10. #def accuracy
  11. #def turn
  12.  
  13. ; set some label-remembering variables.
  14. set     shoot   1000
  15. set     move    2000
  16. set     hitcheck  50
  17.  
  18. ;First order of business... Get the robot moving..
  19. gsb     move
  20.  
  21.  
  22.  
  23. ;MAIN (settings)
  24. :1
  25. ; set speed=0, arc-wdth=8, turn-speed=+10
  26. opo     11      0
  27. opo     18      8
  28. set     turn    10
  29.  
  30. ; Get random number... 50% chance of setting turn-speed to -10.
  31. ipo     10      az
  32. cmp     az      5000
  33. jls     2
  34. set     turn    -10
  35.  
  36. ; MAIN loop..
  37. :2
  38.        ;turn
  39.         opo     14      turn
  40.  
  41.        ;scan & shoot
  42.         ipo     7       az
  43.         cmp     az      5000
  44.         jls     shoot   1
  45.  
  46.        ;check to see if damaged since last check.
  47.         set     hit     0
  48.         gsb     hitcheck
  49.         cmp     hit     0
  50.  
  51.        ;if damaged then MOVE.
  52.         jne     move    1
  53.  
  54. jmp 2
  55. ; if a "JMP 10" is called, the settings can be repeated.
  56. :10
  57. jmp 1
  58.  
  59.  
  60. ;Hitcheck
  61. :50
  62.        ;read and compare armor
  63.         ipo     6       az
  64.         cmp     az      armor
  65.  
  66.        ;if no damage then simply exit.
  67.         ret
  68.  
  69.        ;if hit, then say so!
  70.         set     armor   az
  71.         set     hit     1
  72. :51
  73. ret
  74.  
  75.  
  76. ;Shoot
  77. :1000
  78.        ;read accuracy setting.
  79.         ipo     8       accuracy
  80.  
  81.        ;fire using accuracy
  82.         opo     15      accuracy
  83.  
  84.        ;turn using accuracy (to try to continue to face target)
  85.         opo     14      accuracy
  86.  
  87.        ;scan again. If there then repeat, else exit.
  88.         ipo     7       az
  89.         cmp     az      5000
  90.         jls     shoot
  91. ret
  92.  
  93.  
  94. ;Move
  95. :2000
  96.        ;read a random number, make it so it's 
  97.        ;in range of 0-360, then turn that way.
  98.         set     az      10030
  99.         mod     az      az      360
  100.         opo     14      az
  101.  
  102.        ;Set speed to 100, then delay
  103.         opo     11      100
  104.  
  105.        ;Removed...
  106. ;       ipo     1       az
  107. ;       cmp     az      0
  108. ;       jeq     2000
  109.  
  110.        ;keep going until speed reaches zero.
  111.        :2001
  112.         ipo     1       az
  113.         cmp     az      0
  114.         jne     2001
  115.  
  116.        ;set armor so that the HITCHECK doesn't think 
  117.        ;we've been shot. (we take damage when we hit walls).
  118.         ipo     6       az
  119.         set     armor   az
  120.  
  121.        ;Set speed to 0.
  122.         opo     11      0
  123. ret
  124.