As most of you probably know, in 1.30 you're going to have to build your brothel up from a burned out shell, choosing the features and facilities you want for each building. I had been hard coding the building details, until it occurred to me that if there was ever a good place to use an XML format, this would be it.
So, by way of a sneak preview, here's the XML format I'm going to use. Feel free to look it over and comment on any omissions, pricing irregularities, and what have you.
The suffix for the file will be ".roomsx" and it will work like .itemsx and .girlsx in that the game will scan for additional files and parse them all. So you can look forward to adding your own custom rooms and descriptions into the game. Also to editing the basic file if you don't like the default file.
There are a few things still to be sorted out. The main one is how to specify game effects. That's going to have to wait until delta or myself have coded a few more of them up so I can get an idea how best to generalise the problem. Ultimately, I hope to drive room effects with scripts and triggers. Anyway, see what you think of it so far.
<!--
! KEY:
! "Name" is what appears in the listbox
!
! "Desc" is the description for a selected list entry
! Use \n to embed newlines in the description.
! The game can't wrap them automatically yet.
!
! (There's an argument for using <Desc></Desc>tags here
! and accepting freeform text in-between, but that's
! kind of backwards from the way everything else works,
! so I'm dithering....)
!
! "Space" is how many spaces the facility uses up.
! in the standard game, each girl's room takes one space
!
! "Provides"
! is how many facilities the unit enables.
! So for a girl's personal room, one space provides
! accommodation for one. For a dormitory unit, you can
! get three girls into the space taken by two personal
! rooms. For monster cages you need 4 spaces just to
! hold one beast
!
! "Price" How much the base unit costs. This will be adjusted by
! the BrothelCost factor from the config file
!
! "Glitz" This is a measure of how much has been spent on
! decor for this unit. For accommodation units, glitz
! maps onto accommodation level. For customer areas,
! it may have an effect on the number and quality of
! patrons attracted. Other effects may be possible
! depending on the precise nature of the unit. Glitz
! can be raised by the player, within limits. Glitz
! also acts as a price multiplier
!
! "MinGlitz" & "MaxGlitz"
! It's only possible to do so much with a kennel unit.
! You can add some padding, but beyond that, the lack of
! space is going to be the overriding factor. Similarly,
! there is no point in creating a spacious suite for one
! of your girls unless you're going to invest in a
! certain level of luxury to go with it.
!
! Currently the default min and max would be 0 and 5
! since that's what the accommodation levels use.
! It might be worth expanding that slightly for general
! use
!-->
<Facilities>
<!--
! this is the sort of room all the girls have at the moment
! They can live there, fuck there, and the rooms can be squalid or
! Luxurious, dending on how much the player wants to spend
!-->
<Facility
Name = "Bedroom"
Desc = "Standard Accommodation and workplace for one girl"
Space = "4"
Provides= "4"
Price = "100"
MinGlitz= "0
MaxGlitz= "5"
Glitz = "0"
/>
<!--
! Cheaper solution to same problem: puts 3 beds in the space taken
! by two normal rooms. Provides sleeping and personal recreation space.
! Not much good for sex, however: Customers won't like coming to one of these
! dorm rooms, unless you get someone with a group fetish. Even then, the
! other girls are apt to object which will cause problems.
!-->
<Facility
Name = "Dormitory Unit"
Desc = "Cheap accomodation for girls. Not suitable for seeing customers"
Space = "4"
Provides= "6"
Price = "100"
Glitz = "0"
MinGlitz= "0
MaxGlitz= "2"
/>
<!--
! The cheapest accomodation option is empty space
! It's not much good for resting, healing or happiness
! and it makes lousy use of space and contributes to the
! filthiness of a building. But you can have your girls sleeping
! rough on the bare floors if you absolutely need to.
! (They might even manage to turn a few tricks there, but don't
! expect too much...)
!
! After nothing at all, the next cheapest option is a kennel block.
! You wouldn't keep people in such cramped conditions, but not everyone
! thinks of slaves as "people"
!
! The player will need to employ a keeper (with proper accomodation)
! to look after kennel slaves. Otherwise they'll sicken and die.
!-->
<Facility
Name = "Kennel Block"
Desc = "Absolute minimum slavegirl accommodation. Not suitable for\nbusiness. Requires a carer if slaves are to remain healthy."
Space = "4"
Provides= "12"
Price = "400"
Glitz = "0"
MinGlitz= "0
MaxGlitz= "1"
>
</Facility>
<!--
! Moving up the accommodation scale, An apartment has two rooms.
! the occupant is happier and better rested, and may make better money
! since they can better look after their clients
!-->
<Facility
Name = "Apartments"
Desc = "Spacious accomodation and workspace for your girls."
Space = "4"
Provides= "2"
Price = "200"
Glitz = "3"
MinGlitz= "3
MaxGlitz= "6"
/>
<!--
! Moving up the accommodation scale, An apartment has two rooms.
! the occupant is happier and better rested, and may make better money
! since they can better look after their clients
!-->
<Facility
Name = "Suite"
Desc = "A Luxury suite of rooms to house a single occupant"
Space = "4"
Provides= "1"
Price = "400"
Glitz = "4"
MinGlitz= "4
MaxGlitz= "9"
/>
<!--
! a cleaner needs to store the tools of the trade
!-->
<Facility
Name = "Cleaning Cupboard"
Desc = "A place to store mops, detergents, and the like"
Space = "1"
Provides= "1"
Price = "400"
Glitz = "0"
/>
<!--
! common inventory + prop store
!-->
<Facility
Name = "Storeroom"
Desc = "Common inventory space, as well as storage for "
"props, ornaments,\nmanacles, and the like..."
Space = "2"
Provides= "1"
Price = "50"
Glitz = "0"
/>
<!--
! fairly self explanatory
!-->
<Facility
Name = "Torture Chamber"
Desc = "The means to inflict pain and break wills."
Space = "4"
Provides= "1"
Price = "200"
Glitz = "0"
/>
<!--
! got to keep those monsters somewhere...
!
! 4 spaces houses one beast.
!-->
<Facility
Name = "Bestiary"
Desc = "Monster accommodation. Needs a carer to keep the beast secure and in good health"
Space = "4"
Provides= "1"
Price = "400"
Glitz = "0"
/>
<!--
! Beer!
!-->
<Facility
Name = "Bar"
Desc = "A serving counter plus mininal customer seating"
Space = "2"
Provides= "4"
Price = "200"
/>
<!--
! size plays a role in how big a production you can put on
! a 2 space stage is just about enough for a single stripper.
! (maybe a double act)
!
! More area allows more participants, and more elaborate productions
!-->
<Facility
Name = "Stage"
Desc = "A serving counter plus mininal customer seating"
Space = "2"
Provides= "2"
Price = "200"
/>
<!--
! provides is the number of people that can be served at once:
! bigger kitchens can cook for more diners
!
! Girls with apartments and suites can cook for themselves
! Those living in kennels and dorms will need cooking for
! That's in addition to any customer food requirements
!
! Glitz in a kitchen is a measure of how up-market the cuisine
! is: Glitz-0 is chopped raw meat for the bestiary and gruel for
! the slave kennels. Glitz-2 provides varied and nutitious meals
! for the staff canteen. Glitz-9 can serve Qaviar and Kwail's Eggs
! to the most distinguished of patrons. You may find it pays to have
! more than one food preparation area, rather than trying to build
! one area that can do everything
!-->
<Facility
Name = "Kitchen";
Desc = "Allows food to be served to customers.";
Space = "2"
Provides= "8"
Price = "250"
Glitz = "1"
/>
<!--
! A lounge area is a catch all social space
! It can provide seating for stage shows, restauants and bar
! areas, reception areas for the brothel and rec rooms for staff
!
!-->
<Facility
Name = "Lounge";
Desc = "An area where staff and/or customers can relax"
Space = "4"
Provides= "10"
Price = "250"
/>
<!--
! gambling table
!
! you need one croupier/dealer per table. Bigger tables
! mean more players and can generate more buzz. Small
! tables work better when custom is slow.
!
! This is more of a fixture than a facility. Is the distinction
! worthwhile in game terms, I wonder...
!-->
<Facility
Name = "Gambling Table";
Desc = "A table suitable to run a game of chance"
Space = "1"
Provides= "4"
Price = "500"
/>
<!--
! cashiers booth
!
! A secure location to sell and redeem chips
!-->
<Facility
Name = "Cashier's Counter";
Desc = "A secure cashier's station to exchange chips"
Space = "1"
Provides= "4"
Price = "500"
/>
<!--
! The way to do this is to assign bedrooms in-game. Anything without a
! permanant resident becomes a general use private room. That way we can
! have apartments and suites for general use as well
!
! Another room options would be a "Secure" flag where a room could be
! used to imprison a girl (albeit possibly in considerably luxury)
!
! Anyway - that'll need to wait a little bit. For now I'll do this the
! long way
!
!-->
<Facility
Name = "Private Rooms";
Desc = "A room where a girl can take a customer to have sex.\nUseful for girls living in dorms or kennels."
Space = 4;
Provides= 4;
Price = 500;
}
<Facility
Name = "Private Booths";
Desc = "A partly concealed booth, suitable for a lapdance or blowjob.\nOther sex acts generally need more privacy."
Space = "2"
Provides= "4"
Price = "100"
/>
<!--
! Basic lounge area with couches and fixtures aimed at
! encouraging social sex
!
! Allows higher level group sex. May be used by girls without
! assigned quarters, client willing
!-->
<Facility
Name = "Ogry Room"
Desc = "An open area where girls can have sex with such customers as may\nbe so inclined. Facilitates group sex encounters."
Space = "4"
Provides= "8"
Price = "400"
/>
<!--
! Similar, but with bondage fittings and fewer concurrent users
! Allows higher level BDSM encounters
!-->
<Facility
Name = "BDSM Room"
Desc = "A room with fixtures and fittings to enable some of the more\nelaborate forms of bondage and restraint."
Space = "4"
Provides= "2"
Price = "400"
/>
<!--
! should probably have a dedicated monster sex room for specialist
! bestiality scenarios, as well. Could just be a secure room attached to
! the bestiary unit - or maybe a secure exhib/voyeur setup attached to a
! bestiary unit..
!
! Anyway, back the topic at hand...
!-->
<Facility
Name = "Voyeur/Exhibitionist Room";
Desc = "Two adjacent rooms. People in the second can spy on those in the\nfirst. Blackmail is possible when combined with movie facilities"
Space = "8"
Provides= "2"
Price = "400"
/>
<!--
! It's a magic lab
!-->
<Facility
Name = "Ritual Room"
Desc = "Enables complex magical operations."
Space = "4"
Provides= "1"
Price = "1200"
/>
<Facility
Name = "Movie Studio."
Desc = "Basic sound stage for recording action. Needs a ritual room to\nprocess the crystals. A storeroom for props helps as well."
Space = 8
Provides= 1
Price = 4800;
/>
<Facility
Name = "Drug Lab.";
Desc = "Processes raw ingredients into drugs. Needs a shroud farm,\nviras garden, or else fairy hunters to acquire ingredients."
Space = 2;
Provides= 1;
Price = 4800;
/>
<Facility
Name = "Shroud Mushroom Farm";
Desc = "A dark, reinforced room where shroud mushrooms may be cultivated."
Space = 2;
Provides= 1;
Price = 10000;
/>
<Facility
Name = "Viras Farm";
Desc = "A warm, humid, greenhouse area where viras plants may thrive."
Space = 6;
Provides= 2;
Price = 8000;
/>
<Facility
Name = "Community Center";
Desc = "An office that can front a number of public sprited activities."
Space = 2;
Provides= 1;
Price = 500;
/>
<Facility
Name = "Alchemical Laboratory";
Desc = "A place to make potions." ;
Space = 8;
Provides= 1;
Price = 2000;
/>
<Facility
Name = "Arena";
Desc = "A place to stage fights for entertainment."
Space = 8;
Provides= 1;
Price = 2000;
/>
<!--
! Glitz level here is the quality of teaching aids.
! Higher glitz levels mean larger pupil:teacher ratios.
! Or else improved quality of teaching. Or possibly
! more skills taught in parallel. Need to think about
! how best to do that.
!
! Anyway: glitz rating makes for better teaching facilities
!-->
<Facility
Name = "Training Center";
Desc = "Needed to train skills";
Space = 4;
Provides= 16;
Price = 2000;
/>
<!--
! I can think of some fun things a PC could do with his own
! private hospital...
!
! Probably use glitz here to represent the quality of
! medical facilities available. For a posh clinic, glitz
! up the reception
!-->
<Facility
Name = "Clinic";
Desc = "Medical center.";
Space = 2;
Provides= 1;
Price = 500;
/>
<!--
! options for walled gardens, and for secure (guarded) ones
!
! Default garden type is open air, grass and flowers.
! Other types might be constructable with particular
! clients and/or fetishes in mind. For instance, you might build an
! underground mushroom garden as preferred by dark elves
!
! For now, only the vanilla variant is specified
!-->
<Facility
Name = "Garden";
Desc = "An area of grass and flowers where people can take their ease"
Space = "4"
Provides= "4"
Price = "1000"
/>
<Facility
Name = "Repair Shop."
Desc = "Heal girls with the Construct trait."
Space = "8"
Provides= "2"
Price = "4000"
/>
<!--
! Another way to make money on girls when you don't have the beds
! on site. Note that kennel girls sent to visit clients at home
! have a distressing tendency not to return
!-->
<Facility
Name = "Escort Agency.";
Desc = "An office to send girls to visit clients at home. The difference\nbetween call girls and escorts is mainly one of glitz"
Space = 4;
Provides= 24;
Price = 300;
/>
<Facility
Name = "Domestic Agency."
Desc = "Supplies servants on contract. Girls are expected to have good\ndomestic skills, as well as being sexually available."
Space = 4;
Provides= 24;
Price = 500;
/>
<Facility
Name = "Stables."
Desc = "A place to keep horses. These are for transportation. If you want sex, use a bestiary unit"
Space = "8"
Provides= "4"
Price = "500"
/>
<Facility
Name = "Garage."
Desc = "Keeps and maintains a carriage. Useful for dropping off girls on agency work (and making sure they come back, as well)"
Space = "4"
Provides= "1"
Price = "500"
/>
</Facilities>