Advertisement
Guest User

Untitled

a guest
Dec 17th, 2015
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 58.39 KB | None | 0 0
  1. ' ****COMBAT ARENA****
  2. ' ***Version 1.51***
  3. ' **By: Jeff Copperthite**
  4. '
  5. '
  6. ' **This game may be distributed freely among friends or whomever, as long as
  7. ' ****this file remains UNCHANGED!!!!! Please enjoy the game****
  8. '
  9. ' **Please email any comments or suggestions to:**
  10. ' *****JRC80@aol.com*****
  11. '
  12. ' ***I distribute all of my versions to AOL's file systems. You can find them
  13. ' **at file search: Copperthite or you can join my mailing list.**
  14. '
  15. ' *****IF YOU WANT TO BE ON MY MAILING PLEASE LEAVE ME FEEDBACK*****
  16. '
  17. ' ***Online help is provided***
  18. '
  19. DECLARE SUB help ()
  20. DECLARE SUB deathfight ()
  21. DECLARE SUB endgame ()
  22. DECLARE SUB dragon ()
  23. DECLARE SUB beginquest ()
  24. DECLARE SUB reward ()
  25. DECLARE SUB skillattack ()
  26. DECLARE SUB quest1 ()
  27. DECLARE SUB town ()
  28. DECLARE SUB playerfight ()
  29. DECLARE SUB skillprint ()
  30. DECLARE SUB save ()
  31. DECLARE SUB load ()
  32. DECLARE SUB levelraise ()
  33. DECLARE SUB fight1 ()
  34. DECLARE SUB title ()
  35. DECLARE SUB startload ()
  36. DECLARE SUB dostat ()
  37. DECLARE SUB stat ()
  38. DECLARE SUB menu ()
  39. DECLARE SUB verify ()
  40. COMMON SHARED str, con, dex, in, wis, cha, chp, mhp, mmp, cmp, up, mpheal, heal, hit, attack, defense, weapon, armor, armor$, weapon$, name$, pass, message, choice, gold, bank, cxp, lxp, quest, ski, cod, leave, fr, trek, rewad, level, ehp, qhp, ele, attack1, defense1
  41. DEF fnrnd (a) = INT(RND * a) + 1
  42. RANDOMIZE TIMER
  43. ON ERROR GOTO 350
  44. CALL title
  45. SCREEN 0
  46. CALL startload
  47. IF level <> 0 THEN GOTO 12345
  48. CALL dostat
  49. CALL help
  50. 12345
  51. CALL menu
  52. CALL verify
  53. GOTO 12345
  54. 350
  55. COLOR 15, 0
  56. COLOR 20: PRINT "An error has occured in the program"
  57. COLOR 15
  58. PRINT "If you were loading a file was not found or the file is too small for"
  59. PRINT "the input required"
  60. PRINT "If you tried to visit the hall of honor there is no one in the hall of"
  61. PRINT "honor."
  62. SLEEP 1
  63. PRINT "you are now returning to the main menu"
  64. GOTO 12345
  65.  
  66. SUB beginquest
  67. IF level = 10 THEN
  68. quest = 1
  69. up = 6
  70. PRINT "The village people have called you!"
  71. SLEEP 1
  72. PRINT "We need you to kill a bone golem that is threating our village"
  73. SLEEP 2
  74. PRINT "We will restore your HP's!"
  75. chp = mhp
  76. SLEEP 2
  77. PRINT "Good luck!"
  78. SLEEP 1: CLS
  79. CALL quest1
  80. END IF
  81. IF level = 20 THEN
  82. quest = 2
  83. up = 17
  84. PRINT "The village people have called you again!"
  85. SLEEP 1
  86. PRINT "Our prized family statue has been stolen by an evil wyvern"
  87. PRINT "We need you to retrieve the statue and kill the wyvern"
  88. SLEEP 2
  89. PRINT "Let me give you a boost."
  90. chp = mhp
  91. SLEEP 2
  92. PRINT "Best of luck to you"
  93. SLEEP 1: CLS
  94. CALL quest1
  95. END IF
  96. IF level = 30 THEN
  97. quest = 3
  98. up = 28
  99. PRINT "A cry for help has been let out in the village!"
  100. SLEEP 1
  101. PRINT "You rush to the scene after the battles in the arena"
  102. SLEEP 1
  103. PRINT " A vampire has come and killed 5 people and taken the king"
  104. PRINT "Can you please save him! You are the strongest in the land "
  105. PRINT "and you can save the king for us."
  106. DO: LOOP WHILE INKEY$ = ""
  107. PRINT "You can do one of two things: you can partake tomorrow morning"
  108. PRINT "during the daylight and surprise the vampire, however alot of guards"
  109. PRINT "will be up if you do, or you can go at night, where there are fewer "
  110. PRINT "guards but the vampire will be out."
  111. DO: LOOP WHILE INKEY$ = ""
  112. DO
  113. INPUT "(1) Leave tomorrow or (2) go now", leave
  114. IF leave = 1 THEN PRINT "Stay at the inn and recover your HP's"
  115. IF leave = 2 THEN PRINT "Take this quick heal"
  116. LOOP UNTIL leave = 1 OR leave = 2
  117. chp = mhp
  118. PRINT "HP RESTORED!"
  119. SLEEP 1
  120. CLS
  121. IF leave = 1 THEN fr = 2
  122. IF leave = 2 THEN fr = 5
  123. CALL quest1
  124. END IF
  125. IF level = 40 THEN
  126. quest = 4
  127. PRINT "Worthy "; name$; "! We are being severly threatened by a VERY tough"
  128. PRINT "monster named a tarrasque. He is threatening to kill this village"
  129. PRINT "and he constantly says your name in bitter anger. I think for your"
  130. PRINT "good and ours that you should go to the mountainside cave and find"
  131. PRINT "him before we are lost and our only hope for killing the dragon is"
  132. PRINT "lost as well!"
  133. DO: LOOP WHILE INKEY$ = ""
  134. PRINT "You will definitly need this.."
  135. chp = mhp
  136. SLEEP 1
  137. PRINT "HP restored!"
  138. SLEEP 2
  139. PRINT "Best of luck to you, oh mighty "; name$; "!"
  140. SLEEP 2
  141. CLS
  142. up = 39
  143. trek = 0
  144. CALL quest1
  145. END IF
  146. IF level = 60 THEN
  147. PRINT name$; "! You have finally reached level 60! You must speak"
  148. PRINT "to the king. Follow me"
  149. SLEEP 2
  150. PRINT "You are lead to the kings room"
  151. DO: LOOP UNTIL INKEY$ <> ""
  152. PRINT "KING:You have shown that you are very worthy of defeating and"
  153. PRINT "ridding the land of this dragon."
  154. DO: LOOP UNTIL INKEY$ <> ""
  155. PRINT "QUEEN:If you don't think that you are strong enough to face"
  156. PRINT "the dragon now you can get stronger at the arena and face the "
  157. PRINT "dragon when you think you are strong enough."
  158. DO: LOOP UNTIL INKEY$ <> ""
  159. PRINT "Good luck when you decide to fight the dragon."
  160. PRINT "Until then take this 2000000 gold"
  161. gold = gold + 2000000
  162. SLEEP 3
  163. END IF
  164. END SUB
  165.  
  166. SUB deathfight
  167. DO
  168. dmg = attack + fnrnd(10) - defense1
  169. IF dmg <= 0 THEN dmg = 0
  170. PRINT "You hit for"; dmg; "damage"
  171. ehp = ehp - dmg
  172. IF ehp < 1 THEN EXIT DO
  173. dmg = attack1 + fnrnd(10) - defense
  174. IF dmg <= 0 THEN dmg = 0
  175. PRINT "You are hit for"; dmg; "damage"
  176. chp = chp - dmg
  177. LOOP WHILE ehp > 0 AND chp > 0
  178. IF ehp < 1 THEN EXIT SUB
  179. IF chp < 1 THEN
  180. IF quest <> 0 THEN
  181. PRINT "You have lost the deathfight"
  182. PRINT "TEN PERCENT OF XP WAS";
  183. COLOR 4: PRINT " LOST"
  184. COLOR 15: PRINT "HALF OF GOLD WAS";
  185. COLOR 4: PRINT " LOST"
  186. COLOR 15
  187. cxp = INT(cxp - (cxp * .1))
  188. gold = gold \ 2
  189. EXIT SUB
  190. END IF
  191. PRINT "You fall to the ground..."
  192. SLEEP 1
  193. PRINT "You look up at your adversary, who reaches for a long sword. He brings"
  194. PRINT "it up and into your chest, you actually feel your lungs bleed as everything"
  195. PRINT "goes black......"
  196. SLEEP 3
  197. PRINT "YOU HAVE LOST THE DEATHFIGHT!"
  198. PRINT "TEN PERCENT OF XP WAS";
  199. COLOR 4: PRINT " LOST"
  200. COLOR 15: PRINT "HALF OF GOLD WAS";
  201. COLOR 4: PRINT " LOST"
  202. COLOR 15
  203. chp = mhp
  204. cxp = INT(cxp - (cxp * .1))
  205. gold = gold \ 2
  206. CALL save
  207. SYSTEM
  208. END IF
  209. END SUB
  210.  
  211. SUB dostat
  212. IF level > 0 THEN EXIT SUB
  213. INPUT "Tell me your name....", name$
  214. 54321
  215. PRINT "Now you will enter your password....ALL PASSWORDS HAVE TO BE NUMBERS!"
  216. COLOR 3, 3: INPUT pass
  217. COLOR 15, 0: PRINT "Now type it again for confirmation"
  218. COLOR 3, 3: INPUT pass2
  219. COLOR 15, 0
  220. IF pass <> pass2 THEN PRINT "The passwords are different!": GOTO 54321
  221. PRINT "Now ability scores will be generated"
  222. hp = fnrnd(10) + 10
  223. mp = fnrnd(4)
  224. str = 3
  225. dex = 3
  226. con = 3
  227. wis = 3
  228. in = 3
  229. cha = 3
  230. dis = 55
  231. heal = 5
  232. mpheal = 1
  233. lxp = 200
  234. 1
  235. CLS
  236. level = 1
  237. PRINT "You have"; dis; "ability points left to distribute"
  238. PRINT "Current status: Str:"; str; " Dex:"; dex; " Con:"; con; " Wis:"; wis; " int:"; in; "Cha:"; cha
  239. INPUT "What ability?(1,str,2,dex,3,con,4,wis,5,int,6,cha)", raise
  240. IF raise = 1 THEN
  241. INPUT "How much do you want to put into this ability?", raise
  242. IF raise > dis THEN PRINT "You don't have that much ability points": GOTO 1
  243. IF (str + raise) > 18 THEN PRINT "You can only have 18 points in one ability!": GOTO 1
  244. str = str + raise
  245. dis = dis - raise
  246. END IF
  247. IF raise = 2 THEN
  248. INPUT "How much do you want to put into this ability?", raise
  249. IF raise > dis THEN PRINT "You don't have that much ability points": GOTO 1
  250. IF (dex + raise) > 18 THEN PRINT "You can only have 18 points in one ability!": GOTO 1
  251. dex = dex + raise
  252. dis = dis - raise
  253. END IF
  254. IF raise = 3 THEN
  255. INPUT "How much do you want to put into this ability?", raise
  256. IF raise > dis THEN PRINT "You don't have that much ability points!": GOTO 1
  257. IF (con + raise) > 18 THEN PRINT "You can only have 18 points in one ability!": GOTO 1
  258. con = con + raise
  259. dis = dis - raise
  260. END IF
  261. IF raise = 4 THEN
  262. INPUT "How much do you want to put into this ability?", raise
  263. IF raise > dis THEN PRINT "You don't have that much ability points!": GOTO 1
  264. IF (wis + raise) > 18 THEN PRINT "You can only have 18 points in one ability!": GOTO 1
  265. wis = wis + raise
  266. dis = dis - raise
  267. END IF
  268. IF raise = 5 THEN
  269. INPUT "How much do you want to put into this ability?", raise
  270. IF raise > dis THEN PRINT "You don't have that much ability points!": GOTO 1
  271. IF (in + raise) > 18 THEN PRINT "You can only have 18 points in one ability!": GOTO 1
  272. in = in + raise
  273. dis = dis - raise
  274. END IF
  275. IF raise = 6 THEN
  276. INPUT "How much do you want to put into this ability?", raise
  277. IF raise > dis THEN PRINT "You don't have that much ability points!": GOTO 1
  278. IF (cha + raise) > 18 THEN PRINT "You can only have 18 points in one ability!": GOTO 1
  279. cha = cha + raise
  280. dis = dis - raise
  281. END IF
  282. IF dis > 0 THEN GOTO 1
  283. level = 1
  284. cxp = 0
  285. lxp = 200
  286. chp = hp
  287. mhp = hp
  288. cmp = mp
  289. mmp = mp
  290. heal = 5
  291. mpheal = 1
  292. armor = 3
  293. armor$ = "Thin leather armor"
  294. weapon = 7
  295. weapon$ = "Copper sword"
  296. gold = 400
  297. bank = 0
  298.  
  299. END SUB
  300.  
  301. SUB dragon
  302. 60
  303. PRINT "You go to tell the townspeople that you are going to fight the dragon.."
  304. SLEEP 2
  305. COLOR 5: PRINT "KING: We know you can do it,"; name$; " , so do this village proud and "
  306. PRINT "rid the land of Rakies."
  307. DO: LOOP WHILE INKEY$ = ""
  308. COLOR 31: INPUT "Are you SURE you are going to fight the dragon? There is no turning back", y$
  309. IF UCASE$(LEFT$(y$, 1)) = "N" THEN EXIT SUB
  310. COLOR 15: PRINT "QUEEN: You must take this elixer before you go."
  311. chp = mhp
  312. cmp = mmp
  313. SLEEP 3
  314. COLOR 22: PRINT "HP and MP restored!"
  315. SLEEP 2
  316. COLOR 15: PRINT "You WILL do it "; name$; "!"
  317. SLEEP 4
  318. CLS
  319. PRINT "After about 1 hour of searching you find the dragon."
  320. SLEEP 1
  321. PRINT UCASE$(name$); ": Rakies, you must die because of all of your raids"
  322. DO: LOOP WHILE INKEY$ = ""
  323. COLOR 4: PRINT "RAKIES: Neeeevvvveeerrr human. You dare to challenge me? Prepare to "
  324. PRINT "have an easy defeat!"
  325. hit1 = 87: ele = 5: mst = 62: mdx = 58: mcn = 43: mws = 25: min = 73: mch = 34: attack1 = 254: defense1 = 129: xp = 10000: qhp = 50000: ehp = qhp
  326. COLOR 20: PRINT "Now the REAL FIGHT BEGINS...."
  327. COLOR 15
  328. SLEEP 2
  329. 61
  330. CLS
  331. PRINT "You:";
  332. COLOR 15
  333. IF chp <= INT(mhp * .5) THEN COLOR 12
  334. IF chp <= INT(mhp * .15) THEN COLOR 20
  335. PRINT chp;
  336. COLOR 15
  337. PRINT "/"; mhp
  338. PRINT "[A]ttack"
  339. PRINT "[S]kill"
  340. PRINT "[H]eal"
  341. PRINT "[M]p heal"
  342. INPUT "command>", attack$
  343. attack$ = UCASE$(attack$)
  344. SELECT CASE attack$
  345. CASE "M"
  346. res = INT(wis * .75 + fnrnd(5))
  347. PRINT res; " MP's restored!"
  348. cmp = cmp + res
  349. mpheal = mpheal - 1
  350. CASE "S"
  351. CALL skillprint
  352. IF cod = 0 THEN GOTO 61
  353. CALL skillattack
  354. CASE "H"
  355. IF heal < 1 THEN GOTO 61
  356. IF chp = mhp THEN PRINT "You don't need a heal!": GOTO 61
  357. hpheal = fnrnd(5) + (in + con + wis)
  358. COLOR 11: PRINT hpheal; " HP's healed!"
  359. COLOR 15
  360. chp = chp + hpheal
  361. IF chp > mhp THEN chp = mhp
  362. heal = heal - 1
  363. GOTO 62
  364. CASE "A"
  365. dmg = fnrnd(10) + attack
  366. IF dmg <= defense1 THEN SOUND (dmg + 500), 3: PRINT "Your attack does no damage": GOTO 62
  367. dmg = INT(dmg - defense1)
  368. re = fnrnd(100)
  369. IF re <= hit THEN
  370. dmg = dmg * 2
  371. COLOR 20: PRINT "CRITICAL!"
  372. COLOR 15
  373. SOUND (dmg + 500), 3
  374. PRINT "You hit the monster for"; dmg; "hit points!"
  375. END IF
  376. IF re > hit THEN SOUND (dmg + 500), 3: PRINT "you inflicted "; dmg; "hp on the monster"
  377. ehp = ehp - dmg
  378. CASE ELSE
  379. GOTO 61
  380. END SELECT
  381. IF ehp <= 0 THEN
  382. COLOR 31: PRINT "you have defeated the monster!"
  383. COLOR 15
  384. cxp = cxp + xp
  385. IF cxp >= lxp THEN CALL levelraise
  386. OPEN "O", 1, "Honor": WRITE #1, name$: CLOSE #1
  387. CALL endgame
  388. END IF
  389. 62
  390. at = fnrnd(3)
  391. IF at = 1 THEN
  392. COLOR 4: PRINT "Rakies attacks!"
  393. COLOR 15
  394. dmg = attack1 + fnrnd(10) - defense
  395. IF dmg <= 0 THEN SOUND (dmg + 500), 3: PRINT "It did no damage!": DO: LOOP WHILE INKEY$ = "": GOTO 61
  396. re = fnrnd(100)
  397. IF re <= hit1 THEN
  398. COLOR 20: PRINT "CRITICAL!!!"
  399. SOUND (dmg + 500), 3
  400. dmg = dmg * 3 + fnrnd(2)
  401. COLOR 4: PRINT "Rakies hit you for"; dmg; " damage"
  402. COLOR 15
  403. chp = chp - dmg
  404. END IF
  405. IF re > hit1 THEN
  406. SOUND (dmg + 500), 3
  407. COLOR 4: PRINT "Rakies hit you for"; dmg; " damage"
  408. COLOR 15
  409. chp = chp - dmg
  410. END IF
  411. END IF
  412. IF at = 2 THEN
  413. COLOR 20: PRINT "The dragon breathes fire at you!"
  414. COLOR 15
  415. dmg = attack1 + (mws * 3) + fnrnd(20)
  416. IF dmg <= 0 THEN SOUND (dmg + 500), 3: PRINT "The attack did no damage!": DO: LOOP WHILE INKEY$ = "": GOTO 61
  417. SOUND (dmg + 500), 3
  418. COLOR 4: PRINT "The fire nailed you for"; dmg; "damage"
  419. COLOR 15
  420. chp = chp - dmg
  421. END IF
  422. IF at = 3 THEN
  423. COLOR 25: PRINT "The dragon rises...."
  424. COLOR 15
  425. dmg = attack1 + INT(attack1 * .65) + fnrnd(20)
  426. SOUND (dmg + 500), 3
  427. COLOR 2
  428. PRINT "The dive drops your defenses and hits you for"; dmg; " damage"
  429. COLOR 15
  430. chp = chp - dmg
  431. END IF
  432. IF chp <= 0 THEN
  433. COLOR 14: PRINT "You lost!....get stronger first."
  434. SYSTEM
  435. END IF
  436. DO: LOOP WHILE INKEY$ = ""
  437. GOTO 61
  438.  
  439. END SUB
  440.  
  441. SUB endgame
  442. PRINT "You have defeated the dragon? Unbeleiveable!"
  443. DO: LOOP WHILE INKEY$ = ""
  444. PRINT "QUEEN: You have done the unexpectable, be sure to take care of other"
  445. PRINT "lands as well!"
  446. DO: LOOP WHILE INKEY$ = ""
  447. PRINT "Your name is now in the hall of honor, it will remain there until some-"
  448. PRINT "one else decides to kill the dragon next."
  449. DO: LOOP WHILE INKEY$ = ""
  450. PRINT "Thanks for playing COMBAT ARENA!"
  451. PRINT "Credits:"
  452. SLEEP 1
  453. CLS
  454. PRINT "Programming: Jeff Copperthite"
  455. PRINT "Concept: Jeff Copperthite and Alan Kingsley"
  456. PRINT "Special thanks: SOCC2ME@aol.com, JasonDBird@aol.com, SASEisME@aol.com"
  457. PRINT "Borg953@aol.com, Marc Doherty"
  458. PRINT "Couldn't have done it without these guys!"
  459. SLEEP 3
  460. PRINT "Be sure to give your suggestions to Jeff!"
  461. PRINT "Thanks for playing again.."
  462. SYSTEM
  463.  
  464. END SUB
  465.  
  466. SUB fight1
  467. mst = fnrnd(15) + INT(up * .75)
  468. mdx = fnrnd(15) + INT(up * .75)
  469. mcn = fnrnd(15) + INT(up * .75)
  470. min = fnrnd(15) + INT(up * .75)
  471. mws = fnrnd(15) + INT(up * .75)
  472. mch = fnrnd(15) + INT(up * .75)
  473. attack1 = INT((mst + up) * 1.5)
  474. defense1 = ((mdx \ 2) + up)
  475. raigold = INT((((level * 3.5) + (up * 3.5)) + fnrnd(10) + 200) * 1.5 + fnrnd(2)) + (125 * up)
  476. ele = fnrnd(6)
  477. leve = up
  478. qhr = ((up \ 5) + (mst \ 2))
  479. IF qhr > 99 THEN qhr = 99
  480. qhp = fnrnd(10) + INT((mcn * 2) + (up * 16.2) + (up * (mst \ 3)))
  481. ehp = qhp
  482. xp = (up + (qhp \ 2)) + (mst + mdx + min + mws + mcn + mch \ 6)
  483. PRINT "Level:"; leve
  484. PRINT "HP:"; qhp; "/"; qhp
  485. IF ele = 1 THEN PRINT "Fire"
  486. IF ele = 2 THEN PRINT "Water"
  487. IF ele = 3 THEN PRINT "Earth"
  488. IF ele = 4 THEN PRINT "Air"
  489. IF ele = 5 THEN PRINT "Darkness"
  490. IF ele = 6 THEN PRINT "Light"
  491. PRINT " Hit%:"; qhr
  492. PRINT " Attack:"; attack1
  493. PRINT " Defense:"; defense1
  494. PRINT " Strength: "; mst
  495. PRINT " Dexterity: "; mdx
  496. PRINT " Intelligence: "; min
  497. PRINT " Wisdom: "; mws
  498. PRINT " Constitution: "; mcn
  499. PRINT " Charisma: "; mch
  500. PRINT " Xp value: "; xp
  501. PRINT " Gold:"; raigold
  502. INPUT "Fight this monster?", y$
  503. IF y$ = "N" OR y$ = "n" THEN EXIT SUB
  504. PRINT "You will get"; xp; " experience for defeating this monster"
  505. PRINT "LET'S FIGHT!"
  506. ehp = qhp
  507. 4
  508. CLS
  509. PRINT "You:";
  510. COLOR 15
  511. IF chp <= INT(mhp * .5) THEN COLOR 12
  512. IF chp <= INT(mhp * .15) THEN COLOR 20
  513. PRINT chp;
  514. COLOR 15
  515. PRINT "/"; mhp
  516. IF quest = 1 THEN COLOR 0
  517. PRINT "Monster:"; ehp; "/"; qhp
  518. COLOR 15
  519. PRINT "[A]ttack"
  520. PRINT "[S]kill"
  521. PRINT "[F]lee"
  522. PRINT "[D]eathfight"
  523. PRINT "[H]eal"
  524. PRINT "[M]p heal"
  525. INPUT "command>", attack$
  526. attack$ = UCASE$(attack$)
  527. SELECT CASE attack$
  528. CASE "D"
  529. CALL deathfight
  530. CASE "M"
  531. res = INT(wis * .75 + fnrnd(5))
  532. PRINT res; " MP's restored!"
  533. cmp = cmp + res
  534. mpheal = mpheal - 1
  535. CASE "F"
  536. fle = dex + wis + cha
  537. elf = mdx + mws + mch
  538. IF fle > elf THEN PRINT "you flee from the battle": EXIT SUB
  539. IF fle <= elf THEN PRINT "you can't run!"
  540. CASE "H"
  541. IF heal < 1 THEN GOTO 4
  542. IF chp = mhp THEN PRINT "You don't need a heal!": GOTO 4
  543. hpheal = fnrnd(5) + (in + con + wis)
  544. COLOR 6: PRINT hpheal; " HP's healed!"
  545. COLOR 15
  546. chp = chp + hpheal
  547. IF chp > mhp THEN chp = mhp
  548. heal = heal - 1
  549. GOTO 5
  550. CASE "S"
  551. CALL skillprint
  552. IF cod = 0 THEN GOTO 4
  553. CALL skillattack
  554. CASE "A"
  555. dmg = fnrnd(10) + attack
  556. dmg = INT(dmg - defense1)
  557. IF dmg <= 0 THEN SOUND (dmg + 500), 3: PRINT "Your attack does no damage": GOTO 5
  558. re = fnrnd(100)
  559. IF re <= hit THEN
  560. dmg = dmg * 3 + fnrnd(2)
  561. COLOR 20: PRINT "CRITICAL!"
  562. SOUND (dmg + 500), 3
  563. COLOR 15: PRINT "You hit the monster for"; dmg; "hit points!"
  564. END IF
  565. IF re > hit THEN SOUND (dmg + 500), 3: PRINT "you inflicted "; dmg; "hp on the monster"
  566. ehp = ehp - dmg
  567. IF ehp <= 0 THEN
  568. COLOR 25: PRINT "you have defeated the monster!"
  569. COLOR 15
  570. gold = gold + raigold
  571. cxp = cxp + xp
  572. IF cxp >= lxp THEN CALL levelraise
  573. EXIT SUB
  574. END IF
  575. CASE ELSE
  576. GOTO 4
  577. END SELECT
  578. IF ehp <= 0 THEN
  579. COLOR 25: PRINT "you have defeated the monster!"
  580. COLOR 15
  581. gold = gold + raigold
  582. cxp = cxp + xp
  583. IF cxp >= lxp THEN CALL levelraise
  584. EXIT SUB
  585. END IF
  586. 5
  587. PRINT "The monster attacks!"
  588. dmg = fnrnd(10) + attack1
  589. dmg = INT(dmg - defense)
  590. IF dmg <= 0 THEN SOUND (dmg + 500), 3: PRINT "The attack does no damage": DO: LOOP WHILE INKEY$ = "": GOTO 4
  591. re = fnrnd(100)
  592. IF re <= qhr THEN
  593. dmg = dmg * 3 + fnrnd(2)
  594. COLOR 20: PRINT "CRITICAL!"
  595. SOUND (dmg + 500), 3
  596. COLOR 4: PRINT "The monster hit you for"; dmg; " hit points."
  597. COLOR 15
  598. END IF
  599. IF re > qhr THEN SOUND (dmg + 500), 3: COLOR 4: PRINT "The monster hits you for"; dmg; " hp"
  600. COLOR 15
  601. chp = chp - dmg
  602. IF chp <= 0 THEN
  603. INPUT "You lost!...keep playing?", e$
  604. gold = gold \ 1.2
  605. cxp = INT(cxp - (cxp * .01))
  606. IF gold <= 0 THEN gold = 0
  607. chp = mhp
  608. IF e$ = "N" OR e$ = "n" THEN SYSTEM
  609. END IF
  610. DO: LOOP WHILE INKEY$ = ""
  611. GOTO 4
  612.  
  613. END SUB
  614.  
  615. SUB help
  616. 560
  617. CLS
  618. PRINT "[1] What is COMBAT ARENA?"
  619. PRINT "[2] Help with stats"
  620. PRINT "[3] Fighting"
  621. PRINT "[4] Overview of skills"
  622. PRINT "[5] Using Playerfights"
  623. PRINT "[6] The town"
  624. PRINT "[7] Getting your level up (and what happens)"
  625. PRINT "[8] Tips"
  626. PRINT "[9] Quit COMBAT ARENA help"
  627. INPUT menu1
  628. SELECT CASE menu1
  629. CASE 1
  630. PRINT "COMBAT ARENA is a text based fighting game for qbasic. This appeals"
  631. PRINT "mostly to RPG fans but I made this game almost totally based on"
  632. PRINT "fighting. I have gotten lots of reviews on this game that were good"
  633. PRINT "Please enjoy the game."
  634. PRINT " - Jeff Copperthite"
  635. DO: LOOP WHILE INKEY$ = ""
  636. CASE 2
  637. PRINT "Name: Your characters name"
  638. PRINT "Weapon: Your current sword in hand"
  639. PRINT "Armor: Your current armor"
  640. PRINT "Attack: The rate of damage you can cause"
  641. PRINT "Defense: How much damage you can absorb from an attack"
  642. PRINT "Critical hit %: Chance of one of your strikes being critical (3X damage!)"
  643. PRINT "HP: How much damage you can take before dying / max HP's"
  644. PRINT "MP: How much mystic force you have left / Max MP's"
  645. PRINT "Strength: Helps with attack and learning sword skills"
  646. PRINT "Dexterity: Helps defense and learning quickness skills"
  647. PRINT "Constitution: Your health rating..helps with gaining max HP's"
  648. PRINT "Wisdom: Your mystic power. Helps with learning magic spells"
  649. PRINT "Intelligence: How smart you are..helps with healing spells(mostly)"
  650. PRINT "Charisma: Your personal charm...helps with fleeing battles and healing"
  651. PRINT "Experience: Your number of xp points from defeating monsters."
  652. PRINT "For Level up: How much xp you need to raise a level"
  653. PRINT "Gold in hand...gold in bank: Pretty self explanitory <g>"
  654. PRINT "Healings: How many healing potions you have in your hand"
  655. PRINT "Ethers: How many Ether potions you have in your hand"
  656. DO: LOOP WHILE INKEY$ = ""
  657. CASE 3
  658. PRINT "When you fight you are either fighting on a quest or in the arena"
  659. PRINT "gaining xp. You have 6 choices in battle...attack, skills, flee,deathfight"
  660. PRINT "MP heal, and heal. Skills will call up your current skills for use. Attack"
  661. PRINT "is a regular attack using your current weapon. Deathfight is a fight"
  662. PRINT "to the death. If you die in a deathfight you will suffer consequences"
  663. PRINT "like loss of ten percent of xp and half of your gold. MP heal and heal"
  664. PRINT "will use one of your ethers or healings respectively. Be careful when"
  665. PRINT "using deathfight..."
  666. PRINT " When you defeat a monster you will gain xp for defeating the monster"
  667. PRINT "and some gold. If you lose you will have an option to try again. "
  668. PRINT "You will lose gold and xp if you do get defeated. "
  669. DO: LOOP WHILE INKEY$ = ""
  670. CASE 4
  671. PRINT "You have two groups of skills...magic and physical skills. Each "
  672. PRINT "requires a certain ability or abilities to be at a specified point."
  673. PRINT "For example to learn Quad Attack you would need a strength of 31"
  674. PRINT "or higher."
  675. PRINT " Each skill needs a certain amount of mystic power to invoke. Some"
  676. PRINT "of the more powerful skills (like flare and dark side) will need you"
  677. PRINT "to get many of your abilities to a certain point."
  678. PRINT " Skills are an important part of this game. Be sure to learn as many"
  679. PRINT "skills as you can!"
  680. DO: LOOP WHILE INKEY$ = ""
  681. CASE 5
  682. PRINT "Playerfights are an interesting and neat part of the game. What it is"
  683. PRINT "is it allows you to fight another saved character and, if successful,"
  684. PRINT "win gold and xp. The character you just killed will be rendered dead"
  685. PRINT "until the player is loaded again. This is cool if you have a brother"
  686. PRINT "or sister that plays this game as well <g>"
  687. PRINT " To use playerfights you have to have the knowledge of knowing the"
  688. PRINT "character's name. When you successfully have a character ready to fight"
  689. PRINT "it will tell you the current weapon and armor of that character. You"
  690. PRINT "will be given a chance to back out."
  691. PRINT " During the fight you will not be able to use any skills. But the"
  692. PRINT "fight to the death option is still there. Fight on as if this was"
  693. PRINT "an arena battle (just keep an eye on your HP's)."
  694. PRINT " Sometimes your opponet will purposely use a healing to keep HP's"
  695. PRINT "up. That is why it is good to carry around a few healings."
  696. PRINT " If you win you will gain all gold in your opponets hand, and"
  697. PRINT "ten percent of your opponets xp. If you lose all of the above will"
  698. PRINT "happen to you!"
  699. DO: LOOP WHILE INKEY$ = ""
  700. CASE 6
  701. PRINT "The town is the spot where you buy all of your weapons, armor, ethers,"
  702. PRINT "and healings. You are given the option of going to the bank,JR's "
  703. PRINT "swords, MAD armor, Alan's professional healing shop, and the hall"
  704. PRINT "of honor. Here is a brief explanation of the town."
  705. PRINT
  706. PRINT " Bank: This is where you keep your gold. The bank is useful so you can"
  707. PRINT "keep your gold safe from attackers"
  708. PRINT " Weapon shop: This is where you can buy new swords. You can also sell"
  709. PRINT "your old sword for some extra dough. "
  710. PRINT " Armor shop: This is where you can buy new armor. You can also sell"
  711. PRINT "your old armor for extra money"
  712. PRINT " Healing shop: This is where you buy healings, ethers, and get your"
  713. PRINT "wounds healed. An essential in the town"
  714. PRINT " Hall of Honor: This shows the last person that has beaten the dragon"
  715. DO: LOOP WHILE INKEY$ = ""
  716. CASE 7
  717. PRINT "When you get your level up you basically go up in skill. You have"
  718. PRINT "3 ability points to distribute through your 6 abilities. Then you"
  719. PRINT "also go up in max HP's and MP's. Your base attack and defense are "
  720. PRINT "raised by 1, and other things may change according to ability "
  721. PRINT "changes (attack or defense may go up more, your critical hit % may"
  722. PRINT "go up, you may learn a new skill or two)."
  723. DO: LOOP WHILE INKEY$ = ""
  724. CASE 8
  725. PRINT "- Keep monster toughness around your current level. You gain more"
  726. PRINT " gold for defeating a tougher monster."
  727. PRINT "- Keep a high stock of healings incase you get attacked."
  728. PRINT "- Note when you go on quests take some ether's along because you may"
  729. PRINT " need MP's when you least expect it"
  730. PRINT "- Keep your gold in the bank to keep it safe from attackers"
  731. PRINT "- NEVER FORGET YOUR PASSWORD!"
  732. PRINT "- Join Jeff's mailing list on AOL!(send me mail at JRC80@aol.com)"
  733. PRINT " ^--Just had to put it in <g>"
  734. DO: LOOP WHILE INKEY$ = ""
  735. CASE 9
  736. EXIT SUB
  737. END SELECT
  738. GOTO 560
  739. END SUB
  740.  
  741. SUB levelraise
  742. COLOR 17: PRINT "You have raised a level!"
  743. COLOR 15
  744. level = level + 1
  745. dis = 3
  746. 324
  747. PRINT "You have"; dis; "points left"
  748. INPUT "(1.Str 2.Dex 3.Con 4.Wis 5.Int 6.Cha)", ab
  749. SELECT CASE ab
  750. CASE 1
  751. str = str + 1
  752. dis = dis - 1
  753. CASE 2
  754. dex = dex + 1
  755. dis = dis - 1
  756. CASE 3
  757. con = con + 1
  758. dis = dis - 1
  759. CASE 4
  760. wis = wis + 1
  761. dis = dis - 1
  762. CASE 5
  763. in = in + 1
  764. dis = dis - 1
  765. CASE 6
  766. cha = cha + 1
  767. dis = dis - 1
  768. END SELECT
  769. IF dis > 0 THEN GOTO 324
  770. raihp = fnrnd(10) + con + (con \ 2)
  771. raimp = fnrnd(2) + (wis \ 7)
  772. CLS
  773. PRINT "Your max HP's are raised by"; raihp
  774. PRINT "Your max MP's are raised by"; raimp
  775. mhp = mhp + raihp
  776. mmp = mmp + raimp
  777. lxp = lxp + (level * 171)
  778. cmp = mmp
  779. CALL stat
  780. IF level = 10 OR level = 20 OR level = 30 OR level = 40 OR level = 60 THEN CALL beginquest
  781. END SUB
  782.  
  783. SUB load
  784. INPUT "Tell me your name....", name$
  785. PRINT "Enter your password"
  786. COLOR 3, 3: INPUT upass
  787. COLOR 15, 0
  788. OPEN "I", 1, name$
  789. INPUT #1, up, str, dex, con, in, wis, cha, heal, chp, mhp, cxp, lxp, level, cmp, mmp, defense, attack, hit, armor, weapon, bank, gold, message, pass, armor$, weapon$, mpheal
  790. CLOSE
  791. IF upass <> pass THEN PRINT "WRONG PASSWORD!": CLEAR
  792. END SUB
  793.  
  794. SUB menu
  795. CLOSE
  796. IF cxp > lxp THEN CALL levelraise
  797. IF message = 1 THEN
  798. PRINT "*****BULLETIN*****"
  799. SLEEP 2
  800. PRINT "While away you were attacked and got killed!"
  801. SLEEP 1
  802. END IF
  803. IF message = 2 THEN
  804. PRINT "*****BULLETIN*****"
  805. SLEEP 2
  806. PRINT "While away you were attacked and killed the challenger in self defense!"
  807. SLEEP 1
  808. END IF
  809. message = 0
  810. PRINT "(1) See stat screen"
  811. PRINT "(2) Fight monster"
  812. PRINT "(3) Change monster level"
  813. PRINT "(4) Use healing"
  814. PRINT "(5) Save character"
  815. PRINT "(6) Load character"
  816. PRINT "(7) View skills"
  817. PRINT "(8) Venture to town"
  818. PRINT "(9) Fight another player"
  819. PRINT "(10) Use ether"
  820. PRINT "(11) Quit COMBAT ARENA"
  821. PRINT "(12) Help on COMBAT ARENA"
  822. IF level > 59 THEN PRINT "(13) Fight Rakies"
  823. INPUT choice
  824. END SUB
  825.  
  826. SUB playerfight
  827. INPUT "What is the name of the character you wish to fight?", name2$
  828. IF UCASE$(name2$) = UCASE$(name$) THEN PRINT "You can't fight yourself!": EXIT SUB
  829. IF name2$ = "" THEN EXIT SUB
  830. OPEN "I", 1, name2$: INPUT #1, up1, str1, dex1, con1, in1, wis1, cha1, heal1, chp1, mhp1, cxp1, lxp1, level1, cmp1, mmp1, defense1, attack1, hit1, armor1, weapon1, bank1, gold1, message1, pass5, armor1$, weapon1$, mpheal1: CLOSE #1
  831. IF message1 = 1 THEN PRINT "This character is dead already!": EXIT SUB
  832. PRINT "The character you are going to fight has "; armor1$; " on and"
  833. PRINT "is holding a "; weapon1$; " for a weapon."
  834. DO: LOOP WHILE INKEY$ = ""
  835. INPUT "Are you sure you want to fight this character?", s$
  836. IF UCASE$(s$) = "N" THEN EXIT SUB
  837. PRINT "Here we go! "; name$; " vs. "; name2$
  838. chp1 = mhp1
  839. 1000
  840. PRINT name$; " :";
  841. COLOR 15
  842. IF chp <= INT(mhp * .5) THEN COLOR 12
  843. IF chp <= INT(mhp * .15) THEN COLOR 20
  844. PRINT chp; "/";
  845. COLOR 15
  846. PRINT mhp
  847. PRINT name2$; " :";
  848. COLOR 15
  849. IF chp1 <= INT(mhp1 * .5) THEN COLOR 12
  850. IF chp1 <= INT(mhp1 * .15) THEN COLOR 20
  851. PRINT chp1; "/";
  852. COLOR 15
  853. PRINT mhp1
  854. PRINT "You attack"
  855. PRINT "[a]ttack"
  856. PRINT "[h]eal"
  857. PRINT "[f]ight to the death!"
  858. PRINT "[r]un"
  859. INPUT "command>", attack$
  860. IF (attack$ = "h" OR attack$ = "H") AND heal > 0 THEN
  861. hpheal = cha + in + wis + con
  862. PRINT hpheal; " HP's healed!"
  863. chp = chp + hpheal
  864. heal = heal - 1
  865. IF chp > mhp THEN chp = mhp
  866. END IF
  867. IF attack$ = "f" OR attack$ = "F" THEN
  868. DO
  869. dmg = attack - defense1 + fnrnd(10)
  870. IF dmg < 0 THEN dmg = 0
  871. PRINT "You hit for"; dmg; "damage"
  872. chp1 = chp1 - dmg
  873. dmg = attack1 - defense + fnrnd(10)
  874. IF dmg < 0 THEN dmg = 0
  875. PRINT "You are hit for"; dmg; "damage"
  876. chp = chp - dmg
  877. LOOP WHILE (chp > 0 AND chp1 > 0)
  878. IF chp1 <= 0 THEN
  879. PRINT "You have defeated "; name2$
  880. SLEEP 1
  881. xpgain = INT(cxp1 - (cxp1 * .9))
  882. PRINT name2$; " has "; gold1; "gold..now it is yours!"
  883. PRINT "You earn"; xpgain; " experience"
  884. gold = gold + gold1
  885. gold1 = 0
  886. cxp = cxp + xpgain
  887. cxp1 = cxp1 - xpgain
  888. chp1 = mhp1
  889. message1 = 1
  890. GOTO saveend
  891. END IF
  892. IF chp <= 0 THEN
  893. PRINT "You have been defeated by "; name2$
  894. SLEEP 1
  895. PRINT "TEN PERCENT OF XP WAS LOST"
  896. PRINT "ALL GOLD ON HAND WAS LOST AND GIVEN TO "; UCASE$(name2$)
  897. gold1 = gold1 + gold
  898. xpgain = INT(cxp - (cxp * .9))
  899. cxp1 = cxp1 + xpgain
  900. cxp = cxp - xpgain
  901. chp = mhp
  902. gold = 0
  903. message1 = 2
  904. GOTO saveend
  905. END IF
  906. END IF
  907. IF attack$ = "r" OR attack$ = "R" THEN
  908. IF dex < dex1 THEN
  909. PRINT name2$; " trips you as you scurry away, taking"; INT(gold - (gold * .9)); " gold away"
  910. PRINT "from you."
  911. goldloss = INT(gold - (gold * .9))
  912. gold = gold - goldloss
  913. gold1 = gold1 + goldloss
  914. GOTO saveend
  915. END IF
  916. IF dex >= dex1 THEN
  917. PRINT "You use your quickness to run away from the battle"
  918. GOTO saveend
  919. END IF
  920. END IF
  921. IF attack$ = "a" OR attack$ = "A" THEN
  922. PRINT "You attack"
  923. dmg = attack + fnrnd(10) - defense1
  924. IF dmg <= 0 THEN SOUND (dmg + 500), 3: PRINT "You didn't do damage!": GOTO 2000
  925. re = fnrnd(100)
  926. IF re <= hit THEN
  927. COLOR 20: PRINT "CRITICAL!"
  928. COLOR 15
  929. dmg = dmg * 3 + fnrnd(2)
  930. SOUND (dmg + 500), 3
  931. PRINT "You did"; dmg; " damage to "; name2$
  932. chp1 = chp1 - dmg
  933. END IF
  934. IF re > hit THEN
  935. SOUND (dmg + 500), 3
  936. PRINT "You did"; dmg; " damage to "; name2$
  937. chp1 = chp1 - dmg
  938. END IF
  939. END IF
  940. IF chp1 <= 0 THEN
  941. PRINT "You have defeated "; name2$
  942. SLEEP 1
  943. xpgain = INT(cxp1 - (cxp1 * .9))
  944. PRINT name2$; " has "; gold1; "gold..now it is yours!"
  945. PRINT "You earn"; xpgain; " experience"
  946. gold = gold + gold1
  947. gold1 = 0
  948. cxp = cxp + xpgain
  949. cxp1 = cxp1 - xpgain
  950. chp1 = mhp1
  951. message1 = 1
  952. GOTO saveend
  953. END IF
  954. 2000
  955. attac = fnrnd(10)
  956. IF attac = 10 AND heal1 < 1 THEN GOTO 2000
  957. IF attac = 10 THEN
  958. PRINT name2$; " takes a heal!"
  959. SLEEP 1
  960. hpheal = cha1 + in1 + wis1 + con1
  961. PRINT hpheal; "HP's healed!"
  962. chp1 = chp1 + hpheal
  963. heal1 = heal1 - 1
  964. IF chp1 > mhp1 THEN chp1 = mhp1
  965. END IF
  966. IF attac <> 10 THEN
  967. PRINT name2$; " attacks you!"
  968. dmg = attack1 + fnrnd(10) - defense
  969. IF dmg <= 0 THEN SOUND (dmg + 500), 3: PRINT "The attack did no damage!": GOTO 1000
  970. re = fnrnd(100)
  971. IF re <= hit1 THEN
  972. COLOR 20: PRINT "CRITICAL!"
  973. COLOR 15
  974. dmg = dmg * 3 + fnrnd(2)
  975. SOUND (dmg + 500), 3
  976. PRINT name2$; " hit you for"; dmg; " damage"
  977. chp = chp - dmg
  978. END IF
  979. IF re > hit1 THEN
  980. SOUND (dmg + 500), 3
  981. PRINT name2$; " hit you for"; dmg; " damage"
  982. chp = chp - dmg
  983. END IF
  984. END IF
  985. IF chp <= 0 THEN
  986. PRINT "You have been defeated by "; name2$
  987. SLEEP 1
  988. PRINT "TEN PERCENT OF XP WAS LOST"
  989. PRINT "ALL GOLD ON HAND WAS LOST AND GIVEN TO "; UCASE$(name2$)
  990. gold1 = gold1 + gold
  991. xpgain = INT(cxp - (cxp * .9))
  992. cxp1 = cxp1 + xpgain
  993. cxp = cxp - xpgain
  994. chp = mhp
  995. gold = 0
  996. message1 = 2
  997. GOTO saveend
  998. END IF
  999. GOTO 1000
  1000. saveend:
  1001. OPEN "O", 1, name$: WRITE #1, up, str, dex, con, in, wis, cha, heal, chp, mhp, cxp, lxp, level, cmp, mmp, defense, attack, hit, armor, weapon, bank, gold, message, pass, armor$, weapon$, mpheal: CLOSE #1
  1002. OPEN "O", 1, name2$: WRITE #1, up1, str1, dex1, con1, in1, wis1, cha1, heal1, chp1, mhp1, cxp1, lxp1, level1, cmp1, mmp1, defense1, attack1, hit1, armor1, weapon1, bank1, gold1, message1, pass5, armor1$, weapon1$, mpheal1: CLOSE #1
  1003. END SUB
  1004.  
  1005. SUB quest1
  1006. IF quest = 2 THEN GOTO 20
  1007. IF quest = 3 THEN GOTO 40
  1008. IF quest = 4 THEN GOTO 50
  1009. DO
  1010. COLOR 2
  1011. PRINT "You are in the forest"
  1012. COLOR 15
  1013. PRINT "(esc) to view stats"
  1014. PRINT "(enter) to heal"
  1015. PRINT "Any other key to move on"
  1016. DO: trash$ = INKEY$: LOOP WHILE trash$ = ""
  1017. IF trash$ = CHR$(27) AND heal > 0 THEN chp = chp + wis + in + cha: heal = heal - 1
  1018. IF trash$ = CHR$(13) THEN CALL stat
  1019. encount = fnrnd(4)
  1020. IF encount = 1 THEN GOSUB fight10
  1021. trek = trek + 1
  1022. LOOP WHILE (trek < 15)
  1023. COLOR 24: PRINT "You have encountered the bone golem!"
  1024. SLEEP 2
  1025. COLOR 15
  1026. xp = 1000
  1027. qhp = 2000
  1028. mst = 25: mdx = 23: mcn = 19: mws = 27: min = 24: mch = 23
  1029. attack1 = 46
  1030. defense1 = 20
  1031. hit1 = 19
  1032. ele = 4
  1033. ehp = 2000
  1034. DO
  1035. 11
  1036. CLS
  1037. PRINT "You:";
  1038. COLOR 15
  1039. IF chp <= INT(mhp * .5) THEN COLOR 12
  1040. IF chp <= INT(mhp * .15) THEN COLOR 20
  1041. PRINT chp;
  1042. COLOR 15
  1043. PRINT "/"; mhp
  1044. PRINT "[A]ttack"
  1045. PRINT "[S]kill"
  1046. COLOR 2: PRINT "[F]lee"
  1047. COLOR 15: PRINT "[H]eal"
  1048. PRINT "[M]p heal"
  1049. INPUT "command>", attack$
  1050. attack$ = UCASE$(attack$)
  1051. SELECT CASE attack$
  1052. CASE "M"
  1053. res = INT(wis * .75 + fnrnd(5))
  1054. PRINT res; " MP's restored!"
  1055. cmp = cmp + res
  1056. mpheal = mpheal - 1
  1057. CASE "F"
  1058. COLOR 18
  1059. PRINT "You can't flee from this battle!": GOTO 11
  1060. COLOR 15
  1061. CASE "H"
  1062. IF heal < 1 THEN GOTO 11
  1063. IF chp = mhp THEN PRINT "You don't need a heal!": GOTO 11
  1064. hpheal = fnrnd(5) + (in + con + wis)
  1065. COLOR 10
  1066. PRINT hpheal; " HP's healed!"
  1067. COLOR 15
  1068. chp = chp + hpheal
  1069. IF chp > mhp THEN chp = mhp
  1070. heal = heal - 1
  1071. GOTO 12
  1072. CASE "S"
  1073. CALL skillprint
  1074. IF cod = 0 THEN GOTO 11
  1075. CALL skillattack
  1076. CASE "A"
  1077. dmg = fnrnd(10) + attack
  1078. IF dmg <= defense1 THEN COLOR 24: SOUND (dmg + 500), 3: PRINT "Your attack does no damage": COLOR 15: GOTO 12
  1079. dmg = INT(dmg - defense1)
  1080. re = fnrnd(100)
  1081. IF re <= hit THEN
  1082. dmg = dmg * 2
  1083. COLOR 20
  1084. PRINT "CRITICAL!"
  1085. SOUND (dmg + 500), 3
  1086. COLOR 15
  1087. PRINT "You hit the monster for"; : COLOR 4: PRINT dmg; : COLOR 15: PRINT "hit points!"
  1088. END IF
  1089. IF re > hit THEN SOUND (dmg + 500), 3: PRINT "you inflicted "; : COLOR 4: PRINT dmg; : COLOR 15: PRINT "hp on the monster"
  1090. ehp = ehp - dmg
  1091. CASE ELSE
  1092. GOTO 11
  1093. END SELECT
  1094. IF ehp <= 0 THEN
  1095. COLOR 13
  1096. PRINT "you have defeated the monster!"
  1097. COLOR 15
  1098. cxp = cxp + xp
  1099. IF cxp >= lxp THEN CALL levelraise
  1100. rewad = 1: CALL reward
  1101. EXIT SUB
  1102. END IF
  1103. 12
  1104. at = fnrnd(3)
  1105. IF at = 1 THEN
  1106. dmg = attack1 + fnrnd(10)
  1107. IF dmg <= defense THEN PRINT "The attack does no damage": DO: LOOP WHILE INKEY$ = "": GOTO 11
  1108. dmg = dmg - defense
  1109. re = fnrnd(100)
  1110. IF re <= hit1 THEN
  1111. dmg = dmg * 3 + fnrnd(2)
  1112. PRINT "The monster attacks!"
  1113. COLOR 20
  1114. PRINT "CRITICAL!"
  1115. COLOR 15
  1116. SOUND (dmg + 500), 3
  1117. PRINT "The bone golem hit you for"; : COLOR 4: PRINT dmg; : COLOR 15: PRINT " HP's"
  1118. chp = chp - dmg
  1119. END IF
  1120. IF re > hit1 THEN
  1121. PRINT "The bone golem attacks"
  1122. SOUND (dmg + 500), 3
  1123. PRINT "He hit you for"; : COLOR 4: PRINT dmg; : COLOR 15: PRINT " HP's"
  1124. chp = chp - dmg
  1125. END IF
  1126. END IF
  1127. IF at = 2 THEN
  1128. PRINT "He tosses a bone at you!"
  1129. dmg = INT(attack1 + 10 + fnrnd(10))
  1130. dmg = dmg - defense
  1131. IF dmg < 0 THEN dmg = 0
  1132. SOUND (dmg + 500), 3
  1133. PRINT "It hits you for"; : COLOR 4: PRINT dmg; : COLOR 15: PRINT " damage"
  1134. chp = chp - dmg
  1135. END IF
  1136. IF at = 3 THEN
  1137. PRINT "He runs into you!"
  1138. dmg = INT(attack1 * 1.5) + fnrnd(10)
  1139. dmg = dmg - defense
  1140. IF dmg <= 0 THEN SOUND (dmg + 500), 3: PRINT "it didn't do any damage!": DO: LOOP WHILE INKEY$ = "": GOTO 11
  1141. SOUND (dmg + 500), 3
  1142. PRINT "He hits you for"; : COLOR 4: PRINT dmg; : COLOR 15: PRINT " damage"
  1143. chp = chp - dmg
  1144. END IF
  1145. IF chp <= 0 THEN
  1146. COLOR 25
  1147. PRINT "You died!....you will try again.."
  1148. COLOR 15
  1149. chp = mhp
  1150. ehp = qhp
  1151. IF cmp <= 0 THEN cmp = INT(mmp * .5)
  1152. IF cmp > mmp THEN cmp = mmp
  1153. GOTO 11
  1154. END IF
  1155. DO: LOOP WHILE INKEY$ = ""
  1156. LOOP WHILE ehp > 0 AND chp > 0
  1157. 20
  1158. trek = 0
  1159. DO
  1160. trek = trek + 1
  1161. COLOR 6
  1162. PRINT "You are in the mountain ranges"
  1163. COLOR 15
  1164. PRINT "(esc) for heal"
  1165. PRINT "(enter) for stats"
  1166. PRINT "Any other key to continue"
  1167. DO: trash$ = INKEY$: LOOP WHILE (trash$ = "")
  1168. IF trash$ = CHR$(27) AND heal > 0 THEN chp = chp + wis + in + cha: heal = heal - 1: IF chp > mhp THEN chp = mhp
  1169. IF trash$ = CHR$(13) THEN CALL stat
  1170. encount = fnrnd(3)
  1171. IF encount = 1 THEN GOSUB fight10
  1172. LOOP WHILE (trek < 20)
  1173. COLOR 29: PRINT "You have found the wyvern!"
  1174. COLOR 15
  1175. SLEEP 2
  1176. xp = 2000
  1177. qhp = 5000
  1178. mst = 27: mdx = 32: mcn = 26: mws = 30: min = 28: mch = 35
  1179. attack1 = 59
  1180. defense1 = 35
  1181. hit1 = 25
  1182. ele = 1
  1183. ehp = 2500
  1184. 21
  1185. CLS
  1186. PRINT "You:";
  1187. COLOR 15
  1188. IF chp <= INT(mhp * .5) THEN COLOR 12
  1189. IF chp <= INT(mhp * .15) THEN COLOR 20
  1190. PRINT chp;
  1191. COLOR 15
  1192. PRINT "/"; mhp
  1193. PRINT "[A]ttack"
  1194. PRINT "[S]kill"
  1195. COLOR 2: PRINT "[F]lee"
  1196. COLOR 15: PRINT "[H]eal"
  1197. PRINT "[M]p heal"
  1198. INPUT "command>", attack$
  1199. attack$ = UCASE$(attack$)
  1200. SELECT CASE attack$
  1201. CASE "M"
  1202. res = INT(wis * .75 + fnrnd(5))
  1203. PRINT res; " MP's restored!"
  1204. cmp = cmp + res
  1205. mpheal = mpheal - 1
  1206. CASE "S"
  1207. CALL skillprint
  1208. IF cod = 0 THEN GOTO 21
  1209. CALL skillattack
  1210. CASE "H"
  1211. IF chp = mhp THEN PRINT "You don't need a heal!": GOTO 21
  1212. hpheal = fnrnd(5) + (in + con + wis)
  1213. COLOR 8
  1214. PRINT hpheal; " HP's healed!"
  1215. COLOR 15
  1216. chp = chp + hpheal
  1217. IF chp > mhp THEN chp = mhp
  1218. heal = heal - 1
  1219. GOTO 22
  1220. CASE "A"
  1221. dmg = fnrnd(10) + attack
  1222. dmg = INT(dmg - defense1)
  1223. IF dmg <= 0 THEN COLOR 19: SOUND (dmg + 500), 3: PRINT "Your attack does no damage": COLOR 15: GOTO 22
  1224. re = fnrnd(100)
  1225. IF re <= hit THEN
  1226. dmg = dmg * 2
  1227. COLOR 20
  1228. PRINT "CRITICAL!"
  1229. COLOR 15
  1230. SOUND (dmg + 500), 3
  1231. PRINT "You hit the monster for"; : COLOR 4: PRINT dmg; : COLOR 15: PRINT "hit points!"
  1232. END IF
  1233. IF re > hit THEN SOUND (dmg + 500), 3: PRINT "you inflicted "; : COLOR 4: PRINT dmg; : COLOR 15: PRINT "hp on the monster"
  1234. ehp = ehp - dmg
  1235. CASE ELSE
  1236. GOTO 21
  1237. END SELECT
  1238. IF ehp <= 0 THEN
  1239. COLOR 25
  1240. PRINT "you have defeated the monster!"
  1241. COLOR 15
  1242. cxp = cxp + xp
  1243. IF cxp >= lxp THEN CALL levelraise
  1244. rewad = 2: CALL reward
  1245. EXIT SUB
  1246. END IF
  1247. 22
  1248. at = fnrnd(3)
  1249. IF at = 1 THEN
  1250. COLOR 2
  1251. PRINT "The wyvern attacks!"
  1252. COLOR 15
  1253. dmg = attack1 + fnrnd(10)
  1254. dmg = dmg - defense
  1255. IF dmg <= 0 THEN SOUND (dmg + 500), 3: PRINT "The attack didn't hurt you!": DO: LOOP WHILE INKEY$ = "": GOTO 21
  1256. re = fnrnd(100)
  1257. IF re <= hit1 THEN
  1258. dmg = dmg * 2
  1259. COLOR 20: PRINT "CRITICAL!"
  1260. COLOR 15
  1261. SOUND (dmg + 500), 3
  1262. PRINT "The wyvern did"; : COLOR 4: PRINT dmg; : COLOR 15: PRINT " damage on you"
  1263. chp = chp - dmg
  1264. END IF
  1265. IF re > hit1 THEN
  1266. SOUND (dmg + 500), 3
  1267. PRINT "The wyvern did"; : COLOR 4: PRINT dmg; : COLOR 15: PRINT " damage on you"
  1268. chp = chp - dmg
  1269. END IF
  1270. END IF
  1271. IF at = 2 THEN
  1272. COLOR 2: PRINT "The wyvern hits you with the wing slap"
  1273. dmg = INT(attack1 * 1.5) + fnrnd(15)
  1274. COLOR 15
  1275. SOUND (dmg + 500), 3
  1276. dmg = dmg - defense
  1277. IF dmg <= 0 THEN SOUND (dmg + 500), 3: PRINT "it didn't do any damage!": DO: LOOP WHILE INKEY$ = "": GOTO 21
  1278. PRINT "It did"; : COLOR 4: PRINT dmg; : COLOR 15: PRINT " HP of damage on you"
  1279. chp = chp - dmg
  1280. END IF
  1281. IF at = 3 THEN
  1282. COLOR 20: PRINT "The wyvern breathes fire at you!"
  1283. dmg = INT(mws * 1.5 + fnrnd(20))
  1284. COLOR 15
  1285. SOUND (dmg + 500), 3
  1286. PRINT "It does"; : COLOR 4: PRINT dmg; : COLOR 15: PRINT " damage to you"
  1287. chp = chp - dmg
  1288. END IF
  1289. IF chp <= 0 THEN
  1290. COLOR 25
  1291. PRINT "You lost!...you will try again"
  1292. COLOR 15
  1293. chp = mhp
  1294. ehp = qhp
  1295. IF cmp = 0 THEN cmp = INT(mmp * .5)
  1296. GOTO 21
  1297. END IF
  1298. DO: LOOP WHILE INKEY$ = ""
  1299. GOTO 21
  1300. 40
  1301. PRINT "Good luck!"
  1302. trek = 0
  1303. DO
  1304. IF trek < 11 THEN COLOR 2: PRINT "You are in the plains"
  1305. IF trek > 10 THEN COLOR 11: PRINT "You are in the castle"
  1306. COLOR 15
  1307. PRINT "(esc) for a heal"
  1308. PRINT "(enter) for stats"
  1309. PRINT "any other key to move on"
  1310. DO: trash$ = INKEY$: LOOP WHILE (trash$ = "")
  1311. IF trash$ = CHR$(13) THEN CALL stat
  1312. IF trash$ = CHR$(27) AND heal > 0 THEN chp = mhp: heal = heal - 1: IF chp > mhp THEN chp = mhp
  1313. trek = trek + 1
  1314. encount = fnrnd(fr)
  1315. IF encount = 1 THEN GOSUB fight10
  1316. LOOP WHILE (trek < 20)
  1317. 41
  1318. ele = 2: hit1 = 28: mst = 32: mdx = 23: mcn = 31: mws = 36: min = 23: mch = 27: xp = 3400: qhp = 6500: ehp = 3000: attack = 102: defense1 = 58: IF leave = 2 THEN defense1 = 23: IF fr = 5 THEN defense1 = 58
  1319. COLOR 24: PRINT "You have found the vampire!"
  1320. COLOR 15
  1321. 42
  1322. CLS
  1323. PRINT "You:";
  1324. COLOR 15
  1325. IF chp <= INT(mhp * .5) THEN COLOR 12
  1326. IF chp <= INT(mhp * .15) THEN COLOR 20
  1327. PRINT chp;
  1328. COLOR 15
  1329. PRINT "/"; mhp
  1330. PRINT "[A]ttack"
  1331. PRINT "[S]kill"
  1332. COLOR 2: PRINT "[F]lee"
  1333. COLOR 15: PRINT "[H]eal"
  1334. PRINT "[M]p heal"
  1335. INPUT "command>", attack$
  1336. attack$ = UCASE$(attack$)
  1337. SELECT CASE attack$
  1338. CASE "M"
  1339. res = INT(wis * .75 + fnrnd(5))
  1340. PRINT res; " MP's restored!"
  1341. cmp = cmp + res
  1342. mpheal = mpheal - 1
  1343. CASE "S"
  1344. CALL skillprint
  1345. IF cod = 0 THEN GOTO 42
  1346. CALL skillattack
  1347. CASE "H"
  1348. IF heal < 1 THEN GOTO 42
  1349. IF chp = mhp THEN PRINT "You don't need a heal!": GOTO 42
  1350. hpheal = fnrnd(5) + (in + con + wis)
  1351. COLOR 11
  1352. PRINT hpheal; " HP's healed!"
  1353. COLOR 15
  1354. chp = chp + hpheal
  1355. IF chp > mhp THEN chp = mhp
  1356. heal = heal - 1
  1357. GOTO 43
  1358. CASE "A"
  1359. dmg = fnrnd(10) + attack
  1360. dmg = INT(dmg - defense1)
  1361. IF dmg <= 0 THEN SOUND (dmg + 500), 3: PRINT "Your attack does no damage": GOTO 43
  1362. re = fnrnd(100)
  1363. IF re <= hit THEN
  1364. dmg = dmg * 3 + fnrnd(2)
  1365. COLOR 20
  1366. PRINT "CRITICAL!"
  1367. COLOR 15
  1368. SOUND (dmg + 500), 3
  1369. PRINT "You hit the monster for"; dmg; "hit points!"
  1370. END IF
  1371. IF re > hit THEN SOUND (dmg + 500), 3: PRINT "you inflicted "; dmg; "hp on the monster"
  1372. ehp = ehp - dmg
  1373. CASE ELSE
  1374. GOTO 42
  1375. END SELECT
  1376. IF ehp <= 0 THEN
  1377. COLOR 25
  1378. PRINT "you have defeated the monster!"
  1379. COLOR 15
  1380. cxp = cxp + xp
  1381. IF cxp >= lxp THEN CALL levelraise
  1382. rewad = 3: CALL reward
  1383. EXIT SUB
  1384. END IF
  1385. 43
  1386. at = fnrnd(3)
  1387. IF at = 1 THEN
  1388. PRINT "The vampire attacks!"
  1389. dmg = attack1 + fnrnd(10)
  1390. dmg = dmg - defense
  1391. IF dmg <= 0 THEN SOUND (dmg + 500), 3: PRINT "It did no damage!": DO: LOOP WHILE INKEY$ = "": GOTO 42
  1392. re = fnrnd(100)
  1393. IF re <= hit1 THEN
  1394. COLOR 20: PRINT "CRITICAL!"
  1395. dmg = dmg * 3 + fnrnd(2)
  1396. SOUND (dmg + 500), 3
  1397. COLOR 4: PRINT "The vampire hit you for"; dmg; " damage"
  1398. COLOR 15
  1399. chp = chp - dmg
  1400. END IF
  1401. IF re > hit1 THEN
  1402. SOUND (dmg + 500), 3
  1403. COLOR 4: PRINT "The vampire hit you for"; dmg; " damage"
  1404. COLOR 15
  1405. chp = chp - dmg
  1406. END IF
  1407. END IF
  1408. IF at = 2 THEN
  1409. er = fnrnd(100)
  1410. dmg = INT(attack1 * 2)
  1411. IF er > 25 THEN SOUND (dmg + 500), 3: PRINT "The vampire missed with the drain.": DO: LOOP WHILE INKEY$ = "": GOTO 42
  1412. IF er <= 25 THEN
  1413. COLOR 29: PRINT "The vampire sinks his teeth in"
  1414. COLOR 15
  1415. SOUND (dmg + 500), 3
  1416. IF dmg <= (wis + con) + level THEN PRINT "It didn't hurt you!": DO: LOOP WHILE INKEY$ = "": GOTO 42
  1417. dmg = dmg - (wis + con + level)
  1418. COLOR 20: PRINT "You lost"; dmg; " HPs"
  1419. COLOR 2: PRINT "The vampire gained"; (dmg \ 2 + fnrnd(4)); " HPs"
  1420. COLOR 15
  1421. chp = chp - dmg
  1422. ehp = ehp + (dmg \ 2 + fnrnd(4))
  1423. IF ehp > qhp THEN ehp = qhp
  1424. END IF
  1425. END IF
  1426. IF at = 3 THEN
  1427. COLOR 20: PRINT "The vampire casts fire!"
  1428. COLOR 15
  1429. dmg = (mws * 2) + fnrnd(10)
  1430. SOUND (dmg + 500), 3
  1431. PRINT "The spell does"; dmg; " to you"
  1432. chp = chp - dmg
  1433. END IF
  1434. IF chp <= 0 THEN
  1435. COLOR 21: PRINT "You lost!....you will try again"
  1436. COLOR 15: chp = mhp
  1437. IF cmp = 0 THEN cmp = INT(mmp * .5)
  1438. GOTO 43
  1439. END IF
  1440. DO: LOOP WHILE INKEY$ = ""
  1441. GOTO 42
  1442. 50
  1443. DO WHILE trek < 20
  1444. COLOR 8: PRINT "You are in the mountainside cave"
  1445. COLOR 15
  1446. PRINT "(esc) to use a heal"
  1447. PRINT "(enter) to see stats"
  1448. PRINT "Any other key to move on"
  1449. DO: trash$ = INKEY$: LOOP WHILE trash$ = ""
  1450. IF trash$ = CHR$(13) THEN CALL stat
  1451. IF trash$ = CHR$(27) AND heal > 0 THEN chp = chp + wis + cha + in: heal = heal - 1: IF chp > mhp THEN chp = mhp
  1452. trek = trek + 1
  1453. encount = fnrnd(4)
  1454. IF encount = 1 THEN GOSUB fight10
  1455. LOOP
  1456. COLOR 6: PRINT "You have found the tarrasque and he is MAD!"
  1457. hit1 = 30: mst = 41: mdx = 21: mcn = 31: mws = 15: min = 27: mch = 25: attack1 = 122: defense1 = 61: xp = 5000: qhp = 7000: ehp = qhp: ele = 4
  1458. 51
  1459. CLS
  1460. PRINT "You:";
  1461. COLOR 15
  1462. IF chp <= INT(mhp * .5) THEN COLOR 12
  1463. IF chp <= INT(mhp * .15) THEN COLOR 20
  1464. PRINT chp;
  1465. COLOR 15
  1466. PRINT "/"; mhp
  1467. PRINT "[A]ttack"
  1468. PRINT "[S]kill"
  1469. COLOR 2: PRINT "[F]lee"
  1470. COLOR 15: PRINT "[H]eal"
  1471. PRINT "[M]p heal"
  1472. INPUT "command>", attack$
  1473. attack$ = UCASE$(attack$)
  1474. SELECT CASE attack$
  1475. CASE "M"
  1476. res = INT(wis * .75 + fnrnd(5))
  1477. PRINT res; " MP's restored!"
  1478. cmp = cmp + res
  1479. mpheal = mpheal - 1
  1480. CASE "S"
  1481. CALL skillprint
  1482. IF cod = 0 THEN GOTO 51
  1483. CALL skillattack
  1484. CASE "H"
  1485. IF heal < 1 THEN GOTO 51
  1486. IF chp = mhp THEN PRINT "You don't need a heal!": GOTO 51
  1487. hpheal = fnrnd(5) + (in + con + wis)
  1488.  
  1489. COLOR 10: PRINT hpheal; " HP's healed!"
  1490. COLOR 15
  1491. chp = chp + hpheal
  1492. IF chp > mhp THEN chp = mhp
  1493. heal = heal - 1
  1494. GOTO 52
  1495. CASE "A"
  1496. dmg = fnrnd(10) + attack
  1497. IF dmg <= defense1 THEN SOUND (dmg + 500), 3: PRINT "Your attack does no damage": GOTO 52
  1498. dmg = INT(dmg - defense1)
  1499. re = fnrnd(100)
  1500. IF re <= hit THEN
  1501. dmg = dmg * 2
  1502. COLOR 20: PRINT "CRITICAL!"
  1503. COLOR 15
  1504. SOUND (dmg + 500), 3
  1505. PRINT "You hit the monster for"; dmg; "hit points!"
  1506. END IF
  1507. IF re > hit THEN SOUND (dmg + 500), 3: PRINT "you inflicted "; dmg; "hp on the monster"
  1508. ehp = ehp - dmg
  1509. CASE ELSE
  1510. GOTO 51
  1511. END SELECT
  1512. IF ehp <= 0 THEN
  1513. COLOR 25: PRINT "you have defeated the monster!"
  1514. COLOR 15
  1515. cxp = cxp + xp
  1516. IF cxp >= lxp THEN CALL levelraise
  1517. rewad = 4: CALL reward
  1518. EXIT SUB
  1519. END IF
  1520. 52
  1521. at = fnrnd(3)
  1522. IF at = 1 THEN
  1523. PRINT "The tarrasque attacks!"
  1524. dmg = attack1 + fnrnd(10) - defense
  1525. IF dmg <= 0 THEN SOUND (dmg + 500), 3: PRINT "The attack did no damage!": DO: LOOP WHILE INKEY$ = "": GOTO 51
  1526. re = fnrnd(100)
  1527. IF re <= hit1 THEN
  1528. COLOR 20: PRINT "CRITICAL!"
  1529. dmg = dmg * 3 + fnrnd(2)
  1530. SOUND (dmg + 500), 3
  1531. COLOR 4: PRINT "The attack did"; dmg; "damage to you"
  1532. COLOR 15
  1533. chp = chp - dmg
  1534. END IF
  1535. IF re > hit1 THEN
  1536. SOUND (dmg + 500), 3
  1537. COLOR 4: PRINT "The attack did"; dmg; " damage to you"
  1538. COLOR 15
  1539. chp = chp - dmg
  1540. END IF
  1541. END IF
  1542. IF at = 2 THEN
  1543. COLOR 4: PRINT "The tarrasque bashes into you!"
  1544. COLOR 15
  1545. dmg = attack1 + fnrnd(20) - (dex \ 2.5)
  1546. IF dmg <= 0 THEN SOUND (dmg + 500), 3: PRINT "The attack didn't phase you!": DO: LOOP WHILE INKEY$ = "": GOTO 51
  1547. SOUND (dmg + 500), 3
  1548. COLOR 4: PRINT "The bash did"; dmg; " damage to you"
  1549. COLOR 15
  1550. chp = chp - dmg
  1551. END IF
  1552. IF at = 3 THEN
  1553. PRINT "The double claw attack!"
  1554. er = fnrnd(100)
  1555. IF er <= 75 THEN
  1556. SOUND (dmg + 500), 3
  1557. dmg = attack1 + fnrnd(10) - (dex \ 3)
  1558. COLOR 19: PRINT "The claw hits you for"; dmg; " damage"
  1559. COLOR 15
  1560. chp = chp - dmg
  1561. END IF
  1562. IF er > 75 THEN
  1563. SOUND (dmg + 500), 3
  1564. PRINT "The tarrasque roars as the claw misses"
  1565. END IF
  1566. er = fnrnd(100)
  1567. IF er <= 75 THEN
  1568. SOUND (dmg + 500), 3
  1569. dmg = attack1 + fnrnd(10) - (dex \ 3)
  1570. COLOR 20: PRINT "The second claw hits you or"; dmg; " damage"
  1571. COLOR 15
  1572. chp = chp - dmg
  1573. END IF
  1574. IF er > 75 THEN
  1575. SOUND (dmg + 500), 3
  1576. PRINT "The claw missed!"
  1577. END IF
  1578. END IF
  1579. IF chp <= 0 THEN
  1580. COLOR 21: PRINT "You lost!....you will try again"
  1581. COLOR 15
  1582. chp = mhp
  1583. IF cmp = 0 THEN cmp = INT(mmp * .5)
  1584. GOTO 50
  1585. END IF
  1586. DO: LOOP WHILE INKEY$ = ""
  1587. GOTO 51
  1588. fight10:
  1589. mst = fnrnd(15) + INT(up * .75)
  1590. mdx = fnrnd(15) + INT(up * .75)
  1591. mcn = fnrnd(15) + INT(up * .75)
  1592. min = fnrnd(15) + INT(up * .75)
  1593. mws = fnrnd(15) + INT(up * .75)
  1594. mch = fnrnd(15) + INT(up * .75)
  1595. attack1 = INT((mst + up) * 1.5)
  1596. defense1 = ((mdx \ 2) + up)
  1597. raigold = INT((((level * 3.5) + (up * 3.5)) + fnrnd(10) + 200) * 1.5 + fnrnd(2)) + (125 * up)
  1598. ele = fnrnd(6)
  1599. leve = up
  1600. qhr = ((up \ 5) + (mst \ 2))
  1601. IF qhr > 99 THEN qhr = 99
  1602. qhp = fnrnd(10) + INT(mcn + (up * 10) + (mhp \ 2))
  1603. ehp = qhp
  1604. xp = (up + (qhp \ 2)) + (mst + mdx + min + mws + mcn + mch \ 6)
  1605. PRINT "LET'S FIGHT!"
  1606. ehp = qhp
  1607. 400
  1608. CLS
  1609. PRINT "You:";
  1610. COLOR 15
  1611. IF chp <= INT(mhp * .5) THEN COLOR 12
  1612. IF chp <= INT(mhp * .15) THEN COLOR 20
  1613. PRINT chp;
  1614. COLOR 15
  1615. PRINT "/"; mhp
  1616. COLOR 15
  1617. PRINT "[A]ttack"
  1618. PRINT "[S]kill"
  1619. PRINT "[F]lee"
  1620. PRINT "[D]eathfight"
  1621. PRINT "[H]eal"
  1622. PRINT "[M]p heal"
  1623. INPUT "command>", attack$
  1624. attack$ = UCASE$(attack$)
  1625. SELECT CASE attack$
  1626. CASE "D"
  1627. CALL deathfight
  1628. IF chp < 1 THEN chp = mhp: RETURN
  1629. CASE "M"
  1630. res = INT(wis * .75 + fnrnd(5))
  1631. PRINT res; " MP's restored!"
  1632. cmp = cmp + res
  1633. mpheal = mpheal - 1
  1634. CASE "F"
  1635. fle = dex + wis + cha
  1636. elf = mdx + mws + mch
  1637. IF fle > elf THEN PRINT "you flee from the battle": RETURN
  1638. IF fle <= elf THEN PRINT "you can't run!"
  1639. CASE "H"
  1640. IF heal < 1 THEN GOTO 400
  1641. IF chp = mhp THEN PRINT "You don't need a heal!": GOTO 400
  1642. hpheal = fnrnd(5) + (in + con + wis)
  1643. COLOR 6: PRINT hpheal; " HP's healed!"
  1644. COLOR 15
  1645. chp = chp + hpheal
  1646. IF chp > mhp THEN chp = mhp
  1647. heal = heal - 1
  1648. GOTO 500
  1649. CASE "S"
  1650. CALL skillprint
  1651. IF cod = 0 THEN GOTO 400
  1652. CALL skillattack
  1653. CASE "A"
  1654. dmg = fnrnd(10) + attack
  1655. dmg = dmg - defense1
  1656. IF dmg <= 0 THEN SOUND (dmg + 500), 3: PRINT "Your attack does no damage": GOTO 500
  1657. re = fnrnd(100)
  1658. IF re <= hit THEN
  1659. dmg = dmg * 3 + fnrnd(2)
  1660. COLOR 20: PRINT "CRITICAL!"
  1661. SOUND (dmg + 500), 3
  1662. COLOR 15: PRINT "You hit the monster for"; dmg; "hit points!"
  1663. END IF
  1664. IF re > hit THEN SOUND (dmg + 500), 3: PRINT "you inflicted "; dmg; "hp on the monster"
  1665. ehp = ehp - dmg
  1666. CASE ELSE
  1667. GOTO 400
  1668. END SELECT
  1669. IF ehp <= 0 THEN
  1670. COLOR 25: PRINT "you have defeated the monster!"
  1671. COLOR 15
  1672. PRINT "You gain"; xp; "xp points, and"; raigold; "gold!"
  1673. DO: LOOP WHILE INKEY$ = ""
  1674. gold = gold + raigold
  1675. cxp = cxp + xp
  1676. IF cxp >= lxp THEN CALL levelraise
  1677. RETURN
  1678. END IF
  1679. 500
  1680. PRINT "The monster attacks!"
  1681. dmg = fnrnd(10) + attack1
  1682. dmg = INT(dmg - defense)
  1683. IF dmg <= 0 THEN SOUND (dmg + 500), 3: PRINT "The attack does no damage": DO: LOOP WHILE INKEY$ = "": GOTO 400
  1684. re = fnrnd(100)
  1685. IF re <= qhr THEN
  1686. dmg = dmg * 3 + fnrnd(2)
  1687. COLOR 20: PRINT "CRITICAL!"
  1688. SOUND (dmg + 500), 3
  1689. COLOR 4: PRINT "The monster hit you for"; dmg; " hit points."
  1690. COLOR 15
  1691. END IF
  1692. IF re > qhr THEN SOUND (dmg + 500), 3: COLOR 4: PRINT "The monster hits you for"; dmg; " hp"
  1693. COLOR 15
  1694. chp = chp - dmg
  1695. IF chp <= 0 THEN
  1696. INPUT "You lost!...keep playing?", e$
  1697. IF e$ = "N" OR e$ = "n" THEN SYSTEM
  1698. gold = gold \ 1.2
  1699. IF gold <= 0 THEN gold = 0
  1700. chp = mhp
  1701. END IF
  1702. DO: LOOP WHILE INKEY$ = ""
  1703. GOTO 400
  1704. END SUB
  1705.  
  1706. SUB reward
  1707. IF rewad = 1 THEN GOTO 100
  1708. IF rewad = 2 THEN GOTO 101
  1709. IF rewad = 3 THEN GOTO 102
  1710. IF rewad = 4 THEN GOTO 103
  1711. 100
  1712. quest = 0
  1713. PRINT "Thank you for killing the bone golem!"
  1714. PRINT "Here is 2000 gold": gold = gold + 2000
  1715. PRINT "We will reward you by giving you an ability potion. What ability"
  1716. PRINT "do you want up?"
  1717. SLEEP 1
  1718. INPUT "(1)str (2)dex (3) con (4) wis (5) int (6) cha", ab
  1719. IF ab = 1 THEN PRINT "Strength up by 1!": str = str + 1
  1720. IF ab = 2 THEN PRINT "Dexterity up by 1!": dex = dex + 1
  1721. IF ab = 3 THEN PRINT "Constitution up by 1!": con = con + 1
  1722. IF ab = 4 THEN PRINT "Wisdom up by 1!": wis = wis + 1
  1723. IF ab = 5 THEN PRINT "Intelligence up by 1!": in = in + 1
  1724. IF ab = 6 THEN PRINT "Charisma up by 1!": cha = cha + 1
  1725. IF ab > 6 OR ab < 1 THEN GOTO 100
  1726. PRINT "Thanks again!"
  1727. SLEEP 2
  1728. EXIT SUB
  1729. 101
  1730. quest = 0
  1731. PRINT "You have recovered the statue!"
  1732. SLEEP 1
  1733. PRINT "Here have 10000 gold!": gold = gold + 10000
  1734. PRINT "Thanks for doing such a heroic deed...pick one"
  1735. PRINT "(1) vitality potion"
  1736. PRINT "(2) 15 healings"
  1737. INPUT "", ried
  1738. IF ried = 1 THEN gain = fnrnd(20) + con: PRINT "You have gained"; gain; " max HP's!": mhp = mhp + gain
  1739. IF ried = 2 THEN heal = heal + 15: PRINT "There are your 15 healings!"
  1740. IF ried < 1 OR ried > 2 THEN GOTO 101
  1741. SLEEP 1
  1742. PRINT "Thanks again!"
  1743. SLEEP 2
  1744. EXIT SUB
  1745. 102
  1746. quest = 0
  1747. PRINT "You have saved our king! I know how to thank you..."
  1748. PRINT "Here have 100000 gold!": gold = gold + 100000
  1749. PRINT "Pick one"
  1750. PRINT "(1) MP raise (2) HP raise (3) ability raise"
  1751. INPUT ried
  1752. IF ried = 1 THEN
  1753. mpr = fnrnd(3) + (wis \ 2)
  1754. PRINT "Max MP raised by"; mpr; "!"
  1755. mmp = mmp + mpr
  1756. END IF
  1757. IF ried = 2 THEN
  1758. thp = fnrnd(20) + con + wis
  1759. PRINT "Max HP's raised by"; thp; "!"
  1760. mhp = mhp + thp
  1761. END IF
  1762. IF ried = 3 THEN
  1763. PRINT "What ability do you want up?"
  1764. SLEEP 1
  1765. INPUT "(1)str (2)dex (3) con (4) wis (5) int (6) cha", ab
  1766. IF ab = 1 THEN PRINT "Strength up by 4!": str = str + 4
  1767. IF ab = 2 THEN PRINT "Dexterity up by 4!": dex = dex + 4
  1768. IF ab = 3 THEN PRINT "Constitution up by 4!": con = con + 4
  1769. IF ab = 4 THEN PRINT "Wisdom up by 4!": wis = wis + 4
  1770. IF ab = 5 THEN PRINT "Intelligence up by 4!": in = in + 4
  1771. IF ab = 6 THEN PRINT "Charisma up by 4!": cha = cha + 4
  1772. IF ab > 6 OR ab < 1 THEN GOTO 102
  1773. END IF
  1774. IF ried < 1 OR ried > 3 THEN GOTO 102
  1775. PRINT "Thanks again. You will beat the dragon someday"
  1776. SLEEP 1
  1777. EXIT SUB
  1778. 103
  1779. quest = 0
  1780. PRINT "You have beaten the tarrasque!"
  1781. PRINT "You need 100000 gold don't you?": gold = gold + 100000
  1782. PRINT "How did you do it? I can't believe this! Someone that someday will"
  1783. PRINT "rid us of the DRAGON!"
  1784. SLEEP 2
  1785. PRINT "You need a big reward!"
  1786. PRINT "What ability do you want up?"
  1787. SLEEP 1
  1788. INPUT "(1)str (2)dex (3) con (4) wis (5) int (6) cha", ab
  1789. IF ab = 1 THEN PRINT "Strength up by 4!": str = str + 4
  1790. IF ab = 2 THEN PRINT "Dexterity up by 4!": dex = dex + 4
  1791. IF ab = 3 THEN PRINT "Constitution up by 4!": con = con + 4
  1792. IF ab = 4 THEN PRINT "Wisdom up by 4!": wis = wis + 4
  1793. IF ab = 5 THEN PRINT "Intelligence up by 4!": in = in + 4
  1794. IF ab = 6 THEN PRINT "Charisma up by 4!": cha = cha + 4
  1795. IF ab > 6 OR ab < 1 THEN GOTO 103
  1796. PRINT "You aren't strong enough now but I am sure when you reach "
  1797. PRINT "level 60 you will be able to kill the dragon."
  1798. SLEEP 4
  1799. PRINT "Until then keep at the arena. Bye!"
  1800. SLEEP 3
  1801. CLS
  1802. EXIT SUB
  1803. END SUB
  1804.  
  1805. SUB save
  1806. OPEN "O", 1, name$
  1807. WRITE #1, up, str, dex, con, in, wis, cha, heal, chp, mhp, cxp, lxp, level, cmp, mmp, defense, attack, hit, armor, weapon, bank, gold, message, pass, armor$, weapon$, mpheal
  1808. CLOSE
  1809. END SUB
  1810.  
  1811. SUB skillattack
  1812. IF cod = 0 THEN EXIT SUB
  1813. IF cod = 1 THEN
  1814. PRINT "You jump at the monster with a slash"
  1815. cmp = cmp - 1
  1816. dmg = (attack) + fnrnd(10) + (dex \ 2)
  1817. SOUND (500 + dmg), 3
  1818. PRINT "You inflict "; dmg; " HP's on him"
  1819. ehp = ehp - dmg
  1820. END IF
  1821. IF cod = 2 THEN
  1822. PRINT "You jump at the enemy, coming down with your sword"
  1823. cmp = cmp - 3
  1824. dmg = (attack) * 2 + fnrnd(9) + (dex \ 2)
  1825. SOUND (500 + dmg), 3
  1826. PRINT "You inflict "; dmg; " HP's on him"
  1827. ehp = ehp - dmg
  1828. END IF
  1829. IF cod = 3 THEN
  1830. PRINT "You shoot flames at the enemy"
  1831. cmp = cmp - 2
  1832. IF ele = 2 THEN dmg = ((wis * 2) + fnrnd(10)) * 2
  1833. IF ele <> 2 THEN dmg = (wis * 2) + fnrnd(10)
  1834. SOUND (500 + dmg), 3
  1835. IF ele = 2 THEN
  1836. PRINT "Monster weak against fire!"
  1837. PRINT "You inflict"; dmg; " HP's on the monster"
  1838. END IF
  1839. IF ele = 1 THEN
  1840. PRINT "Monster strong against fire"
  1841. PRINT "The monster gained"; dmg; " HP's"
  1842. END IF
  1843. IF ele <> 1 AND ele <> 2 THEN
  1844. PRINT "You inflicted"; dmg; " HP's on the monster"
  1845. END IF
  1846. IF ele <> 1 THEN ehp = ehp - dmg
  1847. IF ele = 1 THEN ehp = ehp + dmg
  1848. IF ehp > qhp THEN ehp = qhp
  1849. END IF
  1850. IF cod = 4 THEN
  1851. PRINT "You conjure an ice storm on the monster"
  1852. cmp = cmp - 2
  1853. IF ele = 1 THEN dmg = ((wis * 2) + fnrnd(11)) * 2 + fnrnd(2)
  1854. IF ele <> 1 THEN dmg = (wis * 2) + fnrnd(11)
  1855. SOUND (500 + dmg), 3
  1856. IF ele = 1 THEN
  1857. PRINT "Monster weak against ice!"
  1858. PRINT "You inflict"; dmg; " HP's on the monster"
  1859. END IF
  1860. IF ele = 2 THEN
  1861. PRINT "Monster strong against ice"
  1862. PRINT "The monster gained"; dmg; " HP's"
  1863. END IF
  1864. IF ele <> 1 AND ele <> 2 THEN
  1865. PRINT "You inflicted"; dmg; " HP's on the monster"
  1866. END IF
  1867. IF ele <> 2 THEN ehp = ehp - dmg
  1868. IF ele = 2 THEN ehp = ehp + dmg
  1869. IF ehp > qhp THEN ehp = qhp
  1870. END IF
  1871. IF cod = 5 THEN
  1872. PRINT "A bolt of lightning comes down on the enemy"
  1873. cmp = cmp - 3
  1874. IF ele = 5 THEN dmg = ((wis * 2) + fnrnd(12)) * 2
  1875. IF ele <> 5 THEN dmg = (wis * 2) + fnrnd(12)
  1876. SOUND (500 + dmg), 3
  1877. IF ele = 5 THEN
  1878. PRINT "Monster weak against lightning!"
  1879. PRINT "You inflict"; dmg; " HP's on the monster"
  1880. END IF
  1881. IF ele = 6 THEN
  1882. PRINT "Monster strong against lightning"
  1883. PRINT "The monster gained"; dmg; " HP's"
  1884. END IF
  1885. IF ele <> 6 AND ele <> 5 THEN
  1886. PRINT "You inflicted"; dmg; " HP's on the monster"
  1887. END IF
  1888. IF ele <> 6 THEN ehp = ehp - dmg
  1889. IF ele = 6 THEN ehp = ehp + dmg
  1890. IF ehp > qhp THEN ehp = qhp
  1891. END IF
  1892. IF cod = 6 THEN
  1893. PRINT "You cast the spell...."
  1894. cmp = cmp - 2
  1895. gahp = ((in * wis) \ 1.5) + fnrnd(5)
  1896. SOUND (500 + gahp), 3
  1897. PRINT "..and recover"; gahp; " HP's!"
  1898. chp = chp + gahp
  1899. IF chp > mhp THEN chp = mhp
  1900. END IF
  1901. IF cod = 7 THEN
  1902. PRINT "You cast the spell....."
  1903. cmp = cmp - 20
  1904. gahp = (((in * wis) \ 2) * 2 + fnrnd(25))
  1905. SOUND (500 + gahp), 3
  1906. PRINT "...and recover "; gahp; "HP's!"
  1907. chp = chp + gahp
  1908. IF chp > mhp THEN chp = mhp
  1909. END IF
  1910. IF cod = 8 THEN
  1911. PRINT "Here comes the tornado!"
  1912. cmp = cmp - 5
  1913. IF ele = 4 THEN dmg = INT((wis * 2.5) + fnrnd(10)) * 2
  1914. IF ele <> 4 THEN dmg = INT(wis * 2.5) + fnrnd(10)
  1915. SOUND (500 + dmg), 3
  1916. IF ele = 4 THEN
  1917. PRINT "Monster weak against air!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement