1 REM *********** ESCAPE FROM ATLANTIS *********** 2 REM Written by Greg Hassett 3 REM Adapted to QBASIC by Nele Abels 4 REM Adapted to Applesoft BASIC by D. Rioual 5 REM ******************************************** 8 GOSUB 5000 5 TEXT : HOME : PR# 3 15 DIM CM$(32),RO$(32),RN(32,4),OB$(33,8),P$(35) 20 OB$(1,1) = "immovable door":OB$(2,1) = "a delicious looking malt":OB$(2,2) = "* platinum spoon" 30 OB$(5,1) = "sign":OB$(6,1) = "tombstone":OB$(7,1) = "motocycle":OB$(8,1) = "woman":OB$(10,1) = "folded piece of paper" 40 OB$(12,1) = "safe":OB$(16,1) = "manhole":OB$(16,2) = "dirtpile":OB$(17,1) = "gas container":OB$(17,2) = "dirtpile":OB$(21,1) = "a large pool" 50 OB$(22,1) = "duct tape":OB$(24,1) = "sign":OB$(24,2) = "a very large machine":OB$(25,1) = "prybar":OB$(26,1) = "* diamonds" 60 OB$(27,1) = "scientific book":OB$(28,1) = "a large cabinet":OB$(30,1)= "sign":OB$(31,1) = "crate" 70 OB$(32,1) = "dying plant":OB$(26,2) = "a very large machine":OB$(18,1) = "ladder" 75 FOR X = 1 TO 32: READ CM$(X): NEXT X 80 FOR D = 1 TO 32: FOR X = 1 TO 4 90 READ RN(D,X): NEXT X: NEXT D 95 FOR F = 1 TO 32: READ RO$(F): NEXT F 96 RN = 1 100 VTAB 1: HTAB 1: NL = 13 : GOSUB 12000 101 VTAB 1: HTAB 1: PRINT "You are in a ";RO$(RN) 105 PRINT "Exits are: "; 110 FOR X = 1 TO 4: IF RN(RN,X) < > 0 THEN PRINT LEFT$ (CM$(X),1);" "; 111 NEXT X: PRINT 115 PRINT "Here you see: "; 116 OBJ = 0: FOR X = 1 TO 8 117 IF OB$(RN,X) < > "" THEN OBJ = 1 118 NEXT X 119 IF OBJ = 0 THEN PRINT "Nothing." 120 FOR X = 1 TO 8 121 IF OB$(RN,X) < > "" THEN PRINT OB$(RN,X);" "; 122 NEXT X: PRINT 130 PRINT "-------------------------------------------------------------------------------" 131 NL = 1 : GOSUB 12000 132 VTAB 12: HTAB 1 133 IF RN = 27 THEN GOSUB 3900 135 INPUT "Enter command > ";A$: GOSUB 10000: NL = 3 : GOSUB 12000: VTAB 14: HTAB 1 136 IF A$ = "quit" THEN END 137 X1 = 1:A$ = A$ + " ":TW = LEN (A$) 138 P$(0) = LEFT$ (A$,3) 139 FOR A1 = 1 TO TW 140 IF MID$ (A$,A1,1) = " " THEN GOSUB 144 141 NEXT A1 142 GOTO 500 143 STOP 144 P$(X1) = MID$ (A$,A1 + 1,3) 145 X1 = X1 + 1 146 RETURN 500 FOR I = 0 TO X1 510 IF P$(I) = "the" THEN P$(I) = "" 520 IF P$(I) = "and" THEN P$(I) = "" 530 IF P$(I) = "at " THEN P$(I) = "" 540 IF LEFT$ (P$(I),1) = "i" AND P$(I) < > "imm" THEN P$(I) = "inv" 550 IF LEFT$ (P$(I),1) = "e" AND P$(I) < > "ent" AND P$(I) < > "exa" AND P$(I) < > "eat" THEN P$(I) = "eas" 560 IF LEFT$ (P$(I),1) = "w" AND P$(I) < > "wom" AND P$(I) < > "wat" THEN P$(I) = "wes" 570 IF LEFT$ (P$(I),1) = "n" AND P$(I) < > "nec" THEN P$(I) = "nor" 580 IF p$(i) = "spa" OR p$(i) = "say" OR p$(i) = "sci" OR p$(i) = "str" OR p$(i) = "sho" OR p$(i) = "spo" OR p$(i) = "sco" OR p$(i) = "sig" OR p$(i) = "saf" OR p$(i) = "sha" OR p$(i) = "swi" THEN 590 585 IF LEFT$(p$(i), 1) = "s" THEN p$(i) = "sou" 590 IF P$(I + 1) = "tap" THEN P$(I + 1) = "duc" 600 IF P$(I + 1) = "boo" THEN P$(I + 1) = "sci" 610 IF P$(I + 1) = "pap" AND UP = 0 THEN P$(I + 1) = "fol" 620 IF P$(I + 1) = "mac" THEN P$(I + 1) = "a v" 630 IF P$(I + 1) = "sto" THEN P$(I + 1) = "tom" 640 IF P$(I + 1) = "doo" THEN P$(I + 1) = "imm" 650 IF P$(I + 1) = "mal" THEN P$(I + 1) = "a d" 660 IF P$(I + 1) = "pla" AND FS = 0 THEN P$(I + 1) = "dyi" 670 IF P$(I + 1) = "cab" AND BC = 0 THEN P$(I + 1) = "a l" 680 IF P$(I + 1) = "poo" THEN P$(I + 1) = "a l" 690 IF P$(I + 1) = "spo" THEN P$(I + 1) = "* p" 700 IF P$(I + 1) = "nec" THEN P$(I + 1) = "* n" 710 IF P$(I + 1) = "cro" THEN P$(I + 1) = "* c" 720 IF P$(I + 1) = "dia" THEN P$(I + 1) = "* d" 730 IF P$(I + 1) = "con" THEN P$(I + 1) = "gas" 740 IF P$(I + 1) = "cab" AND BC = 1 THEN P$(I + 1) = "a b" 750 IF P$(I + 1) = "pla" AND FS = 1 THEN P$(I + 1) = "a p" 760 IF P$(I + 1) = "mon" OR P$(I + 1) = "bag" THEN P$(I + 1) = "* m" 770 IF P$(I + 1) = "dou" OR P$(I + 1) = "spa" THEN P$(I + 1) = "* s" 780 NEXT I 790 A = 0: FOR I = 0 TO X1 800 IF P$(I) < > "" THEN B$(A) = P$(I):A = A + 1 810 NEXT I 820 FOR D = 0 TO A - 1:P$(D) = B$(D): NEXT D:X1 = A - 1 830 FOR I = 0 TO X1 840 FOR DS = 1 TO 32 850 IF P$(I) = CM$(DS) THEN ON DS GOSUB 1000,1000,1000,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3100,3200,3300,3400,3500,3600,3700,3800 860 NEXT DS,I 870 GOTO 100 999 REM <----- NORTH, SOUTH, EAST, WEST -----> 1000 FOR X = 1 TO 4 1010 IF CM$(X) = P$(I) AND RN(RN,X) < > 0 THEN 1030 1020 NEXT X: PRINT "that direction is not an exit!": FOR F = 1 TO 1050: NEXT F: RETURN 1030 NR = RN(RN,X):RN = NR: RETURN 1099 REM <----- ENTER -----> 1100 IF RN = 16 AND P$(I + 1) = "man" THEN GOTO 1140 1105 GOTO 1190 1140 FOR X = 0 TO 9 1145 IF LEFT$ (INV$(X),3) = "mot" THEN 1155 1150 NEXT X: PRINT "you enter the manhole!":RN = 18: RETURN 1155 PRINT "the motorcycle hampers your effort.": RETURN 1190 PRINT "you can't enter that!": RETURN 1199 REM <----- CLIMB -----> 1200 IF RN = 18 AND P$(I + 1) = "lad" THEN PRINT "you climb the ladder.":RN = 16: RETURN 1299 PRINT "you can't climb that!": RETURN 1300 REM <----- GET -----> 1301 FOR X = 1 TO 8 1329 IF P$(I + 1) = LEFT$ (OB$(RN,X),3) THEN GOTO 1350 1330 NEXT X: PRINT "you can't get it!!": RETURN 1350 IF P$(I + 1) = "saf" AND RN = 12 THEN PRINT "don't be funny, its made of steel and is too large!": RETURN 1351 IF P$(I + 1) = "a l" AND RN = 21 THEN PRINT "the pool is a hole filled with water!": RETURN 1352 IF P$(I + 1) = "a l" AND RN = 28 THEN PRINT "the cabinet is bolted to the floor!": RETURN 1353 IF P$(I + 1) = "imm" AND RN = 1 THEN PRINT "you think your superman? the door wont budge!": RETURN 1354 IF P$(I + 1) = "dir" AND (RN = 16 OR RN = 17) THEN PRINT "the dirt runs through your fingers!": RETURN 1355 IF P$(I + 1) = "wom" AND RN = 8 THEN PRINT "she wiggles away fromyou.": RETURN 1356 IF P$(I + 1) = "sig" AND RN = 5 OR RN = 24 OR RN = 30 THEN PRINT "the sign wont budge!": RETURN 1357 IF P$(I + 1) = "tom" AND RN = 6 THEN PRINT "I wont defile a place of the dead!!!": RETURN 1358 IF P$(I + 1) = "dyi" OR P$(I + 1) = "a p" AND RN = 32 THEN PRINT "the plants roots go too deep! it wont budge.": RETURN 1359 IF P$(I + 1) = "man" AND RN = 16 THEN PRINT "you can't expect me to get a manhole!": RETURN 1360 IF P$(I + 1) = "cra" AND RN = 31 THEN PRINT "the crate wont budge!": RETURN 1361 IF RN = 24 OR RN = 26 AND P$(I + 1) = "a v" THEN PRINT "the machine won't budge!": RETURN 1365 IF P$(I + 1) = "bod" AND RN = 6 THEN PRINT "that's sick!!!": RETURN 1366 IF P$(I + 1) = "* n" THEN GOTO 1383 1367 IF P$(I + 1) = "lad" AND RN = 18 THEN PRINT "the ladder won't move.": RETURN 1368 IF P$(I + 1) = "a b" AND RN = 28 THEN PRINT "you can't get the broken cabinet!": RETURN 1375 FOR X = 1 TO 8: IF P$(I + 1) = LEFT$ (OB$(RN,X),3) THEN GOTO 1377 1376 NEXT X: STOP 1377 FOR D = 0 TO 9: IF INV$(D) < > "" THEN 1380 1378 IF P$(I + 1) = LEFT$ (OB$(RN,X),3) THEN INV$(D) = OB$(RN,X) 1379 OB$(RN,X) = "": PRINT "taken!": RETURN 1380 NEXT D: PRINT "no room in inventory.": RETURN 1383 FOR D = 0 TO 9: IF INV$(D) = "* cross" THEN GOTO 1375 1384 NEXT D: IF RN = 6 THEN PRINT "the body springs to life and kills you!": END 1385 GOTO 1375 1399 REM <----- DROP -----> 1400 FOR X = 0 TO 9 1405 IF LEFT$ (INV$(X),3) = P$(I + 1) THEN GOTO 1415 1410 NEXT X: PRINT "you don't have it!": RETURN 1415 FOR D = 1 TO 8 1420 IF OB$(RN,D) = "" THEN 1430 1425 NEXT D: PRINT "no room to drop it!": RETURN 1430 OB$(RN,D) = INV$(X):INV$(X) = "": PRINT "dropped.": RETURN 1499 REM <----- INVENTORY -----> 1500 HOME : PRINT "your inventory: " 1505 FOR X = 0 TO 9: PRINT INV$(X): NEXT X 1510 GOSUB 11000: HOME: RETURN 1599 REM <----- HELP -----> 1600 RH = RND (1) * 6 1605 RH = INT ( ABS (RH) + 1) 1610 ON RH GOTO 1620,1630,1640,1650,1660,1670 1615 GOTO 1600 1620 PRINT "you will receive no help from me mortal!": RETURN 1630 PRINT "dig that weird tombstone.": RETURN 1640 PRINT "watch out for the librarian!": RETURN 1650 PRINT "try swimming.": RETURN 1660 PRINT "don't operate the machine without doing a little reading first!": RETURN 1670 PRINT "try examining things!": RETURN 1680 RETURN 1699 REM <----- EXAMINE ----> 1700 IF RN = 1 AND P$(I + 1) = "imm" THEN PRINT "on the door you see a button.": RETURN 1701 IF (RN = 5 OR RN = 24 OR RN = 30) AND P$(I + 1) = "sig" AND P$(I + 1) < > "a v" THEN PRINT "the sign has writing on it!": RETURN 1702 IF RN = 28 AND P$(I + 1) = "a l" THEN PRINT "the cabinet is made of glass!": RETURN 1710 IF RN = 32 AND P$(I + 1) = "dyi" AND WP = 0 THEN PRINT "the plant is murmuring water.....water.": RETURN 1711 IF RN = 31 AND P$(I + 1) = "cra" THEN PRINT "the crate looks like it can be moved.": RETURN 1712 IF RN = 6 AND P$(I + 1) = "tom" THEN PRINT "it has writing on it.": RETURN 1713 IF RN = 24 OR RN = 26 AND P$(I + 1) = "a v" THEN PRINT "the machine has a lever on it." : RETURN 1714 IF RN = 8 AND P$(I + 1) = "wom" THEN PRINT "she looks beautiful!" : RETURN 1715 IF P$(I + 1) = "a d" THEN GOTO 1785 1716 IF P$(I + 1) = "bod" AND RN = 6 AND FP = 0 THEN PRINT "you find a necklace!": GOTO 1777 1776 GOTO 1795 1777 FOR X = 1 TO 8: IF OB$(RN,X) = "" THEN GOTO 1779 1778 NEXT X: PRINT "remove an item from room and try again.": RETURN 1779 OB$(RN,X) = "* necklace":FP = 1: RETURN 1785 FOR X = 1 TO 8 1786 IF LEFT$ (OB$(RN,X),3) = P$(I + 1) THEN 1790 1787 NEXT X: GOTO 1791 1790 PRINT "the malt smells like burnt almonds.": RETURN 1791 FOR X = 0 TO 9: IF LEFT$ (INV$(X),3) = P$(I + 1) THEN 1790 1792 NEXT X: PRINT "you don't see it!": RETURN 1795 PRINT "you see nothing special.": RETURN 1799 REM <----- PUSH -----> 1800 IF RN = 1 AND P$(I + 1) = "but" THEN GOTO 1850 1810 PRINT "nothing happens!": RETURN 1850 PRINT "the room tilt's and you are thrown into a new room.":RN = 2: RETURN 1899 REM <----- PULL -----> 1900 IF RS = 1 AND RN = 24 AND P$(I + 1) = "lev" THEN PRINT "everything goes blurry.":RN = 26: RETURN 1902 IF RS = 1 AND RN = 26 AND P$(I + 1) = "lev" THEN PRINT "everything goes black.":RN = 24: RETURN 1904 IF RN = 24 OR RN = 26 AND RS = 0 AND P$(I + 1) = "lev" THEN PRINT "the machine blows up killing you!": END 1920 PRINT "you can't pull that!": RETURN 1999 REM <----- DIG -----> 2000 IF RN = 6 AND DB = 0 THEN GOTO 2040 2001 IF RN = 6 AND DB = 1 THEN PRINT "you can't dig anymore!": RETURN 2003 GOTO 2040 2040 FOR X = 0 TO 9 2045 IF LEFT$ (INV$(X),3) = "sho" THEN 2055 2050 NEXT X: PRINT "you need a shovel to dig!": RETURN 2055 IF RN = 6 THEN 2060 2056 PRINT "you find nothing.": RETURN 2060 PRINT "you find a body!": FOR X = 1 TO 8 2062 IF OB$(RN,X) = "" THEN 2070 2064 NEXT X: PRINT "remove an item from room and dig again!": RETURN 2070 OB$(RN,X) = "body":DB = 1: RETURN 2090 PRINT "you find nothing special.": RETURN 2099 REM <----- JUMP -----> 2100 IF RN = 16 AND P$(I + 1) = "dir" THEN GOTO 2140 2101 IF RN = 17 AND P$(I + 1) = "dir" THEN GOTO 2140 2103 PRINT "you can't jump that!": RETURN 2140 FOR X = 0 TO 9 2145 IF LEFT$ (INV$(X),3) = "mot" THEN 2155 2150 NEXT X: PRINT " you need a motorcycle before you jump!": RETURN 2155 IF RN = 16 THEN PRINT "you jump the dirtpile with the motorcycle!":RN = 17: RETURN 2156 IF RN = 17 THEN PRINT "you jump the dirtpile with the motorcycle!":RN = 16: RETURN 2157 PRINT "nothing happens!": RETURN 2199 REM <----- SCORE -----> 2200 TS = 0: FOR X = 1 TO 8 2205 IF LEFT$ (OB$(5,X),1) = "*" THEN TS = TS + 1 2210 NEXT X: IF TS = 6 THEN PRINT "you solved my adventure! my next one will be harder.": END 2220 PRINT "you have got ";TS;" out of a possible 6 treasures so far.":RETURN 2299 REM <----- RUB -----> 2300 IF P$(I + 1) = "tom" AND RN = 6 THEN PRINT "you feel dizzy!":RN = INT ( RND (1) * 31) + 1: RETURN 2310 PRINT "nothing happens.": RETURN 2399 REM <----- READ -----> 2400 IF RN = 6 AND P$(I + 1) = "tom" THEN PRINT "kilroy was here!": RETURN 2401 IF RN = 5 AND P$(I + 1) = "sig" THEN PRINT "drop treasures here and say score!": RETURN 2402 IF RN = 24 AND P$(I + 1) = "sig" THEN PRINT "experimental time machine": RETURN 2403 IF RN = 30 AND P$(I + 1) = "sig" THEN PRINT "look for more adventures by Thomas Ally!": RETURN 2405 IF P$(I + 1) = "pap" AND UP = 1 THEN 2440 2406 IF P$(I + 1) = "fol" AND UP = 0 THEN 2460 2407 IF P$(I + 1) = "sci" AND RS < > 1 THEN GOTO 2476 2408 IF P$(I + 1) = "sci" AND RS = 1 THEN GOTO 2476 2439 GOTO 2490 2440 FOR X = 0 TO 9 2445 IF LEFT$ (INV$(X),3) = "pap" THEN 2455 2450 NEXT X: PRINT "you aren't carrying the piece of paper!": RETURN 2455 PRINT "it's the combination to a safe!":CS = 1: RETURN 2460 FOR X = 0 TO 9 2465 IF LEFT$ (INV$(X),3) = "fol" THEN 2475 2470 NEXT X: PRINT "you aren't carrying the piece of paper!": RETURN 2475 PRINT "you have to unfold it first!": RETURN 2476 FOR X = 0 TO 9 2477 IF LEFT$ (INV$(X),3) = "sci" THEN 2485 2478 NEXT X: PRINT "you aren't carrying the scientific book!": RETURN 2485 IF RS = 0 THEN PRINT "the book tells how to operate a time machine.":RS = 1: RETURN 2486 IF RS = 1 THEN PRINT "you already read the book.": RETURN 2490 PRINT "you can't read it!": RETURN 2499 REM <----- SAY -----> 2500 IF P$(I + 1) = "sco" THEN GOTO 2200 2590 PRINT "nothing happens!": RETURN 2599 REM <----- UNFOLD -----> 2600 IF P$(I + 1) = "fol" THEN GOTO 2640 2610 IF P$(I + 1) = "pap" THEN PRINT "you already unfolded that!": RETURN 2615 GOTO 2690 2640 FOR X = 0 TO 9 2645 IF LEFT$ (INV$(X),3) = "fol" THEN 2655 2650 NEXT X: PRINT "you aren't carrying the piece of paper!": RETURN 2655 PRINT "you unfold the piece of paper.":UP = 1:INV$(X) = "paper": RETURN 2690 PRINT "you can't unfold that!": RETURN 2699 REM <----- SHAKE -----> 2700 IF P$(I + 1) = "gas" THEN 2740 2710 GOTO 2790 2740 FOR X = 0 TO 9 2742 IF LEFT$ (INV$(X),3) = "gas" THEN 2755 2744 NEXT X: PRINT "you don't have the gas can.": RETURN 2755 FOR X = 1 TO 8 2756 IF OB$(RN,X) = "" AND FD = 0 THEN PRINT "you found something!":OB$(RN,X) = "* spanish doubloon":FD = 1: RETURN 2760 NEXT X: PRINT "you find nothing.": RETURN 2790 PRINT "nothing happens.": RETURN 2799 REM <----- EAT -----> 2800 IF P$(I + 1) = "a d" THEN 2840 2810 GOTO 2890 2840 FOR X = 0 TO 9 2842 IF LEFT$ (INV$(X),3) = "a d" THEN 2846 2844 NEXT X: PRINT "you don't have the malt!": RETURN 2846 PRINT "the malt was laced with cyanide! you are dead.": END 2890 PRINT "you can't eat that!": RETURN 2899 REM <----- FILL -----> 2900 IF RN = 21 AND P$(I + 1) = "can" AND FC = 0 THEN 2940 2901 IF RN = 21 AND P$(I + 1) = "can" THEN 2940 2903 GOTO 2990 2940 FOR X = 0 TO 9 2942 IF LEFT$ (INV$(X),3) = "can" THEN GOTO 2944 2943 NEXT X 2944 IF FC = 1 THEN PRINT "the canteen is already full!": RETURN 2945 IF FC = 0 THEN PRINT "you fill the canteen from the pool!":FC = 1: RETURN 2990 PRINT "you can't fill that!": RETURN 2999 REM <----- MOVE -----> 3000 IF RN = 31 AND P$(I + 1) = "cra" AND FL = 0 THEN GOTO 3040 3005 IF RN = 1 AND P$(I + 1) = "imm" THEN PRINT "can't you read? the door can't be moved!": RETURN 3010 GOTO 3090 3040 FOR X = 1 TO 8 3042 IF OB$(RN,X) = "" THEN 3050 3046 NEXT X: PRINT "remove an item from the room and try again.": RETURN 3050 OB$(RN,X) = "card":FL = 1: PRINT "you find something!": RETURN 3090 PRINT "you find nothing!": RETURN 3099 REM <----- SWIM -----> 3100 IF RN = 21 THEN PRINT "you swim down.":RN = 25: RETURN 3105 IF RN = 25 THEN PRINT "you swim up.":RN = 21: RETURN 3190 PRINT "you can't swim here!": RETURN 3199 REM <----- TAPE -----> 3200 IF RN = 28 AND P$(I + 1) = "a l" AND TG = 0 THEN 3240 3205 IF RN = 28 AND P$(I + 1) = "a l" AND TG = 1 THEN PRINT "the glass cabinet is already taped up!": RETURN 3210 GOTO 3240 3240 FOR X = 0 TO 9 3242 IF LEFT$ (INV$(X),3) = "duc" THEN GOTO 3246 3244 NEXT X: PRINT "you aren't carrying the duct tape!": RETURN 3246 IF RN = 28 THEN PRINT "you tape the glass cabinet with the duct tape.":TG = 1: RETURN 3290 PRINT "you can't tape that!": RETURN 3299 REM <----- BREAK -----> 3300 IF RN = 28 AND P$(I + 1) = "a l" AND TG = 1 THEN GOTO 3340 3310 IF RN = 28 AND P$(I + 1) = "a l" AND TG = 0 THEN PRINT "the flying glass cuts you to pieces!": END 3320 GOTO 3390 3340 FOR X = 1 TO 8 3342 IF LEFT$ (OB$(RN,X),3) = "a l" THEN 3350 3344 NEXT X: PRINT "you can't break it!": RETURN 3350 FOR D = 1 TO 8 3352 IF OB$(RN,D) = "" THEN 3354 3353 NEXT D: PRINT "remove an item from the room and try again.": RETURN 3354 OB$(RN,X) = "a broken cabinet":BC = 1:OB$(RN,D) = "* cross": PRINT "you find something!": RETURN 3390 PRINT "you can't break that!": RETURN 3399 REM <----- POUR -----> 3400 IF P$(I + 1) = "wat" OR P$(I + 1) = "can" AND FC = 1 THEN 3405 3405 FOR X = 0 TO 9 3406 IF INV$(X) = "canteen" THEN GOTO 3440 3407 NEXT X: PRINT "you don't have the canteen!": RETURN 3440 IF RN = 32 AND FC = 1 THEN 3445 3441 IF FC = 1 AND RN < > 32 THEN GOTO 3490 3444 PRINT "the canteen is empty!": RETURN 3445 FOR X = 1 TO 8 3446 IF LEFT$ (OB$(RN,X),3) = "dyi" THEN OB$(RN,X) = "a plant" 3447 NEXT X: FOR X = 1 TO 8: IF OB$(RN,X) = "" AND FS = 0 THEN 3450 3448 NEXT X: PRINT "you already watered the plant.": RETURN 3450 PRINT "for your kindness you are rewarded!":FC = 0:OB$(RN,X) = "shovel":FS = 1: RETURN 3490 PRINT "the ground becomes wet.":FC = 0: RETURN 3499 REM <----- WATER -----> 3500 IF RN = 32 AND P$(I + 1) = "dyi" THEN GOTO 3540 3510 IF RN = 32 AND P$(I + 1) = "a p" THEN PRINT "you already watered the dying plant!": RETURN 3540 FOR X = 0 TO 9 3541 IF INV$(X) = "canteen" THEN GOTO 3550 3542 NEXT X: PRINT "you don't have the canteen!": RETURN 3550 IF RN = 32 AND FC = 1 THEN GOTO 3445 3551 IF FC = 1 AND RN < > 32 THEN GOTO 3490 3552 PRINT "the canteen is empty!": RETURN 3599 REM <----- OPEN -----> 3600 IF RN = 12 AND CS = 1 AND FB = 0 AND P$(I + 1) = "saf" THEN GOTO 3640 3601 IF RN = 31 AND OC = 0 AND P$(I + 1) = "cra" THEN GOTO 3610 3602 IF RN = 31 AND OC = 1 AND P$(I + 1) = "cra" THEN PRINT "you opened the crate already!": RETURN 3603 IF RN = 12 AND CS = 0 AND P$(I + 1) = "saf" THEN PRINT "you don't know the combination!": RETURN 3604 IF RN = 12 AND FB = 1 AND P$(I + 1) = "saf" THEN PRINT "you already opened the safe!": RETURN 3605 PRINT "you can't open that.": RETURN 3610 FOR X = 0 TO 9 3611 IF LEFT$ (INV$(X),3) = "pry" THEN GOTO 3613 3612 NEXT X: PRINT "you don't have anything to pry with!": RETURN 3613 FOR X = 1 TO 8 3614 IF OB$(RN,X) = "" THEN 3616 3615 NEXT X: PRINT "remove an item from the room and try again.": RETURN 3616 OB$(RN,X) = "canteen": PRINT "you find something!":OC = 1: RETURN 3640 FOR X = 1 TO 8 3641 IF OB$(RN,X) = "" THEN 3643 3642 NEXT X: PRINT "remove an item from the room and try again.": RETURN 3643 OB$(RN,X) = "* moneybag": PRINT "you find something!":FB = 1: RETURN 3699 REM <----- KISS -----> 3700 IF RN = 8 AND P$(I + 1) = "wom" THEN PRINT " she stabbed you in the back! your dead!": END 3790 PRINT "geesh, you sure kiss alot!": RETURN 3799 REM <----- VOCABULARY -----> 3800 PRINT "Vocabulary :" 3810 PRINT "NORTH, SOUTH, EAST, WEST" 3820 PRINT "ENTER, CLIMB, GET, DROP, INVENTORY, HELP, EXAMINE, PUSH, PULL, DIG, JUMP, SCORE" 3825 PRINT "RUB, READ, SAY, UNFOLD, SHAKE, EAT, FILL, MOVE, SWIM, TAPE,BREAK, POUR, WATER" 3830 PRINT "OPEN, KISS, VOCABULARY" 3840 GOSUB 11000: HOME: RETURN 3900 FOR X = 0 TO 9 3905 IF INV$(X) = "card" THEN RETURN 3906 NEXT X: PRINT : PRINT "the librarian throws you out for forgetting your card!":RN = 17: GOTO 100 4500 DATA nor,sou,eas,wes,ent,cli,get,dro,inv,hel,exa,pus,pul,dig,jum,sco,rub,rea,say,unf,sha,eat,fil,mov,swi,tap,bre,pou,wat,ope,kis,voc 4510 DATA 0,0,0,0,3,0,0,0,0,2,4,5,6,0,7,3,0,0,3,0,0,4,0,0,9,31,8,4,0,0,0,7,11,7,29,10,0,0,9,0,0,9,0,12,13,0,11,0,14,12,0,28,15,13,0,0,0,14,16,0 4520 DATA 0,0,0,15,27,0,0,0,19,0,0,0,0,18,22,20,0,21,19,0,20,0,0,0,23,0,0,19,24,22,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,13,0,0,0,30,9,0,32,0,29,7,0,0,0,30,0,0,0 4530 DATA docking bay,malt shop,street,street,hotel,graveyard,street,geisha house,street,street,street,bank,street,street,street,street,gas station 4540 DATA underground complex,underground complex,underground complex,underground complex,underground complex,underground complex,underground complex 4550 DATA bottom of a pool,slimy cave,library,high school,street,street,warehouse,greenhouse 4999 REM <----- INTRO -----> 5000 HOME : PRINT 5005 VTAB 3:HTAB 10: PRINT "E S C A P E F R O M": VTAB 7 5010 PRINT " ** ********** ** ** **** ** ********** ** ********" 5011 PRINT " **** /////**/// /** **** /**/** /**/////**/// /** **//////" 5012 PRINT " **//** /** /** **//** /**//** /** /** /**/**" 5013 PRINT " ** //** /** /** ** //** /** //** /** /** /**/*********" 5014 PRINT " ********** /** /** **********/** //**/** /** /**////////**" 5015 PRINT "/**//////** /** /** /**//////**/** //**** /** /** /**" 5016 PRINT "/** /** /** /********/** /**/** //*** /** /** ********" 5017 PRINT "// // // //////// // // // /// // // ////////" 5050 VTAB 18: HTAB 65 5060 PRINT "by Fly" 5065 HTAB 65 5066 PRINT "version 6.0" 5070 GOSUB 11000 5080 HOME : RETURN 9999 REM <---- SUB TO SHIFT LETTERS TO LOWERCASE -----> 10000 REM A$ is the input string 10010 IF LEN (A$) = 0 THEN A$ = "": RETURN 10020 OU$ = "" 10030 FOR I = 1 TO LEN (A$) 10040 N$ = MID$ (A$,I,1) 10050 IF ASC (N$) > = 65 AND ASC (N$) < = 90 THEN N$ = CHR$ ( ASC(N$) + 32) 10060 OU$ = OU$ + N$ 10070 NEXT I 10080 A$ = OU$ 10090 RETURN 10999 REM <--- SUB TO WAIT FOR KEY INPUT ---> 11000 VTAB 23 : HTAB 25 11010 INVERSE:PRINT " PRESS A KEY TO CONTINUE ";:NORMAL 11020 GET K$ 11030 RETURN 11999 REM <--- SUB TO DRAW EMPTY LINE ---> 12000 FOR J = 1 TO NL 12010 PRINT " " 12020 NEXT J 12030 RETURN