home *** CD-ROM | disk | FTP | other *** search
/ Stars of Shareware: Programmierung / SOURCE.mdf / programm / msdos / basic / rpgtls / mnstrmkr.bas < prev    next >
Encoding:
BASIC Source File  |  1980-01-04  |  13.1 KB  |  400 lines

  1. CLS
  2. PALETTE 2, 48: PALETTE 10, 2
  3. COLOR 7
  4. PRINT "                                   ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄       "
  5. COLOR 8
  6. PRINT "                                  ████████████████████████      "
  7. COLOR 7
  8. PRINT "                                   █";
  9. COLOR 10, 2
  10. PRINT "                    ";
  11. COLOR 7, 0
  12. PRINT "█";
  13. COLOR 7
  14. PRINT "  Trent Troop's Random Monster     █";
  15. COLOR 10, 2
  16. PRINT "       █████        ";
  17. COLOR 7, 0
  18. PRINT "█"
  19. COLOR 7
  20. PRINT "           Generator.              █";
  21. COLOR 10, 2
  22. PRINT "       ███████▄     ";
  23. COLOR 7, 0
  24. PRINT "█"
  25. COLOR 7
  26. PRINT "                                   █";
  27. COLOR 10, 2
  28. PRINT "       ▄████████▄   ";
  29. COLOR 7, 0
  30. PRINT "█"
  31. COLOR 7
  32. PRINT "                                   █";
  33. COLOR 10, 2
  34. PRINT "      ▄██▀████ ███  ";
  35. COLOR 7, 0
  36. PRINT "█"
  37. COLOR 7
  38. PRINT "                                   █";
  39. COLOR 10, 2
  40. PRINT "   ▀███▀  ███   ██  ";
  41. COLOR 7, 0
  42. PRINT "█"
  43. COLOR 7
  44. PRINT "                                   █";
  45. COLOR 10, 2
  46. PRINT "    ▀    █████  █▄  ";
  47. COLOR 7, 0
  48. PRINT "█"
  49. COLOR 7
  50. PRINT "                                   █";
  51. COLOR 10, 2
  52. PRINT "        ██████ █▀█  ";
  53. COLOR 7, 0
  54. PRINT "█"
  55. COLOR 7
  56. PRINT "   For use with RPGs made by TSR.  █";
  57. COLOR 10, 2
  58. PRINT "        ██▀ ███     ";
  59. COLOR 7, 0
  60. PRINT "█"
  61. COLOR 7
  62. PRINT "  Compatable (With Modifications)  █";
  63. COLOR 10, 2
  64. PRINT "        ███  ██▄    ";
  65. COLOR 7, 0
  66. PRINT "█"
  67. COLOR 7
  68. PRINT "       with any Fantasy RPG.       █";
  69. COLOR 10, 2
  70. PRINT "         ▀███ ███   ";
  71. COLOR 7, 0
  72. PRINT "█"
  73. COLOR 7
  74. PRINT "                                   █";
  75. COLOR 10, 2
  76. PRINT "          ▄▀█   █   ";
  77. COLOR 7, 0
  78. PRINT "█"
  79. COLOR 7
  80. PRINT "                                   █";
  81. COLOR 10, 2
  82. PRINT "               █▀█  ";
  83. COLOR 7, 0
  84. PRINT "█"
  85. COLOR 8
  86. PRINT "                                  ████████████████████████      "
  87. COLOR 7
  88. PRINT "                                   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀       "
  89. PRINT "                                                                "
  90. COLOR 4, 0
  91. PRINT
  92. PRINT CHR$(34);
  93. PRINT "Playing God has never been so easy."; CHR$(34)
  94. COLOR 7, 0
  95. PRINT
  96. PRINT
  97. PRINT
  98. INPUT "Continue"; yesno$
  99.  
  100. CLS
  101. COLOR 4
  102. PRINT "The Monster Creator"
  103. COLOR 1
  104. PRINT "For use with Unlimited Adventures and Other TSR games."
  105. PRINT "By Trent Troop"
  106. PRINT "Programmed in Quickbasic."
  107. PRINT
  108. PRINT
  109. COLOR 3
  110. PRINT "This program creates random monsters for most TSR games, and is "
  111. PRINT "shareware."
  112. PRINT ""
  113. PRINT "This program is not completely logical in the creatures it creates,"
  114. PRINT "So feel free to alter the monsters as you need.  Use the included "
  115. PRINT "name generation utility for monster names.  The first two words tell"
  116. PRINT "what kind of creature the monster is and how many feet it has.  This "
  117. PRINT "program only generates one melee attack damage ratio.  And the powers"
  118. PRINT "listed are as of Unlimited Adventures.  Thank you for using my program."
  119. PRINT "Thanks!"
  120. PRINT
  121. PRINT
  122. COLOR 1
  123. INPUT "Continue"; yesno$
  124. 1 LET runner = 10
  125. 2 RANDOMIZE TIMER
  126. TROFF
  127. aln1 = INT(RND * 3) + 1
  128. RANDOMIZE TIMER
  129. aln2 = INT(RND * 3) + 1
  130. IF aln1 = 1 THEN LET lno$ = "Lawful"
  131. IF aln1 = 2 THEN LET lno$ = "Neutral"
  132. IF aln1 = 3 THEN LET lno$ = "Chaotic"
  133. IF aln2 = 1 THEN LET gne$ = " Good"
  134. IF aln2 = 2 THEN LET gne$ = " Neutral": GOTO 3
  135. IF aln2 = 3 THEN LET gne$ = " Evil"
  136. GOTO 4
  137. 3 IF aln1 = 2 THEN LET lno$ = "True"
  138. 4 freq = INT(RND * 6) + 1
  139. IF freq = 1 THEN freq$ = "Very Rare"
  140. IF freq = 2 THEN freq$ = "Rare"
  141. IF freq = 3 THEN freq$ = "Uncommon"
  142. IF freq = 4 THEN freq$ = "Common"
  143. IF freq = 5 THEN freq$ = "Extremely Rare"
  144. IF freq = 6 THEN freq$ = "Special"
  145. typenum = INT(RND * 11) + 1
  146. IF typenum = 1 THEN LET type$ = "Mammalian"
  147. IF typenum = 2 THEN LET type$ = "Aquatic"
  148. IF typenum = 3 THEN LET type$ = "Reptilian"
  149. IF typenum = 4 THEN LET type$ = "Amphibian"
  150. IF typenum = 5 THEN LET type$ = "Plant"
  151. IF typenum = 6 THEN LET type$ = "Fungal"
  152. IF typenum = 7 THEN LET type$ = "Undead"
  153. IF typenum = 8 THEN LET type$ = "Planar"
  154. IF typenum = 9 THEN LET type$ = "Insectiod"
  155. IF typenum = 10 THEN LET type$ = "Automotonic"
  156. IF typenum = 11 THEN LET type$ = "Avian"
  157. IF typenum = 10 THEN LET gne$ = "Neutral": IF typenum = 10 THEN LET lno$ = "True "
  158. legnum = INT(RND * 6) + 1
  159. IF legnum = 1 THEN LET legs$ = "Biped"
  160. IF legnum = 2 THEN LET legs$ = "Quadroped"
  161. IF legnum = 3 THEN LET legs$ = "Monoped (Serpentine)"
  162. IF legnum = 4 THEN LET legs$ = "Hexaped"
  163. IF legnum = 5 THEN LET legs$ = "Levitating"
  164. IF legnum = 6 THEN LET legs$ = "Rooted"
  165. IF typenum = 1 THEN LET legs2$ = ""
  166. IF typenum = 2 THEN LET legs2$ = "(Refers to the Number of Fins)"
  167. IF typenum = 3 THEN LET legs2$ = ""
  168. IF typenum = 4 THEN LET legs2$ = "(Can survive in air or water)"
  169. IF typenum = 5 THEN LET legs2$ = "(Refers to predominate walking roots)"
  170. IF typenum > 5 THEN LET legs2$ = ""
  171. ac = INT(RND * 15) - 5
  172. thac0 = INT(RND * 20) + 1
  173. envirn = INT(RND * 9) + 1
  174. IF envirn = 1 THEN LET envirn$ = "Forest"
  175. IF envirn = 2 THEN LET envirn$ = "Plains"
  176. IF envirn = 3 THEN LET envirn$ = "Any"
  177. IF envirn = 4 THEN LET envirn$ = "Desert"
  178. IF envirn = 5 THEN LET envirn$ = "Swamp"
  179. IF envirn = 6 THEN LET envirn$ = "Mountains"
  180. IF envirn = 7 THEN LET envirn$ = "Oceans (Salt Water)"
  181. IF envirn = 8 THEN LET envirn$ = "Subterrianian"
  182. IF envirn = 9 THEN LET envirn$ = "Lakes/Rivers (Fresh Water)"
  183. IF typenum = 2 THEN LET envirn = INT(RND * 2) + 1: GOTO 6
  184. IF typenum = 10 THEN LET envirn$ = "Wherever placed by creator."
  185. GOTO 7
  186. 6 IF envirn = 1 THEN LET envirn$ = "Oceans (Salt Water)"
  187. IF envirn = 2 THEN LET envirn$ = "Lakes/Rivers (Fresh Water)"
  188. 7 intel = INT(RND * 16) + 3
  189. stren = INT(RND * 16) + 3
  190. dextr = INT(RND * 16) + 3
  191. charm = INT(RND * 16) + 3
  192. wisdm = INT(RND * 16) + 3
  193. endur = INT(RND * 16) + 3
  194. LET mgres = 0
  195. mgres = INT(RND * 10) + 1
  196. IF mgres > 8 THEN LET mageres = INT(RND * 100) + 1
  197. size = INT(RND * 6) + 1
  198. IF size = 2 THEN LET size$ = "Small (1-4 feet tall)"
  199. IF size = 3 THEN LET size$ = "Human sized (4-6 feet tall)"
  200. IF size = 4 THEN LET size$ = "Large (6-9 feet tall)"
  201. IF size = 5 THEN LET size$ = "Giant (9-20 feet tall) "
  202. IF size = 6 THEN LET size$ = "Huge (20+ feet tall) "
  203. IF size = 1 THEN LET size$ = "Miniscule (less than 1 foot tall)"
  204. IF size = 2 THEN LET size = INT(RND * 2) + 1
  205. LET sent = 0
  206. IF intel > 9 THEN LET sent = INT(RND * 2) + 1:  ELSE GOTO 17
  207. IF sent = 2 THEN LET sent$ = "Sentient": GOTO 18
  208. 17 LET sent$ = "Non-Sentient"
  209. 18 LET hd = INT(RND * 8) + 1 * size
  210. 19 LET hp = INT(RND * 8) + 1
  211. LET hp = hp * hd
  212. IF hp = 0 THEN GOTO 19
  213. IF typenum = 10 THEN LET sent$ = "Non-Sentient"
  214. 30 CLS
  215. COLOR 4
  216. PRINT type$; " ";
  217. PRINT legs$; " "; legs2$: COLOR 1
  218. PRINT "Alignment: ";
  219. COLOR 7
  220. PRINT lno$; gne$: COLOR 1
  221. PRINT "Hit Points: ";
  222. COLOR 7
  223. PRINT hp; : COLOR 1: PRINT "", "AC: ";
  224. COLOR 7
  225. PRINT ac; : COLOR 1: PRINT "", "THAC0: ";
  226. COLOR 7
  227. PRINT thac0: COLOR 1
  228. PRINT "Size: ";
  229. COLOR 7
  230. PRINT size$: COLOR 1
  231. PRINT "Frequency: ";
  232. COLOR 7
  233. PRINT freq$: COLOR 1
  234. PRINT "Habitat: ";
  235. COLOR 7
  236. PRINT envirn$: COLOR 1
  237. PRINT "Magic Resistance: ";
  238. COLOR 7
  239. PRINT mageres; "%": COLOR 1
  240. PRINT "Attributes: "
  241. PRINT "     Intelligence : ";
  242. COLOR 7
  243. PRINT intel, "("; sent$; ")": COLOR 1
  244. PRINT "     Strength     : ";
  245. COLOR 7
  246. PRINT stren: COLOR 1
  247. PRINT "     Dexterity    : ";
  248. COLOR 7
  249. PRINT dextr: COLOR 1
  250. PRINT "     Constitution : ";
  251. COLOR 7
  252. PRINT endur: COLOR 1
  253. PRINT "     Wisdom       : ";
  254. COLOR 7
  255. PRINT wisdm: COLOR 1
  256. PRINT "     Charisma     : ";
  257. COLOR 7
  258. PRINT charm: COLOR 1
  259. 37 LET dice = INT(RND * 6) + 1: LET sides = INT(RND * 10) + 1
  260. IF dice > size THEN GOTO 37
  261. PRINT "Attack Damage: ";
  262. COLOR 7
  263. PRINT dice; "D"; sides: COLOR 1
  264. IF typenum = 7 THEN PRINT "Turn As: ";  ELSE GOTO 38
  265. turnas = INT(RND * 8) + 1: COLOR 7
  266. IF turnas = 1 THEN PRINT "Zombie"
  267. IF turnas = 2 THEN PRINT "Skeleton"
  268. IF turnas = 3 THEN PRINT "Wright"
  269. IF turnas = 4 THEN PRINT "Wraith"
  270. IF turnas = 5 THEN PRINT "Ghoul"
  271. IF turnas = 6 THEN PRINT "Spectre"
  272. IF turnas = 7 THEN PRINT "Lich"
  273. IF turnas = 8 THEN PRINT "Special"
  274. COLOR 1: GOTO 39
  275. 38 PRINT
  276. 39 PRINT "Extra Powers: ": COLOR 7
  277. LET yesno = INT(RND * 2) + 1
  278. IF yesno = 1 THEN LET powrs = INT(RND * 4) + 1
  279. IF powrs = 0 THEN PRINT "     None": GOTO 60
  280. 40 LET powrsel = INT(RND * 90) + 1
  281. PRINT "     ";
  282. IF powrsel = 1 THEN PRINT "Regenerate HP"
  283. IF powrsel = 2 THEN PRINT "Deadly Poison"
  284. IF powrsel = 3 THEN PRINT "Petrify Gaze"
  285. IF powrsel = 4 THEN PRINT "Confusion Gaze"
  286. IF powrsel = 5 THEN PRINT "Charm Gaze"
  287. IF powrsel = 6 THEN PRINT "Paralisis Gaze"
  288. IF powrsel = 7 THEN PRINT "Paralisis on Hit"
  289. IF powrsel = 8 THEN PRINT "Owl Bear Hug"
  290. IF powrsel = 9 THEN PRINT "Shambling Mound Engulf"
  291. IF powrsel = 10 THEN PRINT "RND Bonus Attack"
  292. IF powrsel = 11 THEN PRINT "Carrion Stench"
  293. IF powrsel = 12 THEN PRINT "Mummy Fear Aura"
  294. IF powrsel = 13 THEN PRINT "Mummy Disease"
  295. IF powrsel = 14 THEN PRINT "Invulnerable to Normal Weapons"
  296. IF powrsel = 15 THEN PRINT "Half Damage: Cut"
  297. IF powrsel = 16 THEN PRINT "Half Damage: Magic Weapons"
  298. IF powrsel = 17 THEN PRINT "Half Damage: Normal Weapons"
  299. IF powrsel = 18 THEN PRINT "Half Damage: Blunt"
  300. IF powrsel = 19 THEN PRINT "Half Damage: Fire"
  301. IF powrsel = 20 THEN PRINT "Iron Golem MR"
  302. IF powrsel = 21 THEN PRINT "Rakasha MR"
  303. IF powrsel = 22 THEN PRINT "Immune to Dragon Breath"
  304. IF powrsel = 23 THEN PRINT "Immune to Fire"
  305. IF powrsel = 24 THEN PRINT "Dragon Fire"
  306. IF powrsel = 25 THEN PRINT "Dragon Lightning"
  307. IF powrsel = 26 THEN PRINT "Dragon Fear"
  308. IF powrsel = 27 THEN PRINT "Dragon Poison"
  309. IF powrsel = 28 THEN PRINT "Dragon Acid"
  310. IF powrsel = 29 THEN PRINT "Black Pudding Attack"
  311. IF powrsel = 30 THEN PRINT "Blink"
  312. IF powrsel = 31 THEN PRINT "Invisible"
  313. IF powrsel = 32 THEN PRINT "See Invisible"
  314. IF powrsel = 33 THEN PRINT "Displacement"
  315. IF powrsel = 34 THEN PRINT "Slain By Blessed Bolts"
  316. IF powrsel = 35 THEN PRINT "Vulnerable to fire"
  317. IF powrsel = 36 THEN PRINT "Reflectable Gaze"
  318. IF powrsel = 37 THEN PRINT "Immune to Electricity"
  319. IF powrsel = 38 THEN PRINT "Use Mage Spells"
  320. IF powrsel = 39 THEN PRINT "Use Cleric Spells"
  321. IF powrsel = 40 THEN PRINT "Use Ranger Spells"
  322. IF powrsel = 41 THEN PRINT "Drain 1 level"
  323. IF powrsel = 42 THEN PRINT "Drain 2 levels"
  324. IF powrsel = 43 THEN PRINT "Dwarf THAC0"
  325. IF powrsel = 44 THEN PRINT "Reflect Gaze"
  326. IF powrsel = 45 THEN PRINT "Electric Growth"
  327. IF powrsel = 46 THEN PRINT "Cast Shocking Grasp"; : LET q = INT(RND * 10) + 1: PRINT q; "times per day."
  328. IF powrsel = 47 THEN PRINT "Cast Magic Missle"; : LET q = INT(RND * 10) + 1: PRINT q; "times per day."
  329. IF powrsel = 48 THEN PRINT "Cast Lightning Bolt"; : LET q = INT(RND * 5) + 1: PRINT q; "times per day."
  330. IF powrsel = 49 THEN PRINT "Cast Fireball"; : LET q = INT(RND * 5) + 1: PRINT q; "times per day."
  331. IF powrsel = 50 THEN PRINT "Cast Delayed Blast Fireball"; : LET q = INT(RND * 3) + 1: PRINT q; "times per day."
  332. IF powrsel = 51 THEN PRINT "Cast Disentigrate"; : LET q = INT(RND * 5) + 1: PRINT q; "times per day."
  333. IF powrsel = 52 THEN PRINT "Cast Cure Light Wounds"; : LET q = INT(RND * 10) + 1: PRINT q; "times per day."
  334. IF powrsel = 53 THEN PRINT "Cast Diminsion Door"; : LET q = INT(RND * 10) + 1: PRINT q; "times per day."
  335. IF powrsel = 54 THEN PRINT "Cast Invisibility"; : LET q = INT(RND * 10) + 1: PRINT q; "times per day."
  336. IF powrsel = 55 THEN PRINT "Cast Charm Person"; : LET q = INT(RND * 10) + 1: PRINT q; "times per day."
  337. IF powrsel = 56 THEN PRINT "Iron Skin"
  338. IF powrsel = 57 THEN PRINT "Prot. Vs Good"
  339. IF powrsel = 58 THEN PRINT "Prot. Vs Evil"
  340. IF powrsel = 59 THEN PRINT "Prot. Vs Good 10 ft. Radius"
  341. IF powrsel = 60 THEN PRINT "Prot. Vs Evil 10 ft. Radius"
  342. IF powrsel = 61 THEN PRINT "Mirror Readied"
  343. IF powrsel = 62 THEN PRINT "Constitution 19"
  344. IF powrsel = 63 THEN PRINT "Dwarf AC"
  345. IF powrsel = 64 THEN PRINT "Elf MR"
  346. IF powrsel = 65 THEN PRINT "Gnome AC Bonus"
  347. IF powrsel = 66 THEN PRINT "Gnome Thac0"
  348. IF powrsel = 67 THEN PRINT "Half-Elf MR"
  349. IF powrsel = 68 THEN PRINT "Halfling Resist"
  350. IF powrsel = 69 THEN PRINT "Ranger Giant Bonus"
  351. IF powrsel = 70 THEN PRINT "+3 Full Damage"
  352. IF powrsel = 71 THEN PRINT "+4 Full Damage"
  353. IF powrsel = 72 THEN PRINT "Efreet Fire Res"
  354. IF powrsel = 73 THEN PRINT "Immune All Weapons"
  355. IF powrsel = 74 THEN PRINT "Immune to Cold"
  356. IF powrsel = 75 THEN PRINT "Immune Paralyze"
  357. IF powrsel = 76 THEN PRINT "Immune Poison and Paralysis"
  358. IF powrsel = 77 THEN PRINT "Immune Fear"
  359. IF powrsel = 78 THEN PRINT "Immune Sleep and Charm"
  360. IF powrsel = 79 THEN PRINT "Res Fire And Cold"
  361. IF powrsel = 80 THEN PRINT "Immune Weapons <+2"
  362. IF powrsel = 81 THEN PRINT "Immune Weapons <+3"
  363. IF powrsel = 82 THEN PRINT "+2d6 Fire Damage"
  364. IF powrsel = 83 THEN PRINT "+4d6 Fire Damage"
  365. IF powrsel = 84 THEN PRINT "Marilith Attack"
  366. IF powrsel = 85 THEN PRINT "Beholder Attack"
  367. IF powrsel = 86 THEN PRINT "Ghoul Paralisis Attack"
  368. IF powrsel = 87 THEN PRINT "Gorgon Attack"
  369. IF powrsel = 88 THEN PRINT "Hell Hound Breath"
  370. IF powrsel = 89 THEN PRINT "Paralisis Attack"
  371. IF powrsel = 90 THEN PRINT "Phase Spider Poison"
  372. LET powrs = powrs - 1
  373. IF powrs = 0 THEN GOTO 60
  374. GOTO 40
  375. 60 PRINT
  376. COLOR 4
  377. INPUT "Finished"; endyesno$
  378. IF endyesno$ = "YES" THEN END
  379. IF endyesno$ = "Y" THEN END
  380. IF endyesno$ = "y" THEN END
  381. IF endyesno$ = "yes" THEN END
  382. IF endyesno$ = "Yes" THEN END
  383. LET runner = runner - 1
  384. IF runner = 0 THEN CLEAR : GOTO 1
  385. GOTO 2
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.