Advertisement
Guest User

crappy high school rpg

a guest
Oct 9th, 2015
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 141.12 KB | None | 0 0
  1. program moreNewerestRpg (input,output);
  2. uses wincrt,randUnit,monDecl,sunit;
  3. type ItemData = record
  4.                    ItemNum: integer;
  5.                    ItemName: string;
  6.                   end;
  7.      skill = array [1..6] of string;
  8.      pack = array [1..20] of ItemData;
  9.      skillDes = array [1..6] of string;
  10.  
  11.      runes=array [1..4] of integer;
  12. label gamestart;
  13. var runestones:runes;
  14. var skills:skill;
  15. var items:pack;
  16. var maxstrength,maxdefense,speed,defense,strength,hp,mp,maxhp,maxmp,tetra,fire,ice:integer;
  17. var lightning,intelligence,wisdom,fireDef,iceDef,lightningDef,damage:integer;
  18. var class1,name,race,discipline:string;
  19. var level,exp,gainedexp,skilluse,dummy:integer;
  20. var describe:skillDes;
  21.     beastName: string;
  22.     beastMagStr:integer;
  23.     beastStrength:integer;
  24.     beastDefense:integer;
  25.     beasthp:integer;
  26.     beastElement:string;
  27.     expGiven1:integer;
  28.  
  29.     genericA:char;
  30.  
  31. procedure a16;forward;
  32. procedure a17;forward;
  33. procedure a18;forward;
  34. procedure a19;forward;
  35. procedure a20;forward;
  36. procedure b15;forward;
  37. procedure b16;forward;
  38. procedure b17;forward;
  39. procedure b18;forward;
  40. procedure b19;forward;
  41. procedure b20;forward;
  42. procedure c15;forward;
  43. procedure c16;forward;
  44. procedure c17;forward;
  45. procedure c18;forward;
  46. procedure c19;forward;
  47. procedure c20;forward;
  48. procedure d15;forward;
  49. procedure d16;forward;
  50. procedure d17;forward;
  51. procedure d18;forward;
  52. procedure d19;forward;
  53. procedure d20;forward;
  54. procedure d21;forward;
  55. procedure e15;forward;
  56. procedure e16;forward;
  57. procedure e17;forward;
  58. procedure e18;forward;
  59. procedure e19;forward;
  60. procedure e20;forward;
  61. procedure e21;forward;
  62. procedure f15;forward;
  63. procedure f16;forward;
  64. procedure f17;forward;
  65. procedure f18;forward;
  66. procedure f19;forward;
  67. procedure f20;forward;
  68. procedure f21;forward;
  69. procedure f22;forward;
  70. procedure g15;forward;
  71. procedure g16;forward;
  72. procedure g17;forward;
  73. procedure g18;forward;
  74. procedure g19;forward;
  75. procedure g20;forward;
  76. procedure g21;forward;
  77. procedure g22;forward;
  78. procedure g23;forward;
  79. procedure h15;forward;
  80. procedure h16;forward;
  81. procedure h17;forward;
  82. procedure h18;forward;
  83. procedure h19;forward;
  84. procedure h20;forward;
  85. procedure h21;forward;
  86. procedure h22;forward;
  87. procedure h23;forward;
  88. procedure h24;forward;
  89. procedure h25;forward;
  90. procedure h26;forward;
  91. procedure i15;forward;
  92. procedure i16;forward;
  93. procedure i17;forward;
  94. procedure i18;forward;
  95. procedure i19;forward;
  96. procedure i20;forward;
  97. procedure i21;forward;
  98. procedure i22;forward;
  99. procedure i23;forward;
  100. procedure i24;forward;
  101. procedure i25;forward;
  102. procedure i26;forward;
  103. procedure initializeSkills;forward;
  104. procedure chooseClass;forward;
  105. procedure disciplineChoose;forward;
  106. procedure final;forward;
  107.  
  108.  
  109. {|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  110. |||||||||||||||||||||||||char creation and engines||||||||||||||||||||||||||||
  111. ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||}
  112.  
  113. procedure levelup;
  114. begin
  115. exp:=exp+expGiven1;
  116. if (exp=level*500) then
  117. begin
  118.      strength:=strength+1;
  119.      defense:=defense+1;
  120.      maxstrength:=maxstrength+1;
  121.      maxdefense:=maxdefense+1;
  122.      tetra:=tetra+2;
  123.      fire:=fire+1;
  124.      ice:=ice+1;
  125.      lightning:=lightning+1;
  126.      maxhp:=maxhp+10;
  127.      maxmp:=maxmp+7;
  128.      fireDef:=fireDef+2;
  129.      iceDef:=iceDef+2;
  130.      lightningDef:=lightningDef+2;
  131. writeln ('YOU LEVELED UP!');
  132. writeln ('Strength:',strength);
  133. writeln ('Defense:',defense);
  134. if discipline='tetra' then writeln ('Tetra:',tetra);
  135. if discipline='ice' then writeln ('Ice:',ice);
  136. if discipline='fire' then writeln ('Fire:',fire);
  137. if discipline='lightning' then writeln ('Lightning:',lightning);
  138. writeln ('Firedef:',fireDef);
  139. writeln ('Icedef:',iceDef);
  140. writeln ('Lightningdef:',lightningDef);
  141. readln;
  142. clrscr;
  143. end;
  144. end;
  145.  
  146. procedure save;
  147. var f:text;
  148. begin
  149. assign (f,'c:\save.sav');
  150. rewrite (f);
  151. writeln (f,hp);
  152. writeln (f,mp);
  153. writeln (f,maxhp);
  154. writeln (f,maxmp);
  155. writeln (f,strength);
  156. writeln (f,defense);
  157. writeln (f,maxstrength);
  158. writeln (f,maxdefense);
  159. writeln (f,speed);
  160. writeln (f,level);
  161. writeln (f,exp);
  162. for generic:=1 to 20 do;
  163. begin
  164. writeln (f,items[generic].itemName);
  165. end;
  166. for generic:=1 to 20 do;
  167. begin
  168. writeln (f,items[generic].itemNum);
  169. end;
  170. for generic:=1 to 6 do
  171. begin
  172. writeln (f,skills[generic]);
  173. end;
  174. writeln (f,fire);
  175. writeln (f,ice);
  176. writeln (f,tetra);
  177. writeln (f,lightning);
  178. writeln (f,wisdom);
  179. writeln (f,intelligence);
  180. writeln (f,fireDef);
  181. writeln (f,iceDef);
  182. writeln (f,lightningDef);
  183. for generic:=1 to 6 do
  184. begin
  185. writeln (f,describe[generic]);
  186. end;
  187. writeln (f,class1);
  188. writeln (f,discipline);
  189. writeln (f,race);
  190. writeln (f,name);
  191.  
  192. close (f);
  193. writeln ('SAVE COMPLETE');
  194. readln;
  195. clrscr;
  196. end;
  197.  
  198.  
  199. procedure load;
  200. var f:text;
  201. begin
  202. assign (f,'c:\save.sav');
  203. {$I-}
  204. reset (f);
  205. {$I+}
  206. If IOResult <> 0 Then
  207.      Begin
  208.           WriteLn('ERROR: File Not found! (save.sav)');
  209.           readln;
  210.           Exit;
  211.      End;
  212.  
  213.  
  214. readln (f,hp);
  215. readln (f,mp);
  216. readln (f,maxhp);
  217. readln (f,maxmp);
  218. readln (f,strength);
  219. readln (f,defense);
  220. readln (f,maxstrength);
  221. readln (f,maxdefense);
  222. readln (f,speed);
  223. readln (f,level);
  224. readln (f,exp);
  225. for generic:=1 to 20 do;
  226. begin
  227. readln (f,items[generic].itemName);
  228. end;
  229. for generic:=1 to 20 do;
  230. begin
  231. readln (f,items[generic].itemNum);
  232. end;
  233. for generic:=1 to 6 do
  234. begin
  235. readln (f,skills[generic]);
  236. end;
  237. readln (f,fire);
  238. readln (f,ice);
  239. readln (f,tetra);
  240. readln (f,lightning);
  241. readln (f,wisdom);
  242. readln (f,intelligence);
  243. readln (f,fireDef);
  244. readln (f,iceDef);
  245. readln (f,lightningDef);
  246. for generic:=1 to 6 do
  247. begin
  248. readln (f,describe[generic]);
  249. end;
  250. readln (f,class1);
  251. readln (f,discipline);
  252. readln (f,race);
  253. readln (f,name);
  254.  
  255. close (f);
  256. writeln ('LOAD COMPLETE');
  257. readln;
  258. clrscr;
  259.  
  260. end;
  261.  
  262. procedure beastturn;
  263. begin
  264. if beasthp>0 then
  265.                     begin
  266.                     random2;
  267.                      if generic=1 then
  268.                         begin
  269.                          if beaststrength>defense then
  270.                          begin
  271.                          randomDam;
  272.                       damage:=(beaststrength-defense)+rand;
  273.                       writeln ('the beast hits you!');
  274.                       if (rand=8) or (rand=9) or (rand=10) then begin
  275.                          damage:=damage*2;
  276.                          writeln ('CRITICAL HIT!');
  277.                          readln;
  278.                          end;
  279.                       hp:=hp-damage;
  280.                          if hp<0 then hp:=0;
  281.                          writeln ('your hp:',hp);
  282.                          end;
  283.                          if beaststrength<defense then
  284.                          begin
  285.                          writeln ('beast deals no damage');
  286.                          end;
  287.                          readln;
  288.                          clrscr;
  289.                         end;
  290.                      if generic=2 then
  291.                      begin
  292.                           if beastElement='fire' then
  293.                            begin
  294.                             writeln ('The beast attacks with flame magic!');
  295.                             hp:=hp-(beastMagstr-fireDef);
  296.                            if hp<0 then hp:=0;
  297.                            writeln ('hp:',hp);
  298.                            readln;
  299.                            clrscr;
  300.                            end;
  301.                           if beastElement='ice' then
  302.                            begin
  303.                             writeln ('The beast attacks you with ice magic!');
  304.                             hp:=hp-(beastMagstr-iceDef);
  305.                            if hp<0 then hp:=0;
  306.                            writeln ('hp:',hp);
  307.                            readln;
  308.                            clrscr;
  309.                            end;
  310.                           if beastElement='lightning' then
  311.                            begin
  312.                             writeln ('The beast uses lightning magic!');
  313.                             hp:=hp-(beastMagstr-lightningDef);
  314.                            if hp<0 then hp:=0;
  315.                            writeln ('hp:',hp);
  316.                            readln;
  317.                            clrscr;
  318.                            end;
  319.  
  320.                     end;
  321.                     end;
  322.                     end;
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330. procedure specialTechlev2;
  331. begin
  332. end;
  333.  
  334. procedure specialTechlev3;
  335. begin
  336. end;
  337.  
  338. procedure specialTechlev4;
  339. begin
  340. end;
  341.  
  342. procedure specialTechlev5;
  343. begin
  344. end;
  345.  
  346. procedure specialTechlev6;
  347. begin
  348. end;
  349.  
  350. procedure specialTechlev1;
  351. begin
  352. if skilluse=2 then
  353. begin
  354. writeln ('you have already used your special technique this fight!');
  355. end;
  356. if skilluse=1 then
  357. begin;
  358. skilluse:=2;
  359. writeln (describe[1]);
  360. if class1='elemental' then
  361. begin
  362. mp:=mp-10;
  363. writeln ('you expended 10 mp');
  364. writeln ('mp left:',mp);
  365. skilluse:=1;
  366. end;
  367. beasthp:=beasthp-((intelligence+strength)-beastDefense);
  368. if beasthp<0 then beasthp:=0;
  369. writeln ('beast''s hp:',beasthp);
  370. end;
  371. end;
  372.  
  373. procedure UsePotion;
  374. begin
  375. if items[generic].ItemNum>0 then
  376. begin
  377. writeln ('you regain 50 hp!');
  378. items[generic].ItemNum:=items[generic].ItemNum-1;
  379. hp:=hp+50;
  380. if hp>maxhp then hp:=maxhp;
  381. end;
  382. if (items[generic].ItemNum <= 0) then
  383. begin
  384. items[generic].ItemName:=' ';
  385. items[generic].ItemNum:=dummy;
  386. end;
  387. end;
  388.  
  389. procedure UseElixir;
  390. begin
  391. if items[generic].ItemNum>0 then
  392. begin
  393. writeln ('you gain 20 hp and mp!');
  394. hp:=hp+20;
  395. mp:=mp+20;
  396. if hp>maxhp then hp:=maxhp;
  397. if mp>maxmp then mp:=maxmp;
  398. end;
  399. if items[generic].ItemNum<1 then
  400. begin
  401. items[generic].ItemName:=' ';
  402. items[generic].ItemNum:=dummy;
  403. end;
  404. end;
  405.  
  406. procedure UseEther;
  407. begin
  408. if items[generic].ItemNum>0 then
  409. begin
  410. writeln ('you gain 20 mp!');
  411. mp:=mp+20;
  412. if mp>maxmp then mp:=maxmp;
  413. end;
  414. if items[generic].ItemNum<1 then
  415. begin
  416. items[generic].ItemName:=' ';
  417. items[generic].ItemNum:=dummy;
  418. end;
  419. end;
  420.  
  421. procedure BattleEngine;
  422. begin
  423. writeln ('The wicked beast ',beastname,' attacks.  Defend yourself in battle!');
  424. skilluse:=1;
  425. repeat
  426. begin
  427.      writeln('*************>ACTION SELECT<***************');
  428.      writeln('1-attack,2-skills,3-item');
  429.      readln (generic);
  430.      case generic of
  431.           1:begin
  432.                  random2;
  433.  
  434.                      if rand2=1 then
  435.                         begin
  436.                              writeln ('you missed!');
  437.                              readln;
  438.                              clrscr;
  439.                              beastturn;
  440.                         end;
  441.                     if (rand2=2) or (rand2=3) then
  442.                  begin
  443.                       if strength>beastdefense then
  444.                       begin
  445.                       randomDam;
  446.                       damage:=(strength-beastdefense)+rand;
  447.                       writeln ('you attack the beast');
  448.                       if (rand=10) or (rand=9) or (rand=8) then begin
  449.                          damage:=damage*2;
  450.                          writeln ('CRITICAL HIT!');
  451.                          readln;
  452.                          end;
  453.                       beasthp:=beasthp-damage;
  454.                       if beasthp<0 then beasthp:=0;
  455.                       writeln ('the monster''s hp:',beasthp);
  456.                       beastturn;
  457.                       end;
  458.                       if strength<beastdefense then
  459.                       begin
  460.                       writeln ('no damage');
  461.                       beastturn;
  462.                       end;
  463.                       readln;
  464.                       clrscr;
  465.                    
  466.                  end;
  467.                  end;
  468.  
  469.           2:begin
  470.                  writeln ('choose a tech level');
  471.                  writeln ('1:',skills[1]);
  472.                  for generic:=2 to 6 do
  473.                      if not (skills[generic]=' ') then writeln (generic,':',skills[generic]);
  474.                  readln (generic);
  475.                  case generic of
  476.                       1:specialTechlev1;
  477.                       2:specialTechlev2;
  478.                       3:specialTechlev3;
  479.                       4:specialTechlev4;
  480.                       5:specialTechlev5;
  481.                       6:specialTechlev6;
  482.                  end;
  483.                   beastturn;
  484.      end;
  485.      3:begin
  486.             generic:=1;
  487.             repeat
  488.  
  489.  
  490.                      writeln (generic,'-',items[generic].ItemName,':',items[generic].ItemNum);
  491.                      generic:=generic+1;
  492.             until (items[generic].ItemName=' ');
  493.      readln (generic);
  494.      if items[generic].ItemName='Potion' then UsePotion;
  495.      if items[generic].ItemName='Ether' then UseEther;
  496.      if items[generic].ItemName='Elixir' then UseElixir;
  497.        if beasthp>0 then
  498.                     begin
  499.                     beastturn;
  500.        end;
  501.      end;
  502.   end;
  503.   end;
  504.  
  505.   until (beasthp<1) or (hp<1);
  506.   if (beasthp<1) then levelup;
  507.   if (hp<1) then donewincrt;
  508.   end;
  509.  
  510.  
  511. procedure raceChoose; (*creates a character's race*)
  512. begin
  513. writeln ('*****************************************');
  514. writeln ('#############Race Selection##############');
  515. writeln ('*****************************************');
  516. writeln ('welcome to the character creation menu');
  517. writeln ('your choices here will effect the overall effectiveness of your game character!');
  518. writeln ('please choose a race:');
  519. writeln ('1-Elf,2-Man,3-HalfElven,4-BeastMan'); {chooses race}
  520. readln (generic);
  521.        case generic of
  522.             1:begin
  523.               race:='elf'; {sets race and basic race stats}
  524.               maxhp:=100;
  525.               hp:=maxhp;
  526.  
  527.               maxstrength:=5;
  528.               maxdefense:=5;
  529.               defense:=maxdefense;
  530.               strength:=maxstrength;
  531.               speed:=15;
  532.               fire:=15;
  533.               ice:=15;
  534.               lightning:=15;
  535.               fireDef:=15;
  536.               iceDef:=15;
  537.               lightningDef:=15;
  538.               intelligence:=15;
  539.               wisdom:=15;
  540.             end;
  541.             2:begin
  542.                    maxhp:=50;
  543.                    hp:=maxhp;
  544.                    race:='Man';
  545.                    maxstrength:=10;
  546.                    maxdefense:=10;
  547.                    defense:=maxdefense;
  548.                    strength:=maxstrength;
  549.                    speed:=7;
  550.                    fire:=10;
  551.                    ice:=10;
  552.                    lightning:=10;
  553.                    intelligence:=20;
  554.                    wisdom:=2;
  555.                    fireDef:=10;
  556.               iceDef:=10;
  557.               lightningDef:=10;
  558.               end;
  559.             3:begin
  560.                    race:='HalfElven';
  561.                    maxhp:=75;
  562.                    hp:=maxhp;
  563.                    maxstrength:=10;
  564.                    maxdefense:=10;
  565.                    speed:=13;
  566.                    ice:=14;
  567.                    fire:=12;
  568.                    lightning:=13;
  569.                    intelligence:=15;
  570.                    wisdom:=15;
  571.                    fireDef:=13;
  572.               iceDef:=13;
  573.               lightningDef:=13;
  574.  
  575.              end;
  576.              4:begin
  577.                     race:='BeastMan';
  578.                     maxhp:=45;
  579.                     hp:=maxhp;
  580.                     maxstrength:=20;
  581.                     maxdefense:=15;
  582.                     defense:=maxdefense;
  583.                     strength:=maxstrength;
  584.                     speed:=17;
  585.                     ice:=0;
  586.                     lightning:=0;
  587.                     fire:=0;
  588.                     wisdom:=0;
  589.                     intelligence:=25;
  590.                     fireDef:=0;
  591.               iceDef:=0;
  592.               lightningDef:=0;
  593.               end;
  594.          end;
  595.  
  596. end;
  597.  
  598. procedure initializeSkills;{initializes the skills array}
  599. begin
  600. for generic:=1 to 6 do
  601.     skills[generic]:=' ';
  602. end;
  603.  
  604. procedure chooseClass;
  605. begin                  {chooose your class}
  606. writeln ('*************************************************');
  607. writeln ('###############Class Selection###################');
  608. writeln ('*************************************************');
  609. writeln ('here you will choose the type of fighter your character will be');
  610. writeln ('1-warrior,2-archer,3-elemental');
  611. readln (generic);
  612.       case generic of
  613.            1:begin
  614.                   class1:='warrior';
  615.                   maxstrength:=maxstrength+5;
  616.                   maxdefense:=maxdefense+5;      {sets class and stats}
  617.                   speed:=speed-2;
  618.              end;
  619.            2:begin
  620.                   class1:='archer';
  621.                   speed:=speed+3;
  622.                   intelligence:=intelligence+3;
  623.              end;
  624.            3:begin
  625.                   class1:='elemental';
  626.                   wisdom:=wisdom+4;
  627.                   fireDef:=fireDef+2;
  628.               iceDef:=iceDef+2;
  629.               lightningDef:=lightningDef+2;
  630.              end;
  631. end;
  632. end;
  633.  
  634. procedure disciplineChoose;              {choose discipline(affects skills and elemental stats)}
  635. begin
  636. writeln ('********************************************');
  637. writeln ('##############Select Discipline#############');
  638. writeln ('********************************************');
  639. writeln ('here you must choose the specific discipline that you practice within your class');
  640. if class1='warrior' then
  641. begin
  642.      writeln ('1-brute,2-strategist');
  643.      readln (generic);
  644.      case generic of
  645.           1:begin
  646.                  discipline:='brute';
  647.                  skills[1]:='hammersmash';
  648.           describe[1]:='You charge toward your opponent, right hand wrapped around left fist. You leap into the air and '+
  649.           'smash your clublike pair of hands straight into the enemy''s skull!';
  650.  
  651.             end;
  652.           2:begin
  653.                  discipline:='strategist';
  654.                  skills[1]:='dash';
  655.                  describe[1]:='You run as fast as you can, building up speed for an attack. '+
  656.                  'You hear a sonic boom just as you hit your opponent.  The air can be heard '+
  657.                  'leaving their lungs with the speed of a hurricane.';
  658.  
  659.             end;
  660.      end;
  661. end;
  662. if class1='archer' then
  663. begin
  664.      writeln ('you cannot choose a special discipline for this type of character');
  665.      class1:='archer';
  666.      skills[1]:='snipe';
  667.      describe[1]:='You sneak away quietly, and climb a tree.  As you take aim, your oppononent '+
  668.      'is blissfully unaware of it''s impendending doom. You fire a direct hit!';
  669.  
  670. end;
  671. if class1='elemental' then
  672. begin
  673. maxmp:=50 ;
  674. mp:=maxmp;
  675. writeln ('you may be a 1-fire,2-ice,3-lightning,4-TETRA elemental');
  676. readln (generic);
  677.        case generic of
  678.             1:begin
  679.                    discipline:='fire';
  680.                    fire:=fire+10;
  681.                    skills[1]:='fireball';
  682.               iceDef:=iceDef+3;
  683.               lightningDef:=lightningDef-5;
  684.               describe[1]:='your fingertips glow red as your chant begins.'+
  685.               'a small flame flickers into life on you fingertips. '+
  686.               'you smile as you are now holding '+
  687.               'a large ball of fire. "FIREBALL" is the last word of your chant as you fling '+
  688.               'it at your enemy!';
  689.               end;
  690.             2:begin
  691.                    discipline:='ice';
  692.                    ice:=ice+10;
  693.                    skills[1]:='crystal crosses';
  694.                    fireDef:=fireDef-5;
  695.               lightningDef:=lightningDef+3;
  696.               describe[1]:='Beautiful crosses of ice begin to form on your fingertips. '+
  697.               'an ancient Ice mage''s incantations allow you to cast this spell.  the '+
  698.               'final phrases of the spell leave you lips "Deadly Beauty, CRYSTAL CROSSES!'+
  699.               'the ice flies towards your opponent, cutting it up and down.  as the wounds close '+
  700.               'the ice begins to melt. the intricate designs so evident a moment ago, become '+
  701.               'like every other snowflake when heated, water.';
  702.               end;
  703.             3:begin
  704.                    discipline:='lightning';
  705.                    lightning:=lightning+10;
  706.                    skills[1]:='bolt blade';
  707.                    fireDef:=fireDef+3;
  708.               iceDef:=iceDef-5;
  709.               describe[1]:='a flash of lightning rents the sky apart. yours is the raw power '+
  710.               'of nature''s most deadly creation.  The blade of the sky hurtles towards earth, '+
  711.               'piercing the heart of your opponent.';
  712.               end;
  713.             4:begin
  714.                    discipline:='tetra';
  715.                    lightning:=lightning+5;
  716.                    fire:=fire+5;
  717.                    ice:=ice+5;
  718.                    tetra:=45;
  719.                    skills[1]:='Grand blade of Gaia';
  720.                    describe[1]:='the earth raises a mighty jagged crag of rock for your.  lightining '+
  721.                    'pours from the sky, carving it into a perfect blade.  as gaia''s warrior '+
  722.                    'you use your magic to wield it.  you strike your opponent with the might of '+
  723.                    'the mother of all.';
  724.  
  725.               end;
  726.          end;
  727.  
  728. end;
  729. end;
  730.  
  731. procedure final;
  732. begin
  733. level:=1;
  734. writeln ('finally, name your character!');
  735. readln (name);
  736. write (name, ', the ',discipline,' ',class1,' level ',level,' of the ');
  737. if race = 'Man'
  738. then writeln ('men.');
  739. if race = 'elf'
  740. then writeln ('elves.');
  741. if race = 'HalfElven'
  742. then writeln ('half-elves.');
  743. if race = 'BeastMan'
  744. then writeln ('beast-men.');
  745. writeln ('HP:',hp);
  746. writeln ('MP:',mp);
  747. writeln ('maxstrength:',maxstrength);
  748. writeln ('maxdefense:',maxdefense);
  749. writeln ('Speed:',speed);
  750. writeln ('Intelligence:',intelligence);
  751. writeln ('Wisdom:',wisdom);
  752. writeln ('elemental stats:');
  753. writeln ('strength-Fire:',fire,' Ice:',ice,' Lightning:',lightning);
  754. if discipline='tetra' then writeln ('TetraElemental strength:',tetra);
  755. writeln ('your beginner''s skill is:',skills[1]);
  756. readln;
  757. clrscr;
  758. end;
  759.  
  760.  
  761. {(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
  762. (*)(*)(*)(*)(*)AREAS(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)}
  763. procedure castle;
  764. begin
  765.  
  766. minmon:=1;
  767. maxmon:=6;
  768. monrand;
  769. beaststrength:=monsters[generic].beaststrength1;
  770. beastdefense:=monsters[generic].beastdefense1;
  771. beastname:=monsters[generic].beastname1;
  772. beastMagStr:=monsters[generic].beastMagStr1;
  773. beasthp:=monsters[generic].beasthp1;
  774. beastelement:=monsters[generic].beastelement1;
  775. expGiven1:=monsters[generic].expGiven;
  776. random2;
  777. if (generic = 3) or (generic=1) then
  778. BattleEngine;
  779.  
  780. writeln ('Thou dost standeth in a venerable castle, but all be barred to thee but the gates!');
  781. writeln ('The castle doth be the home of thine father, who thou verily forsook to seek thine destiny.');
  782. writeln ('To the north thine see but impassable forest, to the west, an infinite plain.');
  783. writeln ('to the south, an aged canyon beyond scope of time, to the east, the high mountain, sentinal of the land.');
  784. genericA:=readkey;
  785. case genericA of
  786.      'n':begin
  787.               writeln ('I toldest thee that ''twas impassable, thou fool! It would do thee well to listen to thine');
  788.               writeln ('narrators! now try again! <presseth RETURN>');
  789.               readln;
  790.               clrscr;
  791.               castle;
  792.          end;
  793.      's':begin
  794.          if (runestones[1]=2) and (runestones[2]=2) then
  795.             begin
  796.                  writeln ('This way beeth sealed to one so inexperienced!');
  797.                  readln;
  798.                  clrscr;
  799.                  castle;
  800.             end;
  801.          if (runestones[1]=1) and (runestones[1]=1) then
  802.             begin
  803.                  clrscr;
  804.                  {j16}castle;
  805.  
  806.             end;
  807.          end;
  808.      'e':begin
  809.             if (runestones[1]=2) then
  810.              begin
  811.                   writeln ('Thou art barred from this path, for thou knoweth not the strength!');
  812.                   readln;
  813.                   clrscr;
  814.                   castle;
  815.              end;
  816.             if (runestones[1]=1) then
  817.             begin
  818.                  clrscr;
  819.                  {k15}castle;
  820.  
  821.             end;
  822.          end;
  823.      'w':begin
  824.               begin
  825.               clrscr;
  826.               i15;
  827.  
  828.               end;
  829.          end;
  830.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  831.                                                   writeln ('thou art not even typing proper letters moron!');
  832.                                                   readln;
  833.                                                   clrscr;
  834.                                                   castle;
  835.                                                   end;
  836. end;
  837. end;
  838.  
  839. procedure e21;
  840. begin
  841. minmon:=1;
  842. maxmon:=6;
  843. monrand;
  844. beaststrength:=monsters[generic].beaststrength1;
  845. beastdefense:=monsters[generic].beastdefense1;
  846. beastname:=monsters[generic].beastname1;
  847. beastMagStr:=monsters[generic].beastMagStr1;
  848. beasthp:=monsters[generic].beasthp1;
  849. beastelement:=monsters[generic].beastelement1;
  850. expGiven1:=monsters[generic].expGiven;
  851. random2;
  852. if (generic = 3) or (generic=1) then
  853. battleEngine;
  854. writeln ('you dip your feet in the cool ocean.  youd drink, but you just stuck your nasty feet in there!');
  855. writeln ('you can go north east and west');
  856. genericA:=readkey;
  857. clrscr;
  858. case genericA of
  859.      'n':e20;
  860.      's':begin
  861.                                                                 writeln ('cant go there');
  862.                                                                 readln;
  863.                                                                 clrscr;
  864.                                                                 e21;
  865.                                                            end;
  866.      'e':f21;
  867.      'w':d21;
  868.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  869.                                                                 writeln ('tis not a real letter fool!');
  870.                                                                 readln;
  871.                                                                 clrscr;
  872.                                                                 e21;
  873.                                                            end;
  874. end;                                                      
  875. end;
  876.  
  877.  
  878. procedure i15;
  879. begin
  880. minmon:=1;
  881. maxmon:=6;
  882. monrand;
  883. beaststrength:=monsters[generic].beaststrength1;
  884. beastdefense:=monsters[generic].beastdefense1;
  885. beastname:=monsters[generic].beastname1;
  886. beastMagStr:=monsters[generic].beastMagStr1;
  887. beasthp:=monsters[generic].beasthp1;
  888. beastelement:=monsters[generic].beastelement1;
  889. expGiven1:=monsters[generic].expGiven;
  890. random2;
  891. if (generic = 3) or (generic=1) then
  892. battleEngine;
  893.  
  894. writeln ('Thou art standing in a vast plains.  The north be impassable due to the');
  895. writeln ('large forest that doth dwellest there.  east be the castle, that thou');
  896. writeln ('once lived in.  to the west be more plains, and the same to the south!');
  897. genericA:=readkey;
  898. case genericA of
  899.      'n':begin
  900.               writeln ('I toldeth thee ''twas not passable!  listen to thine narrators!');
  901.               readln;
  902.               clrscr;
  903.               i15;
  904.      end;
  905.      's':begin
  906.               clrscr;
  907.               i16;
  908.      end;
  909.      'e':begin
  910.               clrscr;
  911.          castle;
  912.          end;
  913.      'w':begin
  914.               clrscr;
  915.               h15;
  916.      end;
  917.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  918.                                                                 writeln ('thou art not typing sense!');
  919.                                                                 readln;
  920.                                                                 clrscr;
  921.                                                                 i15;
  922.                                                                 end;
  923. end;
  924. end;
  925.  
  926. procedure h15;
  927. begin
  928. minmon:=1;
  929. maxmon:=6;
  930. monrand;
  931. beaststrength:=monsters[generic].beaststrength1;
  932. beastdefense:=monsters[generic].beastdefense1;
  933. beastname:=monsters[generic].beastname1;
  934. beastMagStr:=monsters[generic].beastMagStr1;
  935. beasthp:=monsters[generic].beasthp1;
  936. beastelement:=monsters[generic].beastelement1;
  937. expGiven1:=monsters[generic].expGiven;
  938. random2;
  939. if (generic = 3) or (generic=1) then
  940. battleEngine;
  941.  
  942. writeln ('You stand in an area of vast plains.  You feel a great calm sweep over you as');
  943. writeln ('you stand on the threshold of the world.  To the north is an entrance to a great');
  944. writeln ('forest but it is blocked by a giant log, to the east west and south is more plains.');
  945. genericA:=readkey;
  946. clrscr;
  947. case genericA of
  948.      'n':{h14}h15;
  949.      's':h16;
  950.      'e':i15;
  951.      'w':g15;
  952.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  953.                                                                 writeln ('thou art not typing sense!');
  954.                                                                 readln;
  955.                                                                 clrscr;
  956.                                                                 h15;
  957.                                                             end;
  958. end;
  959. end;
  960.  
  961. procedure f15;
  962. begin
  963. minmon:=1;
  964. maxmon:=6;
  965. monrand;
  966. beaststrength:=monsters[generic].beaststrength1;
  967. beastdefense:=monsters[generic].beastdefense1;
  968. beastname:=monsters[generic].beastname1;
  969. beastMagStr:=monsters[generic].beastMagStr1;
  970. beasthp:=monsters[generic].beasthp1;
  971. beastelement:=monsters[generic].beastelement1;
  972. expGiven1:=monsters[generic].expGiven;
  973. random2;
  974. if (generic = 3) or (generic=1) then
  975. battleEngine;
  976.  
  977. writeln ('The plains truly earn their name of Infinite Pasture, since you cannot see');
  978. writeln ('anything but grass and flowers for miles.  Plains extend in all directions.');
  979. writeln ('list directions available');
  980. genericA:=readkey;
  981. clrscr;
  982. case genericA of
  983.      'n':{f14}f15;
  984.      's':f16;
  985.      'e':g15;
  986.      'w':e15;
  987.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  988.                                                                 writeln ('Thou art not too bright, art thou?');
  989.                                                                 readln;
  990.                                                                 clrscr;
  991.                                                                 f15;
  992.                                                            end;
  993. end;
  994. end;
  995.  
  996. procedure e15;
  997. begin
  998. minmon:=1;
  999. maxmon:=6;
  1000. monrand;
  1001. beaststrength:=monsters[generic].beaststrength1;
  1002. beastdefense:=monsters[generic].beastdefense1;
  1003. beastname:=monsters[generic].beastname1;
  1004. beastMagStr:=monsters[generic].beastMagStr1;
  1005. beasthp:=monsters[generic].beasthp1;
  1006. beastelement:=monsters[generic].beastelement1;
  1007. expGiven1:=monsters[generic].expGiven;
  1008. random2;
  1009. if (generic = 3) or (generic=1) then
  1010. battleEngine;
  1011.  
  1012. writeln ('You hear the wind gently blowing through the grass.  The sound and sensations of the');
  1013. writeln ('field very calming.  All directions lead to plains!');
  1014. genericA:=readkey;
  1015. clrscr;
  1016. case genericA of
  1017.      'n':{e14}E15;
  1018.      's':e16;
  1019.      'e':f15;
  1020.      'w':d15;
  1021.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1022.                                                                 writeln ('thou art a frickin'' idiot!');
  1023.                                                                 readln;
  1024.                                                                 clrscr;
  1025.                                                                 e15;
  1026.                                                            end;
  1027. end;
  1028. end;
  1029.  
  1030. procedure d15;
  1031. begin
  1032. minmon:=1;
  1033. maxmon:=6;
  1034. monrand;
  1035. beaststrength:=monsters[generic].beaststrength1;
  1036. beastdefense:=monsters[generic].beastdefense1;
  1037. beastname:=monsters[generic].beastname1;
  1038. beastMagStr:=monsters[generic].beastMagStr1;
  1039. beasthp:=monsters[generic].beasthp1;
  1040. beastelement:=monsters[generic].beastelement1;
  1041. expGiven1:=monsters[generic].expGiven;
  1042. random2;
  1043. if (generic = 3) or (generic=1) then
  1044. battleEngine;
  1045.  
  1046. writeln ('In the very far distance thou can see a town (it lies west).  all other directions are more plains!');
  1047. genericA:=readkey;
  1048. clrscr;
  1049. case genericA of
  1050.      'n':{d14}d15;
  1051.      's':d16;
  1052.      'e':e15;
  1053.      'w':c15;
  1054.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1055.                                                                 writeln ('stupid fool, you are an idiot!');
  1056.                                                                 readln;
  1057.                                                                 clrscr;
  1058.                                                                 d15;
  1059.                                                            end;
  1060. end;
  1061. end;
  1062.  
  1063. procedure c15;
  1064. begin
  1065. minmon:=1;
  1066. maxmon:=6;
  1067. monrand;
  1068. beaststrength:=monsters[generic].beaststrength1;
  1069. beastdefense:=monsters[generic].beastdefense1;
  1070. beastname:=monsters[generic].beastname1;
  1071. beastMagStr:=monsters[generic].beastMagStr1;
  1072. beasthp:=monsters[generic].beasthp1;
  1073. beastelement:=monsters[generic].beastelement1;
  1074. expGiven1:=monsters[generic].expGiven;
  1075. random2;
  1076. if (generic = 3) or (generic=1) then
  1077. battleEngine;
  1078.  
  1079. writeln ('The town in the west grows closer.  Again the plains envelop thee.');
  1080. genericA:=readkey;
  1081. clrscr;
  1082. case genericA of
  1083.      'n':{c14}c15;
  1084.      's':c16;
  1085.      'e':d15;
  1086.      'w':b15;
  1087.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1088.                                                                 writeln ('thou art an idiot, type real letters!');
  1089.                                                                 readln;
  1090.                                                                 clrscr;
  1091.                                                                 c15;
  1092.                                                            end;
  1093.  
  1094. end;
  1095. end;
  1096.  
  1097. procedure b15;
  1098. begin
  1099. minmon:=1;
  1100. maxmon:=6;
  1101. monrand;
  1102. beaststrength:=monsters[generic].beaststrength1;
  1103. beastdefense:=monsters[generic].beastdefense1;
  1104. beastname:=monsters[generic].beastname1;
  1105. beastMagStr:=monsters[generic].beastMagStr1;
  1106. beasthp:=monsters[generic].beasthp1;
  1107. beastelement:=monsters[generic].beastelement1;
  1108. expGiven1:=monsters[generic].expGiven;
  1109. random2;
  1110. if (generic = 3) or (generic=1) then
  1111. battleEngine;
  1112.  
  1113. writeln ('You stand at the gate to a small village, which seems to have been burnt to the ground.  The');
  1114. writeln ('Necromancer''s symbol lies at the gate.  this is his work.  all other directions are plains.');
  1115. genericA:=readkey;
  1116. clrscr;
  1117. case genericA of
  1118.      'n':{b14}b15;
  1119.      's':b16;
  1120.      'e':c15;
  1121.      'w':{portGate}b15;
  1122.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1123.                                                                 writeln ('Type sense pitious knave!');
  1124.                                                                 readln;
  1125.                                                                 clrscr;
  1126.                                                                 b15;
  1127.                                                            end;
  1128. end;
  1129. end;
  1130.  
  1131. procedure k15;
  1132. begin
  1133. minmon:=1;
  1134. maxmon:=6;
  1135. monrand;
  1136. beaststrength:=monsters[generic].beaststrength1;
  1137. beastdefense:=monsters[generic].beastdefense1;
  1138. beastname:=monsters[generic].beastname1;
  1139. beastMagStr:=monsters[generic].beastMagStr1;
  1140. beasthp:=monsters[generic].beasthp1;
  1141. beastelement:=monsters[generic].beastelement1;
  1142. expGiven1:=monsters[generic].expGiven;
  1143. random2;
  1144. if (generic = 3) or (generic=1) then
  1145. battleEngine;
  1146.  
  1147. writeln ('You stand on the eastern end of the castle.  the eastern path is cut off by river, and the north by');
  1148. writeln ('forest, the west goes back to the castle, and the south follows the river''course.');
  1149. writeln ('list directions available');
  1150. genericA:=readkey;
  1151. clrscr;
  1152. case genericA of
  1153.      'n':begin
  1154.               writeln ('told ya it was impassable');
  1155.               k15;
  1156.               end;
  1157.      's':{k16}k15;
  1158.      'e':begin
  1159.               writeln ('told ya it was impassable');
  1160.               k15;
  1161.               end;
  1162.      'w':castle;
  1163.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1164.                                                                 writeln ('type sense fool!');
  1165.                                                                 k15;
  1166.                                                                 end;
  1167. end;
  1168. end;
  1169.  
  1170. procedure m15;
  1171. begin
  1172. minmon:=1;
  1173. maxmon:=6;
  1174. monrand;
  1175. beaststrength:=monsters[generic].beaststrength1;
  1176. beastdefense:=monsters[generic].beastdefense1;
  1177. beastname:=monsters[generic].beastname1;
  1178. beastMagStr:=monsters[generic].beastMagStr1;
  1179. beasthp:=monsters[generic].beasthp1;
  1180. beastelement:=monsters[generic].beastelement1;
  1181. expGiven1:=monsters[generic].expGiven;
  1182. random2;
  1183. if (generic = 3) or (generic=1) then
  1184. battleEngine;
  1185.  
  1186. writeln ('you stand on a rocky mountain, chilly from the thin air. only the north and south are passable.');
  1187. writeln ('list directions available');
  1188. genericA:=readkey;
  1189. clrscr;
  1190. case genericA of
  1191.      'n':{m14}m15;
  1192.      's':{m16}m15;
  1193.      'e':begin writeln ('cannot pass');
  1194.                m15;
  1195.                end;
  1196.      'w':begin
  1197.               writeln ('cannot pass');
  1198.               m15;
  1199.               end;
  1200.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1201.                                                                 writeln ('tis not a real letter fool!');
  1202.                                                                 readln;
  1203.                                                                 clrscr;
  1204.                                                                 m15;
  1205.                                                            end;
  1206. end;
  1207. end;
  1208.  
  1209. procedure n15;
  1210. begin
  1211. minmon:=1;
  1212. maxmon:=6;
  1213. monrand;
  1214. beaststrength:=monsters[generic].beaststrength1;
  1215. beastdefense:=monsters[generic].beastdefense1;
  1216. beastname:=monsters[generic].beastname1;
  1217. beastMagStr:=monsters[generic].beastMagStr1;
  1218. beasthp:=monsters[generic].beasthp1;
  1219. beastelement:=monsters[generic].beastelement1;
  1220. expGiven1:=monsters[generic].expGiven;
  1221. random2;
  1222. if (generic = 3) or (generic=1) then
  1223. battleEngine;
  1224.  
  1225. writeln ('you are on a jutting ledge of the mountain.  you can only go east.');
  1226. genericA:=readkey;
  1227. clrscr;
  1228. case genericA of
  1229.      'n':begin writeln ('nope'); n15; end;
  1230.      's':begin writeln ('nope'); n15; end;
  1231.      'e':{o15}n15;
  1232.      'w':begin writeln ('nope'); n15; end;
  1233.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1234.                                                                 writeln ('tis not a real letter fool!');
  1235.                                                                 readln;
  1236.                                                                 clrscr;
  1237.                                                                 n15;
  1238.                                                                 end;
  1239. end;
  1240. end;
  1241.  
  1242. procedure o15;
  1243. begin
  1244. minmon:=1;
  1245. maxmon:=6;
  1246. monrand;
  1247. beaststrength:=monsters[generic].beaststrength1;
  1248. beastdefense:=monsters[generic].beastdefense1;
  1249. beastname:=monsters[generic].beastname1;
  1250. beastMagStr:=monsters[generic].beastMagStr1;
  1251. beasthp:=monsters[generic].beasthp1;
  1252. beastelement:=monsters[generic].beastelement1;
  1253. expGiven1:=monsters[generic].expGiven;
  1254. random2;
  1255. if (generic = 3) or (generic=1) then
  1256. battleEngine;
  1257.  
  1258. writeln ('Thou stand upon a rocky mountain path.  to the west a large rock juts out of the face of the mountain.');
  1259. writeln ('the north and south continue the mountain path, while the east cannot be passed, though you can see the');
  1260. writeln ('road over a ridge.');
  1261. genericA:=readkey;
  1262. clrscr;
  1263. case genericA of
  1264.      'n':{o14}o15;
  1265.      's':{o16}o15;
  1266.      'e':begin; writeln ('tis not passable'); readln; clrscr; o15; end;
  1267.      'w':n15;
  1268.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1269.                                                                 writeln ('tis not a real letter fool!');
  1270.                                                                 readln;
  1271.                                                                 clrscr;
  1272.                                                                 o15;
  1273.                                                                 end;
  1274. end;
  1275. end;
  1276.  
  1277. procedure p15;
  1278. begin
  1279. minmon:=1;
  1280. maxmon:=6;
  1281. monrand;
  1282. beaststrength:=monsters[generic].beaststrength1;
  1283. beastdefense:=monsters[generic].beastdefense1;
  1284. beastname:=monsters[generic].beastname1;
  1285. beastMagStr:=monsters[generic].beastMagStr1;
  1286. beasthp:=monsters[generic].beasthp1;
  1287. beastelement:=monsters[generic].beastelement1;
  1288. expGiven1:=monsters[generic].expGiven;
  1289. random2;
  1290. if (generic = 3) or (generic=1) then
  1291. battleEngine;
  1292.  
  1293. writeln ('you still stand on the mountainside, surrounded by rocks and naught else.  thou may travel north and');
  1294. writeln ('south, but the east and west are too steep for travel.');
  1295. genericA:=readkey;
  1296. clrscr;
  1297. case genericA of
  1298.      'n':{p14}p15;
  1299.      's':{p16}p15;
  1300.      'e':begin
  1301.               writeln ('tis too steep for a knave like you!');
  1302.               readln;
  1303.               clrscr;
  1304.               p15;
  1305.          end;
  1306.      'w':begin
  1307.               writeln ('tis too steep for a knave like you!');
  1308.               readln;
  1309.               clrscr;
  1310.               p15;
  1311.          end;
  1312.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1313.                                                                 writeln ('tis not a real letter fool!');
  1314.                                                                 readln;
  1315.                                                                 clrscr;
  1316.                                                                 p15;
  1317.                                                                 end;
  1318. end;
  1319. end;
  1320.  
  1321. procedure q15;
  1322. begin
  1323. minmon:=1;
  1324. maxmon:=6;
  1325. monrand;
  1326. beaststrength:=monsters[generic].beaststrength1;
  1327. beastdefense:=monsters[generic].beastdefense1;
  1328. beastname:=monsters[generic].beastname1;
  1329. beastMagStr:=monsters[generic].beastMagStr1;
  1330. beasthp:=monsters[generic].beasthp1;
  1331. beastelement:=monsters[generic].beastelement1;
  1332. expGiven1:=monsters[generic].expGiven;
  1333. random2;
  1334. if (generic = 3) or (generic=1) then
  1335. battleEngine;
  1336.  
  1337. writeln ('still standing on the mountain, thou can see a town precariously balanced on the top of the mountain.  they');
  1338. writeln ('seem to have found a way to live up here.  To the north is path, and east leads to the village.');
  1339. genericA:=readkey;
  1340. clrscr;
  1341. case genericA of
  1342.      'n':{q14}q15;
  1343.      's':begin
  1344.               writeln ('tis not passable for mortal men!');
  1345.               readln;
  1346.               clrscr;
  1347.               q15;
  1348.          end;
  1349.      'e':{r15}q15;
  1350.      'w':begin
  1351.               writeln ('tis not passable for mortal men!');
  1352.               readln;
  1353.               clrscr;
  1354.               q15;
  1355.          end;
  1356.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1357.                                                                 writeln ('tis not a real letter fool!');
  1358.                                                                 readln;
  1359.                                                                 clrscr;
  1360.                                                                 q15;
  1361.                                                            end;
  1362. end;
  1363. end;
  1364.  
  1365. procedure r15;
  1366. begin
  1367. minmon:=1;
  1368. maxmon:=6;
  1369. monrand;
  1370. beaststrength:=monsters[generic].beaststrength1;
  1371. beastdefense:=monsters[generic].beastdefense1;
  1372. beastname:=monsters[generic].beastname1;
  1373. beastMagStr:=monsters[generic].beastMagStr1;
  1374. beasthp:=monsters[generic].beasthp1;
  1375. beastelement:=monsters[generic].beastelement1;
  1376. expGiven1:=monsters[generic].expGiven;
  1377. random2;
  1378. if (generic = 3) or (generic=1) then
  1379. battleEngine;
  1380.  
  1381. writeln ('you stand on the edge of the mountain town.  it is a small wonder of itself that it can sit so well on the');
  1382. writeln ('top of the peak.  The town gate lies east, and the path back down the mountain is west. there are');
  1383. writeln ('lookouts to the north and south!');
  1384. genericA:=readkey;
  1385. clrscr;
  1386. case genericA of
  1387.      'n':{r14}r15;
  1388.      's':{r16}r15;
  1389.      'e':{voltaraGate}r15;
  1390.      'w':q15;
  1391.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1392.                                                                 writeln ('tis not a real letter fool!');
  1393.                                                                 readln;
  1394.                                                                 clrscr;
  1395.                                                                 r15;
  1396.                                                            end;
  1397. end;
  1398. end;
  1399.  
  1400. procedure h26;
  1401. begin
  1402. minmon:=1;
  1403. maxmon:=6;
  1404. monrand;
  1405. beaststrength:=monsters[generic].beaststrength1;
  1406. beastdefense:=monsters[generic].beastdefense1;
  1407. beastname:=monsters[generic].beastname1;
  1408. beastMagStr:=monsters[generic].beastMagStr1;
  1409. beasthp:=monsters[generic].beasthp1;
  1410. beastelement:=monsters[generic].beastelement1;
  1411. expGiven1:=monsters[generic].expGiven;
  1412. random2;
  1413. if (generic = 3) or (generic=1) then
  1414. battleEngine;
  1415.  
  1416. writeln ('You are standing on the shoreline, with your feet in the water, the ocean stretches on forever it seems.');
  1417. writeln ('the north and east are both passable, being part of the plains.  It would seem that you don''t want to go');
  1418. writeln ('though, because the water is so soothing!');
  1419. genericA:=readkey;
  1420. clrscr;
  1421. case genericA of
  1422.      'n':h25;
  1423.      's':begin
  1424.               writeln ('tis not a real letter fool!');
  1425.               readln;
  1426.               clrscr;
  1427.               h26;
  1428.          end;
  1429.      'e':i26;
  1430.      'w':begin
  1431.               writeln ('tis not a real letter fool!');
  1432.               readln;
  1433.               clrscr;
  1434.               h26;
  1435.          end;
  1436.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1437.                                                                 writeln ('tis not a real letter fool!');
  1438.                                                                 readln;
  1439.                                                                 clrscr;
  1440.                                                                 h26;
  1441.                                                            end;
  1442. end;
  1443. end;
  1444.  
  1445. procedure i26;
  1446. begin
  1447. minmon:=1;
  1448. maxmon:=6;
  1449. monrand;
  1450. beaststrength:=monsters[generic].beaststrength1;
  1451. beastdefense:=monsters[generic].beastdefense1;
  1452. beastname:=monsters[generic].beastname1;
  1453. beastMagStr:=monsters[generic].beastMagStr1;
  1454. beasthp:=monsters[generic].beasthp1;
  1455. beastelement:=monsters[generic].beastelement1;
  1456. expGiven1:=monsters[generic].expGiven;
  1457. random2;
  1458. if (generic = 3) or (generic=1) then
  1459. battleEngine;
  1460.  
  1461. writeln ('You stand in the infinite plains, on the very edge of the sparkling sea.  a school of dolphins leaps into the');
  1462. writeln ('air and flies away!  the north and the west lead to more plains, but the other directions lead nowhere');
  1463. genericA:=readkey;
  1464. clrscr;
  1465. case genericA of
  1466.      'n':i25;
  1467.      's':begin
  1468.               writeln ('i told thou knave twas impassable!');
  1469.               readln;
  1470.               clrscr;
  1471.               i26;
  1472.          end;
  1473.      'e':begin
  1474.               writeln ('i told thou knave twas impassable!');
  1475.               readln;
  1476.               clrscr;
  1477.               i26;
  1478.          end;
  1479.      'w':h26;
  1480.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1481.                                                                 writeln ('tis not a real letter fool!');
  1482.                                                                 readln;
  1483.                                                                 clrscr;
  1484.                                                                 i26;
  1485.                                                            end;
  1486. end;
  1487. end;
  1488.  
  1489. procedure i25;
  1490. begin
  1491. minmon:=1;
  1492. maxmon:=6;
  1493. monrand;
  1494. beaststrength:=monsters[generic].beaststrength1;
  1495. beastdefense:=monsters[generic].beastdefense1;
  1496. beastname:=monsters[generic].beastname1;
  1497. beastMagStr:=monsters[generic].beastMagStr1;
  1498. beasthp:=monsters[generic].beasthp1;
  1499. beastelement:=monsters[generic].beastelement1;
  1500. expGiven1:=monsters[generic].expGiven;
  1501. random2;
  1502. if (generic = 3) or (generic=1) then
  1503. battleEngine;
  1504.  
  1505. writeln ('Thou art in the most expansive portion of the infinite pastures.  the grasses here are beautiful blues and');
  1506. writeln ('greens!  you see a herd of jackalope in the distance.  Thou may go north, south or west');
  1507. genericA:=readkey;
  1508. clrscr;
  1509. case genericA of
  1510.      'n':i24;
  1511.      's':i26;
  1512.      'e':begin
  1513.                                                                 writeln ('tis not a real letter fool!');
  1514.                                                                 readln;
  1515.                                                                 clrscr;
  1516.                                                                 i25;
  1517.                                                            end;
  1518.      'w':h25;
  1519.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1520.                                                                 writeln ('tis not a real letter fool!');
  1521.                                                                 readln;
  1522.                                                                 clrscr;
  1523.                                                                 i25;
  1524.                                                            end;
  1525. end;
  1526. end;
  1527.  
  1528. procedure h25;
  1529. begin
  1530. minmon:=1;
  1531. maxmon:=6;
  1532. monrand;
  1533. beaststrength:=monsters[generic].beaststrength1;
  1534. beastdefense:=monsters[generic].beastdefense1;
  1535. beastname:=monsters[generic].beastname1;
  1536. beastMagStr:=monsters[generic].beastMagStr1;
  1537. beasthp:=monsters[generic].beasthp1;
  1538. beastelement:=monsters[generic].beastelement1;
  1539. expGiven1:=monsters[generic].expGiven;
  1540. random2;
  1541. if (generic = 3) or (generic=1) then
  1542. battleEngine;
  1543.  
  1544. writeln ('You stand on the shore of the ocean, on the edge of the infinite plain.  the sparkling water feels cool on');
  1545. writeln ('your feet.  You may go north south or east.');
  1546. genericA:=readkey;
  1547. clrscr;
  1548. case genericA of
  1549.      'n':h24;
  1550.      's':h26;
  1551.      'e':i25;
  1552.      'w':begin
  1553.               writeln ('that is not a legal direction fool!');
  1554.               readln;
  1555.               clrscr;
  1556.               h25;
  1557.          end;
  1558.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1559.                                                                 writeln ('tis not a real letter fool!');
  1560.                                                                 readln;
  1561.                                                                 clrscr;
  1562.                                                                 h25;
  1563.                                                            end;
  1564. end;
  1565. end;
  1566.  
  1567. procedure h24;
  1568. begin
  1569. minmon:=1;
  1570. maxmon:=6;
  1571. monrand;
  1572. beaststrength:=monsters[generic].beaststrength1;
  1573. beastdefense:=monsters[generic].beastdefense1;
  1574. beastname:=monsters[generic].beastname1;
  1575. beastMagStr:=monsters[generic].beastMagStr1;
  1576. beasthp:=monsters[generic].beasthp1;
  1577. beastelement:=monsters[generic].beastelement1;
  1578. expGiven1:=monsters[generic].expGiven;
  1579. random2;
  1580. if (generic = 3) or (generic=1) then
  1581. battleEngine;
  1582.  
  1583. writeln ('You are standing on a sandy beach.  The sand is warm beneath you,');
  1584. writeln('but you regret that you must move on (there are girls in ');
  1585. writeln ('bikinis!). the north, the south, and the east are available!');
  1586. genericA:=readkey;
  1587. clrscr;
  1588. case genericA of
  1589.      'n':h23;
  1590.      's':h25;
  1591.      'e':i24;
  1592.      'w':begin
  1593.               writeln ('Not passable');
  1594.               readln;
  1595.               clrscr;
  1596.               h24
  1597.          end;
  1598.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1599.                                                                 writeln ('tis not a real letter fool!');
  1600.                                                                 readln;
  1601.                                                                 clrscr;
  1602.                                                                 h24;
  1603.                                                            end;
  1604. end;
  1605. end;
  1606.  
  1607. procedure i24;
  1608. begin
  1609. minmon:=1;
  1610. maxmon:=6;
  1611. monrand;
  1612. beaststrength:=monsters[generic].beaststrength1;
  1613. beastdefense:=monsters[generic].beastdefense1;
  1614. beastname:=monsters[generic].beastname1;
  1615. beastMagStr:=monsters[generic].beastMagStr1;
  1616. beasthp:=monsters[generic].beasthp1;
  1617. beastelement:=monsters[generic].beastelement1;
  1618. expGiven1:=monsters[generic].expGiven;
  1619. random2;
  1620. if (generic = 3) or (generic=1) then
  1621. battleEngine;
  1622.  
  1623. writeln ('You are standing on a cliff, just above the famous Rune Canyon.  You can go North, South, or West.');
  1624. genericA:=readkey;
  1625. clrscr;
  1626. case genericA of
  1627.      'n':i23;
  1628.      's':i25;
  1629.      'e':begin
  1630.               writeln ('What were you thinking? Now your Dead!');
  1631.               readln;
  1632.               clrscr;
  1633.               writeln ('Just Kidding!');
  1634.               readln;
  1635.               clrscr;
  1636.               i24;
  1637.          end;
  1638.      'w':h24;
  1639.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1640.                                                                 writeln ('tis not a real letter fool!');
  1641.                                                                 readln;
  1642.                                                                 clrscr;
  1643.                                                                 h24;
  1644.                                                            end;
  1645. end;
  1646. end;
  1647.  
  1648. procedure i23;
  1649. begin
  1650. minmon:=1;
  1651. maxmon:=6;
  1652. monrand;
  1653. beaststrength:=monsters[generic].beaststrength1;
  1654. beastdefense:=monsters[generic].beastdefense1;
  1655. beastname:=monsters[generic].beastname1;
  1656. beastMagStr:=monsters[generic].beastMagStr1;
  1657. beasthp:=monsters[generic].beasthp1;
  1658. beastelement:=monsters[generic].beastelement1;
  1659. expGiven1:=monsters[generic].expGiven;
  1660. random2;
  1661. if (generic = 3) or (generic=1) then
  1662. battleEngine;
  1663.  
  1664. writeln ('thou art on the infinite pasture.  you grow weary of this endless grass.  the cute');
  1665. writeln ('animals begin to look delicious.  the only thing cute you wanna see is a girl!');
  1666. writeln ('you may go off to the north, south, and west');
  1667. genericA:=readkey;
  1668. clrscr;
  1669. case genericA of
  1670.      'n':i22;
  1671.      's':i24;
  1672.      'e':begin
  1673.                                                                 writeln ('tis not a real letter fool!');
  1674.                                                                 readln;
  1675.                                                                 clrscr;
  1676.                                                                 i23;
  1677.                                                            end;
  1678.      'w':h23;
  1679.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1680.                                                                 writeln ('tis not a real letter fool!');
  1681.                                                                 readln;
  1682.                                                                 clrscr;
  1683.                                                                 i23;
  1684.                                                            end;
  1685. end;
  1686. end;
  1687.  
  1688. procedure h23;
  1689. begin
  1690. minmon:=1;
  1691. maxmon:=6;
  1692. monrand;
  1693. beaststrength:=monsters[generic].beaststrength1;
  1694. beastdefense:=monsters[generic].beastdefense1;
  1695. beastname:=monsters[generic].beastname1;
  1696. beastMagStr:=monsters[generic].beastMagStr1;
  1697. beasthp:=monsters[generic].beasthp1;
  1698. beastelement:=monsters[generic].beastelement1;
  1699. expGiven1:=monsters[generic].expGiven;
  1700. random2;
  1701. if (generic = 3) or (generic=1) then
  1702. battleEngine;
  1703. writeln ('The wind in the grass seems relaxing, but you know there is no time to laze about.');
  1704. writeln ('You get you rbearings and determine that all four compass directions can be traveled in.');
  1705. genericA:=readkey;
  1706. clrscr;
  1707. case genericA of
  1708.      'n':h22;
  1709.      's':h24;
  1710.      'e':i23;
  1711.      'w':g23;
  1712.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1713.                                                                 writeln ('tis not a real letter fool!');
  1714.                                                                 readln;
  1715.                                                                 clrscr;
  1716.                                                                 h23;
  1717.                                                            end;
  1718. end;
  1719. end;
  1720.  
  1721. procedure g23;
  1722. begin
  1723. minmon:=1;
  1724. maxmon:=6;
  1725. monrand;
  1726. beaststrength:=monsters[generic].beaststrength1;
  1727. beastdefense:=monsters[generic].beastdefense1;
  1728. beastname:=monsters[generic].beastname1;
  1729. beastMagStr:=monsters[generic].beastMagStr1;
  1730. beasthp:=monsters[generic].beasthp1;
  1731. beastelement:=monsters[generic].beastelement1;
  1732. expGiven1:=monsters[generic].expGiven;
  1733. random2;
  1734. if (generic = 3) or (generic=1) then
  1735. battleEngine;
  1736. writeln ('You let your feet cool in the calm ocean waters.  the sea is so beautiful on the plain.');
  1737. writeln ('You stand to head off.  you may go north and east.');
  1738. genericA:=readkey;
  1739. clrscr;
  1740. case genericA of
  1741.      'n':g22;
  1742.      's':begin
  1743.                                                                 writeln ('tis not a real letter fool!');
  1744.                                                                 readln;
  1745.                                                                 clrscr;
  1746.                                                                 g23;
  1747.                                                            end;
  1748.      'e':h23;
  1749.      'w':begin
  1750.                                                                 writeln ('tis not a real letter fool!');
  1751.                                                                 readln;
  1752.                                                                 clrscr;
  1753.                                                                 g23;
  1754.                                                            end;
  1755.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1756.                                                                 writeln ('tis not a real letter fool!');
  1757.                                                                 readln;
  1758.                                                                 clrscr;
  1759.                                                                 g23;
  1760.                                                            end;
  1761. end;
  1762. end;
  1763.  
  1764. procedure f22;
  1765. begin
  1766. minmon:=1;
  1767. maxmon:=6;
  1768. monrand;
  1769. beaststrength:=monsters[generic].beaststrength1;
  1770. beastdefense:=monsters[generic].beastdefense1;
  1771. beastname:=monsters[generic].beastname1;
  1772. beastMagStr:=monsters[generic].beastMagStr1;
  1773. beasthp:=monsters[generic].beasthp1;
  1774. beastelement:=monsters[generic].beastelement1;
  1775. expGiven1:=monsters[generic].expGiven;
  1776. random2;
  1777. if (generic = 3) or (generic=1) then
  1778. battleEngine;
  1779. writeln ('Though the ocean''s shores are beautiful, but no people come here to enjoy it.');
  1780. writeln ('the north and the east are travelable.');
  1781. genericA:=readkey;
  1782. clrscr;
  1783. case genericA of
  1784.      'n':f21;
  1785.      's':begin
  1786.                                                                 writeln ('tis not a real letter fool!');
  1787.                                                                 readln;
  1788.                                                                 clrscr;
  1789.                                                                 f22;
  1790.                                                            end;
  1791.      'e':g22;
  1792.      'w':begin
  1793.                                                                 writeln ('tis not a real letter fool!');
  1794.                                                                 readln;
  1795.                                                                 clrscr;
  1796.                                                                 f22;
  1797.                                                            end;
  1798.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1799.                                                                 writeln ('tis not a real letter fool!');
  1800.                                                                 readln;
  1801.                                                                 clrscr;
  1802.                                                                 f22;
  1803.                                                            end;
  1804. end;
  1805. end;
  1806.  
  1807. procedure g22;
  1808. begin
  1809. minmon:=1;
  1810. maxmon:=6;
  1811. monrand;
  1812. beaststrength:=monsters[generic].beaststrength1;
  1813. beastdefense:=monsters[generic].beastdefense1;
  1814. beastname:=monsters[generic].beastname1;
  1815. beastMagStr:=monsters[generic].beastMagStr1;
  1816. beasthp:=monsters[generic].beasthp1;
  1817. beastelement:=monsters[generic].beastelement1;
  1818. expGiven1:=monsters[generic].expGiven;
  1819. random2;
  1820. if (generic = 3) or (generic=1) then
  1821. battleEngine;
  1822. writeln ('the sands of the ocean meet the grasses of the pasture about here.  you can feel the');
  1823. writeln ('cool ocean breeze sweeping inland.  all directions may be traveled.');
  1824. genericA:=readkey;
  1825. clrscr;
  1826. case genericA of
  1827.      'n':g21;
  1828.      's':g23;
  1829.      'e':h22;
  1830.      'w':f22;
  1831.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1832.                                                                 writeln ('tis not a real letter fool!');
  1833.                                                                 readln;
  1834.                                                                 clrscr;
  1835.                                                                 g22;
  1836.                                                            end;
  1837. end;
  1838. end;
  1839.  
  1840. procedure h22;
  1841. begin
  1842. minmon:=1;
  1843. maxmon:=6;
  1844. monrand;
  1845. beaststrength:=monsters[generic].beaststrength1;
  1846. beastdefense:=monsters[generic].beastdefense1;
  1847. beastname:=monsters[generic].beastname1;
  1848. beastMagStr:=monsters[generic].beastMagStr1;
  1849. beasthp:=monsters[generic].beasthp1;
  1850. beastelement:=monsters[generic].beastelement1;
  1851. expGiven1:=monsters[generic].expGiven;
  1852. random2;
  1853. if (generic = 3) or (generic=1) then
  1854. battleEngine;
  1855. writeln ('Here there is a spot on the ground that shows no sign of vegetation.  Such a patch');
  1856. writeln ('of dirt here is quite unusual.  all directions can be taken.');
  1857. genericA:=readkey;
  1858. clrscr;
  1859. case genericA of
  1860.      'n':h21;
  1861.      's':h23;
  1862.      'e':i22;
  1863.      'w':g22;
  1864.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1865.                                                                 writeln ('tis not a real letter fool!');
  1866.                                                                 readln;
  1867.                                                                 clrscr;
  1868.                                                                 h22;
  1869.                                                            end;
  1870. end;
  1871. end;
  1872.  
  1873. procedure i22;
  1874. begin
  1875. minmon:=1;
  1876. maxmon:=6;
  1877. monrand;
  1878. beaststrength:=monsters[generic].beaststrength1;
  1879. beastdefense:=monsters[generic].beastdefense1;
  1880. beastname:=monsters[generic].beastname1;
  1881. beastMagStr:=monsters[generic].beastMagStr1;
  1882. beasthp:=monsters[generic].beasthp1;
  1883. beastelement:=monsters[generic].beastelement1;
  1884. expGiven1:=monsters[generic].expGiven;
  1885. random2;
  1886. if (generic = 3) or (generic=1) then
  1887. battleEngine;
  1888. writeln ('You''re standing on the very edge of a high canyon wall, which creates a sheer drop to');
  1889. writeln ('the east.  you may go in any direction but that.');
  1890. genericA:=readkey;
  1891. clrscr;
  1892. case genericA of
  1893.      'n':i21;
  1894.      's':i23;
  1895.      'e':begin
  1896.               writeln ('tis not a real letter fool!');
  1897.               readln;
  1898.               clrscr;
  1899.               i22;
  1900.          end;
  1901.      'w':h22;
  1902.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1903.                                                                 writeln ('tis not a real letter fool!');
  1904.                                                                 readln;
  1905.                                                                 clrscr;
  1906.                                                                 i22;
  1907.                                                            end;
  1908. end;
  1909. end;
  1910.  
  1911. procedure i21;
  1912. begin
  1913. minmon:=1;
  1914. maxmon:=6;
  1915. monrand;
  1916. beaststrength:=monsters[generic].beaststrength1;
  1917. beastdefense:=monsters[generic].beastdefense1;
  1918. beastname:=monsters[generic].beastname1;
  1919. beastMagStr:=monsters[generic].beastMagStr1;
  1920. beasthp:=monsters[generic].beasthp1;
  1921. beastelement:=monsters[generic].beastelement1;
  1922. expGiven1:=monsters[generic].expGiven;
  1923. random2;
  1924. if (generic = 3) or (generic=1) then
  1925. battleEngine;
  1926. writeln ('The desert-like canyon and the Infinite Pasture merge here seamlessly.  there is a');
  1927. writeln ('sheer dropoff to the east that prevents travel in that direction, but the other');
  1928. writeln ('paths are travelable.');
  1929. genericA:=readkey;
  1930. clrscr;
  1931. case genericA of
  1932.      'n':i20;
  1933.      's':i22;
  1934.      'e':begin
  1935.               writeln ('I pity th'' foo who try ta go dat way!');
  1936.               readln;
  1937.               clrscr;
  1938.               i21;
  1939.          end;
  1940.      'w':h21;
  1941.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1942.                                                                 writeln ('tis not a real letter fool!');
  1943.                                                                 readln;
  1944.                                                                 clrscr;
  1945.                                                                 i21;
  1946.                                                            end;
  1947. end;
  1948. end;
  1949.  
  1950. procedure i20;
  1951. begin
  1952. minmon:=1;
  1953. maxmon:=6;
  1954. monrand;
  1955. beaststrength:=monsters[generic].beaststrength1;
  1956. beastdefense:=monsters[generic].beastdefense1;
  1957. beastname:=monsters[generic].beastname1;
  1958. beastMagStr:=monsters[generic].beastMagStr1;
  1959. beasthp:=monsters[generic].beasthp1;
  1960. beastelement:=monsters[generic].beastelement1;
  1961. expGiven1:=monsters[generic].expGiven;
  1962. random2;
  1963. if (generic = 3) or (generic=1) then
  1964. battleEngine;
  1965. writeln ('The canyon to the east extends a great way north and south, and effectively cuts the');
  1966. writeln ('world in half.  you cannot travel east, but the other directions seem clear.');
  1967. genericA:=readkey;
  1968. clrscr;
  1969. case genericA of
  1970.      'n':i19;
  1971.      's':i21;
  1972.      'e':begin
  1973.               writeln ('You cannot go in that direction. LISTEN!');
  1974.               readln;
  1975.               clrscr;
  1976.               i20;
  1977.          end;
  1978.      'w':h20;
  1979.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  1980.                                                                 writeln ('tis not a real letter fool!');
  1981.                                                                 readln;
  1982.                                                                 clrscr;
  1983.                                                                 i20;
  1984.                                                            end;
  1985. end;
  1986. end;
  1987.  
  1988. procedure g15;
  1989. begin
  1990. minmon:=1;
  1991. maxmon:=6;
  1992. monrand;
  1993. beaststrength:=monsters[generic].beaststrength1;
  1994. beastdefense:=monsters[generic].beastdefense1;
  1995. beastname:=monsters[generic].beastname1;
  1996. beastMagStr:=monsters[generic].beastMagStr1;
  1997. beasthp:=monsters[generic].beasthp1;
  1998. beastelement:=monsters[generic].beastelement1;
  1999. expGiven1:=monsters[generic].expGiven;
  2000. random2;
  2001. if (generic = 3) or (generic=1) then
  2002. battleEngine;
  2003. writeln ('you stand on the well-beaten path between the port city and the castle.');
  2004. writeln ('the full complement of directions are available.');
  2005. genericA:=readkey;
  2006. clrscr;
  2007. case genericA of
  2008.      'n':{h14}g15;
  2009.      's':i16;
  2010.      'e':h15;
  2011.      'w':f15;
  2012.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2013.                                                                 writeln ('tis not a real letter fool!');
  2014.                                                                 readln;
  2015.                                                                 clrscr;
  2016.                                                                 i22;
  2017.                                                            end;
  2018. end;
  2019. end;
  2020.  
  2021. procedure i19;
  2022. begin
  2023. minmon:=1;
  2024. maxmon:=6;
  2025. monrand;
  2026. beaststrength:=monsters[generic].beaststrength1;
  2027. beastdefense:=monsters[generic].beastdefense1;
  2028. beastname:=monsters[generic].beastname1;
  2029. beastMagStr:=monsters[generic].beastMagStr1;
  2030. beasthp:=monsters[generic].beasthp1;
  2031. beastelement:=monsters[generic].beastelement1;
  2032. expGiven1:=monsters[generic].expGiven;
  2033. random2;
  2034. if (generic = 3) or (generic=1) then
  2035. battleEngine;
  2036. writeln('There is a small circle of stones here. someone must have spent the night a while ago,');
  2037. writeln('since there is a large pile of gray ashes in the circle.  You cannot go east.');
  2038. genericA:=readkey;
  2039. clrscr;
  2040. case genericA of
  2041.      'n':i18;
  2042.      's':i20;
  2043.      'e':begin
  2044.               writeln ('tis not a real letter fool!');
  2045.               readln;
  2046.               clrscr;
  2047.               i19;
  2048.          end;
  2049.      'w':h19;
  2050.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2051.                                                                 writeln ('tis not a real letter fool!');
  2052.                                                                 readln;
  2053.                                                                 clrscr;
  2054.                                                                 i22;
  2055.                                                            end;
  2056. end;
  2057. end;
  2058.  
  2059. procedure i18;
  2060. begin
  2061. minmon:=1;
  2062. maxmon:=6;
  2063. monrand;
  2064. beaststrength:=monsters[generic].beaststrength1;
  2065. beastdefense:=monsters[generic].beastdefense1;
  2066. beastname:=monsters[generic].beastname1;
  2067. beastMagStr:=monsters[generic].beastMagStr1;
  2068. beasthp:=monsters[generic].beasthp1;
  2069. beastelement:=monsters[generic].beastelement1;
  2070. expGiven1:=monsters[generic].expGiven;
  2071. random2;
  2072. if (generic = 3) or (generic=1) then
  2073. battleEngine;
  2074. writeln ('in the distance, to the north, you can see the tiny blot on the skyline that is the');
  2075. writeln ('castle.  it''s amazing how small it looks from here!  You cannot go east.');
  2076. genericA:=readkey;
  2077. clrscr;
  2078. case genericA of
  2079.      'n':i17;
  2080.      's':i19;
  2081.      'e':begin
  2082.               writeln ('i just told you you can''t go this way!');
  2083.               readln;
  2084.               clrscr;
  2085.               i18;
  2086.          end;
  2087.      'w':h18;
  2088.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2089.                                                                 writeln ('tis not a real letter fool!');
  2090.                                                                 readln;
  2091.                                                                 clrscr;
  2092.                                                                 i18;
  2093.                                                            end;
  2094. end;
  2095. end;
  2096.  
  2097. procedure i17;
  2098. begin
  2099. minmon:=1;
  2100. maxmon:=6;
  2101. monrand;
  2102. beaststrength:=monsters[generic].beaststrength1;
  2103. beastdefense:=monsters[generic].beastdefense1;
  2104. beastname:=monsters[generic].beastname1;
  2105. beastMagStr:=monsters[generic].beastMagStr1;
  2106. beasthp:=monsters[generic].beasthp1;
  2107. beastelement:=monsters[generic].beastelement1;
  2108. expGiven1:=monsters[generic].expGiven;
  2109. random2;
  2110. if (generic = 3) or (generic=1) then
  2111. battleEngine;
  2112. writeln ('the canyon to the east is not as deep here, but a jump down there would still kill');
  2113. writeln ('you. obviously you cannot go east.');
  2114. genericA:=readkey;
  2115. clrscr;
  2116. case genericA of
  2117.      'n':i16;
  2118.      's':i18;
  2119.      'e':begin
  2120.               writeln ('not that way!');
  2121.               readln;
  2122.               clrscr;
  2123.               i17;
  2124.          end;
  2125.      'w':h17;
  2126.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2127.                                                                 writeln ('tis not a real letter fool!');
  2128.                                                                 readln;
  2129.                                                                 clrscr;
  2130.                                                                 i17;
  2131.                                                            end;
  2132. end;
  2133. end;
  2134.  
  2135. procedure i16;
  2136. begin
  2137. minmon:=1;
  2138. maxmon:=6;
  2139. monrand;
  2140. beaststrength:=monsters[generic].beaststrength1;
  2141. beastdefense:=monsters[generic].beastdefense1;
  2142. beastname:=monsters[generic].beastname1;
  2143. beastMagStr:=monsters[generic].beastMagStr1;
  2144. beasthp:=monsters[generic].beasthp1;
  2145. beastelement:=monsters[generic].beastelement1;
  2146. expGiven1:=monsters[generic].expGiven;
  2147. random2;
  2148. if (generic = 3) or (generic=1) then
  2149. battleEngine;
  2150. writeln ('straight to the northeast lies the castle.  sadly, the builders of the ancient roads.');
  2151. writeln ('only built in the cardinal directions, so you can''t go northeast.  you can''t go');
  2152. writeln ('east either come to think of it.');
  2153. genericA:=readkey;
  2154. clrscr;
  2155. case genericA of
  2156.      'n':i15;
  2157.      's':i17;
  2158.      'e':begin
  2159.               writeln ('you can''t go there!');
  2160.               readln;
  2161.               clrscr;
  2162.               i16;
  2163.          end;
  2164.      'w':h16;
  2165.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2166.                                                                 writeln ('tis not a real letter fool!');
  2167.                                                                 readln;
  2168.                                                                 clrscr;
  2169.                                                                 i16;
  2170.                                                            end;
  2171. end;
  2172. end;
  2173.  
  2174. procedure a16;
  2175. begin
  2176. minmon:=1;
  2177. maxmon:=6;
  2178. monrand;
  2179. beaststrength:=monsters[generic].beaststrength1;
  2180. beastdefense:=monsters[generic].beastdefense1;
  2181. beastname:=monsters[generic].beastname1;
  2182. beastMagStr:=monsters[generic].beastMagStr1;
  2183. beasthp:=monsters[generic].beasthp1;
  2184. beastelement:=monsters[generic].beastelement1;
  2185. expGiven1:=monsters[generic].expGiven;
  2186. random2;
  2187. if (generic = 3) or (generic=1) then
  2188. battleEngine;
  2189. writeln ('you ares standing against the south wall of Port City, but the wall does not permit entrance. the ocean stands');
  2190. writeln ('on you west.  only the south an the east are open to travel.');
  2191. genericA:=readkey;
  2192. clrscr;
  2193. case genericA of
  2194.      'n':begin
  2195.               writeln ('I said you can''t go here!');
  2196.               readln;
  2197.               clrscr;
  2198.               a16;
  2199.          end;
  2200.      's':a17;
  2201.      'e':b16;
  2202.      'w':begin
  2203.               writeln ('Not that way!');
  2204.               readln;
  2205.               clrscr;
  2206.               a16;
  2207.          end;
  2208.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2209.                                                                 writeln ('tis not a real letter fool!');
  2210.                                                                 readln;
  2211.                                                                 clrscr;
  2212.                                                                 a16;
  2213.                                                            end;
  2214. end;                                                      
  2215. end;
  2216.  
  2217. procedure a20;
  2218. begin
  2219. minmon:=1;
  2220. maxmon:=6;
  2221. monrand;
  2222. beaststrength:=monsters[generic].beaststrength1;
  2223. beastdefense:=monsters[generic].beastdefense1;
  2224. beastname:=monsters[generic].beastname1;
  2225. beastMagStr:=monsters[generic].beastMagStr1;
  2226. beasthp:=monsters[generic].beasthp1;
  2227. beastelement:=monsters[generic].beastelement1;
  2228. expGiven1:=monsters[generic].expGiven;
  2229. random2;
  2230. if (generic = 3) or (generic=1) then
  2231. battleEngine;
  2232. writeln ('You stand where one of the bays runs into the ocean.  it is to your');
  2233. writeln ('south and west.  you may travel north and east.');
  2234. genericA:=readkey;
  2235. clrscr;
  2236. case genericA of
  2237.      's':begin
  2238.               writeln ('I said you can''t go here!');
  2239.               readln;
  2240.               clrscr;
  2241.               a20;
  2242.          end;
  2243.      'n':a19;
  2244.      'e':b20;
  2245.      'w':begin
  2246.               writeln ('Not that way!');
  2247.               readln;
  2248.               clrscr;
  2249.               a20;
  2250.          end;
  2251.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2252.                                                                 writeln ('tis not a real letter fool!');
  2253.                                                                 readln;
  2254.                                                                 clrscr;
  2255.                                                                 a20;
  2256.                                                            end;
  2257. end;                                                      
  2258. end;
  2259.  
  2260. procedure a17;
  2261. begin
  2262. minmon:=1;
  2263. maxmon:=6;
  2264. monrand;
  2265. beaststrength:=monsters[generic].beaststrength1;
  2266. beastdefense:=monsters[generic].beastdefense1;
  2267. beastname:=monsters[generic].beastname1;
  2268. beastMagStr:=monsters[generic].beastMagStr1;
  2269. beasthp:=monsters[generic].beasthp1;
  2270. beastelement:=monsters[generic].beastelement1;
  2271. expGiven1:=monsters[generic].expGiven;
  2272. random2;
  2273. if (generic = 3) or (generic=1) then
  2274. writeln ('You can see the outer wall of port city to the north.');
  2275. writeln ('The main part of the plains is to the east, west is the ocean');
  2276. writeln ('which you cannot pass. south is a small prairie path.');
  2277. genericA:=readkey;
  2278. clrscr;
  2279. case genericA of
  2280.      'n':a16;
  2281.      's':a18;
  2282.      'w':begin
  2283.               writeln ('you can''t go there!');
  2284.               readln;
  2285.               clrscr;
  2286.               a17;
  2287.          end;
  2288.      'e':b17;
  2289.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2290.                                                                 writeln ('tis not a real letter fool!');
  2291.                                                                 readln;
  2292.                                                                 clrscr;
  2293.                                                                 a17;
  2294.                                                            end;
  2295. end;
  2296. end;
  2297.  
  2298. procedure a18;
  2299. begin
  2300. minmon:=1;
  2301. maxmon:=6;
  2302. monrand;
  2303. beaststrength:=monsters[generic].beaststrength1;
  2304. beastdefense:=monsters[generic].beastdefense1;
  2305. beastname:=monsters[generic].beastname1;
  2306. beastMagStr:=monsters[generic].beastMagStr1;
  2307. beasthp:=monsters[generic].beasthp1;
  2308. beastelement:=monsters[generic].beastelement1;
  2309. expGiven1:=monsters[generic].expGiven;
  2310. random2;
  2311. if (generic = 3) or (generic=1) then
  2312. writeln ('You stand on the western edge of the world, right against the ocean.  the ocean breeze makes you feel a very');
  2313. writeln ('strong sense of destiny.  You can go north, south, and east.');
  2314. genericA:=readkey;
  2315. clrscr;
  2316. case genericA of
  2317.      'n':a17;
  2318.      's':a19;
  2319.      'w':begin
  2320.               writeln ('you can''t go there!');
  2321.               readln;
  2322.               clrscr;
  2323.               a18;
  2324.          end;
  2325.      'e':b18;
  2326.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2327.                                                                 writeln ('tis not a real letter fool!');
  2328.                                                                 readln;
  2329.                                                                 clrscr;
  2330.                                                                 a18;
  2331.                                                            end;
  2332. end;
  2333. end;
  2334.  
  2335. procedure a19;
  2336. begin
  2337. minmon:=1;
  2338. maxmon:=6;
  2339. monrand;
  2340. beaststrength:=monsters[generic].beaststrength1;
  2341. beastdefense:=monsters[generic].beastdefense1;
  2342. beastname:=monsters[generic].beastname1;
  2343. beastMagStr:=monsters[generic].beastMagStr1;
  2344. beasthp:=monsters[generic].beasthp1;
  2345. beastelement:=monsters[generic].beastelement1;
  2346. expGiven1:=monsters[generic].expGiven;
  2347. random2;
  2348. if (generic = 3) or (generic=1) then
  2349. writeln ('The whole coast seems dead. the usual flocks of dolphins, and schools of seagulls have dissapeared.  Ahhhh, the');
  2350. writeln ('ocean was once so beautiful.  you miss the old oceans of days past.  You may go north, south, and east.');
  2351. genericA:=readkey;
  2352. clrscr;
  2353. case genericA of
  2354.      'n':a18;
  2355.      's':a20;
  2356.      'w':begin
  2357.               writeln ('you can''t go there!');
  2358.               readln;
  2359.               clrscr;
  2360.               a19;
  2361.          end;
  2362.      'e':b19;
  2363.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2364.                                                                 writeln ('tis not a real letter fool!');
  2365.                                                                 readln;
  2366.                                                                 clrscr;
  2367.                                                                 a19;
  2368.                                                            end;
  2369. end;
  2370. end;
  2371.  
  2372. procedure b20;
  2373. begin
  2374. minmon:=1;
  2375. maxmon:=6;
  2376. monrand;
  2377. beaststrength:=monsters[generic].beaststrength1;
  2378. beastdefense:=monsters[generic].beastdefense1;
  2379. beastname:=monsters[generic].beastname1;
  2380. beastMagStr:=monsters[generic].beastMagStr1;
  2381. beasthp:=monsters[generic].beasthp1;
  2382. beastelement:=monsters[generic].beastelement1;
  2383. expGiven1:=monsters[generic].expGiven;
  2384. random2;
  2385. if (generic = 3) or (generic=1) then
  2386. battleEngine;
  2387. writeln ('The ocean calls to you. you call back "Fuck');
  2388. writeln (' you you stupid fucking ocean, you killed my father!". the ocean replies');
  2389. writeln ('"no, i am your father." you then shout "SHAVE THE WHALES!".  You may go anywhere but south.');
  2390. genericA:=readkey;
  2391. clrscr;
  2392. case genericA of
  2393.      'n':b19;
  2394.      's':begin
  2395.               writeln ('not this way!');
  2396.               readln;
  2397.               clrscr;
  2398.               b20;
  2399.          end;
  2400.      'e':c20;
  2401.      'w':a20;
  2402.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2403.                                                                 writeln ('tis not a real letter fool!');
  2404.                                                                 readln;
  2405.                                                                 clrscr;
  2406.                                                                 b20;
  2407.                                                            end;
  2408. end;                                                      
  2409. end;
  2410.  
  2411. procedure c20;
  2412. begin
  2413. minmon:=1;
  2414. maxmon:=6;
  2415. monrand;
  2416. beaststrength:=monsters[generic].beaststrength1;
  2417. beastdefense:=monsters[generic].beastdefense1;
  2418. beastname:=monsters[generic].beastname1;
  2419. beastMagStr:=monsters[generic].beastMagStr1;
  2420. beasthp:=monsters[generic].beasthp1;
  2421. beastelement:=monsters[generic].beastelement1;
  2422. expGiven1:=monsters[generic].expGiven;
  2423. random2;
  2424. if (generic = 3) or (generic=1) then
  2425. battleEngine;
  2426. writeln ('The ocean sucks.  your so sick of walking along it that you decide to piss in it.  the fish die as your toxic');
  2427. writeln ('Urine soaks them, filling their gills with poison. you can''t go south');
  2428. genericA:=readkey;
  2429. clrscr;
  2430. case genericA of
  2431.      'n':c19;
  2432.      's':begin
  2433.               writeln ('not this way!');
  2434.               readln;
  2435.               clrscr;
  2436.               c20;
  2437.          end;
  2438.      'e':d20;
  2439.      'w':b20;
  2440.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2441.                                                                 writeln ('tis not a real letter fool!');
  2442.                                                                 readln;
  2443.                                                                 clrscr;
  2444.                                                                 c20;
  2445.                                                            end;
  2446. end;                                                      
  2447. end;
  2448.  
  2449. procedure e20;
  2450. begin
  2451. minmon:=1;
  2452. maxmon:=6;
  2453. monrand;
  2454. beaststrength:=monsters[generic].beaststrength1;
  2455. beastdefense:=monsters[generic].beastdefense1;
  2456. beastname:=monsters[generic].beastname1;
  2457. beastMagStr:=monsters[generic].beastMagStr1;
  2458. beasthp:=monsters[generic].beasthp1;
  2459. beastelement:=monsters[generic].beastelement1;
  2460. expGiven1:=monsters[generic].expGiven;
  2461. random2;
  2462. if (generic = 3) or (generic=1) then
  2463. battleEngine;
  2464. writeln ('You know what, if you can''t figure out where you are by now, then your a hopeless idiot.  go away. you can''t go');
  2465. writeln ('South.  weast is okay though.');
  2466. genericA:=readkey;
  2467. clrscr;
  2468. case genericA of
  2469.      'n':e19;
  2470.      's':begin
  2471.               writeln ('not this way!');
  2472.               readln;
  2473.               clrscr;
  2474.               e20;
  2475.          end;
  2476.      'e':f20;
  2477.      'w':d20;
  2478.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2479.                                                                 writeln ('tis not a real letter fool!');
  2480.                                                                 readln;
  2481.                                                                 clrscr;
  2482.                                                                 e20;
  2483.                                                            end;
  2484. end;                                                      
  2485. end;
  2486.  
  2487. procedure d21;
  2488. begin
  2489. minmon:=1;
  2490. maxmon:=6;
  2491. monrand;
  2492. beaststrength:=monsters[generic].beaststrength1;
  2493. beastdefense:=monsters[generic].beastdefense1;
  2494. beastname:=monsters[generic].beastname1;
  2495. beastMagStr:=monsters[generic].beastMagStr1;
  2496. beasthp:=monsters[generic].beasthp1;
  2497. beastelement:=monsters[generic].beastelement1;
  2498. expGiven1:=monsters[generic].expGiven;
  2499. random2;
  2500. if (generic = 3) or (generic=1) then
  2501. battleEngine;
  2502. writeln ('you are in another of the jutting points of land on the ocean.');
  2503. writeln (' many jagged pieces of land stick out into this great');
  2504. writeln ('bay. you can''t go south or west.');
  2505. genericA:=readkey;
  2506. clrscr;
  2507. case genericA of
  2508.      's':begin
  2509.               writeln ('I said you can''t go here!');
  2510.               readln;
  2511.               clrscr;
  2512.               d21;
  2513.          end;
  2514.      'n':d20;
  2515.      'e':e21;
  2516.      'w':begin
  2517.               writeln ('Not that way!');
  2518.               readln;
  2519.               clrscr;
  2520.               d21;
  2521.          end;
  2522.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2523.                                                                 writeln ('tis not a real letter fool!');
  2524.                                                                 readln;
  2525.                                                                 clrscr;
  2526.                                                                 d21;
  2527.                                                            end;
  2528. end;                                                      
  2529. end;
  2530.  
  2531. procedure b19;
  2532. begin
  2533. minmon:=1;
  2534. maxmon:=6;
  2535. monrand;
  2536. beaststrength:=monsters[generic].beaststrength1;
  2537. beastdefense:=monsters[generic].beastdefense1;
  2538. beastname:=monsters[generic].beastname1;
  2539. beastMagStr:=monsters[generic].beastMagStr1;
  2540. beasthp:=monsters[generic].beasthp1;
  2541. beastelement:=monsters[generic].beastelement1;
  2542. expGiven1:=monsters[generic].expGiven;
  2543. random2;
  2544. if (generic = 3) or (generic=1) then
  2545. battleEngine;
  2546. writeln ('the area you stand in is called the infinite pasture.  it is a giant plains area, with many species of animal,');
  2547. writeln ('some still undiscovered and undocemented.  you can go in any direction.');
  2548. genericA:=readkey;
  2549. clrscr;
  2550. case genericA of
  2551.      'n':b18;
  2552.      's':b20;
  2553.      'e':c19;
  2554.      'w':a19;
  2555.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2556.                                                                 writeln ('tis not a real letter fool!');
  2557.                                                                 readln;
  2558.                                                                 clrscr;
  2559.                                                                 b19;
  2560.                                                            end;
  2561. end;                                                      
  2562. end;
  2563.  
  2564. procedure d20;
  2565. begin
  2566. minmon:=1;
  2567. maxmon:=6;
  2568. monrand;
  2569. beaststrength:=monsters[generic].beaststrength1;
  2570. beastdefense:=monsters[generic].beastdefense1;
  2571. beastname:=monsters[generic].beastname1;
  2572. beastMagStr:=monsters[generic].beastMagStr1;
  2573. beasthp:=monsters[generic].beasthp1;
  2574. beastelement:=monsters[generic].beastelement1;
  2575. expGiven1:=monsters[generic].expGiven;
  2576. random2;
  2577. if (generic = 3) or (generic=1) then
  2578. battleEngine;
  2579. writeln ('you are in the infinite pasture.  the wind howls through the grass, and animals make noise everywhere. it is');
  2580. writeln ('a very relaxing experience. you can go anywhere.');
  2581. genericA:=readkey;
  2582. clrscr;
  2583. case genericA of
  2584.      'n':d19;
  2585.      's':d21;
  2586.      'e':e20;
  2587.      'w':c20;
  2588.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2589.                                                                 writeln ('tis not a real letter fool!');
  2590.                                                                 readln;
  2591.                                                                 clrscr;
  2592.                                                                 d20;
  2593.                                                            end;
  2594. end;                                                      
  2595. end;
  2596.  
  2597. procedure f21;
  2598. begin
  2599. minmon:=1;
  2600. maxmon:=6;
  2601. monrand;
  2602. beaststrength:=monsters[generic].beaststrength1;
  2603. beastdefense:=monsters[generic].beastdefense1;
  2604. beastname:=monsters[generic].beastname1;
  2605. beastMagStr:=monsters[generic].beastMagStr1;
  2606. beasthp:=monsters[generic].beasthp1;
  2607. beastelement:=monsters[generic].beastelement1;
  2608. expGiven1:=monsters[generic].expGiven;
  2609. random2;
  2610. if (generic = 3) or (generic=1) then
  2611. battleEngine;
  2612. writeln ('The infinite plain stretches before you.  You see the beauty of the land, and know you must run to protect it.');
  2613. writeln ('All directions are open to travel.');
  2614. genericA:=readkey;
  2615. clrscr;
  2616. case genericA of
  2617.      'n':f20;
  2618.      's':f22;
  2619.      'e':g21;
  2620.      'w':e21;
  2621.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2622.                                                                 writeln ('tis not a real letter fool!');
  2623.                                                                 readln;
  2624.                                                                 clrscr;
  2625.                                                                 f21;
  2626.                                                            end;
  2627. end;                                                      
  2628. end;
  2629.  
  2630. procedure g21;
  2631. begin
  2632. minmon:=1;
  2633. maxmon:=6;
  2634. monrand;
  2635. beaststrength:=monsters[generic].beaststrength1;
  2636. beastdefense:=monsters[generic].beastdefense1;
  2637. beastname:=monsters[generic].beastname1;
  2638. beastMagStr:=monsters[generic].beastMagStr1;
  2639. beasthp:=monsters[generic].beasthp1;
  2640. beastelement:=monsters[generic].beastelement1;
  2641. expGiven1:=monsters[generic].expGiven;
  2642. random2;
  2643. if (generic = 3) or (generic=1) then
  2644. battleEngine;
  2645. writeln ('Grass, Grass, and more Grass.  there is so much grass here not even a prairie fire could wipe it all out.  you');
  2646. writeln ('decided to test that theory.  you light a match, but a bush immediately pulls it from your hand and puts it');
  2647. writeln ('out against the ground.  all directions are open.');
  2648. genericA:=readkey;
  2649. clrscr;
  2650. case genericA of
  2651.      'n':g20;
  2652.      's':g22;
  2653.      'e':h21;
  2654.      'w':f21;
  2655.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2656.                                                                 writeln ('tis not a real letter fool!');
  2657.                                                                 readln;
  2658.                                                                 clrscr;
  2659.                                                                 f21;
  2660.                                                            end;
  2661. end;                                                      
  2662. end;
  2663.  
  2664.  
  2665.  
  2666. procedure h21;
  2667. begin
  2668. minmon:=1;
  2669. maxmon:=6;
  2670. monrand;
  2671. beaststrength:=monsters[generic].beaststrength1;
  2672. beastdefense:=monsters[generic].beastdefense1;
  2673. beastname:=monsters[generic].beastname1;
  2674. beastMagStr:=monsters[generic].beastMagStr1;
  2675. beasthp:=monsters[generic].beasthp1;
  2676. beastelement:=monsters[generic].beastelement1;
  2677. expGiven1:=monsters[generic].expGiven;
  2678. random2;
  2679. if (generic = 3) or (generic=1) then
  2680. battleEngine;
  2681. writeln ('in the fields are many kinds of animals, but you now find one that you have never heard of');
  2682. writeln ('it has three rabbit ears, a dogs head, but with a cat''s whiskersr, a mule body and the feet of');
  2683. writeln ('a bear.  You kill it because you feel like it. screw conservation.  You can go in all directions');
  2684. genericA:=readkey;
  2685. clrscr;
  2686. case genericA of
  2687.      'n':h20;
  2688.      's':h22;
  2689.      'e':i21;
  2690.      'w':g21;
  2691.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2692.                                                                 writeln ('tis not a real letter fool!');
  2693.                                                                 readln;
  2694.                                                                 clrscr;
  2695.                                                                 h21;
  2696.                                                            end;
  2697. end;                                                      
  2698. end;
  2699.  
  2700. procedure h20;
  2701. begin
  2702. minmon:=1;
  2703. maxmon:=6;
  2704. monrand;
  2705. beaststrength:=monsters[generic].beaststrength1;
  2706. beastdefense:=monsters[generic].beastdefense1;
  2707. beastname:=monsters[generic].beastname1;
  2708. beastMagStr:=monsters[generic].beastMagStr1;
  2709. beasthp:=monsters[generic].beasthp1;
  2710. beastelement:=monsters[generic].beastelement1;
  2711. expGiven1:=monsters[generic].expGiven;
  2712. random2;
  2713. if (generic = 3) or (generic=1) then
  2714. battleEngine;
  2715. writeln ('Fields, fields in all directions. i''m getting sick of coding field text, so screw you and your directions!');
  2716. writeln ('go anywhere ya friggin want!');
  2717. genericA:=readkey;
  2718. clrscr;
  2719. case genericA of
  2720.      'n':h19;
  2721.      's':h21;
  2722.      'e':i20;
  2723.      'w':g20;
  2724.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2725.                                                                 writeln ('tis not a real letter fool!');
  2726.                                                                 readln;
  2727.                                                                 clrscr;
  2728.                                                                 h20;
  2729.                                                            end;
  2730. end;                                                      
  2731. end;
  2732.  
  2733. procedure h19;
  2734. begin
  2735. minmon:=1;
  2736. maxmon:=6;
  2737. monrand;
  2738. beaststrength:=monsters[generic].beaststrength1;
  2739. beastdefense:=monsters[generic].beastdefense1;
  2740. beastname:=monsters[generic].beastname1;
  2741. beastMagStr:=monsters[generic].beastMagStr1;
  2742. beasthp:=monsters[generic].beasthp1;
  2743. beastelement:=monsters[generic].beastelement1;
  2744. expGiven1:=monsters[generic].expGiven;
  2745. random2;
  2746. if (generic = 3) or (generic=1) then
  2747. battleEngine;
  2748. writeln ('the fields, the fields, the fields.  You are growing so tired of fields that you almost torch the whole');
  2749. writeln ('plain.  the path marches in all directions.');
  2750. genericA:=readkey;
  2751. clrscr;
  2752. case genericA of
  2753.      'n':h18;
  2754.      's':h20;
  2755.      'e':i19;
  2756.      'w':g19;
  2757.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2758.                                                                 writeln ('tis not a real letter fool!');
  2759.                                                                 readln;
  2760.                                                                 clrscr;
  2761.                                                                 h19;
  2762.                                                            end;
  2763. end;                                                      
  2764. end;
  2765.  
  2766. procedure h18;
  2767. begin
  2768. minmon:=1;
  2769. maxmon:=6;
  2770. monrand;
  2771. beaststrength:=monsters[generic].beaststrength1;
  2772. beastdefense:=monsters[generic].beastdefense1;
  2773. beastname:=monsters[generic].beastname1;
  2774. beastMagStr:=monsters[generic].beastMagStr1;
  2775. beasthp:=monsters[generic].beasthp1;
  2776. beastelement:=monsters[generic].beastelement1;
  2777. expGiven1:=monsters[generic].expGiven;
  2778. random2;
  2779. if (generic = 3) or (generic=1) then
  2780. battleEngine;
  2781. writeln ('You see the remains of a leveled village here.  three huts and a central firepit, it was obviously a primitive');
  2782. writeln ('town.  You cross yourself, praying for the souls of the dead here, then move on.');
  2783. genericA:=readkey;
  2784. clrscr;
  2785. case genericA of
  2786.      'n':h17;
  2787.      's':h19;
  2788.      'e':i18;
  2789.      'w':g18;
  2790.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2791.                                                                 writeln ('tis not a real letter fool!');
  2792.                                                                 readln;
  2793.                                                                 clrscr;
  2794.                                                                 h18;
  2795.                                                            end;
  2796. end;                                                      
  2797. end;
  2798.  
  2799. procedure h17;
  2800. begin
  2801. minmon:=1;
  2802. maxmon:=6;
  2803. monrand;
  2804. beaststrength:=monsters[generic].beaststrength1;
  2805. beastdefense:=monsters[generic].beastdefense1;
  2806. beastname:=monsters[generic].beastname1;
  2807. beastMagStr:=monsters[generic].beastMagStr1;
  2808. beasthp:=monsters[generic].beasthp1;
  2809. beastelement:=monsters[generic].beastelement1;
  2810. expGiven1:=monsters[generic].expGiven;
  2811. random2;
  2812. if (generic = 3) or (generic=1) then
  2813. battleEngine;
  2814. writeln ('Paris shows up and bitch smacks the crap out of you.  Then enrique shows up and falls down cause he''s');
  2815. writeln ('too lazy to do anything.');
  2816. genericA:=readkey;
  2817. clrscr;
  2818. case genericA of
  2819.      'n':h16;
  2820.      's':h18;
  2821.      'e':i17;
  2822.      'w':g17;
  2823.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2824.                                                                 writeln ('tis not a real letter fool!');
  2825.                                                                 readln;
  2826.                                                                 clrscr;
  2827.                                                                 h17;
  2828.                                                            end;
  2829. end;                                                      
  2830. end;
  2831.  
  2832. procedure h16;
  2833. begin
  2834. minmon:=1;
  2835. maxmon:=6;
  2836. monrand;
  2837. beaststrength:=monsters[generic].beaststrength1;
  2838. beastdefense:=monsters[generic].beastdefense1;
  2839. beastname:=monsters[generic].beastname1;
  2840. beastMagStr:=monsters[generic].beastMagStr1;
  2841. beasthp:=monsters[generic].beasthp1;
  2842. beastelement:=monsters[generic].beastelement1;
  2843. expGiven1:=monsters[generic].expGiven;
  2844. random2;
  2845. if (generic = 3) or (generic=1) then
  2846. battleEngine;
  2847. writeln ('you are quite close to the castle, but still in the prairie.  the castle calls you home, but you must complete');
  2848. writeln ('your journey or the whole world is doomed.');
  2849. genericA:=readkey;
  2850. clrscr;
  2851. case genericA of
  2852.      'n':h15;
  2853.      's':h17;
  2854.      'e':i16;
  2855.      'w':g16;
  2856.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2857.                                                                 writeln ('tis not a real letter fool!');
  2858.                                                                 readln;
  2859.                                                                 clrscr;
  2860.                                                                 h16;
  2861.                                                            end;
  2862. end;                                                      
  2863. end;
  2864.  
  2865. procedure g16;
  2866. begin
  2867. minmon:=1;
  2868. maxmon:=6;
  2869. monrand;
  2870. beaststrength:=monsters[generic].beaststrength1;
  2871. beastdefense:=monsters[generic].beastdefense1;
  2872. beastname:=monsters[generic].beastname1;
  2873. beastMagStr:=monsters[generic].beastMagStr1;
  2874. beasthp:=monsters[generic].beasthp1;
  2875. beastelement:=monsters[generic].beastelement1;
  2876. expGiven1:=monsters[generic].expGiven;
  2877. random2;
  2878. if (generic = 3) or (generic=1) then
  2879. battleEngine;
  2880. writeln ('The plains are a vast place, but they are calm and peaceful.  it''s surprising that so many beasts wander');
  2881. writeln ('about the plains.  the grass is rustling in the wind.');
  2882. genericA:=readkey;
  2883. clrscr;
  2884. case genericA of
  2885.      'n':g15;
  2886.      's':g17;
  2887.      'e':h16;
  2888.      'w':f16;
  2889.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2890.                                                                 writeln ('tis not a real letter fool!');
  2891.                                                                 readln;
  2892.                                                                 clrscr;
  2893.                                                                 g16;
  2894.                                                            end;
  2895. end;                                                      
  2896. end;
  2897.  
  2898. procedure g17;
  2899. begin
  2900. minmon:=1;
  2901. maxmon:=6;
  2902. monrand;
  2903. beaststrength:=monsters[generic].beaststrength1;
  2904. beastdefense:=monsters[generic].beastdefense1;
  2905. beastname:=monsters[generic].beastname1;
  2906. beastMagStr:=monsters[generic].beastMagStr1;
  2907. beasthp:=monsters[generic].beasthp1;
  2908. beastelement:=monsters[generic].beastelement1;
  2909. expGiven1:=monsters[generic].expGiven;
  2910. random2;
  2911. if (generic = 3) or (generic=1) then
  2912. battleEngine;
  2913. writeln ('plains.  your in the plains.  there is no more to say.  if you need a more avid description then you');
  2914. writeln ('have no imagination.  i''m starting to lose pride in my work.');
  2915. genericA:=readkey;
  2916. clrscr;
  2917. case genericA of
  2918.      'n':g16;
  2919.      's':g18;
  2920.      'e':h17;
  2921.      'w':f17;
  2922.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2923.                                                                 writeln ('tis not a real letter fool!');
  2924.                                                                 readln;
  2925.                                                                 clrscr;
  2926.                                                                 g17;
  2927.                                                            end;
  2928. end;                                                      
  2929. end;
  2930.  
  2931. procedure g18;
  2932. begin
  2933. minmon:=1;
  2934. maxmon:=6;
  2935. monrand;
  2936. beaststrength:=monsters[generic].beaststrength1;
  2937. beastdefense:=monsters[generic].beastdefense1;
  2938. beastname:=monsters[generic].beastname1;
  2939. beastMagStr:=monsters[generic].beastMagStr1;
  2940. beasthp:=monsters[generic].beasthp1;
  2941. beastelement:=monsters[generic].beastelement1;
  2942. expGiven1:=monsters[generic].expGiven;
  2943. random2;
  2944. if (generic = 3) or (generic=1) then
  2945. battleEngine;
  2946. writeln ('you''re in the plains.  the meadow flowers are beautiful this time of year. to bad they''l be burnt to hell');
  2947. writeln ('if you don''t hurry your sissy flowerloving ass up!');
  2948. genericA:=readkey;
  2949. clrscr;
  2950. case genericA of
  2951.      'n':g17;
  2952.      's':g19;
  2953.      'e':h18;
  2954.      'w':f18;
  2955.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2956.                                                                 writeln ('tis not a real letter fool!');
  2957.                                                                 readln;
  2958.                                                                 clrscr;
  2959.                                                                 g18;
  2960.                                                            end;
  2961. end;                                                      
  2962. end;
  2963.  
  2964. procedure g19;
  2965. begin
  2966. minmon:=1;
  2967. maxmon:=6;
  2968. monrand;
  2969. beaststrength:=monsters[generic].beaststrength1;
  2970. beastdefense:=monsters[generic].beastdefense1;
  2971. beastname:=monsters[generic].beastname1;
  2972. beastMagStr:=monsters[generic].beastMagStr1;
  2973. beasthp:=monsters[generic].beasthp1;
  2974. beastelement:=monsters[generic].beastelement1;
  2975. expGiven1:=monsters[generic].expGiven;
  2976. random2;
  2977. if (generic = 3) or (generic=1) then
  2978. battleEngine;
  2979. writeln ('grass, flowers, ninja demon squirrels. waitaminute, SQUIRRELS? you better hurry outta here!');
  2980. genericA:=readkey;
  2981. clrscr;
  2982. case genericA of
  2983.      'n':g18;
  2984.      's':g20;
  2985.      'e':h19;
  2986.      'w':f19;
  2987.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  2988.                                                                 writeln ('tis not a real letter fool!');
  2989.                                                                 readln;
  2990.                                                                 clrscr;
  2991.                                                                 g19;
  2992.                                                            end;
  2993. end;                                                      
  2994. end;
  2995.  
  2996. procedure g20;
  2997. begin
  2998. minmon:=1;
  2999. maxmon:=6;
  3000. monrand;
  3001. beaststrength:=monsters[generic].beaststrength1;
  3002. beastdefense:=monsters[generic].beastdefense1;
  3003. beastname:=monsters[generic].beastname1;
  3004. beastMagStr:=monsters[generic].beastMagStr1;
  3005. beasthp:=monsters[generic].beasthp1;
  3006. beastelement:=monsters[generic].beastelement1;
  3007. expGiven1:=monsters[generic].expGiven;
  3008. random2;
  3009. if (generic = 3) or (generic=1) then
  3010. battleEngine;
  3011. writeln ('the remains of an old house are here.  there were many such cottages in the days of expansion.  that was long');
  3012. writeln ('ago, when settlers were still sent out byt the far eastern cities.');
  3013. genericA:=readkey;
  3014. clrscr;
  3015. case genericA of
  3016.      'n':g19;
  3017.      's':g21;
  3018.      'e':h20;
  3019.      'w':f20;
  3020.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3021.                                                                 writeln ('tis not a real letter fool!');
  3022.                                                                 readln;
  3023.                                                                 clrscr;
  3024.                                                                 g20;
  3025.                                                            end;
  3026. end;                                                            
  3027. end;
  3028.  
  3029. procedure f20;
  3030. begin
  3031. minmon:=1;
  3032. maxmon:=6;
  3033. monrand;
  3034. beaststrength:=monsters[generic].beaststrength1;
  3035. beastdefense:=monsters[generic].beastdefense1;
  3036. beastname:=monsters[generic].beastname1;
  3037. beastMagStr:=monsters[generic].beastMagStr1;
  3038. beasthp:=monsters[generic].beasthp1;
  3039. beastelement:=monsters[generic].beastelement1;
  3040. expGiven1:=monsters[generic].expGiven;
  3041. random2;
  3042. if (generic = 3) or (generic=1) then
  3043. battleEngine;
  3044. writeln (' the ocean is fairly close to you in the south.  the castle, your home, is far to the northeast.  you long for');
  3045. writeln ('home, but you know your duty.');
  3046. genericA:=readkey;
  3047. clrscr;
  3048. case genericA of
  3049.      'n':f19;
  3050.      's':f21;
  3051.      'e':g20;
  3052.      'w':e20;
  3053.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3054.                                                                 writeln ('tis not a real letter fool!');
  3055.                                                                 readln;
  3056.                                                                 clrscr;
  3057.                                                                 f20;
  3058.                                                            end;
  3059. end;
  3060. end;
  3061.  
  3062. procedure f19;
  3063. begin
  3064. minmon:=1;
  3065. maxmon:=6;
  3066. monrand;
  3067. beaststrength:=monsters[generic].beaststrength1;
  3068. beastdefense:=monsters[generic].beastdefense1;
  3069. beastname:=monsters[generic].beastname1;
  3070. beastMagStr:=monsters[generic].beastMagStr1;
  3071. beasthp:=monsters[generic].beasthp1;
  3072. beastelement:=monsters[generic].beastelement1;
  3073. expGiven1:=monsters[generic].expGiven;
  3074. random2;
  3075. if (generic = 3) or (generic=1) then
  3076. battleEngine;
  3077. writeln ('you see many dead carcasses of animals, lying and rotting on the ground.  there was a great hunt here long ago.');
  3078. writeln ('it was a great historical event, the great heros of the age attacking the vicious Cornithian Boar.');
  3079. genericA:=readkey;
  3080. clrscr;
  3081. case genericA of
  3082.      'n':f18;
  3083.      's':f20;
  3084.      'e':g19;
  3085.      'w':e19;
  3086.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3087.                                                                 writeln ('tis not a real letter fool!');
  3088.                                                                 readln;
  3089.                                                                 clrscr;
  3090.                                                                 f19;
  3091.                                                            end;
  3092. end;                                                      
  3093. end;
  3094.  
  3095. procedure f18;
  3096. begin
  3097. minmon:=1;
  3098. maxmon:=6;
  3099. monrand;
  3100. beaststrength:=monsters[generic].beaststrength1;
  3101. beastdefense:=monsters[generic].beastdefense1;
  3102. beastname:=monsters[generic].beastname1;
  3103. beastMagStr:=monsters[generic].beastMagStr1;
  3104. beasthp:=monsters[generic].beasthp1;
  3105. beastelement:=monsters[generic].beastelement1;
  3106. expGiven1:=monsters[generic].expGiven;
  3107. random2;
  3108. if (generic = 3) or (generic=1) then
  3109. battleEngine;
  3110. writeln ('yo momma');
  3111. genericA:=readkey;
  3112. clrscr;
  3113. case genericA of
  3114.      'n':f17;
  3115.      's':f19;
  3116.      'e':g18;
  3117.      'w':e18;
  3118.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3119.                                                                 writeln ('tis not a real letter fool!');
  3120.                                                                 readln;
  3121.                                                                 clrscr;
  3122.                                                                 f18;
  3123.                                                            end;
  3124. end;                                                      
  3125. end;
  3126.  
  3127. procedure f17;
  3128. begin
  3129. minmon:=1;
  3130. maxmon:=6;
  3131. monrand;
  3132. beaststrength:=monsters[generic].beaststrength1;
  3133. beastdefense:=monsters[generic].beastdefense1;
  3134. beastname:=monsters[generic].beastname1;
  3135. beastMagStr:=monsters[generic].beastMagStr1;
  3136. beasthp:=monsters[generic].beasthp1;
  3137. beastelement:=monsters[generic].beastelement1;
  3138. expGiven1:=monsters[generic].expGiven;
  3139. random2;
  3140. if (generic = 3) or (generic=1) then
  3141. battleEngine;
  3142. writeln ('You set up a camp and take a bit of a nap.  Your HP and MP is restored.');
  3143. genericA:=readkey;
  3144. clrscr;
  3145. case genericA of
  3146.      'n':f16;
  3147.      's':f18;
  3148.      'e':g17;
  3149.      'w':e17;
  3150.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3151.                                                                 writeln ('tis not a real letter fool!');
  3152.                                                                 readln;
  3153.                                                                 clrscr;
  3154.                                                                 f17;
  3155.                                                            end;
  3156. end;                                                      
  3157. end;
  3158.  
  3159. procedure f16;
  3160. begin
  3161. minmon:=1;
  3162. maxmon:=6;
  3163. monrand;
  3164. beaststrength:=monsters[generic].beaststrength1;
  3165. beastdefense:=monsters[generic].beastdefense1;
  3166. beastname:=monsters[generic].beastname1;
  3167. beastMagStr:=monsters[generic].beastMagStr1;
  3168. beasthp:=monsters[generic].beasthp1;
  3169. beastelement:=monsters[generic].beastelement1;
  3170. expGiven1:=monsters[generic].expGiven;
  3171. random2;
  3172. if (generic = 3) or (generic=1) then
  3173. battleEngine;
  3174. writeln ('You see a lot of bodies here.  Yet another battleground of the ancients.  You wish you could bury all of them,');
  3175. writeln ('but you do not have time to waste.  It is time to move on.');
  3176. genericA:=readkey;
  3177. clrscr;
  3178. case genericA of
  3179.      'n':f15;
  3180.      's':f17;
  3181.      'e':g16;
  3182.      'w':e16;
  3183.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3184.                                                                 writeln ('tis not a real letter fool!');
  3185.                                                                 readln;
  3186.                                                                 clrscr;
  3187.                                                                 f16;
  3188.                                                            end;
  3189. end;                                                      
  3190. end;
  3191.  
  3192. procedure e16;
  3193. begin
  3194. minmon:=1;
  3195. maxmon:=6;
  3196. monrand;
  3197. beaststrength:=monsters[generic].beaststrength1;
  3198. beastdefense:=monsters[generic].beastdefense1;
  3199. beastname:=monsters[generic].beastname1;
  3200. beastMagStr:=monsters[generic].beastMagStr1;
  3201. beasthp:=monsters[generic].beasthp1;
  3202. beastelement:=monsters[generic].beastelement1;
  3203. expGiven1:=monsters[generic].expGiven;
  3204. random2;
  3205. if (generic = 3) or (generic=1) then
  3206. battleEngine;
  3207. writeln ('You hear one of the ancient beastmen howling in the distance.  Beastmen were an ancient race of people who');
  3208. writeln ('committed the sin of mating themselves to animals, and an ancient magic punished them by making all their');
  3209. writeln ('offspring half beast and half human.');
  3210. genericA:=readkey;
  3211. clrscr;
  3212. case genericA of
  3213.      'n':e15;
  3214.      's':e17;
  3215.      'e':f16;
  3216.      'w':d16;
  3217.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3218.                                                                 writeln ('tis not a real letter fool!');
  3219.                                                                 readln;
  3220.                                                                 clrscr;
  3221.                                                                 e16;
  3222.                                                            end;
  3223. end;                                                      
  3224. end;
  3225.  
  3226. procedure e17;
  3227. begin
  3228. minmon:=1;
  3229. maxmon:=6;
  3230. monrand;
  3231. beaststrength:=monsters[generic].beaststrength1;
  3232. beastdefense:=monsters[generic].beastdefense1;
  3233. beastname:=monsters[generic].beastname1;
  3234. beastMagStr:=monsters[generic].beastMagStr1;
  3235. beasthp:=monsters[generic].beasthp1;
  3236. beastelement:=monsters[generic].beastelement1;
  3237. expGiven1:=monsters[generic].expGiven;
  3238. random2;
  3239. if (generic = 3) or (generic=1) then
  3240. battleEngine;
  3241. writeln ('you see a guy so you kill him because you hate people.  im losing pride in my work!');
  3242. genericA:=readkey;
  3243. clrscr;
  3244. case genericA of
  3245.      'n':e16;
  3246.      's':e18;
  3247.      'e':f17;
  3248.      'w':d17;
  3249.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3250.                                                                 writeln ('tis not a real letter fool!');
  3251.                                                                 readln;
  3252.                                                                 clrscr;
  3253.                                                                 e17;
  3254.                                                            end;
  3255. end;                                                      
  3256. end;
  3257.  
  3258. procedure e18;
  3259. begin
  3260. minmon:=1;
  3261. maxmon:=6;
  3262. monrand;
  3263. beaststrength:=monsters[generic].beaststrength1;
  3264. beastdefense:=monsters[generic].beastdefense1;
  3265. beastname:=monsters[generic].beastname1;
  3266. beastMagStr:=monsters[generic].beastMagStr1;
  3267. beasthp:=monsters[generic].beasthp1;
  3268. beastelement:=monsters[generic].beastelement1;
  3269. expGiven1:=monsters[generic].expGiven;
  3270. random2;
  3271. if (generic = 3) or (generic=1) then
  3272. battleEngine;
  3273. writeln ('The infinite plains stretch out forever, but you know even the plains have an end.  The sense of urgency');
  3274. writeln ('in you mind prevents you from stopping to take in the sights.');
  3275. genericA:=readkey;
  3276. clrscr;
  3277. case genericA of
  3278.      'n':e17;
  3279.      's':e19;
  3280.      'e':f18;
  3281.      'w':d18;
  3282.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3283.                                                                 writeln ('tis not a real letter fool!');
  3284.                                                                 readln;
  3285.                                                                 clrscr;
  3286.                                                                 e18;
  3287.                                                            end;
  3288. end;                                                      
  3289. end;
  3290.  
  3291. procedure e19;
  3292. begin
  3293. minmon:=1;
  3294. maxmon:=6;
  3295. monrand;
  3296. beaststrength:=monsters[generic].beaststrength1;
  3297. beastdefense:=monsters[generic].beastdefense1;
  3298. beastname:=monsters[generic].beastname1;
  3299. beastMagStr:=monsters[generic].beastMagStr1;
  3300. beasthp:=monsters[generic].beasthp1;
  3301. beastelement:=monsters[generic].beastelement1;
  3302. expGiven1:=monsters[generic].expGiven;
  3303. random2;
  3304. if (generic = 3) or (generic=1) then
  3305. battleEngine;
  3306. writeln ('Directly to your north is the dead center of the plains.  it was once a place of magic,  but that ancient');
  3307. writeln ('magic is long gone.  the current day is long past');
  3308. genericA:=readkey;
  3309. clrscr;
  3310. case genericA of
  3311.      'n':e18;
  3312.      's':e20;
  3313.      'e':f19;
  3314.      'w':d19;
  3315.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3316.                                                                 writeln ('tis not a real letter fool!');
  3317.                                                                 readln;
  3318.                                                                 clrscr;
  3319.                                                                 e19;
  3320.                                                            end;
  3321. end;                                                      
  3322. end;
  3323.  
  3324.  
  3325.  
  3326. procedure d19;
  3327. begin
  3328. minmon:=1;
  3329. maxmon:=6;
  3330. monrand;
  3331. beaststrength:=monsters[generic].beaststrength1;
  3332. beastdefense:=monsters[generic].beastdefense1;
  3333. beastname:=monsters[generic].beastname1;
  3334. beastMagStr:=monsters[generic].beastMagStr1;
  3335. beasthp:=monsters[generic].beasthp1;
  3336. beastelement:=monsters[generic].beastelement1;
  3337. expGiven1:=monsters[generic].expGiven;
  3338. random2;
  3339. if (generic = 3) or (generic=1) then
  3340. battleEngine;
  3341. writeln ('åáÖÒÞ');
  3342. genericA:=readkey;
  3343. clrscr;
  3344. case genericA of
  3345.      'n':d18;
  3346.      's':d20;
  3347.      'e':e19;
  3348.      'w':c19;
  3349.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3350.                                                                 writeln ('tis not a real letter fool!');
  3351.                                                                 readln;
  3352.                                                                 clrscr;
  3353.                                                                 d19;
  3354.                                                            end;
  3355. end;                                                      
  3356. end;
  3357.  
  3358. procedure d18;
  3359. begin
  3360. minmon:=1;
  3361. maxmon:=6;
  3362. monrand;
  3363. beaststrength:=monsters[generic].beaststrength1;
  3364. beastdefense:=monsters[generic].beastdefense1;
  3365. beastname:=monsters[generic].beastname1;
  3366. beastMagStr:=monsters[generic].beastMagStr1;
  3367. beasthp:=monsters[generic].beasthp1;
  3368. beastelement:=monsters[generic].beastelement1;
  3369. expGiven1:=monsters[generic].expGiven;
  3370. random2;
  3371. if (generic = 3) or (generic=1) then
  3372. battleEngine;
  3373. writeln ('Plains, plains, plains, plains, plains.  you were told the plains were an exciting place, but you are bored');
  3374. writeln ('stiffer than a board.');
  3375. genericA:=readkey;
  3376. clrscr;
  3377. case genericA of
  3378.      'n':d17;
  3379.      's':d19;
  3380.      'e':e18;
  3381.      'w':c18;
  3382.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3383.                                                                 writeln ('tis not a real letter fool!');
  3384.                                                                 readln;
  3385.                                                                 clrscr;
  3386.                                                                 d18;
  3387.                                                            end;
  3388. end;                                                      
  3389. end;
  3390.  
  3391. procedure d17;
  3392. begin
  3393. minmon:=1;
  3394. maxmon:=6;
  3395. monrand;
  3396. beaststrength:=monsters[generic].beaststrength1;
  3397. beastdefense:=monsters[generic].beastdefense1;
  3398. beastname:=monsters[generic].beastname1;
  3399. beastMagStr:=monsters[generic].beastMagStr1;
  3400. beasthp:=monsters[generic].beasthp1;
  3401. beastelement:=monsters[generic].beastelement1;
  3402. expGiven1:=monsters[generic].expGiven;
  3403. random2;
  3404. if (generic = 3) or (generic=1) then
  3405. battleEngine;
  3406. writeln ('Using your GPS Global Positioning System sword, you can tell at Longitude D, Latitude 17');
  3407. genericA:=readkey;
  3408. clrscr;
  3409. case genericA of
  3410.      'n':d16;
  3411.      's':d18;
  3412.      'e':e17;
  3413.      'w':c17;
  3414.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3415.                                                                 writeln ('tis not a real letter fool!');
  3416.                                                                 readln;
  3417.                                                                 clrscr;
  3418.                                                                 d17;
  3419.                                                            end;
  3420. end;                                                      
  3421. end;
  3422.  
  3423. procedure d16;
  3424. begin
  3425. minmon:=1;
  3426. maxmon:=6;
  3427. monrand;
  3428. beaststrength:=monsters[generic].beaststrength1;
  3429. beastdefense:=monsters[generic].beastdefense1;
  3430. beastname:=monsters[generic].beastname1;
  3431. beastMagStr:=monsters[generic].beastMagStr1;
  3432. beasthp:=monsters[generic].beasthp1;
  3433. beastelement:=monsters[generic].beastelement1;
  3434. expGiven1:=monsters[generic].expGiven;
  3435. random2;
  3436. if (generic = 3) or (generic=1) then
  3437. battleEngine;
  3438. writeln ('You see a broken down pioneering wagon, like the ones used by the old settlers.  Wild dogs crawl in and out, ');
  3439. writeln ('searching for the remains of long gone food.');
  3440. genericA:=readkey;
  3441. clrscr;
  3442. case genericA of
  3443.      'n':d15;
  3444.      's':d17;
  3445.      'e':e16;
  3446.      'w':c16;
  3447.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3448.                                                                 writeln ('tis not a real letter fool!');
  3449.                                                                 readln;
  3450.                                                                 clrscr;
  3451.                                                                 d16;
  3452.                                                            end;
  3453. end;                                                      
  3454. end;
  3455.  
  3456. procedure c16;
  3457. begin
  3458. minmon:=1;
  3459. maxmon:=6;
  3460. monrand;
  3461. beaststrength:=monsters[generic].beaststrength1;
  3462. beastdefense:=monsters[generic].beastdefense1;
  3463. beastname:=monsters[generic].beastname1;
  3464. beastMagStr:=monsters[generic].beastMagStr1;
  3465. beasthp:=monsters[generic].beasthp1;
  3466. beastelement:=monsters[generic].beastelement1;
  3467. expGiven1:=monsters[generic].expGiven;
  3468. random2;
  3469. if (generic = 3) or (generic=1) then
  3470. battleEngine;
  3471. writeln ('you are close to the once prosperous city of Port.  it was very wealthy before the Necromancer''time, but his');
  3472. writeln ('wrath has ruined the town.');
  3473. genericA:=readkey;
  3474. clrscr;
  3475. case genericA of
  3476.      'n':c15;
  3477.      's':c17;
  3478.      'e':d16;
  3479.      'w':b16;
  3480.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3481.                                                                 writeln ('tis not a real letter fool!');
  3482.                                                                 readln;
  3483.                                                                 clrscr;
  3484.                                                                 c16;
  3485.                                                            end;
  3486. end;                                                      
  3487. end;
  3488.  
  3489. procedure c17;
  3490. begin
  3491. minmon:=1;
  3492. maxmon:=7;
  3493. monrand;
  3494. beaststrength:=monsters[generic].beaststrength1;
  3495. beastdefense:=monsters[generic].beastdefense1;
  3496. beastname:=monsters[generic].beastname1;
  3497. beastMagStr:=monsters[generic].beastMagStr1;
  3498. beasthp:=monsters[generic].beasthp1;
  3499. beastelement:=monsters[generic].beastelement1;
  3500. expGiven1:=monsters[generic].expGiven;
  3501. random2;
  3502. if (generic = 3) or (generic=1) then
  3503. battleEngine;
  3504. writeln ('A giant herd of monkeys runs past you.  They are so loud, your ears begin to bleed.  You die. GAME OVER.');
  3505. delay;
  3506. delay;
  3507. delay;
  3508. clrscr;
  3509. writeln ('JUST KIDDING.  you can go in any direction.');
  3510. genericA:=readkey;
  3511. clrscr;
  3512. case genericA of
  3513.      'n':c16;
  3514.      's':c18;
  3515.      'e':d17;
  3516.      'w':b17;
  3517.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3518.                                                                 writeln ('tis not a real letter fool!');
  3519.                                                                 readln;
  3520.                                                                 clrscr;
  3521.                                                                 c17;
  3522.                                                            end;
  3523. end;                                                      
  3524. end;
  3525.  
  3526. procedure c18;
  3527. begin
  3528. minmon:=1;
  3529. maxmon:=6;
  3530. monrand;
  3531. beaststrength:=monsters[generic].beaststrength1;
  3532. beastdefense:=monsters[generic].beastdefense1;
  3533. beastname:=monsters[generic].beastname1;
  3534. beastMagStr:=monsters[generic].beastMagStr1;
  3535. beasthp:=monsters[generic].beasthp1;
  3536. beastelement:=monsters[generic].beastelement1;
  3537. expGiven1:=monsters[generic].expGiven;
  3538. random2;
  3539. if (generic = 3) or (generic=1) then
  3540. battleEngine;
  3541. writeln ('you are still in the plains.  the plains make up the vast majority of the world.  Most people who enter the plains');
  3542. writeln ('spend their lives wandering them.');
  3543. genericA:=readkey;
  3544. clrscr;
  3545. case genericA of
  3546.      'n':c17;
  3547.      's':c19;
  3548.      'e':d18;
  3549.      'w':b18;
  3550.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3551.                                                                 writeln ('tis not a real letter fool!');
  3552.                                                                 readln;
  3553.                                                                 clrscr;
  3554.                                                                 c18;
  3555.                                                            end;
  3556. end;                                                      
  3557. end;
  3558.  
  3559. procedure c19;
  3560. begin
  3561. minmon:=1;
  3562. maxmon:=6;
  3563. monrand;
  3564. beaststrength:=monsters[generic].beaststrength1;
  3565. beastdefense:=monsters[generic].beastdefense1;
  3566. beastname:=monsters[generic].beastname1;
  3567. beastMagStr:=monsters[generic].beastMagStr1;
  3568. beasthp:=monsters[generic].beasthp1;
  3569. beastelement:=monsters[generic].beastelement1;
  3570. expGiven1:=monsters[generic].expGiven;
  3571. random2;
  3572. if (generic = 3) or (generic=1) then
  3573. battleEngine;
  3574. writeln ('you are in the plains.  the plains are plains.  plains are usually composed of smaller sections of plains which');
  3575. writeln ('are usually comprised of yet smaller pieces of plain.');
  3576. genericA:=readkey;
  3577. clrscr;
  3578. case genericA of
  3579.      'n':c18;
  3580.      's':c20;
  3581.      'e':d19;
  3582.      'w':b19;
  3583.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3584.                                                                 writeln ('tis not a real letter fool!');
  3585.                                                                 readln;
  3586.                                                                 clrscr;
  3587.                                                                 c19;
  3588.                                                            end;
  3589. end;                                                      
  3590. end;
  3591.  
  3592. procedure b16;
  3593. begin
  3594. minmon:=1;
  3595. maxmon:=6;
  3596. monrand;
  3597. beaststrength:=monsters[generic].beaststrength1;
  3598. beastdefense:=monsters[generic].beastdefense1;
  3599. beastname:=monsters[generic].beastname1;
  3600. beastMagStr:=monsters[generic].beastMagStr1;
  3601. beasthp:=monsters[generic].beasthp1;
  3602. beastelement:=monsters[generic].beastelement1;
  3603. expGiven1:=monsters[generic].expGiven;
  3604. random2;
  3605. if (generic = 3) or (generic=1) then
  3606. battleEngine;
  3607. writeln ('you are in the middle of the plains, in a spot called "Patch of Grass".  there are many such spots in the world');
  3608. writeln ('because of the abundance of grass.');
  3609. genericA:=readkey;
  3610. clrscr;
  3611. case genericA of
  3612.      'n':b15;
  3613.      's':b17;
  3614.      'e':c16;
  3615.      'w':a16;
  3616.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3617.                                                                 writeln ('tis not a real letter fool!');
  3618.                                                                 readln;
  3619.                                                                 clrscr;
  3620.                                                                 b16;
  3621.                                                            end;
  3622. end;                                                      
  3623. end;
  3624.  
  3625. procedure b17;
  3626. begin
  3627. minmon:=1;
  3628. maxmon:=6;
  3629. monrand;
  3630. beaststrength:=monsters[generic].beaststrength1;
  3631. beastdefense:=monsters[generic].beastdefense1;
  3632. beastname:=monsters[generic].beastname1;
  3633. beastMagStr:=monsters[generic].beastMagStr1;
  3634. beasthp:=monsters[generic].beasthp1;
  3635. beastelement:=monsters[generic].beastelement1;
  3636. expGiven1:=monsters[generic].expGiven;
  3637. random2;
  3638. if (generic = 3) or (generic=1) then
  3639. battleEngine;
  3640. writeln ('There are many squirrels here, mostly because they want your nuts.  GIVE THEM THE NUTS MAN, FOR THE LOVE OF GOD,');
  3641. writeln ('GIVE THEM YOUR FREAKING NUTS!');
  3642. genericA:=readkey;
  3643. clrscr;
  3644. case genericA of
  3645.      'n':b16;
  3646.      's':b18;
  3647.      'e':c17;
  3648.      'w':a17;
  3649.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3650.                                                                 writeln ('tis not a real letter fool!');
  3651.                                                                 readln;
  3652.                                                                 clrscr;
  3653.                                                                 b17;
  3654.                                                            end;
  3655. end;                                                      
  3656. end;
  3657.  
  3658. procedure b18;
  3659. begin
  3660. minmon:=1;
  3661. maxmon:=6;
  3662. monrand;
  3663. beaststrength:=monsters[generic].beaststrength1;
  3664. beastdefense:=monsters[generic].beastdefense1;
  3665. beastname:=monsters[generic].beastname1;
  3666. beastMagStr:=monsters[generic].beastMagStr1;
  3667. beasthp:=monsters[generic].beasthp1;
  3668. beastelement:=monsters[generic].beastelement1;
  3669. expGiven1:=monsters[generic].expGiven;
  3670. random2;
  3671. if (generic = 3) or (generic=1) then
  3672. battleEngine;
  3673. writeln ('DER NINJA DÄMONISCHE EICHHÖRNCHEN ESSEN MEINE MUTTERN! HELFEN Sie MIR, ich STERBE!');
  3674. genericA:=readkey;
  3675. clrscr;
  3676. case genericA of
  3677.      'n':b17;
  3678.      's':b19;
  3679.      'e':c18;
  3680.      'w':a18;
  3681.      'b'..'d','f'..'m','o'..'r','t'..'v','x'..'z','0'..'9':begin
  3682.                                                                 writeln ('tis not a real letter fool!');
  3683.                                                                 readln;
  3684.                                                                 clrscr;
  3685.                                                                 b18;
  3686.                                                            end;
  3687. end;                                                      
  3688. end;
  3689.  
  3690. {___________________________________________________________
  3691. |**********************************************************|
  3692. |************************MAIN PROGRAM**********************|
  3693. |**********************************************************|
  3694. |----------------------------------------------------------|}
  3695.  
  3696. begin
  3697. for generic:=1 to 4 do
  3698.     runestones[generic]:=2;
  3699.  
  3700. {END INITIALIZE}                              
  3701.  
  3702. seed:=21;
  3703. {begin initializing pack}
  3704. for generic:= 1 to 20 do
  3705. begin
  3706.      with Items[generic] do
  3707.      begin
  3708.           ItemName:= ' ';
  3709.           ItemNum:= dummy;
  3710.      end;
  3711. end;
  3712. items[1].itemname:='Potion';
  3713. items[1].itemnum:=200;
  3714. items[2].itemname:='Elixir';
  3715. items[2].itemnum:=200;
  3716. items[3].itemname:='Ether';
  3717. items[3].itemnum:=200;
  3718. {for generic:= 1 to 20 do
  3719. begin
  3720.      if Items[generic].ItemName = 'Potion'
  3721.      then Items[generic].ItemNum:= Items[generic].ItemNum + 1;
  3722. end;
  3723. generic:=0;
  3724. for generic:= 1 to 20 do
  3725. begin
  3726.      if Items[generic].ItemName:= 'Potion'
  3727.      then generic:= 21;
  3728. end;
  3729.     if not generic = 21
  3730.     then begin
  3731.      repeat
  3732.      generic:=generic+1;
  3733.      until Items[generic].ItemName=' ';
  3734.      Items[generic].ItemName:='potion';
  3735.      items[generic].ItemNum:=1;
  3736.     end;
  3737.  
  3738. no space left thingy:
  3739. for generic:=1 to 20 do
  3740.     if not (items.ItemName=' ') then
  3741.        accumulate:=accumulate+1;
  3742.     if accumulate=20 then writeln ('your inventory is full');}
  3743. repeat
  3744. writeln ('                                FATE OF DARKNESS PT.1:                 ');
  3745. writeln ('                                       Secrets of the Necromancer      ');
  3746. writeln ('                                   (N)ew game            ');
  3747. writeln ('                                   (L)oad game           ');
  3748. generica:=readkey;
  3749. clrscr;
  3750. case generica of
  3751. 'n':goto gamestart;
  3752. 'l':load;
  3753. end;
  3754. gamestart:begin
  3755. writeln ('INSERT FANCY INTRO HERE');
  3756. readln;
  3757. clrscr;
  3758. initializeSkills;
  3759. raceChoose;
  3760. chooseclass;
  3761. disciplineChoose;
  3762. final;
  3763. clrscr;
  3764. writeln ('THE GAME DOTH BEGINNETH!');
  3765. readln;
  3766. clrscr;
  3767. castle;
  3768. end;
  3769. end.
  3770.  
  3771.  
  3772.  
  3773.  
  3774.  
  3775.  
  3776.  
  3777. ________________________________________
  3778. RANDUNIT.PAS
  3779. unit randUnit;
  3780. interface
  3781. uses wincrt;
  3782. var minmon,maxmon,generic,seed,x7,rand,rand1,rand2:integer;
  3783. function randomfun (var Seed: integer):real;
  3784. procedure monrand;
  3785. procedure random2;
  3786. procedure randomDam;
  3787. procedure random1;
  3788.  
  3789. implementation
  3790. function Randomfun (var Seed: integer):real;
  3791. const modulus=65536;
  3792.       multiplier=25137;
  3793.       increment=13849;
  3794.  
  3795. begin
  3796.      Seed:= ((Seed * multiplier) + (increment + MemAvail)) mod modulus;
  3797.      Randomfun:=Seed / modulus;
  3798. end;
  3799.  
  3800. procedure monRand;
  3801. const modulus=65536;
  3802.       multiplier=25137;
  3803.       increment=13849;
  3804. begin
  3805.      for x7:=1 to 25 do
  3806.      begin
  3807.           repeat
  3808.           generic:= 1+trunc(randomfun(seed)*maxmon);
  3809.           if generic< 0 then
  3810.           generic:=generic*(-1);
  3811.           until generic >= minmon;
  3812.     end;
  3813. end;
  3814.  
  3815. procedure random2;
  3816. const modulus=65536;
  3817.       multiplier=25137;
  3818.       increment=13849;
  3819. begin
  3820.      for x7:=1 to 25 do
  3821.      begin
  3822.           repeat
  3823.           rand2:= 1+trunc(randomfun(seed)*3);
  3824.           if rand2< 0 then
  3825.           rand2:=generic*(-1);
  3826.           until rand2 > 0;
  3827.     end;
  3828. end;
  3829.  
  3830. procedure randomDam;
  3831. const modulus=65536;
  3832.       multiplier=25137;
  3833.       increment=13849;
  3834. begin
  3835.      for x7:=1 to 25 do
  3836.      begin
  3837.           repeat
  3838.           rand:= 1+trunc(randomfun(seed)*10);
  3839.           if rand< 0 then
  3840.           rand:=rand*(-1);
  3841.           until rand > 0;
  3842.     end;
  3843. end;
  3844.  
  3845.  
  3846. procedure random1;
  3847. const modulus=65536;
  3848.       multiplier=25137;
  3849.       increment=13849;
  3850. begin
  3851.      for x7:=1 to 25 do
  3852.      begin
  3853.           repeat
  3854.           rand1:= 1+trunc(randomfun(seed)*3);
  3855.           if rand1< 0 then
  3856.           rand1:=rand1*(-1);
  3857.           until rand1 > 1;
  3858.     end;
  3859. end;
  3860. begin
  3861. seed:=24;
  3862. minmon:=1;
  3863. maxmon:=6;
  3864. generic:=1;
  3865. end.
  3866.  
  3867.  
  3868. -----------------------------------------
  3869. MONDECL.PAS
  3870.  
  3871. unit monDecl;
  3872.  
  3873. interface
  3874.  
  3875. uses
  3876.   winCrt;
  3877. type MonData = record
  3878.                      beastName1: string;
  3879.                      beastNum1:integer;
  3880.                      beastStrength1:integer;
  3881.                      beastDefense1:integer;
  3882.                      beasthp1:integer;
  3883.                      beastElement1:string;
  3884.                      beastMagStr1:integer;
  3885.                      expGiven:integer;
  3886.                      end;
  3887.      mon = array [1..6] of MonData;
  3888. var monsters:mon;
  3889.  
  3890. implementation
  3891.  
  3892. begin
  3893. monsters[1].beastName1:='Rogue Shonen';
  3894. monsters[1].beastNum1:=1;
  3895. monsters[1].beastStrength1:=16;
  3896. monsters[1].beastDefense1:=10;
  3897. monsters[1].beasthp1:=45;
  3898. monsters[1].beastElement1:='fire';
  3899. monsters[1].beastMagStr1:=20;
  3900. monsters[1].expGiven:=25;
  3901.  
  3902. monsters[2].beastName1:='FoxLord';
  3903. monsters[2].beastNum1:=2;
  3904. monsters[2].beastStrength1:=19;
  3905. monsters[2].beastDefense1:=14;
  3906. monsters[2].beasthp1:=30;
  3907. monsters[2].beastElement1:='ice';
  3908. monsters[2].beastMagStr1:=22;
  3909. monsters[2].expGiven:=45;
  3910.  
  3911. monsters[3].beastName1:='Ninja Demon Squirrel';
  3912. monsters[3].beastNum1:=3;
  3913. monsters[3].beastStrength1:=20;
  3914. monsters[3].beastDefense1:=16;
  3915. monsters[3].beasthp1:=60;
  3916. monsters[3].beastElement1:='lightning';
  3917. monsters[3].beastMagStr1:=23;
  3918. monsters[3].expGiven:=125;
  3919.  
  3920. monsters[4].beastName1:='Stray Samurai';
  3921. monsters[4].beastNum1:=4;
  3922. monsters[4].beastStrength1:=25;
  3923. monsters[4].beastDefense1:=20;
  3924. monsters[4].beasthp1:=50;
  3925. monsters[4].beastElement1:='fire';
  3926. monsters[4].beastMagStr1:=23;
  3927. monsters[4].expGiven:=75;
  3928.  
  3929. monsters[5].beastName1:='DoomShell Tortoise';
  3930. monsters[5].beastNum1:=5;
  3931. monsters[5].beastStrength1:=10;
  3932. monsters[5].beastDefense1:=26;
  3933. monsters[5].beasthp1:=25;
  3934. monsters[5].beastElement1:='fire';
  3935. monsters[5].beastMagStr1:=20;
  3936. monsters[5].expGiven:=100;
  3937.  
  3938. monsters[6].beastName1:='plenotopic demon';
  3939. monsters[6].beastNum1:=6;
  3940. monsters[6].beastStrength1:=24;
  3941. monsters[6].beastDefense1:=18;
  3942. monsters[6].beasthp1:=30;
  3943. monsters[6].beastElement1:='fire';
  3944. monsters[6].beastMagStr1:=22;
  3945. monsters[6].expGiven:=75;
  3946.  
  3947. {FOREST MONSTERS}
  3948.  
  3949. monsters[7].beastName1:='malevolent treefolk';
  3950. monsters[7].beastNum1:=7;
  3951. monsters[7].beastStrength1:=50;
  3952. monsters[7].beastDefense1:=34;
  3953. monsters[7].beasthp1:=65;
  3954. monsters[7].beastElement1:='lightning';
  3955. monsters[7].beastMagStr1:=30;
  3956. monsters[7].expGiven:=100;
  3957.  
  3958. monsters[8].beastName1:='Curious Raven';
  3959. monsters[8].beastNum1:=8;
  3960. monsters[8].beastStrength1:=25;
  3961. monsters[8].beastDefense1:=50;
  3962. monsters[8].beasthp1:=30;
  3963. monsters[8].beastElement1:='lightning';
  3964. monsters[8].beastMagStr1:=45;
  3965. monsters[8].expGiven:=125;
  3966.  
  3967. monsters[9].beastName1:='Despicable Python';
  3968. monsters[9].beastNum1:=9;
  3969. monsters[9].beastStrength1:=75;
  3970. monsters[9].beastDefense1:=43;
  3971. monsters[9].beasthp1:=46;
  3972. monsters[9].beastElement1:='fire';
  3973. monsters[9].beastMagStr1:=23;
  3974. monsters[9].expGiven:=150;
  3975.  
  3976. monsters[10].beastName1:='Loathesome Swarm';
  3977. monsters[10].beastNum1:=10;
  3978. monsters[10].beastStrength1:=30;
  3979. monsters[10].beastDefense1:=60;
  3980. monsters[10].beasthp1:=60;
  3981. monsters[10].beastElement1:='ice';
  3982. monsters[10].beastMagStr1:=50;
  3983. monsters[10].expGiven:=135;
  3984.  
  3985. monsters[11].beastName1:='Mimic';
  3986. monsters[11].beastNum1:=11;
  3987. monsters[11].beastStrength1:=30;
  3988. monsters[11].beastDefense1:=50;
  3989. monsters[11].beasthp1:=99;
  3990. monsters[11].beastElement1:='lightning';
  3991. monsters[11].beastMagStr1:=10;
  3992. monsters[11].expGiven:=450;
  3993.  
  3994. monsters[12].beastName1:='Flaming Chipmunk';
  3995. monsters[12].beastNum1:=12;
  3996. monsters[12].beastStrength1:=0;
  3997. monsters[12].beastDefense1:=0;
  3998. monsters[12].beasthp1:=0;
  3999. monsters[12].beastElement1:='fire';
  4000. monsters[12].beastMagStr1:=0;
  4001. monsters[12].expGiven:=2;
  4002.  
  4003. {VOLCANO MONSTERS}
  4004.  
  4005. monsters[13].beastName1:='Flame Salamander';
  4006. monsters[13].beastNum1:=13;
  4007. monsters[13].beastStrength1:=60;
  4008. monsters[13].beastDefense1:=55;
  4009. monsters[13].beasthp1:=70;
  4010. monsters[13].beastElement1:='fire';
  4011. monsters[13].beastMagStr1:=50;
  4012. monsters[13].expGiven:=150;
  4013.  
  4014. monsters[14].beastName1:='Ash of Phoenix';
  4015. monsters[14].beastNum1:=14;
  4016. monsters[14].beastStrength1:=65;
  4017. monsters[14].beastDefense1:=65;
  4018. monsters[14].beasthp1:=65;
  4019. monsters[14].beastElement1:='fire';
  4020. monsters[14].beastMagStr1:=65;
  4021. monsters[14].expGiven:=160;
  4022.  
  4023.                                              
  4024. monsters[15].beastName1:='Gargantuan Butterfly';
  4025. monsters[15].beastNum1:=15;
  4026. monsters[15].beastStrength1:=70;
  4027. monsters[15].beastDefense1:=65;
  4028. monsters[15].beasthp1:=70;
  4029. monsters[15].beastElement1:='fire';
  4030. monsters[15].beastMagStr1:=50;
  4031. monsters[15].expGiven:=175;
  4032.  
  4033. monsters[16].beastName1:='Flame Esper';
  4034. monsters[16].beastNum1:=16;
  4035. monsters[16].beastStrength1:=2;
  4036. monsters[16].beastDefense1:=45;
  4037. monsters[16].beasthp1:=100;
  4038. monsters[16].beastElement1:='fire';
  4039. monsters[16].beastMagStr1:=100;
  4040. monsters[16].expGiven:=245;
  4041.  
  4042. monsters[17].beastName1:='Ember Hound';
  4043. monsters[17].beastNum1:=17;
  4044. monsters[17].beastStrength1:=75;
  4045. monsters[17].beastDefense1:=60;
  4046. monsters[17].beasthp1:=70;
  4047. monsters[17].beastElement1:='fire';
  4048. monsters[17].beastMagStr1:=50;
  4049. monsters[17].expGiven:=200;
  4050.  
  4051. monsters[18].beastName1:='Darkfire Demon';
  4052. monsters[18].beastNum1:=18;
  4053. monsters[18].beastStrength1:=80;
  4054. monsters[18].beastDefense1:=70;
  4055. monsters[18].beasthp1:=50;
  4056. monsters[18].beastElement1:='fire';
  4057. monsters[18].beastMagStr1:=60;
  4058. monsters[18].expGiven:=225;
  4059.  
  4060. {CANYON MONSTERS}
  4061.  
  4062. monsters[19].beastName1:='DirtClod';
  4063. monsters[19].beastNum1:=19;
  4064. monsters[19].beastStrength1:=89;
  4065. monsters[19].beastDefense1:=25;
  4066. monsters[19].beasthp1:=100;
  4067. monsters[19].beastElement1:='ice';
  4068. monsters[19].beastMagStr1:=65;
  4069. monsters[19].expGiven:=300;
  4070.  
  4071. monsters[20].beastName1:='RockSnake';
  4072. monsters[20].beastNum1:=20;
  4073. monsters[20].beastStrength1:=91;
  4074. monsters[20].beastDefense1:=70;
  4075. monsters[20].beasthp1:=113;
  4076. monsters[20].beastElement1:='fire';
  4077. monsters[20].beastMagStr1:=34;
  4078. monsters[20].expGiven:=300;
  4079.  
  4080. monsters[21].beastName1:='Dust Devil';
  4081. monsters[21].beastNum1:=21;
  4082. monsters[21].beastStrength1:=79;
  4083. monsters[21].beastDefense1:=73;
  4084. monsters[21].beasthp1:=134;
  4085. monsters[21].beastElement1:='lightning';
  4086. monsters[21].beastMagStr1:=90;
  4087. monsters[21].expGiven:=350;
  4088.  
  4089. monsters[22].beastName1:='Unknown Assailant';
  4090. monsters[22].beastNum1:=22;
  4091. monsters[22].beastStrength1:=82;
  4092. monsters[22].beastDefense1:=90;
  4093. monsters[22].beasthp1:=147;
  4094. monsters[22].beastElement1:='lightning';
  4095. monsters[22].beastMagStr1:=50;
  4096. monsters[22].expGiven:=360;
  4097.  
  4098. monsters[23].beastName1:='Canyon Rat';
  4099. monsters[23].beastNum1:=23;
  4100. monsters[23].beastStrength1:=45;
  4101. monsters[23].beastDefense1:=45;
  4102. monsters[23].beasthp1:=134;
  4103. monsters[23].beastElement1:='ice';
  4104. monsters[23].beastMagStr1:=135;
  4105. monsters[23].expGiven:=367;
  4106.  
  4107. monsters[24].beastName1:='Stickman';
  4108. monsters[24].beastNum1:=24;
  4109. monsters[24].beastStrength1:=1;
  4110. monsters[24].beastDefense1:=1;
  4111. monsters[24].beasthp1:=1;
  4112. monsters[24].beastElement1:='Ice';
  4113. monsters[24].beastMagStr1:=1;
  4114. monsters[24].expGiven:=1;
  4115.  
  4116. {CRYPT MONSTERS}
  4117.  
  4118. monsters[25].beastName1:='HellFire Demon';
  4119. monsters[25].beastNum1:=25;
  4120. monsters[25].beastStrength1:=99;
  4121. monsters[25].beastDefense1:=99;
  4122. monsters[25].beasthp1:=99;
  4123. monsters[25].beastElement1:='fire';
  4124. monsters[25].beastMagStr1:=99;
  4125. monsters[25].expGiven:=1000;
  4126.  
  4127. monsters[26].beastName1:='Servant of the Blue Fire';
  4128. monsters[26].beastNum1:=26;
  4129. monsters[26].beastStrength1:=114;
  4130. monsters[26].beastDefense1:=102;
  4131. monsters[26].beasthp1:=100;
  4132. monsters[26].beastElement1:='ice';
  4133. monsters[26].beastMagStr1:=100;
  4134. monsters[26].expGiven:=1000;
  4135.  
  4136. monsters[27].beastName1:='SkullWarrior';
  4137. monsters[27].beastNum1:=27;
  4138. monsters[27].beastStrength1:=125;
  4139. monsters[27].beastDefense1:=113;
  4140. monsters[27].beasthp1:=113;
  4141. monsters[27].beastElement1:='lightning';
  4142. monsters[27].beastMagStr1:=75;
  4143. monsters[27].expGiven:=1100;
  4144.  
  4145. monsters[28].beastName1:='??????????????';
  4146. monsters[28].beastNum1:=28;
  4147. monsters[28].beastStrength1:=127;
  4148. monsters[28].beastDefense1:=117;
  4149. monsters[28].beasthp1:=200;
  4150. monsters[28].beastElement1:='ice';
  4151. monsters[28].beastMagStr1:=90;
  4152. monsters[28].expGiven:=1500;
  4153.  
  4154. monsters[29].beastName1:='ReDead Gryphon';
  4155. monsters[29].beastNum1:=29;
  4156. monsters[29].beastStrength1:=145;
  4157. monsters[29].beastDefense1:=134;
  4158. monsters[29].beasthp1:=250;
  4159. monsters[29].beastElement1:='lightning';
  4160. monsters[29].beastMagStr1:=100;
  4161. monsters[29].expGiven:=2000;
  4162.  
  4163. monsters[30].beastName1:='Spirit of Hatred';
  4164. monsters[30].beastNum1:=30;
  4165. monsters[30].beastStrength1:=160;
  4166. monsters[30].beastDefense1:=160;
  4167. monsters[30].beasthp1:=300;
  4168. monsters[30].beastElement1:='fire';
  4169. monsters[30].beastMagStr1:=145;
  4170. monsters[30].expGiven:=2500;
  4171.  
  4172. {BOSSES}
  4173.  
  4174. monsters[31].beastName1:='Fire Boss PHOENIX';
  4175. monsters[31].beastNum1:=31;
  4176. monsters[31].beastStrength1:=100;
  4177. monsters[31].beastDefense1:=80;
  4178. monsters[31].beasthp1:=115;
  4179. monsters[31].beastElement1:='fire';
  4180. monsters[31].beastMagStr1:=75;
  4181. monsters[31].expGiven:=750;  
  4182.  
  4183. monsters[32].beastName1:='Forest Boss VENUSIAN';
  4184. monsters[32].beastNum1:=32;
  4185. monsters[32].beastStrength1:=80;
  4186. monsters[32].beastDefense1:=70;
  4187. monsters[32].beasthp1:=200;
  4188. monsters[32].beastElement1:='ice';
  4189. monsters[32].beastMagStr1:=60;
  4190. monsters[32].expGiven:=500;
  4191.  
  4192. monsters[33].beastName1:='Canyon Boss GOLEM';
  4193. monsters[33].beastNum1:=32;
  4194. monsters[33].beastStrength1:=125;
  4195. monsters[33].beastDefense1:=120;
  4196. monsters[33].beasthp1:=225;
  4197. monsters[33].beastElement1:='lightning';
  4198. monsters[33].beastMagStr1:=80;
  4199. monsters[33].expGiven:=900;
  4200.  
  4201. monsters[34].beastName1:='Crypt Boss DEATH';
  4202. monsters[34].beastNum1:=34;
  4203. monsters[34].beastStrength1:=5;
  4204. monsters[34].beastDefense1:=200;
  4205. monsters[34].beasthp1:=300;
  4206. monsters[34].beastElement1:='fire';
  4207. monsters[34].beastMagStr1:=175;
  4208. monsters[34].expGiven:=6000;
  4209.  
  4210. monsters[35].beastName1:='The Mage of Blackest Night';
  4211. monsters[35].beastNum1:=35;
  4212. monsters[35].beastStrength1:=200;
  4213. monsters[35].beastDefense1:=250;
  4214. monsters[35].beasthp1:=400;
  4215. monsters[35].beastElement1:='lightning';
  4216. monsters[35].beastMagStr1:=200;
  4217. monsters[35].expGiven:=10000;
  4218.  
  4219. monsters[36].beastName1:='DOOM OF THE LIVING Necromancer';
  4220. monsters[36].beastNum1:=36;
  4221. monsters[36].beastStrength1:=300;
  4222. monsters[36].beastDefense1:=300;
  4223. monsters[36].beasthp1:=500;
  4224. monsters[36].beastElement1:='ice';
  4225. monsters[36].beastMagStr1:=400;
  4226. monsters[36].expGiven:=10000;
  4227. end.
  4228.  
  4229. ------------------------------
  4230. SUNIT.PAS
  4231.  
  4232.  
  4233. unit sunit;
  4234. interface
  4235. uses wincrt;
  4236. var seed,x7,randomnum,min,max:integer;
  4237. function Random1 (var Seed: integer):real;
  4238. procedure random;
  4239. procedure delay;
  4240.  
  4241. implementation
  4242. function Random1 (var Seed: integer):real;
  4243. const modulus=65536;
  4244.       multiplier=25137;
  4245.       increment=13849;
  4246.  
  4247. begin
  4248.      Seed:= ((Seed * multiplier) + (increment + MemAvail)) mod modulus;
  4249.      Random1:=Seed / modulus;
  4250. end;
  4251.  
  4252. procedure delay;
  4253. var x:longint;
  4254.     addy:real;
  4255. begin
  4256.     for x:= 1 to 20000000 do
  4257.         for x:= 1 to 20000000 do
  4258.             for x:= 1 to 20000000 do
  4259.            for x:= 1 to 20000000 do
  4260.                for x:= 1 to 20000000 do
  4261.                    addy:=20+20*20/20+45-2;
  4262. end;
  4263.  
  4264. procedure random;
  4265. const modulus=65536;
  4266.       multiplier=25137;
  4267.       increment=13849;
  4268. begin
  4269.      for x7:=1 to 25 do
  4270.      begin
  4271.           repeat
  4272.           randomnum:= 1+trunc(random1(seed)*max);
  4273.           if randomnum< 0 then
  4274.           randomnum:=randomnum*(-1);
  4275.           until randomnum > min;
  4276.     end;
  4277. end;
  4278. begin
  4279. seed:=11;
  4280. min:=1;
  4281. max:=10;
  4282. randomnum:=0;
  4283. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement