-
Notifications
You must be signed in to change notification settings - Fork 1
/
dnd1.basic
1198 lines (1198 loc) · 28.5 KB
/
dnd1.basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
00001 REM 79/02/28. 19.27.34.
00002 REM PROGRAM DND1
00010 LET J4=1
00030 PRINT
00100 BASE 0
00110 LET X=0
00120 LET J=0
00130 LET K=0
00140 X1=0
00150 LET X3=0
00160 LET J9=RND(CLK(J9))
00170 DIM C(7),C$(7),W(100),D(50,50),P(100),I$(100),B(100,6),B$(100)
00180 DIM E(100),F(100),X5(100),X6(100),X2(100),X4(100)
00190 LET G=INT(RND(0)*24+2)
00200 LET H=INT(RND(0)*24+2)
00210 FILE #1="DNG1"
00220 FILE #2="DNG2",#3="DNG3",#4="DNG4",#5="DNG5",#6="DNG6"
00230 RESTORE #4
00240 FILE #7="GMSTR"
00245 RESTORE #7
00250 RESTORE #1
00260 RESTORE #2
00261 RESTORE #3
00262 RESTORE #4
00263 RESTORE #5
00264 RESTORE #6
00270 DATA "STR","DEX","CON","CHAR","WIS","INT","GOLD"
00280 DATA "SWORD",10,"2-H-SWORD",15,"DAGGER",3,"MACE",5
00290 DATA "SPEAR",2,"BOW",25,"ARROWS",2,"LEATHER MAIL",15
00300 DATA "CHAIN MAIL",30,"TLTE MAIL",50,"ROPE",1,"SPOKES",1
00310 DATA "FLASK OF OIL",2,"SILVER CROSS",25,"SPARE FOOD",5
00320 PRINT " DUNGEONS AND DRAGONS #1"
00330 PRINT
00340 PRINT "DO YOU NEED INSTUCTIONS ";
00350 INPUT Q$
00360 IF Q$="YES" THEN 01730
00370 IF Q$="Y" THEN 00720
00380 PRINT "OLD OR NEW GAME";
00390 INPUT Q$
00400 IF Q$="OLD" THEN 01770
00410 PRINT "DUNGEON #";
00420 INPUT D
00421 PRINT "CONTINUES RESET 1=YES,2=NO ";
00422 INPUT J6
00430 REM ROLLING CHARACTERISTICS
00440 PRINT "PLAYERS NME ";
00450 INPUT N$
00460 IF N$<>"SHAVS" THEN 01730
00465 FOR M=1 TO 7
00466 READ C$(M)
00467 NEXT M
00470 FOR M=1 TO 7
00490 FOR N=1 TO 3
00500 LET R=INT(RND(0)*6+1)
00510 LET C(M)=C(M)+R
00520 NEXT N
00530 IF M<>7 THEN 00550
00540 LET C(M)=C(M)*15
00550 REM
00560 PRINT C$(M);"=";C(M)
00570 NEXT M
00580 PRINT
00590 PRINT "CLASSIFICATION"
00600 PRINT "WHICH DO YOU WANT TO BE"
00610 PRINT "FIGHTER ,CLERIC ,OR WIZARD";
00620 INPUT C$(0)
00625 IF C$(0)<>"NONE" THEN 0630
00626 FOR M7=0 TO 7
00627 LET C(M7)=0
00628 NEXT M7
00629 GO TO 00470
00630 IF C$(0)="FIGHTER" THEN 00770
00640 IF C$(0)="CLERIC" THEN 00810
00650 IF C$(0)="WIZARD" THEN 00790
00660 GO TO 00620
00670 PRINT "BUYING WEAPONS"
00680 PRINT "FAST OR NORM"
00690 INPUT Q3$
00700 PRINT "NUMBER","ITEM","PRICE"
00705 PRINT "-1-STOP"
00710 FOR M=1 TO 15
00720 READ I$(M),P(M)
00725 IF Q3$="FAST" THEN 00740
00730 PRINT M,I$(M),P(M)
00740 NEXT M
00750 GOSUB 01150
00760 GO TO 00830
00770 LET C(0)=INT(RND(0)*8+1)
00780 GO TO 00670
00790 LET C(0)=INT(RND(0)*4+1)
00800 GO TO 00670
00810 LET C(0)=INT(RND(0)*6+1)
00820 GO TO 00670
00830 REM
00850 LET X=X+1
00860 INPUT Y
00870 REM
00880 IF Y<0 THEN 01000
00885 IF Y>15 THEN 01000
00890 IF C(7)-P(Y)<0 THEN 00970
00900 IF C$(0)="CLERIC" THEN 01290
00910 IF C$(0)="WIZARD" THEN 01350
00920 REM
00930 LET C(7)=C(7)-P(Y)
00940 PRINT "GP= ";C(7)
00950 LET W(X)=Y
00960 GO TO 00830
00970 PRINT "COSTS TOO MUCH"
00980 PRINT "TRY AGAIN ";
00990 GO TO 00860
01000 PRINT "GP= ";C(7)
01010 REM
01020 PRINT "EQ LIST ";
01030 INPUT Q$
01040 IF Q$="NO" THEN 01090
01050 FOR M=1 TO X
01060 IF W(M)=0 THEN 01080
01070 PRINT W(M),I$(W(M))
01080 NEXT M
01090 PRINT "YOUR CHARACTERISTICS ARE:"
01100 PRINT C$(0)
01101 IF C(0)<>1 THEN 01110
01102 C(0)=2
01110 PRINT "HIT POINTS",C(0)
01120 PRINT
01130 PRINT
01140 GO TO 01400
01150 DATA "MAN",1,13,26,1,1,500
01160 DATA "GOBLIN",2,13,24,1,1,600
01170 DATA "TROLL",3,15,35,1,1,1000
01180 DATA "SKELETON",4,22,12,1,1,50
01190 DATA "BALROG",5,18,110,1,1,5000
01200 DATA "OCHRE JELLY",6,11,20,1,1,0
01210 DATA "GREY OOZE",7,11,13,1,1,0
01220 DATA "GNOME",8,13,30,1,1,100
01230 DATA "KOBOLD",9,15,16,1,1,500
01240 DATA "MUMMY",10,16,30,1,1,1000
01250 FOR M=1 TO 10
01260 READ B$(M),B(M,1),B(M,2),B(M,3),B(M,4),B(M,5),B(M,6)
01265 B(M,4)=B(M,3)
01267 B(M,5)=B(M,6)
01269 B(M,1)=1
01270 NEXT M
01280 RETURN
01290 IF Y=4 THEN 00920
01300 IF Y=8 THEN 00920
01310 IF Y=9 THEN 00920
01320 IF Y>10 THEN 00920
01330 PRINT "YOUR A CLERIC YOU CANT USE THAT "
01340 GO TO 00860
01350 IF Y=3 THEN 00920
01360 IF Y=8 THEN 00920
01370 IF Y>10 THEN 00920
01380 PRINT "YOUR A WIZARD YOU CANT USE THAT "
01390 GO TO 00860
01400 REM READ DUNGEON AND START GAME
01410 RESTORE #D
1415 PRINT "READING DUNGEON NUM. ";D
01420 FOR M=0 TO 25
01430 FOR N=0 TO 25
01431 D(M,N)=0
01432 IF D=0 THEN 01450
01440 READ #D,D(M,N)
01443 IF D(M,N)<>0 THEN 01450
01445 IF RND(0)<.97 THEN 01447
01446 D(M,N)=7
01447 IF RND(0)<.97 THEN 01450
01448 D(M,N)=8
01450 NEXT N
01460 NEXT M
01470 REM YEA START
01480 PRINT
01490 PRINT
01500 PRINT
01510 PRINT "WELCOME TO DUNGEON #";D
01520 PRINT "YOU ARE AT (";G;",";H;")"
01530 PRINT
01540 PRINT "COMANDS LIST",
01541 INPUT Q$
01542 IF Q$<>"YES" THEN 01590
01550 PRINT
01560 PRINT "1=MOVE 2=OPEN DOOR 3=SEARCH FOR TRAPS AND SECRET DOORS"
01570 PRINT "4=SWITCH WEAPON HN HAND 5=FIGHT"
01580 PRINT "6=LOOK AROUND 7=SAVE GAME 8=USE MAGIC 9=BUY MAGIC"
01585 PRINT "10=PASS 11=BUY H.P."
01590 PRINT "COMMAND=";
01600 INPUT T
01605 IF T=11 THEN 10830
01606 IF T=12 THEN 11000
01610 IF T=1 THEN 02170
01620 IF T=2 THEN 03130
01630 IF T=3 THEN 03430
01640 IF T=4 THEN 03640
01650 IF T=5 THEN 03750
01660 IF T=6 THEN 06390
01670 IF T=7 THEN 06610
01680 IF T=8 THEN 08680
01690 IF T=9 THEN 09980
01700 IF T=10 THEN 10730
01705 IF T=0 THEN 07000
01710 PRINT "COME ON ";
01720 GO TO 01590
01730 REM INSTRUCTIONS
01740 PRINT "WHO SAID YOU COULD PLAY"
01750 STOP
01760 GO TO 00380
01770 REM READ OUT OLD GAME
01775 RESTORE #7
01780 READ #7,D
01790 READ #7,X
01800 READ #7,J
01810 READ #7,G
01820 READ #7,H
01830 READ #7,K
01840 FOR M=0 TO 25
01850 FOR N=0 TO 25
01860 READ #7,D(M,N)
01870 NEXT N
01880 NEXT M
01890 FOR M=1 TO X
01900 READ #7,W(M)
01910 NEXT M
01920 FOR M=1 TO 10
01930 READ #7,B$(M)
01940 FOR N=1 TO 6
01950 READ #7,B(M,N)
01960 NEXT N
01970 NEXT M
01980 FOR M=0 TO 7
01990 READ #7,C$(M)
02000 READ #7,C(M)
02010 NEXT M
02020 READ #7,N$
02030 READ #7,F1
02040 READ #7,F2
02050 FOR M=1 TO 15
02060 READ #7,I$(M)
02070 NEXT M
02080 READ #7,X3
02090 FOR M=1 TO X3
02100 READ #7,X4(M)
02110 NEXT M
02120 READ #7,X1
02130 FOR M=1 TO X1
02140 READ #7,X2(M)
02150 NEXT M
02151 READ #7,F2
02152 READ #7,F1
02160 GO TO 01510
02170 REM MOVE
02175 PRINT "YOU ARE AT ";G;" , ";H
02180 PRINT " DOWN RIGHT LEFT OR UP"
02190 INPUT Q$
02200 IF Q$="RIGHT" THEN 02260
02205 IF Q$="R" THEN 02260
02210 IF Q$="LEFT" THEN 02290
02215 IF Q$="L" THEN 02290
02220 IF Q$="UP" THEN 02320
02225 IF Q$="U" THEN 02320
02230 IF Q$="DOWN" THEN 02350
02235 IF Q$="D" THEN 02350
02240 GO TO 02180
02250 REM
02260 LET S=0
02270 LET T=1
02280 GO TO 02370
02290 LET S=0
02300 LET T=-1
02310 GO TO 02370
02320 LET S=-1
02330 LET T=0
02340 GO TO 02370
02350 LET S=1
02360 LET T=0
02370 IF D(G+S,H+T)=0 THEN 02430
02380 IF D(G+S,H+T)=1 THEN 02480
02390 IF D(G+S,H+T)=2 THEN 02550
02400 IF D(G+S,H+T)=3 THEN 02990
02401 IF D(G+S,H+T)=7 THEN 02424
02402 IF D(G+S,H+T)=8 THEN 02426
02410 IF D(G+S,H+T)=5 THEN 03060
02411 IF D(G+S,H+T)=6 THEN 02413
02412 GO TO 02480
02413 PRINT "AH......GOLD......."
02414 G9=INT(RND(0)*500+10)
02415 PRINT G9;"PIECES"
02416 C(7)=C(7)+G9
02417 PRINT "GP= ";C(7)
02418 D(G+S,H+T)=0
02419 IF RND(0)>.2 THEN 02430
02420 PRINT " POISON "
02421 LET C(0)=C(0)-INT(RND(0)*4+1)
02422 PRINT "HP= ";C(0)
02423 GO TO 02430
02424 LET C(1)=C(1)+1
02425 GO TO 02418
02426 LET C(3)=C(3)+1
02429 GO TO 02418
02430 LET G=G+S
02440 LET H=H+T
02450 PRINT "DONE"
02460 GO TO 07000
02470 REM
02480 PRINT "YOU RAN INTO A WALL"
02490 IF RND(0)*12+1>9 THEN 02520
02500 PRINT "BUT NO DAMAGE WAS INFLICTED"
02510 GO TO 07000
02520 PRINT "AND LOOSE 1 HIT POINT"
02530 LET C(0)=C(0)-1
02540 GO TO 07000
02550 PRINT "OOOOPS A TRAP AND YOU FELL IN "
02560 IF RND(0)*3>2 THEN 02580
02570 GO TO 02600
02580 PRINT "AND HIT POINTS LOOSE 1"
02590 LET C(0)=C(0)-1
02600 PRINT "I HOPE YOU HAVE SOME SPIKES AND PREFERABLY ROPE"
02610 PRINT "LET ME SEE"
02620 FOR M=1 TO X
02630 IF W(M)<>12 THEN 02660
02640 LET W(M)=0
02650 GO TO 02680
02660 NEXT M
02670 GO TO 02740
02680 FOR M=1 TO X
02690 IF W(M)<>11 THEN 02720
02700 LET W(M)=0
02710 GO TO 02760
02720 NEXT M
02730 GO TO 02890
02740 PRINT "NO SPIKES AH THATS TOO BAD CAUSE YOUR DEAD "
02750 STOP
02760 PRINT "GOOD BOTH"
02770 PRINT "YOU MANAGE TO GET OUT EASY"
02775 GO TO 02870
02780 FOR M=1 TO X
02790 IF W(M)=12 THEN 02820
02800 NEXT M
02810 IF B9>1 THEN 02830
02820 LET W(M)=0
02830 GO TO 02870
02840 LET W(M)=0
02850 LET W(M)=0
02860 GO TO 02820
02870 PRINT "YOUR STANDING NEXT TO THE EDGE THOUGH I'D MOVE"
02880 GO TO 02170
02890 PRINT "NO ROPE BUT AT LEAS SPIKES"
02900 IF INT(RND(0)*3)+1=2 THEN 02960
02910 GO TO 02770
02920 PRINT "YOU FALL HALF WAY UP"
02930 IF INT(RND(0)*6)>C(1)/3 THEN 02960
02940 PRINT "TRY AGAIN"
02950 GO TO 02900
02960 PRINT "OOPS H.P. LOOSE 1"
02970 LET C(0)=C(0)-1
02980 GO TO 02940
02990 IF INT(RND(0)*6)+1>4 THEN 0300
03000 GO TO 02480
03010 PRINT "YOU JUST RAN INTO A SECRET DOOR"
03020 PRINT "AND OPENED IT"
03030 LET G=G+S
03040 LET H=H+T
03050 GO TO 02450
03060 PRINT "YOU RAN INTO THE MONSTER "
03070 PRINT "HE SHOVES YOU BACK"
03080 PRINT
03090 IF INT(RND(0)*2)+1=2 THEN 03120
03100 PRINT "YOU LOOSE 6 HIT POINT "
03110 LET C(0)=C(0)-6
03120 GO TO 07000
03130 PRINT "DOOR LEFT RIGHT UP OR DOWN"
03140 INPUT Q$
03150 IF Q$="LEFT" THEN 03200
03155 IF Q$="L" THEN 03200
03160 IF Q$="RIGHT" THEN 03230
03165 IF Q$="R" THEN 03230
03170 IF Q$="UP" THEN 03260
03175 IF Q$="U" THEN 03260
03180 IF Q$="DOWN" THEN 03290
03185 IF Q$="D" THEN 03290
03190 GO TO 03130
03200 LET S=0
03210 LET T=-1
03220 GO TO 03310
03230 LET S=0
03240 LET T=1
03250 GO TO 03310
03260 LET S=-1
03270 LET T=0
03280 GO TO 03310
03290 LET S=1
03300 LET T=0
03310 IF D(G+S,H+T)=4 THEN 03350
03320 IF D(G+S,H+T)=3 THEN 03350
03330 PRINT "THERE IS NOT A DOOR THERE"
03340 GO TO 01590
03350 PRINT "PUSH"
03360 IF INT(RND(0)*20)+1<C(1) THEN 03390
03370 PRINT "DIDNT BUDGE"
03380 GO TO 07000
03390 PRINT "ITS OPEN"
03400 LET G=G+S
03410 LET H=H+T
03420 GO TO 02450
03430 PRINT "SEARCH.........SEARCH...........SEARCH..........."
03440 IF INT(RND(0)*40)<C(5)+C(6) THEN 03470
03450 PRINT "NO NOT THAT YOU CAN TELL"
03460 GO TO 07000
03470 FOR M=-1 TO 1
03480 FOR N=-1 TO 1
03490 IF D(G+M,H+N)=2 THEN 03550
03500 IF D(G+M,H+N)=3 THEN 03590
03510 NEXT N
03520 NEXT M
03530 REM
03540 GO TO 03450
03550 PRINT "YES THERE IS A TRAP"
03560 PRINT "IT IS ";M;"VERTICALY ";N;"HORAZONTALY FROM YOU"
03570 LET Z=1
03580 GO TO 03500
03590 PRINT "YES A DOOR"
03600 PRINT "IT IS AT ";M;"VERTICALY ";N;"HORAZANTALY"
03610 LET Z=1
03620 GO TO 03510
03630 REM
03640 PRINT "WHICH WEAPON WILL YOU HOLD, NUM OF WEAPON "
03650 INPUT Y
03660 IF Y=0 THEN 03720
03670 FOR M=1 TO X
03680 IF W(M)=Y THEN 03720
03690 NEXT M
03700 PRINT "SORRY YOU DONT HAVE THAT ONE"
03710 GO TO 03640
03720 PRINT "O.K. YOU ARE NOW HOLDING A ";I$(Y)
03730 LET J=Y
03740 GO TO 07000
03750 REM FIGHTING BACK
03760 PRINT "YOUR WEAPON IS ";I$(J)
03770 IF K=0 THEN 01590
03780 PRINT B$(K)
03790 PRINT "HP=";B(K,3)
03800 IF J=0 THEN 04460
03810 IF J=1 THEN 04680
03820 IF J=2 THEN 04860
03830 IF J=3 THEN 05040
03840 IF J=4 THEN 05270
03850 IF J>4 THEN 03870
03860 GO TO 03880
03870 IF J<15 THEN 05450
03880 PRINT "FOOD ???.... WELL O.K."
03890 PRINT "IS IT TO HIT OR DISTRACT";
03900 INPUT Q$
03910 IF Q$="HIT" THEN 04330
03920 PRINT "THROW A-A=VE,B=BELOW,L=LEFT,OR R-RIGHT OF THE MONSTER";
03930 LET Z5=0
03940 INPUT Q$
03950 IF Q$="B" THEN 04010
03960 IF Q$="A" THEN 04040
03970 IF Q$="L" THEN 04070
03980 LET S=0
03990 LET T=1
04000 GO TO 04120
04010 LET S=-1
04020 LET T=0
04030 GO TO 04120
04040 LET S=1
04050 LET T=0
04060 GO TO 04120
04070 LET S=0
04080 LET T=-1
04090 GO TO 04120
04100 IF Z5=1 THEN 04120
04110 IF RND(0)>.5 THEN 04140
04120 IF D(F1+S,F2+T)=0 THEN 04220
04130 IF D(F1+S,F2+T)=2 THEN 04280
04140 PRINT "DIDN'T WORK"
04150 FOR M=1 TO X
04160 IF Z5=Q THEN 07000
04170 IF W(M)=15 THEN 04190
04180 NEXT M
04190 LET W(M)=0
04200 LET J=0
04210 GO TO 07000
04220 PRINT "MONSTER MOVED BACK"
04230 LET D(F1,F2)=0
04240 LET F1=F1+S
04250 LET F2=F2+T
04260 LET D(F1,F2)=5
04270 GO TO 04150
04280 PRINT "GOOD WORK THE MONSTER FELL INTO A TRAP AND IS DEAD"
04290 LET K1=-1
04300 LET B(K,6)=0
04310 GO TO 07000
04320 GO TO 04150
04330 IF INT(RND(0)*20)+1=20 THEN 04380
04340 IF INT(RND(0)*20)+1>B(K,2)-C(2)/3 THEN 04410
04350 IF INT(RND(0)*20)+1>10-C(2)/3 THEN 04440
04360 PRINT "TOTAL MISS"
04370 GO TO 04150
04380 PRINT "DIRECT HIT"
04390 LET B(K,3)=B(K,3)-INT(C(1)/6)
04400 REM
04410 PRINT "HIT"
04420 LET B(K,3)=B(K,3)-INT(C(1)/8)
04430 GO TO 04150
04440 PRINT "YOU HIT HIM BUT NOT GOOD ENOUGH"
04450 GO TO 04150
04460 REM FISTS
04470 PRINT "DO YOU REALIZE YOU ARE BARE HANDED"
04480 PRINT "DO YOU WANT TO MAKE ANOTHER CHOICE";
04490 INPUT Q$
04500 IF Q$="NO" THEN 04520
04510 GO TO 01590
04520 PRINT "O.K. PUNCH BITE SCRATCH HIT ........"
04530 FOR M=-1 TO 1
04540 FOR N=-1 TO 1
04550 IF D(G+M,H+N)=5 THEN 04610
04560 NEXT N
04570 NEXT M
04580 PRINT "NO GOOD ONE"
04590 GO TO 01590
04600 REM
04610 IF INT(RND(0)*20)+1>B(K,2) THEN 04640
04620 PRINT "TERRIBLE NO GOOD"
04630 GO TO 07000
04640 PRINT "GOOD A HIT"
04650 LET B(K,3)=B(K,3)-INT(C(1)/6)
04660 GO TO 01590
04670 REM
04680 PRINT "SWING"
04690 GOSUB 08410
04700 IF R1<2 THEN 04730
04710 PRINT "HE IS OUT OF RANGE"
04720 GO TO 07000
04730 IF R2=0 THEN 04840
04740 IF R2=1 THEN 04820
04750 IF P2=2 THEN 04790
04760 PRINT "CRITICAL HIT"
04770 LET B(K,3)=B(K,3)-INT(C(1)/2)
04780 GO TO 01590
04790 PRINT "GOOD HIT"
04800 LET B(K,3)=B(K,3)-INT(C(1)*4/5)
04810 GO TO 01590
04820 PRINT "NOT GOOD ENOUGH"
04830 GO TO 01590
04840 PRINT "MISSED TOTALY"
04850 GO TO 07000
04860 PRINT "SWHNG"
04870 GOSUB 08410
04880 IF R1<2.1 THEN 04910
04890 PRINT "HE IS OUT OF RANGE"
04900 GO TO 07000
04910 IF R2=0 THEN 05020
04920 IF R2=1 THEN 05000
04930 IF R2=2 THEN 04970
04940 PRINT "CRITICAL HIT"
04950 LET B(K,3)=B(K,3)-C(1)
04960 GO TO 01590
04970 PRINT "HIT"
04980 LET B(K,3)=B(K,3)-INT(C(1)*5/7)
04990 GO TO 01590
05000 PRINT "HIT BUT ` WELL ENOUGH"
05010 GO TO 01590
05020 PRINT "MISSED TOTALY"
05030 GO TO 07000
05040 FOR M=1 TO X
05050 IF W(M)=3 THEN 05090
05060 NEXT M
05070 PRINT "YOU DONT HAVE A DGGER"
05080 GO TO 07000
05090 GOSUB 08410
05100 IF R1>5 THEN 04710
05110 IF R2=0 THEN 05200
05120 IF R2=1 THEN 05220
05130 IF R2=2 THEN 05240
05140 PRINT "CRITICAL HIT"
05150 LET B(K,3)=B(K,3)-INT(C(1)*3/10)
05160 IF R1<2 THEN 05190
05170 LET W(J)=0
05180 LET J=0
05190 GO TO 07000
05200 PRINT "MISSED TOTALY"
05210 GO TO 05160
05220 PRINT "HIT BUT NO DAMAGE"
05230 GO TO 05160
05240 PRINT "HIT"
05250 LET B(K,3)=B(K,3)-INT(C(1)/4)
05260 GO TO 05160
05270 PRINT "SWING"
05280 GOSUB 08410
05290 IF P0<2 THEN 04720
05300 GO TO 04710
05310 IF R2=0 THEN 05420
05320 IF R2=1 THEN 05400
05330 IF R2=2 THEN 05370
05340 PRINT "CRITICAL HIT"
05350 LET B(K,3)=B(K,3)-INT(C(1)*4/9)
05360 GO TO 01590
05370 PRINT "HIT"
05380 LET B(K,3)=B(K,3)-INT(C(0)*5/11)
05390 GO TO 01590
05400 PRINT "HIT BUT NO DAMAGE"
05410 GO TO 01590
05420 PRINT "MISS"
05430 GO TO 07000
05440 REM
05450 FOR M=1 TO X
05460 IF W(M)=J THEN 05500
05470 NEXT M
05480 PRINT "NO WEAPON FOUND"
05490 GO TO 01590
05500 GOSUB 08410
05510 IF J=5 THEN 05760
05520 IF J=6 THEN 05800
05530 IF J=7 THEN 05840
05540 IF J=8 THEN 05880
05550 IF J=9 THEN 05920
05560 IF J=10 THEN 05960
05570 IF J=11 THEN 06000
05580 IF J=12 THEN 06040
05590 IF J=13 THEN 06080
05600 PRINT "AS A CLUB OR SIGHT";
05610 INPUT Q$
05620 IF Q$="SIGHT" THEN 05650
05630 IF J=14 THEN 06120
05640 GO TO 05480
05650 IF R1<10 THEN 05680
05660 PRINT "FAILED"
05670 GO TO 07000
05680 PRINT "THE MONSTER IS HURT"
05690 LET R5=1/6
05700 IF K=2 THEN 06200
05710 IF K=10 THEN 06200
05720 IF K=4 THEN 06200
05730 GOTO 06260
05740 IF INT(RND(0)*0)>0 THEN 06260
05750 GO TO 06200
05760 LET R3=10
05770 LET R4=3/7
05780 LET R5=5/11
05790 GO TO 06160
05800 LET R3=15
05810 LET R4=3/7
05820 LET R5=5/11
05821 FOR Z=1 TO 100
05822 IF W(Z)=7 THEN 5825
05823 NEXT Z
05824 GO TO 6280
05825 J=7
05826 W(Z)=0
05830 GO TO 06160
05840 LET R3=1.5
05850 LET R4=1/7
05860 LET R5=1/5
05870 GO TO 06160
05880 LET R3=4
05890 LET R4=1/10
05900 LET R5=1/8
05910 GO TO 06160
05920 LET R3=4
05930 LET R4=1/7
05940 LET R5=1/6
05950 GO TO 06160
05960 LET R3=3
05970 LET R4=1/8
05980 LET R6=1/5
05990 GO TO 06160
06000 LET R3=5
06010 LETR4=1/9
06020 LET R5=1/6
06030 GO TO 06160
06040 LET R3=8
06050 LET R4=1/9
06060 LET R5=1/4
06070 GO TO 06160
06080 LET R3=6
06090 LET R4=1/3
06100 LET R5=2/3
06110 GO TO 06160
06120 LET R3=1.5
06130 LET R4=1/3
06140 LET R5=1/2
06150 GO TO 06160
06160 IF R1>R3 THEN 04710
06170 IF R2=0 THEN 06280
06180 IF R2=1 THEN 06260
06190 IF R2=2 THEN 06230
06200 PRINT "CRITICAL HIT"
06210 LET B(K,3)=B(K,3)-INT(C(1)*R5)
06220 GO TO 06300
06230 PRINT "HIT"
06240 LET B(K,3)=B(K,3)-INT(C(1)*R4)
06250 GO TO 06300
06260 PRINT "HIT BUT NO DAMAGE"
06270 GO TO 06300
06280 PRINT "MISS"
06290 GO TO 06300
06300 IF W(J)=14 THEN 07000
06310 FOR M=1 TO X
06320 IF W(M)=J THEN 06340
06330 NEXT M
06340 LET W(M)=0
06350 IF J<>7 THEN 06360
06355 GO TO 06370
06360 LET J=0
06370 IF R2>0 THEN 01590
06380 GO TO 07000
06390 REM LOOKING
06400 FOR M=-5 TO 5
06410 FOR N=-5 TO 5
06420 IF M+G>25 THEN 06510
06430 IF M+G<0 THEN 06510
06440 IF H+N>25 THEN 06510
06450 IF H+N<0 THEN 06510
06460 IF M<>0 THEN 06480
06470 IF N=0 THEN 06590
06480 IF D(M+G,N+H)=2 THEN 06550
06485 IF D(M+G,N+H)=7 OR D(M+G,N+H)=8 THEN 06550
06490 IF D(M+G,N+H)=3 THEN 06570
06500 PRINT D(M+G,N+H);
06510 NEXT N
06520 PRINT
06530 NEXT M
06540 GO TO 07000
06550 PRINT 0;
06560 GO TO 06510
06570 PRINT 1;
06580 GO TO 06510
06590 PRINT 9;
06600 GO TO 06510
06610 REM SAVE GAME
06615 RESTORE #7
06620 WRITE #7,D
06630 WRITE #7,X
06640 WRITE #7,J
06650 WRITE #7,G
06660 WRITE #7,H
06670 WRITE #7,K
06680 FOR M=0 TO 25
06690 FOR N=0 TO 25
06700 WRITE #7,D(M,N)
06710 NEXT N
06720 NEXT M
06730 FOR M=1 TO X
06740 WRITE #7,W(M)
06750 NEXT M
06760 FOR M=1 TO 10
06770 WRITE #7,B$(M)
06780 FOR N=1 TO 6
06790 WRITE #7,B(M,N)
06800 NEXT N
06810 NEXT M
06820 FOR M=0 TO 7
06830 WRITE #7,C$(M)
06840 WRITE #7,C(M)
06850 NEXT M
06860 WRITE #7,N$
06870 WRITE #7,F1
06880 FOR M=1 TO 15
06890 WRITE #7,I$(M)
06900 NEXT M
06910 WRITE #7,X3
06920 FOR M=1 TO X3
06930 WRITE #7,X4(M)
06940 NEXT M
06950 WRITE #7,X1
06960 FOR M=1 TO X1
06970 WRITE #7,X2(M)
06971 NEXT M
06972 WRITE #7,F2
06980 WRITE #7,F1
06985 GO TO 01590
06990 STOP
07000 IF K1=-1 THEN 08290
07010 IF C(0)<2 THEN 08160
07020 IF K>0 THEN 07160
07030 IF G<>1 THEN 07110
07040 IF H<>12 THEN 07110
07050 PRINT "SO YOU HAVE RETURNED"
07060 IF C(7)<100 THEN 07110
07070 LET C(7)=C(7)-100
07080 PRINT "WANT TO BUY MORE EQUIPMENT"
07090 INPUT Q$
07100 IF Q$="YES" THEN 07130
07110 IF RND(0)*20>10 THEN 07830
07120 GO TO 01590
07130 PRINT "YOUR H.P. ARE RESTORED 2 POINTS"
07140 LET C(0)=C(0)+2
07150 GO TO 00830
07160 GOSUB 08410
07170 IF B(K,3)<1 THEN 08290
07180 IF R1<2.0 THEN 07600
07190 IF P0>10 THEN 01590
07200 REM HE IS COMMING
07210 IF ABS(R8)>ABS(R9) THEN 07260
07220 LET F5=0
07230 IF M=1 THEN 07270
07240 LET F6=-(R9/ABS(R9))
07250 GO TO 07280
07260 LET F5=-(R8/ABS(R8))
07270 LET F6=0
07280 FOR Q=0 TO 8
07290 IF Q=2 OR Q=5 THEN 07320
07300 IF F1+F5<0 OR F1+F5>25 OR F2+F6<0 OR F2+6>25 THEN 07320
07310 IF D(F1+F5,F2+F6)=Q THEN 07340
07320 NEXT Q
07330 GO TO 07510
07340 IF Q=0 THEN 07430
07345 IF Q=6 OR Q=7 OR Q=8 THEN 07430
07350 IF Q=2 THEN 07530
07360 IF Q=3 OR Q=4 THEN 07380
07370 GO TO 07510
07380 REM "THROUGH THE DOOR"
07390 IF D(F1+2*F5,F2+2*F6)<>0 THEN 07510
07400 LET F5=F5*2
07410 LET F6=F6*2
07420 GO TO 07440
07430 REM "CLOSER"
07440 LET D(F1,F2)=0
07450 LET F1=F1+F5
07460 LET F2=F2+F6
07470 LET D(F1,F2)=5
07480 GOSUB 08410
07490 REM
07500 GO TO 01590
07510 REM "NOWHERE"
07520 GO TO 07490
07530 PRINT "GOOD WORK YOU LED HIM INTO A TRAP"
07540 LET K1=-1
07550 LET B(K,6)=0
07560 GO TO 07000
07570 LET R8=-.5*R8
07580 LET R9=-.5*R9
07590 GO TO 07420
07600 PRINT B$(K);"WATCH IT"
07610 FOR M=1 TO X
07620 IF W(M)=10 THEN 07720
07630 IF W(M)=9 THEN 07700
07640 IF W(M)=8 THEN 07680
07650 NEXT M
07651 A1=6+C(2)
07652 GO TO 07730
07660 LET A1=8+C(2)
07670 GO TO 07730
07680 LET A1=12+C(2)
07690 GO TO 07730
07700 LET A1=16+C(2)
07710 GO TO 07730
07720 LET A1=20+C(2)
07730 IF RND(0)*40>A1 THEN 07790
07740 IF RND(0)*2>1 THEN 07770
07750 PRINT "HE MISSED"
07760 GO TO 01590
07770 PRINT "HE HIT YOU BUT NOT GOOD ENOUGH"
07780 GO TO 07000
07790 PRINT "MONSTER SCORES A HIT"
07800 LET C(0)=C(0)-INT(RND(0)*B(K,2)+1)
07810 PRINT "H.P.=";C(0)
07820 GO TO 07000
07830 FOR Z7=1 TO 50
07840 FOR M=1 TO 10
07850 IF B(M,5)>=1 AND RND(0)>.925 THEN 08000
07860 NEXT M
07870 NEXT Z7
07880 PRINT "ALL MONSTERS DEAD"
07890 PRINT "RESET";
07900 INPUT Q$
07910 IF Q$="YES" THEN 07930
07920 STOP
07930 REM
07931 LET JR=JR+1
07932 FOR M=1 TO 10
07950 LET B(M,3)=B(M,4)*J4
07960 LET B(M,6)=B(M,5)*J4
07970 NEXT M
07980 LET C(0)=C(0)+5
07990 GO TO 01590
08000 LET K=M
08010 M1=INT(RND(0)*7+1)
08015 FOR M=-M1 TO M1
08020 FOR N=-M1 TO M1
08025 IF ABS(M)<=2 OR ABS(N)<=2 THEN 08080
08030 IF G+M<1 THEN 08080
08040 IF H+N<1 THEN 08080
08050 IF G+M>25 THEN 08080
08060 IF H+N>25 THEN 08080
08065 IF RND(0)>.7 THEN 08080
08070 IF D(G+M,H+N)=0 THEN 08110
08080 NEXT N
08090 NEXT M
08100 GO TO 08010
08110 REM
08120 LET D(G+M,H+N)=5
08130 LET F1=G+M
08140 LET F2=H+N
08150 GO TO 07000
08160 IF C(0)<1 THEN 08190
08170 PRINT "WATCH IT H.P.=";C(0)
08180 GO TO 07020
08190 IF C(0)<0 THEN 08250
08200 IF C(3)<9 THEN 08230
08210 PRINT "H.P.=0 BUT CONST. HOLDS"
08220 GO TO 07020
08230 PRINT "SORRY YOUR DEAD"
08240 STOP
08250 IF C(3)<9 THEN 08230
08260 LET C(3)=C(3)-2
08270 LET C(0)=C(0)+1
08280 GO TO 08190
08290 K1 = 0
08300 LET C(7)=C(7)+B(K,6)
08310 LET D(F1,F2)=0
08320 LET F1=0
08330 LET F2=0
08340 PRINT "GOOD WORK YOU JUST KILLED A ";B$(K)
08350 PRINT "AND GET ";B(K,6);"GOLD PIECES"
08355 IF J6=1 GO TO 08370
08360 LET B(K,5)=0
08370 PRINT "YOU HAVE";C(7);" GOLD "
08380 LET B(K,6)=0
08381 IF J6<>1 GO TO 08390
08382 B(K,3)=B(K,4)*B(K,1)/1
08383 B(K,6)=B(K,5)*B(K,1)
08390 LET K=0
08400 GO TO 07000
08410 REM RANGE AND HIT CHECK"
08420 FOR M=-25 TO 25
08430 FOR N=-25 TO 25
08440 IF G+M>25 THEN 08490
08450 IF G+M<0 THEN 08490
08460 IF H+N>25 THEN 08490
08470 IF H+N<0 THEN 8490
08480 IF D(G+M,H+N)=5 THEN 08520
08490 NEXT N
08500 NEXT M
08510 LET R1=1000
08520 LET R8=M
08530 LET R9=N
08540 IF R1=1000 THEN 08570
08550 LET R1=SQR(M*M+N*N)
08570 IF INT(RND(0)*20 +1)>18 THEN 08620
08580 IF RND(0)*20>B(K,2)-C(2)/3 THEN 08640
08590 IF RND(0)*2>1.7 THEN 08660
08600 LET R2=0
08610 RETURN
08620 LET R2=3
08630 RETURN
08640 LET R2=2
08650 RETURN
08660 LET R2=1
08670 RETURN
08680 PRINT "MAGIC"
08690 IF J<>0 THEN 08740
08700 IF C$(0)="CLERIC" THEN 08760
08710 IF C$(0)="WIZARD" THEN 09310
08720 PRINT "YOU CANT TSE MAGIC YOUR NOR A M.U."
08730 GO TO 07000
08740 PRINT "YOU CANT USE MAGIC WITH WEAPON IN HAND"
08750 GO TO 07000
08760 PRINT "CLERICAL SPELL #";
08770 INPUT Q
08780 FOR M=1 TO X1
08790 IF Q=X2(M) THEN 08830
08800 NEXT M
08810 PRINT "YOU DONT HAVE THAT SPELL"
08820 GO TO 07000
08830 X3=X2(M)
08835 X2(M)=0
08839 IF X3=1 THEN 08950
08840 IF X3=2 THEN 09030
08850 IF X3=3 THEN 09060
08860 LET Q=2
08870 IF X3=4 THEN 09090
08880 LET Q=3
08890 IF X3=5 THEN 09200
08900 IF X3=6 THEN 09240
08910 IF X3=7 THEN 09280
08920 IF X3=8 THEN 09090
08930 IF X3=9 THEN 09720
08940 GO TO 08810
08950 IF RND(0)*3 > 1 THEN 09000
08960 PRINT "DONE"
08970 LET X2(M)=0
08980 LET K1=-1
08990 GO TO 07000
09000 PRINT "FAILED"
09010 LET X2(M)=0
09020 GO TO 07000
09030 PRINT "DONE"
09040 LET B(K,3)=B(K,3)-4
09050 GO TO 09010
09060 LET C(3)=C(3)+3
09070 LET X2(M)=0
09080 GOTO 09010
09090 LET X2(M)=0
09100 FOR M=-3 TO 3
09110 FOR N=-3 TO 3
09120 IF G+M <0 OR G+M >25 OR H+N<0 OR H+N > 25 THEN 09140
09130 IF D(G+M,H+N)=Q THEN 09180
09140 NEXT N
09150 NEXT M