1 SCREEN 8: CLEAR : CLS : DIM DL$(120), DW(82, 52), WD$(10), NO$(22), OB$(22), M(32, 6), LO(22), VB$(14): DL$(119) = ",": DL$(120) = "." 2 DATA You are,1,standing,2,walking,3,on a,4,by,5,near,6,in front of,7,inside,8,a,9 3 DATA large,10,small,11,vast,12,rolling,13,atop,14,below,15,around,16,above,17,the,18,surrounding,19 4 DATA forest,20,tree,21,trees,22,branch,23,branches,24,appear,25,appears,26,seem,27,seems,28 5 DATA to,29,at,30,an,31,top,32,bottom,33,smoke,34,rises,35,rising,36,air,37,sky,38,clouds,39 6 DATA hill,40,hillside,41,grass,42,grassy,43,water,44,stream,45,lake,46,river,47,devoid,48,of,49 7 DATA life,50,lifeless,51,darkness,52,dark,53,light,54,lightning,55,rumbles,56,strikes,57,you,58,as,59 8 DATA sparkles,60,glimmers,61,oddly,62,faintly,63,fading,64,sign,65,village,66,tavern,67,room,68 9 DATA bed,69,bookshelf,70,church,71,altar,72,pews,73,rows,74,glass,75,window,76,windows,77,barrels,78 10 DATA empty,79,bare,80,barren,81,mostly,82,fairly,83,hut,84,roll,85,A,86 11 DATA castle,87,gryphons,88,walkway,89,hallway,90,vines,91,ramparts,92,flags,93,breeze,94,flapping,95 12 DATA effortlessly,96,in the,97,on the,98,piano,99,parlor,100,throne,101,encrusted,102,with gold and jewels,103 13 DATA and,104,rests,105,silk,106,curtains,107,hanging down,108,from the,109,ceiling,110,The,111,on an,112 14 DATA upstairs,113,stands,114,north,115,south,116,east,117,west,118 15 RC = 64: FOR X = 1 TO 118: READ DL$(X), X: NEXT X: FOR X = 1 TO RC: FOR Y = 1 TO 26: READ DW(X, Y): NEXT Y: NEXT X: READ DW(32, 27): READ DW(32, 28) 16 DATA 01,02,08,09,10,67,120,86,54,57,58,62,07,18,76,119,59,18,39,25,29,85,63,06,05,120 17 DATA 86,11,68,26,12,06,31,79,70,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 18 DATA 01,03,06,09,10,67,07,09,43,41,120,111,19,20,35,17,58,119,59,52,56,06,05,120,86,71 19 DATA 14,18,40,60,62,16,09,06,05,46,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 20 DATA 01,02,112,113,90,120,86,68,114,29,18,117,49,18,113,90,119,104,09,69,26,06,09,54,76,120 21 DATA 86,81,21,91,16,18,19,54,17,18,67,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00 22 DATA 01,02,07,31,79,69,120,111,69,26,82,80,109,81,106,108,63,15,18,69,120,86,70,26,53,109 23 DATA 64,54,17,18,75,76,120,111,110,28,48,49,50,97,79,52,17,120,00,00,00,00,00,00,00,00 24 DATA 01,02,08,09,10,71,120,86,12,72,35,17,18,74,49,73,15,119,16,107,108,109,110,120,111,72 25 DATA 61,63,97,52,19,18,43,66,120,86,68,114,29,18,117,49,18,72,120,00,00,00,00,00,00,00 26 DATA 01,02,07,31,72,08,18,71,120,111,54,36,109,77,28,62,48,49,37,120,86,11,68,114,29,18 27 DATA 117,119,06,82,79,78,07,18,89,29,18,115,120,00,00,00,00,00,00,00,00,00,00,00,00,00 28 DATA 01,08,09,11,68,06,18,72,120,111,68,26,82,80,119,59,78,16,18,68,25,83,79,120,86 29 DATA 21,06,05,35,17,18,32,49,09,53,76,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 30 DATA 01,03,04,43,41,07,09,10,66,120,86,94,17,57,58,119,59,39,85,05,120,111,38,26,53,104 31 DATA 48,49,50,119,59,09,20,35,15,18,41,17,120,00,00,00,00,00,00,00,00,00,00,00,00,00 32 DATA 01,03,07,09,10,21,04,43,41,120,86,23,26,30,18,33,49,18,06,05,21,120,86,11,45,19 33 DATA 18,41,60,63,06,05,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 34 DATA 01,02,04,23,14,18,20,120,111,22,19,58,27,62,51,119,59,18,39,85,05,120,86,11,84,105 35 DATA 30,18,32,49,18,23,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 36 DATA 01,02,08,09,11,84,14,18,20,120,86,69,105,06,31,79,70,07,09,53,75,120,111,54,109,38 37 DATA 19,18,84,26,64,97,68,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 38 DATA 01,03,04,36,41,06,09,10,45,120,111,44,61,62,97,64,54,119,59,39,13,17,18,22,80,18 39 DATA 20,97,94,120,86,40,114,29,18,115,49,18,45,120,00,00,00,00,00,00,00,00,00,00,00,00 40 DATA 01,02,15,09,43,41,06,09,10,45,120,111,45,56,118,29,18,33,49,09,11,40,120,86,64,54 41 DATA 92,18,19,20,119,59,81,42,114,51,06,05,120,00,00,00,00,00,00,00,00,00,00,00,00,00 42 DATA 01,02,07,09,13,41,120,111,42,26,82,81,119,95,63,97,06,05,94,120,86,10,40,105,14,09 43 DATA 54,20,29,18,116,117,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 44 DATA 01,02,06,09,10,46,117,49,18,20,120,111,44,60,97,52,17,18,20,119,59,09,54,94,56,97 45 DATA 37,120,86,21,109,19,20,35,29,18,118,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00 46 DATA 01,03,116,08,09,20,19,18,43,41,29,18,115,120,86,40,35,29,18,117,119,17,18,22,104,24 47 DATA 49,18,20,120,86,11,66,114,29,18,115,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00 48 DATA 01,03,97,20,120,86,12,41,35,29,18,118,119,108,30,18,33,49,09,54,45,120,01,83,48,49 49 DATA 22,17,18,40,59,42,07,58,26,62,53,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00 50 DATA 111,40,107,30,18,32,119,64,116,06,09,12,47,120,86,11,46,114,29,18,115,119,15,09,53,20 51 DATA 29,18,118,120,111,40,116,39,18,12,47,29,18,117,120,00,00,00,00,00,00,00,00,00,00,00 52 DATA 01,30,18,33,49,09,13,41,120,86,10,47,56,117,119,96,13,16,18,40,29,18,115,120,111,44 53 DATA 35,07,00,09,10,119,43,20,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 54 DATA 01,02,04,40,06,09,10,47,120,111,47,91,16,18,41,29,18,115,119,59,58,06,18,32,49,09 55 DATA 11,40,120,86,20,114,29,18,118,49,18,47,120,00,00,00,00,00,00,00,00,00,00,00,00,00 56 DATA 01,03,04,43,40,115,49,09,12,20,120,111,22,79,07,09,10,87,29,18,116,49,18,41,15,120 57 DATA 86,89,114,30,18,33,49,18,40,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 58 DATA 01,02,07,09,10,87,120,86,89,114,29,18,116,119,59,18,87,92,32,18,39,17,58,120,111,92 59 DATA 93,45,96,119,95,97,54,38,94,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 60 DATA 01,02,07,09,13,41,48,49,42,120,111,40,28,51,104,53,119,83,80,49,19,44,120,86,81,21 61 DATA 105,14,18,40,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 62 DATA 01,02,08,09,87,120,86,90,29,18,118,24,06,09,11,68,07,88,119,36,17,18,100,120,111,87 63 DATA 26,12,119,59,58,06,107,108,109,110,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 64 DATA 01,03,97,90,49,18,87,120,111,88,02,05,18,100,25,102,103,120,111,107,108,17,18,90,94,16 65 DATA 09,53,68,97,87,100,120,86,11,68,114,29,18,115,49,18,52,120,00,00,00,00,00,00,00,00 66 DATA 01,02,08,09,11,68,120,86,69,104,70,114,29,18,117,119,06,53,78,120,111,118,90,24,16,18 67 DATA 100,07,09,11,101,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 68 DATA 111,90,29,18,118,24,16,09,101,68,06,18,100,120,86,12,90,114,29,18,115,49,18,100,68,119 69 DATA 59,09,10,101,102,103,105,15,106,107,108,109,110,00,00,00,17,120,00,00,00,00,00,00,00,00 70 DATA 01,03,08,09,10,90,97,87,120,86,100,114,29,18,118,119,104,09,11,99,105,06,18,19,101,120 71 DATA 111,101,29,18,115,26,102,103,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 72 DATA 01,02,08,18,100,120,86,99,105,07,18,68,119,06,18,101,68,120,111,99,26,81,119,82,109,19 73 DATA 54,49,18,100,120,86,90,29,18,115,114,74,15,18,77,06,18,110,120,00,00,00,00,00,00,00 74 DATA 01,02,08,09,90,06,18,100,68,120,111,68,24,118,119,64,109,52,49,13,34,120,86,89,118,49 75 DATA 18,100,39,18,19,54,49,18,87,119,59,55,56,109,117,110,77,120,00,00,00,00,00,00,00,00 76 DATA 01,08,09,53,90,16,18,100,120,111,52,61,62,119,64,54,104,53,04,47,49,34,120,86,64,54 77 DATA 29,18,116,107,18,37,29,09,51,94,120,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 78 DATA 01,02,08,09,53,68,120,111,54,63,60,119,59,55,57,18,87,109,39,17,120,86,11,76,62,107 79 DATA 58,109,55,91,49,13,57,120,01,59,53,104,51,59,00,00,00,18,88,119,59,18,94,49,09,81,50,120 80 DATA 0,2,0,0,3,0,1,8,5,0,0,0,0,0,4,0,0,1,0,0,0,3,0,0,6,0,0,2,0,0,0,5,7,0,0,0 81 DATA 0,0,0,6,0,0,2,17,9,12,0,0,0,0,15,8,0,0,0,0,11,0,0,9,0,0,0,10,0,0,13,0,8,0,0,0 82 DATA 0,12,0,14,0,0,0,0,13,0,0,0,0,0,0,9,0,0,0,0,17,0,0,0,8,21,18,16,0,0,0,19,0,17,0,0 83 DATA 18,0,20,21,0,0,0,0,0,19,0,0,17,22,19,23,0,0,21,0,0,24,0,0,0,0,21,0,0,0,0,0,22,25,0,0 84 DATA 26,0,24,27,0,0,0,25,0,0,0,0,0,0,25,28,0,0,0,0,27,29,0,0,30,0,28,0,0,0,0,29,0,31,0,0 85 DATA 0,32,30,0,0,0,31,0,0,0,0,0 86 DATA "north",99,"south",99,"east",99,"west",99,"up",99,"down",99 87 DATA "lantern",4,"oil",7,"book",26,"rope",7,"dagger",4,"helmet",11,"armor",26,"shield",15,"ring",1019,"cloak",1019 88 DATA "villager",2,"werewolf",22,"hobbit",11,"dragon",15,"goblin",19,"vampire",32 89 DATA "go","get","drop","wield","unwield","wear","remove","light","use","climb","examine","read","cut","kill" 90 DATA "...","...","...","...","...","...","lantern: a brass lantern","oil: a flash of oil" 91 DATA "book: an ancient book with a dusty cover","rope: a coil of rope about 10 feet in length" 92 DATA "dagger: a small metal dagger","helmet: a brass helmet. It is stained in blood","armor: a suit of chainlinked metal armor" 93 DATA "shield: a metal shield with an eagle on the front","ring: a magical ring of protection. It glows softly." 94 DATA "cloak: an elven cloak of invisibility","villager: a simple peasant","werewolf: an evil werewolf with fiery red eyes" 95 DATA "hobbit: a curious creature with pointed ears","dragon: a large dragon with tough scales and powerful claws" 96 DATA "goblin: a menacing goblin with an evil heart","vampire: a dark lord of the damned. He is pure evil!" 97 FOR X = 1 TO 32: FOR Y = 1 TO 6: READ M(X, Y): NEXT Y: NEXT X: FOR X = 1 TO 22: READ NO$(X), LO(X): NEXT X 98 FOR X = 1 TO 14: READ VB$(X): NEXT X: FOR X = 1 TO 22: READ OB$(X): NEXT X: H = 100: HM = 100: E = 0: G = 75: DM = 1: AC = 0: LT = 0: KT = 0: IV = 0 99 COLOR 15, 8: CLS : R = 1: PRINT : PRINT : PRINT : PRINT "Fairlight Castle": PRINT "By: Paul Panks (dunric@yahoo.com)": PRINT : GOTO 2000 100 COLOR 15, 8: S = (R * 2) - 1: FOR X = S TO S + 1: FOR Y = 1 TO 26 101 IF DW(X, Y) = 119 OR DW(X, Y) = 120 THEN PRINT DL$(DW(X, Y)); 102 IF DW(X, Y) <> 119 AND DW(X, Y) <> 120 THEN PRINT " "; DL$(DW(X, Y)); 103 NEXT Y: NEXT X 104 IF R = 32 THEN PRINT " "; DL$(DW(32, 27)); DL$(DW(32, 28)); 105 PRINT : COLOR 7, 8: PRINT "Obvious exits: "; : COLOR 6, 8: PRINT "< "; 106 FOR X = 1 TO 6: IF M(R, X) > 0 THEN COLOR 14, 8: PRINT NO$(X); " "; 107 NEXT X: COLOR 6, 8: PRINT ">": GOSUB 3200: IF R = 29 THEN COLOR 14, 8: PRINT "There is a grand piano here, in the middle of the parlor.": M(30, 4) = 0 108 COLOR 12, 8: FOR X = 7 TO 22: IF LO(X) = R THEN PRINT NO$(X) 109 NEXT X: RANDOMIZE TIMER: I = INT(RND * 50) + 1: IF I = 12 THEN COLOR 11, 8: PRINT "You hear the distant rumble of thunder." 110 IF I = 13 THEN COLOR 11, 1: PRINT "You see lightning flash across the sky, scarring it dead across.": FOR X = 1 TO 15: COLOR 11, X: NEXT X 111 IF I = 14 AND R < 23 THEN COLOR 11, 8: PRINT "A gentle rain pelts the ground." 112 IF I = 15 AND R < 23 THEN COLOR 11, 8: PRINT "A cool wind blows from the southwest." 113 IF I = 16 AND R < 23 THEN COLOR 11, 8: PRINT "The moon hangs overhead, casting dark shadows." 114 IF I = 17 AND R < 23 THEN COLOR 11, 8: PRINT "You notice storm clouds on the horizon." 115 N = 0: V = 0: A = 0: Z = 0: A$ = "": XL$ = "": N$ = "": V$ = "": FOR X = 1 TO 5: WD$(X) = "": NEXT X: COLOR 6, 8: PRINT ">"; : COLOR 10, 8: INPUT "", A$ 116 IF A$ = "help" OR A$ = "hint" THEN GOTO 400 117 IF A$ = "n" OR A$ = "go north" OR A$ = "north" THEN N = 1: GOTO 150 118 IF A$ = "s" OR A$ = "go south" OR A$ = "south" THEN N = 2: GOTO 150 119 IF A$ = "e" OR A$ = "go east" OR A$ = "east" THEN N = 3: GOTO 150 120 IF A$ = "w" OR A$ = "go west" OR A$ = "west" THEN N = 4: GOTO 150 121 IF A$ = "u" OR A$ = "go up" OR A$ = "up" THEN N = 5: GOTO 150 122 IF A$ = "d" OR A$ = "go down" OR A$ = "down" THEN N = 6: GOTO 150 123 IF A$ = "l" OR A$ = "look" THEN GOTO 100 124 IF A$ = "q" OR A$ = "quit" OR A$ = "bye" OR A$ = "exit" THEN COLOR 15, 8: CLS : PRINT "Thanks for playing!": END 125 IF A$ = "i" OR A$ = "inv" OR A$ = "inventory" THEN GOTO 140 126 IF A$ = "?" OR A$ = "sc" OR A$ = "score" THEN GOTO 145 127 IF A$ = "save" OR A$ = "save game" OR A$ = "restore" OR A$ = "restore game" THEN GOTO 2100 128 IF A$ = "read book" THEN GOTO 2700 129 S = 1: Z = 0: XL$ = A$: IF A$ = "play piano" THEN GOTO 3100 130 FOR A = 1 TO LEN(XL$): IF MID$(XL$, A, 1) = " " THEN A$ = MID$(XL$, S, A - S): S = A + 1: Z = Z + 1: WD$(Z) = A$ 131 NEXT A: Z = Z + 1: A$ = MID$(XL$, S, A - S): WD$(Z) = A$: IF Z > 5 THEN COLOR 15, 8: PRINT "Command is too complex.": GOTO 115 132 V$ = WD$(1): N$ = WD$(2): IF WD$(3) = "and" OR WD$(3) = "then" THEN COLOR 15, 8: PRINT "No 'and' with 'then' allowed.": GOTO 115 133 BG = 0: IF WD$(3) = "in" OR WD$(3) = "from" OR WD$(3) = "to" THEN V$ = WD$(1): N$ = WD$(2): BG = 1 135 V = 0: N = 0: FOR X = 1 TO 14: IF WD$(1) = VB$(X) OR WD$(3) = VB$(X) THEN V = X: X = 14 136 NEXT X: FOR X = 1 TO 22: IF WD$(2) = NO$(X) OR WD$(4) = NO$(X) THEN N = X: X = 22 137 NEXT X: IF V = 0 THEN IF V < 10 THEN COLOR 12, 8: PRINT "What?": GOTO 115 138 ON V GOTO 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 250, 260, 270 139 COLOR 12, 8: PRINT "What?": GOTO 115 140 S = 0: COLOR 15, 8: PRINT "You are carrying:": FOR X = 7 TO 22: IF LO(X) = 101 THEN COLOR 7, 8: PRINT " "; NO$(X): S = 1 141 IF LO(X) = 105 THEN COLOR 11, 8: PRINT " "; NO$(X); : COLOR 12, 8: PRINT " (wielded)": S = 1 142 IF LO(X) = 205 THEN COLOR 10, 8: PRINT " "; NO$(X); : COLOR 13, 8: PRINT " (worn)": S = 1 143 NEXT X: IF S = 0 THEN COLOR 12, 8: PRINT "Alas, you are empty handed." 144 GOTO 115 145 COLOR 11, 8: PRINT "You have"; H; "hit points (of"; HM; "total)." 146 PRINT "You are carrying"; G; "gold coins and": PRINT "have"; E; "experience points." 147 GOTO 115 150 IF M(R, N) = 0 THEN COLOR 12, 8: PRINT "You can't go that way.": GOTO 115 151 IF R = 8 AND N = 2 THEN IF LO(7) <> 101 AND LO(7) <> R OR LT = 0 THEN COLOR 12, 8: PRINT "It is much too dark to move that way!": COLOR 15, 8: PRINT "You need a lantern (plus a fuel source).": GOTO 115 152 IF R = 22 AND N = 4 THEN IF LO(18) = R THEN IF IV = 0 THEN GOTO 2600 153 IF R = 15 AND N = 4 THEN IF LO(20) = R THEN IF IV = 0 THEN GOTO 2601 154 IF R = 22 AND N = 4 THEN IF LO(18) = R THEN IF IV = 1 AND LO(15) = 205 AND LO(16) = 205 THEN COLOR 11, 8: PRINT "The ring has reversed the magic": PRINT "of the cloak...": IV = 0: GOTO 150 155 IF R = 27 THEN COLOR 7, 8: PRINT "You hear a faint noise somewhere...": M(30, 4) = 0 157 IF R = 22 AND N = 4 THEN IF LO(18) = R THEN IF IV = 1 THEN COLOR 11, 8: PRINT "The werewolf fails to notice you..." 158 IF R = 15 AND N = 4 THEN IF LO(20) = R THEN IF IV = 1 THEN COLOR 11, 8: PRINT "The dragon fails to notice your presence..." 159 R = M(R, N): COLOR 11, 8: PRINT "You move "; NO$(N); "...": GOTO 100 160 IF N > 16 OR N < 7 OR LO(N) <> R THEN COLOR 12, 8: PRINT "You can't do that.": GOTO 115 161 LO(N) = 101: COLOR 15, 8: PRINT "Taken.": GOTO 115 170 IF N > 16 OR N < 7 OR LO(N) <> 101 THEN COLOR 12, 8: PRINT "You can't do that.": GOTO 115 171 IF LO(N) = 105 THEN COLOR 12, 8: PRINT "You must unwield that first.": GOTO 115 172 IF LO(N) = 205 THEN COLOR 12, 8: PRINT "You must remove that first.": GOTO 115 173 LO(N) = R: COLOR 15, 8: PRINT "Dropped.": GOTO 115 180 IF N <> 11 OR LO(N) <> 101 THEN COLOR 12, 8: PRINT "You can't wield that.": GOTO 115 181 LO(N) = 105: COLOR 15, 8: PRINT "You wield the bladed dagger...": COLOR 11, 8: PRINT "It feels razor sharp!": GOTO 115 190 IF N <> 11 OR LO(N) <> 105 THEN COLOR 12, 8: PRINT "You can't unwield that.": GOTO 115 191 LO(N) = 101: COLOR 15, 8: PRINT "You unwield the bladed dagger...": COLOR 11, 8: PRINT "Your bare hands feel almost hallow!": GOTO 115 200 IF N < 12 OR N > 16 OR LO(N) <> 101 THEN COLOR 12, 8: PRINT "You can't wear that.": GOTO 115 201 LO(N) = 205: COLOR 15, 8: PRINT "Worn.": GOTO 115 210 IF N < 12 OR N > 16 OR LO(N) <> 205 THEN COLOR 12, 8: PRINT "You can't remove that.": GOTO 115 211 LO(N) = 101: COLOR 15, 8: PRINT "Removed.": GOTO 115 220 IF N <> 7 OR LO(N) <> 101 AND LO(N) <> R THEN COLOR 12, 8: PRINT "You can't light that, silly!": GOTO 115 221 IF LO(8) <> 101 AND LO(8) <> R THEN COLOR 12, 8: PRINT "You need a source of fuel to light it!": GOTO 115 222 IF LT = 1 THEN COLOR 15, 8: PRINT "The lantern is already aglow.": GOTO 115 223 LT = 1: COLOR 15, 8: PRINT "The lantern is now glowing.": GOTO 115 230 IF N = 7 THEN GOTO 220 231 IF LO(N) <> 101 AND LO(N) <> R AND N <> 0 THEN COLOR 12, 8: PRINT "The "; NO$(N); " isn't here.": GOTO 115 232 IF N = 10 THEN IF LO(N) = R OR LO(N) = 101 THEN IF R = 9 THEN R = 10: COLOR 11, 8: PRINT "You use the rope and climb up...": GOTO 100 233 IF N = 10 THEN IF LO(N) = R OR LO(N) = 101 THEN IF R = 10 THEN R = 9: COLOR 11, 8: PRINT "You use the rope and climb down...": GOTO 100 234 IF N = 10 THEN IF LO(N) = R OR LO(N) = 101 THEN IF R = 22 THEN COLOR 12, 8: PRINT "The castle ramparts are far too high to reach": PRINT "from here...": GOTO 100 235 IF N = 15 THEN IF LO(N) = R OR LO(N) = 101 THEN IF R = 15 THEN IF LO(20) = R THEN COLOR 15, 8: PRINT "The dragon sees your ring and shrieks in fear!": COLOR 11, 8: PRINT "The dragon flies away!": LO(20) = 10: GOTO 115 236 IF N = 16 THEN IF LO(N) = R OR LO(N) = 101 THEN COLOR 7, 8: PRINT "ZIIIIIPPPPPPPPPPPPPP!": COLOR 11, 8: PRINT "You are now invisible...": IV = 1: GOTO 100 239 IF N = 0 THEN N = 10: GOTO 231 238 COLOR 12, 8: PRINT "That has no effect here.": GOTO 115 240 IF XL$ = "climb tree" OR XL$ = "climb branch" OR XL$ = "climb branches" THEN IF R = 9 THEN IF LO(10) = 101 OR LO(10) = R THEN GOTO 230 241 IF XL$ = "climb tree" OR XL$ = "climb branch" OR XL$ = "climb branches" THEN IF R = 10 THEN IF LO(10) = 101 OR LO(10) = R THEN GOTO 230 242 IF XL$ = "climb castle" OR XL$ = "climb wall" OR XL$ = "climb walls" OR XL$ = "climb rampart" OR XL$ = "climb ramparts" THEN COLOR 15, 8: PRINT "What, you think you can scale walls now?": GOTO 995 243 IF XL$ = "climb tree" OR XL$ = "climb trees" THEN COLOR 15, 8: PRINT "Try as you might, you can't seem to reach it.": GOTO 115 244 COLOR 12, 8: PRINT "You can't climb that, silly!": GOTO 115 250 IF N <> 0 AND LO(N) <> 101 AND LO(N) <> 105 AND LO(N) <> 205 AND LO(N) <> R THEN COLOR 12, 8: PRINT "You can't examine that.": GOTO 115 255 IF N = 0 THEN GOTO 2500 259 COLOR 7, 8: PRINT OB$(N): GOTO 115 260 IF R = 9 THEN IF XL$ = "cut tree" THEN IF LO(11) <> 101 THEN COLOR 15, 8: PRINT "You'll need something sharp to cut down that tree!": GOTO 115 261 IF R = 9 THEN IF XL$ = "cut tree" THEN IF KT = 0 THEN KT = 1: IF LO(11) = 101 OR LO(11) = 105 THEN COLOR 7, 8: PRINT "TIIIMMMMBBBBEEEERRRRR!!!!!": COLOR 14, 8: PRINT "< THUD!! >": COLOR 15, 8: PRINT "The mighty oak has fallen!": R = 10: GOTO 100 262 IF R = 9 THEN IF XL$ = "cut tree" THEN IF KT = 1 THEN COLOR 15, 8: PRINT "The tree is already chopped down.": GOTO 115 263 COLOR 12, 8: PRINT "You can't cut that. Find a tree or something else.": GOTO 115 270 COLOR 15, 8: IF LO(N) <> R THEN COLOR 12, 8: PRINT "That isn't here.": GOTO 115 274 IF N < 17 THEN COLOR 12, 8: PRINT "You can't kill that.": GOTO 115 315 GOSUB 356: AC = 1: FOR X = 12 TO 16: IF LO(X) = 205 THEN AC = AC + 2 316 NEXT X: GOSUB 353: COLOR 6, 8: PRINT ">": COLOR 15, 8: PRINT "You attack:": COLOR 15, 8: IF I < 6 THEN PRINT "Alas, you missed the "; NO$(N); "..." 317 IF I > 5 AND I < 10 THEN PRINT "You hit "; NO$(N); " hard.": DT = DM + 1: M = M - DT 318 IF I > 9 AND I < 15 THEN COLOR 11, 8: PRINT "AMAZING BLOW!": PRINT "You destroyed "; NO$(N); "!": DT = DM * 3: M = M - DT 319 IF I > 14 AND I < 20 THEN COLOR 10, 8: PRINT "A THOR-LIKE BLOW!": PRINT "You crushed "; NO$(N); " into atoms!": DT = DM * 5: M = M - DT 320 IF I > 19 AND I < 25 THEN COLOR 14, 8: PRINT "The "; NO$(N); " deflected your blow." 321 IF I > 24 AND I < 29 THEN COLOR 15, 8: PRINT "The "; NO$(N); " dodged your attack." 322 IF LO(15) = 205 THEN IF I > 8 AND I < 15 THEN COLOR 14, 8: PRINT "Your RING pulsates!": COLOR 7, 8: PRINT "The "; NO$(N); " is weakened somewhat.": DT = DM * 2: M = M - DT 323 IF LO(11) = 105 THEN IF I > 28 AND I < 32 THEN COLOR 10, 8: PRINT "Your DAGGER glows!": COLOR 11, 8: PRINT "A bolt of lightning hits "; NO$(N); "!": DT = DM * 4: M = M - DT 324 IF LO(13) = 205 THEN IF I > 30 AND I < 33 THEN COLOR 7, 8: PRINT "Your ARMOR feels warm!": COLOR 14, 8: PRINT "You regained a few hit points.": H = H + I 325 IF I > 28 THEN COLOR 15, 8: PRINT "You grazed the skin of "; NO$(N); "...": DT = DM + 5: M = M - DT 326 PRINT : COLOR 7, 8: PRINT "< More >": COLOR 14, 8: PRINT "*** Press any key ***": GOTO 3000 327 IF I > 20 AND I < 24 THEN IF IV = 1 AND LO(16) = 205 THEN COLOR 7, 8: PRINT "The "; NO$(N); " is momentarily": PRINT "blinded by your cloak...": GOTO 335 328 GOSUB 353: COLOR 6, 8: PRINT ">": COLOR 15, 8: PRINT "The "; NO$(N); " attacks:": COLOR 15, 8: IF I < 6 THEN PRINT "It missed you..." 329 IF I > 5 AND I < 10 THEN PRINT "The "; NO$(N); " hit you very hard.": DT = I * 1: DT = DT - AC: H = H - ABS(DT) 330 IF I > 9 AND I < 15 THEN COLOR 11, 8: PRINT "AMAZING BLOW!": PRINT "The "; NO$(N); " destroyed you!": DT = I * 3: DT = DT - AC: H = H - ABS(DT) 331 IF I > 14 AND I < 20 THEN COLOR 10, 8: PRINT "A THOR-LIKE BLOW!": PRINT "The "; NO$(N); " crushed you into atoms!": DT = I * 5: DT = DT - AC: H = H - ABS(DT) 332 IF I > 19 AND I < 25 THEN COLOR 14, 8: PRINT "You deflected the "; NO$(N); "'s blow." 333 IF I > 24 AND I < 29 THEN IF N = 22 THEN IF IV = 0 THEN COLOR 13, 8: PRINT "The vampire LUNGES at you!!": COLOR 11, 8: PRINT "The vampire sinks his teeth": PRINT "into your neck!!": H = H - 100 334 IF I > 28 THEN COLOR 15, 8: PRINT "It grazed you slightly...": DT = 5: H = H - DT 335 IF H < 1 THEN H = 0: M = 1 336 IF M < 1 THEN M = 0 337 PRINT : COLOR 15, 8: PRINT "Your HP:"; : COLOR 7, 8: PRINT H: COLOR 15, 8: PRINT "Their HP:"; : COLOR 12, 8: PRINT M: PRINT : COLOR 15, 8 338 IF H < 1 THEN COLOR 12, 8: PRINT "Alas, you have died...": PRINT : COLOR 15, 8: GOTO 346 339 IF M < 1 THEN COLOR 12, 8: PRINT "You killed "; NO$(N); ".": COLOR 11, 8: PRINT "You gained"; I + N; "experience points": PRINT "and"; I; "gold coins.": GOTO 342 340 IF H > HM THEN H = HM 341 GOTO 315 342 E = E + I + N: G = G + I: LO(N) = 998: FOR X = 7 TO 22: IF LO(X) = 1000 + N THEN COLOR 7, 8: PRINT "You found "; NO$(X); " on it.": LO(X) = R 343 NEXT X: IF N = 22 THEN GOTO 1000 344 H = H + I: HM = HM + 25: IF H > HM THEN H = HM 345 GOTO 115 346 PRINT "The "; NO$(N); " has defeated you in battle.": COLOR 12, 8: PRINT "The game is over...": COLOR 14, 8: PRINT "< Press ENTER key >" 347 A$ = INKEY$: IF A$ <> CHR$(13) AND A$ <> CHR$(32) THEN GOTO 347 348 COLOR 15, 8: CLS : PRINT "Thanks for playing!": END 353 RANDOMIZE TIMER: I = INT(RND * 35) + 1 354 IF AC = 0 THEN AC = 1 355 RETURN 356 RANDOMIZE TIMER: M = INT(RND * 250) + 1: DM = 0: IF LO(11) = 105 THEN DM = 8 357 IF DM = 0 THEN DM = 1 358 RETURN 400 COLOR 15, 8: PRINT "Help Commands": PRINT : COLOR 7, 8: PRINT "This game is a text adventure. You play by entering" 401 PRINT "in one or two word commands as follows:": PRINT : COLOR 10, 8 402 PRINT "go north (or south,east,west,up,down)": PRINT "wield sword": PRINT "unwield sword": PRINT "wear armor": PRINT "remove armor" 403 PRINT "get lantern": PRINT "drop lantern": PRINT "examine ring": PRINT "use rope": PRINT "kill goblin": PRINT "climb tree" 404 PRINT "cut tree": PRINT "light lantern": PRINT "play piano": PRINT "save game": PRINT "inventory (or 'i')": PRINT "score": PRINT "quit": PRINT 405 GOTO 115 950 COLOR 15, 8: PRINT "You turn ghostly white and whither...dead away!" 990 PRINT : COLOR 7, 8: PRINT "< The End >": PRINT 991 COLOR 15, 8: PRINT "Play again? (Y/N): "; : COLOR 11, 8 992 A$ = INKEY$: IF A$ = "" THEN GOTO 992 993 IF A$ = "y" OR A$ = "Y" OR A$ = "yes" OR A$ = "Yes" OR A$ = "YES" THEN PRINT "Yes": PRINT : GOTO 99 994 PRINT "No": SLEEP 1: END 995 COLOR 11, 8: PRINT "Next you'll be flying from trees like a squirrel!": GOTO 115 1000 PRINT : COLOR 10, 8: PRINT "*** Congratulations! ***": PRINT : COLOR 11, 8 1001 PRINT "You stand over the crumpled body of the evil vampire, his blood" 1002 PRINT "oozing from your bladed dagger. What a pitiful sight indeed! This" 1003 PRINT "vampire was nothing more than a hallow specter, haunting the" 1004 PRINT "castle with a quenchless zest for fresh blood and unwary victims...": PRINT 1005 PRINT "As the lightning crashes against the castle walls outside, you" 1006 PRINT "hear the faint howl of a lone werewolf, crying to moon for a" 1007 PRINT "fallen master. But you don't dare pity the beast, for he'll be" 1008 PRINT "next on your list of ill-gotten burden...": PRINT : COLOR 7, 8: PRINT "< The End >" 1009 GOTO 1009 2000 COLOR 15, 8: PRINT "Are you playing a saved game (Y/N)?"; : COLOR 11, 8 2001 A$ = INKEY$: IF A$ = "" THEN GOTO 2001 2002 IF A$ = "y" OR A$ = "Y" OR A$ = "YES" OR A$ = "yes" OR A$ = "Yes" THEN PRINT " Yes": PRINT : GOTO 2010 2003 IF A$ = "n" OR A$ = "N" OR A$ = "No" OR A$ = "no" OR A$ = "NO" THEN PRINT " No": PRINT : GOTO 100 2004 GOTO 2001 2010 OPEN "game.sav" FOR INPUT AS #1 2011 INPUT #1, KT: INPUT #1, LT: INPUT #1, DM: INPUT #1, AC: INPUT #1, H: INPUT #1, HM 2012 INPUT #1, G: INPUT #1, E: INPUT #1, IV: INPUT #1, R 2013 FOR X = 7 TO 22: INPUT #1, LO(X): NEXT X 2014 CLOSE #1: COLOR 7, 8: PRINT "Game loaded.": PRINT : GOTO 100 2100 OPEN "game.sav" FOR OUTPUT AS #1 2101 PRINT #1, KT: PRINT #1, LT: PRINT #1, DM: PRINT #1, AC: PRINT #1, H: PRINT #1, HM 2102 PRINT #1, G: PRINT #1, E: PRINT #1, IV: PRINT #1, R 2103 FOR X = 7 TO 22: PRINT #1, LO(X): NEXT X 2104 CLOSE #1: COLOR 7, 8: PRINT "Game saved.": GOTO 115 2500 RANDOMIZE TIMER: I = INT(RND * 15) + 1 2501 COLOR 7, 8: PRINT N$; ": "; 2502 IF I = 1 THEN PRINT "looks remarkably good despite advancing age." 2503 IF I = 2 THEN PRINT "appears to glimmer in the fading light." 2504 IF I = 3 THEN PRINT "appears green and lifeless." 2505 IF I = 4 THEN PRINT "needs a new brain. Can you help?" 2506 IF I = 5 THEN PRINT "what do you want to know about it?" 2507 IF I = 6 THEN PRINT "appears rustic and old." 2508 IF I = 7 THEN PRINT "looks aged by time." 2509 IF I = 8 THEN PRINT "is just you hallucinating. Oh dear!" 2510 IF I = 9 THEN PRINT "you notice nothing unusual about it." 2511 IF I > 9 THEN PRINT "has a magical aura about it." 2512 GOTO 115 2600 COLOR 12, 8: PRINT "The werewolf lunges at you!": COLOR 15, 8: PRINT "It growls,'"; : COLOR 11, 8: PRINT "No humans shall enter here!"; : COLOR 15, 8: PRINT "'": COLOR 7, 8: PRINT "You flee north...": R = 21: GOTO 100 2601 COLOR 12, 8: PRINT "The dragon grabs you!": COLOR 15, 8: PRINT "It hisses,'"; : COLOR 11, 8: PRINT "Care for a DANCE?!"; : COLOR 15, 8: PRINT "'": COLOR 11, 8: PRINT "The dragon slams you against the ground!": GOTO 950 2700 IF LO(9) <> 101 AND LO(9) <> R THEN COLOR 12, 8: PRINT "The book isn't around to read!": GOTO 115 2701 COLOR 11, 8: PRINT "You read from the book...": PRINT 2702 COLOR 7, 8: PRINT " '....all vampires have an eternal weakness: elven cloaks. These" 2703 COLOR 7, 8: PRINT " magical cloaks make the wearer invisible for a time, rendering" 2704 COLOR 7, 8: PRINT " all special attacks useless. Caution should be taken when worn" 2705 COLOR 7, 8: PRINT " with the ring: the magic of both will counteract each....'": PRINT 2706 GOTO 115 3000 A$ = INKEY$: IF A$ = "" THEN GOTO 3000 3001 GOTO 327 3100 I = 0: TR = 0: IF R <> 29 THEN COLOR 12, 8: PRINT "You are not inside the castle parlor!": GOTO 115 3101 COLOR 7, 8: PRINT "You look closely at the keys...": PRINT 3102 COLOR 15, 8: PRINT " | | | | | | " 3103 COLOR 15, 8: PRINT " | | | | | | " 3104 COLOR 15, 8: PRINT " A | B| C| D| E| F | G " 3105 COLOR 15, 8: PRINT "___|__|__|__|__|___|___" 3106 TR = TR + 1: COLOR 14, 8: PRINT "Play which note (A-G)?: "; : COLOR 7, 8 3107 A$ = INKEY$: IF A$ = "" THEN GOTO 3107 3108 IF A$ = "A" OR A$ = "a" THEN I = I + 1: PRINT A$ 3109 IF A$ = "B" OR A$ = "b" THEN I = I + 2: PRINT A$ 3110 IF A$ = "C" OR A$ = "c" THEN I = I + 3: PRINT A$ 3111 IF A$ = "D" OR A$ = "d" THEN I = I + 4: PRINT A$ 3112 IF A$ = "E" OR A$ = "e" THEN I = I + 5: PRINT A$ 3113 IF A$ = "F" OR A$ = "f" THEN I = I + 6: PRINT A$ 3114 IF A$ = "G" OR A$ = "g" THEN I = I + 7: PRINT A$ 3115 IF TR < 4 THEN GOTO 3106 3116 PRINT : IF I = 8 THEN I = 0: COLOR 10, 8: PRINT "EUREKA!": COLOR 15, 8: PRINT "You strike the keys and play beautiful music!": COLOR 7, 8: PRINT "You hear a faint sound nearby...": M(30, 4) = 31: GOTO 115 3117 COLOR 15, 8: PRINT "The piano plays your rough cord.": I = 0: GOTO 115 3200 IF R = 30 THEN COLOR 14, 1: PRINT "Someone has blocked the western exit.": COLOR 7, 1: PRINT "(if you could only get through it...)" 3201 RETURN