DIM es$(122),rn$(150),no$(94),ao$(94),vb$(36),rm$(150),de$(94),ob$(94),du(94) DIM mp%(150, 6),weight(94),price(94),mh(94),lc(94),dm(94),vis(150),w$(50),al$(36),bl$(10) cls : SCREEN 0: df = 15: lv = 1: nl& = 61 * (lv ^ 2): wp = 1: ms$ = "You are already wearing a type of:" OPEN "EXAMS.DAT" FOR INPUT AS #1: FOR x = 0 TO 122: LINE INPUT #1, es$(x): NEXT: CLOSE 1 OPEN "data.dat" FOR INPUT AS #1 FOR x = 1 TO 60: INPUT #1, no$(x): INPUT #1, weight(x): INPUT #1, price(x): INPUT #1, lc(x): INPUT #1, dm(x): NEXT FOR x = 61 TO 94: INPUT #1, no$(x): INPUT #1, price(x): INPUT #1, lc(x): INPUT #1, mh(x): INPUT #1, dm(x): NEXT FOR x = 1 TO 36: INPUT #1, vb$(x): NEXT: FOR x = 7 TO 60: INPUT #1, ob$(x): NEXT FOR x = 7 TO 94: LINE INPUT #1, de$(x): NEXT: COLOR df: PALETTE 0, 1: rm = 1: aa = 0: dy = 0: fd = 500: wa = 500: fm = 500: wm = 500: hp = 300: hm = 300: mp = 75: mm = 75 FOR x = 61 TO 94: INPUT #1, ao$(x):NEXT FOR x = 1 TO 87: FOR y = 1 TO 6: INPUT #1, mp%(x, y): NEXT y, x: mx = 15 FOR x = 1 TO 87: INPUT #1, rn$(x): NEXT: lit = 1:CLOSE 1:lc(61)=26:lc(63)=78 OPEN "rooms.dat" FOR INPUT AS #1: FOR x = 1 TO 87: LINE INPUT #1, rm$(x): NEXT: CLOSE 1 RANDOMIZE TIMER:pw=int(rnd*9999)+1:open "password.dat" for output as #1:print #1,pw:close 1 COLOR df:cls:palette 0,1 PRINT "Westfront Omega: The Amulet of Vega (Version 0.81)": PRINT : PRINT "Could it be true? Is this actually a bondafide, 100% Zork-like text-" PRINT "adventure? Not like Westfront PC, which is more like a SUD (Single User": PRINT "Dungeon)?": PRINT : PRINT "Yup! It's true! I must admit my inspiration for this game developed from" PRINT "playing Yoshi's Birthday too many times. A great game!" PRINT : PRINT "Anyways, have fun and don't forget to send me e-mail. And yes, examining": PRINT "the room descriptions DOES matter in this game! So examine EVERYTHING!": PRINT : PRINT "On to the game... :)" COLOR 7: PRINT : PRINT "PRESS ANY KEY TO CONTINUE": COLOR df 24 ry$ = INKEY$: IF ry$ = "" THEN 24 torch = lit:for x=61 to 94:t(x)=mh(x):next 25 cls:palette 0,0:print"Are you playing a saved game? :"; 26 ry$=inkey$:if ry$="" then goto 26 27 if ry$<>"y" and ry$<>"n" then goto 26 28 ? ry$:if ry$="y" then goto lde 29 ?:input "Enter a name for your character (8 characters max):",na$ 30 cls:palette 0,1:df=15:if note=1 then de$(12) = "A smokey glass bottle. It is empty." weight=0:for x=7 to 60:if lc(x)=0 or lc(x)=105 or lc(x)=205 then weight=weight+weight(x) next hasjack: viz=int(rnd*7)+1 if viz<1 or viz>7 then goto hasjack if viz=1 then falk=1 if viz=2 then falk=3 if viz=3 then falk=6 if viz=4 then falk=12 if viz=5 then falk=32 if viz=6 then falk=38 if viz=7 then falk=78 31 LOCATE 3, 1: gs=1:? "Westfront Omega: The Amulet of Vega": PRINT "Build 62, Version 0.81": PRINT "(C)opyright 1998-2002 by Paul Panks": PRINT "All rights reserved.": PRINT : PRINT 32 if by=1 then lc(94)=rm if rm>78 and rm<88 then palette 0,0:df=10:else if rm<79 then palette 0,1:df=15 35 GOSUB RoomDesc 48 a$ = "": no$ = "": obj = 0: n$ = "": v$ = "": n = 0: v = 0: GOSUB AutoRoutines 65 GOSUB Parser IF dth = 1 THEN death REM look,inventory,go,enter,climb,use,drink,eat,read,examine,light,get,take,drop,put REM turn,pick,pull,open,close,lock,unlock,wield,unwield,wear,remove,kill,push,say,save,quit REM buy,sell,assess,search,help IF hlp = 1 THEN hlp = 0: ?"Done.":mn=1:GOTO 32 getit: IF ga = 1 THEN ga = 0: S = 0: FOR x = 7 TO 60: if (lc(x)=rm) and x=26 and rm=6 then ?"rope: firmly attached to the tree branch." IF (lc(x) = rm) AND (ic < 13) AND (weight + weight(x) <= mx) THEN S = 1: lc(x) = 0: weight = weight + weight(x): PRINT no$(x); ":taken.": ic = ic + 1 IF (lc(x) = rm) AND (ic < 13) AND (weight + weight(x) > mx) THEN S = 1: PRINT no$(x); ":too much weight." IF (lc(x) = rm) AND (ic > 12) then ? no$(x); ":can't carry more.": S = 1 98 NEXT: IF S = 0 THEN ?"Nothing here to get!": mn=1:return END IF mn=1:return 99 if by=1 and lc(94)<>rm then ?"Faldor isn't here!":mn=1:return ON v GOSUB 100, 110, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 165, 200, 205, 245, 245, 245, 245, 245, 245, 245, 270, 280, 290, 300, 3500,245,245,350,245,330,340 if c=1 then c=2:goto 195 if mn=0 then ?"What?":move=move+1:goto 48 move=move+1:goto 48 100 GOSUB RoomDesc mn=1:return 110 if by=1 then if fc=0 then ?"Faldor says 'I'm not carrying anything.'":mn=1:return ?"Faldor is carrying:":fa=0:s=0:for x=7 to 60:if lc(x) = -64 then ?" "; ob$(x) if lc(x) = 405 then ?" "; ob$(x);" (wielded)" if lc(x) = 505 then ?" "; ob$(x);" (worn)":fa=fa+2 next:mn=1:return end if IF ic = 0 THEN ?"You are empty handed.": GOTO 118 111 ac = 0: ?"You are carrying:":weight=0 112 S = 0: FOR x = 7 TO 60:if lc(x)=0 and x=26 and rope=1 then lc(x)=rm:rope=1 IF lc(x) = 0 THEN ?" "; ob$(x):weight=weight+weight(x) 113 IF lc(x) = 105 THEN ?" "; ob$(x); " (wielded)":weight=weight+weight(x) 114 IF lc(x) = 205 THEN ?" "; ob$(x); " (worn)": ac = ac + 2:weight=weight+weight(x) 117 NEXT 118 IF bg > 0 AND lc(7) = 0 THEN a$ = MID$(STR$(bg), 2): ?"You have "; a$; " items in bag." ?"Total weight:"; weight; "/"; mx mn=1:return 120 if by=1 then if mp%(rm,n)=0 then ?"Faldor says,'But sir, I can't go that way!'":mn=1:return if rm=6 and lc(62)=rm and n=3 then ?"The butcher stops Faldor. 'Nice try!'":mn=1:return lc(94)=mp%(rm,n):mn=1:?"Ok...":goto 170 end if if by=0 then IF mp%(rm, n) = 0 THEN ?"You can't go that way!": mn=1:return if rm=6 and lc(62)=rm and n=3 then ?"The butcher refuses to let you pass! 'Go clean up your room!'":mn=1:return if rm=79 and n=3 then ?"A magical force stops you.":?:input"'WHAT'S THE PASSWORD':",a$:a=val(a$):open "password.dat" for input as #1:input #1,pw:close 1:if a<>pw then ?"The voice says: 'You cannot proceed without the password!'":goto 48 121 vis(rm) = 1: rm = mp%(rm, n): mn=1:if fald=1 then lc(94)=rm:?"Faldor follows you "no$(n)".":goto 32 GOTO 32 end if 125 if by=1 then ?"Faldor says,'I can't fit in there.'":mn=1:return IF a$ = "enter kitchen" AND rm = 3 or a$="ent kitchen" and rm=3 THEN rm = 5: ?"Ok...":mn=1:return 126 IF a$ = "enter bedroom" AND rm = 2 or a$="ent bedroom" and rm=2 THEN rm = 1: ?"Ok...":mn=1:return 127 IF a$ = "enter treehouse" AND rm = 6 or a$="ent treehouse" and rm=6 THEN rm = 7: ?"Ok...":mn=1:return 128 if a$ = "enter castle" and rm=24 and castle=0 or a$="ent castle" and rm=24 and castle=0 then ?"The castle is much too small to be entered.":mn=1:return if a$="enter castle" and rm=24 and castle=1 or a$="ent castle" and rm=24 and castle=1 then ?"It's a tight fit, but you manage to enter the sand castle.":rm=39:mn=1:return if a$="enter circle" and rm=13 or a$="enter pentagram" and rm=13 then rm=78:?"You feel light as a feather...":?"You land softly in another dimension.":mn=1:return if a$="enter circle" and rm=78 or a$="enter pentagram" and rm=78 then rm=13:?"You feel light as a feather...":?"You land softly in another dimension.":mn=1:return if a$="enter pool" or a$="enter pools" then if rm=78 and hp<>hm then ?"You enter the pool...":?"You feel invigorated!":?"But your magic seems to fade as you gain strength.":hp=hm:mp=0:mn=1:return if a$="enter pool" or a$="enter pools" then if rm=78 and hp=hm then ?"You are too healthy to enter the pool.":mn=1:return if a$="enter pool" or a$="enter pools" then if rm=78 and mp 18 THEN ?"The chisel is ineffective here.": mn=1:return IF n = 24 AND lc(n) = 0 AND rm <> 5 THEN ?"You managed to do some damage, but the crowbar did not work successfully.": mn=1:return IF n = 26 AND lc(n) = 0 AND rm <> 6 THEN ?"The rope is ineffective without something to catch it on.": mn=1:return IF lc(n) = 105 THEN ?"You must unwield it first.": mn=1:return: ELSE IF lc(n) = 205 THEN ?"You are already using it!": mn=1:return IF lc(n) <> 0 THEN ?"What do you want to use?": mn=1:return 139 ?"Alas, it has no effect here.": mn=1:return 140 if by=1 then if obj<>12 and lc(obj)=-64 then ?"Faldor refuses your offer. 'What, are you trying to poison me?!'":mn=1:return if by=1 then if obj=12 and lc(obj)=-64 then lc(obj)=-1:fc=fc-1:?"Faldor takes a drink from the bottle.":mh(94)=250:?"'Thank you, I needed that!'":ob$(12)="An empty glass bottle.":de$(12)="An empty bottle.":mn=1:return if by=1 then if lc(obj)<>-64 then ?"Faldor says, 'Um, I'm not carrying that to "v$".'":mn=1:return IF lc(obj) <> 0 THEN ?"You cannot drink that without carrying it!": mn=1:return IF obj = 12 AND lc(obj) = 0 AND water = 1 or lc(12)=0 and water=1 and a$="drink water" THEN de$(12) = "A smokey glass bottle. It is empty.": water = 0: wa = wa + 50: ?"Ahh...What a relief!":ob$(12)="An empty glass bottle.":mn=1:return 141 IF obj = 12 AND lc(obj) = 0 AND water = 0 THEN ?"The glass is empty.": mn=1:return 142 IF obj = 52 AND lc(obj) = 0 THEN ic = ic - 1: weight = weight - weight(obj): lc(52) = 999: ?"You drink from the jug and are fully healed.": hp = hm: mn=1:return 143 IF obj = 53 AND lc(obj) = 0 THEN ?"You can only eat them.": mn=1:return 144 ?"You can't drink that.": mn=1:return 145 if by=1 then if obj<>15 and lc(obj)=-64 then ?"Faldor refuses your offer. 'What, are you trying to poison me?!'":mn=1:return if by=1 then if obj=15 and lc(obj)=-64 then lc(obj)=-1:fc=fc-1:?"Faldor eats the pickle.":mh(94)=250:?"'Thank you, I needed that!'":mn=1:return if by=1 then if lc(obj)<>-64 then ?"Faldor says, 'Um, I'm not carrying that to "v$".'":mn=1:return IF lc(obj) <> 0 THEN ?"You cannot eat that without carrying it!": mn=1:return 146 IF obj = 10 AND lc(obj) = 0 THEN ?"The egg shell is much too hard to puncture with your teeth.": mn=1:return 147 IF obj = 15 AND lc(obj) = 0 THEN lc(obj) = -1: ic = ic - 1: weight = weight - weight(obj): fd = fd + 25: ?"Yuck!...You eat the pickle and your hunger subsides.": mn=1:return 148 IF obj = 21 AND lc(obj) = 0 THEN ?"You grab a handful of sand and attempt to eat it, but then spit it out!": mn=1:return 149 ?"That cannot be eaten.": mn=1:return 150 if by=1 then ?"Faldor says, 'I only read playboy, remember?'":mn=1:return IF lc(obj) <> 0 AND lc(obj) <> rm THEN ?"That isn't here.": mn=1:return 151 IF obj = 13 AND lc(obj) = 0 OR obj = 13 AND lc(obj) = rm AND glasses = 1 AND spell = 0 THEN spell = 1: ?"You read for a few hours and after awhile you learn the 'Levitate' spell.": sc = sc + 50: mn=1:return 152 IF obj = 14 AND lc(obj) = 0 OR obj = 14 AND lc(obj) = rm AND glasses = 1 THEN ?"You read the cookbook for a few minutes and learn how to cook spagetti.": sc = sc + 5: mn=1:return 153 IF obj = 17 AND lc(obj) = 0 OR obj = 17 AND lc(obj) = rm THEN ?"The inscription reads: 'To levitate, think blue.'": sc = sc + 4: mn=1:return 154 ?"You read it but feel odd doing so.": mn=1:return 155 if by=1 then ?"Faldor is confused and doesn't know what you mean.":mn=1:return S = 0: IF lc(n) <> rm AND lc(n) <> 0 AND lc(n) <> 105 AND lc(n) <> 205 AND lc(n) <> 305 THEN ?"That isn't here.": mn=1:return 156 IF bg > 0 AND n = 7 THEN GOSUB bag: IF S = 1 THEN mn=1:return 157 IF lc(n) = 305 THEN ?"(inside bag)" 159 PRINT de$(n) if n>60 then IF mh(n)60 then ?"The "no$(n)" is carrying:":lk=0:for x=7 to 60:if lc(x)=n+500 then ? no$(x)".":lk=1 next:if lk=0 and n>60 then ?"Nothing!" if lc(94)=rm and obj=94 then if fc=0 then ?"Faldor is empty handed.":mn=1:return ?"Faldor is carrying:":fa=0:s=0:for x=7 to 60:if lc(x) = -64 then ?" "; ob$(x) if lc(x) = 405 then ?" "; ob$(x);" (wielded)" if lc(x) = 505 then ?" "; ob$(x);" (worn)":fa=fa+2 next:mn=1:return end if S = 0: mn=1:return 160 if by=1 then IF lc(17) <> -64 THEN ?"Faldor says, 'But I need matches first.'": mn=1:return IF lc(8) = -64 AND lt = 0 THEN lt = 1: ?"Faldor lights the torch.":?"The torch is now blazing.": tc = 0: mn=1:return IF lc(8) = -64 AND lt = 1 THEN ?"Faldor says, 'But the torch is already lit.'": mn=1:return ?"Faldor says, 'I can't light that.'": mn=1:return end if IF lc(17) <> 0 THEN ?"You don't have any matches!": mn=1:return 161 IF lc(8) = 0 AND lt = 0 THEN lt = 1: ?"The torch is now blazing.": tc = 0: mn=1:return 162 IF lc(8) = 0 AND lt = 1 THEN ?"The torch is already lit.": mn=1:return 163 ?"You can't light that!": mn=1:return 165 REM if n$="all" or n2$="all" then ga=1:goto getit IF pr = 1 THEN if by=1 then ?"Faldor is confused by what you mean.":mn=1:return IF (lc(7) <> 0) AND (bz = 1) THEN ?"You don't have a bag!": mn=1:return IF bz = 0 THEN ?"That object is not a container!": mn=1:return IF ic > 13 THEN ?"You can't carry anymore.": mn=1:return IF weight + weight(n) > mx THEN ?"You are too weighted down to carry it!": mn=1:return IF (n < 7) OR (n > 60) THEN ?"You can't get that from a bag!": mn=1:return IF lc(n) = 305 THEN lc(n) = 0: ic = ic + 1: bg = bg - 1: weight = weight + weight(n): PRINT no$(n); ":Ok.": mn=1:return ?"No "; no$(n); " in the bag!": mn=1:return END IF if by=1 then n=obj: if lc(n)<>rm then ?"Faldor says, 'But that isn't here, sir!'":mn=1:return if fc>6 then ?"Faldor says, 'I can't carry more.'":mn=1:return if n=26 and rope=1 then ?"Faldor complains that the rope cannot be taken.":mn=1:return fc=fc+1:lc(n)=-64:?"Faldor takes "no$(n)".":mn=1:return end if IF obj > 60 THEN ?"Don't be silly!": mn=1:return:else if by=1 and obj>60 then ?"Faldor says, 'That isn't an object, sir.'":mn=1:return IF obj = 23 AND rm = 5 AND icepick = 0 THEN icepick = 1: lc(obj) = rm IF obj = 26 AND rm = 6 AND rope = 1 THEN ?"The rope is attached firmly to the tree branch.": mn=1:return IF obj = 26 and rope=1 then ?"The rope cannot be taken.":mn=1:return 166 IF weight + weight(obj) > mx and by=0 THEN ?"You are too weighted down to carry it!": mn=1:return 167 IF lc(obj) <> rm THEN ?"That isn't here.": mn=1:return: ELSE IF lc(obj) = 0 THEN ?"You're already carrying it!": mn=1:return:else if by=1 and lc(obj)=-64 then ?"Faldor says, 'But I already have that!'":mn=1:return 168 lc(obj) = 0: ic = ic + 1: weight = weight + weight(obj): PRINT no$(obj); ":taken.": mn=1:return IF ic > 12 and by=0 THEN ?"You are carrying too much already!": mn=1:return:else if fc>6 then ?"Faldor can't carry more.":mn=1:return 200 if by=1 and n$="all" or by=1 and n2$="all" then ?"Faldor is too clumsy to pick up more than one item at a time.":mn=1:return if n$="all" or n2$="all" then 600 IF obj > 60 THEN ?"Don't be silly!": mn=1:return if lc(21)=0 and left$(a$,8)="put sand" or lc(21)=0 and left$(a$,6)="p sand" then castle=1:?"As you put the sand on top of the castle, it suddenly grows into an enormous structure! Incredible!...":mn=1:return if by=1 then if lc(obj)<>-64 then ?"Faldor says, 'I'm not carrying that, sir!'":mn=1:return lc(obj)=rm:fc=fc-1:? "Faldor drops "no$(obj)".":mn=1:return end if 201 IF lc(obj) <> 0 and lc(obj)<>105 and lc(obj)<>205 THEN ?"You aren't carrying that to drop!": mn=1:return IF lc(obj)=105 then ?"You need to unwield it first.":mn=1:return IF lc(obj)=205 then ?"You need to remove it first.":mn=1:return 202 lc(obj) = rm: ic = ic - 1: weight = weight - weight(obj): PRINT no$(obj); ":dropped.": mn=1:return 205 if by=1 then ?"Faldor says, 'I'm confused...'":mn=1:return IF lc(7) <> 0 AND bz = 1 THEN ?"You don't have a bag!": mn=1:return IF bz = 0 and n>0 THEN ?"You can't place the "; no$(n); " inside there!": mn=1:return if bz=0 and n=0 then ?"You can't place that inside!":mn=1:return IF bg > 5 THEN ?"The bag can't hold anymore!": mn=1:return IF n = 7 OR n < 7 THEN ?"Sorry, but you can't put that inside the bag.": mn=1:return IF n > 60 THEN ?"You can't put the "; no$(n); " in the bag!": mn=1:return IF lc(n) = 105 THEN lc(n) = 0: wd = 0: ?"You unwield the "; no$(n); "." IF lc(n) = 205 THEN lc(n) = 0: ac = ac - 2: ?"You remove the "; no$(n); "." IF lc(n) = 0 THEN lc(n) = 305: ic = ic - 1: bg = bg + 1: weight = weight - weight(n): PRINT no$(n); ":Ok.": mn=1:return ?"That isn't here.": mn=1:return 245 if left$(a$,4)<>"say " or left$(a$,3)<>"say" then ?"What you expected didn't happen.":mn=1:return for x=1 to len(a$):if mid$(a$,x,1)=" " then b$=mid$(a$,x+1,x+77):x=255:goto 246 next 246 ?"You say '"b$"'.":mn=1:return 270 IF n > 26 AND n < 32 OR n = 24 THEN 272 271 if by=0 then ?"That cannot be wielded.": mn=1:return:else if by=1 then ?"Faldor complains that he cannot wield that.":mn=1:return 272 IF lc(n) = 105 and by=0 THEN ?"You are already wielding it!": mn=1:return:else if lc(n)=405 and by=1 then ?"Faldor says, 'But I'm already wielding it.'":mn=1:return 273 IF lc(n) = 205 and by=0 THEN ?"Armor cannot be wielded.": mn=1:return:else if lc(n)=505 and by=1 then ?"Faldor says, 'I can't wield armor, silly!'":mn=1:return 274 IF lc(n) = 305 THEN ?"You must take it out of the bag first!": mn=1:return 275 IF lc(n) <> 0 AND lc(n) <> 105 and by=0 THEN ?"You're not carrying that!": mn=1:return:else if lc(n)<>-64 and lc(n)<>405 and by=1 then ?"Faldor says, 'I'm not carrying that, sir.'":mn=1:return if by=1 then for x=26 to 32:if lc(x)=405 or lc(9)=405 or fz=1 then ?"Faldor says, 'I'm wielding something already.'":mn=1:return next:if n=24 then ?"Faldor says, 'Not really my choice of weapon, but ok..." end if 276 FOR x = 26 TO 32: IF lc(x) = 105 and by=0 OR lc(9) = 105 and by=0 or wd=1 and by=0 THEN ?"You're wielding something already!": mn=1:return 277 NEXT: IF n = 24 THEN ?"Not exactly a weapon, but ok..." 278 if by=0 then lc(n) = 105: ?"You wield "; no$(n); ".": wd = 1: wp = dm(n): mn=1:return lc(n)=405:?"Faldor wields ";no$(n);".":fz=1:wf=dm(n):?"Faldor says, 'Gracias.'":mn=1:return 280 if n$="all" and by=1 or n2$="all" and by=1 then ?"Faldor is confused and can only unwield one item at a time.":mn=1:return if n$="all" or n2$="all" then wearit IF n > 26 AND n < 32 OR n = 24 THEN 282 281 if by=0 then ?"That cannot be unwielded.": mn=1:return:else if by=1 then ?"Faldor says, 'I can't unwield that, sir.'":mn=1:return 282 IF lc(n) = 0 and by=0 THEN ?"You're not wielding it!": mn=1:return:else if lc(n)=-64 and by=1 then ?"Faldor says, 'I'm not wielding that, sir.'":mn=1:return 283 IF lc(n) = 205 and by=0 THEN ?"Armor cannot be unwielded.": mn=1:return:else if lc(n)=505 and by=1 then ?"Faldor says, 'I can't unwield a piece of armor.'":mn=1:return 284 IF lc(n) = 305 THEN ?"Take it out of the bag first.": mn=1:return 285 IF lc(n) <> 0 AND lc(n) <> 105 and by=0 THEN ?"You're not carrying that!": mn=1:return:else IF lc(n) <> -64 AND lc(n) <> 405 and by=1 THEN ?"Faldor says, 'But I'm not carrying that!'": mn=1:return 286 IF n = 24 and by=0 THEN ?"It's feels ackward, but ok...":else if n=24 and by=1 then ?"Faldor says, 'A bit ackward, but alright...'" 287 if by=0 then lc(n) = 0: ?"You unwield "; no$(n); ".": wd = 0: wp = 1: mn=1:return lc(n)=-64:?"Faldor unwields ";no$(n);".":fz=0:wf=1:mn=1:return 290 IF n > 31 AND n < 50 OR n = 9 THEN 292 291 if by=0 then ?"That cannot be worn!": mn=1:return:else if by=1 then ?"Faldor says, 'But I can't wear that!'":mn=1:return 292 IF lc(n) = 205 and by=0 THEN ?"You're already wearing it!": mn=1:return:else if lc(n)=505 and by=1 then ?"Faldor says, 'But I'm already wearing that!'":mn=1:return if by=1 then IF lc(32) = 505 AND n = 33 OR lc(33) = 505 AND n = 32 OR lc(36) = 505 AND n = 37 OR lc(37) = 505 AND n = 36 then ? ms$: mn=1:return IF lc(42) = 505 AND n = 43 OR lc(43) = 505 AND n = 42 then ? ms$: mn=1:return IF lc(38) = 505 AND n = 39 OR lc(39) = 505 AND n = 38 OR lc(40) = 505 AND n = 41 OR lc(41) = 505 AND n = 40 OR lc(44) = 505 AND n = 46 OR lc(46) = 505 AND n = 44 then ? ms$: mn=1:return IF lc(36) = 505 AND n = 49 OR lc(49) = 505 AND n = 36 OR lc(37) = 505 AND n = 49 OR lc(49) = 505 AND n = 37 OR lc(45) = 505 AND n = 48 OR lc(48) = 505 AND n = 45 then ? ms$: mn=1:return IF lc(40) = 505 AND n = 47 OR lc(47) = 505 AND n = 40 OR lc(41) = 505 AND n = 47 then ? ms$: mn=1:return IF lc(47) = 505 AND n = 40 OR lc(41) = 505 AND n = 47 OR lc(47) = 505 AND n = 41 then ? ms$: mn=1:return IF lc(9) = 505 AND n = 45 OR lc(9) = 505 AND n = 48 OR lc(45) = 505 AND n = 9 OR lc(48) = 505 AND n = 9 THEN ?"Faldor is already wearing a type of '"; no$(n); "'!": mn=1:return IF lc(n) <> -64 THEN ?"Faldor is not carrying that!": mn=1:return IF lc(n) = -64 AND n = 9 THEN ?"Faldor says, 'An ackward shield, but alright...'" lc(n) = 505: fc = fc + 2: ?"Faldor wears "; no$(n); "." IF n > 45 AND n < 50 THEN fc = fc + 2 mn=1:return end if IF lc(32) = 205 AND n = 33 OR lc(33) = 205 AND n = 32 OR lc(36) = 205 AND n = 37 OR lc(37) = 205 AND n = 36 then ? ms$: mn=1:return IF lc(42) = 205 AND n = 43 OR lc(43) = 205 AND n = 42 then ? ms$: mn=1:return 293 IF lc(n) = 305 THEN ?"Take it out of the bag first!": mn=1:return IF lc(38) = 205 AND n = 39 OR lc(39) = 205 AND n = 38 OR lc(40) = 205 AND n = 41 OR lc(41) = 205 AND n = 40 OR lc(44) = 205 AND n = 46 OR lc(46) = 205 AND n = 44 then ? ms$: mn=1:return IF lc(36) = 205 AND n = 49 OR lc(49) = 205 AND n = 36 OR lc(37) = 205 AND n = 49 OR lc(49) = 205 AND n = 37 OR lc(45) = 205 AND n = 48 OR lc(48) = 205 AND n = 45 then ? ms$: mn=1:return IF lc(40) = 205 AND n = 47 OR lc(47) = 205 AND n = 40 OR lc(41) = 205 AND n = 47 then ? ms$: mn=1:return IF lc(47) = 205 AND n = 40 OR lc(41) = 205 AND n = 47 OR lc(47) = 205 AND n = 41 then ? ms$: mn=1:return IF lc(9) = 205 AND n = 45 OR lc(9) = 205 AND n = 48 OR lc(45) = 205 AND n = 9 OR lc(48) = 205 AND n = 9 THEN ?"You are already wearing a type of '"; no$(n); "'!": mn=1:return 294 IF lc(n) <> 0 THEN ?"You're not carrying that!": mn=1:return IF lc(n) = 0 AND n = 9 THEN ?"An ackward shield, but ok..." 295 lc(n) = 205: ac = ac + 2: ?"You wear "; no$(n); "." 296 IF n > 45 AND n < 50 THEN ac = ac + 2 299 mn=1:return 300 if by=1 then if n$="all" or n2$="all" then ?"Faldor is confused and can only remove one item at a time.":mn=1:return if n$="all" or n2$="all" then removeit IF n > 31 AND n < 50 and by=0 OR n = 9 and by=0 THEN 302 if by=1 then if n>31 and n<50 or n=9 then 308 ?"Faldor says, 'But that can't be removed, silly!'": mn=1:return 308 IF lc(n) = -64 THEN ?"Faldor says, 'But I'm not wearing it.'": mn=1:return IF lc(n) <> 505 THEN ?"Faldor says, 'But I'm not wearing that!'": mn=1:return IF lc(n) = 505 AND n = 9 THEN ?"Faldor has some trouble removing it, but ok..." lc(n) = -64: fc = fc - 2: ?"Faldor removes "; no$(n); "." IF n > 45 AND n < 50 THEN fc = fc - 2 mn=1:return end if 302 IF lc(n) = 0 THEN ?"You're not wearing it!": mn=1:return 303 IF lc(n) = 305 THEN ?"Take it out of the bag first.": mn=1:return 304 IF lc(n) <> 205 THEN ?"You're not wearing that!": mn=1:return IF lc(n) = 205 AND n = 9 THEN ?"It's a bit ackward removing it, but ok..." if n<32 or n>49 then ?"That cannot be removed!":mn=1:return 305 lc(n) = 0: ac = ac - 2: ?"You remove "; no$(n); "." 306 IF n > 45 AND n < 50 THEN ac = ac - 2 307 mn=1:return 330 IF RM <> 26 THEN ? "You're not in the principal's office!":GOTO 170 331 IF lc(n) <> 999 THEN ? "The clerk says 'We don't have that.'":GOTO 170 332 IF price(n)*2>g& THEN ? "The clerk says 'You don't have enough gold.'":GOTO 170 333 IF ic>13 or weight+weight(n)>mx THEN ? "The clerk says 'You can't carry that.'":GOTO 170 334 lc(n)=0:g&=g&-price(n)*2:ic=ic+1:weight=weight+weight(n):? "The clerk says 'Thank you.'":GOTO 170 340 IF RM <> 26 THEN ? "You're not in the principal's office!":GOTO 170 341 goto 343 342 lc(n)=999:g&=g&+price(n):ic=ic-1:weight=weight-weight(n):? "The clerk hands you"; price(n); "gold pieces.":? "'Thank you for your business.'":IF n=60 THEN ? "He places the slingshot behind the counter.":GOTO 170:else 170 343 if lc(n)=105 then?"The clerk says 'You need to unwield that first.'":goto 170 344 if lc(n)=205 then?"The clerk says 'You need to remove that first.'":goto 170 345 if lc(n)=305 then?"The clerk says 'You need to take it out of the bag first.'":goto 170 346 if lc(n)<>0 then?"The clerk says 'I don't see you carrying that.'":goto 170 347 goto 342 350 goto saved 900 IF sc < 50 THEN ?"Novice.": RETURN: ELSE IF sc > 49 AND sc < 75 THEN ?"Beginner.": RETURN 901 IF sc > 74 AND sc < 125 THEN ?"Rank amateur.": ELSE IF sc > 124 AND sc < 250 THEN ?"Modest adventurer.": RETURN 902 IF sc > 249 AND sc < 375 THEN ?"Veteran adventurer.": ELSE IF sc > 374 AND sc < 425 THEN ?"Elite adventurer.": ELSE IF sc > 424 AND sc < 475 THEN ?"Puzzle Wizard." 903 IF sc > 474 AND sc < 500 THEN ?"Gamemaster.": ELSE IF sc >= 500 THEN ?"The Conqueror." 904 RETURN death: a$ = MID$(STR$(dy), 2): b$ = MID$(STR$(sc), 2) cls : COLOR df: IF fd < 0 OR wa < 0 THEN ?"You have died from lack of supplies on day "; a$; "..." IF hp < 1 THEN ?"You were killed in action by "; no$(n); " on day "; a$; "." PRINT : ?"Your total score was "; b$; ". That earns you a rating of "; : GOSUB 900 950 PRINT : ?"Play again? " 951 ry$ = INKEY$: IF ry$ = "" THEN 951 952 IF ry$ = "y" THEN RUN 953 IF ry$ = "n" THEN ?"Ok, see you soon! :)": SYSTEM 954 GOTO 951 bag: PRINT de$(7) 955 IF bg > 0 THEN ?"Bag contains:" 956 FOR x = 7 TO 60: IF lc(x) = 305 THEN ?" "; ob$(x): S = 1 957 NEXT: RETURN 3500 if lc(n)=0 or lc(n)=105 or lc(n)=205 or lc(n)=305 then COLOR df:?"The "no$(n)" isn't a monster!":mn=1:return IF lc(n) <> rm THEN COLOR df: ?"The "; no$(n); " isn't here!": mn=1:return IF n < 61 THEN COLOR df: ?"You can't kill the "; no$(n); "!": mn=1:return if by=1 and dm(n)>dm(94) then ?"Faldor says, 'That monster is too strong for me. I need your help.'":mn=1:return if by=1 and dm(n)<=dm(94) then ?"Faldor attacks...":?"Faldor manages to kill the "no$(n)".":lc(n)=998 for x=7 to 60: if lc(x)=n+500 then ?"Faldor finds "no$(x)" on it!":lc(x)=rm next:mn=1:return end if PALETTE 0, 0: RANDOMIZE TIMER: ls = n: COLOR df: INPUT "(F)ight, (C)ast, (R)un:", a$: IF a$ = "f" THEN 3560 3510 IF a$ = "c" AND lc(13) = 0 AND sk > 1 THEN cs = 1: GOTO 605: ELSE IF a$ = "c" AND lc(13) = 0 AND sk < 2 THEN ?"You haven't learned the magic spell yet!": GOTO 3500 3520 IF a$ = "c" AND lc(13) <> 0 THEN ?"No spellbook!": GOTO 3500 3530 IF a$ = "r" THEN i = INT(RND * 4) + 1: IF i < 3 THEN ?"You run away!": mn=1:return 3540 IF a$ = "r" AND i > 2 THEN ?"You weren't successful...": GOTO 3810 3550 GOTO 3500 3560 : 3570 i = INT(RND * 22) + 1: FOR x = 24 TO 31: IF lc(x) = 105 THEN ?"You fight with the "; no$(x); ".": fw = 1: wp = x 3580 NEXT: IF fw = 0 THEN COLOR 11: ?"You fight with your bare hands.": x = 0: dm(x) = 1 3583 IF n = 71 OR n = 72 or n=94 THEN ?"You sense a friendly aura about "; no$(n); " and back off!": mn=1:return 3590 RANDOMIZE TIMER: i = INT(RND * 35) + 1: IF wr = 1 THEN COLOR 14: ?"The warrior attacks!": IF i > 5 AND i < 12 THEN ?"He hammers "; no$(n); "!": mh(n) = mh(n) - 10 * i 3620 RANDOMIZE TIMER: i = INT(RND * 35) + 1: IF dm = 1 THEN COLOR 13: ?"The zombie guards your back...": IF i > 2 AND i < 7 THEN ?"He slashes at "; no$(n); "!": mh(n) = mh(n) - 12 * i 3630 RANDOMIZE TIMER: i = INT(RND * 35) + 1: IF wf = 1 THEN COLOR 12: ?"Wolf defends you!": IF i > 4 AND i < 10 THEN ?"He hits!": we = we + 15: mh(n) = mh(n) - 5 * wv: wl = wl + 10 3640 COLOR df: ?"You attack:": IF i < 4 THEN ?"You miss." 3650 IF sl = 1 AND i < 19 THEN ?"You stare dumbfounded!": GOTO 3810: ELSE sl = 0 3660 IF i > 3 AND i < 8 THEN COLOR 14: ?"You strike a glancing blow.": mh(n) = mh(n) - dm(wp): el = el + 5 3670 IF i > 7 AND i < 12 THEN COLOR 9: ?"You land a solid blow!": mh(n) = mh(n) - dm(wp) * 2: el = el + 10 3680 IF i > 11 AND i < 16 THEN COLOR 12: ?"WOW! You slashed "; no$(n); " in half!": mh(n) = mh(n) - dm(wp) * 5: el = el + 50 3690 IF i > 15 AND i < 20 THEN COLOR 10: ?"A THOR-LIKE blow! The "; no$(n); " is crushed into pieces!": mh(n) = mh(n) - dm(wp) * 8: el = el + 75 3700 IF i = 20 THEN COLOR 11: ?"INCREDIBLE BLOW! The "; no$(n); " is destroyed!": mh(n) = mh(n) - dm(wp) * 40: el = el + 100 3710 IF i = 21 THEN COLOR df: ?"The "; no$(n); " deflects your blow." 3720 IF i = 22 THEN COLOR 14: ?"Your weapon dents "; no$(n); "'s armor": mh(n) = mh(n) - 5 * lv: el = el + 2 3730 IF i = 23 THEN COLOR 13: ?"CRUSHING BLOW! The "; no$(n); " is smashed into atoms!": mh(n) = mh(n) - dm(wp) * 65: el = el + 400 3740 IF lc(46) = 205 AND i > 23 AND i < 28 THEN COLOR 14: ?"Your RING pulsates! A flash of orange fire strikes "; no$(n); "!": mh(n) = mh(n) - 9 * lv: GOTO 3790 3750 IF lc(29) = 105 AND i > 27 AND i < 31 THEN COLOR 13: ?"Your LONGSWORD vibrates with a low hum!": IF i = 30 THEN ?"The "; no$(n); " is pounded into submission!": mh(n) = 0: i = 40 3760 IF lc(31) = 105 AND i > 30 AND i < 39 AND gb = 0 THEN gb = 1: COLOR 12: ?"Your BROADSWORD glows!": i = 20: GOTO 3640 3780 IF i > 26 AND i < 39 AND lc(30) <> 105 OR i > 26 AND i < 39 AND lc(31) <> 105 THEN COLOR df: ?"The "; no$(n); " dodges your attack.": GOTO 3790 3785 IF i > 26 AND i < 39 THEN COLOR df: ?"The "; no$(n); " dodges your attack." 3786 IF i = 24 OR i = 25 OR i = 26 THEN COLOR 14: ?"You graze the skin of "; no$(n); "!": mh(n) = mh(n) - 5 * lv: COLOR df if by=1 or lc(94)=rm then RANDOMIZE TIMER:i=int(rnd*35)+1:COLOR 3: ?"Faldor attacks:": color 15:IF i < 4 THEN ?"He missed." IF sl = 1 AND i < 19 THEN ?"Faldor stares dumbfounded!": GOTO 3810: ELSE sl = 0 IF i > 3 AND i < 8 THEN COLOR 14: ?"Faldor strikes a glancing blow.": mh(n) = mh(n) - dm(wf): el = el + 5 IF i > 7 AND i < 12 THEN COLOR 9: ?"Faldor lands a solid blow!": mh(n) = mh(n) - dm(wf) * 2: el = el + 10 IF i > 11 AND i < 16 THEN COLOR 12: ?"WOW! Faldor slashed "; no$(n); " in half!": mh(n) = mh(n) - dm(wf) * 5: el = el + 50 IF i > 15 AND i < 20 THEN COLOR 10: ?"A THOR-LIKE blow! The "; no$(n); " is crushed into pieces!": mh(n) = mh(n) - dm(wf) * 8:: el = el + 75 IF i = 20 THEN COLOR 11: ?"INCREDIBLE BLOW! The "; no$(n); " is destroyed!": mh(n) = mh(n) - dm(wf) * 40: el = el + 100 IF i = 21 THEN COLOR 11: ?"The "; no$(n); " deflects his blow." IF i = 22 THEN COLOR 14: ?"Faldor's weapon dents "; no$(n); "'s armor": mh(n) = mh(n) - 5 * lv: el = el + 2 IF i = 23 THEN COLOR 13: ?"CRUSHING BLOW! The "; no$(n); " is smashed into atoms!": mh(n) = mh(n) - dm(wf) * 65: el = el + 400 IF lc(46) = 505 AND i > 23 AND i < 28 THEN COLOR 14: ?"Faldor's RING pulsates! A flash of orange fire strikes "; no$(n); "!": mmh(n) = mh(n) - 9 * lv: GOTO 3790 IF lc(29) = 405 AND i > 27 AND i < 31 THEN COLOR 13: ?"Faldor's LONGSWORD vibrates with a low hum!": IF i = 30 THEN ?"The "; no$(n); " is pounded into submission!": mh(n) = 0: i = 40 IF lc(31) = 405 AND i > 30 AND i < 39 AND gb = 0 THEN gb = 1: COLOR 12: ?"Faldor's BROADSWORD glows!": i = 20: GOTO 3640 IF i > 26 AND i < 39 AND lc(30) <> 105 OR i > 26 AND i < 39 AND lc(31) <> 105 THEN COLOR 11: ?"The "; no$(n); " dodges his attack.": GOTO 3790 IF i > 26 AND i < 39 THEN COLOR 11: ?"The "; no$(n); " dodges his attack." IF i = 24 OR i = 25 OR i = 26 THEN COLOR 14: ?"Faldor grazed the skin of "; no$(n); "!": mh(n) = mh(n) - 5 * lv: COLOR df end if 3790 : 3800 : 3801 IF mh(n) < 1 THEN 3940 3810 RANDOMIZE TIMER: c = INT(RND * 22) + 1: COLOR df: ?"The "; no$(n); " attacks:": IF c < 4 THEN ?"The "; no$(n); " misses." 3820 IF n = 69 AND c = 5 THEN COLOR 12: ?"The "; no$(n); " utters 'Exlom Denam!'": ?"A bolt of lightning strikes down from the heavens!": hp = hp - dm(n) - 100 + ac: GOTO 3930 3830 IF n = 70 AND c = 10 THEN COLOR 11: ?"The "; no$(n); " digs its fangs into your neck!": hp = hp - 20 * lv: GOTO 3930: ELSE IF n = 40 AND c = 11 THEN COLOR 11: ?"The "; no$(n); " gazes into your soul!":?"All of your equipment v 3840 IF n = 76 AND c = 12 THEN COLOR 10: ?"The "; no$(n); " utters 'Venom Farnum!'": ?"A small hand emerges and disarms you!": wp = x: GOTO 3930 3850 IF n = 75 AND c = 15 THEN COLOR 9: ?"The "; no$(n); " raises his fist and draws your soul from your body!": sl = 1: hp = hp - 200 3855 IF n = 74 AND c = 13 THEN COLOR 8: ?"The "; no$(n); " hammers you into little tiny bits!": hp = hp - 100 3860 IF c > 3 AND c < 8 THEN COLOR 14: ?"The "; no$(n); " strikes a glancing blow!": hp = hp - dm(n) - ac 3870 IF c > 7 AND c < 12 THEN COLOR 9: ?"The "; no$(n); " lands a solid blow!": hp = hp - dm(n) - 28 + ac 3880 IF c > 11 AND c < 16 THEN COLOR 12: ?"WOW! The "; no$(n); " slashed you in half!": hp = hp - dm(n) - 45 + ac 3890 IF c > 15 AND c < 20 THEN COLOR 10: ?"The "; no$(n); " strikes a THOR-LIKE blow!": hp = hp - dm(n) - 60 + ac 3900 IF c = 20 THEN COLOR 11: ?"The "; no$(n); " destroys you with an INCREDIBLE BLOW!": hp = hp - dm(n) - 100 + ac 3910 IF c = 21 THEN COLOR df: ?"You deflect its blow.": ad = ad + 1 3920 IF c = 22 THEN COLOR 14: ?"Your armor dents.": hp = hp - 1: ad = ad + 2 3930 IF hp < 1 THEN COLOR 10: ?"You died!": ?:COLOR df:input "Hit enter...",a$: GOTO death 3940 IF mh(n) < 1 THEN COLOR 10: ?"The "; no$(n); " died.": GOSUB 407:ml=0 3950 if mh(n)>0 then COLOR df: ?"Your hit points:"; hp; "/"; hm: ?"Your Magic points:"; mp; "/"; mm 3960 if mh(n)>0 then ?"The "; no$(n); "'s hit points:"; mh(n): gb = 0: GOTO 3500 3970 FOR x = 7 TO 60: IF lc(x) = n+500 THEN ?"You find "; no$(x); " on it!": lc(x) = rm 3980 NEXT: IF wf = 1 THEN IF wl > 50 THEN COLOR 14: ?"Wolf gained a level! Damage up "; 2 * wv; "!": wv = wv + 1: wl = 0: COLOR df 3990 IF ex& >= nl& THEN ?"You gained a level!": hm = hm + 2 * lv: mm = mm + 2 * lv: lv = lv + 1: c = CINT(price(n) / 2): ?"Thor rewards you a generous sum of"; c; "gold!": g& = g& + c: nl& = 61 * (lv ^ 2): mn=1:return 3999 mn=1:return 407 we = we + 20 * lv: lc(n) = 998: k = k + 1: kr = kr + 1: COLOR df: IF cm = 0 THEN c = CINT(price(n) / 2): ?"You gain"; price(n); "experience points and"; c; "gold coins.": ex& = ex& + price(n): g& = g& + c: cn = 1: ct = 0: GOTO 3970 409 RETURN 605 IF cs = 1 THEN cs = 0: COLOR 12: IF n <> 43 AND wf = 1 THEN ?"Wolf defends you!": i = INT(RND * 20) + 1: IF i > 4 AND i < 10 THEN ?"He hits!": mh(n) = mh(n) - 10 * dm(wf): cs = 0 606 RANDOMIZE TIMER: COLOR df: ?"Spells you can cast:": IF lv > 1 THEN ?"1. Fireball" 607 IF lv > 3 THEN ?"2. Heal" 608 IF lv > 4 THEN ?"3. Tornado" 609 IF lv > 7 THEN ?"4. Sleep" 610 IF lv > 9 THEN ?"5. Rain" 611 IF ps > 0 THEN ?"6. Earthquake" 612 IF ps > 1 THEN ?"7. Thunder" 613 IF ps > 2 THEN ?"8. Death": ELSE IF ps > 3 THEN ?"9. Health" 614 ?"0. None": INPUT "Enter spell:", S: RANDOMIZE TIMER: IF hp > hm THEN hp = hm 615 IF S = 1 AND lv > 1 THEN 625 ELSE IF S = 2 AND lv > 3 THEN 627 617 IF S = 3 AND lv > 4 THEN 629 ELSE IF S = 4 AND lv > 7 THEN 631 619 IF S = 5 AND lv > 9 THEN 633 620 IF S = 6 AND ps > 0 THEN 635 ELSE IF S = 7 AND ps > 1 THEN 637 622 IF S = 8 AND ps > 2 THEN 639 ELSE IF S = 9 AND ps > 3 THEN 641 623 IF S = 0 THEN 3500 624 ?"You can't cast that!": GOTO 605 625 a = INT(RND * 5) + 1: IF a > 2 AND mp > 4 THEN mp = mp - 5: ?"You cast a fireball...": COLOR 14: ?"Success!": mh(n) = mh(n) - 8 * a: GOTO 3800 626 ?"Fireball fails...": GOTO 3800 627 a = INT(RND * 6) + 1: IF a > 2 AND mp > 8 THEN mp = mp - 9: ?"You cast heal...": COLOR 14: ?"Success! You regain"; hp * 2; "hit points.": hp = hp + hp * 2: IF hp > hm THEN hp = hm: GOTO 3800: ELSE 3800 628 IF a < 3 THEN ?"Heal fails...": GOTO 3800 629 a = INT(RND * 9) + 1: IF a > 4 AND mp > 12 THEN mp = mp - 13: ?"You cast tornado...": COLOR 14: ?"Success! A tornado crushes "; no$(n); "!": mh(n) = mh(n) - 13 * a: GOTO 3800 630 ?"Tornado fails...": GOTO 3800 631 a = INT(RND * 4) + 1: IF a > 2 AND mp > 17 THEN mp = mp - 18: ?"You cast sleep...": COLOR 14: ?"Success! The "; no$(n); " falls asleep.": RANDOMIZE TIMER: GOTO 3640 632 ?"Sleep fails...": GOTO 3800 633 a = INT(RND * 7) + 1: IF a > 4 AND mp > 19 THEN mp = mp - 20: ?"You cast rain...": COLOR 14: ?"Success! Heavy rain batters "; no$(n); "!": mh(n) = mh(n) - 20 * lv: GOTO 3800 634 ?"Rain fails...": GOTO 3800 635 a = INT(RND * 18) + 1: IF a > 4 AND mp > 24 THEN mp = mp - 25: ?"You cast eathquake...": COLOR 14: ?"Success! The earth swallows "; no$(n); "!": mh(n) = -1: GOTO 3800 636 ?"Earthquake fails...": GOTO 3800 637 a = INT(RND * 10) + 1: IF a > 5 AND mp > 29 THEN mp = mp - 30: ?"You cast thunder...": COLOR 14: ?"Success! A bolt of lightning fries "; no$(n); "!": mh(n) = mh(n) - 50 * lv: GOTO 3800 638 ?"Thunder fails...": GOTO 3800 639 a = INT(RND * 9) + 1: IF a > 6 AND mp > 49 THEN mp = mp - 50: ?"You cast death...": COLOR 14: ?"Success! The "; no$(n); " ceases to live!": mh(n) = -1: GOTO 3800 640 ?"Death fails...": GOTO 3800 641 a = INT(RND * 15) + 1: IF a > 9 AND mp > 99 THEN mp = mp - 100: ?"You cast health...": COLOR 14: ?"Success! You are healed fully!": hp = hm: GOTO 3800 642 ?"Health fails...": GOTO 3800 9270 FOR x = 7 TO 143: IF lc(x) = 0 OR lc(x) = 105 OR lc(x) = 205 OR lc(x) = 305 THEN lc(x) = 999 9271 NEXT: ic = 0: ac = 0: fw = 0: RETURN 4000 IF RM <> 26 then ?"You are not in the principal's office!":goto 170 if lc(61)<>rm then ?"The clerk isn't here to help you.":goto 170 4001 palette 0,0:?"The clerk says 'Here is what we have in stock:'":his=1:FOR x=7 TO 60 4002 IF lc(x)=999 and g&=>price(x)*2 THEN color df:? no$(x); ":"; price(x)*2:s=1:else if lc(x)=999 and g& 15 THEN a$ = MID$(STR$(dy), 2) IF move > 25 AND aa = 0 THEN aa = 1: ?"The sun is setting on day "; a$; "." IF move > 45 AND aa = 1 THEN aa = 2: ?"The sun has just set." IF move > 55 AND aa = 2 THEN aa = 3: ?"It is nightfall." IF move > 75 AND aa = 3 THEN aa = 4: ?"It is early morning." IF move > 85 AND aa = 4 THEN aa = 5: ?"The sun is rising." IF move > 100 AND aa = 5 THEN aa = 6: ?"The day has begun.": dy = dy + 1 IF move > 115 AND aa = 6 THEN aa = 7: ?"It is late in the morning." IF move > 125 AND aa = 7 THEN aa = 8: ?"It is midday." IF move > 145 AND aa = 8 THEN aa = 9: ?"It is late in the afternoon." IF move > 155 THEN move = 0: aa = 0 END IF IF move = 30 THEN IF lc(10) = 0 THEN ?"You notice your egg beginning to hatch." IF move = 40 THEN IF lc(10) = 0 THEN ?"The egg you are carrying hatches.": lc(11) = rm: ih = 1 IF move = 40 AND lc(10) = rm AND ih = 0 THEN ?"The egg hatches and inside lies a small jewel.": lc(11) = rm: ih = 2 RETURN Parser: 170 if g&<0 then g&=0 if hp&>hm& then hp&=hm& if mp&>mm& then mp&=mm& COLOR df:exa$(1)="":b=1:n=0:v=0:mn=0:c=0:by=0:y=0:a$ = "": no$ = "": obj = 0: n$ = "": v$ = "": n = 0: v = 0: GOSUB AutoRoutines:for x=1 to 5:w$(x)="":next 171 ga = 0: pr = 0: fd = fd - 1: wa = wa - 1: IF fd = 100 OR wa = 100 THEN ?"You are running out of food and water." ml=ml+1:if ml=100 then ?"The monsters have been revived.":gosub mon IF fd = 50 THEN ?"You are quite hungry.":goto walt IF wa = 50 THEN ?"You are very thirsty.":goto walt IF fd = 25 THEN ?"You feel very weak from lack of food.":goto walt IF wa = 25 THEN ?"You are extremely dehydrated.":goto walt IF fd = 15 THEN ?"You will die soon without food.":goto walt IF wa = 15 THEN ?"You will die soon without water.":goto walt IF fd = 0 THEN ?"You feel very faint...":goto walt IF wa = 0 THEN ?"You feel out of it...":goto walt IF fd = -10 THEN ?"You are inches from complete starvation and death.":goto walt IF wa = -10 THEN ?"You are inches from complete dehydration and death.":goto walt IF fd < -20 OR wa < -20 THEN a$ = MID$(STR$(dy), 2): ?"You have died of exhaustion on day "; a$; "...": dth = 1: RETURN walt: ?">"; : LINE INPUT "", a$: v$ = "": n$ = "": IF a$ = "" THEN ?"What?": v = 0: goto 48 if a$="jump room" or a$="jr" then goto jump if left$(a$,4)="open" then ?"Open is not supported in this version.":goto 170 for x=1 to 10:if a$=al$(x) then a$=bl$(x) next:if a$ = "exa bathtub" and rm=4 or a$="examine bathtub" and rm=4 then ?"It's your typical bathtub. There is a small faucet protruding out.":goto 170 if a$="room" then ?"You are in room"rm".":goto 170 if a$="flip switch" and rm=33 then goto comp if a$="walk" or a$="enter trail" then if rm=13 then rm=79:?"You walk for awhile until you reach a small hill.":goto 48 if a$="return" and rm=79 then rm=13:?"You are whisked away by a large gust of wind...":goto 32 if a$="save" or a$="save game" then goto saved if a$="clear all" then for x=1 to 10:al$(x)="":bl$(x)="":next:al=0:?"Aliases cleared.":move=move+1:goto 170 if a$="list" and rm<>26 then ?"You are not in the principal's office!":goto 170 if a$="list" and rm=26 then goto 4000 if a$="menu" and rm<>78 then ?"You are not in the enchanted forest!":goto 170 if a$="menu" and rm=78 then goto menu if a$="play darts" and rm<>78 then ?"You aren't in the enchanted forest!":goto 170 if a$="play darts" and rm=78 then goto 9755 if a$ = "exa disk" or a$="examine disk" then if disk=1 then ?"It's an ordinary floppy disk.":goto 170 if a$ = "shake tree" or a$="shake trees" then if rm=25 and berry=0 then berry=1:?"You shake a tree and some berries fall out!":?"You pick them up and eat them...Yum!":mp=mm:sc=sc+2:move=move+1:goto 170 if a$ = "shake tree" or a$="shake trees" then if rm=25 and berry=1 then ?"You shake a tree but nothing falls out.":move=move+1:goto 170 if a$="use crowbar on locker" or a$="use crowbar on locker 0248" then if rm=28 and lc(24)=0 and disk=0 or rm=28 and lc(24)=105 and disk=0 then ?"You manage to open the locker!":?"Inside you find a disk. You place it in your pocket.":disk=1:goto 170 if a$="use crowbar on locker" or a$="use crowbar on locker 0248" then if rm=28 and lc(24)=0 and disk=1 or rm=28 and lc(24)=105 and disk=1 then ?"The locker is already open!":move=move+1:goto 170 if a$ = "examine faucet" or a$="exa faucet" then if rm=4 then ?"It's a normal bathtub faucet. You can turn it on or off.":move=move+1 if a$ = "examine faucet" or a$="exa faucet" then if rm=4 and faucet=1 then ?"You notice water spilling out.":goto 170 if a$ = "examine faucet" or a$="exa faucet" then if rm=4 then goto 170 if a$ = "turn faucet" or a$="turn on faucet" then if rm=4 and faucet=0 then faucet=1:?"You turn on the faucet and water spills out!":move=move+1:goto 170 if a$ = "turn faucet" or a$="turn on faucet" then if rm=4 and faucet=1 then ?"The faucet is already turned on!":goto 170 if a$ = "turn faucet" or a$="turn off faucet" then if rm=4 and faucet=1 then faucet=0:?"You turn the faucet off.":move=move+1:goto 170 if a$ = "turn faucet" or a$="turn off faucet" then if rm=4 and faucet=0 then ?"The faucet is already turned off.":goto 170 if a$ = "turn faucet off" then if rm=4 and faucet=1 then faucet=0:?"The faucet is now turned off.":goto 170 if a$ = "turn faucet on" then if rm=4 and faucet=0 then faucet=1:?"You turn the faucet on and water spills out!":goto 170 if a$ = "turn faucet off" and rm<>4 or a$="turn faucet off" and faucet=0 then ?"You can't do that here!":goto 170 if a$ = "turn faucet on" and rm<>4 or a$="turn faucet on" and faucet=1 then ?"You can't do that here!":goto 170 ak$="You fill the bottle with water." if a$ = "get water" or a$="put water in bottle" or a$="get water from faucet" or a$="fill water with bottle" then if rm=4 and lc(12)=0 and water=0 and faucet=1 then water=1:? ak$:ob$(12)="A bottle of water.":de$(12)=ob$(12):wa=wm:goto 170 if a$ = "get water" or a$="put water in bottle" or a$="get water from faucet" then if rm=4 then ?"You don't see how you could do that here.":goto 170 if rm=3 and lc(12)=0 and water=1 and fire=1 then if a$="put out fire" or a$="extinguish fire" or a$="throw water on fire" then water=0:ob$(12)="An empy glass bottle.":de$(12)=ob$(12):fire=0:?"You douse the fire with water. It is out.":goto 170 if rm=3 and lc(12)=0 and water=1 and fire=0 then if a$="put out fire" or a$="extinguish fire" or a$="throw water on fire" then ?"The fire is already out!":move=move+1:goto 170 if rm=3 then if a$="enter fireplace" and fire=1 then ?"You enter the fireplace...":?"There's a fire burning!":?"You quickly jumo back before any real damage is done!":move=move+1:goto 170 if rm=3 then if a$="enter fireplace" and fire=0 then ?"You enter the fireplace...":?"After a brief climb, you reach the roof near a small treehouse.":rm=7:goto 32 if a$="get note" or a$="exa note" or a$="examine note" or a$="read note" then a$="get note" if a$="get ice cream" or a$="eat ice cream" then if rm=5 then ?"The ice cream is frozen to the bottom and cannot be removed!":move=move+1:goto 170 if a$="exa ice cream" or a$="examine ice cream" then if rm=5 then ?"It's a generic gallon of vanilla ice cream.":goto 170 if a$="get clothes" and rm=1 then ?"A magicial force holds them down!":goto 170 if a$="exa hole" or a$="examine hole" then if rm=10 or rm=24 then ?"It's a small opening about 2 feet wide.":goto 170 if a$="enter hole" then if rm=10 then rm=24:?"You enter through the hole...":goto 32 if a$="enter hole" then if rm=24 then rm=10:?"You enter through the hole...":goto 32 if a$="climb fence" and rm=24 then rm=10:?"You manage to scale the fence...":goto 32 if a$="drink water" or a$="put water in bottle" or a$="put bottle in water" or a$="put bottle in pool" or a$="get water from pool" then if rm=78 then ?"For some reason the water cannot be removed...":goto 170 if a$="get box" or a$="get table" then if rm=5 then ?"It is much too heavy to lift.":goto 170 if a$="pry box" then a$="use crowbar on box" if a$="throw rope" or a$="tie rope to tree" or a$="use rope on tree" or a$="use rope on treehouse" then if lc(26)=0 then lc(26)=rm:ic=ic-1:weight=weight-weight(17):ob$(12)="A coil of rope (hanging down).":de$(12)=ob$(12):?"Ok.":rope=1:goto 170 if a$ = "examine locker" or a$="exa locker" then if rm=28 then ?"Which one?":goto 170 if a$="locate amulet" then ?"The Amulet is in room:"falk:goto 170 IF a$ = "score" OR a$ = "?" OR a$ = "sc" THEN 700 IF a$ = "look" OR a$ = "l" THEN v = 1:goto 32 IF a$ = "i" OR a$ = "inventory" THEN v$ = "inventory": v = 2 IF a$ = "n" OR a$ = "north" THEN a$ = "go north": ELSE IF a$ = "s" OR a$ = "south" THEN a$ = "go south": ELSE IF a$ = "e" OR a$ = "east" THEN a$ = "go east": ELSE IF a$ = "w" OR a$ = "west" THEN a$ = "go west" IF a$ = "u" OR a$ = "up" THEN a$ = "go up": ELSE IF a$ = "d" OR a$ = "down" THEN a$ = "go down" IF a$ = "get all" OR a$ = "take all" or a$="ga" or a$="ta" THEN ga = 1 IF a$ = "wear all" or a$="wa" THEN wearit if a$ = "put water in bottle" or a$="p water in bottle" then if lc(12)=0 and rm=15 and water=0 then water=1:?"You fill the bottle full of water.":de$(12)="Bottle of water.":ob$(12)="A bottle of water.":goto 48 if a$ = "put water in bottle" or a$="p water in bottle" then if lc(12)=0 and rm=15 and water=1 then ?"The bottle is already full of water!":goto 48 IF a$ = "remove all" or a$="ra" THEN removeit if a$ = "fhelp" then faldor if a$ = "faldor, follow" and lc(94)=rm then fald=1:?"Faldor is now following you.":goto 170 if a$ = "faldor, follow" and lc(94)<>rm then ?"Faldor isn't here.":goto 170 IF LEFT$(a$, 7) = "examine" or left$(a$,3)="exa" THEN 500 IF a$ = "climb treehouse" AND rm = 6 AND rope = 0 or a$="cl treehouse" and rm=6 and rope=0 THEN ?"You need a rope to reach even the nearest branch!": move = move + 1: GOTO 170 IF a$ = "climb fence" AND rm = 10 or a$="cl fence" and rm=10 THEN ?"You somehow manage to scale the fence...": rm = 24: move = move + 1: GOTO 170 IF a$ = "help" or a$="h" THEN help IF a$ = "quit" OR a$ = "q" THEN goto quit IF a$ = "get note" AND note = 0 AND lc(12) = 0 or a$="g note" and note=0 and lc(12)=0 THEN note = 1: a$ = "examine note": GOTO 500 IF a$ = "get all from bag" OR a$ = "put all in bag" OR a$ = "drop all" or a$="ga from bag" or a$="pa in bag" or a$="da" THEN 600 IF a$ = "use rope" OR a$ = "use rope on treehouse" or a$="us rope" or a$="us rope on treehouse" THEN v = 6: n = 26 if a$ = "nod" then ?"You nod solemnly.":goto 170 if a$ = "chuckle" then ?"You chuckle merrily.":goto 170 if a$ = "laugh" then ?"You laugh uncontrollably.":goto 170 if a$ = "cry" then ?"You shed a few tears without reason.":goto 170 if a$ = "wimper" then ?"You wimper like a hurt puppy dog.":goto 170 if a$ = "pout" then ?"You start pouting. It's not fair!":goto 170 if a$ = "smile" then ?"You smile happily.":goto 170 if a$ = "frown" then ?"You frown.":goto 170 if a$ = "think" then ?"You think for a moment.":goto 170 if a$ = "ponder" then ?"You begin to ponder something.":goto 170 if a$ = "hmm" or a$="hrm" then ?"You go hmmm.":goto 170 if a$ = "smirk" then ?"You smirk.":goto 170 if a$ = "bow" then ?"You bow with grace.":goto 170 if a$ = "grin" then ?"You grin at the thought.":goto 170 if a$ = "cackle" then ?"You throw your head back and cackle!":goto 170 if a$ = "wonder" then ?"You wonder about things.":goto 170 if a$ = "puzzle" then ?"You are quite puzzled.":goto 170 if a$ = "shrug" then ?"You shrug helplessly.":goto 170 if a$ = "shake" then ?"You shake your head.":goto 170 for x=1 to 10:if a$=al$(x) then a$=bl$(x) next 191 IF LEN(a$) = 1 AND a$ <> "n" AND a$ <> "s" AND a$ <> "e" AND a$ <> "w" AND a$ <> "u" AND a$ <> "d" AND a$ <> "i" AND a$ <> "l" THEN ?"What?": GOTO 170 S = 0: FOR x = 1 TO LEN(a$): IF MID$(a$, x, 1) = " " THEN S = 1 NEXT: IF S = 0 THEN 194 d = 0: FOR x = 1 TO LEN(a$): IF MID$(a$, x, 3) = " in" THEN pr = 1: n$ = RIGHT$(a$, x + 2): v$ = LEFT$(a$, 3): d = 6 IF MID$(a$, x, 3) = " on" THEN pr = 1: n$ = RIGHT$(a$, x + 2): v$ = LEFT$(a$, 3): d = 6 IF MID$(a$, x, 4) = "from" THEN pr = 1: n$ = RIGHT$(a$, x + 3): v$ = LEFT$(a$, 3): d = 8 NEXT: FOR x = 1 TO LEN(n$): IF MID$(n$, x, 1) = " " THEN pr = 1: o$ = LEFT$(n$, x - 1): n$ = o$ NEXT bz = 0: FOR x = 1 TO LEN(a$): IF MID$(a$, x, 4) = " bag" THEN bz = 1 IF MID$(a$, x, 4) = " box" THEN box = 1 NEXT: IF pr = 1 THEN 194 b=1:for x=1 to len(a$): IF LEFT$(a$, 7) = "faldor," THEN by = 1: y = x if mid$(a$,x,5)=" the " or mid$(a$,x,3)=" a " then ?"Articles such as 'a' or 'the' are not permitted.":goto 170 if mid$(a$,x,8)="and then" then ?"Multiple articles such as 'and then' are not permitted.":?"Usage: [and,then] .":goto 170 if mid$(a$,x,4)="then" or mid$(a$,x,3)="and" then c=1:goto 193 if mid$(a$,x,1)=" " then b$=mid$(a$,b,x-b):b=x+1:mn=mn+1:w$(mn)=b$ 193 next:if by=0 then mn=mn+1:b$=mid$(a$,b,x-b):w$(mn)=b$:v$=w$(1):n$=w$(2):v2$=w$(4):n2$=w$(5) IF by = 1 THEN if lc(94)<>rm then ?"Faldor isn't here.":goto 170 FOR x = y TO LEN(a$): IF MID$(a$, x, 1) = " " THEN b$ = MID$(a$, b, x - b): b = x + 1: mn = mn + 1: w$(mn) = b$ NEXT: b$ = MID$(a$, b, x - b): b = x + 1: mn = mn + 1: w$(mn) = b$ if w$(2)="exa" then w$(2)="examine" v$ = w$(2): n$ = w$(3) END IF 194 IF LEFT$(a$, 3) = "use" AND pr = 0 OR LEFT$(a$, 3) = "put" AND pr = 0 THEN k$ = LEFT$(a$, 3): ?"Oops, I need a bit more...": ?"Usage: "; k$ + " " + n$ + " [in,from,on] ":goto 170 REM ? "verb1:";v$;" verb2:";v2$:?"noun1:";n$; "noun2:";n2$:? c if by=1 and lc(94)<>rm then ?"Faldor isn't here.":goto 170 if left$(a$,5)="alias" then if a$="alias" then alias if al=10 then ?"Your alias maximum has been reached.":goto 48 bar$ = "nsewudilq": ek% = INSTR(bar$, MID$(w$(3), x, 1)): ek2% = INSTR(bar$, MID$(w$(4), x, 1)) ek3%=instr(bar$, mid$(w$(3),x,1)):ek4%=instr(bar$,mid$(w$(4),x,1)) IF w$(4)="n" or w$(4)="s" or w$(4)="e" or w$(4)="w" or w$(4)="u" or w$(4)="d" or w$(4)="i" or w$(4)="l" then ? "n,s,e,w,u,d,i,l are reserved.": goto 48 IF w$(3)="n" or w$(3)="s" or w$(3)="e" or w$(3)="w" or w$(3)="u" or w$(3)="d" or w$(3)="i" or w$(3)="l" then ? "n,s,e,w,u,d,i,l are reserved.": goto 48 if len(w$(2))=0 or len(w$(3))=0 then ?"Oops, I need a bit more...":?"Alias syntax: alias ":?"One word aliases are illegal because certain one word commands are":?"reserved by the program.":goto 48 IF w$(1) = "alias" AND w$(4) = "" THEN ?"Oops, I need a bit more...":?"Alias syntax: alias ":?"One word aliases are illegal because certain one word commands are":?"reserved by the program.":goto 48 IF w$(1) = "alias" AND w$(4) <> "" THEN al=al+1:al$(al) = w$(4):bl$(al)=w$(2)+chr$(32)+w$(3) IF ek2% then ? "alias: '"; w$(4); "' now emulates "; w$(2); " "; w$(3): goto 48 end if if w$(1)="exa" then v$="examine" n=0:for x=1 to 94:if n$=no$(x) or n$=ao$(x) then n=x:obj=n next v=0:FOR x = 1 TO 36: IF v$ = vb$(x) or v$=v3$ or v$=exa$(1) THEN v = x NEXT: goto 99 195 v=0:FOR x = 1 to 36: if v2$ = vb$(x) or v2$=v3$ or v$=exa$(1) then v=x next:c=0 for x=1 to 94:if n2$=no$(x) or n$=ao$(x) or n2$=n3$ or n$=n3$ or n2$=ao$(x)or n3$=ao$(x) then n=x:obj=n next c=0:goto 99 RETURN $SEGMENT 500 if frk=0 then frk=1:OPEN "EXAMS.DAT" FOR INPUT AS #1: FOR x = 0 TO 122: LINE INPUT #1, es$(x): NEXT: CLOSE 1 IF RIGHT$(a$, 6) = "drawer" AND rm = 1 then ? es$(0): goto 170 501 IF RIGHT$(a$, 6) = "closet" AND rm = 1 and falk<>1 then ? es$(1): goto 170 if right$(a$,6)="closet" and rm=1 and falk=1 then ?"On closer examination, you realize that the Amulet of Vega":?"is tucked below a pile of dirty laundry! Your Uncle sucked, but":?"you now you have the prized amulet!":sleep 4:sc=sc+250:goto endgame 502 IF RIGHT$(a$, 2) = "tv" AND rm = 3 then ? es$(2): goto 170 503 IF RIGHT$(a$, 9) = "fireplace" AND rm = 3 and falk<>3 then ? es$(3): goto 170 if right$(a$,9)="fireplace" and rm=3 and falk=3 then ?"On closer examination, you realize that the Amulet of Vega":?"is lying within the fireplace! Your Uncle was wrong, but":?"now you have the prized amulet!":sleep 4:sc=sc+250:goto endgame 504 IF RIGHT$(a$, 6) = "mantle" AND rm = 3 then ? es$(4): goto 170 505 IF RIGHT$(a$, 5) = "couch" AND rm = 3 then ? es$(5): goto 170 506 IF RIGHT$(a$, 6) = "mirror" AND rm = 4 then ? es$(6): goto 170 507 IF RIGHT$(a$, 5) = "floor" AND rm = 4 then ? es$(7): goto 170 508 IF RIGHT$(a$, 4) = "rack" AND rm = 4 then ? es$(8): goto 170 509 IF RIGHT$(a$, 7) = "bathtub" AND rm = 4 then ? es$(9): goto 170 510 IF RIGHT$(a$, 5) = "table" AND rm = 5 then ? es$(10): goto 170 511 IF RIGHT$(a$, 3) = "box" AND rm = 5 AND crowbar = 0 then ? es$(11): sc = sc + 3:goto 170 IF RIGHT$(a$, 3) = "box" AND rm = 5 AND crowbar = 1 then ? es$(12): goto 170 512 IF RIGHT$(a$, 12) = "refrigerator" or right$(a$,6)="fridge" then if rm = 5 AND icepick = 0 AND lc(23) <> 0 then ? es$(13): sc = sc + 2: lc(23) = rm:goto 170 IF RIGHT$(a$, 12) = "refrigerator" or right$(a$,6)="fridge" then if rm = 5 THEN icepick = 1: PRINT es$(14): goto 170 513 IF RIGHT$(a$, 9) = "sprinkler" AND rm = 6 then ? es$(15): goto 170 514 IF RIGHT$(a$, 9) = "treehouse" AND rm = 6 and falk<>6 then ? es$(16): goto 170 if right$(a$,9)="treehouse" and rm=6 and falk=6 then ?"On closer examination, you realize that the Amulet of Vega":?"was in a corner of the treehouse! Your Uncle was mistaken, as":?"you now have the prized amulet!":sleep 4:sc=sc+250:goto endgame 515 IF RIGHT$(a$, 5) = "fence" AND rm = 6 then ? es$(17): goto 170 516 IF RIGHT$(a$, 5) = "house" AND rm = 8 then ? es$(18): goto 170 517 IF RIGHT$(a$, 6) = "school" AND rm = 8 then ? es$(19): goto 170 518 IF RIGHT$(a$, 4) = "park" AND rm = 8 then ? es$(20): goto 170 519 IF RIGHT$(a$, 4) = "note" AND lc(12) = 0 AND note > -1 THEN note = -1: sc = sc + 10: de$(12) = "A smokey glass bottle. It is empty.": PRINT es$(21): goto 170 520 IF RIGHT$(a$, 5) = "trees" AND rm = 9 then ? es$(22): goto 170 521 IF RIGHT$(a$, 4) = "park" AND rm = 9 then ? es$(23): goto 170 522 IF RIGHT$(a$, 6) = "statue" AND rm = 9 then ? es$(24): goto 170 523 IF RIGHT$(a$, 8) = "fountain" AND rm = 9 then ? es$(25): goto 170 524 IF RIGHT$(a$, 9) = "crosswalk" AND rm = 10 then ? es$(26): goto 170 525 IF RIGHT$(a$, 5) = "fence" AND rm = 10 or right$(a$, 5)="fence" AND rm=24 then ? es$(27):goto 170 526 IF RIGHT$(a$, 4) = "hole" AND rm = 10 then ? es$(28): goto 170 527 IF RIGHT$(a$, 6) = "school" AND rm = 10 then ? es$(29): goto 170 528 IF RIGHT$(a$, 7) = "benches" AND rm = 12 and falk<>12 then ? es$(30): goto 170 if right$(a$,7)="benches" and rm=12 and falk=12 then ?"On closer examination, you realize that the Amulet of Vega":?"is hidden beneath the benches! Your Uncle was a moron, but":?"now you have the prized amulet!":sleep 4:sc=sc+250:goto endgame 529 IF RIGHT$(a$, 8) = "fountain" AND rm = 12 then ? es$(31): goto 170 530 IF RIGHT$(a$, 5) = "trail" AND rm = 13 then ? es$(32): goto 170 531 IF RIGHT$(a$, 4) = "pond" AND rm = 14 then ? es$(33): goto 170 532 IF RIGHT$(a$, 5) = "roses" AND rm = 14 then ? es$(34): sc = sc + 2:goto 170 533 IF RIGHT$(a$, 6) = "garden" AND rm = 14 then ? es$(35): goto 170 534 IF RIGHT$(a$, 4) = "vine" AND rm = 14 then ? es$(36): chk=1:sc = sc + 3:goto 170 535 IF RIGHT$(a$, 4) = "wall" AND rm = 14 then ? es$(37): goto 170 536 IF RIGHT$(a$, 8) = "fountain" AND rm = 15 then ? es$(38): goto 170 537 IF RIGHT$(a$, 6) = "statue" AND rm = 15 then ? es$(39): sc = sc + 10:goto 170 538 IF RIGHT$(a$, 5) = "basin" AND rm = 15 then ? es$(40): goto 170 IF RIGHT$(a$, 5) = "grate" AND rm = 15 then ? es$(41): sc = sc + 5:goto 170 539 IF RIGHT$(a$, 4) = "hole" AND rm = 15 then ? es$(42): goto 170 540 IF RIGHT$(a$, 4) = "path" THEN IF rm = 16 OR rm = 17 OR rm = 18 then ? es$(43): goto 170 541 IF RIGHT$(a$, 3) = "gum" AND gum = 0 THEN IF rm = 16 OR rm = 17 OR rm = 18 then ? es$(44): sc = sc + 15:goto 170 542 IF RIGHT$(a$, 3) = "gum" AND gum = 1 THEN IF rm = 16 OR rm = 17 OR rm = 18 then ? es$(45): goto 170 543 IF RIGHT$(a$, 4) = "pond" AND rm = 16 then ? es$(46): goto 170 544 IF RIGHT$(a$, 6) = "people" THEN IF rm = 16 OR rm = 17 then ? es$(47): goto 170 545 IF RIGHT$(a$, 5) = "truck" THEN IF rm = 16 then ? es$(48): goto 170 546 IF RIGHT$(a$, 8) = "fountain" AND rm = 17 then ? es$(49): goto 170 547 IF RIGHT$(a$, 5) = "woman" AND rm = 17 then ? es$(50): goto 170 548 IF RIGHT$(a$, 8) = "building" AND rm = 18 then ? es$(51): goto 170 549 IF RIGHT$(a$, 7) = "windows" AND rm = 18 then ? es$(52): goto 170 550 IF RIGHT$(a$, 4) = "dust" AND rm = 18 then ? es$(53): dth = 1: RETURN 551 IF RIGHT$(a$, 4) = "sign" AND rm = 18 then ? es$(54): goto 170 552 IF RIGHT$(a$, 12) = "receptionist" AND rm = 19 then ? es$(55): goto 170 553 IF RIGHT$(a$, 7) = "counter" AND rm = 19 then ? es$(56): goto 170 554 IF RIGHT$(a$, 8) = "pictures" AND rm = 19 then ? es$(57): goto 170 555 IF RIGHT$(a$, 7) = "machine" AND rm = 19 then ? es$(58): goto 170 556 IF RIGHT$(a$, 4) = "case" AND rm = 19 then ? es$(59): goto 170 557 IF RIGHT$(a$, 5) = "racks" AND rm = 19 then ? es$(60):sc = 0:goto 170 558 IF RIGHT$(a$, 4) = "pond" AND rm = 20 then ? es$(61): goto 170 559 IF RIGHT$(a$, 9) = "whirlpool" AND rm = 20 then ? es$(62): sc = sc + 2:goto 170 560 IF RIGHT$(a$, 5) = "ducks" AND rm = 20 then ? es$(63): goto 170 561 IF RIGHT$(a$, 5) = "water" AND rm = 20 then ? es$(64): goto 170 562 IF RIGHT$(a$, 4) = "kids" AND rm = 20 then ? es$(65): goto 170 563 IF RIGHT$(a$, 6) = "garden" AND rm = 20 then ? es$(66): goto 170 564 IF RIGHT$(a$, 5) = "fence" THEN IF rm = 21 OR rm = 22 then ? es$(67): goto 170 565 IF RIGHT$(a$, 5) = "trash" AND rm = 23 then ? es$(68): goto 170 566 IF RIGHT$(a$, 6) = "debris" AND rm = 23 then ? es$(69): goto 170 567 IF RIGHT$(a$, 4) = "food" AND rm = 23 then ? es$(70): goto 170 568 IF RIGHT$(a$, 4) = "quad" AND rm = 24 then ? es$(71): goto 170 569 IF RIGHT$(a$, 4) = "yard" AND rm = 24 then ? es$(72): goto 170 570 IF RIGHT$(a$, 9) = "swingsets" AND rm = 24 then ? es$(73): goto 170 571 IF RIGHT$(a$, 6) = "castle" AND rm = 24 then ? es$(74):sc = sc + 10:goto 170 572 IF RIGHT$(a$, 7) = "sandbox" AND rm = 24 then ? es$(75): sc = sc + 3:goto 170 573 IF RIGHT$(a$, 4) = "quad" AND rm = 25 then ? es$(76): goto 170 574 IF RIGHT$(a$, 6) = "school" AND rm = 25 then ? es$(77): goto 170 575 IF RIGHT$(a$, 5) = "trees" AND rm = 25 then ? es$(78): goto 170 576 IF RIGHT$(a$, 4) = "pots" AND rm = 25 then ? es$(79): goto 170 577 IF RIGHT$(a$, 6) = "figure" AND rm = 25 then ? es$(80): sc = sc + 5:goto 170 578 IF RIGHT$(a$, 7) = "lockers" AND rm = 25 then ? es$(81): goto 170 579 IF RIGHT$(a$, 6) = "office" AND rm = 26 then ? es$(82): goto 170 580 IF RIGHT$(a$, 7) = "counter" AND rm = 26 then ? es$(83): goto 170 581 IF RIGHT$(a$, 4) = "room" AND rm = 27 then ? es$(84): goto 170 582 IF RIGHT$(a$, 5) = "walls" AND rm = 27 then ? es$(85): goto 170 583 IF RIGHT$(a$, 7) = "lockers" AND rm = 28 then ? es$(86): goto 170 584 IF RIGHT$(a$, 7) = "writing" AND rm = 28 then ? es$(87): goto 170 585 IF RIGHT$(a$, 7) = "handles" AND rm = 28 then ? es$(88): goto 170 586 IF RIGHT$(a$, 7) = "library" AND rm = 28 then ? es$(89): goto 170 587 IF RIGHT$(a$, 11) = "locker 0248" AND rm = 28 OR RIGHT$(a$, 4) = "0248" AND rm = 28 then ? es$(90): sc = sc + 5:goto 170 588 IF RIGHT$(a$, 7) = "shelves" AND rm = 29 then ? es$(91): goto 170 589 IF RIGHT$(a$, 7) = "library" AND rm = 29 then ? es$(92): goto 170 590 IF RIGHT$(a$, 4) = "room" AND rm = 29 then ? es$(93): goto 170 591 IF RIGHT$(a$, 9) = "terminals" AND rm = 29 then ? es$(94):sc = sc + 20:goto 170 592 IF RIGHT$(a$, 6) = "tables" AND rm = 30 then ? es$(95): goto 170 593 IF RIGHT$(a$, 5) = "clock" AND rm = 30 then ? es$(96): goto 170 594 IF RIGHT$(a$, 4) = "area" AND rm = 30 OR RIGHT$(a$, 5) = "study" then ? es$(97): goto 170 595 IF RIGHT$(a$, 5) = "walls" AND rm = 31 then ? es$(98): goto 170 596 IF RIGHT$(a$, 7) = "picture" AND rm = 31 then ? es$(99): sc = sc + 2:goto 170 597 IF RIGHT$(a$, 4) = "area" AND rm = 31 OR RIGHT$(a$, 5) = "study" AND rm = 31 then ? es$(97): goto 170 598 IF RIGHT$(a$, 7) = "writing" AND rm = 31 then ? es$(101): sc = sc + 3:goto 170 IF RIGHT$(a$, 8) = "bathroom" AND rm = 32 then ? es$(102): goto 170 IF RIGHT$(a$, 7) = "library" AND rm = 32 and falk<>32 then ? es$(103): goto 170 if right$(a$,7)="library" and rm=32 and falk=32 then ?"On closer inspection, you realize that the Amulet of Vega":?"is hidden near the library counter! Well, that's a revelation!":?"You now have the prized amulet!":sleep 4:sc=sc+250:goto endgame IF RIGHT$(a$, 9) = "terminals" AND rm = 33 then ? es$(104): sc = sc + 5:?"To operate, 'flip switch'.":goto 170 IF RIGHT$(a$, 5) = "apple" AND rm = 33 OR RIGHT$(a$, 8) = "apple ii" AND rm = 33 OR RIGHT$(a$, 8) = "Apple II" AND rm = 33 then ? es$(105): sc = sc + 10:?"To operate, 'flip switch'.":goto 170 IF RIGHT$(a$, 6) = "tables" AND rm = 33 then ? es$(106): goto 170 IF RIGHT$(a$, 6) = "lights" AND rm = 34 OR RIGHT$(a$, 6) = "lights" AND rm = 35 then ? es$(107): goto 170 IF RIGHT$(a$, 6) = "carpet" AND rm = 34 OR RIGHT$(a$, 6) = "carpet" AND rm = 35 then ? es$(108): goto 170 IF RIGHT$(a$, 5) = "walls" AND rm = 34 OR RIGHT$(a$, 5) = "walls" AND rm = 35 then ? es$(109): goto 170 IF RIGHT$(a$, 7) = "hallway" AND rm = 34 OR RIGHT$(a$, 7) = "hallway" AND rm = 35 then ? es$(110): goto 170 IF rm = 34 OR rm = 35 THEN IF RIGHT$(a$, 7) = "ceiling" then ? es$(111): goto 170 IF RIGHT$(a$, 7) = "fixture" AND rm = 35 then ? es$(112): goto 170 IF rm = 37 THEN IF RIGHT$(a$, 10) = "chalkboard" then ? es$(113): sc = sc + 3:goto 170 IF rm = 38 THEN IF RIGHT$(a$, 10) = "chalkboard" then ? es$(114): goto 170 IF rm = 37 AND RIGHT$(a$, 5) = "globe" then ? es$(115):sc = sc + 10:goto 170 IF rm = 38 AND RIGHT$(a$, 10) = "calculator" then ? es$(116):sc = sc + 3:goto 170 IF rm = 37 OR rm = 38 THEN IF RIGHT$(a$, 4) = "desk" then ? es$(117): goto 170 IF rm = 38 AND RIGHT$(a$, 8) = "fishtank" then if falk<>38 then ? es$(118): sc = sc + 3:goto 170 if rm=38 and right$(a$,8)="fishtank" then if falk=38 then ?"Upon closer examination, the Amulet of Vega is hidden inside the":?"fishtank! Apparently, the fish liked it, too! You now have the":?"prized amulet!":sc=sc+250:sleep 4:goto endgame IF rm = 37 OR rm = 38 THEN IF RIGHT$(a$, 9) = "classroom" then ? es$(119): goto 170 IF rm = 37 AND RIGHT$(a$, 4) = "door" then ? es$(120): goto 170 IF rm = 38 AND RIGHT$(a$, 4) = "wall" then ? es$(121): goto 170 if rm = 13 and right$(a$, 6) = "circle" or rm=13 and right$(a$,9)="pentagram" then ?"This is an odd looking pentagram, glowing blue. It seems to teleport souls to other worlds.":goto 170 if rm = 78 and right$(a$, 6) = "circle" or rm=78 and right$(a$,9)="pentagram" then if falk<>78 then ?"This is an odd looking pentagram, glowing blue. It seems to teleport souls to other worlds.":goto 170 if rm=78 and right$(a$,6)="circle" or rm=78 and right$(a$,9)="pentagram" then if falk=78 then ?"Upon closer examination, the Amulet of Vega is resting in the":?"center of the circle! You now have the prized amulet!":sc=sc+250:sleep 4:goto endgame if rm=78 then if right$(a$,6)="forest" or right$(a$,4)="area" then ?"This forest is quite strange. Although the trees appear still, every time you turn around you sense movement.":goto 170 if rm=78 and right$(a$,5)="trees" then ?"These trees are all very tall. Every branch has several vines hanging down.":goto 170 if rm=78 and right$(a$,5)="vines" then ?"The vines are about 3 feet long and just as thick.":goto 170 if rm=78 and right$(a$,6)="canopy" then ?"The canopy provides great protection from the sun. It cannot protect you from the radiance of the forest, however.":goto 170 if rm=78 and right$(a$,6)="ground" then ?"The ground is covered with several yellow pools about 5 feet deep.":goto 170 if rm=78 and right$(a$,5)="pools" then ?"These pools glow a very soft yellow color. A deep power seems to vibrate from within their shallow waters.":goto 170 if rm=79 and right$(a$,4)="hill" then ?"This hill slopes down into a deep canyon below. It is covered with flowers.":goto 170 if rm=79 and right$(a$,7)="flowers" then ?"Other than a few red ones, you notice nothing special about the flowers.":goto 170 if rm=79 and right$(a$,6)="canyon" then ?"You are too far away to notice it in great detail.":goto 170 if rm=79 and right$(a$,5)="water" then ?"Once again, you are too far away to notice it in great detail.":goto 170 if rm=79 and right$(a$,4)="lake" then ?"You would need to get closer first.":goto 170 if rm=79 and right$(a$,6)="forest" then ?"The forest is obviously very big. For starters, the smallest trees":?"tower some fifty feet above you. There isn't much light inside those woods.":goto 170 if rm=79 and right$(a$,5)="trail" then ?"This is a man-made trail that cuts into the heart of an immense forest.":goto 170 if rm=80 and right$(a$,6)="canyon" then ?"You are too scared to look down, much less let go!":goto 170 if rm=80 and right$(a$,8)="branches" then ?"You mean the branches you are clutching frantically in your hand?":goto 170 if rm=80 and right$(a$,5)="cliff" then ?"It's a rather steep cliff. Not the kind you want to lose footing on.":goto 170 if rm=80 and right$(a$,4)="edge" then ?"It's about sixty feet above and behind your vision.":goto 170 if rm=80 and right$(a$,6)="ground" then ?"Ground? There's ground with these branches? Oh yeah...":goto 170 if rm=80 and right$(a$,7)="incline" then ?"The incline slopes downward at a sharp angle.":goto 170 if rm=81 and right$(a$,6)="canyon" then ?"This canyon is millions of years old. Several layers of strata line the":?"eastern and western walls, while a small river churns by your vision.":?"The river is moving swiftly right now.":goto 170 if rm=81 and right$(a$,5)="river" then ?"The river is moving very swiftly with a current speed of about two knots.":?"On either side of the canyon the river stretches out for miles.":goto 170 if rm=81 and right$(a$,6)="clouds" then ?"These are dangerous looking storm clouds. On the top head of the largest":?"one is a large, shimmering castle.":goto 170 if rm=81 and right$(a$,6)="castle" then ?"You'd need to be an airplane to see that high!":goto 170 if rm=81 and right$(a$,9)="waterfall" then ?"The waterfall is set deep in the east canyon wall. There is a rainbow here.":goto 170 if rm=81 and right$(a$,4)="wall" then ?"The canyon wall is covered with basalt and granite rock.":goto 170 if rm=81 and right$(a$,7)="rainbow" then ?"The rainbow is unique in that it has twelve distinct colors.":goto 170 if rm=82 and right$(a$,6)="canyon" then ?"The canyon is a mixture of basalt and granite strata set in an ancient":?"riverbed about two hundred feet wide. The top of the canyon is about a":?"quarter of a mile up from here.":goto 170 if rm=82 and right$(a$,9)="waterfall" then ?"You are too far away to notice much about the waterfall.":goto 170 if rm=82 and right$(a$,5)="river" then ?"The river is about sixteen feet wide and approximately eight miles long. A":?"great deal of sediment and mineral deposits can be seen in the rushing":?"water, despite it's dark brown color.":goto 170 if rm=82 and right$(a$,5)="walls" then ?"These canyon walls are a complex mixutree of basalt, granite and fossilized":?"rock fragments. Each layer of strata is at least two hundred million":?"years old. Probably much older, though.":goto 170 if rm=83 and right$(a$,5)="water" then ?"Curiously, the water is quite clean. You wonder from which source such":?"pure water could flow?":goto 170 if rm=83 and right$(a$,8)="opening" or rm=83 and right$(a$,9)="openings" then ?"You couldn't fit more than two people in it.":goto 170 if rm=83 and right$(a$,4)="cave" then ?"This 'cave',if you will, is nothing more than a small indentation":?"in an otherwise smooth rock face.":goto 170 if rm=83 and right$(a$,7)="rainbow" then ?"This rainbow is set into about twelve distinct colors, with several other":?"shades of lesser and greater variance. There seems to be a magic quality":?"to each beam on the rainbow.":goto 170 if rm=83 and right$(a$,4)="wall" then ?"The wall is slanted upwards at a ten degree angle. There are several nice":?"holes in the surface which could provide for leverage up the wall.":goto 170 if rm=83 and right$(a$,5)="holes" then ?"The holes are wide enough to grasp with your hand, but not deep enough":?"to guarentee a secure hold.":goto 170 if rm=84 and right$(a$,5)="trail" then ?"A crudely designed trail, it appears to have been recently earmarked for":?"demolition. There are several large footprints in the ground, as though":?"several people hastily evacuated these woods.":goto 170 if rm=84 and right$(a$,10)="footprints" then ?"Most of these footprints are human, but a few of them are horses while still":?"others are not distinguishable from common elk.":goto 170 if rm=84 and right$(a$,5)="rocks" then ?"These rocks are big and heavy. Strangly, try as you might you cannot":?"lift even the smallest of the bunch!":goto 170 if rm=84 and right$(a$,4)="line" then ?"You mean those rocks are supposed to form a line and not a sinwave?":goto 170 if rm=84 and right$(a$,6)="ground" then ?"This ground is very muddy. It is now obvious that the footprints you":?"see were made after a recent rainfall.":goto 170 if rm=84 and right$(a$,5)="troth" then ?"The troth,I mean ground, is suitable for the best of pigs.":goto 170 if rm=84 and right$(a$,6)="forest" then ?"As you gaze into the forst, you feel a slight pull at your breastbone. As":?"you gather your senses, you can't help but wonder what sort of perils":?"await you inside.":goto 170 if rm=85 and right$(a$,6)="forest" then ?"This is perhaps the largest forest in existence. For miles it appears to":?"stretch out. There are many trees around you, so much so that you are":?"beginning to feel uncomfortable.":goto 170 if rm=85 and right$(a$,8)="branches" or rm=86 and right$(a$,8)="branches" then ?"The branches are about three feet in diameter.":goto 170 if rm=85 and right$(a$,7)="bramble" then ?"You notice nothing special about the bramble.":goto 170 if rm=85 and right$(a$,7)="foliage" then ?"The foliage is quite diverse, with several layers of multicolored leaves.":goto 170 if rm=85 and right$(a$,6)="leaves" then ?"Um, which one? There are literally thousands on each tree.":goto 170 if rm=85 and right$(a$,6)="canopy" then ?"The canopy is restless compared to the magical beauty and peace of the":?"forest floor. Leaves dance excitedly about, as if touched by the wind of":?"no mercy.":goto 170 if rm=85 and right$(a$,5)="vines" then ?"These vines are about twenty feet long and two feet wide. Touching one of":?"the low-lying ones, you recoil in horror at the disgusting stickness":?"of the vine.":goto 170 if rm=84 and right$(a$,5)="trees" or rm=84 and right$(a$,4)="tree" then ?"You need to get a bit closer first.":goto 170 if rm=85 and right$(a$,5)="trees" or rm=86 and right$(a$,5)="trees" then ?"The trees are quite tall, with several levels of twisting, thorny branches":?"at every conceivable turn.":goto 170 if rm=85 and right$(a$,4)="tree" or rm=86 and right$(a$,4)="tree" then ?"The trees are quite tall, with several levels of twisting, thorny branches":?"at every conceivable turn.":goto 170 if rm=85 and right$(a$,10)="vegetation" then ?"The vegetation is weird. Native ferns, glowing bushes, and Venus fly":?"traps make this forest look like something out of a Tolkien novel.":goto 170 if rm=85 and right$(a$,5)="ferns" then ?"These ferns are quite bizarre in that they all have strange auras covering":?"the tips of each plant.":goto 170 if rm=85 and right$(a$,4)="aura" or rm=85 and right$(a$,5)="auras" then ?"Each aura is as individual as the plant. Some are a cool blue, while others":?"burn with a fiery red color.":goto 170 if rm=85 and right$(a$,6)="bushes" then ?"The bushes are all about five feet off the ground.":goto 170 if rm=85 and right$(a$,4)="trap" or rm=85 and right$(a$,5)="traps" then ?"These are Venus fly traps. Quite legendary for their ability to trap their":?"prey, they are nevertheless quite happy looking.":goto 170 if rm=85 and right$(a$,6)="ground" or rm=85 and right$(a$,5)="floor" then ?"The floor is quite muddy here.":goto 170 if rm=86 and right$(a$,6)="forest" then ?"The forest is immense, covering about two thousand acres. Trees are":?"plentiful here, while several large vines hang down from the branches.":goto 170 if rm=86 and right$(a$,7)="foliage" then ?"The foliage is a mixture of many different plants with odd colors.":goto 170 if rm=86 and right$(a$,5)="ferns" then ?"Each fern has it's own unique energy field. The glow is quite illuminating.":goto 170 if rm=86 and right$(a$,5)="field" then ?"The field of each fern has it's own color!":goto 170 if rm=86 and right$(a$,6)="plants" or rm=85 and right$(a$,6)="plants" then ?"There are three distinct plants here: Ferns, bushes and Venus fly traps.":goto 170 if rm=86 and right$(a$,6)="plant" or rm=85 and right$(a$,6)="plant" then ?"There are three distinct plants here: Ferns, bushes and Venus fly traps.":goto 170 if rm=86 and right$(a$,6)="bushes" then ?"The bushes seem to glow almost emerald in color.":goto 170 if rm=86 and right$(a$,4)="trap" or rm=86 and right$(a$,5)="traps" then ?"These Venus fly traps are known to catch a fly or two, but other than that":?"they are virtually harmless.":goto 170 if rm=86 and right$(a$,7)="bramble" then ?"The bramble is quite small. Nothing too unusual.":goto 170 if rm=86 and right$(a$,5)="floor" or rm=86 and right$(a$,6)="ground" then ?"The floor is definately muddy in this particular spot.":goto 170 if rm=86 and right$(a$,6)="canopy" then ?"The canopy is several feet above you. You might need to get a closer look.":goto 170 if rm=86 and right$(a$,5)="vines" then ?"These vines are about twenty feet long and two feet wide. Taking a low":?"vine from a nearby tree, you notice how slimey it is and decide to":?"remove your hands very quickly.":goto 170 if rm=86 and right$(a$,5)="trees" then ?"The trees are about fifty feet tall. None of them appear climbable.":goto 170 if chk=1 then chk=0:goto 170 b=1:FOR x = 1 TO LEN(a$): IF MID$(a$, x, 1) = " " THEN b$ = MID$(a$, b, x - b): b = x + 1: v$=b$ NEXT: b$ = MID$(a$, b, x - b): b = x + 1 n=0:for x=7 to 94:if n$=no$(x) or n$=ao$(x) then n=x next:if n=0 then ?"It's beyond your power to do that!":goto 170 goto 191 600 REM IF a$ = "get all from bag" THEN IF lc(7) <> 0 THEN ?"You don't have a bag!": GOTO 170 IF (lc(7) = 0) AND (bg = 0) THEN ?"You don't have anything inside the bag!": GOTO 170 FOR x = 8 TO 60: IF (lc(x) = 305) AND (ic < 13) AND (weight + weight(x) <= mx) THEN bg = bg - 1: ic = ic + 1: weight = weight + weight(x): PRINT no$(x); ":Ok": lc(x) = 0 IF (lc(x) = 305) AND (ic > 12) then ? no$(x); ":too heavy" IF (lc(x) = 305) AND (weight + weight(x) > mx) then ? no$(x); ":"; weight(x); " pounds. Exceeds limit by "; mx - weight(x); "!" NEXT END IF IF a$ = "put all in bag" THEN IF lc(7) <> 0 THEN ?"You don't have a bag!": GOTO 170 IF (lc(7) = 0) AND (bg > 5) THEN ?"The bag can't hold anymore.": GOTO 170 FOR x = 8 TO 60: IF (lc(x) = 0) AND (bg < 6) then ? no$(x); ":Ok": weight = weight - weight(x): ic = ic - 1: bg = bg + 1: lc(x) = 305 IF (lc(x) = 0) AND (bg > 5) then ? no$(x); ":won't fit" NEXT END IF IF a$ = "drop all" THEN IF ic = 0 THEN ?"You aren't carrying anything to drop!": GOTO 170 FOR x = 7 TO 60: IF lc(x) = 0 THEN ic = ic - 1: weight = weight - weight(x): lc(x) = rm: PRINT no$(x); ":dropped" IF lc(x) = 105 then ? no$(x); ":(wielded) cannot drop!" IF lc(x) = 205 then ? no$(x); ":(worn) cannot drop!" NEXT END IF ?"Ok.": move = move + 1: GOTO 170 help: COLOR 7: ?"Action verbs (currently)": COLOR df: PRINT : ?"GO", "ENTER", "CLIMB", "USE", "DRINK", "EAT", "READ", "EXAMINE", "SAY", "LIGHT", "GET", "DROP", "WIELD", "UNWIELD", "WEAR", "REMOVE", "KILL","SAVE (SAVE GAME)" PRINT : COLOR 7: ?"General verbs": COLOR df: PRINT : ?"INVENTORY, I", "LOOK, L", "QUIT, Q", "SCORE, SC, ?", "N, S, E, W, U, D. (and other abbreviations)" PRINT : COLOR 7: ?"SPECIAL VERBS": COLOR df: PRINT : ?"GET ALL", "DROP ALL", "WEAR ALL", "REMOVE ALL", "GET ALL FROM BAG", "PUT ALL IN BAG" PRINT : COLOR 7: ?"VERB USAGE": COLOR df: PRINT : ?"go ", "get ", , "put in bag", "get from bag", "use on ", "use " ?:color 7:?"..." 695 ry$ = INKEY$: IF ry$ = "" THEN 695 cls:color 7:?"Abbreviations (ALIASES)":COLOR df ?:COLOR df:?"In addition to the normal abbreviations, you may use up to 10 different" ?"aliases to represent two word commands. For example:":? COLOR df:?"You type: ";:color 7:?"alias get all ga":?:COLOR df:?"In this situation, 'alias' is the command, 'get all' is the verb plus noun, ":?"and 'ga' is the new alias." COLOR df:?"To list your current aliases, type 'alias' at the command prompt.":?"To clear all aliases, type 'clear all'." ?:color 7:?"Atmosphere Commands":?:color df:?"Although not particularly useful, you may use atmosphere commands to add" ?"a degree of realism to this experience. Atmosphere commands include:":?:color df ?"GRIN","LAUGH","CHUCKLE","WIMPER","CRY","WONDER","PUZZLE","SMIRK","SMILE","CACKLE","SHAKE","NOD","THINK","POUT" ?"FROWN","HMM (or HRM)","BOW","SHRUG" PRINT : COLOR 7: ?"PRESS ANY KEY TO RETURN": COLOR df 696 ry$ = INKEY$: IF ry$ = "" THEN 696 hlp = 1: : color 15,0:RETURN menu: palette 0,0:?"The bartender says: 'Here is what I sell to honest men:'" if fake=1 then ?"The bartender frowns.":?"'You are not an honest man! Scram!'":goto 170 ?"(1) Gin and Tonic <10 hp, 5 mp> [50 gold]" ?"(2) Roman Pint <25 hp, 12 mp> [85 gold]" ?"(3) Valdemar's Vodka <40 hp, 24 mp> [120 gold]" ?"(4) Drunk's Delight <85 hp, 40 mp> [165 gold]" ?"(5) Sailor's Rum <125 hp,60 mp> [400 gold]" ?"(6) Hammerhead <160 hp,80 mp> [725 gold]" ?"(7) Passion Juice <320 hp,150 mp> [950 gold]" ?"(8) Water (200) [30 gold]" ?"(9) Food (500) [70 gold]" color 14:?"Gold:";:color 10:? g&:COLOR df ax: ?"Enter number (1-9) or '0' for no sale:"; 697 ry$=inkey$:if ry$="" then goto 697 if ry$=chr$(13) then ?"The bartender says: 'I see, that's how it is, huh?'":fake=1:goto 170 698 ry=val(ry$):if ry<0 or ry>9 then goto 697 699 ? ry:if ry=0 then ?"Aborted.":palette 0,1:goto 170 if ry=1 and g&<50 or ry=2 and g&<85 or ry=3 and g&<120 or ry=4 and g&<165 or ry=5 and g&<400 or ry=6 and g&<725 or ry=7 and g&<950 or ry=8 and g&<30 or ry=9 and g&<70 then ?"Not enough gold!":goto ax if ry=1 then g&=g&-50:hp=hp+10:mp=mp+5 if ry=2 then g&=g&-85:hp=hp+25:mp=mp+12 if ry=3 then g&=g&-120:hp=hp+40:mp=mp+24 if ry=4 then g&=g&-165:hp=hp+84:mp=mp+40 if ry=5 then g&=g&-400:hp=hp+125:mp=mp+60 if ry=6 then g&=g&-725:hp=hp+160:mp=mp+80 if ry=7 then g&=g&-950:hp=hp+320:mp=mp+150 if ry=8 then wa=wa+200:g&=g&-30 if ry=9 then fd=fd+500:g&=g&-70 if hp>hm then hp=hm:else if mp>mm then mp=mm:else if wa>wm then wa=wm:else if fd>fm then fd=fm ?"You order menu item"ry"...":?"You feel much better!":palette 0,1:goto 170 700 ?"You are "na$" the ";:gosub 990 ?"Hit Points:"; hp; "/"; hm: ?"Magic Points:"; mp; "/"; mm ?"Level:"; lv: ?"Exp:"; ex&; " Next:"; nl& ?"Gold:"; g& IF wf = 1 THEN ?"Wolf's level:"; wl; " Exp:"; we& ?"Armor Class: "; ac: FOR x = 24 TO 31: IF lc(x) = 105 THEN wp = dm(x) NEXT: ?"Weapon Class:"; wp ?"Food:"; fd; "/"; fm; " Water:"; wa; "/"; wm ?"Your score is "; sc; "/ 500. ": ?"That earns you a rank of: "; : GOSUB 990 GOTO 170 a$ = MID$(STR$(sc), 2): ?"Your score is "; a$; " out of 500.": GOTO 170 990 IF sc < 50 THEN ?"Novice.": RETURN: ELSE IF sc > 49 AND sc < 75 THEN ?"Beginner.": RETURN 991 IF sc > 74 AND sc < 125 THEN ?"Rank amateur.": ELSE IF sc > 124 AND sc < 250 THEN ?"Modest adventurer.": RETURN 992 IF sc > 249 AND sc < 375 THEN ?"Veteran adventurer.": ELSE IF sc > 374 AND sc < 425 THEN ?"Elite adventurer.": ELSE IF sc > 424 AND sc < 475 THEN ?"Puzzle Wizard." 993 IF sc > 474 AND sc < 500 THEN ?"Gamemaster.": ELSE IF sc >= 500 THEN ?"The Conqueror." 994 RETURN jump: rn=0:line input"Which room (1-87):",rn$:rn=val(rn$) if rn<1 or rn>87 then ?"Aborted.":goto 170 rm=rn:?"Teleporting...":rn=0:sleep 1:goto 32 wearit: il = 0: FOR n = 32 TO 49 995 IF lc(n) = 205 then ? no$(n); ":wearing it": il = 1 IF lc(n) = 0 THEN IF (lc(32) = 205) AND (n = 33) OR (lc(33) = 205) AND (n = 32) OR (lc(36) = 205) AND (n = 37) OR (lc(37) = 205) AND (n = 36) OR (lc(42) = 205) AND (n = 43) OR (lc(43) = 205) AND (n = 42) then ? ms$: il = 1: GOTO 999 IF (lc(38) = 205) AND (n = 39) OR (lc(39) = 205) AND (n = 38) OR (lc(40) = 205) AND (n = 41) OR (lc(41) = 205) AND (n = 40) OR (lc(44) = 205) AND (n = 46) OR (lc(46) = 205) AND (n = 44) then ? ms$: il = 1: GOTO 999 IF (lc(36) = 205) AND (n = 49) OR (lc(49) = 205) AND (n = 36) OR (lc(37) = 205) AND (n = 49) OR (lc(49) = 205) AND (n = 37) OR (lc(45) = 205) AND (n = 48) then ? ms$: il = 1: GOTO 999 IF (lc(48) = 205) AND (n = 45) OR (lc(40) = 205) AND (n = 47) then ? ms$: il = 1: GOTO 999 IF (lc(47) = 205) AND (n = 40) OR (lc(41) = 205) AND (n = 47) OR (lc(47) = 205) AND (n = 41) then ? ms$: il = 1: GOTO 999 IF (lc(9) = 205) AND (n = 45) OR (lc(9) = 205) AND (n = 48) OR (lc(45) = 205) AND (n = 9) OR (lc(48) = 205) AND (n = 9) THEN ?"You are already wearing a type of '"; no$(n); "'!": GOTO 999 END IF IF lc(n) = 0 then ? no$(n); ":ok.": lc(n) = 205: ac = ac + 2: il = 1 IF lc(9) = 0 then ? no$(9); ":ok.": lc(9) = 205: ac = ac + 2: il = 1 999 NEXT: IF il = 1 THEN ?"Ok.": move = move + 1: il = 0: GOTO 170 ?"You aren't wearing anything!": move = move + 1: GOTO 170 removeit: il = 0: FOR x = 32 TO 49: IF lc(x) = 205 THEN lc(x) = 0: ac = ac - 2: il = 1: ?"You remove "; no$(x); "." IF lc(9) = 205 THEN lc(9) = 0: ac = ac - 2: il = 1: ?"You remove "; no$(9); "." NEXT: IF il = 0 THEN ?"You aren't wearing anything!": move = move + 1: GOTO 170 ?"Ok.": move = move + 1: il = 0: GOTO 170 RETURN RoomDesc: if rm=39 then ?"NOTE: The room descriptions in this area cannot be examined just yet. Have":?"patience as I finish them up. =)" CurX = POS(0) CurY = CSRLIN IF CurY = 1 THEN CurY = 2 VIEW TEXT (1,1)-(80,25) FOR a = 1 TO LEN(rn$(rm)) if rm<79 then COLOR 15, 4:else if rm>78 and rm<88 then color 15,10 locate 1, 1: print " " LOCATE 1, 1: PRINT rn$(rm); " Day:"; dy; " Score:"; sc; "/500"; tab(82-a) NEXT color df,0:locate 2,1:?" " COLOR df, 0 VIEW TEXT (1,2)-(80,25) IF (torch = lit) THEN IF v = 1 THEN 911 S = 0: IF vis(rm) = 1 THEN LOCATE CurY, CurX: PRINT rn$(rm): S = 1 911 if (s=0) OR (v=1) THEN LOCATE CurY, CurX: PRINT rn$(rm): PRINT rm$(rm) if rm=4 and faucet=1 then ?"Water spills out from the faucet into the bathtub below." if rm=24 and castle=1 then ?"There is an enormous sand castle here." if rm=13 or rm=78 then ?"There is an odd circle drawn in the ground here." if rm=78 and lc(63)=rm then ?"There is a bartender here, serving up drinks.":?"You can see a 'menu' or 'play darts'." if rm=26 and lc(61)=rm then ?"Oddly enough, there is a clerk here.":?"Type 'buy ' 'sell ' or 'appraise .":?"Type 'list' to see what's in stock." if rm=79 then ?"You may 'return' at any time." ?"Obvious exits: "; end if q=0:if s=1 and v<>1 then ?"< "; FOR x = 1 TO 6: IF (mp%(rm, x) > 0) AND (S = 0) then ? no$(x); " ";:q=1 IF (mp%(rm, x) > 0) AND (S = 1) then ? no$(x);" ";:q=1 NEXT:if q=0 then ?"." if s=1 and v<>1 then ?">"; if q=1 then q=0:PRINT FOR obj = 7 TO 94 IF obj=26 and rm=6 and rope=1 then lc(26)=rm:?"A coil of rope (hanging down).":de$(26)="A coil of rope (hanging down).":goto trans IF (lc(obj) = rm) AND (S = 0) OR (lc(obj) = rm) AND (v = 1) then ? no$(obj); "." trans: NEXT obj: v = 0 END IF IF (torch<>lit) THEN ?"It's too dark to see." RETURN alias: s=0:for x=1 to 10:if al$(x)<>"" then ? x":"al$(x)" "bl$(x):s=1 next: if s=0 then ?"You have no aliases assigned." goto 48 faldor: ?"Faldor is just like you, except kind of dumb. He can act as a bodyguard or":?"your personal slave. He's dependable most of the time." ?"To give Faldor an order, type:":color 7:?:?"faldor, ":COLOR df:? ?"where is any legal verb and is any legal object." ?"Faldor does not understand commands that 'put' items inside others, nor" ?"does he possess the dexterity to 'wear all','get all' or 'remove all'." ?:?"Faldor can enter rooms ahead of you if you wish. Also, he can be ordered" ?"to kill monsters. If the monster is too tough for him, he'll ask you to" ?"help him kill it.":?"To make him follow you (for whatever reason), type: faldor, follow" goto 170 9755 palette 0,0:color df:dx=0:sco=0:ps=0:INPUT "Place your bet:", bt:if bt>500 then color 13:?"Sorry, the maximum bet is 500 gold coins.":goto 9755 color df:?"Your turn.":tj=0 9756 ms=0:color df:?"(T)hrow dart, (A)bort" 9757 a$=INKEY$:if a$="" then goto 9757 IF a$="t" AND tj=3 THEN color df:?"That was the last dart...":COLOR 13:?"You scored"; ps; "points.":SLEEP 1:GOTO 9763 if a$="t" then goto 9763 IF a$="a" THEN color df:?"The Bartender laughs. 'Wimping out on me?'":COLOR 12:?"You just lost the bet of:"; bt:sco=0:ps=0:lb=1:GOTO 9765 goto 9757 9763 ms=0:IF dx=0 THEN nm$="You ":ELSE nm$="The Bartender " tj=tj+1:color df:IF dx=0 THEN ?"You throw a dart...":SLEEP 1 IF dx=1 THEN color df:?"The drunk throws...":SLEEP 1 randomize timer:r=INT(RND*500)+6 IF r>299 AND r<350 THEN r=500:sco=sco+r:COLOR 14:PRINT nm$; "hit the BULLSEYE! 500!":GOTO 9764 IF r>199 AND r<300 THEN r=250:sco=sco+r:COLOR 13:PRINT nm$; "hit the outer ring! 250!":GOTO 9764 IF r>99 AND r<150 THEN r=75:sco=sco+r:COLOR 10:PRINT nm$; "nailed the bartender! BONUS!":GOTO 9764 IF r >449 THEN COLOR 7:?"Alas, miss...":ms=1 randomize timer:r=INT(RND*90)+6:if ms=0 then color df:sco=sco+r:?"The dart hit for a score of:"; r 9764 IF tj<3 AND dx=0 then 9756 if tj<3 and dx=1 then 9763 IF tj=3 AND dx=1 then 9765 color df:?"Oops, last dart...":COLOR 13:?"Score:"; sco:SLEEP 1:if dx=0 then dx=1 color df:?"Bartender's turn to throw:":tj=0:dx=1:ps=sco:sco=0:GOTO 9763 9765 ms=0:color df:PRINT:?"The game ends:":PRINT:?"Your score:"; ps:?"Bartender's score:"; sco:PRINT:SLEEP 1 IF lb=1 THEN lb=0:g&=g&-bt:COLOR 14:?"The bartender snickers.":color df:?"'I see, that's how it is, huh?'":palette 0,1:goto 170 IF ps=sco THEN COLOR 7:?"GASP! It's a tie!":color df:?"No one wins!":COLOR 14:?"The bartender smiles.":palette 0,1:goto 170 IF pssco THEN COLOR 10:?"You've beaten the Bartender!":COLOR 14:?"You win the bet of"; bt; "gold coins.":g&=g&+bt:color df:?"The Bartender mumbles 'Cheater...'":palette 0,1:goto 170 palette 0,1:goto 170 mon: open "monsters.dat" for input as #1:FOR x = 61 TO 94: INPUT #1, no$(x): INPUT #1, price(x): INPUT #1, lc(x): INPUT #1, mh(x): INPUT #1, dm(x): NEXT:close 1:return lde: ?:input "Enter character's name:",na$ ?"Loading...":open "i$",1,""+na$+".osv":input #1,al:input #1,move:input #1,rm input #1,na$:input #1,hp:input #1,hm:input #1,lv:input #1,ex&:input #1,nl& input #1,g&:input #1,wf:input #1,wl:input #1,we&:input #1,ac:input #1,wp input #1,fd:input #1,wa:input #1,fm:input #1,wm:input #1,fedor:input #1,disk:input #1,rope input #1,castle:input #1,note:input #1,box:input #1,crowbar:input #1,icepick input #1,by:input #1,weight:input #1,mx:input #1,ic:input #1,fc:input #1,sc input #1,bg:input #1,water:input #1,faucet:input #1,fz:input #1,wd for x=1 to 10:input #1,al$(x):next:for x=1 to 10:input #1,bl$(x):next for x=7 to 94:input #1,lc(x):next:close 1:?"Done.":sleep 1:ng=1:goto 30 saved: if rm>28 and rm<34 then color df:?"You can't save in the library!":goto 48 ?"Saving "na$"...":open "o$",1,""+na$+".osv":print #1,al:print #1,move:print #1,rm print #1,na$:print #1,hp:print #1,hm:print #1,lv:print #1,ex&:print #1,nl& print #1,g&:print #1,wf:print #1,wl:print #1,we&:print #1,ac:print #1,wp print #1,fd:print #1,wa:print #1,fm:print #1,wm:print #1,fedor:print #1,disk:print #1,rope print #1,castle:print #1,note:print #1,box:print #1,crowbar:print #1,icepick print #1,by:print #1,weight:print #1,mx:print #1,ic:print #1,fc:print #1,sc print #1,bg:print #1,water:print #1,faucet:print #1,fz:print #1,wd for x=1 to 10:print #1,al$(x):next:for x=1 to 10:print #1,bl$(x):next for x=7 to 94:print #1,lc(x):next:close 1:if sv=1 then sv=0:return ?"Done.":goto 48 endgame: cls:locate 1,1:?"You've found the Amulet of Vega!!!":?:?"Final Score:";sc:? ?"Final Experience :";ex& ?"Final Gold earned:";g& goto 950 quit: ?"Quitting..." ?"Do you want to save your game? :"; wit: a$=inkey$:if a$="" then goto wit if a$<>"y" and a$<>"n" then goto wit print a$:if a$="y" then sv=1:gosub saved:if sv=0 then goto wit2 if a$="n" then ?"Ok...":goto wit2 goto wit wit2: ?"Thanks for playing!":system comp: palette 0,0:cls:locate 3,1:fp=1 cc: view text (1,1)-(80,25) if fp=1 then fp=0:cls:color 7,6:locate 1,1:?"O: OPEN FILE":locate 1,17:?"R: RENAME FILE":locate 1,36:?"E: EXIT SYSTEM":color 2,0:locate 3,1 view text (1,2)-(80,25) comp2: color 10:?"]"; wit7: ry$=inkey$:if ry$="" then goto wit7 if ry$<>"o" and ry$<>"r" and ry$<>"e" then ?:?"SYNTAX ERROR":?"]";:goto wit7 if ry$="o" then goto comp3 if ry$="r" then ?:?"DOS ERROR 17":goto comp2 if ry$="e" then cls:palette 0,1:color 7:?:?"You turn the machine off.":sleep 1:goto 32 goto wit7 comp3: if disk=0 then ?:?"NO DISK IN DRIVE ERROR.":goto comp2 ?"APPLE DISK #12" ?"# Unit Type" ?"----------------------------" ?"1 SPELLING PRGM" ?"2 PHONE ME PRGM" ?"3 ROCK OF AGES PRGM" ?"4 IDENTIDOR PRGM" ?"5 ADDITOR PRGM" ?"6 SUBTRACTOR PRGM" ?"7 RY'S AMAZING PRGM" ?"8 HOARD OF THE RINGS PRGM" ?"9 PASSWORD SEQL" ?"45KB FREE SPACE " pn$(1)="SPELLING":pn$(2)="PHONE ME":pn$(3)="ROCK OF AGES":pn$(4)="IDENTIDOR":pn$(5)="ADDITOR":pn$(6)="SUBTRACTOR" pn$(7)="RY'S AMAZING":pn$(8)="HOARD OF THE RINGS":pn$(9)="PASSWORD" ?"OPEN WHICH FILE:"; compy: ry$=inkey$:if ry$="" then goto compy ry=val(ry$):if ry<1 or ry>9 then goto compy ?:?"LOADING ";pn$(ry):sleep 1 if ry=1 then f$="module1.exe" if ry=2 then f$="module2.exe" if ry=3 then f$="module3.exe" if ry=4 then f$="module4.exe" if ry=5 then f$="module5.exe" if ry=6 then f$="module6.exe" if ry=7 then f$="module7.exe" if ry=8 then f$="module8.exe" if ry=9 then RANDOMIZE TIMER:pw=int(rnd*9999)+1:?"THE PASSWORD IS"pw:open "password.dat" for output as #1:print #1,pw:close 1:goto comp2 shell f$+chr$(13):fp=1:palette 0,0:color 15 goto cc