home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / club100 / gam / legacy.ba < prev    next >
Text File  |  2006-10-19  |  21KB  |  283 lines

  1. 0 'CLUB 100 Library - 415/939-1246 BBS,    937-5039 NEWSLETTER, 932-8856 VOICE
  2. 1 POWERCONT:DEFINTA-Z:MAXFILES=2:CLS:CALL16959:GOSUB301:CLS:CALL17001:PRINT"     LEGACY: Reign of the Sorceress     ";:CALL17006:PRINT" If you enjoy playing this fascinating   game, send $10.00 to:":PRINTTAB(11)"Stan Adermann
  3. 3 PRINTTAB(11)"20 SE 2nd St.":PRINTTAB(11)"Gwinner, ND 58040":PRINT"Or at least pass it on to someone else.":CALL17001:PRINT"             Press any key.             ":GOSUB310:CALL17006:GOTO125
  4. 5 GOSUB168:CLEAR750,HIMEM:ONERRORGOTO318:CLEAR500,HIMEM:GOSUB314:CLS:GOSUB27:GOSUB41
  5. 6 IFFRE(0)<400THENGOSUB312:CLEAR500,HIMEM:GOSUB314
  6. 7 GOSUB310:X=RX:Y=RY:GOSUB35:IFE(8)=1THENGOSUB280:GOTO6
  7. 8 IFW$="u"ANDE(6)=1THENLV=LV-1:GOSUB124:GOTO22ELSEIFW$="u"ANDE(6)=0THEN6
  8. 9 IFW$="d"ANDE(7)=1THENGOSUB268:LV=LV+1:GOSUB124:GOTO22ELSEIFW$="d"ANDE(7)=0THEN6
  9. 10 IFW$="q"THENCALL16964:CLS:GOSUB312:MENU
  10. 11 IFW$="c"THENGOSUB212:GOSUB115
  11. 12 IFW$="s"THENGOSUB252
  12. 13 IFW$="r"THENGOSUB260
  13. 14 IFW$<CHR$(28)ORW$>CHR$(31)THEN6
  14. 15 IFW$=CHR$(28)THENDI=DI+1:IFDI>4THENDI=DI-4
  15. 16 IFW$=CHR$(29)THENDI=DI-1:IFDI<1THENDI=DI+4
  16. 17 IFW$=CHR$(30)ANDE(DI)=1THENRX=RX-(DI=2)+(DI=4):RY=RY-(DI=3)+(DI=1)ELSEIFW$=CHR$(30)ANDE(DI)=0THEN6
  17. 18 IFW$<>CHR$(31)THEN22
  18. 19 DR=DI-2:IFDR<1THENDR=DR+4
  19. 20 IFE(DR)<>1THEN6
  20. 21 RX=RX-(DR=2)+(DR=4):RY=RY-(DR=3)+(DR=1)
  21. 22 GOSUB44:GOSUB27:IFRND(1)>.75-FI%(5)*.1THENGOSUB45:GOTO6
  22. 23 PM=PM+1-FI%(1)*1:IFPM>HI-FI%(1)*20THENPM=HI-FI%(1)*20
  23. 24 HF=HF-1:IFHF<0THEN113
  24. 25 HP=HP+1-FI%(7)*1:IFHP>HMTHENHP=HM
  25. 26 GOTO6
  26. 27 RESTORE28:READA,B,C,D,E,H:X=RX:Y=RY:LINE(A,A)-(B,B),1,B
  27. 28 DATA0,63,16,47,24,6,21,42,13,3,24,39,9,2,26,37,7,2,27,36,6,1,28,35,5,1,28,35,4,1,28,35,4,1,29,34,4,1:GOSUB35
  28. 29 IFE(DI-1)=1THENLINE(A,C)-(C,C):LINE-(C,D):LINE-(A,D)ELSELINE(A,A)-(C,C):LINE-(C,D):LINE-(A,B)
  29. 30 IFE(DI+1)=1THENLINE(B,C)-(D,C):LINE-(D,D):LINE-(B,D)ELSELINE(B,A)-(D,C):LINE-(D,D):LINE-(B,B)
  30. 31 IFE(6)=1THENLINE(31-H,31)-(31-H,31-E):LINE(32+H,31)-(32+H,31-E):LINE(31-H,31-(E/3))-(32+H,31-(E*2/3)),1,B
  31. 32 IFE(7)=1THENLINE(31-H,32)-(31-H,32+E):LINE(32+H,32)-(32+H,32+E):LINE(31-H,32+(E/3))-(32+H,32+(E*2/3)),1,B
  32. 33 IFC=29ANDD=34THENLINE(C,C)-(D,D),1,B:GOSUB40:RETURN
  33. 34 IFE(DI)=1THENA=C:B=D:READC,D,E,H:X=X-(DI=2)+(DI=4):Y=Y-(DI=3)+(DI=1):GOSUB35:GOTO29ELSELINE(C,C)-(D,D),1,B:GOSUB40:RETURN
  34. 35 G=ASC(MID$(MA$,X+1+Y*10,1)):FORF=1TO4:E(F)=0:G=G/2:IFG<>INT(G)THENG=INT(G):E(F)=1
  35. 36 NEXTF:E(0)=E(4):E(5)=E(1):G=G/2:IFG<>INT(G)THENG=INT(G):E(6)=1ELSEE(6)=0
  36. 37 G=G/2:IFG<>INT(G)THENG=INT(G):E(7)=1ELSEE(7)=0
  37. 38 G=G/2:G=INT(G):G=G/2:IFG<>INT(G)THENG=INT(G):E(8)=1ELSEE(8)=0
  38. 39 RETURN
  39. 40 PRINT@11,LEFT$(N$,28):PRINT@51,"Level:"INT(XP/100)+1"HM:"HM" HP:"HP:PRINT@91,"Gold:"GO"Food:"INT(HF)"MP:"PM:RETURN
  40. 41 CALL17001:GOSUB279:PRINT@132,"ÿ)Move forward  Ö)Move back":PRINT@172,"¢)Turn left     Ü)Turn right":PRINT@212,"U)Move up       D)Move down":PRINT@252,"C)Cast spell    R)Rest":PRINT@292,"Q)Quit or Save  S)Status":CALL17006:RETURN
  41. 44 PRINT@0,"           ":FORER=1TO6:PRINT"           ":NEXTER:PRINT"           ";:RETURN
  42. 45 MF=1:IFRND(1)*100>HITHENW$="w":GOTO49
  43. 46 GOSUB279:PRINT@131,"You hear a creature":PRINT@171,"approaching. Do you wish to":PRINT@211,"A)Attack         H)Hide":PRINT@251,"W)Wait
  44. 48 GOSUB310:IFINSTR("ahw",W$)=0THEN48
  45. 49 MN=INT(RND(1)*2+1)+(LV-1)*2
  46. 50 RESTORE116:FORA=1TOMN:MN$="":READMN$,MW,MA,MS,MQ,MI,MC,C:NEXT:RESTORE123:FORD=1TOC:FORB=1TO5:READLI$(B):NEXT:NEXT:MP=LV*50:IFMN=21THENMP=1000:GOTO68
  47. 52 IFW$="a"THEN68
  48. 53 GOSUB279:PRINT@131,"A "MN$" comes":PRINT@171,"into view.":IFW$="w"OR(RND(1)<MI/HI-.2*FI%(4)ANDW$="h")THENPRINT@211,"It sees you.":GOTO60ELSEPRINT@211,"It doesn't see you.  You may:
  49. 55 PRINT@291,"W)Wait for creature to pass":PRINT@251,"A)Attack         C)Cast spell
  50. 56 GOSUB310:IFINSTR("wac",W$)=0THEN56
  51. 57 GOSUB279:IFW$="w"THENPRINT@131,"The "MN$" leaves.":PRINT@171,"Press a key.":GOSUB310:GOTO115
  52. 58 IFW$="c"THENGOSUB212:GOTO83
  53. 59 IFW$="a"THEN68
  54. 60 PRINT@251,"A)Attack         B)Bribe":PRINT@291,"C)Cast spell":GOSUB310:IFINSTR("abc",W$)=0THEN60
  55. 61 IFW$="a"THEN68
  56. 62 IFW$<>"b"THEN67
  57. 63 GOSUB279:IFGO<MITHENPRINT@131,"The monster laughs at your":PRINT@171,"pitiful offer, then attacks.":PRINT@211,"Press a key.":GOSUB310:GOTO108
  58. 65 GOSUB279:PRINT@131,"The monster gleefully takes":PRINT@171,"your gold and leaves.":PRINT@211,"Press a key.":GO=GO-MI:GOSUB310:GOTO115
  59. 67 IFW$="c"THENGOSUB212
  60. 68 CALL17001:GOSUB279:IFHQ+FI%(8)*50>MQTHENPRINT@131,"You attack first."ELSEPRINT@131,"The creature attacks first.":GOTO106
  61. 69 PRINT@171,"Press a key.":GOSUB310
  62. 70 CALL17006:GOSUB40:CALL17001:GOSUB279:PRINT@131,"Select your attack:":PRINT@171,"T)Thrust         P)Parry":PRINT@211,"C)Cast spell":PRINT@251,"S)Surrender and offer gold
  63. 72 GOSUB310:IFINSTR("tpcs",W$)=0THEN72
  64. 73 GOSUB279:IFW$="t"THENPRINT@131,"Target?-1 "LI$(1):B=2:FORA=171TO291STEP40:PRINT@A,"       "B;LI$(B):B=B+1:NEXTAELSE76
  65. 74 GOSUB310:IFW$<"1"ORW$>"5"THEN74
  66. 75 W=VAL(W$):TT=1
  67. 76 IFW$="p"THENW=INT(RND(1)*5)+1:TT=1ELSETT=0
  68. 77 IFW$="c"THENGOSUB212:GOTO83
  69. 78 IFW$<>"s"THEN81
  70. 79 IFINT(RND(1)*100)>HIANDGO>0THENGOSUB279:PRINT@131,"The creature takes all of":PRINT@171,"your gold, strikes you":PRINT@211,"soundly, and leaves.":PRINT@251,"Press a key.
  71. 80 IFINT(RND(0)*100)>HIANDGO>0THENHP=HP-INT(RND(1)*HP):GO=0:GOSUB310:GOTO115ELSECLS:CALL17006:PRINT"The monster laughs gleefully and strikesyou dead.  You have lost.":GOSUB306:KILL"a!!!1.do":MENU
  72. 81 A1=HQ+HS+HW*10+(XP/100+1)*30+FI%(2)*50*(XP/100+1)-50*TT+50:D2=MQ+MC/2+MA*10+LV*30+(6-W)*5:IFA1<D2THENA1=D2+25
  73. 82 GOSUB279:IFINT(RND(1)*(A1/2)+A1/2)>D2THENPRINT@131,"You hit the "MN$:FL=1ELSEFL=0:PRINT@131,"You missed the "MN$
  74. 83 DM=(HW*INT(RND(1)*10+1)+(INT(RND(1)*HS+1))*(6-W)/5)-(FI%(3)*40):RD=INT(RND(1)*MC/2):IFRD>DMTHEN83
  75. 84 MP=MP+(RD-DM)*FL:IFMP>0THEN89
  76. 85 IFLV*100>XPTHENXP=XP+MI
  77. 86 IFMN=21THEN265
  78. 87 PRINT@171,"You have slain the":PRINT@211,MN$:GO=GO+INT(RND(1)*MI/2):IFRND(1)<.5THENHF=HF+INT(RND(1)*MC):IFHF>255THENHF=255
  79. 88 PRINT@251,"Press a key.":GOSUB310:GOTO115
  80. 89 IFMN<>21ANDMP<10*LVTHENPRINT@171,"The monster falls to its":PRINT@211,"knees and offers you a potion":PRINT@251,"in return for its life.":PRINT@291,"A)Accept potion  K)Kill"ELSE107
  81. 90 GOSUB310:IFINSTR("ak",W$)=0THEN90
  82. 91 IFW$="k"THENMP=0:D2=0:GOTO82
  83. 92 P=INT(RND(1)*7)+1:RESTORE121:FORA=1TOP:READP$:NEXTA:GOSUB279:IFRND(1)*100+1<HITHENPRINT@131,"The creature gives you a":PRINT@171,"potion of "P$"."ELSEPRINT@131,"You are unable to tell what":PRINT@171,"kind of potion it is.
  84. 94 PRINT@211,"Do you wish to drink it?[Y/N]":GOSUB310:IFINSTR("yn",W$)=0THEN94
  85. 95 IFW$="n"THEN115
  86. 96 HS=HS-4*LV*(P=1):IFHS>100THENHS=100
  87. 97 HQ=HQ-4*LV*(P=2):IFHQ>100THENHQ=100
  88. 98 HI=HI-4*LV*(P=3):IFHI>100THENHI=100
  89. 99 HC=HC-4*LV*(P=4):HP=HP-40*(P=4):IFHC>100THENHC=100
  90. 100 IFP=5THENHF=HF\2
  91. 101 IFP=6THENHP=HM
  92. 102 IFP=7THENHP=HP\2
  93. 103 HM=HC*10:IFLV*100>XPTHENXP=XP+10
  94. 104 IFRND(0)*100+1>=HITHENGOSUB279:PRINT@131,"The creature gave you a":PRINT@171,"potion of "P$".":PRINT@211,"Press a key.":GOSUB310
  95. 105 GOSUB124:GOTO115
  96. 106 PRINT@171,"Press a key.":GOSUB310
  97. 107 IFMF>0AND(FI%(6)<>1ORMN=21)THENGOSUB279:PRINT@131,"The monster casts a fireball":HP=HP-INT(RND(1)*.5*HP):MF=MF-1
  98. 108 MT=INT(RND(1)*5+1):D2=HQ+HC/2+HA*10+(XP/100+1)*30+(6-MT)*5+TT*50:A1=MQ+MW*10+MS+LV*50+25:IFA1<D2THENA1=D2+25
  99. 109 GOSUB279:IFINT(RND(1)*(A1/2)+A1/2)>D2THENPRINT@131,"The "MN$" hit you":FL=1ELSEFL=0:PRINT@131,"The "MN$" missed you
  100. 110 DM=INT((MW*INT(RND(1)*10+1)+INT(RND(1)*MS+1))*(6-MT)/5)
  101. 111 RD=INT(RND(1)*HC/2):IFRD>DMTHEN111
  102. 112 HP=HP+(RD-DM)*FL:IFHP>0THEN70
  103. 113 CLS:CALL17006:PRINT"You have been slain.  The sorceress     still holds her vicelike grip over the  land.  All hope is lost...":PRINT@210,"until the next time.":GOSUB306:KILL"a!!!1.do":MENU
  104. 115 CALL17006:CLS:GOSUB27:GOSUB41:RETURN
  105. 116 DATAzombie,1,1,10,10,10,40,1,skeleton,2,1,15,30,15,10,2,troll,3,1,25,25,25,25,1,fighter,4,3,40,30,10,20,1,goblin,5,4,37,37,37,39,1,blob,5,5,50,33,33,34,3,gargoyle,7,6,45,45,30,60,4,mummy,5,8,60,30,45,45,1,ogre,8,8,60,70,20,50,1,orc,8,9,50,80,40
  106. 117 DATA30,2,golem,8,8,100,50,40,100,1,werewolf,9,8,100,100,10,80,5,ninja,11,12,80,100,60,100,2,centaur,12,11,100,100,20,100,7,minotaur,13,13,100,100,100,100,2,medusa,15,13,100,100,100,100,1,dragon,17,12,100
  107. 118 DATA100,100,100,6,vampire,13,16,100,100,100,100,1,devil,18,18,100,100,100,100,4,demon,17,17,100,100,100,100,4,sorceress,35,30,100,100,100,100,1
  108. 119 DATAhands,dagger,mace,axe,bow,short sword,long sword,magic staff,crystal sword
  109. 120 DATAcloth,leather,studded leather,mail,bonded mail,partial plate,full plate,mithril,crystal
  110. 121 DATAstrength,quickness,intelligence,constitution,munchies,healing,poison
  111. 122 DATAspells,striking,damage,hiding,battles,magic stop,healing,speed
  112. 123 DATAhead,chest,groin,arms,legs,crown,torso,shield arm,sword arm,legs,nucleus,dna,ectoplasm,endoplasm,pseudopod,head,body,wings,arms,legs,head,throat,body,forelegs,hind legs,head,throat,body,wings,legs,head,manbody,horsebody,arms,legs
  113. 124 OPEN"a!!!2.do"FORINPUTAS1:FORA=1TOLV:MA$="":INPUT#1,MA$:NEXTA:CLOSE:OPEN"a!!!1.do"FORINPUTAS1:INPUT#1,N$,SE$,RA$:CLOSE:RETURN
  114. 125 X=VAL(RIGHT$(TIME$,2))*VAL(MID$(TIME$,5,1)):CLS:FORA=1TOX:B=RND(1):NEXTA:ONERRORGOTO130:OPEN"a!!!2.do"FORINPUTAS1:CLOSE1:PRINT"Do you wish to create a new maze?(y/n)  
  115. 127 PRINT"Note: There is already a maze created,  and to create a new one will take       approximately fifteen minutes.
  116. 128 GOSUB310:IFW$<>"y"ANDW$<>"n"THEN128
  117. 129 CLS:IFW$<>"y"THEN5
  118. 130 GOSUB269:LINE(0,0)-(63,63),1,B:PRINT@218,"Please Wait...":CALL17001:PRINT@61," LEGACY ":PRINT@93," Reign of the Sorceress ":CALL17006:OPEN"a!!!2.do"FOROUTPUTAS1:FX=INT(RND(1)*10):FY=INT(RND(1)*10):FORLV=1TO10:PRINT@303,LV;:SX=FX:SY=FY
  119. 132 FX=INT(RND(1)*10):FY=INT(RND(1)*10):X=INT(RND(1)*10):Y=INT(RND(1)*10):MA$="":MA$=STRING$(100,64):RC=0
  120. 133 GOSUB134:GOTO143
  121. 134 B=0:IFY=0THENWA%(0)=0:GOTO136
  122. 135 IFASC(MID$(MA$,(Y-1)*10+X+1,1))<>64THENWA%(0)=0ELSEWA%(0)=1:B=B+1
  123. 136 IFX=0THENWA%(3)=0:GOTO138
  124. 137 IFASC(MID$(MA$,Y*10+X,1))<>64THENWA%(3)=0ELSEWA%(3)=1:B=B+1
  125. 138 IFX=9THENWA%(1)=0:GOTO140
  126. 139 IFASC(MID$(MA$,X+2+Y*10,1))<>64THENWA%(1)=0ELSEWA%(1)=1:B=B+1
  127. 140 IFY=9THENWA%(2)=0:GOTO142
  128. 141 IFASC(MID$(MA$,X+1+10*(Y+1),1))<>64THENWA%(2)=0ELSEWA%(2)=1:B=B+1
  129. 142 RETURN
  130. 143 IFB=0THEN152
  131. 144 D=INT(RND(1)*B)+1:C=0:B=-1
  132. 145 B=B+1:IFWA%(B)=0THEN145
  133. 146 C=C+1:IFC=DTHEND=BELSE145
  134. 147 IFD=0THENMID$(MA$,1+X+Y*10)=CHR$(ASC(MID$(MA$,1+X+Y*10,1))+1):Y=Y-1:MID$(MA$,1+X+Y*10)=CHR$(ASC(MID$(MA$,1+X+Y*10,1))+4)
  135. 148 IFD=1THENMID$(MA$,1+X+Y*10)=CHR$(ASC(MID$(MA$,1+X+Y*10,1))+2):X=X+1:MID$(MA$,1+X+Y*10)=CHR$(ASC(MID$(MA$,1+X+Y*10,1))+8)
  136. 149 IFD=2THENMID$(MA$,1+X+Y*10)=CHR$(ASC(MID$(MA$,1+X+Y*10,1))+4):Y=Y+1:MID$(MA$,1+X+Y*10)=CHR$(ASC(MID$(MA$,1+X+Y*10,1))+1)
  137. 150 IFD=3THENMID$(MA$,1+X+Y*10)=CHR$(ASC(MID$(MA$,1+X+Y*10,1))+8):X=X-1:MID$(MA$,1+X+Y*10)=CHR$(ASC(MID$(MA$,1+X+Y*10,1))+2)
  138. 151 RC=RC+1:PRINT@263,RC:IFRC<99THEN133ELSE162
  139. 152 C=ASC(MID$(MA$,1+X+Y*10,1)):FORB=1TO4:C=C/2:IFC<>INT(C)THENC=INT(C):O%(B)=1ELSEO%(B)=0
  140. 153 NEXTB:FORDI=1TO4:IFO%(DI)=0THENNEXTDI
  141. 154 IFDI=1THENY=Y-1
  142. 155 IFDI=2THENX=X+1
  143. 156 IFDI=3THENY=Y+1
  144. 157 IFDI=4THENX=X-1
  145. 158 C=ASC(MID$(MA$,1+X+Y*10,1)):FORB=1TO4:C=C/2:IFC<>INT(C)THENC=INT(C):O%(B)=1ELSEO%(B)=0
  146. 159 NEXTB:GOSUB134:IFB=0THENDI=DI+2ELSE144
  147. 160 DI=DI+1:IFDI>4THENDI=DI-4
  148. 161 IFO%(DI)=0THEN160ELSE154
  149. 162 IFLV>4THEN166ELSEFORZV=1TO7
  150. 163 QX=INT(RND(1)*9):QY=INT(RND(1)*9):IFMID$(MA$,1+QX+QY*10,1)<"Ç"THENMID$(MA$,1+QX+QY*10)=CHR$(ASC(MID$(MA$,1+QX+QY*10,1))+128)ELSE163
  151. 165 NEXT
  152. 166 IFLV>1THENMID$(MA$,1+SX+SY*10)=CHR$(ASC(MID$(MA$,1+SX+SY*10,1))+16)
  153. 167 MID$(MA$,1+FX+FY*10)=CHR$(ASC(MID$(MA$,1+FX+FY*10,1))+32):PRINT#1,MA$:NEXTLV:CLOSE:CLEAR500,HIMEM:GOTO5
  154. 168 ONERRORGOTO171:OPEN"a!!!1.do"FORINPUTAS1:CLOSE1:CLS:PRINT"Do you wish to make                     a new character?[y/n]";
  155. 169 GOSUB310:IFW$<>"n"ANDW$<>"y"THEN169
  156. 170 CLS:IFW$<>"y"THENRETURN
  157. 171 CLS:CALL17001:PRINT"     LEGACY: Reign of the Sorceress     ";:PRINT@53," Name:":CALL17006:PRINTTAB(10)"Sex[M/F]:":PRINTTAB(9)"Race[1-3]:":PRINTTAB(20)"1 Human":PRINTTAB(20)"2 Elven":PRINTTAB(20)"3 Dwarf":N$="
  158. 173 GOSUB310:IFW$=CHR$(13)THEN176
  159. 174 IF(W$=CHR$(29)ORW$=CHR$(8))ANDLEN(N$)<>0THENZ$=LEFT$(N$,LEN(N$)-1):N$=Z$ELSEN$=N$+W$
  160. 175 PRINT@59,N$" ":GOTO173
  161. 176 PRINT@53," Name:":CALL17001:PRINT@89," Sex[M/F]:":CALL17006
  162. 177 GOSUB310:IFW$<>"m"ANDW$<>"f"THEN177
  163. 178 IFW$="m"THENSE$="Male"ELSESE$="Female
  164. 179 PRINT@89," Sex[M/F]:"+SE$:CALL17001:PRINT@128," Race[1-3]:":CALL17006
  165. 180 GOSUB310:IFVAL(W$)<1ORVAL(W$)>3THEN180
  166. 181 IFW$="1"THENRA$="Human
  167. 182 IFW$="2"THENRA$="Elven
  168. 183 IFW$="3"THENRA$="Dwarf
  169. 184 PRINT@128," Race[1-3]:"+RA$:FORA=1TO3:PRINT"                                     ":NEXT:CALL17001:PRINT@172,"?Correct[Y/N]?
  170. 185 GOSUB310:IFW$<>"y"ANDW$<>"n"THEN185
  171. 186 IFW$="n"THEN171
  172. 187 CLS:CALL17001:PRINT"     LEGACY: Reign of the Sorceress     ";:CALL17006:PRINT"     Points to be distributed: 100":CALL17001:PRINT@89," Strength:":CALL17006:PRINTTAB(9)"Quickness:":PRINTTAB(6)"Intelligence:":PRINTTAB(6)"Constitution:
  173. 189 PRINTTAB(15)"[10--40]":PT=100:S$="
  174. 190 GOSUB310:IF(ASC(W$)<48ORASC(W$)>57)THEN190
  175. 191 S$=S$+W$:PRINT@99,S$:IFLEN(S$)<2THEN190
  176. 192 PRINT@89," Strength:":CALL17001:PRINT@128," Quickness:":S=VAL(S$):S$="":PT=PT-S:CALL17006:PRINT@70,PT
  177. 193 GOSUB310:IF(ASC(W$)<48ORASC(W$)>57)THEN193
  178. 194 S$=S$+W$:PRINT@139,S$:IFLEN(S$)<2THEN193
  179. 195 PRINT@128," Quickness:":CALL17001:PRINT@165," Intelligence:":Q=VAL(S$):S$="":PT=PT-Q:CALL17006:PRINT@70,PT
  180. 196 GOSUB310:IF(ASC(W$)<48ORASC(W$)>57)THEN196
  181. 197 S$=S$+W$:PRINT@179,S$:IFLEN(S$)<2THEN196
  182. 198 PRINT@165," Intelligence:":CALL17001:PRINT@205," Constitution:":I=VAL(S$):S$="":PT=PT-I:CALL17006:PRINT@70,PT
  183. 199 GOSUB310:IF(ASC(W$)<48ORASC(W$)>57)THEN199
  184. 200 S$=S$+W$:PRINT@219,S$:IFLEN(S$)<2THEN199
  185. 201 PRINT@205," Constitution:":C=VAL(S$):S$="":PT=PT-C:PRINT@70,PT:CALL17001:PRINT@252,"?Correct[Y/N]?
  186. 202 IFS>40ORQ>40ORI>40ORC>40ORS<10ORQ<10ORI<10ORC<10ORPT<>0THENPRINT@240,"    Points incorrectly distributed.                  Press a key.               "ELSE204
  187. 203 IFINKEY$=""THEN203ELSE187
  188. 204 GOSUB310:IFW$<>"y"ANDW$<>"n"THEN204
  189. 205 IFW$="n"THEN187
  190. 206 IFSE$="Male"THENS=S+5ELSEI=I+5
  191. 207 IFRA$="Human"THENI=I+5
  192. 208 IFRA$="Elven"THENQ=Q+5
  193. 209 IFRA$="Dwarf"THENC=C+5
  194. 210 PM=I:OPEN"ram:a!!!1.do"FOROUTPUTAS1:PRINT#1,N$:PRINT#1,SE$:PRINT#1,RA$:PRINT#1,S;Q;I;C;2;1;255;0;C*10;C*10;100;0;PM;0;0;1;2:CLOSE:CALL17006:RETURN
  195. 212 GOSUB279:PRINT@131,"M)Move ring      F)Fireball":PRINT@171,"C)Create Food    U)Up level":PRINT@211,"H)Heal           T)Teleport":PRINT@251,"S)Slow monster   D)Down level":PRINT@291,"G)Generate Map   K)Kill
  196. 214 GOSUB310:SP=INSTR("mchsgfutdk",W$):IFSP=0THEN214
  197. 215 GOSUB279:IFSP<>6ANDMN=21THENPRINT@131,"Spell failed--press a key.":GOSUB310:GOTO251
  198. 216 IFSP*10>PMTHENPRINT@131,"Not enough magic points.":PRINT@171,"Press a key.":GOSUB310:GOTO251
  199. 217 PM=PM-SP*10:ONSPGOTO218,232,230,234,235,243,244,245,249,250
  200. 218 FORA=1TO8:IFFI%(A)=0THENNEXTA:GOTO251ELSECLS:PRINT"Move which ring?":RESTORE122:FORA=1TO8:READRI$:PRINTA;RI$;:IFFI%(A)=1THENPRINT" R",
  201. 220 IFFI%(A)=-1THENPRINT" L",
  202. 221 IFFI%(A)=0THENPRINT,
  203. 222 NEXT
  204. 223 GOSUB310:IFW$<"1"ORW$>"8"THEN223
  205. 224 W=VAL(W$):IFFI%(W)=0THENPRINT@240,"You don't have this ring.  ":PRINT"Press any key.":GOSUB310:GOTO251
  206. 225 V=W:B=0:FORA=1TO8:IFFI%(W)=-FI%(A)THENB=B+1
  207. 226 NEXT:IFB=4THENPRINT"Switch it with which ring?"ELSEFI%(V)=-FI%(V):GOTO251
  208. 227 GOSUB310:IFW$<"1"ORW$>"8"THEN223
  209. 228 W=VAL(W$):IFFI%(W)=0THEN224
  210. 229 IFFI%(V)=-FI%(W)THENFI%(V)=-FI%(V):FI%(W)=-FI%(W):GOTO251ELSECLS:PRINT"Spell failed--Press a key.":GOSUB310:GOTO115
  211. 230 HP=HP+HI-20*FI%(1):IFHP>HMTHENHP=HM
  212. 231 GOTO251
  213. 232 HF=HF+HI-FI%(1)*20:IFHF>255THENHF=255
  214. 233 GOTO251
  215. 234 MQ=MQ/2:GOTO251
  216. 235 GOSUB279:GOSUB44:X2=X:Y2=Y:PRINT@131,"You are at"X;Y:LINE(X*6+2,Y*6+2)-(X*6+4,Y*6+4),1,BF:FORY=0TO9:FORX=0TO9:GOSUB35:IFE(1)=0THENLINE(X*6,Y*6)-(X*6+6,Y*6)
  217. 237 IFE(2)=0THENLINE(X*6+6,Y*6)-(X*6+6,Y*6+6)
  218. 238 IFE(3)=0THENLINE(X*6+6,Y*6+6)-(X*6,Y*6+6)
  219. 239 IFE(4)=0THENLINE(X*6,Y*6+6)-(X*6,Y*6)
  220. 240 IFE(7)=1THENPRINT@171,"Stairs down at"X;Y:LINE(X*6+6,Y*6)-(X*6,Y*6+6)
  221. 241 IFE(6)=1THENPRINT@211,"Stairs up at"X;Y:LINE(X*6,Y*6)-(X*6+6,Y*6+6)
  222. 242 NEXT:NEXT:X=X2:Y=Y2:PRINT@251,"Press a key.":GOSUB310:RETURN
  223. 243 MP=MP-INT(RND(1)*MP*.75):GOTO251
  224. 244 IFLV>1THENLV=LV-1:GOSUB124:GOTO251ELSE251
  225. 245 CLS:PRINT"[0-9]X=";:GOSUB310:IFINSTR("1234567890",W$)=0THEN245
  226. 246 RX=VAL(W$):PRINTW$
  227. 247 PRINT@40,"[0-9]Y=";:GOSUB310:IFINSTR("1234567890",W$)=0THEN247
  228. 248 RY=VAL(W$):PRINTW$:GOTO251
  229. 249 IFLV<10THENLV=LV+1:GOSUB124:GOTO251ELSE251
  230. 250 MP=0
  231. 251 RETURN
  232. 252 CLS:PRINTLEFT$(N$,25)", "RA$" "SE$:PRINT"     Stength:"HS"     Quickness:"HQ:PRINT"Intelligence:"HI"  Constitution:"HC:PRINT"  Hit Points:"HP:PRINT@140,"Hit maximum:"HM:PRINT"        Gold:"GO:PRINT@181,"Experience:"XP
  233. 254 PRINT"       Level:"INT(XP/100)+1:PRINT@227,"Food:"INT(HF):PRINT"Weapon:";:RESTORE119:FORA=1TOHW:READW$:NEXTA:PRINTW$:PRINT"Armour:";:RESTORE120:FORA=1TOHA:READW$:NEXTA:PRINTW$:GOSUB310:CLS:PRINT@17,"Rings
  234. 256 PRINT"----------------------------------------    left hand             right hand        ---------             ----------  ":RESTORE122:FORA=1TO8:READW$:IFFI%(A)=1THENPRINTTAB(26)W$
  235. 258 NEXTA:PRINT@160,"";:RESTORE122:FORA=1TO8:READW$:IFFI%(A)=-1THENPRINTTAB(4)W$
  236. 259 NEXTA:GOSUB310:CLS:GOSUB27:GOSUB41:RETURN
  237. 260 HP=HP+2-5*(FI%(7)=-1)+(FI%(7)=1):IFHP>HMTHENHP=HM
  238. 261 PM=PM+2-5*(FI%(1)=-1)+(FI%(1)=1):IFPM>HI-20*FI%(1)THENPM=HI-20*FI%(1)
  239. 262 HF=HF-1:IFHF<0THEN113
  240. 263 IFRND(1)>.85-.1*FI%(5)THENGOSUB45:GOTO6
  241. 264 GOSUB40:RETURN
  242. 265 CALL17006:CLS:PRINT"You have slain the sorceress!  All the  lands and peoples that she once         controlled are yours!  Throughout the   land can be heard the sounds of laughterand joy.":PRINT:PRINTTAB(15)"The End.":GOSUB310:MENU
  243. 268 IFLV<>10THENRETURN
  244. 269 PRINT@0,"";:FORA=1TO8:PRINTSTRING$(11," "):NEXT:FORA=27TO37:LINE(A,32)-(A*2-32,56):NEXT:LINE(28,31)-(25,18):LINE-(39,18):LINE-(36,31):LINE(25,18)-(19,26):LINE-(27,34):LINE(26,22)-(22,26):LINE-(27,32):LINE(39,18)-(45,26):LINE-(37,34)
  245. 271 LINE(38,22)-(42,26):LINE-(37,32):LINE(34,18)-(30,16),1,B:LINE(28,16)-(36,7),1,B:LINE(29,6)-(35,6):LINE(30,5)-(34,5):LINE(28,14)-(28,20):LINE(29,15)-(29,21):LINE(35,15)-(35,21):LINE(36,14)-(36,20):PSET(29,8):PSET(35,8):LINE(31,14)-(33,14)
  246. 273 LINE(32,12)-(32,11):PSET(30,10):PSET(34,10):LINE(34,19)-(31,22):LINE(30,19)-(33,22):PSET(32,23):IFLV=0THENRETURN
  247. 274 GOSUB279:PRINT@131,"You are in the presence of":PRINT@171,"the sorceress.  She laughs":PRINT@211,"and says, 'Well, little one,":PRINT@251,"do you feel you are ready to":PRINT@291,"face me?' [Y/N]
  248. 276 GOSUB310:IFINSTR("yn",W$)=0THEN276
  249. 277 IFW$="n"THENLV=9:GOTO115
  250. 278 MF=2:GOSUB279:PRINT@131,"Very well!  Let the battle":PRINT@171,"begin!":PRINT@211,"Press a key.":GOSUB310:MN=21:GOTO50
  251. 279 FORPH=291TO131STEP-40:PRINT@PH,STRING$(29," "):NEXTPH:RETURN
  252. 280 MID$(MA$,X+1+Y*10)=CHR$(ASC(MID$(MA$,X+1+Y*10,1))-128)
  253. 281 O=INT(RND(1)*3):RC=0:FORA=1TO8:IFFI%(A)<>0THENRC=RC+1
  254. 282 NEXT:IFRC+HW+HA=26THENRETURN
  255. 283 IFRC+HW+HA>=7*LVTHENRETURN
  256. 284 IFO=1ANDHW=9THEN281
  257. 285 IFO=0ANDHA=9THEN281
  258. 286 IFO=2ANDRC=8THEN281
  259. 287 IFO<>2THEN296
  260. 288 W=INT(RND(1)*8+1):IFFI%(W)<>0THEN288
  261. 289 RESTORE122:FORA=1TOW:MN$="":READMN$:NEXT:GOSUB279:PRINT@131,"You found a ring of":PRINT@171,MN$".":PRINT@211,"Do you wish to place it on":PRINT@251,"your left or right hand?[L/R]
  262. 291 GOSUB310:IFINSTR("lr",W$)=0THEN291
  263. 292 IFW$="l"THENFI%(W)=-1ELSEFI%(W)=1
  264. 293 B=0:FORA=1TO8:IFFI%(A)=FI%(W)THENB=B+1
  265. 294 NEXT:IFB>4THEN291
  266. 295 GOTO115
  267. 296 IFO=0THEN299
  268. 297 GOSUB279:HW=HW+1:RESTORE119:FORA=1TOHW:MN$="":READMN$:NEXT:PRINT@131,"You found a "MN$:PRINT@171,"Press a key.":GOSUB310:GOTO115
  269. 299 GOSUB279:HA=HA+1:RESTORE120:FORA=1TOHA:MN$="":READMN$:NEXT:PRINT@131,"You found "MN$:PRINT@171,"armour.  Press a key.":GOSUB310:GOTO115
  270. 301 CLS:PRINT@82,"ⁿ∩∩■":CALL17001:PRINT@122," PS ";:CALL17006:PRINT"  Psychic Software Presents...":PRINT"  ²∩∩√":PRINT"  ≡°°≥":PRINT"  ÷±±≈":FORA=1TO500:IFINKEY$=""THENNEXTAELSERETURN
  271. 303 CLS:PRINT"²∩√   ²∩∩∩∩∩ ⁿ∩∩∩■ ⁿ∩∩∩■ ⁿ∩∩∩■²∩√ ²∩√    ∩     ∩   ² ∩  ⁿ∩ ∩   ∩ ∩  ⁿ∩ ∩   ∩     ∩     ∩  ⁿ  ∩ ■   ∩   ∩ ∩     ∩   ∩     ∩     ∩∩∩∩  ∩ ∩∩∩ ∩   ∩ ∩     ²∩∩∩√     ∩     ∩  ²  ∩ √ ∩ ∩∩∩∩∩ ∩       ∩
  272. 305 PRINT" ∩   ⁿ ∩   ⁿ ∩   ∩ ∩   ∩ ∩  ²∩   ∩       ∩∩∩∩∩ ∩∩∩∩∩ ²∩∩∩√ⁿ∩■ ⁿ∩■²∩∩∩√  ⁿ∩■     ½1985 By Psychic Software.
  273. 306 DATA9394,20,0,5,9394,10,7032,45,0,5,9394,20,7032,10,5586,40,0,10,9394,20,7032,10,5586,30,9394,20,7032,10,5586,30,9394,20,7032,10,5586,30,0,10,7032,20,5586,10,4697,40,5586,30,7032,30,9394,40,0,5,9394,20,0,5,9394,10,7032,50:RESTORE306
  274. 308 IFINKEY$<>""THENRETURN
  275. 309 READA,B:SOUNDA,B:IFB=50THENRETURNELSE308
  276. 310 W$=INKEY$:IFW$=""THEN310
  277. 311 RETURN
  278. 312 B=1:RI=0:FORA=1TO8:RI=RI-(FI%(A)=1)*B:B=B*2:RI=RI-(FI%(A)<>0)*B:B=B*2:NEXTA:OPEN"a!!!1.do"FOROUTPUTAS1:PRINT#1,N$:PRINT#1,SE$:PRINT#1,RA$:PRINT#1,HS;HQ;HI;HC;HW;HA;HF;RI;HP;HM;GO;XP;PM;RX;RY;LV;DI:CLOSE:RETURN
  279. 314 OPEN"a!!!1.do"FORINPUTAS1:INPUT#1,N$,SE$,RA$,HS,HQ,HI,HC,HW,HA,HF,RI,HP,HM,GO,XP,PM,RX,RY,LV,DI:CLOSE:GOSUB124:R=RI:FORA=1TO8:R=R/2:IFR<>INT(R)THENR=INT(R):L=1ELSEL=-1
  280. 316 R=R/2:IFR<>INT(R)THENR=INT(R):FI%(A)=LELSEFI%(A)=0
  281. 317 NEXT:X=VAL(RIGHT$(TIME$,2)):FORY=1TOX:A=RND(1):NEXT:RETURN
  282. 318 CLS:PRINTERR,ERL:STOP
  283.