' Dungeon Adventure Plus. Ported to yabasic, 16th February 2002. ' If you honestly want to redistribute this, then it's under the GPL. ' Adam Sampson ' ' Adventure 1+ (c)1993,1994 Adam Sampson ' comp$="Amiga 4000/040s" radio$="Classic FM" reg$="GPL release" bar$="---------------------------------------------------------------------------" ' PRINT PRINT " *** DUNGEON ADVENTURE PLUS ***" PRINT PRINT " Epsilon version 1.3" PRINT PRINT " (c)1993,1994 ATSoft (Adam Sampson)" PRINT PRINT " Click in window to activate" PRINT PRINT " Welcome to Dungeon Adventure Plus. This program was originally written" PRINT " in AMOS, ported to QuickBasic on a Nimbus and back again, and has now," PRINT " much improved, arrived on your Amiga screen in GFA Basic 3.5." PRINT PRINT " If you register you will recieve a version of the program tailored for" PRINT " you, with your name on the title screen and your own room description." PRINT PRINT " >>> THIS COPY IS REGISTERED TO : ",reg$," <<<" PRINT INPUT " --- PRESS RETURN ---" ret$ PRINT PRINT " *** DISCLAIMER ***" PRINT PRINT " Any relationship to real people, alive or dead, is entirely my fault," PRINT "and done on purpose. If you are in the game, there is probably an extremely" PRINT "good reason." PRINT PRINT " *** THE AIM OF THE GAME ***" PRINT PRINT "The aim of the game is to:" PRINT PRINT "1) Find and destroy the root of all evil." PRINT "2) Find and return my disk with the source code to the game on." PRINT PRINT " *** SOME HINTS ***" PRINT PRINT "Take and examine everything you find and are able to take. Examine" PRINT "what you find and can't take. You can't complete the game unless you " PRINT "have found my disk. If something is a higher-powered weapon or armour then" PRINT "what you already have, wield or wear it. Store some food -- you may need it" PRINT "later. Master use of the .home, .game and .restaurant commands. Draw a map." PRINT "Master use of the spells (heal, zap, bolt). Examine unusual objects." PRINT "Destroy as many monsters as you can on each level before moving on." PRINT "You can always return if you need something which you haven't found." PRINT "Explore each and every room, especially those 'off the beaten track'. You" PRINT "may find something useful." PRINT INPUT " --- PRESS RETURN ---" ret$ PRINT ' ' ' ' 1=n 2=s 3=w 4=e 5=u 6=d ' ' CLS DIM r$(100),r(100,6) r$(1)="in a small blue box with an exit to the north." r(1,1)=2 r$(2)="in a small green box with exits to the north and south." r(2,1)=3 r(2,2)=1 r$(3)="in a small red box with an exit to the south and a ladder up." r(3,2)=2 r(3,5)=4 r$(4)="in a small purple box with exits down and west." r(4,6)=3 r(4,3)=5 r$(5)="in a small brown box with exits east and north." r(5,4)=4 r(5,1)=6 r$(6)="in a very, very wierd room. South and east are the only doors." r(6,2)=5 r(6,4)=7 r$(7)="in a small pink box with one exit west, one north and one up." r(7,3)=6 r(7,5)=8 r(7,1)=15 r$(8)="in a small white Biology classroom. Stairs go down, and a door goes south." r(8,6)=7 r(8,2)=10 r$(9)="safely inside your private apartment. There is a huge TV set in one corner, and the walls are covered with 1,000,000 networked "+comp$+". A huge stereo blasts out "+radio$+" all the time." r$(10)="on the path outside L6. North to Biology, East to L6, South to L4." r(10,1)=8 r(10,4)=11 r(10,2)=12 r$(11)="inside L6 - a door to the West leads outside, and a store cupboard is South." r(11,3)=10 r(11,2)=14 r$(12)="inside L4. Games everywhere. A door to the North leads outside, Ferdie's cupboard is west." r(12,1)=10 r(12,3)=13 r$(13)="in Ferdie's cupboard. East to get out." r(13,4)=12 r$(14)="in the French department store cupboard. Try going north." r(14,1)=11 r$(15)="in a huge green cavern with purple stalactites hanging down and exits south, east and west." r(15,2)=7 r(15,3)=16 r(15,4)=22 r$(16)="on a staircase. As is usual with most staircases you can go up or down or leave it to the east." r(16,4)=15 r(16,5)=17 r(16,6)=18 r$(17)="at the top of a staircase. You can go down or leave to the east." r(17,6)=16 r(17,4)=20 r$(18)="at the bottom of a staircase. You can go up or leave to the east." r(18,5)=16 r(18,4)=19 r$(19)="in a large silver corridor. You can exit west, or south." r(19,3)=18 r(19,2)=23 r$(20)="in the Adventurer's Burger Bar. West is the only exit, but the bar beckons and they do good burgers here! A sign on the wall says 'New Sirius Cybernetics food dispensors installed - drop credits to activate.' A small green hole leads down." r(20,3)=17 r(20,6)=21 r$(21)="in a small green Klein bottle. As it only has one side you can only go up via the very handy rope tied to the edge." r(21,5)=20 r$(22)="in a space-trader's shop. A sign above the counter reads 'WEAPONS AND CLOTHES BOUGHT FOR CASH - ANYTHING FOR 1000 CREDITS'. Drop anything to sell and exit west." r(22,3)=15 r$(23)="in an impressively large disco. Pulsing, flashing, strobing lights pulse, flash and strobe. A huge dance floor fills the room and the DJ (behind bullet-proof glass) grimaces. North or south." r(23,1)=19 r(23,2)=24 r$(24)="in a room where an infinately large number of monkeys reside. North or East." r(24,1)=23 r(24,4)=25 r$(25)="at the end of the current construction area. The management regrets the current shortage of rooms. You can just make out a track leading east through the mud. Try going west." r(25,3)=24 r(25,4)=29 r$(26)="in the Restuarant at the End of the Universe. A circlular bar fifty miles in diameter made from stitched-together boghog skins surronds you. Above you you can see the Universe boiling into nothingness. Stairs lead downwards and a door North." r(26,6)=27 r(26,1)=28 r$(27)="in the car-park of the REU. Large, black spaceships and small, flourescent cruisers surround the platform. Behind a door stairs lead upwards." r(27,5)=26 r$(28)="in the Chron-O-Matic booth of the REU. A black, menacing matchbox-sized machine stands in one corner. A curiously-built door leads South." r(28,2)=26 r$(29)="in a Time Gate. Time-doors lead West and East." r(29,3)=25 r(29,4)=30 r$(30)="on a marshy woodland path. The path continues to the West and East." r(30,3)=29 r(30,4)=31 r$(31)="in a clearing in the wood. A camp-fire smokes in the centre. A path leads west and you can see a few houses to the north." r(31,1)=32 r(31,3)=30 r$(32)="in centre of the dwarven village. A path leads South, and doors are West and East." r(32,2)=31 r(32,3)=33 r(32,4)=34 r$(33)="in a dwarven shop. Strange, empty shelves line the walls. The shop door leads East." r(33,4)=32 r$(34)="in the Time Gate between the RPG zone and the !!! zone. Time doors lead West and South." r(34,3)=32 r(34,2)=35 r$(35)="in a small square room in the !!! zone. Auto-tels lead North and South." r(35,1)=34 r(35,2)=36 r$(36)="in a small circular room in the !!! zone. Auto-tels lead North and South." r(36,1)=35 r(36,2)=51 r$(51)="in the Time Gate between the !!! zone and the Showdown zone. You can go north and south." r(51,1)=36 r(51,2)=52 r$(52)="in an immense tiled passage. Doors lead North, South and East." r(52,1)=51 r(52,2)=54 r(52,4)=53 r$(53)="in the armoury of the mansion house. You are surrounded by guns and weapons of all sorts. One solitary door leads west." r(53,3)=52 r$(54)="in a gigantic jaded library. Books are all around you. Doors lead north and south." r(54,1)=52 r(54,2)=55 r$(55)="standing in a huge vaulted hall, where you can see a richly-painted ceiling. One door leads north, another east." r(55,1)=54 r(55,4)=56 r$(56)="in a pink-painted study. You can see immense desks and writing-tables all around. One door leads west, one east." r(56,3)=55 r(56,4)=62 r$(57)="in the final Time Gate. And guess what, there's a Chron-O-Matic here. Time-doors lead North and South." r(57,1)=62 r(57,2)=58 r$(58)="at the top of the CO1 stairs. The stairs go down, and doors lead North and West." r(58,1)=57 r(58,3)=59 r(58,6)=64 r$(59)="inside CO1. Many users sit at terminals, playing Dungeon. West or east." r(59,3)=60 r(59,4)=58 r$(60)="in the Computer Labs lobby. A door leads to the Network Manager's office to the South, and ones to CO1 and CO2 west and east respectively." r(60,3)=61 r(60,4)=59 r(60,2)=63 r$(61)="in CO2. This lab is almost empty. One door leads East." r(61,4)=60 r$(62)="in a back passage. You can go West or South." r(62,3)=56 r(62,2)=57 r$(63)="in Mr. Ford's office. North is the only door." r(63,1)=60 r$(64)="on the CO1 stairs. Up is the only way..." r(64,5)=58 ' ' NSWEUD = move seq maxnm=50 DIM m$(maxnm),ma$(maxnm),m(maxnm),mhp(maxnm),ml(maxnm),talk$(maxnm),mx(maxnm) nm=39 monmove$="164235" ' ' if ml is -1 then monster will create food named in ma$ ' m$(1)="Greenwood" ma$(1)="gives you a conduct detention" m(1)=1 mhp(1)=200 ml(1)=4 talk$(1)="Go and learn your vocab!" m$(2)="Purple thing with a weird tie" ma$(2)="tells terrible jokes to you" m(2)=3 mhp(2)=1400 ml(2)=2 talk$(2)="I have fashion lessons from Ferdie." m$(3)="Great Green Arkleseziure" ma$(3)="hums at you" m(3)=5 mhp(3)=1110 ml(3)=5 talk$(3)="Hum" m$(4)="Great VCR of Wrath" ma$(4)="ejects a video cassette, which hits you, injuring you quite severely" m(4)=0 mhp(4)=100 ml(4)=11 talk$(4)="Click-click-brrr-pk!" m$(5)="Hippopotamus" ma$(5)="falls on you from a great height, injuring you quite severely" m(5)=0 mhp(5)=20 ml(5)=500 talk$(5)="Hope you're wearing a hippo-proof gerbil!" m$(6)="Roon" ma$(6)="says Roon-roon roooooon, healing you" m(6)=7 mhp(6)=-1 ml(6)=1000000 talk$(6)="Roon-rooooon roon-ron rooooooooooooooooon roooooooon-rooon!" m$(7)="Evans monster" ma$(7)="hurls Health and Hygiene books at you" m(7)=8 mhp(7)=2000 ml(7)=4 m$(8)="cloud of hydrogen gas" ma$(8)="gasses you, making you feel quite damaged" m(8)=2 mhp(8)=400 ml(8)=3 FOR p=9 TO 17 ma$(p)="says hello to you" m(p)=12 mhp(p)=20 ml(p)=0 NEXT p m$(9)="Alisdair Clarkson" m$(10)="Simon Vallance" m$(11)="Andrew Smith" m$(12)="Chris Bryden" m$(13)="Adam Sampson" m$(14)="Lucinda Pickett" m$(15)="Helen Shea" m$(16)="Ferdie" m$(17)="Nick Jones" talk$(17)="I'm a small sample of Nickeljonium!" ma$(16)="throws lightning bolts at you" m$(18)="Hugh Jones" ma$(18)="throws Cwobbles at you" m(18)=19 mhp(18)=1000 ml(18)=6 m$(19)="Clokey monster" ma$(19)="makes boring comments to you" m(19)=19 mhp(19)=4000 ml(19)=5 m$(20)="Burger bar attendant" ma$(20)="**" m(20)=20 mhp(20)=100000 ml(20)=0 mx(20)=1 m$(21)="Space Trader" ma$(21)="**" m(21)=22 mhp(21)=100000 ml(21)=0 mx(21)=1 m$(22)="microwave" ma$(22)="vindaloo" m(22)=9 mhp(22)=100000 ml(22)=-1 mx(22)=1000 talk$(22)="Microwaves don't say much!" m$(23)="Food dispensor" ma$(23)="lamb" m(23)=26 mhp(23)=100000 ml(23)=-1 mx(23)=800 talk$(23)="***I AM PROGRAMMED TO CREATE LAMB***" m$(24)="Noel Edmonds" ma$(24)="pours gunge over you" m(24)=55 mhp(24)=10000 ml(24)=8 mx(24)=1 m$(25)="Tony Blackburn" ma$(25)="goes mad at you" m(25)=55 mhp(25)=10000 ml(25)=8 mx(25)=1 m$(26)="Blobby (master of all evil)" ma$(26)="is evil at you" m(26)=56 mhp(26)=100000 ml(26)=10 mx(26)=1 m$(27)="programmer" ma$(27)="**" m(27)=61 mhp(27)=1000000 ml(27)=0 mx(27)=1 talk$(27)="!!c" m$(28)="whisky dispensor" ma$(28)="*whisky" m(28)=53 mhp(28)=10000000 ml(28)=-1 mx(28)=1000 FOR k=29 TO 35 ma$(k)="non-player character" m(k)=59 mhp(k)=100000000 ml(k)=0 mx(k)=1 talk$(k)="This game is MUCH better than LurkPlus!" NEXT k m$(29)="Stephen Dodd" m$(30)="Arthur" m$(31)="Adamski" m$(32)="Michael Rummy" m$(33)="George" m$(34)="Adam the prefect" m$(35)="Greg Timms" m$(36)="first-year" ma$(36)="sits morosely on the stairs" m(36)=64 mhp(36)=0 ml(36)=10 mx(36)=1 talk$(36)="Hello. I'm a first-year. I'm in the first form." m$(37)="Mr. Ford" ma$(37)="NON_pl" m(37)=63 mhp(37)=1000000000000 ml(37)=0 mx(37)=1 talk$(37)="Thank you for saving the school from evil!" m$(38)="!!!" ma$(38)="!!!s at you" m(38)=36 mhp(38)=5000 ml(38)=5 mx(38)=1 talk$(38)="!!! !!! !!! !!! !!! !!! !!! !!! !!! !!!" m$(39)="orc" ma$(39)="does whatever an orc does at you" m(39)=31 mhp(39)=1500 ml(39)=8 mx(39)=0 talk$(39)="Grrrrrrrrrrrrrrrrrrrrrr!" ' ' Object codes ' 0=holding -1000=used -999=wearing -998=wielding -997=nonexistant ' Object states ' 0=normal 1=wearable 2=wieldable 3=dosh 4=nottakeable (1=glued to floor) ' 5=edible 6=drinkable 7=readable (1=tel scroll) ' maxno=100 no=22 DIM o$(maxno),o(maxno),os(maxno),ox(maxno) o$(1)="conduct detention" o(1)=-997 os(1)=2 ox(1)=7 o$(2)="cloak" o(2)=3 os(2)=1 ox(2)=5 o$(3)="video cassette labelled BIOLOGY" o(3)=8 os(3)=0 ox(3)=0 o$(4)="dagger" o(4)=-997 os(4)=2 ox(4)=5 o$(5)="copy of the Argus" o(5)=6 os(5)=0 ox(5)=0 o$(6)="shield made from mu-metal" o(6)=53 os(6)=1 ox(6)=400 o$(7)="coin with '100 Credits' on it" o(7)=0 os(7)=3 ox(7)=100 o$(8)="DjinnanTonix" o(8)=-997 os(8)=6 ox(8)=100 o$(9)="thousand-credit note" o(9)=-997 os(9)=3 ox(9)=1000 o$(10)="Sevenoaks tracksuit" o(10)=-997 os(10)=1 ox(10)=1 o$(11)="thousand-credit note" o(11)=0 os(11)=3 ox(11)=1000 o$(12)="burger with cheese, lettuce and ham" o(12)=-997 os(12)=5 ox(12)=500 o$(13)="script for Hamlet" o(13)=24 os(13)=0 ox(13)=0 o$(14)="486 computer" o(14)=13 os(14)=4 ox(14)=2 o$(15)="scroll" o(15)=1 os(15)=7 ox(15)=1 o$(16)="splitpea" o(16)=53 os(16)=2 ox(16)=400 FOR k=17 TO 21 o$(k)="Chron-O-Matic" os(k)=4 ox(k)=1 NEXT k o(17)=28 o(18)=51 o(19)=57 o(20)=29 o(21)=999 o$(22)="disk with DUNGEON written on it" o(22)=33 os(22)=0 ox(22)=0 ' r=1 hp=1000 maxhp=10000 ow=0 oa=10 wp=3 wp$="karate chop" ap=1 ap$="Sevenoaks tracksuit" ex=10 maxex=10000 ' label mainloop ' ' Monster moves ' FOR k=1 TO nm qw=0 IF ran(1)>0.4 THEN qw=1 ENDIF IF mx(k)=1 THEN qw=1 ENDIF label wwww FOR z=1 TO 6 p=VAL(MID$(monmove$,z,1)) IF qw=0 AND r(m(k),p)>0 THEN m(k)=r(m(k),p) ENDIF qw=1 NEXT z NEXT k ' PRINT "You are ",r$(r) PRINT ' PRINT "You can see "; zz=0 x$="" FOR k=1 TO nm IF m(k)=r THEN zz=1 PRINT x$+m$(k); x$=", " ENDIF NEXT k IF zz=0 THEN PRINT "nobody"; ENDIF PRINT "." ' PRINT PRINT "In this room there is "; zz=0 x$="" FOR k=1 TO no IF o(k)=r THEN zz=1 PRINT x$+"a "+o$(k); x$=", " ENDIF NEXT k IF zz=0 THEN PRINT "nothing"; ENDIF PRINT "." ' label prompt ' ' Find a used object... ' objfound=0 zop=0 FOR k=1 TO no IF objfound=0 AND o(k)=-1000 THEN objfound=1 zop=k ENDIF NEXT k ' ' Here we handle monster attacks... ' FOR k=1 TO nm mhp(k)=INT(mhp(k)) w=INT(ran(1)*10)+1 IF m(k)=r AND w<=ml(k) THEN PRINT m$(k)," ",ma$(k)," with ",mhp(k)," HP." mr=mhp(k)*ml(k) hp=hp-((mr/20)/ap) ENDIF IF ml(k)=-1 AND w>0 AND (no0 THEN o(1)=r ENDIF IF m(k)=r AND w<=ml(k) AND k=7 AND o(4)<>0 THEN o(4)=r PRINT "The pile of health and hygiene books turns into a dagger." ENDIF NEXT k ' ' Clear end of object buffer... ' IF o(no)=-1000 THEN while (o(no)=-1000) no=no-1 wend ENDIF ' ' Check HP and EX for being higher than maxes... ' IF hp>maxhp THEN hp=maxhp ENDIF IF ex>maxex THEN ex=maxex ENDIF hp=INT(hp) ex=INT(ex) ' ' For K=1 To NM ' Print K;".";M(K);" "; ' Next PRINT bar$ PRINT "HP=",hp,"/",maxhp," EX=",ex,"/",maxex," WP=",wp$,"(",wp,") AP=",ap$,"(",ap,")" ' PRINT "NO=";no;" NM=";nm;" R=";r PRINT bar$ IF hp<1 THEN PRINT "You no longer exist." GOTO scores ENDIF e$="" v$="" LINE INPUT "DA+ >> " e$ PRINT ' i=INSTR(e$," ") ' If I=0 Then Print "Sorry, I must have a verb and a noun." ' GOTO prompt IF i>0 THEN v$=LEFT$(e$,i-1) ENDIF n$=RIGHT$(e$,LEN(e$)-i) IF i=0 THEN v$=e$ ENDIF ' v$=LEFT$(v$,3) ' ' parse command ' h=0 ' IF v$="whe" THEN PRINT "Name","Room","HP","lethal" FOR l=1 TO nm PRINT m$(l),m(l),mhp(l),ml(l) NEXT l h=1 ENDIF ' IF v$=".re" THEN stored=r r=28 h=1 GOTO mainloop ENDIF IF v$=".ho" THEN stored=r r=9 h=1 GOTO mainloop ENDIF ' IF v$=".ga" THEN r=stored h=1 GOTO mainloop ENDIF ' IF v$="qui" THEN h=1 GOTO scores ENDIF ' IF v$="tel" AND ex>89 THEN PRINT "TELEPORT ACTIVE" PRINT PRINT "You feel youself being sucked through space and time.. . . . . ." r=VAL(n$) h=1 GOTO mainloop ENDIF ' p=INSTR("NSWEUD",UPPER$(v$)) IF p=0 OR e$="" THEN GOTO nomove ENDIF h=1 IF r(r,p)=0 THEN PRINT "You can't go that way - you bang your head against the wall!" hp=hp-5 GOTO nomove ENDIF lr=r r=r(lr,p) hp=hp-1 GOTO mainloop label nomove ' IF v$="inv" THEN PRINT "You are carrying "; x$="" zz=0 FOR k=1 TO no IF o(k)=0 THEN zz=1 PRINT x$,o$(k); x$=", " ENDIF NEXT k IF zz=0 THEN PRINT "nothing"; ENDIF PRINT "." h=1 ENDIF ' IF v$="tak" OR v$="get" THEN zz=0 FOR k=1 TO no IF o(k)=r AND UPPER$(LEFT$(o$(k),3))=UPPER$(LEFT$(n$,3)) THEN zz=1 IF os(k)=4 THEN IF ox(k)=1 THEN PRINT "It appears to be glued to the floor." ENDIF IF ox(k)=2 THEN PRINT "It's far too heavy!" ENDIF ENDIF IF os(k)<>4 THEN PRINT "You take the ",o$(k),"." o(k)=0 ENDIF ENDIF NEXT k IF zz=0 THEN PRINT "Sorry, I don't know what that means right now." ENDIF h=1 ENDIF ' IF v$="dro" THEN zz=0 FOR k=1 TO no IF o(k)=0 AND UPPER$(LEFT$(o$(k),3))=UPPER$(LEFT$(n$,3)) THEN zz=k PRINT "You drop the ",o$(k),"." o(k)=r ENDIF NEXT k IF zz=0 THEN PRINT "Sorry, I don't know what that means right now." GOTO nodrop ENDIF IF zz=3 AND r=7 THEN PRINT "The tape flies into the VCR." PRINT "It's a BBC 2 programme. The VCR blows up with joy." PRINT "Something magical is happening..." mhp(4)=-50 monmove$="253461" ENDIF IF zz=5 AND r=m(16) THEN o(zz)=-997 PRINT "Ferdie says 'Thank you for the Argus. I lost it yesterday!'" PRINT "Have some hit points!" hp=hp+500 ENDIF IF zz=7 AND r=20 THEN o(zz)=21 PRINT "The coin disappears down the small green hole in the floor and a drink appears in your hands." o(8)=0 ENDIF IF os(zz)=3 AND ox(zz)=1000 AND r=20 THEN o(zz)=21 PRINT "The note disappears down the small green hole in the floor. You find yourself holding a burger." o(12)=0 ENDIF IF (os(zz)=1 OR os(zz)=2) AND r=22 THEN PRINT "The trader picks up the ",o$(zz)," and looks at it. 'Thousand, cash' he says. You suddenly find yourself holding a thousand credit note." o(9)=0 o(zz)=-997 ENDIF label nodrop h=1 ENDIF ' IF v$="att" THEN zz=0 xx=0 FOR k=1 TO nm gfafix$=UPPER$(LEFT$(n$,3)) gfafix2$=UPPER$(LEFT$(m$(k),3)) IF m(k)=r AND gfafix2$=gfafix$ THEN PRINT "You attack the ",m$(k)," with a ",wp$,"." yp=hp*wp mhp(k)=mhp(k)-(yp/20) zz=1 xx=1 IF mhp(k)<1 THEN PRINT m$(k)," disappears." m(k)=0 xx=0 ex=ex+(ml(k)*20) ENDIF ENDIF IF k=8 THEN mhp(k)=30 m(k)=INT(ran(1)*8)+1 ENDIF IF xx=1 THEN xx=0 PRINT m$(k)," now has ",mhp(k)," points." ENDIF NEXT k IF zz=0 THEN PRINT "Does not reside at this address!" ENDIF h=1 ENDIF ' IF v$="wie" THEN zz=0 FOR k=1 TO no IF o(k)=0 AND UPPER$(LEFT$(o$(k),3))=UPPER$(LEFT$(n$,3)) AND os(k)=2 THEN zz=k PRINT "You wield the ",o$(k),"." wp$=o$(k) wp=ox(k) o(k)=-997 ENDIF NEXT k IF zz=0 THEN PRINT "No such wieldable object." GOTO nowield ENDIF o(ow)=0 ow=zz label nowield h=1 ENDIF ' IF v$="wea" THEN zz=0 FOR k=1 TO no IF o(k)=0 AND UPPER$(LEFT$(o$(k),3))=UPPER$(LEFT$(n$,3)) AND os(k)=1 THEN zz=k PRINT "You wear the ",o$(k),"." ap$=o$(k) ap=ox(k) o(k)=-998 ENDIF NEXT k IF zz=0 THEN PRINT "No such wearable object." ENDIF o(oa)=0 oa=zz label nowear h=1 ENDIF ' IF v$="loo" THEN h=1 GOTO mainloop ENDIF ' IF v$="dri" THEN zz=0 FOR k=1 TO no IF o(k)=0 AND UPPER$(LEFT$(o$(k),3))=UPPER$(LEFT$(n$,3)) AND os(k)=6 THEN zz=1 PRINT "You drink the ",o$(k),"." hp=hp+ox(k) o(k)=-1000 ENDIF NEXT k IF zz=0 THEN PRINT "No such drinkable object." ENDIF h=1 ENDIF ' IF v$="eat" OR v$="con" THEN zz=0 FOR k=1 TO no IF o(k)=0 AND UPPER$(LEFT$(o$(k),3))=UPPER$(LEFT$(n$,3)) AND os(k)=5 THEN zz=1 PRINT "You eat the ",o$(k),"." hp=hp+ox(k) o(k)=-1000 ENDIF NEXT k IF zz=0 THEN PRINT "No such edible object." ENDIF h=1 ENDIF ' IF v$="exa" THEN FOR k=1 TO no IF (o(k)=r OR o(k)=0) AND UPPER$(LEFT$(o$(k),3))=UPPER$(LEFT$(n$,3)) THEN IF os(k)=7 THEN IF ox(k)=1 THEN PRINT "THE ROOT OF ALL EVIL LIES AROUND TELEPORT LOCATION 51" ENDIF ENDIF IF os(k)<>7 THEN PRINT "You see that the ",o$(k)," is a", IF os(k)=1 THEN PRINT "n armour object with a power of ",ox(k),"." ENDIF IF os(k)=2 THEN PRINT " weapon with a power of ",ox(k),"." ENDIF IF os(k)=3 THEN PRINT " monetary object worth ",ox(k)," credits." ENDIF IF os(k)=4 THEN PRINT "n untakeable object." ENDIF IF os(k)=5 THEN PRINT "n edible object worth ",ox(k)," health points." ENDIF IF os(k)=6 THEN PRINT " drink worth ",os(k)," health points." ENDIF ENDIF ENDIF NEXT k h=1 ENDIF ' IF v$="zap" THEN IF ex<100 THEN PRINT "Not enough experiance to Zap!" GOTO nozap ENDIF zz=0 FOR k=1 TO nm IF m(k)=r AND UPPER$(LEFT$(m$(k),3))=UPPER$(LEFT$(n$,3)) THEN zz=1 PRINT "You zap ",m$(k),"." mhp(k)=(mhp(k)/2)-100 IF mhp(k)<0 THEN PRINT m$(k)," disappears." m(k)=0 ex=ex+(ml(k)*10) ENDIF ENDIF NEXT k IF zz=0 THEN PRINT "Can't cast spell at thin air!" ENDIF label nozap h=1 ENDIF ' IF v$="bol" THEN IF ex<200 THEN PRINT "Not enough experiance to Bolt!" GOTO nobolt ENDIF zz=0 FOR k=1 TO nm IF m(k)=r AND UPPER$(LEFT$(m$(k),3))=UPPER$(LEFT$(n$,3)) THEN zz=1 PRINT "A lightning bolt hits ",m$(k),"." mhp(k)=(mhp(k)/10)-100 IF mhp(k)<0 THEN PRINT m$(k)," disappears." m(k)=0 ex=ex+(ml(k)*10) ENDIF ENDIF NEXT k IF zz=0 THEN PRINT "Can't cast spell at thin air!" ENDIF label nobolt h=1 ENDIF ' IF v$="hea" THEN IF ex<50 THEN PRINT "Not enough experiance to Heal." GOTO noheal ENDIF hp=hp+100 label noheal h=1 ENDIF ' IF v$="hel" THEN PRINT "Commands are:" PRINT PRINT "get/take zap (more than 99 exp)" PRINT "drop help" PRINT "inventory look" PRINT "attack n,s,e,w,u,d" PRINT "wear bolt (more than 199 exp)" PRINT "wield talk [person]" PRINT "eat, drink teleport (more than 89 exp)" PRINT ".home, .game heal (more than 89 exp)" PRINT "examine .restaurant" PRINT PRINT "All commands and nouns must be entered with first three letters correct." h=1 ENDIF ' IF v$="tal" THEN zz=0 FOR k=1 TO nm IF (m(k)=r AND UPPER$(LEFT$(m$(k),3))=UPPER$(LEFT$(n$,3))) THEN zz=k ENDIF NEXT k IF talk$(zz)="!!c" THEN GOTO complete ENDIF IF talk$(zz)<>"" THEN PRINT talk$(zz) ENDIF IF talk$(zz)="" THEN PRINT "Can't talk to a stranger!" ENDIF IF zz=0 THEN PRINT "I can't see ",n$," anywhere." ENDIF h=1 ENDIF ' IF h=0 THEN PRINT "I don't know what '",e$,"' means - type 'help' for instructions." ENDIF ' GOTO prompt ' label scores PRINT bar$ PRINT "You finish with..." PRINT "HP=",hp,"x10" PRINT "EX=",ex,"x10" PRINT "WP=",wp PRINT "AP=",ap PRINT PRINT bar$ sc=(hp*10)+(ex*10)+wp+ap PRINT "Total",sc PRINT bar$ IF hp<1 THEN PRINT " +-+ R.I.P." PRINT " +-+ +-+" PRINT " +-+ +-+" PRINT " | | Brave Adventurer" PRINT " | |" PRINT " +-+" PRINT bar$ ENDIF END ' label complete PRINT "The programmer turns his head from the screen and looks at you." PRINT PRINT "'Adam Sampson?' you ask, trembling with fear and anticipation." PRINT IF o(22)<>0 THEN PRINT "'Yes,' the programmer replies. 'But where's my disk? You knew that you" PRINT "had to find it, didn't you?" PRINT PRINT "'Erm.. yes.. but..' you say." PRINT PRINT "'Go back to the RPG zone and find it. Then teleport back. This room is" PRINT "location 61.'" PRINT PRINT "Suddenly you find yourself back in the Time Gate." r=29 GOTO mainloop ENDIF PRINT "'Yes,' the programmer replies, as you hand him the disk. 'I was" PRINT "beginning to think that you'd never arrive. What did you think of" PRINT "Noel?'" PRINT PRINT "You reel back in suprise. 'You mean...' you stammer." PRINT PRINT "'Yes. All this time you've been in an artificial universe. And that" PRINT "universe will continue to grow.' With these words the programmer slots" PRINT "the disk into the drive. He presses a key. 'Look, this is my new" PRINT "project -- Dungeon II!'" PRINT PRINT "As you stare into the screen you realise that it is the ultimate" PRINT "game. It is even better than Dungeon I, and beats LurkPlus hands down." PRINT INPUT " --- PRESS RETURN ---" ret$ PRINT PRINT "'By the way, congratulations on completing the game. It was pretty" PRINT "difficult!' He shakes you by the hand. You sit down at a terminal," PRINT "and key in a few commands. 'DUNGEON II' appears on the screen. But" PRINT "the programmer is still talking." PRINT PRINT "'Maybe my imaginary universe is free from evil, but the real world" PRINT "is still far from it. We need to clean it up.'" PRINT PRINT "But, as you look deep into the screen, his words have no effect" PRINT "on you. You are too engrossed in the game." PRINT PRINT " *** GAME COMPLETE ***" PRINT PRINT "Write to ATSoft, Beechcroft, Shoreham Lane, Halstead and quote code" PRINT "756295629. If you are the first to complete the game, you will win a " PRINT "prize." PRINT PRINT " *** THE END ***" END