mirror of
https://github.com/inexorabletash/jsbasic.git
synced 2024-09-07 20:54:32 +00:00
feature: add "The Horrible Rotten Dancing Dragon" game (#49)
* add The Horrible Rotten Dancing Dragon game
This commit is contained in:
parent
f70fe78d0a
commit
240fc1e2b9
@ -11,6 +11,7 @@ sample.charset Charset Test
|
|||||||
|
|
||||||
simple.pong SIMPLE.PONG
|
simple.pong SIMPLE.PONG
|
||||||
sample.adventure Text Adventure (Floyd McWilliams)
|
sample.adventure Text Adventure (Floyd McWilliams)
|
||||||
|
sample.dragon The Horrible Rotten Dancing Dragon (Softline by Ken Rose)
|
||||||
sample.pacman (Not Really) ASCII Pac-Man (Michael Kemp)
|
sample.pacman (Not Really) ASCII Pac-Man (Michael Kemp)
|
||||||
sample.puzzler Puzzler (Gregg Buntin)
|
sample.puzzler Puzzler (Gregg Buntin)
|
||||||
sample.hangman Hangman (Mike Gleason)
|
sample.hangman Hangman (Mike Gleason)
|
||||||
|
346
samples/sample.dragon.txt
Normal file
346
samples/sample.dragon.txt
Normal file
@ -0,0 +1,346 @@
|
|||||||
|
5 REM * * * The Horrible Rotten Dancing Dragon ... Strikes (Softline by Ken Rose)* * *
|
||||||
|
10 REM ANOTHER ADVENTURE FROM SOFTLINE
|
||||||
|
15 REM WRITTEN FOR THE ATARI BUT EASILY TRANSPORTABLE IF YOU READ THE ACCOMPANYING ARTICLE
|
||||||
|
20 HOME:REM THIS CLEARS THE SCREEN
|
||||||
|
30 DIM N(34),S(34),E(34),W(34),OB(7),RD(34)
|
||||||
|
40 OB(1)=5:OB(2)=22:OB(3)=25:OB(4)=31:OB(5)=27:OB(6)=33:OB(7)=32
|
||||||
|
50 REM READING DATA INTO THE ARRAYS
|
||||||
|
60 FOR A=1 TO 33
|
||||||
|
70 READ X:N(A)=X:READ X:S(A)=X:READ X:E(A)=X:READ X:W(A)=X:X=0:RD(A)=0
|
||||||
|
80 NEXT A
|
||||||
|
90 R=1:GOSUB 1500:GOTO 620
|
||||||
|
100 REM PARSER
|
||||||
|
110 V1$="":N1$=""
|
||||||
|
120 PRINT :PRINT "WHAT NOW? ";:INPUT "";A$
|
||||||
|
130 HOME : PRINT DES$
|
||||||
|
140 FOR A = 1 TO LEN (A$)
|
||||||
|
150 IF MID$ (A$,A,1) = " " THEN X = A - 1: A = 0: GOTO 180
|
||||||
|
160 NEXT A
|
||||||
|
170 V1$ = A$: GOTO 300
|
||||||
|
180 V1$=LEFT$ (A$,X)
|
||||||
|
190 IF RIGHT$ (A$, LEN(A$) - X) = " " THEN N1$ = "": GOTO 300:REM BE SURE THERE IS A SPACE BETWEEN THE FIRST PAIR OF QUOTES AND NO SPACE BETWEEN THE SECOND PAIR OF QUOTES
|
||||||
|
200 N1$ = RIGHT$ (A$, LEN (A$) - (X+1)): GOTO 300
|
||||||
|
300 REM VERB-HANDLING ROUTINE
|
||||||
|
310 IF V1$="GO" THEN V1$=N1$:GOTO 500
|
||||||
|
320 IF V1$="NORTH" OR V1$="N" OR V1$="SOUTH" OR V1$="S" OR V1$="EAST" OR V1$="E" OR V1$="WEST" OR V1$="W" THEN GOTO 500
|
||||||
|
330 IF V1$="INVENTORY" OR V1$="INV" OR V1$="I" THEN GOTO 700
|
||||||
|
340 IF V1$="GET" OR V1$="TAKE" THEN GOTO 800
|
||||||
|
350 IF V1$="PUSH" OR V1$="PRESS" THEN GOTO 900
|
||||||
|
360 IF V1$="DROP" THEN GOTO 1000
|
||||||
|
370 IF V1$="QUIT" THEN GOTO 3700
|
||||||
|
380 IF V1$="HIT" OR V1$="STRIKE" OR V1$="BEAT" OR V1$="KILL" THEN GOTO 1200
|
||||||
|
390 IF V1$="EAT" THEN GOSUB 1300:GOTO 100
|
||||||
|
400 IF V1$="FEED" OR V1$="GIVE" THEN GOTO 1400
|
||||||
|
410 IF V1$="DANCE" THEN GOTO 1100
|
||||||
|
420 IF V1$="LOOK" THEN HOME: RD(R)=0: GOTO 610
|
||||||
|
490 PRINT :PRINT "I DON'T KNOW HOW TO ";V1$;".":GOTO 100
|
||||||
|
500 REM MOVING AROUND ROUTINE
|
||||||
|
510 X=R:REM STORING CURRENT ROOM NUMBER
|
||||||
|
520 IF V1$="NORTH" OR V1$="N" THEN R = N(R)
|
||||||
|
530 IF V1$="SOUTH" OR V1$="S" THEN R = S(R)
|
||||||
|
540 IF V1$="EAST" OR V1$="E" THEN R = E(R)
|
||||||
|
550 IF V1$="WEST" OR V1$="W" THEN R = W(R)
|
||||||
|
560 IF X=28 AND R=32 THEN GOTO 590
|
||||||
|
570 IF R=28 AND S(28)=32 THEN GOTO 3570:REM RETURNING TO DRAGON'S CAVE
|
||||||
|
580 IF X=28 THEN GOTO 3590:REM TRAPPED IN DRAGON'S CAVE
|
||||||
|
590 IF R>0 THEN X=R:HOME:GOTO 610:REM YOU'VE MOVED AND X WILL BE USED IN SEARCHING FOR OBJECTS
|
||||||
|
600 IF R=0 THEN PRINT :PRINT "YOU CAN'T MOVE THAT WAY (I THINK).":R=X:X=0:GOTO 100:REM ORIGINAL ROOM VALUE SETUP
|
||||||
|
610 IF R>19 THEN GOTO 618
|
||||||
|
612 ON R GOSUB 1510,1530,1550,1570,1590,1610,1630,1650,1670,1690,1710,1730,1750,1770,1790,1810,1830,1850,1870
|
||||||
|
615 GOTO 620
|
||||||
|
618 ON (R-19) GOSUB 1890,1910,1930,1950,1970,1990,2010,2030,2050,2070,2090,2110,2130,2150
|
||||||
|
620 PRINT :PRINT "OBJECTS HERE ARE:":PRINT
|
||||||
|
630 X=R:GOSUB 2300
|
||||||
|
640 X=0
|
||||||
|
650 PRINT "EXITS: ";
|
||||||
|
651 IF N(R)>0 THEN PRINT "NORTH ";
|
||||||
|
652 IF S(R)>0 THEN PRINT "SOUTH ";
|
||||||
|
653 IF E(R)>0 THEN PRINT "EAST ";
|
||||||
|
654 IF W(R)>0 THEN PRINT "WEST";
|
||||||
|
655 PRINT
|
||||||
|
690 GOTO 100
|
||||||
|
700 REM INVENTORY ROUTINE
|
||||||
|
710 X=34
|
||||||
|
720 PRINT :PRINT "YOU ARE CARRYING: ":PRINT
|
||||||
|
730 GOSUB 2300
|
||||||
|
740 GOTO 100
|
||||||
|
800 REM GET ROUTINE
|
||||||
|
810 IF N1$="" THEN PRINT :PRINT "DON'T BE SILLY, I NEED A NOUN!":GOTO 890
|
||||||
|
820 GOSUB 2200
|
||||||
|
830 IF OB(X)=R OR OB(X)=34 THEN GOTO 850
|
||||||
|
840 PRINT :PRINT "YOU CAN'T, AT THE MOMENT.":PRINT :GOTO 890
|
||||||
|
850 IF X=3 AND OB(7)<34 THEN GOTO 3410
|
||||||
|
860 OB(X)=34
|
||||||
|
870 IF OB(3)=34 THEN GOTO 3400
|
||||||
|
880 PRINT :PRINT "YOU'VE GOT THE ";N1$;".":PRINT
|
||||||
|
890 X=0:GOTO 100
|
||||||
|
900 REM PRESS ROUTINE
|
||||||
|
910 IF N1$="" THEN PRINT :PRINT "DON'T BE SILLY, I NEED A NOUN!":GOTO 890
|
||||||
|
920 IF R=11 OR R=18 THEN GOTO 940
|
||||||
|
930 GOTO 990
|
||||||
|
940 IF R=18 THEN GOTO 980
|
||||||
|
950 IF OB(1)=34 THEN GOTO 3060
|
||||||
|
960 IF N1$="BUTTON" THEN GOTO 3050
|
||||||
|
970 GOTO 3040
|
||||||
|
980 IF N1$="ROCK" OR N1$="STONE" THEN GOTO 3220
|
||||||
|
990 PRINT :PRINT "I CAN'T ";V1$;" A ";N1$;".":PRINT :GOTO 100
|
||||||
|
1000 REM ROUTINE TO DROP OBJECTS
|
||||||
|
1010 GOSUB 2200
|
||||||
|
1020 IF OB(X)=34 THEN GOTO 1040
|
||||||
|
1030 PRINT :PRINT "I'M NOT CARRYING THE ";N1$;".":PRINT :GOTO 1080
|
||||||
|
1040 OB(X)=R
|
||||||
|
1050 IF N1$="WAGON" AND OB(7)=R THEN GOTO 3420
|
||||||
|
1060 PRINT :PRINT "I'VE DROPPED THE ";N1$;".":PRINT
|
||||||
|
1070 IF R=28 AND OB(X)=28 THEN OB(X)=0:GOTO 3580:REM THE DRAGON'S GONNA EAT IT
|
||||||
|
1080 X=0
|
||||||
|
1090 GOTO 100
|
||||||
|
1100 REM DANCE ROUTINE (SO TO SPEAK)
|
||||||
|
1110 PRINT: PRINT "YOU START TO HUM A CATCHY LITTLE TUNE. YOU GRACEFULLY LEAP UP IN THE AIR, DO A PIROUETTE, LAND,";
|
||||||
|
1115 PRINT "DO A CARTWHEEL,":PRINT "AND TAKE A BOW."
|
||||||
|
1120 IF R=28 THEN GOTO 3530
|
||||||
|
1130 PRINT :PRINT "FURRY LITTLE CREATURES APPEAR, APPLAUD FURRIOUSLY, AND LEAVE."
|
||||||
|
1140 GOTO 100
|
||||||
|
1200 REM BEATING AND HITTING ROUTINES
|
||||||
|
1210 IF N1$="" THEN PRINT :PRINT "OKAY, BUT YOU HAVE TO TELL ME WHAT IT IS YOU WANT TO ";V1$;".":PRINT :GOTO 100
|
||||||
|
1220 IF R=9 AND OB(7)<34 THEN GOTO 3310
|
||||||
|
1230 IF R=18 AND OB(2)=34 THEN GOTO 3230
|
||||||
|
1240 IF R=18 THEN GOTO 3250
|
||||||
|
1250 IF N1$="DRUM" OR N1$="DRUMSTICK" THEN GOTO 3320
|
||||||
|
1260 IF R=28 AND OB(2)=34 THEN GOTO 3550
|
||||||
|
1270 IF R=28 THEN GOTO 3560
|
||||||
|
1280 PRINT :PRINT "YOU CAN'T ";V1$;" A ";N1$;" HERE.":GOTO 100
|
||||||
|
1300 REM EATING ROUTINES
|
||||||
|
1310 IF N1$="" THEN PRINT :PRINT "TSK, TSK, PLEASE SUPPLY A NOUN.":PRINT :RETURN
|
||||||
|
1320 IF N1$="SANDWICH" AND OB(5)=34 THEN PRINT :PRINT "YUM, YUM, THAT TASTED GOOD.":OB(5)=0:RETURN
|
||||||
|
1320 IF N1$="MCRIB" AND OB(5)=34 THEN PRINT :PRINT "YUM, YUM, THAT TASTED GOOD.":OB(5)=0:RETURN
|
||||||
|
1340 IF N1$="SANDWICH" OR N1$="MCRIB" THEN PRINT :PRINT "YOU DON'T HAVE IT.":RETURN
|
||||||
|
1350 IF N1$="DRUMSTICK" AND OB(4)=34 THEN PRINT :PRINT "YUCK, THAT TASTED AWFUL.":OB(4)=0:RETURN
|
||||||
|
1360 IF N1$="DRUMSTICK" THEN PRINT :PRINT "HOW CAN YOU, YOU DON'T HAVE IT.":RETURN
|
||||||
|
1370 PRINT :PRINT "DON'T BE SILLY. YOU CAN'T EAT THAT!":RETURN
|
||||||
|
1400 REM GIVING OR FEEDING ROUTINE
|
||||||
|
1410 GOSUB 2200
|
||||||
|
1420 IF OB(X)=34 THEN GOTO 1440
|
||||||
|
1430 PRINT :PRINT "YOU CAN'T ";V1$;" SOMETHING YOU" :PRINT "DON'T HAVE!":GOTO 100
|
||||||
|
1440 IF R=28 THEN OB(X)=0:GOTO 3580:REM THE DRAGON'S GONNA EAT IT
|
||||||
|
1450 PRINT :PRINT "I DON'T KNOW HOW TO TELL YOU THIS, BUT NO ONE WANTS IT.":GOTO 100
|
||||||
|
1500 REM ROOM DESCRIPTION SUBROUTINE
|
||||||
|
1510 DES$="YOU ARE IN A FOREST":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1520 PRINT :PRINT "IT IS A WARM SPRING DAY IN THE FOREST PRIMEVAL. YOU ARE DRESSED IN A JERKIN. CUTE LITTLE";
|
||||||
|
1522 PRINT " FURRY CREATURES BOUND THROUGH THE WOODS.":RD(R)=1:RETURN
|
||||||
|
1530 DES$="YOU ARE IN A LEAFY FOREST":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1535 PRINT :PRINT "THE LEAVES IN THE TREES ARE QUITE UNUSUAL SINCE THIS IS SPRING.":PRINT
|
||||||
|
1540 PRINT "THESE ARE LEAF SPRINGS.":RD(R)=1:RETURN
|
||||||
|
1550 DES$="YOU ARE IN A LEAFY GLADE":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1560 PRINT :PRINT "AREN'T YOU GLAD YOU'RE IN THE GLADE?":RD(R)=1:RETURN
|
||||||
|
1570 DES$="YOU ARE IN THE PINE FOREST":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1575 PRINT :PRINT "THE WIND BLOWING THROUGH THE PINES IS SINGING A SONG. YOU LISTEN CLOSELY AND CAN MAKE OUT ";
|
||||||
|
1577 PRINT "SOME OF THE WORDS.":PRINT :PRINT "THEY ARE, 'I OPINE A DRAGON TO SWEETEN MAKE SURE THAT HE'S EATEN'."
|
||||||
|
1580 RD(R)=1:RETURN
|
||||||
|
1590 DES$="ALL THE TREES ARE DEAD HERE":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1600 RD(R)=1:RETURN :REM PUT YOUR OWN CLEVER MESSAGE ON THIS LINE
|
||||||
|
1610 DES$="YOU ARE ON A PAVED ROAD":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1615 PRINT :PRINT "TO THE SOUTH IS THE NORTH SIDE OF A DRAWBRIDGE. THE BRIDGE LOOKS PRETTY RICKETY."
|
||||||
|
1620 RD(R)=1:RETURN
|
||||||
|
1630 DES$="YOU ARE IN THE THRONE ROOM":PRINT DES$:GOSUB 3100
|
||||||
|
1640 RETURN
|
||||||
|
1650 DES$="YOU ARE IN THE ANTECHAMBER":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1660 PRINT :PRINT "THIS, AS YOU'LL FIND, IS NOT A VERY LARGE CASTLE. IN FACT IT HAS ONLY THREE (I THINK) ";
|
||||||
|
1665 PRINT "ROOMS.":RD(R)=1:RETURN
|
||||||
|
1670 DES$="THIS IS THE KING'S BEDROOM":PRINT DES$:IF OB(3)=34 THEN PRINT :PRINT "THE ROOM IS EMPTY.":RETURN
|
||||||
|
1680 PRINT :PRINT "THE POOR KING HAS BEEN EXPOSED TO WEREWOLF SIMPLEX II AND IS SLOWLY TURNING INTO ";
|
||||||
|
1685 PRINT "A WOLF.":PRINT :PRINT "HE EXPLAINS THAT UNLESS CURED BY THE MAGIC SPRING HE IS DOOMED SINCE HE CAN'T "
|
||||||
|
1687 PRINT "LEAVE THE PALACE.":RD(R)=1:RETURN
|
||||||
|
1690 DES$="MORE FOREST":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1700 PRINT :PRINT "JUST MORE AND MORE FOREST":RD(R)=1:RETURN
|
||||||
|
1710 DES$="NORTH END OF BRIDGE":PRINT DES$:GOSUB 3000
|
||||||
|
1720 RETURN
|
||||||
|
1730 DES$="CAUSEWAY TO CASTLE":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1740 PRINT :PRINT "TO THE NORTH YOU SEE A SMALL CASTLE. SMALL DOES NOT DO IT JUSTICE. IT IS REALLY SMALL. ";
|
||||||
|
1745 DES$="IF YOU WANT TO SEE ":PRINT "HOW SMALL, GO NORTH.":RD(R)=1:RETURN
|
||||||
|
1750 DES$="AND YET EVEN MORE FOREST":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1760 PRINT :PRINT "IF YOU THINK IT'S DULL READING ABOUT THE FOREST, YOU SHOULD TRY YOUR HAND AT WRITING ABOUT ";
|
||||||
|
1765 PRINT "IT.":RD(R)=1:RETURN
|
||||||
|
1770 DES$="DARK FOREST":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1780 PRINT :PRINT "THERE IS SOMETHING VERY STRANGE HERE. THE GROUND SOUNDS HOLLOW!":RD(R)=1:RETURN
|
||||||
|
1790 DES$="SOUTH SIDE OF DRAWBRIDGE.":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1800 GOSUB 3070:RETURN
|
||||||
|
1810 DES$="GENTLY ROLLING HILLS":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1820 PRINT :PRINT "THE HILLS ARE ALIVE WITH THE SOUND OF MUSIC. THEY SING:":PRINT :PRINT "DON'T PUT YOUR SHOULDER"
|
||||||
|
1825 PRINT "TO THE BOULDER,":PRINT "BUT TEST YOUR METTLE,":PRINT "AGAINST THE KETTLE.":RD(R)=1:RETURN
|
||||||
|
1830 DES$="VOLCANIC HIGHLANDS":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1840 PRINT :PRINT "ALL ADVENTURE GAMES HAVE TO HAVE AT LEAST ONE VOLCANO. THIS VOLCANO IS ALL POOPED OUT AND ";
|
||||||
|
1845 PRINT "WILL NOT ERUPT DURING THIS GAME.":RD(R)=1:RETURN
|
||||||
|
1850 DES$="VOLCANO VALLEY":PRINT DES$:IF N(18)=14 THEN RETURN :REM IF N(19)=14 THE SECRET PASSAGE IS OPEN
|
||||||
|
1860 GOSUB 3210:RETURN
|
||||||
|
1870 DES$="MARSHY SWAMP":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1880 PRINT :PRINT "A SMALL DINOSAUR STICKS ITS TONGUE OUT AT YOU FROM BEHIND A FERN. IT THEN DARTS AWAY."
|
||||||
|
1885 RD(R)=1:RETURN
|
||||||
|
1890 DES$="MORE MARSHY SWAMP":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1900 PRINT :PRINT "THE SMALL DINOSAUR REAPPEARS AND HURLS A ROCK AT YOU. THE ROCK MISSES AND THE DINOSAUR DARTS ";
|
||||||
|
1905 PRINT "AWAY.":RD(R)=1:RETURN
|
||||||
|
1910 DES$="MUSHY SWAMP":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1920 PRINT :PRINT "THE SMALL DINOSAUR TAUNTS YOU BY SAYING (IN DINOSAUR LANGUAGE):":PRINT :PRINT "'NYAH, ";
|
||||||
|
1925 PRINT "NYAH, THE DRAGON'S GONNA ":PRINT "GET YOU!'":RD(R)=1:RETURN
|
||||||
|
1930 DES$="A PLAIN":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1940 PRINT :PRINT "OUTSIDE OF A RUSTY SWORD, THERE IS NOTHING UNUSUAL HERE.":RD(R)=1:RETURN
|
||||||
|
1950 DES$="PLAIN PLAIN":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1960 PRINT :PRINT "NOTHING UNUSUAL HERE.":RD(R)=1:RETURN
|
||||||
|
1970 DES$="PLANE PLAIN PLAIN":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
1980 PRINT :PRINT "NOT ONLY IS NOTHING UNUSUAL HERE, BUT IT'S VERY FLAT HERE.":RD(R)=1:RETURN
|
||||||
|
1990 DES$="THE LAND OF THE MAGIC SPRING":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
2000 PRINT :PRINT "A GORGEOUS RAINBOW ARCHES ACROSS THE SKY AND PINK EGRETS FLAP HAPPILY BY. A SIGN PAINTED ";
|
||||||
|
2005 PRINT "ON THE WALL SAYS:":PRINT "'SATISFACTION GUARANTEED OR YOUR MONEY BACK!'":RD(R)=1:RETURN
|
||||||
|
2010 DES$="NONDESCRIPT LAND":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
2020 PRINT :PRINT "I SIMPLY CAN'T DESCRIBE A NONDESCRIPT LAND.":RD(R)=1:RETURN
|
||||||
|
2030 DES$="BREAK LAND":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
2040 PRINT :PRINT "LOOKING AROUND YOU SEE PICNIC TABLES AND GARBAGE CANS OVERFLOWING WITH LITTER. ";
|
||||||
|
2045 PRINT "HOWEVER, IT APPEARS THAT YOU FRIGHTENED SOMEONE OR SOMETHING AWAY AS THEY LEFT THEIR LUNCH ON THE ";
|
||||||
|
2047 PRINT "TABLE.":RD(R)=1:RETURN
|
||||||
|
2050 DES$="LAIR OF THE DRAGON":PRINT DES$:GOTO 3500:REM OFF TO THE DRAGON ROUTINES
|
||||||
|
2060 REM DON'T NEED SECONDARY DESCRIPTIONS HERE
|
||||||
|
2070 DES$="TWISTY LITTLE MAZES":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
2080 PRINT :PRINT "JUST KIDDING. NO MAZES IN THIS GAME. IF YOU WANT TO SEE MY FEELING ON MAZES SEE THE LAST ";
|
||||||
|
2085 PRINT "ISSUE OF 'SOFTLINE'.":RD(R)=1:RETURN
|
||||||
|
2090 DES$="ENTRANCE TO MAGIC LAND":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
2100 PRINT :PRINT "MAGIC LAND IS TOO GORGEOUS FOR WORDS.":RD(R)=1:RETURN
|
||||||
|
2110 DES$="COLONEL'S CAVERN":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
2120 PRINT :PRINT "THIS APPEARS TO HAVE BEEN SOME SORT OF QUICK FOOD PLACE AT ONE TIME. THERE IS THE SMELL OF ";
|
||||||
|
2125 PRINT "GREASE IN THE AIR.":RD(R)=1:RETURN
|
||||||
|
2130 DES$="VERY SECRET CAVE":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
2140 PRINT :PRINT "SOMEONE HAS SPRAY PAINTED THIS CAVE AND SCRAWLED GRAFFITI ALL OVER THE WALL. I WON'T ";
|
||||||
|
2145 PRINT "GIVE ANY MORE DETAILS ":PRINT "AS I'M NOT THAT SORT OF COMPUTER.":RD(R)=1:RETURN
|
||||||
|
2150 DES$="BOOM BOOM ROOM":PRINT DES$:IF RD(R)=1 THEN RETURN
|
||||||
|
2160 PRINT :PRINT "ISN'T THAT RICH?":RD(R)=1:RETURN
|
||||||
|
2200 REM SUBROUTINE TO CHECK NOUNS
|
||||||
|
2205 X=0
|
||||||
|
2210 IF N1$="STICK" THEN X=1
|
||||||
|
2220 IF N1$="SWORD" THEN X=2
|
||||||
|
2230 IF N1$="SPRING" THEN X=3
|
||||||
|
2240 IF N1$="DRUMSTICK" THEN X=4
|
||||||
|
2250 IF N1$="MCRIB" OR N1$="SANDWICH" THEN X=5
|
||||||
|
2260 IF N1$="DRUM" THEN X=6
|
||||||
|
2270 IF N1$="WAGON" THEN X=7
|
||||||
|
2275 IF X=0 THEN PRINT "BE REALISTIC":POP:GOTO 100
|
||||||
|
2280 RETURN
|
||||||
|
2300 REM SUBROUTINE TO CHECK NOUNS
|
||||||
|
2310 IF X=OB(1) THEN PRINT "A STICK":Y=1
|
||||||
|
2320 IF X=OB(2) THEN PRINT "A SWORD":Y=1
|
||||||
|
2330 IF X=OB(3) THEN PRINT "A MAGIC SPRING":Y=1
|
||||||
|
2340 IF X=OB(4) THEN PRINT "A DRUMSTICK":Y=1
|
||||||
|
2350 IF X=OB(5) THEN PRINT "A MCRIB SANDWICH":Y=1
|
||||||
|
2360 IF X=OB(6) THEN PRINT "A TOY DRUM":Y=1
|
||||||
|
2370 IF X=OB(7) THEN PRINT "A DRAGON WAGON":Y=1
|
||||||
|
2380 IF Y=0 THEN PRINT "NOTHING"
|
||||||
|
2390 PRINT
|
||||||
|
2400 Y=0
|
||||||
|
2410 RETURN
|
||||||
|
2500 REM THESE ARE THE ROOM DATA STATEMENTS
|
||||||
|
2510 DATA 0,6,2,0
|
||||||
|
2520 DATA 0,0,3,1
|
||||||
|
2530 DATA 0,0,4,2
|
||||||
|
2540 DATA 0,0,5,3
|
||||||
|
2550 DATA 0,10,0,4
|
||||||
|
2560 DATA 1,11,0,0
|
||||||
|
2570 DATA 0,0,8,0
|
||||||
|
2580 DATA 0,12,9,7
|
||||||
|
2590 DATA 0,0,0,8
|
||||||
|
2600 DATA 5,14,0,0
|
||||||
|
2610 DATA 6,0,12,0
|
||||||
|
2620 DATA 8,0,13,11
|
||||||
|
2630 DATA 0,0,14,12
|
||||||
|
2640 DATA 10,0,0,13
|
||||||
|
2650 DATA 0,19,16,0
|
||||||
|
2660 DATA 0,0,17,15
|
||||||
|
2670 DATA 0,0,18,16
|
||||||
|
2680 DATA 0,0,0,17
|
||||||
|
2690 DATA 15,20,0,0
|
||||||
|
2700 DATA 19,21,0,0
|
||||||
|
2710 DATA 20,22,0,0
|
||||||
|
2720 DATA 21,26,23,0
|
||||||
|
2730 DATA 0,27,24,22
|
||||||
|
2740 DATA 0,29,0,23
|
||||||
|
2750 DATA 0,30,0,0
|
||||||
|
2760 DATA 22,31,27,0
|
||||||
|
2770 DATA 23,0,28,26
|
||||||
|
2780 DATA 0,0,0,0
|
||||||
|
2790 DATA 24,0,30,28
|
||||||
|
2800 DATA 25,33,0,29
|
||||||
|
2810 DATA 26,0,0,0
|
||||||
|
2820 DATA 28,29,0,0
|
||||||
|
2830 DATA 30,0,0,0
|
||||||
|
3000 REM DRAWBRIDGE ROUTINES
|
||||||
|
3010 IF S(11)=15 THEN PRINT :PRINT "THE BRIDGE IS DOWN.":GOTO 3030
|
||||||
|
3020 PRINT :PRINT "THE BRIDGE IS UP BUT THERE IS A LARGE BUTTON JUST OUT OF YOUR REACH."
|
||||||
|
3030 PRINT :PRINT "A SIGN UNDER THE BUTTON SAYS: 'UNDER NO CIRCUMSTANCES PUSH THIS BUTTON!'":RETURN
|
||||||
|
3040 PRINT :PRINT "WHOEVER HEARD OF PRESSING A BUTTON WITH A ";N1$;"?":PRINT :GOTO 100
|
||||||
|
3050 PRINT :PRINT "YOU LEAP HIGH IN THE AIR AND PRESS THE BUTTON WITH YOUR HAND. THE POISONED LIZARD LIVING ";
|
||||||
|
3055 PRINT :PRINT "IN THE BUTTONHOLE ":PRINT "PRESSES YOUR HAND WITH ITS FANGS AND...":GOTO 3700
|
||||||
|
3060 PRINT :PRINT "I'LL PRESS THE BUTTON WITH YOUR STICK SO THE BRIDGE WILL DROP.":PRINT
|
||||||
|
3065 PRINT "OOPS, I'VE DROPPED THE STICK INTO THE RIVER":OB(1)=0:S(11)=15:GOTO 100
|
||||||
|
3070 PRINT :PRINT "AS YOU PASS OVER THE DRAWBRIDGE A THREE-TOED OGRE RUNS FROM UNDER THE BRIDGE CARRYING ";
|
||||||
|
3075 PRINT "YOUR STICK. HE PRESSES ";:PRINT "THE BUTTON, CATCHES THE POISONED LIZARD FROM THE BUTTONHOLE ";
|
||||||
|
3080 PRINT "AND EATS IT.":PRINT :PRINT "THE BRIDGE RAISES HIGH UP IN THE AIR, MAKING IT IMPOSSIBLE TO RETURN."
|
||||||
|
3085 RD(R)=1:RETURN
|
||||||
|
3100 REM THRONE ROOM ROUTINES
|
||||||
|
3110 IF OB(7)=34 AND OB(3)=34 THEN GOTO 3130
|
||||||
|
3120 PRINT :PRINT "THE THRONE ROOM IS EMPTY AND FAIRLY CLEAN EXCEPT FOR A DUSTY TAPESTRY ON THE WALL. ";
|
||||||
|
3125 PRINT "THE TAPESTRY DEPICTS A":PRINT "DRAGON IN A CAVE EATING A MCRIB SANDWICH.":RETURN
|
||||||
|
3130 PRINT :PRINT "THE KING JUMPS UP AND DOWN ON THE MAGIC SPRING WHICH ACTIVATES ITS CURATIVE POWERS. ";
|
||||||
|
3140 PRINT "HE IS CURED. ":PRINT :PRINT "TO SHOW HIS GRATITUDE HE GIVES YOU THE DUSTY TAPESTRY, A DEED TO THE ";
|
||||||
|
3145 PRINT "DRAGON'S CAVE, AND THE TAX BILL THAT THE DRAGON NEVER GOT AROUND TO PAYING ON THAT PARTICULAR ";
|
||||||
|
3147 PRINT "PIECE OF PROPERTY."
|
||||||
|
3150 PRINT :PRINT "HE ALSO GIVES YOU A COMMISSION FOR A MUCH MORE LUCRATIVE QUEST, BUT THAT IS ANOTHER ADVENTURE ";
|
||||||
|
3155 PRINT "FOR ANOTHER TIME.":GOTO 3700
|
||||||
|
3200 REM VOLCANIC ROCK ROUTINE
|
||||||
|
3210 PRINT :PRINT "YOU ARE IN A WEIRD VALLEY. BLOCKING THE NORTH SIDE OF THE CLIFF IS A HUGE ROCK. THE ROCK ";
|
||||||
|
3215 PRINT "IS CHIPPED AND PRETTY":PRINT "WELL BEATEN UP AND DENTED.":PRINT :PRINT "A DENTED WITCH'S KETTLE IS ";
|
||||||
|
3218 PRINT "BOLTED DOWN HERE.":RETURN
|
||||||
|
3220 PRINT :PRINT "YOU PUSH AGAINST IT WITH ALL YOUR MIGHT BUT NOTHING SEEMS TO HAPPEN.":PRINT :GOTO 100
|
||||||
|
3230 IF N1$="KETTLE" THEN PRINT :PRINT "YOU ";V1$; " THE SWORD AGAINST THE ":PRINT "KETTLE. THE ROCK VIBRATES IN ";
|
||||||
|
3235 PRINT "TUNE ":PRINT "AND ROLLS ASIDE, REVEALING A PASSAGE TO THE NORTH.":N(18)=14:S(14)=18:GOTO 100
|
||||||
|
3240 PRINT "YOU ";V1$" THE SWORD AGAINST THE ":PRINT N1$;" BUT NOTHING HAPPENS.":GOTO 100
|
||||||
|
3250 PRINT :PRINT "YOU ";V1$;" IT WITH YOUR HAND.":PRINT :PRINT "NOTHING SEEMS TO HAPPEN EXCEPT YOUR HAND ";
|
||||||
|
3255 PRINT "HURTS.":GOTO 100
|
||||||
|
3300 REM MISCELLANEOUS HITTING AND KILLING ROUTINES
|
||||||
|
3310 PRINT :PRINT "WHAT, YOU DARE TO ";V1$" IN THE ":PRINT "PRESENCE OF THE KING?":PRINT "THE GUARDS SEIZE YOU ";
|
||||||
|
3315 PRINT "AND DRAG YOU OFF":PRINT "KICKING AND SCREAMING TO BE FED TO THE DRAGON.":PRINT :GOTO 3700
|
||||||
|
3320 REM BEATING THE DRUM
|
||||||
|
3330 IF OB(4)=34 AND OB(6)=34 THEN GOTO 3370
|
||||||
|
3340 IF OB(4) <> 34 AND OB(6) <> 34 THEN PRINT "YOU DON'T HAVE THAT.":GOTO 100
|
||||||
|
3350 IF OB(4)=34 THEN PRINT :PRINT "PERHAPS IF YOU HAD A DRUM...":GOTO 100
|
||||||
|
3360 IF OB(6)=34 THEN PRINT :PRINT "YOU HIT THE DRUM WITH YOUR HAND AND PRODUCE A MUFFLED THUD.":GOTO 100
|
||||||
|
3370 IF R=28 THEN GOTO 3620
|
||||||
|
3380 PRINT :PRINT "KABOOM, KABOOM. HITTING THE DRUM WITH THE DRUMSTICK PRODUCES A NICE BEAT. YOU'RE NO GENE ";
|
||||||
|
3385 PRINT "KRUPA (WHO?), BUT YOU'LL";:PRINT "DO IN A PINCH.":GOTO 100
|
||||||
|
3390 REM GETTING THE SPRING
|
||||||
|
3400 PRINT :PRINT "YOU PUSH AND TUG THE MAGIC METAL SPRING INTO THE WAGON AND FIND THAT YOU CAN NOW ";
|
||||||
|
3405 PRINT "TRANSPORT IT. AREN'T YOU CLEVER, YOU RASCAL YOU.":GOTO 890
|
||||||
|
3410 PRINT :PRINT "YOU CAN'T SEEM TO MOVE THE HEAVY SPRING.":GOTO 890
|
||||||
|
3420 OB(3)=R:PRINT :PRINT "OH, OH, WITHOUT HAVING THE WAGON THE HEAVY METAL SPRING TUMBLES TO THE FLOOR."
|
||||||
|
3425 GOTO 1070
|
||||||
|
3500 REM DRAGON ROUTINES
|
||||||
|
3510 PRINT :PRINT "A HUGE, FIERCE, HUNGRY RED DRAGON GETS UP FROM ITS NEST IN THE MIDDLE OF THE CAVE.":PRINT
|
||||||
|
3515 PRINT "IT SNORTS FIRE FROM ITS NOSTRILS, BURPS, DOES A BIT OF THE OLD SOFT SHOE, AND SAYS TO YOU:":PRINT
|
||||||
|
3520 PRINT "'BOY I'M GLAD YOU MADE IT. NOT ONLY AM I BORED, BUT I'M STARVING.":PRINT "SHALL WE DANCE, OR ";
|
||||||
|
3525 PRINT "SHALL YOU":PRINT "FEED ME FIRST?'":GOTO 100
|
||||||
|
3530 PRINT :PRINT "THE DRAGON LOOKS AT YOU IN DISGUST. HE GETS UP AND SAYS, ":PRINT "'THAT'S AWFUL. THIS IS ";
|
||||||
|
3535 PRINT "HOW YOU DO IT.'":PRINT "HE IS EXTREMELY CLUMSY AND SAYS,":PRINT "'I JUST CAN'T SEEM TO GET THE"
|
||||||
|
3537 PRINT "TEMPO RIGHT.'":PRINT :PRINT "HE IS GETTING MADDER AND MADDER. HE LOOKS AT YOU, SNARLS, AND SAYS, "
|
||||||
|
3540 PRINT "'WELL, IF YOU WON'T HELP ME.....'CHOMP!!":GOTO 3700
|
||||||
|
3550 PRINT :PRINT "YOU WHIP OUT YOUR TRUSTY SWORD AND LUNGE.":PRINT :PRINT "THE DRAGON LOOKS AT YOU AND SAYS: "
|
||||||
|
3555 PRINT "HOW THOUGHTFUL, HE BROUGHT HIS OWN TOOTHPICK.'":PRINT :PRINT ".......CHOMP!!!!":GOTO 3700
|
||||||
|
3560 PRINT :PRINT "YOU ATTACK THE DRAGON FURIOUSLY WITH YOUR BARE HANDS. THE DRAGON CHUCKLES AT YOU...":PRINT
|
||||||
|
3565 PRINT "'IF YOU HAD A MAGIC SWORD YOU MIGHT HAVE HAD A CHANCE.'":PRINT :PRINT "........CHOMP!!!!":GOTO 3700
|
||||||
|
3570 PRINT :PRINT "THE DRAGON NOTICES YOU REENTER.":PRINT :PRINT "'MY, THAT WAS A NICE DANCE. NOW, I'M HUNGRY!'"
|
||||||
|
3575 PRINT :PRINT "........CHOMP!!!!":GOTO 3700
|
||||||
|
3580 PRINT :PRINT "THE DRAGON GOBBLES UP THE ";N1$;".":PRINT :PRINT "'YUMMY, GOOD! WHAT (OR WHO) IS NEXT?'":GOTO 100
|
||||||
|
3590 X=0:R=28:PRINT :PRINT "YOU'RE TRAPPED IN THE DRAGON'S CAVE. IF YOU DON'T DO SOMETHING SOON YOU'RE IN BIG ";
|
||||||
|
3595 PRINT "TROUBLE.":TC=TC+1:PRINT :PRINT "YOU'VE ONLY GOT ";5-TC;" MINUTES LEFT."
|
||||||
|
3600 IF TC<5 THEN GOTO 100
|
||||||
|
3610 PRINT :PRINT "OH, NO...THE DRAGON'S GETTING UP.":PRINT :PRINT "HE'S ";
|
||||||
|
3615 PRINT "GOING TO ....CHOMP!!!!":GOTO 3700
|
||||||
|
3620 PRINT :PRINT "WOW!!! THE DRAGON IS FASCINATED.":PRINT "HE GETS UP, TAKES THE DRUM AND DRUMSTICK, ";
|
||||||
|
3625 PRINT "SNIFFS IT, AND BEGINS TO DANCE ":PRINT "AND BEAT THE DRUMP IN 3/4 TIME."
|
||||||
|
3630 PRINT :PRINT "WHILE HE'S SO OCCUPIED, YOU NOTICE HE HAS MOVED AWAY FROM A PASSAGE TO THE SOUTH.":S(28)=32
|
||||||
|
3635 GOTO 100
|
||||||
|
3700 PRINT :PRINT "AUF WIEDERSEHEN (GAME OVER)":END
|
Loading…
Reference in New Issue
Block a user