ROM Computer Magazine Archive ROM MAGAZINE ISSUE 4 — FEBRUARY/MARCH 1984 / PAGE 21

TOMB OF TERROR
By BOB COCKROFT

    Imagine yourself slicing through a dense medieval forest, searching for what you heard about in a conversation the night before. It had been rumored that an ancient and enchanted tomb of King Talibau lay silently beneath some uncharted corner of the forest you are in. Great riches would be found within the tomb and the surrounding labyrinth. But only the most brave and skillful adventurer would be able to survive its many dangers. With only an indestructible sense of determination and unbreakable courage, you march confidantly into the unknown.
    You had been gone a number of days before spotting the first sign of the tomb. A pyramid-shaped mountain had caught your attention. Like a geometric design silhouetted against the rounded features of mountains behind, it had given you suspicions about its origins. With renewed energy and anticipation, you quickly made your way to its base. Closer examination of the strange-shaped mountain revealed more peculiarities. It lacked any of the tree growth that covered the surrounding country side. An odd purple plant that released a pungent odor, was seen to replace the normal vegetation. Like a knee high purple halo, the bizarre plant gave the mountain a sickly feeling.
    After about an hour of examining the slopes of the mountain, you discovered a large pit that had been gouged into the earth. As you slowly lowered yourself down the walls of the hole, a small metal object on the bottom became apparent. The dirt surrounding the metal object was cleared to revealed the handle of a door. With all your strength you pulled the door as it slowly and reluctantly opened. As if the earth was exhaling, a rush of cool, damp air silently flowed out. The sunlight beamed into the earth revealing an ancient tunnel that was lined with impressive masonry. This damp world dripped and splattered with the sound of ground water. An aurora of emptiness possessed this place. Confidently you pulled your weapon from its scabbard and entered 'THE TOMB OF KING TALIBAU.'
    The object of this game is to find the King's Tomb. Somewhere in the maze that is before you is the final resting place of the lost King. With monsters, enchanted rooms and secret passages to impede the way, your task is not an easy one. However, as word from the experienced will be of some use to you.
    You are armed with three weapons; long sword, dagger and short sword. Each one is equally valuable, however, their use should be dictated by the situation. The long sword is a large clumsy weapon. It is difficult to swing particularly against small or faster moving creatures. However, should this weapon connect with its target, it is the most devastating of all your weapons. The dagger is the most accurate weapon you have. Its light weight allows an effective swing even against the faster creatures. Despite the dagger's speed, It does not inflict the amount of damage that your weapons do. The short sword is the compromise between the long sword and the dagger. It lacks the clumsiness and power of the long sword but also lacks the speed and ineffectiveness of the dagger.
    Against some monsters it is best to defend and hope the creature loses interest and wanders away. Even running away yourself is sometimes a useful technique of avoiding being killed. Your speed is an important component in determining if you can escape.
    Beware of the maze. Expect to find some odd things in the maze. For example, there are places that look like they can be entered, but are locked by secret forces. If a wall appears in front of you, try to move left and right to see if the tunnel continues in that direction. If a wall is drawn again it means there is not passage in that direction.
    Your player characteristics that are displayed in the beginning of the game or when you press 'I' for inventory, should influence your fighting style. A player that has high strength will do extra damage when he hits an opponent. High dexterity improves the probability of hitting the target. Good speed will make escape easier. Hit points determine the amount of damage you can take. Do not let this value drop below zero or you will be dead.
    This game 'The Tomb of King Talibau' is a program that I created in an attempt to make a basic adventure game that had graphics. Because of the slow speed of the language I used in this program, the graphics screens are made so that they could be drawn in the least possible time. Therefore the graphics are not done in detail; only outlined pictures are created. The tomb is a maze that is generated by the use of data statements at the bottom of the program listing. GOOD LUCK!

100 REM * GENERATE CHARACTER SECTION *
110 GP=0:NMK=0
120 PSTR=INT(RND(0)*6)+1+INT(RND(0)*6)+1+INT(RND(0)*6)+1
140 PDEX=INT(RND(0)*6)+1+INT(RND(0)*6)+1+INT(RND(0)*6)+1
160 PSP=INT(RND(0)*6)+1+INT(RND(0)*6)+1+INT(RND(0)*6)+1
180 PHP=INT(RND(0)*6)+1+INT(RND(0)*6)+1+INT(RND(0)*6)+1
200 IF PHP<6 THEN PHP=5
220 GRAPHICS 0
240 ? :? "      PLAYER'S CHARACTERISTICS"
260 ? :?
280 ? "              STRENGTH:   ";PSTR
300 ? "           DEXTERITY:  ";PDEX
320 ? "           SPEED:      ";PSP
340 ? "           HIT POINTS: ";PHP
360 ? :? :? "Press the START button to continue"
380 IF PEEK(53279)<>6 THEN 380
400 DIM DND(20,21),ND$(20),SD$(10),WD$(10),ED$(10),EN$(25),C$(10)
420 XP=9:YP=20
440 GRAPHICS 1:COLOR 1:SETCOLOR 2,16,1:POSITION 2,6:? #6;"THE tomb OF TERROR":POSITION 10,9:? #6;"BY"
460 POSITION 5,12:? #6;"bob cockroft":? "         loading dungeon"
480 FOR Y=1 TO 21:FOR X=1 TO 20:READ D:DND(X,Y)=D:NEXT X:NEXT Y
500 REM MAIN LOOP
520 ST=STICK(0)
540 XV=XP:YV=YP
550 POKE 753,0
560 IF DND(XV,YV)=1 THEN ND$="Wa11":GOTO 2120
580 IF DND(XV,YV)<1 THEN ND$="Tunnel":GOTO 1480
600 IF DND(XV,YV)>9.9 AND DND(XV,YV)<20 THEN ND$="Door":GOTO 2200
620 IF DND(XV,YV)=4 THEN ND$="Gold hallway":GOTO 1480
640 IF DND(XV,YV)=11 THEN ND$="Gold door":GOTO 2200
660 IF DND(XV,YV)=0.7 THEN ND$="Silver lines path":GOTO 1480
680 IF DND(XV,YV)=2 THEN ND$="Silver wall":GOTO 2120
700 IF DND(XV,YV)=20 THEN ND$="Small room":GP=GP+INT(RND(0)*20)+1:GOTO 1880
720 IF DND(XV,YV)=21 THEN ND$="Small cold room":GP=GP+INT (RND(0)*25)+1:GOTO 1880
740 IF DND(XV,YV)=3 THEN ND$="Mosaic walls":GOTO 2200
760 IF DND(XV,YV)=23 THEN ND$="You have found about 1000 gps":GP=GP+INT(RND(0)*1500)+1:GOTO 1880
780 IF DND(XV,YV)=14 THEN ND$="Small blue room":GP=GP+INT(RND(0)*100)+1:GOTO 1880
800 IF DND(XV,YV)=15 THEN ND$="Room of mist":GP=GP+INT(RND(0)*200)+1:GOTO 1880
820 IF DND(XV,YV)=22 THEN ND$="Long room":GP=GP+INT(RND(0)*50)+1:GOTO 1880
840 IF DND(XV,YV)=17 THEN ND$="DarK room":GP=GP+INT(RND(0)*250)+1:GOTO 1880
860 IF DND(XV,YV)=18 THEN ND$="Bright room":GP=GP+INT(RND(0)*180)+1:GOTO 1880
880 IF DND(XV,YV)=19 THEN ND$="Room of cloth":GP=GP+INT(RND(0)*80)+1:GOTO 1880
900 IF DND(XV,YV)=26 THEN ND$="Brass room":GP=GP+INT(RND(0)*5000)+1:GOTO 1880
920 IF DND(XV,YV)=25 THEN GP=GP+INT(RND(0)*10000)+1:ND$="TOMB OF KING TALIBAU":GOTO 1260
940 REM *
960 REM * LEFT SIDE THINGS *
980 IF DND(XV-1,YV)<1 THEN 1680
1000 IF DND(XV-1,YV)>9.9 AND DND(XV-1,YV)<27 THEN 1680
1020 IF DND(XV-1,YV)=4 THEN 1680
1040 IF DND(XV-1,YV)=0.7 THEN 1680
1060 REM *
1080 REM * RIGHT SIDE THINGS *
1100 IF DND(XV+1,YV)<1 THEN 1780
1120 IF DND(XV+1,YV)>9.9 AND DND(XV+1,YV)<27 THEN 1780
1140 IF DND(XV+1,YV)=4 THEN 1780
1160 IF DND(XV+1,YV)=0.7 THEN 1780
1180 GOTO 2300
1200 REM MOVEMENT SECTION
1220 REM *
1240 REM * TOMB OF KING
1260 GRAPHICS 8:COLOR 1:SETCOLOR 2,16,1
1280 PLOT 1,1:DRAWTO 40,40:DRAWTO 280,40:DRAWTO 319,1
1300 PLOT 40,40:DRAWTO 40,120:DRAWTO 280,120:DRAWTO 280,40
1320 PLOT 40,120:DRAWTO 1,150:PLOT 280,120:DRAWTO 319,150
1340 PLOT 140,120:DRAWTO 145,145:DRAWTO 170,145:DRAWTO 165,120:DRAWTO 165,100
1360 DRAWTO 140,100:DRAWTO 145,125:DRAWTO 170,125:DRAWTO 165,100
1380 PLOT 140,100:DRAWTO 140,120:PLOT 170,125:DRAWTO 170,145:PLOT 145,125:DRAWTO 145,145
1400 ? "      THE TOMB OF KING TALIBAU"
1420 ? "             YOU WIN"
1440 REM *
1460 REM * FLOOR PICTURE *
1480 GRAPHICS 8:COLOR 1:SETCOLOR 2,16,1
1500 PLOT 1,1:DRAWTO 130,55:DRAWTO 200,55:DRAWTO 319,1
1520 PLOT 130,100:DRAWTO 1,150:PLOT 200,100:DRAWTO 319,150
1540 PLOT 130,55:DRAWTO 130,100:DRAWTO 200,100:DRAWTO 200,55
1560 PLOT 130,55:DRAWTO 142,60:PLOT 200,55:DRAWTO 195,57:PLOT 130,100:DRAWTO 145,94:PLOT 200,100:DRAWTO 190,94
1580 PLOT 65,28:DRAWTO 260,28:DRAWTO 260,126:DRAWTO 65,126:DRAWTO 65,28
1600 ? "              ";ND$
1620 GOTO 980
1640 REM *
1660 REM * WAY TO THE LEFT *
1680 PLOT 60,129:DRAWTO 60,45:DRAWTO 28,33:DRAWTO 28,138
1700 PLOT 60,45:DRAWTO 28,45:PLOT 60,128:DRAWTO 28,128
1720 GOTO 1100
1740 REM *
1760 REM * WAY TO THE RIGHT
1780 PLOT 270,129:DRAWTO 270,45:DRAWTO 302,33:DRAWTO 302,142
1800 PLOT 270,45:DRAWTO 302,45:PLOT 302,128:DRAWTO 270,128
1820 GOTO 2300
1840 REM *
1860 REM * ROOM *
1880 GRAPHICS 8:PLOT 1,1:DRAWTO 65,28:DRAWTO 260,28:DRAWTO 319,1
1900 PLOT 65,126:DRAWTO 1,150:PLOT 260,126:DRAWTO 319,150
1920 PLOT 65,28:DRAWTO 65,126:DRAWTO 260,126:DRAWTO 260,28
1940 TRG=INT(RND(0)*TR)+1
1960 ? "     ";ND$; ";TRG;"gold pieces"
1980 GOTO 980
2000 REM *
2020 REM * FRONT DOOR *
2040 PLOT 148,126:DRAWTO 155,120:PLOT i48,52:DRAWTO 154,56:PLOT 190,52:DRAWTO 180,60:PLOT 190,126:DRAWTO 185,120
2060 GOTO 2300
2080 REM *
2100 REM * WALL CLOSE UP *
2120 GRAPHICS 8:SETCOLOR 2,16,1:FOR Y=1 TO 120 STEP 10:PLOT 1,Y:DRAWTO 319,Y:NEXT Y
2140 FOR X=1 TO 319 STEP 25:PLOT X,1:DRAWTO X,110:NEXT X:? "There is a wall in this direction"
2160 GOTO 2300
2180 REM *
2200 REM * DOOR CLOSE UP *
2220 GRAPHICS 8:SETCOLOR 2,16,1:PLOT 1,1:DRAWTO 319,1:DRAWTO 319,150:DRAWTO 1,150:DRAWTO 1,1
2240 PLOT 125,150:DRAWTO 125,40:DRAWTO 195,40:DRAWTO 195,150
2260 ? "             ";ND$
2280 GOTO 2300
2300 REM *
2302 REM * ENCOUNTER SECTION *
2304 PE=INT(RND(0)*10)+1
2306 IF PE<>1 THEN 2318
2308 GOTO 2540
2316 REM *
2317 REM * MOVEMENT SECTION *
2318 ST=STICK(0):IF ST=14 THEN IF DND(XP,YP-1)>3 OR DND(XP,YP-1)<0.99 THEN YP=YP-1:GOTO 520
2320 IF ST=14 AND DND(XP,YP-1)<4 AND DND(XP,YP-1)>0.99 THEN 2120
2340 IF ST=13 THEN IF DND(XP,YP+1)>3 OR DND(XP,YP+1)<0.99 THEN YP=YP+1:GOTO 520
2360 IF ST=13 AND DND(XP,YP+1)<4 AND DND(XP,YP+1)>0.99 THEN 2120
2380 IF ST=11 THEN IF DND(XP-1,YP)>3 OR DND(XP-1,YP)<0.99 THEN XP=XP-1:GOTO 520
2400 IF ST=11 AND DND(XP-1,YP)<4 AND DND(XP-1,YP)>0.99 THEN 2120
2420 IF ST=7 THEN IF DND(XP+1,YP)>3 OR DND(XP+1,YP)<0.99 THEN XP=XP+1:GOTO 520
2430 IF PEEK(764)=13 THEN 3580
2460 GOTO 2318
2479 REM *
2480 REM * ENCOUNTER SECTION *
2540 TE=INT(RND(0)*10)+1
2560 ENFLAG=1
2580 IF TE<4 THEN EN$="RAT":HP=3:AC=1:DA=4:DE=15:SP=15:RU=2
2600 IF TE=4 THEN EN$="GAINT SCORPION":HP=5:AC=3:DA=6:CL=1:DE=8:SP=8:RU=4
2620 IF TE=5 THEN EN$="SKELETION":HP=10:AC=1:DA=6:CL=2:DE=11:SP=11:RU=6
2640 IF TE=6 THEN EN$="MUMMY to :HP=12:AC=1:DA=4:CL=3:DE=5:SP=9:RU=8
2660 IF TE=7 THEN EN$="LIZARD MAN":HP=15:AC=3:DA=6:CL=4:DE=12:SP=12:RU=5
2680 IF TE=8 THEN EN$="WEREWOLF":HP=24:AC=3:DA=10:CL=5:DE=14:SP=17:RU=25
2700 IF TE=9 THEN EN$="ORGRE to :HP=18:AC=1:DA=10:CL=6:DE=8:SP=9:RU=7
2720 IF TE=10 THEN EN$="ORC":HP=5:AC=2:DA=4:CL=7:DE=6:SP=6:RU=3
2722 GRAPHICS 0:? :? :? :? "You have encountered a ";EN$
2724 ? :? "Press START BUTTON to continue"
2726 IF PEEK(53279)=6 THEN 2760
2728 GOTO 2726
2739 REM *
2740 REM * COMBAT SECTION *
2760 GRAPHICS 0:? "         Combat Options"
2780 ? :? "What do you want to do?"
2800 ? :? "    Defend             (press D)"
2820 ? "    Run                   (press R)"
2840 ? "   Attack with long sword (press L)"
2860 ? "  Attack with short sword (press S)"
2880 ? "  Attack with dagger      (press G)"
2882 ? "  Inventory               (press I)":?
2899 POKE 753,0
2900 INPUT C$
2920 IF C$="L" THEN CD=16:CDE=-5:GOTO 3040
2940 IF C$="S" THEN CD=8:CDE=-2:GOTO 3040
2960 IF C$="G" THEN CD=4:CDE=2:GOTO 3040
2980 IF C$="D" THEN CDE=4:GOTO 3210
2985 IF C$="I" THEN IN=1:GOTO 3580
3000 IF C$="R" THEN CDE=-1:GOT0 3420
3002 ? :? "Sorry, I did not understand"
3004 FOR X=1 TO 50:NEXT X
3006 GOTO 2760
3019 REM *
3020 REM * ATTACK SECTION *
3040 PH=INT(RND(0)*20)+1
3060 PH=PH+(PDEX-11)+((DE*-1)+11)+CDE
3100 IF PH>12 THEN 3160
3120 ? "You missed"
3140 GOTO 3220
3160 ? "You hit"
3180 DAMAGE=INT(RND(0)*CD)+1+INT(PSTR/2)-5
3182 HP=HP-DAMAGE
3183 IF HP>-1 THEN 3194
3184 ? "The encounter is dead"
3185 NMK=NMK+1
3186 ? :? "press START BUTTON to continue"
3188 IF PEEK(53279)=6 THEN 560
3190 GOTO 3188
3194 GOTO 3220
3199 REM *
3200 REM * DEFEND SECTION *
3210 RU1=INT(RND(0)*RU)+1
3212 IF RU1<>1 THEN 3220
3214 ? "The encounter ran away"
3215 ? :? "press the START BUTTON to continue"
3216 IF PEEK(53279)=6 THEN 560
3217 GOTO 3216
3220 PHE=INT(RND(0)*20)+1
3240 PHE=PHE+(DE-11)+((PDEX*-1)+11)
3260 IF PHE>10 THEN 3320
3280 ? "The encounter missed"
3282 ? :? "press START BUTTON to continue"
3284 IF PEEK(53279)=6 THEN 3304
3286 GOTO 3284
3304 GOTO 2760
3320 DAE=INT(RND(0)*DA)+1
3325 ? "The encounter hit you"
3340 PHP=PHP-DAE
3342 IF PHP<O THEN 3380
3350 ? "You now have ";PHP;" hit points"
3355 ? :? "Press START BUTTON to continue"
3358 IF PEEK(53279)=6 THEN 3380
3360 GOTO 3358
3380 IF PHP<O THEN ? :? "You are dead":END
3382 GOTO 2760
3399 REM *
3400 REM * THE RUN AWAY SECTION *
3420 CHOA=INT(RND(0)*20)+1
3440 CHOA=CHOA+(SPS-11)+((SP*-1)+11)
3460 IF CHOA>10 THEN 3520
3480 ? "You have failed to escape"
3486 GOTO 3220
3520 ? "You have successfully escaped"
3522 ? :? "press START BUTTON to continue"
3524 IF PEEK(53279)=6 THEN 560
3526 GOTO 3524
3559 REM *
3560 REM * INVENTORY SECTION *
3580 GRAPHICS 0
3600 POSITION 8,6:? "Inventory ":POSITION 24,6:? "Statistics"
3620 POSITION 7,10:? "Long
Sword":POSITION 23,10:? "Strength: ";PSTR
3640 POSITION 7,11:? "Short Sword":POSITION 23,11:? "Dexterity: ";PDEX
3660 POSITION 7,12:? "Dagger":POSITION 23,12:? "Speed: ";PSP
3680 POSITION 7,13:? "Gold: ";GP
3700 POSITION 23,13:? "Hit Points: ";PHP
3720 POSITION 8,15:? "Number of monsters killed ";NMK
3735 ? :? "      Press spacebar to return"
3740 IF PEEK(764)=33 AND IN>0 THEN IN=0:GOTO 2760
3741 IF PEEK(764)=33 THEN 560
3742 GOTO 3740
3760 DATA 1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4
3780 DATA 1,1,1,1,0,0,0,1,0,11,1,1,4,4,26,11,0,25,4,4
3800 DATA 1,1,0,0,0,1,0,0,0,1,1,1,4,4,6,4,4,4,4,4
3820 DATA 1,1,1,1,0,1,1,1,0,0,0,0,6,0,0,0,0,4,1,1
3840 DATA 1,0,1,0,1,1,0,0,1,22,0,0,6,0,1,0,1,1,18,1
3860 DATA 1,0,0,0,0,0,0,1,23,0,0,1,1,0,1,0,1,1,0,1
3880 DATA 1,3,3,3,1,0,1,1,0,0,17,1,19,0,6,0,1,0,0,1
3900 DATA 1,3,22,22,0,1,0,1,1,0,1,1,1,0,1,1,0,0,1,1
3920 DATA 1,3,22,6,21,1,0,0,0,0,0,0,0,0,0,0,0,6,26,1
3940 DATA 1,3,22,1,20,1,2,2,2,2,2,1,1,1,1,0,1,1,19,1
3960 DATA 1,3,22,1,10,1,2,2,2,2,2,1,1,1,1,0,1,1,19,1
3980 DATA 1,3,11,1,20,10,.7,.7,2,.7,10,0,0,0,0,0,1,1,0,1
4000 DATA 1,0,0,1,1,1,2,.7,.7,.7,2,1,0,1,1,18,1,1,0,1
4020 DATA 1,0,1,1,1,1,2,2,.7,2,2,1,0,0,0,0,0,0,0,1
4040 DATA 1,0,1,15,1,1,1,1,10,1,1,1,0,1,1,0,1,1,1,1
4060 DATA 1,0,1,11,1,1,1,1,0,.5,1,1,0,1,1,0,12,1,1,1
4080 DATA 1,0,10,0,10,13,10,0,0,0,0,10,0,0,0,0,0,1,18,1
4100 DATA 1,0,1,11,1,1,1,1,4,0,1,1_,0,1,1,1,0,1,0,1
4120 DATA 1,12,1,14,1,1,1,1,0,0,1,1,0,0,17,1,0,0,0,1
4140 DATA 1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1
4160 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

Below are a few pictures of the game "Tomb of Terror":

This game requires 32K and a Joystick.

Tomb of Terror  screen 1

Tomb of Terror  screen2

Tomb of Terror  scarren 3