home *** CD-ROM | disk | FTP | other *** search
- { Milliways Casino }
- { Copyright (C) 1987 by Charles Ezzell & Matthew Warner }
- { All Rights Reserved }
- { }
- { No part of this program may be reprinted or reproduced or utilized in any }
- { form or any electronic, mechanical, or other means no known or hereafter }
- { invented, including photocopying and recording, or in any information }
- { storage and retrieval system, without permission in writing from the }
- { author, except for those uses listed below. }
- { }
- { 1) This program is 'freeware'. No charges may be made by anyone or any }
- { service for copying this program for the use of others. }
- { 2) This program can be freely distributed in UNMODIFIED form by any }
- { Bulletin Board System Operator (hereafter known as Sysop), or any }
- { user of a BBS system. }
- { 3) A Sysop has the right to modify this program only for his/her use. He }
- { cannot distribute a modified copy without permission of the author. }
- { 4) Any modifications or improvements made by a Sysop (or user/programmer) }
- { may be sent to the author. }
- { 5) The copyright notice and name of the program can not be removed from }
- { the program. It must be shown each time the program is ran. }
- { (Its the law, not my idea) }
- { 6) By running this program, you agree to all the above conditions. }
- { }
- { }
- { Questions and Answers about the copyright by me. }
- { What rights does this give a sysop? }
- { Very simple. You can use it just like any other WWIV chn file, as long }
- { as you don't remove the copyright notice or change the name of the game. }
- { You can modify it, re-do the variables, or whatever, in order to get it }
- { to work on your system. I give you these rights. You CAN NOT distribute }
- { a modified copy. I have done things this way in order to protect my }
- { rights, and those of others who have helped me in writing this. }
- { All official releases will come through me, and be distributed through }
- { the people listed below who have volunteered their services. }
- { If you have any new ideas or suggestion to improve the game, please send }
- { them to me or one of the distributors and they will see that I get them. }
- { I've worked long and hard on this game, and, not wanting to do like }
- { others who only send out .chn files of their programs, am releasing the }
- { source code since many sysops have modified common.pas. }
- { This program has been compiled with both the original common.pas and with }
- { mine, with no problems, so most everyone of you out there should have no }
- { problems. ( Mine is approx 38k long, so most of you should not get }
- { get memory overflow errors). }
- { }
- { DISTRIBUTORS }
- { ------------ }
- { Charles Ezzell Milliways (919)823-5897 }
- { Matthew Warner The United Star Ship Saratoga (919)443-9343 }
- { Jami Chism The Pits (919)362-8053 }
- { Brandon Poole The Boinger Board (919)846-3734 }
- { }
- { Any sysop or user may distribute the program (unmodified). If you do get }
- { a copy that does not seem to work, contact one of the above, and let them }
- { know who sent you the program. If you feel the program has been modified }
- { LET ME KNOW! }
- { }
- { If any problems occur, feel free to contact me. I plan on adding new }
- { features into the game myself, and any help would be appreciated. }
- { }
- { All those who send in mods that are used in future releases get first }
- { crack at the new release. }
- { }
- { A note about some of the procedures used: }
- { procedure setcol(byte): this procedure checks to see if the user has }
- { selected ansi graphics, and if so, sets the colors using Wayne Bell's }
- { setc(byte) procedure. 0-15 give foreground colors, add 16 to get the }
- { background (haven't tried it with 24-31), and add 128 to get blink. }
- { setcol(132) should give a blinking red on most systems. }
- { procedure casdisplay(str): modified from my graphics mods and Othello }
- { game, this procedure is used to move cursor, clear screen, and in the }
- { roulette and slots games, used for color control (this procedure was }
- { written before the setcol). }
- { procedure print and print1(str): These 2 procedures are modified }
- { versions of Wayne Bell's print and print1 procedures. The only }
- { difference is they do not allow the user to stop printing the line out. }
- { It also allows for formatting the line length to the users length, }
- { unlike the print command. Colors could be added into (haven't checked) }
- { the lines by inserting the correct codes at the beginning of each }
- { string. This routines do not do a line feed or carriage return at the }
- { end of the line, so that must be inserted in (or use procedure nl from }
- { common.pas. }
- { Example: Printaa(#1+#2+'Hi there'+#13+#10); }
- { this should give you print Hi there in ansic(2), with a cr/lf }
- { print('Hi there'); }
- { this would print 'Hi there', leaving the cursor at the end of }
- { of the line. }
- { }
- { If any questions, feel free to contact me on any of the BBS's systems }
- { listed above, or write me. }
- { }
- { Charles N. Ezzell }
- { Route 2, Box JV41 }
- { Tarboro, NC 27886 }
- { (919) 823-5897 Milliways }
- { }
- { Revision History }
- { Nov. 18, 1987 Version 1.0 released. }
- { }
-
- program mc;
-
- {$V-} {$C-}
-
- {$I common.pas}
-
- type
- filetype = (system, other);
-
- rec =
- record
- case reckind : filetype of
- system : (num_players : integer;
- old_date : str;
- dating_kathy : boolean;
- jackpot, strangers_money : real
- );
- other : (name : string[25];
- last_on : str;
- music, used_condom, ansi_ok, male : boolean;
- won_today, players_money : real;
- times_on, aids,
- played_baccarat, played_twenty1,
- played_slots, played_roulette,
- turned_down_date, hooker,
- screwed, bruno , condom : integer;
- );
- end;
-
- const win_money=1000000.;
-
- var player : array[0..51] of rec;
- infile, outfile : file of rec;
- messagefile: text;
- found, done : boolean;
- bruno : integer;
- pn : integer;
- strangers_temp_money, temp_money : real;
- door : char;
- roul, twenty, slot, bacc,
- stranger_dates_kathy, ansiok, play_ok, won : boolean;
-
- procedure player_died;
- begin
- player[pn].used_condom:=false;
- player[pn].players_money:=1000.;
- player[pn].last_on:=date;
- player[pn].times_on:=0;
- player[pn].hooker:=0;
- player[pn].screwed:=0;
- player[pn].condom:=0;
- player[pn].bruno:=0;
- player[pn].aids:=0;
- player[pn].played_slots:=0;
- player[pn].played_roulette:=0;
- player[pn].played_twenty1:=0;
- player[pn].played_baccarat:=0;
- player[pn].turned_down_date:=0;
- player[pn].won_today:=-1000000.;
- end;
-
- procedure leave;
- var i : integer;
- begin
- if not won then begin
- if player[pn].players_money<=0 then player[pn].players_money:=1000.;
- if player[pn].bruno>=7 then player_died;
- if player[pn].last_on<>date then player[pn].last_on:=date;
- end else begin
- player_died;
- player[pn].won_today:=0.0;
- end;
- assign(outfile,gfilespath+'mcrecord.dat');
- rewrite(outfile);
- for i:=0 to player[0].num_players do
- write(outfile,player[i]);
- close(outfile);
- return;
- end;
-
- procedure setcol(b:byte);
- begin
- if ansiok and (b<9) then ansic(b);
- end;
-
- procedure casdisplay(i:str);
- TYPE
- registers =
- RECORD CASE Boolean OF
- true : (al,ah,bl,bh,cl,ch,dl,dh : byte);
- false: (ax, bx, cx, dx,
- bp,si,di,ds,es,FLAGS : integer)
- end;
- var reg:registers;
- c :integer;
- begin
- if ansiok then begin
- checkhangup; if hangup then leave;
- for c:=1 to length(i) do begin
- reg.ah:=$02;
- reg.dx:=ord(i[c]);
- prompt(i[c]);
- end;
- end;
- end;
-
-
- function format_money(s : str; real:boolean) : str;
- var minus: boolean;
- begin
- minus:=false;
- repeat
- if s[1]=' ' then delete(s,1,1);
- until s[1]<>' ';
- if s[1]='-' then begin
- delete(s,1,1);
- minus:=true;
- end;
- if length(s)>3 then insert(',',s,length(s)-2);
- if length(s)>7 then insert(',',s,length(s)-6);
- if length(s)>11 then insert(',',s,length(s)-10);
- if s[1]=',' then delete(s,1,1);
- if minus and real then format_money:='-$'+s
- else format_money:='$'+s;
- end;
-
- overlay procedure create_player;
- begin
- if player[0].num_players+1>50 then begin
- checkhangup; if hangup then leave;
- print('Bruno walks up to you with bad news. "I''m awful sorry '+thisuser.name+',');
- print('but the casino is full right now. If you would leave a message');
- print('to the Sysop, he just might could throw one of the bums off of here,');
- print('and you can enter. Thank you for coming by though.');
- nl;nl;
- sysoplog(' *** NO ROOM IN THE GAME ***');
- leave;
- end else begin
- player[0].num_players:=player[0].num_players+1;
- pn:=player[0].num_players;
- player[pn].name:=thisuser.name;
- if thisuser.sex='M' then player[pn].male:=true
- else player[pn].male:=false;
- player[pn].used_condom:=false;
- player[pn].players_money:=1000.;
- player[pn].last_on:=date;
- player[pn].times_on:=1;
- player[pn].aids:=0;
- player[pn].hooker:=0;
- player[pn].screwed:=0;
- player[pn].condom:=0;
- player[pn].bruno:=0;
- player[pn].won_today:=0.0;
- player[pn].played_slots:=0;
- player[pn].played_roulette:=0;
- player[pn].played_twenty1:=0;
- player[pn].played_baccarat:=0;
- player[pn].turned_down_date:=0;
- (*player[pn].music:=music in thisuser.defaults;*) {look for music later}
- player[pn].music:=false;
- if okansi then begin
- print('Do you wish to see ansi graphics during the game?');
- if yn then player[pn].ansi_ok:=true else player[pn].ansi_ok:=false;
- end;
- end;
- if player[pn].ansi_ok then ansiok:=true else ansiok:=false;
- end; {create player}
-
- overlay procedure strangers_gets_more_money;
- var i,x:integer; temp:str;
- begin
- for x:=1 to 10 do
- repeat
- i:=random(10000)+20000;
- until i mod 100=0;
- str(i:0,temp);
- temp:=format_money(temp,false)+'.';
- checkhangup; if hangup then leave;
- print('The stranger''s cash seems to have run out.');
- print(' He whispers something into the ear of one of the girls sitting');
- print('around him, and she leaves, returning in a few minutes with an');
- print('envelope. The stranger puts down his cigar, and takes the envelope');
- print('from the girl. He then removes a large wad of money, hands it to');
- print('another one of his girls, who rushes off. Seconds later, you are');
- print('amazed as he is credited with another '+temp);
- player[0].strangers_money:=player[0].strangers_money+i;
- strangers_temp_money:=strangers_temp_money+i;
- nl;pausescr;
- end;
-
- overlay procedure refuse_date;
- begin
- if player[pn].hooker=0 then begin
- checkhangup; if hangup then leave;
- print('You politely refuse the invitation, saying that you');
- print('really don''t care to see the nightlife right now.'+#13+#10);
- nl;pausescr;
- end else begin
- checkhangup; if hangup then leave;
- print('You politely turn down the invitation, telling Kathy that');
- print('you are feeling lucky, and want to keep trying to win,');
- print('but maybe you and her can get together later.'+#13+#10);
- nl;pausescr;
- end;
- player[pn].turned_down_date:=player[pn].turned_down_date+1;
-
- end;
-
- overlay procedure date_kathy;
- var make_love:boolean;
- i, y : integer;
- temp:str;
- begin
- i:=random(10)*100;
- if player[pn].hooker=0 then begin
- player[pn].hooker:=player[pn].hooker+1;
- checkhangup; if hangup then leave;
- print(' The young lady introduces herself as Kathy. ');
- print('The two of you go out and spend several hours together enjoying');
- print('the nightlife. After a while, you and Kathy end up in her suite. ');
- print('She tells you to mix a couple of drinks while she goes and gets');
- print('into something a little more comfortable. You head towards the');
- print('bar and and mix 2 drinks, then sit down on the luscious couch.'+#13+#10);
- nl;pausescr;
- checkhangup; if hangup then leave;
- print(' She comes back out of the bedroom, wearing a long black robe');
- print('that covers her from her neck down to her ankles. She sits down');
- print('next to you, takes her drink, and finishes it off in one swallow. ');
- print('She turns to you, leans closer, and begins to nibble on your earlobe.'+#13+#10);
- print('"'+thisuser.name+'", she whispers into your ear, "Would you like to make');
- print('love to me?"'+#13+#10);
- nl;prompt('Do you make love to Kathy? ');
- if yn then make_love:=true else make_love:=false;
- end else begin
- player[pn].hooker:=player[pn].hooker+1;
- checkhangup; if hangup then leave;
- print(' You and Kathy again go out, spending several hours');
- print('enjoying the nightlife of Los Vegas, and once again,');
- print('end up back in her apartment.'+#13+#10);
- nl;
- print(' Again, she has you mix a couple of drinks, and she heads');
- print('towards the bedroom to change her clothes. After a few');
- print('minutes, she comes back out, and asks');
- print('if you would like to make love to her.'+#13+#10);
- nl;prompt('Do you make love to Kathy? ');
- if yn then make_love:=true else make_love:=false;
- end;
- {********** BEGIN MAKE LOVE **************}
- if make_love then begin
- if player[pn].condom>0 then begin
- prompt('Do you use the condom you found? ');
- if yn then begin
- player[pn].condom:=0;
- player[pn].used_condom:=true;
- end else player[pn].aids:=player[pn].aids+1;
- end;
- if player[pn].screwed=0 then begin
- checkhangup; if hangup then leave;
- print(' You are stunned, although deep in you mind, you knew this was going');
- print('happen sooner or later. You turn to look at her and her lips approach yours...'+#13+#10);
- nl;delay(5000);
- for y:=1 to 10 do nl;
- temp:='FOOLED YOU DIDN''T I!';ansic(8);print(temp);nl;
- print('This is a family program, so leaving out the details, let''s just say');
- print('that you leave the suite 12 hours later, with a smile on your face and');
- print('1000 dollars poorer. You return to the table to continue playing.'+#13+#10);
- nl;nl;pausescr;
- player[pn].players_money:=player[pn].players_money-1000;
- player[pn].screwed:=player[pn].screwed+1;
- end else begin
- checkhangup; if hangup then leave;
- print(' Once again you and Kathy spend several lovely hours together, and you return');
- print('to the Casino, $1000 poorer, but happy with your experience with her.'+#13+#10);
- nl;pausescr;
- end;
- player[pn].screwed:=player[pn].screwed+1;
- player[pn].players_money:=player[pn].players_money-1000;
- end else begin
- {********* BEGIN NO MAKE LOVE ***********}
- if player[pn].screwed=0 then begin
- checkhangup; if hangup then leave;
- print(' You politely refuse, saying that you believe that 2 people should');
- print('not do such things unless they are deeply in love and are married.');
- print('Kathy looks at you in surprise, but realizes that you mean what you');
- print('say, and a wishful look comes across her face. She kisses you');
- print('on the cheek, and says that she hopes you and her will see each');
- print('other again.'+#13+#10);
- nl; pausescr;
- end else begin
- print(' You tell Kathy that you just are not in the mood right now,');
- print('but maybe later on. You give her a quick kiss, a $100 bill, then return to');
- print('the Casino to continue playing.'+#13+#10);
- player[pn].players_money:=player[pn].players_money-100;
- nl;pausescr;
- end;
- if (player[pn].screwed=0) and (player[pn].hooker>=10) and
- (player[pn].players_money>win_money) and (player[pn].condom>0) then begin
- nl;pausescr;
- checkhangup; if hangup then leave;
- print(' You notice tears running out of Kathy''s eyes, and she turns her');
- print('to try and hide them from you. You hold her in your arms, and ask');
- print('her what is wrong. She says she has a confession to make, that she');
- print('hasn''t been truely honest with you. She explains that she is a high');
- print('class hooker, getting over $1000 a night, and yet, because of you, she');
- print('doesn''t quite know what is going on with her life, and has fallen');
- print('madly in love with you.'+#13+#10);
- nl;pausescr;
- checkhangup; if hangup then leave;
- print(' You turn your face towards hers, look her in the eyes, and tell her');
- print('that you have known she was a hooker for quite a while, and that');
- print('you had fallen in love with her from the moment you first laid eyes on');
- print('her, but were afraid to say anything. She asks you how you knew, and');
- print('you show her the condom you had found.'+#13+#10);
- nl;pausescr;
- checkhangup; if hangup then leave;
- print(' Kathy begins crying all over again, and you hold her tightly');
- print('in your arms. After a short time, the closeness of her body');
- print('to yours starts to make you feel very funny. You look her in the');
- print('eyes, and begin to kiss her. She responds, drawing her body');
- print('even closer to yours.'+#13+#10);
- nl;pausescr;
- checkhangup; if hangup then leave;
- print('The next morning, you wake up and look over at Kathy laying there');
- print('next to you. She wakes up, smiles, and kisses you shyly. You');
- print('are feeling strange, and ask her, stutteringly, if she will');
- print('marry you. To your surprise, she accepts, and the two of you');
- print('run out, and within 3 weeks are married.'+#13+#10);
- nl;
- print(' With the money that you have won here at the casino, you and her');
- print('open up a business in the mountains of North Carolina, where you');
- print('and Kathy live happily ever after.'+#13+#10);
- nl;pausescr;
- checkhangup; if hangup then leave;
- won:=true;
- end;
- end;
- if not won then begin
- print('Your date with the young lady costs you $'+cstr(i)+' for dinner, shows, and drinks.'+#13+#10);
- player[pn].players_money:=player[pn].players_money-i;
- end;
- if won then begin
- print('CONGRATULATIONS '+player[pn].name);
- print('YOU HAVE WON THE GAME!');
- sysoplog(#13+#10+' **** '+player[pn].name+' WON AT CASINO ****'+#13+#10);
- print('If I was you, I''d brag about it.');
- print('It''s not designed to be won easily!');
- reset(messagefile);
- append(messagefile);
- temp:=player[pn].name+' won on '+date+'.';
- writeln(messagefile,temp+#13+#10);
- close(messagefile);
- leave;
- end;
- end;
-
- overlay procedure buy_from_bruno;
- var i : integer;
- home, business, women : real;
- temp : str;
- nope : boolean;
- begin
- nope:=false;
- home:=50000.; business:=300000.; women:=500000.;
- repeat
- checkhangup; if hangup then leave;
- if (player[pn].players_money>women) and (player[pn].bruno=6) then i:=6 else
- if (player[pn].players_money>business) and (player[pn].bruno=5) then i:=5 else
- if (player[pn].players_money>home) and (player[pn].bruno=4) then i:=4 else
- if (player[pn].players_money>25000) and (player[pn].bruno=3) then i:=3 else
- if (player[pn].players_money>7000) and (player[pn].bruno=2) then i:=2 else
- if (player[pn].players_money>250) and (player[pn].bruno=1) then i:=1 else
- i:=0;
- if i<>0 then begin
- str(player[pn].players_money:0:0,temp);
- temp:=format_money(temp,false);
- print('You have '+temp+' dollars.');
- nl;
- case i of
- 1 : begin
- checkhangup; if hangup then leave;
- print('You can now buy your airplane ticket back');
- prompt('from Bruno for $150. Do you wish to do so? ');
- if yn then begin
- print('Bruno returns your plane ticket, relieving you of');
- print('$150 of your hard earned money.');
- player[pn].bruno:=player[pn].bruno-1;
- player[pn].players_money:=player[pn].players_money-150.;
- nl;pausescr;
- end else nope:=true;
- end;
- 2 : begin
- checkhangup; if hangup then leave;
- print('You may now buy your watch back from Bruno for $1,250.');
- prompt('Do you wish to do so?' );
- if yn then begin
- print('Bruno smiles as he returns your watch from his arm,');
- print('while taking your money');
- player[pn].bruno:=player[pn].bruno-1;
- player[pn].players_money:=player[pn].players_money-1250.;
- nl;nl;pausescr;
- end else nope:=true;
- end;
- 3 : begin
- checkhangup; if hangup then leave;
- print('Bruno offers to return the limo for $12,500.');
- prompt('Do you take him up on his offer? ');
- if yn then begin
- print('Bruno returns the limo to you, and shakes');
- print('your hand at your smart move.');
- player[pn].bruno:=player[pn].bruno-1;
- player[pn].players_money:=player[pn].players_money-12500.;
- nl;nl;pausescr;
- end else nope:=true;
- end;
- 4 : begin
- checkhangup; if hangup then leave;
- print('Bruno offers to sell you your home back for $35,000.');
- prompt('Do you want to buy your house back? ');
- if yn then begin
- print('Bruno returns the deed to you.');
- player[pn].players_money:=player[pn].players_money-35000.;
- player[pn].bruno:=player[pn].bruno-1;
- nl;nl;pausescr;
- end else nope:=true;
- end;
- 5 : begin
- checkhangup; if hangup then leave;
- print('Bruno offers to sell your business back to you for $150,000.');
- prompt('Do you want to buy your business back? ');
- if yn then begin
- print('Bruno returns control of the business back to you,');
- print('shaking your hand at a smart move.'#13+#10);
- player[pn].players_money:=player[pn].players_money-150000.;
- player[pn].bruno:=player[pn].bruno-1;
- nl;pausescr;
- end else begin
- nope:=true;
- print('Bruno shakes his head at that stupid move of yours.'+#13+#10);
- end;
- end;
- 6 : begin
- checkhangup; if hangup then leave;
- print('Bruno walks up to you and says the arab prince has not left');
- print('and might be willing to return your nieces back to you (for a small handling fee, of course).');
- print('It seems he''s got his eye out for the chorus line, and needs');
- print('a little extra cash.');
- nl;nl;
- prompt('Do you let Bruno retrieve your nieces from the Prince? ');
- if yn then begin
- nl;
- print('Bruno returns and says the arab will return them for $250,000.');
- print('You hand Bruno the money, and seconds later, they are returned.');
- print('to their hotel room, not even knowing they had been sold.'+#13+#10);
- print('(Bruno had fed them mickeys before taking them to the');
- print('arab, and luckily for you, the drug had not worn off yet.'+#13+#10);
- player[pn].bruno:=player[pn].bruno-1;
- player[pn].players_money:=player[pn].players_money-250000.;
- nl;nl;pausescr;
- end else begin
- nope:=true;
- print('Bruno walks away, sadly shaking his head, thinking about');
- print('how stupid you are being.'+#13+#10);
- end;
- end;
- end;
- end;
- until (i=0) or nope;
- end;
-
- overlay procedure sell_to_bruno;
- begin
- checkhangup; if hangup then leave;
- print('You don''t have the funds, so a large man named Bruno');
- print('comes over, and');
- repeat
- checkhangup; if hangup then leave;
- player[pn].bruno:=player[pn].bruno+1;
- case player[pn].bruno of
- 1 : begin
- print('you sell your plane ticket for $100!');
- player[pn].players_money := player[pn].players_money + 100.;
- temp_money:=temp_money+100.;
- end;
- 2 : begin
- print('you sell your solid gold watch for $1,000!');
- player[pn].players_money := player[pn].players_money + 1000.;
- temp_money:=temp_money+1000.;
- end;
- 3 : begin
- print('you sell Bruno your new limo for $8,000!');
- player[pn].players_money := player[pn].players_money + 8000.;
- temp_money:=temp_money+8000.;
- end;
- 4 : begin
- print('you sell Bruno your new home for $25,000!');
- player[pn].players_money := player[pn].players_money+25000.;
- temp_money:=temp_money+25000.;
- end;
- 5 : begin
- print('you sell Bruno your business for $100,000!');
- player[pn].players_money:=player[pn].players_money+100000.;
- temp_money:=temp_money+100000.;
- end;
- 6 : begin
- print('you sell your virgin nieces');
- print('(ages 12 & 13) into slavery to an arab prince');
- print('for $200,000!');
- player[pn].players_money := player[pn].players_money + 200000.;
- temp_money:=temp_money+200000.;
- end;
- 7 : begin
- nl;nl;delay(1000);
- print('The crowd around the table has become mighty quite.');
- print('You realize, too late, that you have made a serious');
- print('mistake, and have nothing left to offer. Bruno, and');
- print('two of his friends grab you, and take you for a ride');
- print('in the Nevada desert. After an hour of driving, they');
- print('drag you out of the car, and proceed to break your arms');
- print('and legs. Then they get back into the car, leaving you');
- print('laying there, to die.');
- sysoplog(#13+#10+'***** Bruno killed '+player[pn].name+' *****');
- append(messagefile);
- writeln(messagefile,'Bruno killed '+player[pn].name+' on '+date+'.'+#13+#10);
- close(messagefile);
- delay(5000);leave;
- end;
- end;
- nl;nl;pausescr;
- if temp_money<0 then if player[pn].bruno<>7 then
- print('You still don''t have the funds so ')
- else nl;
- until temp_money>0;
- end;
-
- overlay procedure strange_things(i:integer);
- begin
- case i of
- 1 : if roul then begin
- print('You throw the coupier a 10 dollar chip in the hopes');
- print('that it will improve your luck.');
- player[pn].players_money:=player[pn].players_money-10;
- nl;nl;pausescr;
- end;
- 2 : begin
- print('Feeling thirsty, you order a drink from one of the many');
- print('cocktail waitresses wandering buy. After about 30 seconds');
- print('you are amazed when she returns with your drink. You');
- print('give her a 10 dollar chip in appreciation (not to mention');
- print('her good looks).');
- player[pn].players_money:=player[pn].players_money-10;
- nl;nl;pausescr;
- end;
- 3 : begin
- print('You notice something strange happening over in the corner.');
- print('A golden creature seems to be approaching you, limping along');
- print('the corridor in what seems to be a fast motion.');
- nl;nl;
- print('What''s this? He''s a robot! He is mumbling under his');
- print('breath, and as you strain to hear what he''s saying, you');
- print('catch a few phrases. He seems to be complaining, mumbling');
- print('something about Earthmen, a Heart of Gold, stupid mice');
- print('and the number 42.');
- nl;nl;pausescr;
- print('A 2-headed man runs up to him, and they stand there not');
- print('15 feet from you. They talk, then you see the robot');
- print('nod his head in agreement, and they disappear before your');
- print('eyes.');
- nl;nl;
- print('You pick up your drink, and down it in one large swallow, not');
- print('believing anything you have just seen.');
- nl;nl;pausescr;
- end;
- 4 : begin
- print('As you set your drink on the table, you hear a deep rumble');
- print('from outside the large, one piece mirror that covers the southern wall');
- print('of the casino. All of a sudden, with a large smash, a rather');
- print('large sports car comes rushing through the mirror, quickly');
- print('followed by 4 rather large guys on motorcycles. The car lands');
- print('in the middle of the casino. Without notice, a slim, young');
- print('looking man jumps out, pulls out a gun and manages to kill');
- print('3 of the 4 cyclists. By this time. you are on the floor,');
- print('hiding under the table with about 10 other people. The');
- print('young man and the cyclist get into a huge fight, rolling');
- print('off tables, throwing each other into the slot machines, knocking');
- print('over other patrons. Kinda like what you would see in an action adventure');
- print('film. The young man, who has astounded you with his quick');
- print('right hooks, slams the cyclist into the wall, finally knocking');
- print('him out.'+#13+#10);
- nl;pausescr;
- print('The young man gets up, walks over to you, and asks');
- print('what you are drinking. You tell him a 7&7, and he tells you');
- print('that is a bad choice, then proceeds to order 2 Martini''s,');
- print('shaken, not stirred. You ask him his name, and he responds');
- print('with "Bond, James Bond.". The martini''s arrive, he hands you one');
- print('and proceeds to drink his right on down. With that over, he');
- print('then picks up a nearby');
- print('girl, gets into his car, and exits the same way he entered,');
- print('making another loud crash as he tears down another wall');
- nl;nl;print(' Almost immidately, the usher-boys have started');
- print('cleaning things up, and within minutes, things are back');
- print('to normal...');
- nl;nl;pausescr;
- print('You pick up the martini left on the table, and swallow it in one');
- print('large gulp, not quite believing anything that has just happened.');
- nl;nl;
- end;
- 5: begin
- print('You stagger a minute and notice that your drinks seems');
- print('a bit stronger. Just then, you hear a small, quite voice');
- print('behind you say, "Excuse me sir.". You turn around and');
- print('see a young lady with ruby slippers and carrying a picnic');
- print('basket. She asks, "Could you tell me in which direction');
- print('Kansas is? I''ve gotten lost in a storm and just');
- print('can''t seem to find my way back home." You think to');
- print('yourself that you''ve seen this girl someplace before,');
- print('but you just can''t seem to place her,');
- print('and before you know it, you''ve pointed her in the');
- print('direction of the teleporter. She says, "Thank you sir.');
- print(' Come on Toto, Aunt-Em is going to be worried about us."');
- print(' And with that, you see a little dog pop');
- print('out of the basket just long enough to bark, before');
- print('being teleported back to Kansas. You take another drink,');
- print('and pass the whole thing off as a trick done');
- print('by the magacian on stage.');
- nl;nl;pausescr;
- end;
- 6: begin
- print('One of the many waitresses comes over and asks you if you''d');
- print('like a drink. You are slightly intimidated by her beautiful');
- print('body, and start to stutter. The girls standing around the');
- print('stranger giggle at your nervousness. You manage to get out');
- print('a yes, and she leaves for a few minutes and returns with your');
- print('drink.');
- nl;nl;pausescr;
- end;
- end;
- end;
-
- function real_dough(c:integer):real;
- begin
- case player[c].bruno of
- 0 : real_dough:=player[c].players_money;
- 1 : real_dough:=player[c].players_money-100.;
- 2 : real_dough:=player[c].players_money-1100.;
- 3 : real_dough:=player[c].players_money-9100.;
- 4 : real_dough:=player[c].players_money-33100.;
- 5 : real_dough:=player[c].players_money-133100.;
- 6 : real_dough:=player[c].players_money-233100.;
- end;
- end;
-
- procedure check_winnings;
- var i : str;
- begin
- tleft;
- if player[pn].won_today=-1000000. then begin
- print('You died today! You''ll have to');
- print('try again tomorrow.');
- leave;
- end;
- if player[pn].won_today>=100000. then begin
- str(player[pn].won_today:0:0,i); i:=format_money(i,false);
- print('Bruno walks up to you and says:');
- nl;
- print('You have won '+i+' today.');
- print('Unfortunately, that is over the limit, so try');
- print('again tomorrow.');
- nl;
- leave;
- end;
- if player[pn].won_today<=-100000. then begin
- str(player[pn].won_today:0:0,i); i:=format_money(i,false);
- print('Bruno walks up to you and informs you that');
- print('you have lost '+i+' today, and that you might');
- print('do better if you try again tomorrow.');
- nl;
- leave;
- end;
- end;
-
- procedure sort_players;
- var x,a,h : integer;
- real_moneya, real_moneyh : real;
- begin
- for a:=1 to player[0].num_players-1 do begin
- for h:=a+1 to player[0].num_players do begin
- real_moneyh:=real_dough(h);
- real_moneya:=real_dough(a);
- if real_moneyh > real_moneya then begin
- if h=pn then pn:=a
- else if a=pn then pn:=h;
- player[player[0].num_players+1]:=player[h];
- player[h]:=player[a];
- player[a]:=player[player[0].num_players+1];
- end;
- end;
- end;
- end;
-
- {$I mc1.pas}
-
- {$I mc2.pas}
-
- procedure check_random;
- const hooker_money=100000.;
- var i: integer;
- begin
- checkhangup; if hangup then leave;
- tleft;
- i:=random(500)+1;
- case i of
- 50 : if roul then strange_things(1);
- 60 : strange_things(2);
- 70 : strange_things(3);
- 80 : strange_things(4);
- 90 : strange_things(5);
- 100 : strange_things(6);
- 110 : if roul then begin
- i:=random(38)+1;
- print('You notice the showgirls talking amongst themselves, and you');
- print('hear them talking about the number '+cstr(i));
- nl;nl;
- end;
- 120 : more(1);
- 130 : more(2);
- 140 : more(3);
- 200..300: if player[pn].aids>0 then begin
- case player[pn].aids of
- 1..2 : print('You are feeling weak.');
- 3..4 : print('You are feeling really bad!');
- 5 : died;
- end;
- end;
- 350..400: if (player[pn].bruno=0) and
- (player[pn].players_money>player[pn].hooker*hooker_money)
- and (not stranger_dates_kathy)
- then hooker;
- 450..500: if player[pn].players_money>player[pn].hooker*hooker_money
- then stranger_dates;
- end;
- end;
-
- (*********************** BEGIN TWENTY-ONE **********************)
- {$I mc3.pas}
- (************************ END TWENYY-ONE ***********************)
-
- (*********************** BEGIN BACCARAT ************************)
- {$I mc4.PAS}
- (************************ END BACCARAT *************************)
-
- (************************* BEGIN SLOTS *************************)
- {$I mc5.PAS}
- (************************** END SLOTS **************************)
-
- (************************ BEGIN ROULETTE ***********************)
- {$I mc6.pas}
- (************************* END ROULETTE ************************)
-
- overlay procedure welcome;
- var i : str;
- begin
- checkhangup; if hangup then return;
- find_player;
- if found then begin
- nl;nl;nl;
- logon(2);
- nl;nl;nl;
- print('Welcome back '+player[pn].name);
- str(player[pn].players_money:0:0,i); i:=format_money(i,false);
- print('You have '+i+'. Good luck!');
- nl;nl;pausescr;
- end else begin
- logon(1);
- pausescr;
- nl;nl;nl;
- print(' You tip the cabbie as you exit the yellow cab. He looks back');
- print('as you walk away from the cab, and yells, "Man, you''d better');
- print('turn down that volume of yours!" and with a screech of rubber,');
- print('he leaves you in a smokescreen. You stare in amazement at the');
- print('large neon sign above you.');
- nl;nl;pausescr;
- logon(3);
- nl;nl;
- enter_casino;
- end;
- end; {welcome}
-
- procedure check_played(i:integer);
- begin
- play_ok:=true;
- case i of
- 1 : if player[pn].played_slots=10 then begin
- print('I''m sorry, but you can only visit');
- print('the slot machines 10 times a day.');
- play_ok:=false;
- end;
- 2 : if player[pn].played_roulette=5 then begin
- print('I''m sorry, but you can only visit');
- print('the roulette tables 5 times a day.');
- play_ok:=false;
- end;
- 3 : if player[pn].played_twenty1=10 then begin
- print('I''m sorry, but you can only visit');
- print('the blackjack tables 10 times a day.');
- play_ok:=false;
- end;
- 4 : if player[pn].played_baccarat=3 then begin
- print('I''m sorry, but you can only visit');
- print('the baccarat tables 3 times a day.');
- play_ok:=false;
- end;
- end;
- end;
-
- {main}
- begin
- iport;
- sysoplog(' Played Milliway''s Casino');
- won:=false;
- checkhangup; if hangup then return;
- welcome;
- setcol(1);print('Do you wish to see what''s');
- setcol(1);prompt('happened to others in the game? ');
- if yn then begin printfile(gfilespath+'casino.msg'); pausescr; end;
- randomize;
- done := false;
- slot:=false;roul:=false;twenty:=false;bacc:=false;
- repeat
- tleft;
- checkhangup; if hangup then leave;
- check_winnings;
- print('You are standing in front of 4 doors.');
- print('Each door is numbered, and has a sign underneath.');
- nl;
- print('1 : Slots');
- print('2 : Roulette');
- print('3 : Blackjack');
- print('4 : Baccarat');
- nl;
- print('I : Instructions, Q: Quit,');
- print('S : Global Stats, Y: Your Stats');
- prompt('Which door do you enter? ');
- onek(door,'1234IQSY');
- case door of
- 'Q' : done:=true;
- 'I' : general_instructions;
- '1' : begin
- check_played(1);
- if play_ok then begin
- slot:=true;
- player[pn].played_slots:=player[pn].played_slots+1;
- slots;
- slot:=false;
- end;
- end;
- '2' : begin
- check_played(2);
- if play_ok then begin
- roul:=true;
- player[pn].played_roulette:=player[pn].played_roulette+1;
- roulette;
- roul:=false;
- end;
- end;
- '3' : begin
- check_played(3);
- if play_ok then begin
- twenty:=true;
- player[pn].played_twenty1:=player[pn].played_twenty1+1;
- twenty_one;
- twenty:=false;
- end;
- end;
- '4' : begin
- if stranger_dates_kathy then begin
- print('All the tables are filled right now.');
- print('Please try again later.');
- end else begin
- check_played(4);
- if play_ok then begin
- player[pn].played_baccarat:=player[pn].played_baccarat+1;
- bacc:=true;
- baccarat;
- bacc:=false;
- end;
- end;
- end;
- 'S' : do_stats;
- 'Y' : player_stats;
- end;
- nl;
- until done;
- leave;
- end.
-