home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 326-350 / apd340 / partthree / partthree.amosSourceCode < prev    next >
AMOS Source Code  |  1991-10-22  |  24KB  |  1,176 lines

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