home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 326-350 / apd340 / autoexec.amos / autoexec.amosSourceCode next >
Encoding:
AMOS Source Code  |  1991-10-22  |  25.2 KB  |  1,157 lines

  1. Set Buffer 10
  2. BEGINING: Screen Open 0,320,200,16,Lowres
  3. Proc TITLE
  4. Procedure TITLE
  5. Curs Off 
  6. Flash Off 
  7. Load "titmus.ABK"
  8. Load "title.ABK",0
  9. Music 1
  10. Tempo 15
  11. Hide On 
  12. Get Sprite Palette 
  13. Double Buffer 
  14. Bob 0,40,50,1
  15. Bob 1,70,50,2
  16. Bob 2,100,50,3
  17. Bob 3,130,50,2
  18. Bob 4,160,50,4
  19. Bob 5,190,50,5
  20. Cls 0
  21. For T=0 To 5
  22. Channel T To Bob T
  23. Next T
  24. Amal 0,"S:FR0=0T5;M5,10,10;M5,-10,10;NR0;FR0=0T5;M-5,-10,10;M-5,10,10;NR0;JS"
  25. Amal 1,"S:FR0=0T5;M5,-10,10;M5,10,10;NR0;FR0=0T5;M-5,10,10;M-5,-10,10;NR0;JS"
  26. Amal 2,"S:FR0=0T5;M5,10,10;M5,-10,10;NR0;FR0=0T5;M-5,-10,10;M-5,10,10;NR0;JS"
  27. Amal 3,"S:FR0=0T5;M5,-10,10;M5,10,10;NR0;FR0=0T5;M-5,10,10;M-5,-10,10;NR0;JS"
  28. Amal 4,"S:FR0=0T5;M5,10,10;M5,-10,10;NR0;FR0=0T5;M-5,-10,10;M-5,10,10;NR0;JS"
  29. Amal 5,"S:FR0=0T5;M5,-10,10;M5,10,10;NR0;FR0=0T5;M-5,10,10;M-5,-10,10;NR0;JS"
  30. Amal On 
  31. Colour 15,$F0
  32. Pen 15
  33. Paper 0
  34. Locate 0,15
  35. Centre "WORM"
  36. Locate 0,17
  37. Centre "By Mark Potter"
  38. Restore 100
  39. Def Scroll 1,0,160 To 320,200,0,-1
  40. Do 
  41. For T=0 To 10
  42. Scroll 1
  43. Next T
  44. Read A$
  45. Locate 0,23
  46. Centre A$
  47. Wait 50
  48. If A$="END" Then Restore 100
  49. If Fire(1)<>0 Then Exit 
  50. Loop 
  51. 100 Data "","","","Hello everybody","welcome to Karate Worm","by Mark Potter"
  52. Data "level one...","The worm holes.","hold down fire to start",""
  53. Data "original idea by Andrew Barker","controls:joystick port 2 only!"
  54. Data "yes-no reaching for the keyboard","in the middle of the action"
  55. Data "kill all the enemys"," to get to the next screen","use your ninja magic powers","and deadly weapons"
  56. Data "pick up orbs for a bonus","Moves:","up:jump up","down:crouch","fire while crouched:jump down"
  57. Data "left and right:obvious!","fire+down:low kick","fire+up:headbang"
  58. Data "fire+back:throw weapon","fire+forewards:cast spell","Fire while moving:worm kick"
  59. Data "that's about it really","","","","","","","oh,and one other thing..."
  60. Data "above all...","most importantly...","DON'T PANIC","","","","","END"
  61. Fade 10
  62. For T=15 To 0 Step -1
  63. Tempo T
  64. Wait 5
  65. Next T
  66. Music Off 
  67. End Proc
  68. Randomize Timer
  69. Global SCRN,DAM,SCORE,WEAPON,SPELL,MAGIC,NODOOR,ACTION,FACE,CHECK,FCHECK,SKIP,ENEMYS,INDY,WEPNO
  70. Global NMY1,NMY2,NMY3,NMY4,DRX1,DRX2,DRX3,DRX4,DRY1,DRY2,DRY3,DRY4,SPELLRELOAD,WEPRELOAD,DEMCOUNT,BIGNMY,BIGSR
  71. SPELLRELOAD=0 : WEPRELOAD=0 : SPELL=0 : MAGIC=100 : WEAPON=0 : WEPNO=0 : DEMCOUNT=0 : BIGNMY=0 : BIGSR=5
  72. Global ECNT1,ECNT2,ECNT3,ECNT4,IND1,IND2,IND3,IND4,TERM
  73. IND1=0 : IND2=0 : IND3=0 : IND4=0
  74. NMY1=0 : NMY2=0 : NMY3=0 : NMY4=0
  75. SCRN=0 : DAM=0 : SCORE=0
  76. Reserve Zone 10
  77. For T=0 To 5
  78. Bob Off T
  79. Next T
  80. Load "icons1.ABK"
  81. Load "bworm.ABK"
  82. Load "xplos.ABK",1
  83. Load "pwups.ABK",1
  84. Load "inchworm.ABK",1
  85. Load "macer.ABK",1
  86. Load "bigblueworm.ABK",1
  87. Make Mask 
  88. Hot Spot 34,$11
  89. Wait 50
  90. Cls 0
  91. Get Sprite Palette 
  92. Load "gamemus.ABK"
  93. Proc INIT
  94. Procedure INIT
  95. Reset Zone 
  96. DAM=0
  97. Pen 2
  98. Paper 0
  99. For T=2 To 5
  100. Bob T,0,0,9
  101. Bob Off T
  102. Next T
  103. Autoback 2
  104. Ink 1,10,10
  105. Randomize Timer
  106. Cls 0
  107. Locate 0,10
  108. Centre "level 1:worm holes"
  109. Locate 5,12
  110. Print "Screen:";SCRN
  111. Wait 100
  112. Palette $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
  113. Cls 10
  114. For T=0 To 320 Step 32
  115. Paste Icon T,0,4
  116. Next T
  117. Restore SCRN+1000
  118. D=0
  119. Do 
  120. Inc D
  121. Read A,B,C : E=A
  122. If A+B+C<1 Then Exit 
  123. For T=0 To C
  124. Paste Icon A,B,2
  125. A=A+32
  126. Next T
  127. Set Zone D,E,B To A,B+10
  128. Loop 
  129. NODOOR=0
  130. Do 
  131. Read B,C
  132. If B+C=0 Then Exit Else Inc NODOOR
  133. Paste Icon B,C,1
  134. If NODOOR=1 Then DRX1=B : DRY1=C
  135. If NODOOR=2 Then DRX2=B : DRY2=C
  136. If NODOOR=3 Then DRX3=B : DRY3=C
  137. If NODOOR=4 Then DRX4=B : DRY4=C
  138. If NODOOR>4 Then NODOOR=4 : Exit 
  139. Loop 
  140. Do 
  141. Read A,B,C
  142. If A+B+C=0 Then Exit 
  143. Paste Icon A,B,C
  144. Loop 
  145. Rem PLATFORMS x,y l DOORSx,y ODD ICONS x,y,i 
  146. 1000 Data 20,50,4,20,100,4,200,30,2,200,90,2,20,125,1,0,0,0,30,18,80,68,210,58,0,0,120,134,3,0,0,0
  147. 1001 Data 20,30,0,20,70,0,20,110,0,250,30,0,250,70,0,250,110,0,0,0,0,20,0,250,0,20,118,250,118,0,0,100,134,3,160,134,3,0,0,0
  148. 1002 Data 250,110,0,50,90,5,10,50,0,25,30,8,0,0,0,240,0,200,0,10,20,250,78,0,0,100,74,3,150,74,3,0,0,0
  149. 1003 Data 0,30,10,0,90,10,120,120,0,120,60,0,0,0,0,0,118,0,1,305,118,305,0,0,0,0,0,0
  150. 1004 Data 0,140,2,0,130,1,0,120,0,224,140,2,256,130,1,288,120,0,50,80,5,82,60,3,114,40,1,0,0,0,0,87,300,87,130,7,0,0,100,134,3,150,134,3,0,0,0
  151. 1005 Data 50,130,6,50,100,6,50,70,6,0,40,10,0,0,0,10,10,290,10,0,0,50,134,3,230,134,3,50,114,3,230,114,3,50,84,3,230,84,3,0,0,0
  152. Autoback 2
  153. Bob Update On 
  154. For T=0 To 320 Step 32
  155. Paste Icon T,150,2
  156. Next T
  157. Get Sprite Palette 
  158. ENEMYS=(SCRN*2)+15
  159. Proc DISPLAY
  160. For T=2 To 5
  161. Bob T,0,0,9
  162. Next T
  163. NMY1=0 : NMY2=0 : NMY3=0 : NMY4=0
  164. ACTION=0
  165. Proc DISPLAY
  166. Palette ,,,,,,,,,,,,,,,,$0,$F66,$FFF,$FF,$F00,$FBB,$F,$66F,$B50,$333,$740,$F0,$90,$FF0,$AAA,$CCC
  167. Music 1
  168. End Proc
  169. Bob 0,20,130,1
  170. Channel 0 To Bob 0
  171. Channel 1 To Bob 0
  172. Channel 3 To Bob 0
  173. Amal 1,"A0,(1,1)"
  174. Amal On 1
  175. SKIP=0
  176. Randomize Timer
  177. Proc DISPLAY
  178. Autoback 2
  179. Bob Update On 
  180. Channel 8 To Sprite 8
  181. Channel 9 To Sprite 9
  182. Palette ,,,,,,,,,,,,,,,,$0,$F66,$FFF,$FF,$F00,$FBB,$F,$66F,$B50,$333,$740,$F0,$90,$FF0,$AAA,$CCC
  183. 111 Rem************************** MAIN LOOP *****************************
  184. Do 
  185. Proc WORMMOVE
  186. Procedure WORMMOVE
  187. If Zone(0,X Bob(0),Y Bob(0))<>0 or Y Bob(0)>148 Then Z=1 Else Z=0
  188. If Z=0 and ACTION=3 and Amreg(0)=1 Then ACTION=0 : Proc UDATE : Amal 0,"M0,2,1;"
  189. If ACTION=6 and Amreg(0)=1 Then Bob Off 1 : ACTION=0 : Proc UDATE : Amal 0,"M0,2,1"
  190. If Fire(1)=0 and Z=1 and ACTION<2 and Jdown(1)=-1 Then Amal 0,"" : ACTION=3
  191. If Fire(1)=0 and Joy(1)=0 and ACTION<>2 and ACTION<6 Then Amal 0,"" : ACTION=0
  192. If Fire(1)=0 and ACTION<2 and Jleft(1)=-1 and Jup(1)=0 and Jdown(1)=0 Then Amal 0,"S:M-2,0,1;JS" : ACTION=1 : FACE=0
  193. If Fire(1)=0 and ACTION<2 and Jright(1)=-1 and Jup(1)=0 and Jdown(1)=0 Then Amal 0,"S:M2,0,1;JS" : ACTION=1 : FACE=1
  194. If Z=1 and Fire(1)=0 and ACTION<2 and Jup(1)=-1 Then Amal 0,"M0,-40,20;M0,-5,5;LRA=1" : Amreg(0)=0 : ACTION=2 : Proc UDATE
  195. If ACTION=2 and Amreg(0)=1 Then ACTION=0
  196. If CHECK<>ACTION Then Proc UDATE
  197. If FCHECK<>FACE Then Proc UDATE
  198. A=Zone(0,X Bob(0),Y Bob(0))
  199. If A=0 and Y Bob(0)<150 and ACTION<2 Then Amal 0,"M0,2,1"
  200. If(ACTION=2 or Z=0) and Jleft(1)=-1 and ACTION<>6 Then Amal 3,"M-2,0,1" : Bob 0,,,3 : Amal Off 1
  201. If(ACTION=2 or Z=0) and Jright(1)=-1 and ACTION<>6 Then Amal 3,"M2,0,1" : Bob 0,,,2 : Amal Off 1
  202. If Y Bob(0)>150 Then Bob 0,,150,
  203. If X Bob(0)>315 Then Bob 0,315,,
  204. If X Bob(0)<10 Then Bob 0,10,,
  205. If ACTION=3 and Fire(1)=-1 Then Amal 0,"M0,20,10;LRA=1" : Amreg(0)=0
  206. If ACTION=0 and Z=1 and Fire(1)=-1 and Jdown(1)=-1 Then ACTION=4 : Proc UDATE
  207. If ACTION=0 and Z=1 and Fire(1)=-1 and Jup(1)=-1 Then ACTION=5 : Proc UDATE
  208. If ACTION=1 and Z=1 and Fire(1)=-1 Then ACTION=6 : Amal 0,"" : Proc UDATE
  209. Amal On 0
  210. Amal On 3
  211. If ACTION=6
  212. If FACE=0
  213. Bob 1,X Bob(0)-20,Y Bob(0)+20,9
  214. End If 
  215. If FACE=1
  216. Bob 1,X Bob(0)+20,Y Bob(0)+20,9
  217. End If 
  218. End If 
  219. If ACTION=7
  220. If Amreg(25)=1
  221. ACTION=0
  222. Amal 0,""
  223. INDY=20
  224. End If 
  225. End If 
  226. If INDY>0 Then Dec INDY
  227. If ACTION=0 and Z=1 and Fire(1)=-1
  228. If(Jleft(1)=-1 and FACE=0) or(Jright(1)=-1 and FACE=1)
  229. Proc SPELLCASTING
  230. End If 
  231. If(Jleft(1)=-1 and FACE=1) or(Jright(1)=-1 and FACE=0)
  232. Proc WEPTHROWING
  233. End If 
  234. End If 
  235. End Proc
  236. Proc NMEUPDATE
  237. Procedure NMEUPDATE
  238. If ENEMYS>0
  239. If NMY1=0
  240. If SCRN<2
  241. X=Rnd(1)+1
  242. Else 
  243. X=Rnd(2)+1
  244. End If 
  245. Dec ENEMYS
  246. NMY1=X
  247. Y=Rnd(NODOOR-1)+1
  248. If Y=1
  249. If X=1
  250. Bob 2,DRX1+15,DRY1+30,1
  251. End If 
  252. If X=2
  253. Bob 2,DRX1+10,DRY1+30,40
  254. End If 
  255. If X=3
  256. Bob 2,DRX1+10,DRY1+30,41
  257. End If 
  258. End If 
  259. If Y=2
  260. If X=1
  261. Bob 2,DRX2+15,DRY2+30,1
  262. End If 
  263. If X=2
  264. Bob 2,DRX2+10,DRY2+30,40
  265. End If 
  266. If X=3
  267. Bob 2,DRX2+10,DRY2+30,41
  268. End If 
  269. End If 
  270. If Y=3
  271. If X=1
  272. Bob 2,DRX3+15,DRY3+30,1
  273. End If 
  274. If X=2
  275. Bob 2,DRX3+10,DRY3+30,40
  276. End If 
  277. If X=3
  278. Bob 2,DRX3+10,DRY3+30,41
  279. End If 
  280. End If 
  281. If Y=4
  282. If X=1
  283. Bob 2,DRX4+15,DRY4+30,1
  284. End If 
  285. If X=2
  286. Bob 2,DRX4+10,DRY4+30,40
  287. End If 
  288. If X=3
  289. Bob 2,DRX4+10,DRY4+30,41
  290. End If 
  291. End If 
  292. ECNT1=0
  293. IND1=1
  294. End If 
  295. If NMY1>0 and ECNT1<100
  296. Inc ECNT1
  297. End If 
  298. If ECNT1=99
  299. Channel 4 To Bob 2
  300. IND1=0
  301. If NMY1=1
  302. A$="D:A0,(1,5)(2,5)(1,5)(3,5);A:IY>149 J J;IX>RX J B;IX<RX J C;IRB=0 J E;IY-30>RY J F;IRX=X J I;J A;B:IRB=0 J E;M-1,0,2;IX-RX<20 J G;J A;C:IRB=0 J E;M1,0,2;IRX-X<20 J H;P;J A;E:M0,1,1;P;J A;F:IRB=0 J E M0,-50,50;P;J A"
  303. A$=A$+";G:IY-RY>30 J A;IRY-Y>30 J A;A0,(6,10);M0,0,10;P;JD;H:IRY-Y>30 J A;IY-RY>30 J A;A0,(5,10);M0,0,10;P;J D;I:M0,10,10;P;J A;J:Y=148;M0,-1,1;P;JA"
  304. Amal 4,A$
  305. End If 
  306. If NMY1=2
  307. A$="LR0=0;LR1=2;A:IR0<>R1 J K;IY>149 J J;IX>RX J B;IX<RX J C;IRB=0 J E;IY-30>RY J F;IRX=X J I;IRX-1=X J I;J A;B:IRB=0 J E;M-1,0,1;LR1=0;J A;C:IRB=0 J E;M1,0,1;LR1=1;J A;E:A0,(40,10);M0,1,1;LR1=3;P;J A;F:IRB=0 J E;A0,(40,10);M0,-50,50;LR1=2;P;J A"
  308. A$=A$+";I:A0,(40,10);M0,10,10;LR1=3;P;J A;J:Y=148;M0,-1,1;LR1=3;P;J A;K:LR0=R1;IR0=3 J A;IR0=1 J L;A0,(36,6)(37,6);P;J A;L:A0,(38,6)(39,6);P;J A"
  309. Amal 4,A$
  310. End If 
  311. If NMY1=3
  312. A$="LR0=0;LR1=2;D:A:IR0<>R1 J K;IY>149 J J;IX>RX J B;IX<RX J C;IRB=0 J E;IY-30>RY J F;IRX=X J I;J A;B:IRB=0 J E;M-1,0,2;LR1=0;IX-RX<30 J G;P;J A;C:IRB=0 J E;M1,0,2;LR1=1;IRX-X<30 J H;P;J A;E:M0,1,1;P;J A;F:IRB=0 J E;M0,-50,50;LR1=2;P;J A"
  313. A$=A$+";I:M0,10,10;P;J A;J:Y=148;M0,-1,1;P;JA;K:LR0=R1;IR0=3 J A;IR0=1 J L;A0,(41,6)(42,6);P;J A;L:A0,(44,6)(45,6);P;J A"
  314. A$=A$+";G:IY-RY>30 J A;IRY-Y>30 J A;A0,(43,10);M0,0,10;P;J K;H:IRY-Y>30 J A;IY-RY>30 J A;A0,(46,10);M0,0,10;P;J K"
  315. Amal 4,A$
  316. End If 
  317. Amal On 4
  318. End If 
  319. End If 
  320. If ENEMYS>0
  321. If NMY2=0
  322. If SCRN<2
  323. X=Rnd(1)+1
  324. Else 
  325. X=Rnd(2)+1
  326. End If 
  327. Dec ENEMYS
  328. NMY2=X
  329. Y=Rnd(NODOOR-1)+1
  330. If Y=1
  331. If X=1
  332. Bob 3,DRX1+15,DRY1+30,1
  333. End If 
  334. If X=2
  335. Bob 3,DRX1+10,DRY1+30,40
  336. End If 
  337. If X=3
  338. Bob 3,DRX1+10,DRY1+30,41
  339. End If 
  340. End If 
  341. If Y=2
  342. If X=1
  343. Bob 3,DRX2+15,DRY2+30,1
  344. End If 
  345. If X=2
  346. Bob 3,DRX2+10,DRY2+30,40
  347. End If 
  348. If X=3
  349. Bob 3,DRX2+10,DRY2+30,41
  350. End If 
  351. End If 
  352. If Y=3
  353. If X=1
  354. Bob 3,DRX3+15,DRY3+30,1
  355. End If 
  356. If X=2
  357. Bob 3,DRX3+10,DRY3+30,40
  358. End If 
  359. If X=3
  360. Bob 3,DRX3+10,DRY3+30,41
  361. End If 
  362. End If 
  363. If Y=4
  364. If X=1
  365. Bob 3,DRX4+15,DRY4+30,1
  366. End If 
  367. If X=2
  368. Bob 3,DRX4+10,DRY4+30,40
  369. End If 
  370. If X=3
  371. Bob 3,DRX4+10,DRY4+30,41
  372. End If 
  373. End If 
  374. ECNT2=0
  375. IND2=1
  376. End If 
  377. If NMY2>0 and ECNT2<100
  378. Inc ECNT2
  379. End If 
  380. If ECNT2=99
  381. Channel 5 To Bob 3
  382. IND2=0
  383. If NMY2=1
  384. A$="D:A0,(1,5)(2,5)(1,5)(3,5);A:IY>149 J J;IX>RX J B;IX<RX J C;IRC=0 J E;IY-30>RY J F;IRX=X J I;J A;B:IRC=0 J E;M-1,0,2;IX-RX<20 J G;J A;C:IRC=0 J E;M1,0,2;IRX-X<20 J H;P;J A;E:M0,1,1;P;J A;F:IRC=0 J E M0,-50,50;P;J A"
  385. A$=A$+";G:IY-RY>30 J A;IRY-Y>30 J A;A0,(6,10);M0,0,10;P;JD;H:IRY-Y>30 J A;IY-RY>30 J A;A0,(5,10);M0,0,10;P;J D;I:M0,10,10;P;J A;J:Y=148;M0,-1,1;P;JA"
  386. Amal 5,A$
  387. End If 
  388. If NMY2=2
  389. A$="LR0=0;LR1=2;A:IR0<>R1 J K;IY>149 J J;IX>RX J B;IX<RX J C;IRC=0 J E;IY-30>RY J F;IRX=X J I;IRX-1=X J I;J A;B:IRC=0 J E;M-1,0,1;LR1=0;J A;C:IRC=0 J E;M1,0,1;LR1=1;J A;E:A0,(40,10);M0,1,1;LR1=3;P;J A;F:IRC=0 J E;A0,(40,10);M0,-50,50;LR1=2;P;J A"
  390. A$=A$+";I:A0,(40,10);M0,10,10;LR1=3;P;J A;J:Y=148;M0,-1,1;LR1=3;P;JA;K:LR0=R1;IR0=3 J A;IR0=1 J L;A0,(36,6)(37,6);P;J A;L:A0,(38,6)(39,6);P;J A"
  391. Amal 5,A$
  392. End If 
  393. If NMY2=3
  394. A$="LR0=0;LR1=2;D:A:IR0<>R1 J K;IY>149 J J;IX>RX J B;IX<RX J C;IRC=0 J E;IY-30>RY J F;IRX=X J I;J A;B:IRC=0 J E;M-1,0,2;LR1=0;IX-RX<30 J G;P;J A;C:IRC=0 J E;M1,0,2;LR1=1;IRX-X<30 J H;P;J A;E:M0,1,1;P;J A;F:IRC=0 J E;M0,-50,50;LR1=2;P;J A"
  395. A$=A$+";I:M0,10,10;P;J A;J:Y=148;M0,-1,1;P;JA;K:LR0=R1;IR0=3 J A;IR0=1 J L;A0,(41,6)(42,6);P;J A;L:A0,(44,6)(45,6);P;J A"
  396. A$=A$+";G:IY-RY>30 J A;IRY-Y>30 J A;A0,(43,10);M0,0,10;P;J K;H:IRY-Y>30 J A;IY-RY>30 J A;A0,(46,10);M0,0,10;P;J K"
  397. Amal 5,A$
  398. End If 
  399. Amal On 5
  400. End If 
  401. End If 
  402. If ENEMYS>0
  403. If NMY3=0
  404. If SCRN<2
  405. X=Rnd(1)+1
  406. Else 
  407. X=Rnd(2)+1
  408. End If 
  409. Dec ENEMYS
  410. NMY3=X
  411. Y=Rnd(NODOOR-1)+1
  412. If Y=1
  413. If X=1
  414. Bob 4,DRX1+15,DRY1+30,1
  415. End If 
  416. If X=2
  417. Bob 4,DRX1+10,DRY1+30,40
  418. End If 
  419. If X=3
  420. Bob 4,DRX1+10,DRY1+30,41
  421. End If 
  422. End If 
  423. If Y=2
  424. If X=1
  425. Bob 4,DRX2+15,DRY2+30,1
  426. End If 
  427. If X=2
  428. Bob 4,DRX2+10,DRY2+30,40
  429. End If 
  430. If X=3
  431. Bob 4,DRX2+10,DRY2+30,41
  432. End If 
  433. End If 
  434. If Y=3
  435. If X=1
  436. Bob 4,DRX3+15,DRY3+30,1
  437. End If 
  438. If X=2
  439. Bob 4,DRX3+10,DRY3+30,40
  440. End If 
  441. If X=3
  442. Bob 4,DRX3+10,DRY3+30,41
  443. End If 
  444. End If 
  445. If Y=4
  446. If X=1
  447. Bob 4,DRX4+15,DRY4+30,1
  448. End If 
  449. If X=2
  450. Bob 4,DRX4+10,DRY4+30,40
  451. End If 
  452. If X=3
  453. Bob 4,DRX4+10,DRY4+30,41
  454. End If 
  455. End If 
  456. ECNT3=0
  457. IND3=1
  458. End If 
  459. If NMY3>0 and ECNT3<100
  460. Inc ECNT3
  461. End If 
  462. If ECNT3=99
  463. Channel 6 To Bob 4
  464. IND3=0
  465. If NMY3=1
  466. A$="D:A0,(1,5)(2,5)(1,5)(3,5);A:IY>149 J J;IX>RX J B;IX<RX J C;IRD=0 J E;IY-30>RY J F;IRX=X J I;J A;B:IRD=0 J E;M-1,0,2;IX-RX<20 J G;J A;C:IRD=0 J E;M1,0,2;IRX-X<20 J H;P;J A;E:M0,1,1;P;J A;F:IRD=0 J E M0,-50,50;P;J A"
  467. A$=A$+";G:IY-RY>30 J A;IRY-Y>30 J A;A0,(6,10);M0,0,10;P;JD;H:IRY-Y>30 J A;IY-RY>30 J A;A0,(5,10);M0,0,10;P;J D;I:M0,10,10;P;J A;J:Y=148;M0,-1,1;P;JA"
  468. Amal 6,A$
  469. End If 
  470. If NMY3=2
  471. A$="LR0=0;LR1=2;A:IR0<>R1 J K;IY>149 J J;IX>RX J B;IX<RX J C;IRD=0 J E;IY-30>RY J F;IRX=X J I;IRX-1=X J I;J A;B:IRD=0 J E;M-1,0,1;LR1=0;J A;C:IRD=0 J E;M1,0,1;LR1=1;J A;E:A0,(40,10);M0,1,1;LR1=3;P;J A;F:IRD=0 J E;A0,(40,10);M0,-50,50;LR1=2;P;J A"
  472. A$=A$+";I:A0,(40,10);M0,10,10;LR1=3;P;J A;J:Y=148;M0,-1,1;LR1=3;P;JA;K:LR0=R1;IR0=3 J A;IR0=1 J L;A0,(36,6)(37,6);P;J A;L:A0,(38,6)(39,6);P;J A"
  473. Amal 6,A$
  474. End If 
  475. If NMY3=3
  476. A$="LR0=0;LR1=2;D:A:IR0<>R1 J K;IY>149 J J;IX>RX J B;IX<RX J C;IRD=0 J E;IY-30>RY J F;IRX=X J I;J A;B:IRD=0 J E;M-1,0,2;LR1=0;IX-RX<30 J G;P;J A;C:IRD=0 J E;M1,0,2;LR1=1;IRX-X<30 J H;P;J A;E:M0,1,1;P;J A;F:IRD=0 J E;M0,-50,50;LR1=2;P;J A"
  477. A$=A$+";I:M0,10,10;P;J A;J:Y=148;M0,-1,1;P;JA;K:LR0=R1;IR0=3 J A;IR0=1 J L;A0,(41,6)(42,6);P;J A;L:A0,(44,6)(45,6);P;J A"
  478. A$=A$+";G:IY-RY>30 J A;IRY-Y>30 J A;A0,(43,10);M0,0,10;P;J K;H:IRY-Y>30 J A;IY-RY>30 J A;A0,(46,10);M0,0,10;P;J K"
  479. Amal 6,A$
  480. End If 
  481. Amal On 6
  482. End If 
  483. End If 
  484. If ENEMYS>0
  485. If NMY4=0
  486. If SCRN<2
  487. X=Rnd(1)+1
  488. Else 
  489. X=Rnd(2)+1
  490. End If 
  491. Dec ENEMYS
  492. NMY4=X
  493. Y=Rnd(NODOOR-1)+1
  494. If Y=1
  495. If X=1
  496. Bob 5,DRX1+15,DRY1+30,1
  497. End If 
  498. If X=2
  499. Bob 5,DRX1+10,DRY1+30,40
  500. End If 
  501. If X=3
  502. Bob 5,DRX1+10,DRY1+30,41
  503. End If 
  504. End If 
  505. If Y=2
  506. If X=1
  507. Bob 5,DRX2+15,DRY2+30,1
  508. End If 
  509. If X=2
  510. Bob 5,DRX2+10,DRY2+30,40
  511. End If 
  512. If X=3
  513. Bob 5,DRX2+10,DRY2+30,41
  514. End If 
  515. End If 
  516. If Y=3
  517. If X=1
  518. Bob 5,DRX3+15,DRY3+30,1
  519. End If 
  520. If X=2
  521. Bob 5,DRX3+10,DRY3+30,40
  522. End If 
  523. If X=3
  524. Bob 5,DRX3+10,DRY3+30,41
  525. End If 
  526. End If 
  527. If Y=4
  528. If X=1
  529. Bob 5,DRX4+15,DRY4+30,1
  530. End If 
  531. If X=2
  532. Bob 5,DRX4+10,DRY4+30,40
  533. End If 
  534. If X=3
  535. Bob 5,DRX4+10,DRY4+30,41
  536. End If 
  537. End If 
  538. ECNT4=0
  539. IND4=1
  540. End If 
  541. If NMY4>0 and ECNT4<100
  542. Inc ECNT4
  543. End If 
  544. If ECNT4=99
  545. Channel 7 To Bob 5
  546. IND4=0
  547. If NMY4=1
  548. A$="D:A0,(1,5)(2,5)(1,5)(3,5);A:IY>149 J J;IX>RX J B;IX<RX J C;IRE=0 J E;IY-30>RY J F;IRX=X J I;J A;B:IRE=0 J E;M-1,0,2;IX-RX<20 J G;J A;C:IRE=0 J E;M1,0,2;IRX-X<20 J H;P;J A;E:M0,1,1;P;J A;F:IRE=0 J E M0,-50,50;P;J A"
  549. A$=A$+";G:IY-RY>30 J A;IRY-Y>30 J A;A0,(6,10);M0,0,10;P;JD;H:IRY-Y>30 J A;IY-RY>30 J A;A0,(5,10);M0,0,10;P;J D;I:M0,10,10;P;J A;J:Y=148;M0,-1,1;P;JA"
  550. Amal 7,A$
  551. End If 
  552. If NMY4=2
  553. A$="LR0=0;LR1=2;A:IR0<>R1 J K;IY>149 J J;IX>RX J B;IX<RX J C;IRE=0 J E;IY-30>RY J F;IRX=X J I;IRX-1=X J I;J A;B:IRE=0 J E;M-1,0,1;LR1=0;J A;C:IRE=0 J E;M1,0,1;LR1=1;J A;E:A0,(40,10);M0,1,1;LR1=3;P;J A;F:IRE=0 J E;A0,(40,10);M0,-50,50;LR1=2;P;J A"
  554. A$=A$+";I:A0,(40,10);M0,10,10;LR1=3;P;J A;J:Y=148;M0,-1,1;LR1=3;P;JA;K:LR0=R1;IR0=3 J A;IR0=1 J L;A0,(36,6)(37,6);P;J A;L:A0,(38,6)(39,6);P;J A"
  555. Amal 7,A$
  556. End If 
  557. If NMY4=3
  558. A$="LR0=0;LR1=2;D:A:IR0<>R1 J K;IY>149 J J;IX>RX J B;IX<RX J C;IRE=0 J E;IY-30>RY J F;IRX=X J I;J A;B:IRE=0 J E;M-1,0,2;LR1=0;IX-RX<30 J G;P;J A;C:IRE=0 J E;M1,0,2;LR1=1;IRX-X<30 J H;P;J A;E:M0,1,1;P;J A;F:IRE=0 J E;M0,-50,50;LR1=2;P;J A"
  559. A$=A$+";I:M0,10,10;P;J A;J:Y=148;M0,-1,1;P;JA;K:LR0=R1;IR0=3 J A;IR0=1 J L;A0,(41,6)(42,6);P;J A;L:A0,(44,6)(45,6);P;J A"
  560. A$=A$+";G:IY-RY>30 J A;IRY-Y>30 J A;A0,(43,10);M0,0,10;P;J K;H:IRY-Y>30 J A;IY-RY>30 J A;A0,(46,10);M0,0,10;P;J K"
  561. Amal 7,A$
  562. End If 
  563. Amal On 7
  564. End If 
  565. End If 
  566. If NMY1>0
  567. If Zone(X Bob(2),Y Bob(2))<>0 or Y Bob(2)>148
  568. Amreg(1)=1
  569. Else 
  570. Amreg(1)=0
  571. End If 
  572. End If 
  573. If NMY2>0
  574. If Zone(X Bob(3),Y Bob(3))<>0 or Y Bob(3)>148
  575. Amreg(2)=1
  576. Else 
  577. Amreg(2)=0
  578. End If 
  579. End If 
  580. If NMY3>0
  581. If Zone(X Bob(4),Y Bob(4))<>0 or Y Bob(4)>148
  582. Amreg(3)=1
  583. Else 
  584. Amreg(3)=0
  585. End If 
  586. End If 
  587. If NMY4>0
  588. If Zone(X Bob(5),Y Bob(5))<>0 or Y Bob(5)>148
  589. Amreg(4)=1
  590. Else 
  591. Amreg(4)=0
  592. End If 
  593. End If 
  594. If NMY1=>0 and Amreg(5)=1 Then Bob 2,0,0,9 : Amreg(5)=0 : NMY1=0
  595. If NMY2=>0 and Amreg(6)=1 Then Bob 3,0,0,9 : Amreg(6)=0 : NMY2=0
  596. If NMY3=>0 and Amreg(7)=1 Then Bob 4,0,0,9 : Amreg(7)=0 : NMY3=0
  597. If NMY4=>0 and Amreg(8)=1 Then Bob 5,0,0,9 : Amreg(8)=0 : NMY4=0
  598. End Proc
  599. Amreg(23)=X Bob(0) : Amreg(24)=Y Bob(0)
  600. If ACTION=6 Then Proc HITNME[1]
  601. Wait Vbl 
  602. Proc HITBYNME
  603. Proc PROJECTILE
  604. Procedure PROJECTILE
  605. If SPELLRELOAD>0
  606. Proc HITNME[0]
  607. X=X Sprite(8)
  608. If X>X Hard(315) or X<X Hard(10)
  609. Sprite Off 8
  610. Amal 8,""
  611. SPELLRELOAD=0
  612. End If 
  613. End If 
  614. If WEPRELOAD>0
  615. If Zone(0,X Screen(0,X Sprite(9)),Y Screen(0,Y Sprite(9)))<>0 or Y Screen(0,Y Sprite(9))>148
  616. Amreg(9,1)=1
  617. Else 
  618. Amreg(9,1)=0
  619. End If 
  620. Proc HITNME[0]
  621. X=X Screen(0,X Sprite(9))
  622. If X>315 or X<10
  623. Sprite Off 9
  624. Amal 9,""
  625. WEPRELOAD=0
  626. End If 
  627. End If 
  628. End Proc
  629. TERM=0
  630. If DAM>4 Then Proc DEATH
  631. If TERM=1 Then Goto BEGINING
  632. If ENEMYS<1 and SCRN<5 Then Pen 1 : Paper 2 : Locate 0,5 : Centre "WORM-GUTS" : Amal Off : Move Off : WEPRELOAD=0 : SPELLRELOAD=0 : Wait 100 : Inc SCRN : Proc INIT
  633. If ENEMYS<1 and SCRN=5 and BIGSR<1 Then Goto EBND
  634. If SCRN=5
  635. If BIGNMY=1
  636. If Y Bob(6)<150 and Zone(0,X Bob(6),Y Bob(6))=0
  637. Amreg(10,3)=0
  638. Else 
  639. Amreg(10,3)=1
  640. End If 
  641. End If 
  642. If BIGNMY=0
  643. BIGNMY=1
  644. Bob 6,150,10,32
  645. Channel 10 To Bob 6
  646. A$="LR0=0;LR1=2;A:IR0<>R1 J K;IY>152 J J;IX>RX J B;IX<RX J C;IR3=0 J E;IY-30>RY J F;IRX=X J I;IRX-1=X J I;J A;B:IR3=0 J E;M-1,0,1;LR1=0;IY-RY<80 J O;P;J A;C:IR3=0 J E;M1,0,1;LR1=1;P;IRX-X<80 J O;J A;E:;M0,1,1;LR1=3;P;J A"
  647. A$=A$+";F:IR3=0J E;M0,-50,50;LR1=2;P;J A "
  648. A$=A$+";I:M0,10,10;LR1=3;P;J A;J:Y=148;M0,-1,1;LR1=3;P;JA;K:LR0=R1;IR0=3 J A;IR0=1 J L;A0,(47,6)(48,6);P;J A;L:A0,(49,6)(50,6);P;J A;O:IZ(255)>3 JA;IY-RY>30 J A;IRY-Y>30 J A;IR3=0 J A;IRX>X J P;M-20,-10,5;M-40,0,20;P;J A;P:M20,-10,5;M40,0,20;P;J A"
  649. Amal 10,A$
  650. Amal On 10
  651. End If 
  652. Else 
  653. BIGNMY=0
  654. End If 
  655. If SCRN=5 Then Proc BIGNMYCOL
  656. Procedure BIGNMYCOL
  657. If BIGSR>0
  658. If Bobsprite Col(6,8 To 8)=-1
  659. Sprite Off 8
  660. SPELLRELOAD=0
  661. Goto SKP
  662. End If 
  663. If Bobsprite Col(6,9 To 9)=-1
  664. Sprite Off 9
  665. WEPRELOAD=0
  666. Goto SKP
  667. End If 
  668. If Bob Col(1,6 To 6)=-1
  669. SKP: X=X Bob(6)
  670. X2=X Bob(0)
  671. If X<X2
  672. Bob 6,X-50,,
  673. End If 
  674. If X=X2 or X>X2
  675. Bob 6,X+50,,
  676. End If 
  677. Dec BIGSR
  678. If BIGSR=0
  679. Amal 10,""
  680. SCORE=SCORE+1000
  681. Proc DISPLAY
  682. End If 
  683. End If 
  684. End If 
  685. End Proc
  686. Loop 
  687. Procedure UDATE
  688. If ACTION=1 Then Amal 1,"A0,(1,5)(2,5)(1,5)(3,5)"
  689. If ACTION=0 Then Amal 1,"A1,(1,1)"
  690. If ACTION=2 Then Amal 1,"A1,(1,1)"
  691. If ACTION=3 Then Amal 1,"A0,(4,10)"
  692. If ACTION=4
  693. If FACE=0
  694. Bob 0,,,6 : Bob 1,X Bob(0)-20,Y Bob(0)+25,9
  695. Wait Vbl 
  696. Proc HITNME[1]
  697. If SCRN=5 and BIGSR>0
  698. Proc BIGNMYCOL
  699. End If 
  700. Bob 0,,,6 : Bob 1,X Bob(0)-20,Y Bob(0)+20,9
  701. Wait Vbl 
  702. Proc HITNME[1]
  703. End If 
  704. If FACE=1
  705. Bob 0,,,5 : Bob 1,X Bob(0)+20,Y Bob(0)+25,9
  706. Wait Vbl 
  707. If SCRN=5 and BIGSR>0
  708. Proc BIGNMYCOL
  709. End If 
  710. Proc HITNME[1]
  711. Bob 0,,,5 : Bob 1,X Bob(0)+20,Y Bob(0)+20,9
  712. Wait Vbl 
  713. Proc HITNME[1]
  714. End If 
  715. Bob Off 1
  716. End If 
  717. If ACTION=5
  718. If FACE=0
  719. Bob 0,,,8 : Bob 1,X Bob(0)-20,Y Bob(0)+5,9
  720. Proc HITNME[1]
  721. If SCRN=5 and BIGSR>0
  722. Proc BIGNMYCOL
  723. End If 
  724. End If 
  725. If FACE=1
  726. Bob 0,,,7 : Bob 1,X Bob(0)+20,Y Bob(0)+5,9
  727. Proc HITNME[1]
  728. If SCRN=5 and BIGSR>0
  729. Proc BIGNMYCOL
  730. End If 
  731. End If 
  732. Bob Off 1
  733. End If 
  734. If ACTION=6
  735. Amreg(0)=0
  736. If FACE=0
  737. Amal 1,"A1,(6,1);M-10,-10,10;M-20,0,10;LRA=1"
  738. End If 
  739. If FACE=1
  740. Amal 1,"A1,(5,1);M10,-10,10;M20,0,10;LRA=1"
  741. End If 
  742. End If 
  743. Amal On 1
  744. CHECK=ACTION : FCHECK=FACE
  745. End Proc
  746. Procedure HITNME[S]
  747. If S=1
  748. A=Bob Col(1,2 To 2)
  749. If A=-1 and NMY1>0
  750. D1: Amal 4,"LRF=0;M0,-10,5;M0,-10,10;M0,10,10;S:M0,4,1;IY>160 J E;J S;E:LRF=1"
  751. Amal On 4
  752. IND1=1
  753. If ACTION=6
  754. SCORE=SCORE+100
  755. Else 
  756. SCORE=SCORE+50
  757. End If 
  758. End If 
  759. A=Bob Col(1,3 To 3)
  760. If A=-1 and NMY2>0
  761. D2: Amal 5,"LRG=0;M0,-10,5;M0,-10,10;M0,10,10;S:M0,4,1;IY>160 J E;J S;E:LRG=1"
  762. Amal On 5
  763. IND2=1
  764. If ACTION=6
  765. SCORE=SCORE+100
  766. Else 
  767. SCORE=SCORE+50
  768. End If 
  769. End If 
  770. A=Bob Col(1,4 To 4)
  771. If A=-1 and NMY3>0
  772. D3: Amal 6,"LRH=0;M0,-10,5;M0,-10,10;M0,10,10;S:M0,4,1;IY>160 J E;J S;E:LRH=1"
  773. Amal On 6
  774. IND3=1
  775. If ACTION=6
  776. SCORE=SCORE+100
  777. Else 
  778. SCORE=SCORE+50
  779. End If 
  780. End If 
  781. A=Bob Col(1,5 To 5)
  782. If A=-1 and NMY4>0
  783. D4: V=Rnd(5)
  784. If V<3
  785. Amal 7,"LRI=0;M0,-10,5;M0,-10,10;M0,10,10;S:M0,4,1;IY>160 J E;J S;E:LRI=1"
  786. If ACTION=6
  787. SCORE=SCORE+100
  788. Else 
  789. SCORE=SCORE+50
  790. End If 
  791. End If 
  792. If V=3
  793. NMY4=100
  794. Bob 5,,,19
  795. Amal 7,"A1,(19,5)(20,5)(21,5)(22,5)(23,5)(24,5)(25,5);LRI=0;FR0=0T20;M0,-10,5;M0,10,5;NR0;LRI=1"
  796. End If 
  797. If V=4
  798. NMY4=101
  799. Bob 5,,,19
  800. Amal 7,"A1,(19,5)(20,5)(21,5)(22,5)(23,5)(24,5)(26,5);LRI=0;FR0=0T20;M0,-10,5;M0,10,5;NR0;LRI=1"
  801. End If 
  802. If V=5
  803. NMY4=102
  804. Bob 5,,,19
  805. Amal 7,"A1,(19,5)(20,5)(21,5)(22,5)(23,5)(24,5)(27,5);LRI=0;FR0=0T20;M0,-10,5;M0,10,5;NR0;LRI=1"
  806. End If 
  807. Amal On 7
  808. IND4=1
  809. End If 
  810. Proc DISPLAY
  811. End If 
  812. If S=0
  813. If SPELLRELOAD>0
  814. If Bobsprite Col(2,8 To 8)=-1
  815. If SPELL=1
  816. SPELLRELOAD=0 : Sprite Off 8
  817. End If 
  818. Goto D1
  819. End If 
  820. If Bobsprite Col(3,8 To 8)=-1
  821. If SPELL=1
  822. SPELLRELOAD=0 : Sprite Off 8
  823. End If 
  824. Goto D2
  825. End If 
  826. If Bobsprite Col(4,8 To 8)=-1
  827. If SPELL=1
  828. SPELLRELOAD=0 : Sprite Off 8
  829. End If 
  830. Goto D3
  831. End If 
  832. If Bobsprite Col(5,8 To 8)=-1
  833. If SPELL=1
  834. SPELLRELOAD=0 : Sprite Off 8
  835. End If 
  836. Goto D4
  837. End If 
  838. End If 
  839. If WEPRELOAD>0
  840. If Bobsprite Col(2,9 To 9)=-1
  841. If WEAPON<3 and WEAPON>0
  842. WEPRELOAD=0 : Sprite Off 9
  843. End If 
  844. Goto D1
  845. End If 
  846. If Bobsprite Col(3,9 To 9)=-1
  847. If WEAPON<3 and WEAPON>0
  848. WEPRELOAD=0 : Sprite Off 9
  849. End If 
  850. Goto D2
  851. End If 
  852. If Bobsprite Col(4,9 To 9)=-1
  853. If WEAPON<3 and WEAPON>0
  854. WEPRELOAD=0 : Sprite Off 9
  855. End If 
  856. Goto D3
  857. End If 
  858. If Bobsprite Col(5,9 To 9)=-1
  859. If WEAPON<3 and WEAPON>0
  860. WEPRELOAD=0 : Sprite Off 9
  861. End If 
  862. Goto D4
  863. End If 
  864. End If 
  865. End If 
  866. End Proc
  867. Procedure DISPLAY
  868. Autoback 0
  869. Pen 1
  870. Paper 0
  871. For T=0 To 1
  872. Locate 0,22
  873. Print "SC:";SCORE;" M:";MAGIC;" D:";DAM;"  "
  874. If WEAPON=0 Then A$="none "
  875. If WEAPON=1 Then A$="rocks"
  876. If WEAPON=2 Then A$="stars"
  877. If WEAPON=3 Then A$="ball "
  878. If SPELL=0 Then B$="none    "
  879. If SPELL=1 Then B$="wormgob "
  880. If SPELL=2 Then B$="fireball"
  881. If SPELL=3 Then B$="kriskros"
  882. If SPELL=4 Then B$="protect "
  883. Print "W:";A$;"S:";B$
  884. Wait Vbl 
  885. Next T
  886. Autoback 2
  887. End Proc
  888. Procedure HITBYNME
  889. If ACTION<6
  890. If INDY<1
  891. If BIGSR>0
  892. N=6
  893. Else 
  894. N=5
  895. End If 
  896. If Bob Col(0,2 To N)<>0
  897. C=Col(6)
  898. If C=-1
  899. If BIGSR>0
  900. B=6
  901. End If 
  902. End If 
  903. C=Col(2)
  904. If C=-1
  905. B=2
  906. End If 
  907. C=Col(3)
  908. If C=-1
  909. B=3
  910. End If 
  911. C=Col(4)
  912. If C=-1
  913. B=4
  914. End If 
  915. C=Col(5)
  916. If C=-1
  917. B=5
  918. End If 
  919. If B=2
  920. If IND1=1
  921. Goto SKIP
  922. End If 
  923. End If 
  924. If B=3
  925. If IND2=1
  926. Goto SKIP
  927. End If 
  928. End If 
  929. If B=4
  930. If IND3=1
  931. Goto SKIP
  932. End If 
  933. End If 
  934. If B=5
  935. If IND4=1
  936. Goto SKIP
  937. End If 
  938. End If 
  939. ACTION=7
  940. DAM=DAM+1
  941. If(X Bob(0))>(X Bob(B))
  942. Amal 0,"LRZ=0;A0,(2,10);M50,0,5;LRZ=1"
  943. Else 
  944. Amal 0,"LRZ=0;A0,(3,10);M-50,0,5;LRZ=1"
  945. End If 
  946. Proc DISPLAY
  947. Amal On 0
  948. End If 
  949. End If 
  950. End If 
  951. SKIP: Rem
  952. If NMY4>50
  953. If Bob Col(0,5 To 5)<>0
  954. If NMY4=100
  955. X=Rnd(3)
  956. WEAPON=X
  957. WEPNO=5-X
  958. End If 
  959. If NMY4=101
  960. MAGIC=MAGIC+20
  961. If MAGIC>100
  962. MAGIC=100
  963. End If 
  964. End If 
  965. If NMY4=102
  966. X=Rnd(4)
  967. SPELL=X
  968. End If 
  969. Bob 5,0,0,9
  970. Amal 7,""
  971. NMY4=0 : Amreg(8)=0
  972. Proc DISPLAY
  973. End If 
  974. End If 
  975. End Proc
  976. Procedure SPELLCASTING
  977. If SPELLRELOAD=0
  978. If SPELL=1
  979. If MAGIC>9
  980. MAGIC=MAGIC-10
  981. SPELLRELOAD=1
  982. Sprite 8,X Hard(0,X Bob(0)),Y Hard(0,Y Bob(0)+10),30
  983. Channel 8 To Sprite 8
  984. If FACE=0
  985. Move X 8,"(1,-2,0)L"
  986. End If 
  987. If FACE=1
  988. Move X 8,"(1,2,0)L"
  989. End If 
  990. Move On 8
  991. End If 
  992. End If 
  993. If SPELL=2
  994. If MAGIC>19
  995. Channel 8 To Sprite 8
  996. MAGIC=MAGIC-20
  997. SPELLRELOAD=1
  998. If FACE=0
  999. Sprite 8,X Hard(0,X Bob(0)),Y Hard(0,Y Bob(0)+10),33
  1000. Amal 8,"S:M-3,0,1;JS"
  1001. End If 
  1002. If FACE=1
  1003. Sprite 8,X Hard(0,X Bob(0)),Y Hard(0,Y Bob(0)+10),32
  1004. Amal 8,"S:M3,0,1;JS"
  1005. End If 
  1006. Amal On 8
  1007. End If 
  1008. End If 
  1009. If SPELL=3
  1010. If MAGIC>29
  1011. MAGIC=MAGIC-30
  1012. SPELLRELOAD=1
  1013. Sprite 8,X Hard(0,X Bob(0)),Y Hard(0,Y Bob(0)),31
  1014. Channel 8 To Sprite 8
  1015. Amal 8,"FR0=0T39;MXH(0,RX)-X,0,20;NR0;M400,0,100"
  1016. Amal On 8
  1017. End If 
  1018. End If 
  1019. If SPELL=4
  1020. If MAGIC>49
  1021. MAGIC=MAGIC-50
  1022. INDY=200
  1023. End If 
  1024. End If 
  1025. End If 
  1026. Proc DISPLAY
  1027. End Proc
  1028. Procedure WEPTHROWING
  1029. If WEPRELOAD=0 and WEPNO>0
  1030. If WEAPON=1
  1031. Sprite 9,X Hard(0,X Bob(0)),Y Hard(0,Y Bob(0)-25),34
  1032. Channel 9 To Sprite 9
  1033. If FACE=0
  1034. Amal 9,"LR1=0;S:M-3,1,2;IR1=1 J A;J S;A:LX=XH(0,400)"
  1035. End If 
  1036. If FACE=1
  1037. Amal 9,"LR1=0;S:M3,1,2;IR1=1 J A;J S;A:LX=XH(0,400)"
  1038. End If 
  1039. WEPRELOAD=1
  1040. Dec WEPNO
  1041. Amal On 9
  1042. End If 
  1043. If WEAPON=2
  1044. Sprite 9,X Hard(0,X Bob(0)),Y Hard(0,Y Bob(0)+10),29
  1045. Channel 9 To Sprite 9
  1046. If FACE=0
  1047. Amal 9,"A0,(28,2)(29,2);M-400,0,100"
  1048. End If 
  1049. If FACE=1
  1050. Amal 9,"A0,(28,2)(29,2);M400,0,100"
  1051. End If 
  1052. WEPRELOAD=1
  1053. Dec WEPNO
  1054. Amal On 9
  1055. End If 
  1056. If WEAPON=3
  1057. Sprite 9,X Hard(0,X Bob(0)),Y Hard(0,Y Bob(0)-5),35
  1058. Channel 9 To Sprite 9
  1059. If FACE=0
  1060. Amal 9,"S:M-2,0,1;IR1=0 J A;J S;A: M0,1,1;IR1=1 J S;J A"
  1061. End If 
  1062. If FACE=1
  1063. Amal 9,"S:M2,0,1;IR1=0 J A;J S;A: M0,1,1;IR1=1 J S;J A"
  1064. End If 
  1065. WEPRELOAD=1
  1066. Dec WEPNO
  1067. Amal On 9
  1068. End If 
  1069. End If 
  1070. End Proc
  1071. Procedure DEATH
  1072. Amal Off 
  1073. Move Off 
  1074. Channel 0 To Bob 0
  1075. Do 
  1076. Bob 0,X Bob(0),Y Bob(0)+1,1
  1077. If Y Bob(0)>148 or Zone(0,X Bob(0),Y Bob(0))<0 Then Exit 
  1078. Loop 
  1079. Amal 0,"A1,(10,10)(11,10)(12,10)(13,10)(14,10)(15,10)(16,10)(17,10)(18,10)"
  1080. Amal On 0
  1081. Wait 100
  1082. Music Off 
  1083. Fade 5
  1084. Wait 100
  1085. Pen 1
  1086. Paper 0
  1087. For T=0 To 64
  1088. Bob T,0,0,9
  1089. Bob Off T
  1090. Next T
  1091. For T=8 To 9
  1092. Sprite T,0,0,9
  1093. Sprite Off T
  1094. Next T
  1095. Locate 0,0
  1096. Palette $0,$FFF
  1097. Centre "GAME OVER"
  1098. Locate 0,5
  1099. Print "SCORE:";SCORE
  1100. Screen Swap 
  1101. Locate 0,0
  1102. Centre "GAME OVER"
  1103. Locate 0,5
  1104. Print "SCORE:";SCORE
  1105. Do 
  1106. If Fire(1)=-1 Then Exit 
  1107. Loop 
  1108. TERM=1
  1109. End Proc
  1110. Goto BEGINING
  1111. EBND: Proc WONLEVEL
  1112. Procedure WONLEVEL
  1113. Amal Off 
  1114. Move Off 
  1115. Music Off 
  1116. For T=0 To 5
  1117. Bob T,X Bob(6),Y Bob(6),19
  1118. Channel T To Bob T
  1119. Next T
  1120. Amal 0,"A0,(19,5)(20,5)(21,5)(22,5)(23,5)(24,5);M0,400,200"
  1121. Amal 1,"A0,(19,5)(20,5)(21,5)(22,5)(23,5)(24,5);M400,400,200"
  1122. Amal 2,"A0,(19,5)(20,5)(21,5)(22,5)(23,5)(24,5);M0,-400,200"
  1123. Amal 3,"A0,(19,5)(20,5)(21,5)(22,5)(23,5)(24,5);M400,-400,200"
  1124. Amal 4,"A0,(19,5)(20,5)(21,5)(22,5)(23,5)(24,5);M-400,400,200"
  1125. Amal 5,"A0,(19,5)(20,5)(21,5)(22,5)(23,5)(24,5);M-400,-400,200"
  1126. Amal On 
  1127. For T=0 To 5
  1128. Boom 
  1129. Next T
  1130. Bob Off 6
  1131. Wait 100
  1132. Palette $0,$FFF
  1133. Cls 0
  1134. For T=0 To 63
  1135. Bob T,0,0,1
  1136. Bob Off T
  1137. Next T
  1138. Sprite 9,0,0,1
  1139. Sprite Off 9
  1140. Sprite 8,0,0,1
  1141. Sprite Off 8
  1142. Show On 
  1143. Pen 1
  1144. Paper 0
  1145. Locate 0,10
  1146. Centre "LEVEL CLEARED"
  1147. Locate 0,12
  1148. Print "Score:";SCORE
  1149. Print "tap a key to load next level"
  1150. Print "or press fire to play again"
  1151. Pop Proc
  1152. End Proc
  1153. Clear Key 
  1154. Do 
  1155. If Fire(1)=-1 Then Goto BEGINING
  1156. If Inkey$<>"" Then Print "press a key" : Clear Key : Wait Key : Run "parttwo"
  1157. Loop