{                               STRVCTVRA                                    }
{                                   et                                       }
{                         PRINCIPIA MATHEMATICA                              }
{                                                                            }
{                             "Rancho Nevada"                                }
{                           (C) 1993,1994 Tommy                              }


{ This game is uncannily similar to The Proving Grounds, except that it
  is completely concerned with sex.  It is set in a huge omnisexual
  pleasure palace somewhere in Nevada, where the drinks are free and
  so's the lovin'.

  Instead of going through the corridor of death as in PG, the
  VKR will allow you to pick up experience and money.

  Instead of a Proving Grounds fighting arena, there is an orgy room
  where you can attack (arouse?) other players.  Once in user combat
  (foreplay) the user's weapon(marital aid) and stamina determine how
  many HP (resistance) are removed from the other player.  Skill is
  roughly equivalent to PG agility and determines the probability of an
  attack/arousal succeeding at all. Armor(defensive items a'la
  fantasyland) and stamina reduce the number of hit points lost in
  combat/coitus.  Once the aggressor or victim's hit points go down to
  zero, a sex story is displayed.  If the agressor loses, he is logged
  off but can log in again.  If the loser has better weapons or armor
  than the winner, the winner gets them and the loser gets the winner's
  old stuff.

  An interesting scenario can possibly arise when an aggressor attempts
  to initiate an encounter with someone who does not prefer the
  aggressor's gender.  The aggressor must have a combined
  stamina+skill+knowledge of at least twice that of the victim in order
  to even be allowed to make the attempt, and the victim's HP is
  tripled.  The aggressor has 4 times the likelihood of disease, and if
  he fails before getting a disease, he loses 5 of each of stamina,
  skill and knowledge.  If he wins, however, he gets all the other
  player's money plus 10% to 90% (at random) of the contents of his bank
  account.

  Instead of a jousting arena, there is a bar where you attempt to drink
  your opponent under the table.  The drinks are double shots of
  overproof; very potent.  Skill and stamina add up, plus wins, minus
  losses, to determine drinking ability.  The drinking contest has a
  small random element but players with superior drinking ability are
  more likely to win.  Every 20 wins, the user gets his plus-fives - 5
  points are added to stamina, skill, and knowledge.  When you win you
  get a small amount of money (about 1/5 the amount needed for an
  instructional session at the user's current level).

  Levels are determined by experience points which are gained when you
  succeed in seducing someone or in the brothel.  The number of XP
  required to advance a level is based on a logarithmic scale so each
  level needs more XP than the last (but not a 2x doubling like in
  Ultima IV).  When you increase a level, your "knowledge" determines
  the maximum resistance (HP) added.  Knowledge, stamina, and skill each
  go up by a small random amount (usu. from 5 to 10 points).  You also
  get a good bounty of money - enough for two instructional sessions at
  the new level!

  Instruction can be purchased in the three character attributes -
  stamina, skill, and knowledge.  The price goes up as levels increase.

  Offensive and defensive sex toys can also be bought.  Their price and
  effectiveness increase on a logarithmic scale.

  Every encounter there is a 20% chance of getting a disease.  Buying
  condoms reduces the chance of disease by a further 95% to only 1%.
  The cost of condoms is twice the player's level, i.e. level 3 players
  pay $6 for each condom.  You go through one condom per encounter, even
  in the whorehouse. If you get a disease while attacking or in the
  brothel you lose 5% of your stamina and skill and are not allowed to
  play until the next day. You cannot get a disease when someone else
  aggresses against you.

}

{

REVISED PRINCIPIA AS OF DECEMBER 23, 1992:

    The game will integrate some of the features of FantasyLand.  There
    will be a sysop-definable text adventure map, with 6 directions
    (N,S,W,E,U,D) and 64-byte name/desc fields.  It should be no
    problem to fit several hundred of these into memory.  As in FL there
    will be special functions such as matchme computers, sex shoppes,
    bank machines, payphones, etcetera.  There will also be items which
    can be picked up - small amounts of cash, training vouchers,
    low-level spells, etcetera.  There will be a reserved room in the
    maze -  if you enter it you go into the CoD where you pick up
    experience and cash!  Another special room takes you to the bar,
    where the liquor-holding contests win you money and prestige.  The
    payphones will allow you to call recorded sex lines, or leave "voice
    mail" (email) to other players.  Of course there's a phonebook handy
    most of the time...

    Spells you can buy:
    (a * indicates items you can find at random in the maze)

Cons: ##:   Item:               Cost:         Effect:
*lv

5     1 *  Energy Pill      -  100*level^2   Gives you full libido again
7     2 *  Chloroform Pad   -  100*level^2   Takes away (level^2)*random(1.5)
                                             regardless of defences
15    3 *  Herpes Scabs     -  200*level^3   50% of the time, no effect, other
                                             half of the time, gives your
                                             opponent VD.
10    4    Rope & Gag       -  300*level^2   Takes away 50% HP regardless
                                             of defences
5     5    Exit Key         -  400*level^2   Lets you get out of the
                                             VKR at any room
5     6    Recovery Pill    -  900*level^2   If you get VD
                                             This will prevent you from being
                                             thrown off
20    7    Love Mist        -  1000*level^2  Takes away 75% regardless
                                             of defences
35    8    Syphilis Culture -  600*level^3   85% chance your victim will get
                                             disease
45    9    Priapism Jel     -  1500*level^2  Gives you double max HP
95    10   Super Stud Pill  -  3500*level^2  Gives you 5X max HP
65    11   Teleport         -                Takes you anywhere in the maze
100   12   Room Zoom        -  466*level^3   Advances you 20 rooms in the VKR
10    13   Cellular Phone   -  200*level^2   Lets you use msg functions anywhere
50    14   Western Express  -  200*level^2   Lets you use ATM anywhere
50    15   Datacomm PDA     -  200*level^2   Lets you use computers anywhere


            Special Room Items:



}
type t_orientation=(straight,bi,gay);

     t_gender=(male,female);

     namestr=string[24];

     scribrec=record
                name:string[36];
                txt:string[78];
              end;

     eventrec=record
                name:string[36];
                txt:string[251];
                datewritten:longint;
              end;

     configrec=record
                 maxplays:byte;   {Maximum plays per day}
                 maxmoves:word;   {Maximum moves per play}
                 maxschool:word;  {Maximum trips to the AV term per play}
                 maxjoust:word;   {Max drinking contests per play}
                 maxdiff:integer; {Maximum number of levels below user's}
                                  {to allow encounters}
                 timeout:byte;    {Number of minutes to wait before timing keyboard out}
                 localcolour:boolean; {Display in colour or not}
                 winlevel:word;       {Level to reset game at}
                 robotpaypercent:word;
                 robotxppercent:word;
                 startroom:word;
                 bumppay:word;
                 loserxp:comp;
                 minushp:word;
                 escape:word;
                 specialtoy:word;
                 specialdefense:word;
                 robotreroll:byte;
                 corner:byte;
                 vkrmove:boolean;
                 jacuzziluck:byte;
                 maxjacuzzi:integer;
                 dvblog:boolean;
                 novkr:boolean;
                 ansimode:byte; {0=Dorinfo, 1=ask, 2=detect}
                 maxuser:word;  {Maximum number of users}
                 lockbaud:longint;
                 robotgender,       {0=all robots female 1=all male 2=random}
                 robotpreference,   {0=all robots bisexual 1=random 2=straight 3=gay}
                 robotlastname:byte; {0=robot last names on  1=off}
                 nukedays:integer;
                 nofossil:boolean;
                 vkrkey:boolean;
                 emptyspace:array[1..62] of byte;
               end;

     roomrec=record
{1}             attr:byte; {Safe, Free, etc.}
{49}            Description:string[49];
{51}            parm:integer;
{53}            Room_North,
{55}            Room_South,
{57}            Room_East,
{59}            Room_West,
{61}            Room_Up,
{63}            Room_Down: word;
{64}            Special:byte;
              end;

{Roomrec Boolean Bitmap above:

        Bit  0x80 Room is "Safe", no activity can take place here!
             0x40 Room is "free", no turn will be deducted when you leave
             0x20 Room is "dark", you can't see anyone and they can't see you.
             0x10
             0x08
             0x04
             0x02
             0x01
}


     userrec=record
{25}          BBSName,                {Name passed by the BBS}
{50}          name      : namestr;    {pseudonym used in the game}
{54}          lastplayed: longint;    {Sec70 of last time user played}
{56}          playstotal,             {Number of times user has ever been in}
{58}          playstoday: word;       {Number of times user has been in today}
{60}          Level:integer;          {Level based on experience}
{62}          condoms,                {Number of condoms}
{64}          weapon,                 {Weapon #}
{66}          armor     : word;       {Armor #}
{72}          XP,                     {Experience Points}
{80}          GP,                     {Money}
{88}          BankGP    : comp;       {Money in the bank}
{92}          Coord,                  {Special Item Points}
{96}          Maxcoord,               {Maximum Special Item Points}
{100}         HP,                     {Hit Points}
{104}         MaxHP,                  {Maximum Hit Points}
{108}         Stamina,                {Stamina - like PG Strength}
{112}         Skill,                  {Skill - like PG agility}
{116}         Talent,                 {Talent - like PG Wisdom}
{120}         Knowledge :longint;     {Knowledge - like PG intelligence}
{122}         jwins,
{124}         jlosses   : word;       {Drinking Wins/Losses}
{125}         gender    : t_gender;
{126}         orientation:t_orientation;
{190}         spell:array[1..32] of word; {Number of spells}
{194}         ident:longint;   {always $FBEAD9C8}
{196}         unused2:word;
{198}         lastVKR:word;   {Highest VKR room user has honestly entered}
{200}         room:word;              {What room the user is in}
{201}         robot:boolean;
{205}         uuid:longint;
{206}         recovering:boolean;
{207}         robotfactor:byte;
{211}         jws,jls:word;
{212}         givenvd:boolean;
{213}         attackmode:byte;
{215}         version:word;
{216}         tori:boolean;
{217}         deleted:boolean;
{218}         emptyspace:byte;
            end;

{Attackmode:
              Bit 7: Stink Bomb
                  6: Aphrodisiac Incense
                  4,5: Unused
                  3,2,1,0: Usual attack mode}

ResidentUserRec=record   {Memory Resident part of user record}
{25}              name:namestr;      {Game name}
{29}              recnum:longint;    {Record number in userlog}
{33}              uuid:longint;      {UUID incase record search fails}
{35}              room:word;         {Room user is in}
{36}              attackmode:byte;   {Attack mode}
{44}              xp:comp;           {Experience}
{45}              level:byte;        {Level}
{46}              attr:byte;         {Bitmap attribute}
                end;


(* Attack Modes:

     0 -- Default, do nothing when someone enters the room.
     1 -- Paranoid, flee whenever anyone enters.
     2 -- Grand Coward, flee anyone stronger, attack anyone weaker.
     3 -- Coward, flee whenever anyone stronger enters, otherwise stay put.
     4 -- Normal, attack anyone weaker, stay put for anyone stronger.
     5 -- Suicidal, attack anyone stronger, stay put otherwise.
     6 -- Berserk, attack anyone who enters no matter what.   *)

  itemrec=record
{33}        name:string[32];  {What the item is called}
{34}        itemtype:byte;    {How the item works}
{36}        attr:word;        {Attributes}
{38}        effect:word;      {Effectiveness at its function}
{40}        charge:word;      {maximum charge allowed}
{42}        chargecost:word;  {Number of RUs per charge}
{44}        common:word;      {Percent chance of this being the item laid out}
{56}        extras:array[1..6] of word;
          end;

{ type 1:battle 2:transport 3:antigrav 4:heal 5:allheal 6:superHP         }
{      7:CoD escape 8:Light 9:VD 10:invisibility 11:jinx 12:freeze enemy  }
{      13:Junk 14:key 15:boobytrap                                        }
{ attr 0001:rechargeable 0002:selfdestructonempty 0004:perpetual          }
{      0008:unmovable                                                     }
