home *** CD-ROM | disk | FTP | other *** search
/ synchro.net / synchro.net.tar / synchro.net / main / BBS / MARVEL.ZIP / MARVEL.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  2003-05-07  |  49.0 KB  |  1,662 lines

  1. program marvelactionuniverse;
  2.  
  3. {$C-} {$V-}
  4. {$I COMMON.PAS}
  5.  
  6. type
  7.   playertype =
  8.     record
  9.       name,pseudo,password,ally,killer : string[30];
  10.       gaspd:string[60];
  11.       status,flights,alliance,plus : integer;
  12.       r,experience,strength,intelligence,gold,luck,dexterity,constitution,
  13.       charisma,weapon,vehicle,shield,damage,bank,attack,power,wins,loses : real;
  14.     end;
  15.  
  16.   opponent =
  17.     record
  18.       name : string[30];
  19.       gold,strength,dexterity,shield,luck,experience,weapon,weapon2,attack,power,vehicle : real;
  20.     end;
  21.  
  22. var
  23.   required          : array[1..28] of real;
  24.   wname,sname       : array[1..25] of string[30];
  25.   cross,strip,temp  : string[50];
  26.   cost,w2,w3        : array[1..25] of real;
  27.   vary,vary2,d,e,rd : real;
  28.   roll,z,opt,x,buy,g: real;
  29.   option            : string[1];
  30.   mess              : array[1..20] of string[85];
  31.   blt               : array[1..4] of string[60];
  32.   infile,outfile    : text;
  33.   messfile          : text;
  34.   opp               : opponent;
  35.   name,password,ugh : string[30];
  36.   ugh2,ugh3         : string[60];
  37.   enemy,a,b,m,j     : integer;
  38.   number,dog,f,y,p  : integer;
  39.   number_of_players : integer;
  40.   number2,verify,okea,gam    : integer;
  41.   trips,tint,spc,amount: integer;
  42.   allied,finder     : boolean;
  43.   play,doga         : boolean;
  44.   uni,live,found,ftn: boolean;
  45.   badchar,mg,fini,next   : boolean;
  46.   partone           : boolean;
  47.   bothover,healall  : boolean;
  48.   player            : array[1..30] of playertype;
  49.   result            : array[1..30] of string[80];
  50.   opty              : char;
  51.   abort,gonado,logit,yaya : boolean;
  52.  
  53.  
  54. function playerattack : real;
  55.   begin
  56.     playerattack:=(vary*player[b].attack*player[b].strength*player[b].dexterity*(random*5+1))/
  57.                   (opp.vehicle*opp.dexterity*opp.luck*vary2);
  58.   end;
  59.  
  60.  
  61. function playerattack2 : real;
  62.   begin
  63.     playerattack2:=round((vary*player[b].power*player[b].strength*(random*5+1)*(random*5+1))/
  64.                    ((opp.vehicle)*opp.luck*vary2));
  65.   end;
  66.  
  67. function roller : integer;
  68.   begin
  69.     roller:=round(random*3+1);
  70.   end;
  71.  
  72.  
  73. function opponentattack : real;
  74.   begin
  75.     opponentattack:=(vary2*opp.weapon*opp.strength*opp.dexterity*(random*5+1))/
  76.                     ((player[b].vehicle)*player[b].dexterity*player[b].luck*vary);
  77.   end;
  78.  
  79.  
  80. function opponentattack2 : real;
  81.   begin
  82.     opponentattack2:=round((vary2*opp.weapon2*opp.strength*(random*5+1)*((random*5)+1))/
  83.                      ((player[b].vehicle)*player[b].luck*vary));
  84.   end;
  85.  
  86.  
  87. function find1 : real;
  88.   begin
  89.     find1:=w2[round(player[b].weapon)];
  90.   end;
  91.  
  92. function find2 : real;
  93.   begin
  94.     find2:=w3[round(player[b].weapon)];
  95.   end;
  96.  
  97. function supplant : real;
  98.   begin
  99.     supplant:=(random(4)/10+(0.8));
  100.   end;
  101.  
  102. function experience: real;
  103.   begin
  104.     experience:=((opp.vehicle-1+(opp.weapon+opp.weapon2-2)/2)*20+(opp.shield*7.5)+((opp.strength-10)*20)+
  105.     (opp.luck+opp.dexterity-20)*17);
  106.   end;
  107.  
  108. function spin : real;
  109.   begin
  110.     spin:=(random*6+1)+(random*6+1)+(random*6+1);
  111.   end;
  112.  
  113.  
  114. overlay procedure depobank;
  115. var tempbank : real;
  116. begin
  117.   tempbank:=player[b].gold;
  118.   if tempbank<0 then tempbank:=0;
  119.   player[b].gold:=player[b].gold-tempbank;
  120.   player[b].bank:=player[b].bank+tempbank;
  121.   str(player[b].bank:1:0,temp);
  122.   nl;
  123.   ansic(3); print(temp+' dollars are in the bank. ');
  124. end;
  125.  
  126.  
  127. overlay procedure withdrawbank;
  128.   var
  129.     tempbank : real;
  130.   begin
  131.     tempbank:=player[b].bank;
  132.     if tempbank<0 then tempbank:=0;
  133.     player[b].gold:=player[b].gold+tempbank;
  134.     player[b].bank:=player[b].bank-tempbank;
  135.     str(player[b].gold:1:0,temp);
  136.     nl;
  137.     ansic(5); print('You are now carring '+temp+' dollars.');
  138.   end;
  139.  
  140. procedure checkday;
  141.   var
  142.     oldy : str;
  143.     h,a : integer;
  144.   begin
  145.     for a:=1 to number_of_players-1 do
  146.      begin
  147.       for h:=a+1 to number_of_players do
  148.        begin
  149.         if player[h].experience>player[a].experience then
  150.          begin
  151.           if h=b then b:=a
  152.           else if a=b then b:=h;
  153.           player[number_of_players+1]:=player[h];
  154.           player[h]:=player[a];
  155.           player[a]:=player[number_of_players+1];
  156.          end;
  157.        end;
  158.      end;
  159.     assign(infile,'date.mau');
  160.     reset(infile);
  161.     readln(infile,oldy);
  162.     if oldy<>date then
  163.       begin
  164.         rewrite(infile);
  165.         writeln(infile,date);
  166.         for a:=1 to number_of_players do
  167.           begin
  168.             player[a].flights:=3;
  169.             player[a].status:=0;
  170.           end;
  171.         assign(outfile,'record.mau');
  172.         rewrite(outfile);
  173.         writeln(outfile,'0');
  174.         close(outfile);
  175.       end;
  176.     close(infile);
  177. end;
  178.  
  179. procedure playerlist;
  180.   var
  181.     q,v,t,spc: integer;
  182.     ts:str;
  183.     tempaa,tempbb,tempcc,tempdd,tempee,tempff:string[10];
  184.     tch:string[5];
  185.   begin
  186.    checkday;
  187.    cls;
  188.    nl;
  189.    ansic(5);
  190.    print('Player Rankings:');
  191.    print('~~~~~~~~~~~~~~~~');
  192.    a:=1;
  193.    repeat
  194.      nl;
  195.      str(a,temp);
  196.      str(player[a].r:2:0,tempaa);
  197.      str(player[a].wins:2:0,tempcc);
  198.      str(player[a].loses:2:0,tempdd);
  199.      if player[a].status=1 then tch:='DEAD '
  200.      else tch:='ALIVE';
  201.      ansic(5);
  202.      if a<10 then prompt(' '+temp+'.  ') else
  203.      prompt(temp+'.  ');
  204.      ansic(3);
  205.      prompt(player[a].pseudo);
  206.      for spc:=1 to 30-length(player[a].pseudo) do prompt('.');
  207.      ansic(2);printa('Lev='+tempaa+'  W='+tempcc+'  L='+tempdd+'  S='+tch,abort,next);
  208.      a:=a+1;
  209.    until (a>number_of_players) or (abort);
  210.   end;
  211.  
  212. procedure leave;
  213. var a:integer;
  214.   begin
  215.   nl;
  216.   assign(outfile,'characte.mau');
  217.   rewrite(outfile);
  218.   writeln(outfile,number_of_players);
  219.   for a:= 1 to number_of_players do
  220.     begin
  221.       writeln(outfile,player[a].name);
  222.       writeln(outfile,player[a].pseudo);
  223.       writeln(outfile,player[a].gaspd);
  224.       writeln(outfile,player[a].status);
  225.       if player[a].status=1 then
  226.         writeln(outfile,player[a].killer);
  227.       writeln(outfile,round(player[a].strength),' ',round(player[a].intelligence),' ',
  228.        round(player[a].luck),' ',round(player[a].dexterity),' ',round(player[a].constitution),
  229.        ' ',round(player[a].charisma),' ',(player[a].experience):1:0,' ',
  230.        round(player[a].r),' ',round(player[a].shield),' ',round(player[a].weapon),
  231.        ' ',round(player[a].vehicle),' ',player[a].gold:1:0,' ',
  232.        ' ',player[a].flights,' ',player[a].bank:1:0,' ',round(player[a].wins),' ',round(player[a].loses),
  233.        ' ',player[a].plus);
  234.     end;
  235.   close(outfile);
  236.   return;
  237. end;
  238.  
  239. overlay procedure heal;
  240. var
  241. tempts : string[50];
  242.   begin
  243.     healall:=false;
  244.     cls;
  245.     str(round(8*player[b].r),temp);
  246.     ansic(5); print('Healing cost '+temp+' dollars per wound.');
  247.     str(player[b].damage:1:0,tempts); nl;
  248.     ansic(4); print('You have '+tempts+' points of damage to heal.');
  249.     ansic(3); prompt('How many do points do you want healed? ');
  250.     repeat
  251.       {$I-}
  252.       input(temp,3);
  253.       if temp='' then healall:=true;
  254.       opt:=value(temp);
  255.       {$I+}
  256.       checkhangup;
  257.     until (ioresult=0) or hangup;
  258.     if opt<0 then opt:=0;
  259.     if hangup then leave;
  260.     if healall then opt:=player[b].damage;
  261.     if ((round(opt))*(player[b].r)*10)>player[b].gold then
  262.       begin
  263.     ansic(8);print('Sorry, you do not have enough money.');
  264.         opt:=0;
  265.       end
  266.     else if opt>player[b].damage then opt:=player[b].damage;
  267.     player[b].damage:=player[b].damage-opt;
  268.     player[b].gold:=player[b].gold-8*opt*player[b].r;
  269.     str(round(opt),temp);
  270.     print(temp+' hit points healed.');
  271.   end;
  272.  
  273. procedure findo;
  274. begin
  275.   nl;
  276.   ansic(4);
  277.   print('You notice someting on the ground.');
  278.   ynq('Do you want to pick it up? ');
  279.   if yn then begin
  280.    okea:=round(random(99)+1);
  281.    if (okea < 10) and (player[b].weapon>=25) then begin
  282.      player[b].weapon:=player[b].weapon+1;
  283.      print('you have found '+wname[round(player[b].weapon)]+' who gladly joins your team as offense.');
  284.    end;
  285.    if (okea > 11) and (okea < 40) then begin
  286.      player[b].gold:=player[b].gold+40;
  287.      print('you have come across 40 dollars');
  288.    end else print('must have been a mirage...');
  289.   end else print('Never know what it could have been...');
  290. end;
  291.  
  292. procedure battle; forward;
  293.  
  294. overlay procedure recorda;
  295.   var
  296.     o:integer;
  297.   begin
  298.     assign(outfile,'record.mau');
  299.     rewrite(outfile);
  300.     writeln(outfile,number);
  301.     for o:=1 to number do
  302.     writeln(outfile,result[o]);
  303.     close(outfile);
  304.   end;
  305.  
  306. procedure readla;
  307.   var
  308.     o:integer;
  309.   begin
  310.     assign(infile,'record.mau');
  311.     reset(infile);
  312.     readln(infile,number);
  313.     if number >30 then number:=30;
  314.     for o:=1 to number do readln(infile,result[o]);
  315.     close(infile);
  316.   end;
  317.  
  318. overlay procedure mutantvictory;
  319. var bt:integer;
  320.   begin
  321.     a:=m;
  322.     if not doga then opp.gold:=opp.gold*supplant;
  323.     str(opp.gold:0:0,temp);
  324.     nl;
  325.     print('You take his '+temp+' dollars.');
  326.     player[b].gold:=player[b].gold+opp.gold;
  327.     if doga then
  328.       begin
  329.         nl;
  330.         ansic(7); print('In a scream of pain your opponent says...'); nl;
  331.         print('"'+player[a].gaspd+'"'); nl;
  332.         player[b].wins:=player[b].wins+1;
  333.         player[a].loses:=player[a].loses+1;
  334.         player[a].killer:=player[b].name;
  335.         player[a].status:=1;
  336.         player[a].gold:=0;
  337.           if player[a].weapon>player[b].weapon then
  338.             begin
  339.               d:=player[b].weapon;
  340.               player[b].weapon:=player[a].weapon;
  341.               player[a].weapon:=d;
  342.               bt:=player[b].plus;
  343.               player[b].plus:=player[a].plus;
  344.               player[a].plus:=bt;
  345.               ansic(7);
  346.               print('Opponent''s offense team member transfered.');
  347.             end;
  348.           if player[a].vehicle>player[b].vehicle then
  349.             begin
  350.               d:=player[b].vehicle;
  351.               player[b].vehicle:=player[a].vehicle;
  352.               player[a].vehicle:=d;
  353.               ansic(4);
  354.               print('Opponent''s defense team member transfered.');
  355.             end;
  356.           player[b].attack:=find1;
  357.           player[b].power:=find2;
  358.           readla;
  359.           number:=number+1;
  360.           result[number]:=(player[b].pseudo+' conquered '+player[a].pseudo);
  361.           recorda;
  362.        end;
  363.     z:=z*supplant;
  364.     player[b].experience:=player[b].experience+z;
  365.     str(z:0:0,temp);
  366.     print('You obtain '+temp+' exp points.');
  367.     doga:=false;
  368.   end;
  369.  
  370.  
  371.  
  372. overlay procedure levelupdate;
  373. var x,a:integer; tempaa:string[10];
  374.   begin
  375.     str(required[round(player[b].r+1)]:3:0,temp);
  376.     ansic(7);
  377.     str(player[b].experience:9:0,temp);
  378.     if player[b].experience>required[round(player[b].r+1)] then
  379.       begin
  380.         player[b].r:=player[b].r+1;
  381.         str(player[b].r:2:0,tempaa);
  382.         ansic(4);
  383.         print('Welcome to level '+tempaa+'!');
  384.         x:=random(6)+1;
  385.         case x of
  386.             1:player[b].strength:=player[b].strength+1;
  387.             2:player[b].intelligence:=player[b].intelligence+1;
  388.             3:player[b].luck:=player[b].luck+1;
  389.             4:player[b].dexterity:=player[b].dexterity+1;
  390.             5:player[b].constitution:=player[b].constitution+1;
  391.             6:player[b].charisma:=player[b].charisma+1;
  392.           end;
  393.         player[b].shield:=player[b].shield+(random*5+1)+(player[b].constitution/4);
  394.          for a:= 1 to 10 do
  395.            begin
  396.              checkhangup;
  397.              if hangup=true then begin play:=false; leave;end;
  398.            end;
  399.       end
  400.      else for a:=1 to 2 do
  401.       begin
  402.        checkhangup;
  403.        if hangup=true then leave;
  404.       end;
  405.     end;
  406.  
  407.  
  408.  
  409. procedure quickexit;
  410. begin
  411.   print('Sorry, there is no room for additional players.');
  412.   return;
  413. end;
  414.  
  415.  
  416. procedure amode;
  417. begin
  418.   roll:=playerattack;
  419.   if roll<1.5 then
  420.     begin
  421.       tint:=round(random(3)+1);
  422.       case tint of
  423.         1:print('You missed, ''Nuff Said!!!');
  424.         2:print('He dodges your attack!');
  425.         3:print('The attack is blocked!');
  426.         4: print('You slash vigorously and miss!');
  427.       end;
  428.     end
  429.   else
  430.     begin
  431.       roll:=playerattack2;
  432.       if roll>5*player[b].power then roll:=5*player[b].power;
  433.       opp.shield:=opp.shield-roll;
  434.       str(round(roll),temp);
  435.       tint:=round(random(2)+1);
  436.          case tint of
  437.            1:print('You hit him for '+temp+'.');
  438.            2:print('A swift blow to the body for '+temp+'.');
  439.            3:print('You got him for '+temp+'.');
  440.          end;
  441.       if opp.shield<=0 then
  442.         begin
  443.           nl;
  444.           tint:=round(random(3)+1);
  445.              case tint of
  446.                1:print('A swift death!');
  447.                2:print('It died, ''Nuff Said!');
  448.                3:print('A vigilanty killing!');
  449.                4:print('It won''t be back!');
  450.              end;
  451.           okea:=round(random(99)+1);
  452.           if okea<30 then findo;
  453.           mutantvictory;
  454.           live:=false;
  455.         end;
  456.     end;
  457. end;
  458.  
  459. procedure bmode;
  460. var bt:integer;
  461. begin
  462.   if (opp.shield>0) and live then
  463.     begin
  464.       roll:=opponentattack;
  465.         if roll<1.5 then
  466.           begin
  467.             ansic(7); print('His attack glaces your skin.');
  468.           end
  469.         else
  470.           begin
  471.             roll:=opponentattack2;
  472.             if roll>5*opp.weapon2 then roll:=5*opp.weapon2;
  473.               str(round(roll),temp);
  474.               tint:=round(random(2)+1);
  475.                  case tint of
  476.                    1:print('He hit you for '+temp+'.');
  477.                    2:print('He inflicted a crushing blow for '+temp+'.');
  478.                    3:print('He leads a sudden attack for '+temp+'.');
  479.                  end;
  480.               player[b].damage:=player[b].damage+roll;
  481.             if (player[b].damage>=player[b].shield) then begin
  482.               nl;
  483.               tint:=round(random(3)+1);
  484.                  case tint of
  485.                    1:print('You died! -''Nuff Said!!!..sayonara');
  486.                    2:print('You bit the dust!');
  487.                    3:print('Down into the depths you slowly die!');
  488.                    4:print('Your outta here!');
  489.                  end;
  490.               if doga then
  491.                 begin
  492.                   player[a].wins:=player[a].wins+1;
  493.                   player[b].loses:=player[b].loses+1;
  494.                   player[a].gold:=player[a].gold+player[b].gold;
  495.                   player[b].gold:=0;
  496.                   readla;
  497.                   number:=number+1;
  498.                   result[number]:=(player[b].name+' conqured '+player[a].name);
  499.                   recorda;
  500.                 end;
  501.                 live:=false;
  502.                 leave;
  503.                 play:=false;
  504.               end;
  505.              end;
  506.            end;
  507. end;
  508.  
  509. overlay procedure statshow;
  510. var
  511. tempaa,tempbb,tempcc,tempdd,tempee,tempff,tempgg,temphh,tempii,tempjj,tempkk,templl,tempmm,tempnn,
  512. tempoo,temppp,tempqq : string[50];
  513. word : string[20];
  514.  begin
  515.   cls;
  516.   str(round(player[b].r),tempaa);
  517.   str(player[b].gold:1:0,tempbb);
  518.   str(player[b].strength:2:0,tempcc);
  519.   str(player[b].intelligence:2:0,tempdd);
  520.   str(player[b].luck:2:0,tempee);
  521.   str(player[b].dexterity:2:0,tempff);
  522.   str(player[b].constitution:2:0,tempmm);
  523.   str(player[b].charisma:2:0,tempnn);
  524.   str(player[b].experience:1:0,tempgg);
  525.   str((player[b].shield-player[b].damage):1:0,temphh);
  526.   str(player[b].shield:1:0,tempii);
  527.   str(player[b].bank:1:0,tempjj);
  528.   str(player[b].flights,tempkk);
  529.   str(round(3-dog),tempoo);
  530.   str(round(player[b].wins),temppp);
  531.   str(round(player[b].loses),tempqq);
  532.   str(10-trips,templl);
  533.   ansic(5); print('Name: '+player[b].pseudo+'   Level: '+tempaa+'   W/L: '+temppp+'/'+tempqq+'   Exp: '+tempgg);nl;
  534.   ansic(4); print('Str: '+tempcc+'      Int: '+tempdd+'      Con: '+tempmm+'     Money(in hand) $'+tempbb);
  535.   ansic(4); print('Dex: '+tempff+'      Luk: '+tempee+'      Chr: '+tempnn+'     Money(in bank) $'+tempjj);
  536.   nl;
  537.   ansic(2); print('Battles: '+tempoo+'   Runs: '+tempkk+'    Fights: '+templl+'   Hps: '+temphh+'('+tempii+')');
  538.   nl;
  539.   ansic(3); print('Your team consists of');
  540.   ansic(3); print('Offense: '+wname[round(player[b].weapon)]+'   Defense: '+sname[round(player[b].vehicle)]);
  541.  end;
  542.  
  543. overlay procedure chstats;
  544. var temp1a,temp1b,temp1c,temp1d,temp1e,temp1f : real;
  545.     tempaa,tempbb,tempcc,tempdd,tempee,tempff : string[50];
  546.  
  547.   procedure incre;
  548.   begin
  549.     prompt('Increase which stat? '); onek(opty,'123456Q');
  550.     case opty of
  551.       '1':player[b].strength:=player[b].strength+1;
  552.       '2':player[b].intelligence:=player[b].intelligence+1;
  553.       '3':player[b].dexterity:=player[b].dexterity+1;
  554.       '4':player[b].luck:=player[b].luck+1;
  555.       '5':player[b].constitution:=player[b].constitution+1;
  556.       '6':player[b].charisma:=player[b].charisma+1;
  557.       'Q':partone:=false;
  558.     end;
  559.   end;
  560.  
  561.   procedure decre;
  562.   begin
  563.     prompt('Decrease which stat? '); onek(opty,'123456');
  564.     case opty of
  565.       '1':player[b].strength:=player[b].strength-2;
  566.       '2':player[b].intelligence:=player[b].intelligence-2;
  567.       '3':player[b].dexterity:=player[b].dexterity-2;
  568.       '4':player[b].luck:=player[b].luck-2;
  569.       '5':player[b].constitution:=player[b].constitution-2;
  570.       '6':player[b].charisma:=player[b].charisma-2;
  571.     end;
  572.   end;
  573.  
  574.   procedure ministat;
  575.   begin
  576.     yaya:=true;
  577.     partone:=false;
  578.     str(player[b].strength:1:0,tempaa);
  579.     str(player[b].intelligence:1:0,tempbb);
  580.     str(player[b].dexterity:1:0,tempdd);
  581.     str(player[b].luck:1:0,tempcc);
  582.     str(player[b].constitution:1:0,tempee);
  583.     str(player[b].charisma:1:0,tempff);
  584.     nl;
  585.     print('Status Change:');
  586.     print('~~~~~~~~~~~~~~');
  587.     print('1> Str: '+tempaa);
  588.     print('2> Int: '+tempbb);
  589.     print('3> Dex: '+tempdd);
  590.     print('4> Luk: '+tempcc);
  591.     print('5> Con: '+tempee);
  592.     print('6> Chr: '+tempff); nl;
  593.     if player[b].strength < 6 then begin yaya:=false;nl; print('Strength cannot go below 6');end;
  594.     if player[b].intelligence < 6 then begin yaya:=false;nl; print('Intelligence cannot go below 6');end;
  595.     if player[b].dexterity < 6 then begin yaya:=false;nl; print('Dexterity cannot go below 6');end;
  596.     if player[b].luck < 6 then begin yaya:=false;nl; print('Luck cannot go below 6');end;
  597.     if player[b].constitution < 6 then begin yaya:=false;nl; print('Constitution cannot go below 6');end;
  598.     if player[b].charisma < 6 then begin yaya:=false;nl; print('Charisma cannot go below 6');end;
  599.     if yaya then begin
  600.       ynq('Is this correct? ');
  601.       if not yn then begin
  602.         player[b].strength:=temp1a;
  603.         player[b].intelligence:=temp1b;
  604.         player[b].dexterity:=temp1d;
  605.         player[b].luck:=temp1c;
  606.         player[b].constitution:=temp1e;
  607.         player[b].charisma:=temp1f;
  608.         bothover:=false;
  609.        end
  610.       else bothover:=false;
  611.     end
  612.     else begin
  613.       if not yaya then begin
  614.         player[b].strength:=temp1a;
  615.         player[b].intelligence:=temp1b;
  616.         player[b].dexterity:=temp1d;
  617.         player[b].luck:=temp1c;
  618.         player[b].constitution:=temp1e;
  619.         player[b].charisma:=temp1f;
  620.         bothover:=false;
  621.        end
  622.       else bothover:=false;
  623.     end;
  624.   end;
  625.  
  626. begin
  627.   cls;
  628.   bothover:=false;
  629.   temp1a:=player[b].strength;
  630.   temp1b:=player[b].intelligence;
  631.   temp1c:=player[b].luck;
  632.   temp1d:=player[b].dexterity;
  633.   temp1e:=player[b].constitution;
  634.   temp1f:=player[b].charisma;
  635.   str(player[b].strength:1:0,tempaa);
  636.   str(player[b].intelligence:1:0,tempbb);
  637.   str(player[b].luck:1:0,tempcc);
  638.   str(player[b].dexterity:1:0,tempdd);
  639.   str(player[b].constitution:1:0,tempee);
  640.   str(player[b].charisma:1:0,tempff);
  641.   repeat
  642.     partone:=true;
  643.     print('Status Change:');
  644.     print('~~~~~~~~~~~~~');
  645.     print('You may increase any stat by one,');
  646.     print('yet you must decrease another by two.');
  647.     nl;
  648.     print('1> Str: '+tempaa);
  649.     print('2> Int: '+tempbb);
  650.     print('3> Dex: '+tempdd);
  651.     print('4> Luk: '+tempcc);
  652.     print('5> Con: '+tempee);
  653.     print('6> Chr: '+tempff);nl;
  654.     incre; if partone then decre else partone:=false;
  655.     if partone then bothover:=true;
  656.     if not partone then bothover:=false else ministat;
  657.   until not bothover;
  658. end;
  659.  
  660. procedure attackmodes;
  661. begin
  662.   if opp.dexterity>player[b].dexterity then
  663.     begin
  664.       if play then bmode;
  665.       if play then amode;
  666.     end else
  667.   if opp.dexterity<player[b].dexterity then
  668.     begin
  669.       if play then amode;
  670.       if play then bmode;
  671.     end
  672.   else begin
  673.       if play then amode;
  674.       if play then bmode;
  675.     end
  676. end;
  677.  
  678.  
  679.  
  680. procedure searcher;
  681. var a:integer;
  682.   begin
  683.     trips:=trips+1;
  684.     readln(infile,amount);
  685.       rd:=random*(amount-1)+1;
  686.       amount:=round(rd);
  687.         for a:=1 to amount do
  688.          begin
  689.           readln(infile,opp.name);
  690.           readln(infile,opp.shield,opp.weapon,opp.weapon2,opp.vehicle,opp.luck,
  691.           opp.strength,opp.dexterity,opp.gold,z);
  692.  
  693.          end;
  694.          close(infile);
  695.          opp.weapon:=opp.weapon*supplant;
  696.          opp.weapon2:=opp.weapon2*supplant;
  697.          opp.vehicle:=opp.vehicle*supplant;
  698.          opp.luck:=opp.luck*supplant;
  699.          opp.strength:=opp.strength*supplant;
  700.          opp.dexterity:=opp.dexterity*supplant;
  701.          opp.shield:=opp.shield*supplant;
  702.   end;
  703.  
  704.  
  705. procedure fight(filename:str);
  706. begin
  707.   assign(infile,filename);
  708.   reset(infile);
  709.   searcher;
  710.   battle;
  711. end;
  712.  
  713.  
  714. procedure doggie;
  715. var
  716. tempaa,tempbb,tempcc,tempdd,tmpgg : string[10];
  717. tmphh : string[2];
  718. tch:string[5];
  719. spc,a:integer;
  720. gono:boolean;
  721.   begin
  722.    if dog<=3 then
  723.    begin
  724.    nl;
  725.    checkday;
  726.    repeat
  727.     repeat
  728.      cls;
  729.      ansic(4);
  730.      print('Engage in Character to Character Battle:');
  731.      print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
  732.       if number_of_players=1 then begin print('You are the only player so far!'); exit; end
  733.       else begin
  734.          begin
  735.           a:=1;
  736.           checkhangup;
  737.           if hangup then leave;
  738.           repeat
  739.             if player[a].r>player[b].r-4 then begin
  740.               nl;
  741.               str(a,temp);
  742.               str(player[a].r:2:0,tempaa);
  743.               str(player[a].wins:2:0,tempcc);
  744.               str(player[a].loses:2:0,tempdd);
  745.               if player[a].status=1 then tch:='DEAD '
  746.               else tch:='ALIVE';
  747.               ansic(5);
  748.               if a<10 then prompt(' '+temp+'.  ') else
  749.               prompt(temp+'.  ');
  750.               ansic(3);
  751.               prompt(player[a].pseudo);
  752.               for spc:=1 to 30-length(player[a].pseudo) do prompt('.');
  753.               ansic(2);printa('Lev='+tempaa+'  W='+tempcc+'  L='+tempdd+'  S='+tch,abort,next);
  754.             end;
  755.             a:=a+1;
  756.           until (a>number_of_players) or (abort);
  757.          end;
  758.         nl;
  759.         ansic(3);
  760.         prompt('Enter the rank # of your opponent: ');
  761.         {$I-}
  762.         input(tmphh,2);
  763.         enemy:=value(tmphh);
  764.         {$I+}
  765.         if (enemy=0) or (player[enemy].pseudo=player[b].pseudo) or (player[enemy].status=1) then exit;
  766.         checkhangup;
  767.       end;
  768.     until (hangup) or (enemy<>0);
  769.      if hangup then leave;
  770.      for a:=1 to number_of_players do
  771.        begin
  772.          if enemy=a then
  773.           begin
  774.             if player[a].r>(player[b].r-4) then
  775.              begin
  776.                finder:=true;
  777.                m:=a;
  778.              end;
  779.           end;
  780.        end;
  781.        checkhangup;
  782.     until (hangup) or (finder=true);
  783.     if hangup then leave;
  784.       a:=m;
  785.         begin
  786.           opp.name:=player[a].pseudo;
  787.           opp.shield:=player[a].shield;
  788.           f:=b;
  789.           vary2:=supplant;
  790.           doga:=true;
  791.           d:=player[b].attack;
  792.           e:=player[b].power;
  793.           g:=player[b].weapon;
  794.           b:=a;
  795.           dog:=dog+1;
  796.           opp.weapon:=find1;
  797.           opp.weapon2:=find2;
  798.           b:=f;
  799.           player[b].weapon:=g;
  800.           player[b].attack:=d;
  801.           player[b].power:=e;
  802.           opp.vehicle:=player[a].vehicle;
  803.           opp.luck:=player[a].luck;
  804.           opp.strength:=player[a].strength;
  805.           opp.dexterity:=player[a].dexterity;
  806.           opp.gold:=player[a].gold;
  807.           if opp.gold<0 then opp.gold:=0;
  808.           z:=player[a].experience/10;
  809.           finder:=false;
  810.           player[b].alliance:=0;
  811.           player[a].alliance:=0;
  812.           battle;
  813.         end;
  814.     end;
  815.   end;
  816.  
  817. procedure battle;
  818. var loss,playerrem:real; option:char; tempxx:string[50];
  819.   begin
  820.     nl;
  821.     live:=true;
  822.     while live=true do
  823.     begin
  824.     playerrem:=player[b].shield-player[b].damage;
  825.     str(playerrem:1:0,tempxx);
  826.     nl;
  827.     ansic(4); print('You come across a '+opp.name+'.');
  828.       repeat
  829.         ansic(2);prompt('Combat ('+tempxx+' hps): (A,R,S): ');
  830.         onek(option,'ARS?');
  831.         if option='?' then begin
  832.            nl;nl;
  833.            print('(A)ttack your opponent.');
  834.            print('(R)un from your opponent.');
  835.            print('(S)tatus check.');
  836.            nl;
  837.         end;
  838.       until (hangup) or (option='A') or (option='R') or (option='S');
  839.         if hangup then leave;
  840.         case option of
  841.              'A':attackmodes;
  842.              'S':statshow;
  843.              'R':if (random*4+1)+player[b].dexterity>opp.dexterity then
  844.                    begin
  845.                      nl;
  846.                      ansic(7); print('You flee from the battle sight.');
  847.                      doga:=false;
  848.                      live:=false;
  849.                      uni:=false
  850.                    end;
  851.         end;
  852.     end;
  853.   end;
  854.  
  855. overlay procedure credits;
  856.   begin
  857.     cls;
  858.     print('Marvel Action Universe Credits');
  859.     print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
  860.     print('Idea From         :  Jim Keith  AKA  Night Dragon      ');
  861.     nl;
  862.     pausescr;
  863.   end;
  864.  
  865.  overlay procedure docs;
  866.   begin
  867.    cls;
  868.    printfile('docs.mau');
  869.    pausescr;
  870.   end;
  871.  
  872. procedure vic;
  873. var ahuh:boolean;
  874.  
  875.  procedure dit;
  876.   begin
  877.   nl;ansic(3);print('Enter your new Death chant.');
  878.   prompt('>');inputl(ugh3,60);
  879.   ynq('Is this correct? ');
  880.   if yn then ahuh:=true else ahuh:=false;
  881.   end;
  882.  
  883. begin
  884.   repeat
  885.     dit
  886.   until ahuh;
  887.   ahuh:=true;
  888. end;
  889.  
  890. procedure create(new:boolean);
  891. begin
  892.   if new then
  893.     begin
  894.       nl;
  895.       a:=number_of_players+1;
  896.       player[a].name:=thisuser.name;
  897.       player[a].pseudo:=thisuser.name;
  898.       a:=number_of_players+1;
  899.       vic;
  900.     end
  901.   else
  902.     begin
  903.       a:=b;
  904.     end;
  905.   with player[a] do
  906.     begin
  907.       strength:=12;
  908.       status:=0;
  909.       if new then number_of_players:=number_of_players+1;
  910.       intelligence:=12;
  911.       luck:=12;
  912.       alliance:=0;
  913.       damage:=0;
  914.       gaspd:=ugh3;
  915.       dexterity:=12;
  916.       constitution:=12;
  917.       charisma:=12;
  918.       gold:=round(random(100)+175);
  919.       weapon:=1;
  920.       vehicle:=1;
  921.       experience:=0;
  922.       plus:=0;
  923.       bank:=(random(199)+1);
  924.       r:=1;
  925.       shield:=(random*4+1)+player[a].constitution;
  926.       flights:=3;
  927.       wins:=0;
  928.       loses:=0;
  929.     end;
  930.   nl;
  931.   b:=a;
  932. end;
  933.  
  934. procedure strait;
  935. var p:integer;
  936. begin
  937.   for p:=1 to 25-length(strip) do
  938.     strip:=strip+' ';
  939. end;
  940.  
  941. procedure stripe;
  942. var p:integer;
  943. begin
  944.   for p:=1 to 25-length(cross) do
  945.     cross:=cross+' ';
  946. end;
  947.  
  948. procedure weaponlist;
  949. begin
  950.   nl;
  951.   nl;
  952.   a:=1;
  953.   print('  Num. Offense Team Member         Defense Team Member             Price   ');
  954.   print('(-------------------------------------------------------------------------)');
  955.   repeat
  956.     checkhangup;
  957.     if hangup then leave;
  958.     str(cost[a]:9:0,temp);
  959.     str(a:2,opp.name);
  960.     ansic(4);
  961.     strip:=wname[a];
  962.     strait;
  963.     cross:=sname[a];
  964.     stripe;
  965.     printa('  '+opp.name+'>  '+(strip)+'   '+(cross)+'   '+temp,abort,next);nl;
  966.     a:=a+1;
  967.   until (a>25) or (abort);
  968. end;
  969.  
  970.  
  971. procedure readlist;
  972.   begin
  973.     assign(infile,'characte.mau');
  974.     reset(infile);
  975.     readln(infile,number_of_players);
  976.     a:=1;
  977.     b:=1;
  978.     while (a<=number_of_players) do
  979.       begin
  980.         readln(infile,player[a].name,player[a].pseudo,player[a].gaspd,player[a].status);
  981.         if player[a].status=1 then
  982.           readln(player[a].killer);
  983.         read(infile,player[a].strength,player[a].intelligence,player[a].luck,player[a].dexterity);
  984.         read(infile,player[a].constitution,player[a].charisma,player[a].experience,player[a].r);
  985.         read(infile,player[a].shield,player[a].weapon,player[a].vehicle,player[a].gold);
  986.         read(infile,player[a].flights,player[a].bank,player[a].wins,player[a].loses);
  987.         readln(infile,player[a].plus);
  988.         a:=a+b;
  989.       end;
  990.     close(infile);
  991. end;
  992.  
  993. procedure weaponquip;
  994. begin
  995.  
  996.   input(temp,1);
  997.   weaponlist;
  998. end;
  999.  
  1000.  
  1001. overlay procedure weaponshop;
  1002. var
  1003. tmpvv : string[2];
  1004. begin
  1005.   cls;
  1006.   ansic(4); print('Team Hiring Shop');
  1007.   ansic(7); print('~~~~~~~~~~~~~~~~');
  1008.   option:='H';
  1009.   while option<>'' do
  1010.     begin
  1011.       repeat
  1012.       nl;
  1013.       prompt('(H)ire, (S)ell, (L)ist, or (Q)uit ?');
  1014.       onek(opty,'HSQL');
  1015.       checkhangup;
  1016.       until (opty='H') or (opty='S') or (opty='') or (opty='Q') or (opty='L') or hangup;
  1017.       if hangup then leave;
  1018.         if opty='Q' then
  1019.         begin
  1020.          exit; end;
  1021.         if opty='L' then
  1022.           begin
  1023.             weaponlist;
  1024.           end;
  1025.         if opty='H' then
  1026.           begin
  1027.             nl;
  1028.            repeat
  1029.             {$I-}
  1030.             nl;
  1031.             prompt('Enter offense/armor team member # you wanna hire: ');
  1032.             input(temp,2);
  1033.             buy:=value(temp);
  1034.             {$I+}
  1035.             j:=ioresult;
  1036.             checkhangup;
  1037.            until (hangup) or(j=0);
  1038.            if hangup then leave;
  1039.            if buy=0 then exit;
  1040.            if cost[round(buy)]>player[b].gold then print('You don not have enough money.')
  1041.            else begin
  1042.                repeat
  1043.                  nl;
  1044.                  prompt('(O)ffensive or (D)efensive Team Member: ');
  1045.                  onek(opty,'OD');
  1046.                  checkhangup;
  1047.                until (hangup) or (option<>'D');
  1048.                if hangup then leave;
  1049.                if opty='O' then
  1050.                   begin
  1051.                     ynq('Are you sure you want Hire him? ');
  1052.                        if yn then begin
  1053.                           player[b].gold:=player[b].gold-cost[round(buy)];
  1054.                           player[b].weapon:=buy;
  1055.                           nl;
  1056.                           ansic(5); print('You''ve hires '+wname[round(buy)]);
  1057.                           player[b].attack:=find1;
  1058.                           player[b].power:=find2;
  1059.                        end;
  1060.                   end
  1061.                else if opty='D' then
  1062.                   begin
  1063.                     ynq('Are you sure you want Hire Him? ');
  1064.                        if yn then begin
  1065.                           player[b].gold:=player[b].gold-cost[round(buy)];
  1066.                           player[b].vehicle:=buy;
  1067.                           nl;
  1068.                          ansic(5); print('You''ve hired '+sname[round(buy)]);
  1069.                        end;
  1070.                   end
  1071.                else nl;
  1072.              end;
  1073.            end
  1074.          else if opty='S' then
  1075.             begin
  1076.               repeat
  1077.                 nl;
  1078.                 prompt('(O)ffense,(D)efense,(Q)uit :');
  1079.                 onek(opty,'ODQ');
  1080.                 checkhangup;
  1081.               until (hangup) or (opty='O') or (opty='D') or (opty='') or (opty='Q');
  1082.               if hangup then leave;
  1083.                 if opty='Q' then
  1084.                   begin
  1085.                     exit; end;
  1086.                 if opty='O' then
  1087.                   begin
  1088.                     y:=(round(player[b].weapon));
  1089.                     x:=player[b].charisma;
  1090.                     x:=x*cost[y];
  1091.                     x:=((1/20)*x);
  1092.                     str(x:0:0,temp);
  1093.                     repeat
  1094.                     nl;
  1095.                     prompt('I will purchase him for '+temp+', okay?');
  1096.                     onek(opty,'YN');
  1097.                     checkhangup;
  1098.                     until (hangup) or (opty<>'D');
  1099.                     if hangup then leave;
  1100.                     if opty='Y' then
  1101.                       begin
  1102.                         ansic(7); print('Thank you!');
  1103.                         player[b].weapon:=1;
  1104.                         player[b].gold:=player[b].gold+x;
  1105.  
  1106.                       end;
  1107.                    end
  1108.                  else if opty='D' then
  1109.                    begin
  1110.                      x:=((1/20)*(player[b].charisma)*(cost[round(player[b].vehicle)]));
  1111.                      str(x:7:0,temp);
  1112.                      repeat
  1113.                      nl;
  1114.                      prompt('I will purchase him for '+temp+', okay?');
  1115.                      onek(opty,'YN');
  1116.                      until (hangup) or (opty<>'D');
  1117.                      if opty='Y' then
  1118.                        begin
  1119.                          print('Thank you!');
  1120.                          player[b].vehicle:=1;
  1121.                          player[b].gold:=player[b].gold+x;
  1122.                        end;
  1123.                     end;
  1124.             end;
  1125.        end;
  1126. end;
  1127.  
  1128.  
  1129. procedure error;
  1130.   begin
  1131.     quickexit;
  1132.   end;
  1133.  
  1134. overlay procedure listplayers;
  1135. var a:integer;
  1136.   begin
  1137.     cls;
  1138.     ansic(4); print('Latest casualties due to the holocaust');
  1139.     ansic(5);print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
  1140.     readla;
  1141.     a:=1;
  1142.     repeat
  1143.      checkhangup;
  1144.      if hangup then leave;
  1145.      ansic(3);
  1146.      printa(result[a],abort,next);
  1147.      a:=a+1;
  1148.     until (a>=number) or (abort);
  1149.   end;
  1150.  
  1151. overlay procedure spy;
  1152. var aa,bb,cc,dd,ee,ff,gg,hh:string[30]; a:integer;
  1153.   begin
  1154.     cls;
  1155.     print('Spying on another user eh.. well you may spy, but to keep');
  1156.     print('you from copying this person''s stats, they will not be   ');
  1157.     print('available to you.  Note that this is gonna cost you some ');
  1158.     print('cash too.  Cost: 20 dollars                              ');
  1159.     nl;
  1160.     prompt('Who do you wish to spy on?'); input(aa,30);
  1161.     for a:=1 to number_of_players do
  1162.          if player[a].pseudo=aa then
  1163.            begin
  1164.              if player[b].gold<20 then
  1165.                begin
  1166.                  ansic(8);
  1167.                  print('You do not have enough money!');
  1168.                end
  1169.              else begin
  1170.                player[b].gold:=player[b].gold-20;
  1171.                str(player[a].r:1:0,bb);
  1172.                str(player[a].experience:1:0,cc);
  1173.                str(player[a].flights,dd);
  1174.                str((player[a].shield-player[a].damage):1:0,ee);
  1175.                str(player[a].bank:1:0,ff);
  1176.                str(player[a].gold:1:0,gg);
  1177.                str(player[a].shield:1:0,hh);
  1178.                nl;
  1179.                ansic(8);
  1180.                print(player[a].pseudo);nl;
  1181.                print('Level  :'+bb);
  1182.                print('Exp    :'+cc);
  1183.                print('Flights:'+dd);
  1184.                print('Hps    :'+ee+'('+hh+')');nl;
  1185.                ansic(5);
  1186.                print('Offense:'+wname[round(player[a].weapon)]);
  1187.                ansic(5);
  1188.                print('Defense:'+sname[round(player[a].vehicle)]);nl;
  1189.                ansic(4);
  1190.                print('Money(in hand)$'+gg);
  1191.                ansic(4);
  1192.                print('Money(in bank)$'+ff);nl;pausescr;
  1193.              end
  1194.            end
  1195.   end;
  1196.  
  1197. overlay procedure gamble;
  1198.  
  1199. var
  1200. tempgd:string[5];
  1201. realgold:real;
  1202.  
  1203.   begin
  1204.    nl;
  1205.    if trips>10 then print('Professor Xavier''s Obstacle Course is closed until tomorrow!')
  1206.    else begin
  1207.     cls;
  1208.     print('  Welcome to the Professor Xavier''s Obstacle Course');
  1209.     print('           Maximum wager is 25,000 dollars');
  1210.     nl;
  1211.     prt('How much money do you wish to wager? ');
  1212.     input(tempgd,5);
  1213.     {$I-}
  1214.     realgold:=value(tempgd);
  1215.     realgold:=round(realgold);
  1216.     {$I+}
  1217.     if realgold>player[b].gold then begin nl;
  1218.        print('You do not have enough money!'); end;
  1219.     if (realgold<>0) and ((player[b].gold>=realgold) and (realgold<=25000)) then begin
  1220.       okea:=round(random(99)+1);
  1221.       if okea <= 3 then begin
  1222.         realgold:=realgold*100;
  1223.         player[b].gold:=player[b].gold+realgold;
  1224.         str(realgold,tempgd);
  1225.         print('You clear all the obstacles and win '+tempgd+' dollars!');
  1226.       end;
  1227.       if (okea>3) and (okea<=15) then begin
  1228.         realgold:=realgold*10;
  1229.         player[b].gold:=player[b].gold+realgold;
  1230.         str(realgold,tempgd);
  1231.         print('You clear 50% of the obstacles and win '+tempgd+' dollars!');
  1232.       end;
  1233.       if (okea>15) and (okea<=30) then begin
  1234.         realgold:=realgold*3;
  1235.         player[b].gold:=player[b].gold+realgold;
  1236.         str(realgold,tempgd);
  1237.         print('You clear %25 of the obstacles and win '+tempgd+' gold pieces!');
  1238.       end;
  1239.       if okea>30 then begin
  1240.         player[b].gold:=player[b].gold-realgold;
  1241.         print('Sorry, you lose! Your money was donated to Professor Xavier''s School for TALENTED children.');
  1242.       end;
  1243.     end;
  1244.    end;
  1245.   end;
  1246.  
  1247.  
  1248. procedure afight;
  1249.   begin
  1250.     uni:=true;
  1251.     while uni do
  1252.       begin
  1253.         if trips>10 then
  1254.           begin
  1255.             nl;
  1256.             ansic(5); print('Fallout is evident at the time.');
  1257.             ansic(5); print('Better head back to the shelter.');
  1258.             uni:=false;
  1259.           end
  1260.         else
  1261.           begin
  1262.             cls;
  1263.             fight('junkm1.mau');
  1264.             uni:=false;
  1265.           end;
  1266.       end;
  1267.   end;
  1268.  
  1269. procedure bfight;
  1270.   begin
  1271.     uni:=true;
  1272.     while uni do
  1273.       begin
  1274.         if trips>10 then
  1275.           begin
  1276.             nl;
  1277.             ansic(5); print('Fallout is evident at the time.');
  1278.             ansic(5); print('Better head back to the shelter.');
  1279.             uni:=false;
  1280.           end
  1281.         else
  1282.           begin
  1283.             cls;
  1284.             fight('junkm2.mau');
  1285.             uni:=false;
  1286.           end;
  1287.       end;
  1288.   end;
  1289.  
  1290. procedure cfight;
  1291.   begin
  1292.     uni:=true;
  1293.     while uni do
  1294.       begin
  1295.         if trips>10 then
  1296.           begin
  1297.             nl;
  1298.             ansic(5); print('Fallout is evident at the time.');
  1299.             ansic(5); print('Better head back to the shelter.');
  1300.             uni:=false;
  1301.           end
  1302.         else
  1303.           begin
  1304.             cls;
  1305.             fight('junkm3.mau');
  1306.             uni:=false;
  1307.           end;
  1308.       end;
  1309.   end;
  1310.  
  1311. procedure dfight;
  1312.   begin
  1313.     uni:=true;
  1314.     while uni do
  1315.       begin
  1316.         if trips>10 then
  1317.           begin
  1318.             nl;
  1319.             ansic(5); print('Fallout is evident at the time.');
  1320.             ansic(5); print('Better head back to the shelter.');
  1321.             uni:=false;
  1322.           end
  1323.         else
  1324.           begin
  1325.             cls;
  1326.             fight('junkm4.mau');
  1327.             uni:=false;
  1328.           end;
  1329.       end;
  1330.   end;
  1331.  
  1332. procedure efight;
  1333.   begin
  1334.     uni:=true;
  1335.     while uni do
  1336.       begin
  1337.         if trips>10 then
  1338.           begin
  1339.             nl;
  1340.             ansic(5); print('Fallout is evident at the time.');
  1341.             ansic(5); print('Better head back to the shelter.');
  1342.             uni:=false;
  1343.           end
  1344.         else
  1345.           begin
  1346.             cls;
  1347.             printfile('guards.mau');
  1348.             fight('junkm5.mau');
  1349.             uni:=false;
  1350.           end;
  1351.       end;
  1352.   end;
  1353.  
  1354. procedure Bulletin;
  1355.  
  1356. var
  1357. endfil:boolean;
  1358. countr:integer;
  1359. tempcoun:string[2];
  1360.  
  1361. begin
  1362.   cls;
  1363.   countr:=0;
  1364.   printfile('bullet.mau');nl;
  1365.   ynq('Do you wish to enter a News Bulletin? ');
  1366.   if yn then begin
  1367.     nl;
  1368.     checkhangup;
  1369.     while (not endfil) do
  1370.      begin
  1371.       countr:=countr+1;
  1372.       str(countr,tempcoun);
  1373.       prt(tempcoun+'> ');
  1374.       inputl(blt[countr],60);
  1375.       if countr=4 then endfil:=true;
  1376.      end;
  1377.     nl;
  1378.     ynq('Is the bulletin correct? ');
  1379.     if yn then
  1380.      begin
  1381.       print('Saving Bulletin...');
  1382.       assign(messfile,'bullet.mau');
  1383.       rewrite(messfile);
  1384.       writeln(messfile,blt[1]);
  1385.       writeln(messfile,blt[2]);
  1386.       writeln(messfile,blt[3]);
  1387.       writeln(messfile,blt[4]);
  1388.       close(messfile);
  1389.      end;
  1390.   end;
  1391. end;
  1392.  
  1393. overlay procedure training;
  1394.  
  1395. var
  1396. temptrain : string[1];
  1397. realtrain : real;
  1398. tttgld    : integer;
  1399.  
  1400. begin
  1401.  nl;
  1402.  if trips>10 then print('Professor Xavier''s Training Grounds are closed until tomorrow!')
  1403.  else begin
  1404.   cls;
  1405.   print('Professor Xavier''s Training Grounds');
  1406.   print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
  1407.   print('Each characteristic you wish to upgrade');
  1408.   print('will cost 1,000,000 dollars per point.');
  1409.   nl;
  1410.   tttgld:=10000;
  1411.   ynq('Do you wish to upgrade a stat? ');
  1412.   if (yn) and (player[b].gold<(tttgld*100)) then
  1413.     print('Sorry, but you do not have enough money!')
  1414.   else if player[b].gold>=(tttgld*100) then begin
  1415.       nl;
  1416.       print('1> Strength       2> Intelligence');
  1417.       print('3> Dexterity      4> Luck        ');
  1418.       print('5> Constitution   6> Charisma    ');
  1419.       nl;
  1420.       prt('Which stat do you wish to increase? ');
  1421.       input(temptrain,1);
  1422.       {$I-}
  1423.       realtrain:=value(temptrain);
  1424.       {$I+}
  1425.       ynq('Are you sure? ');
  1426.       if yn then begin
  1427.         if realtrain=1 then begin
  1428.           player[b].strength:=player[b].strength+1;
  1429.           player[b].gold:=player[b].gold-(tttgld*100);
  1430.         end;
  1431.         if realtrain=2 then begin
  1432.           player[b].intelligence:=player[b].intelligence+1;
  1433.           player[b].gold:=player[b].gold-(tttgld*100);
  1434.         end;
  1435.         if realtrain=3 then begin
  1436.           player[b].dexterity:=player[b].dexterity+1;
  1437.           player[b].gold:=player[b].gold-(tttgld*100);
  1438.         end;
  1439.         if realtrain=4 then begin
  1440.           player[b].luck:=player[b].luck+1;
  1441.           player[b].gold:=player[b].gold-(tttgld*100);
  1442.         end;
  1443.         if realtrain=5 then begin
  1444.           player[b].constitution:=player[b].constitution+1;
  1445.           player[b].gold:=player[b].gold-(tttgld*100);
  1446.         end;
  1447.         if realtrain=6 then begin
  1448.           player[b].charisma:=player[b].charisma+1;
  1449.           player[b].gold:=player[b].gold-(tttgld*100);
  1450.         end;
  1451.       end;
  1452.   end;
  1453.  end;
  1454. end;
  1455.  
  1456. overlay procedure menuit;
  1457. begin
  1458. cls;
  1459. printfile('menu.mau');nl;
  1460. if so then
  1461. print('           SysOp''s please press (%) if you wish to reroll the game!');
  1462. end;
  1463.  
  1464. begin
  1465.   iport;
  1466.   gonado:=true;
  1467.   hangup:=false;
  1468.   allied:=false;
  1469.   ftn:=false;
  1470.   vary:=supplant;
  1471.   dog:=0;
  1472.   doga:=false;
  1473.   for a:=1 to 30 do
  1474.     player[a].damage:=0;
  1475.   play:=true;
  1476.   trips:=0;
  1477.   found:=false;
  1478.   verify:=0;
  1479.   name:=thisuser.name; cls;
  1480.   nl;nl;
  1481.   credits;
  1482.   cls;
  1483.   prt('     |    ');ansic(8);prompt(' <>Marvel Action Universe<> ');prt('  |  ');nl;
  1484.   prt('     |    ');ansic(1);prompt('         Version 1.01       ');prt('  |  ');nl;
  1485.   prt('     |    ');ansic(5);prompt('Hiring Prob has been fixed! ');prt('  |  ');nl;
  1486.   prt('     |    ');ansic(2);prompt('  Now enter New York as     ');prt('  |  ');nl;
  1487.   prt('     |    ');ansic(3);prompt(' you have never seen it     ');prt('  |  ');nl;
  1488.   prt('     |    ');ansic(2);prompt('  before. We have SUPER     ');prt('  |  ');nl;
  1489.   prt('   <_I_>  ');ansic(3);prompt(' HEROES galore. Battle the  ');prt('<_I_>');nl;
  1490.   prt('     Y    ');ansic(2);prompt(' SUPER VILLIANS to become...');prt('  Y  ');nl;
  1491.   prt('     V    ');ansic(8);prompt('  The ULTIMATE Mastermind   ');prt('  V  ');nl;
  1492.   nl;
  1493.   print('News Bulletin:');nl;
  1494.   printfile('bullet.mau');
  1495.   checkhangup;
  1496.   if hangup then leave;
  1497.       assign(infile,'characte.mau');
  1498.       reset(infile);
  1499.       readln(infile,number);
  1500.       number_of_players:=number;
  1501.       a:=1;
  1502.       b:=1;
  1503.       repeat
  1504.         with player[a] do
  1505.           begin
  1506.           readln(infile,name);
  1507.           readln(infile,pseudo);
  1508.           readln(infile,gaspd);
  1509.           readln(infile,status);
  1510.           if status=1 then readln(infile,killer);
  1511.           read(infile,strength,intelligence,luck,dexterity,constitution,charisma,experience,r,shield,weapon,vehicle,gold);
  1512.           read(infile,flights,bank,wins,loses,plus); readln(infile);
  1513.           a:=a+b;
  1514.           end;
  1515.        until (a>number_of_players);
  1516.        close(infile);
  1517.        for a:=1 to number_of_players do
  1518.          if player[a].name=name then
  1519.            begin
  1520.              found:=true;
  1521.              b:=a;
  1522.            end;
  1523.        if (not found) then begin
  1524.          if number_of_players >= 30 then quickexit else create(true);
  1525.        end;
  1526.        if player[b].status=1 then begin
  1527.          nl;
  1528.          ansic(3); print('A defeat was lead over you by '+player[b].killer+'.');
  1529.        end;
  1530.        checkday;
  1531.        if (player[b].flights<1) then
  1532.          begin
  1533.            trips:=12;
  1534.            dog:=4;
  1535.          end;
  1536.        player[b].flights:=player[b].flights-1;
  1537.        nl;
  1538.        pausescr; cls;
  1539.        assign(infile,'weapons.mau');
  1540.        ansic(2);
  1541.        reset(infile);
  1542.          for a:=1 to 25 do
  1543.           begin
  1544.            readln(infile,wname[a]);
  1545.            readln(infile,w2[a],w3[a]);
  1546.           end;
  1547.        close(infile); prompt(#13);
  1548.        assign(infile,'armor.mau');
  1549.        ansic(2);
  1550.        reset(infile);
  1551.          for a:=1 to 25 do
  1552.            readln(infile,sname[a]);
  1553.        close(infile);
  1554.          assign(infile,'prices.mau');
  1555.          reset(infile);
  1556.            for a:=1 to 25 do
  1557.              readln(infile,cost[a]);
  1558.          close(infile);
  1559.          player[b].attack:=find1;
  1560.          player[b].power:=find2;
  1561.          assign(infile,'experience.mau');
  1562.          reset(infile);
  1563.            for a:=1 to 28 do
  1564.              readln(infile,required[a]);
  1565.          close(infile);
  1566.         ansic(4);
  1567.         player[b].status:=0;
  1568.         vary2:=1;
  1569.         checkhangup;
  1570.         if hangup then leave;
  1571.         statshow;
  1572.         play:=true; mg:=false;
  1573.          repeat
  1574.            levelupdate;
  1575.            vary2:=1;
  1576.            if ((player[b].wins+1)*4)-(player[b].loses)<0 then begin
  1577.              nl;
  1578.              print('As a product of our twisted society, you have fallen');
  1579.              print('pray to mental breakdown.  You rampage the area in  ');
  1580.              print('absolute confusion and wander upon a group of Sector');
  1581.              print('Nineteen of Prof X''s police, they drag you to the side and');
  1582.              print('disrupt your molecular stucture, leaving you to be  ');
  1583.              print('nothing more than a pile of ashes.  Re-Rolled!      ');nl;
  1584.              pausescr;
  1585.              create(false); player[b].flights:=player[b].flights-1;
  1586.            end;
  1587.            nl;nl;
  1588.            prompt('Command (?): ');
  1589.            onek(opty,'Q12345CHWLABDGFRSTX+-?EZ%*#');
  1590.              case opty of
  1591.                   'Q':begin
  1592.                        ynq('Quit, are you sure? ');
  1593.                        if yn then play:=false;
  1594.                       end;
  1595.                   '1':afight;
  1596.                   '2':bfight;
  1597.                   '3':cfight;
  1598.                   '4':dfight;
  1599.                   '5':efight;
  1600.                   'C':chstats;
  1601.                   'H':heal;
  1602.                   'W':weaponshop;
  1603.                   'L':levelupdate;
  1604.                   'A':doggie;
  1605.                   'B':doggie;
  1606.                   'D':Docs;
  1607.                   'G':gamble;
  1608.                   'F':listplayers;
  1609.                   'R':playerlist;
  1610.                   'S':statshow;
  1611.                   'T':training;
  1612.                   'X':begin
  1613.                         print('Please note that this will completely purge');
  1614.                         print('your current character of all atributes!');nl;
  1615.                         ynq('Are you sure you want to REROLL your character? ');
  1616.                         if yn then begin
  1617.                           create(false);
  1618.                           player[b].flights:=player[b].flights-1;
  1619.                         end;
  1620.                       end;
  1621.                   '+':depobank;
  1622.                   '-':withdrawbank;
  1623.                   '?':menuit;
  1624.                   'E':bulletin;
  1625.                   'Z':spy;
  1626.                   '*':begin
  1627.                         nl;ansic(3);print('Your costume has changed off, the ');
  1628.                         ansic(3);print('X-Men give you a new one with the name...');
  1629.                         prompt('>');input(ugh,30);nl;
  1630.                         ynq('Are you sure?');
  1631.                         if (ugh<>'') and (yn) then player[b].pseudo:=ugh;
  1632.                       end;
  1633.                   '#':begin vic; player[b].gaspd:=ugh3;end;
  1634.                   '%':if so then begin
  1635.                        nl;
  1636.                        ynq('Are you sure you want to re-roll the game? ');
  1637.                        if yn then begin
  1638.                          assign(infile,'characte.mau');
  1639.                          rewrite(infile);
  1640.                          writeln(infile,'0');
  1641.                          print('Character Sheets RE-ROLLED');
  1642.                          close(infile);
  1643.                          assign(infile,'record.mau');
  1644.                          rewrite(infile);
  1645.                          writeln(infile,'0');
  1646.                          print('Fight Records Re-initialized');
  1647.                          close(infile);
  1648.                          assign(infile,'bullet.mau');
  1649.                          print('Bulletin Re-initiazled');
  1650.                          rewrite(infile);
  1651.                          close(infile);
  1652.                          play:=false;
  1653.                          gonado:=false;
  1654.                        end;
  1655.                       end;
  1656.              end;
  1657.              checkhangup;
  1658.           until (play=false) or (gonado=false) or (hangup);
  1659.           sysoplog('#*#*# '+thisuser.name+' Played Marvel ACTION Universe.');
  1660.           if gonado then leave;
  1661. end.
  1662.