Your browser lacks required capabilities. Please upgrade it or switch to another to continue.
Loading…
/* FinishActivities */
<<PerformActivities>>
<<GenerateBrothelVisitors>>
<<MatchMoreAppealingGirls>>
/* Include Plan Evening */
<<include "Plan Evening">>''Changes'':
<ul>
<li>A dozen or so skills had changes from the google doc. Most changes were making skill type consistent (i.e. Reurig had bondage listed as a sex skill, not a kink skill).</li>
<li>(Anything) will pick a random sex skill. (Random) will pick a random skill from all types.</li>
<li>Punishment is based off of number of tasks failed. If you fail 1 task you get one of the first four punishments. 2 failed tasks for punishments 5-8, and 3 failed tasks for 9-12.</li>
<li>All sex and kink skills are considered rough for injuries.</li>
<li>Great Success/Failure for skills. A way of showing the Heart and Injury thresholds for skills.</li>
</ul>
<br>
''Suggestions'':
<ul>
<li>Healing Magic (item) -> Appeal ties work in your favor?</li>
<li>Energy Drink (item) -> +1 activity slot for the day, at least $10/day (probably 20)</li>
<li>Free Clinic (activity) -> Ignore one failure for punishment (instead of reroll client)</li>
<li>Payment mechanics -> Success - fails = Appeal multi. Pass all 3 to get + fame.
Great Success will count as 2 success (so max pay if 6xappeal+client fame)</li>
<li>Exhibition (Punishment) -> Upgraded nudity. No clothes & -1 activity slot.</li>
</ul>This page is not finished.
<br>
<br>Total Appeal: $player.appeal
<br>Temporary Appeal: $player.tempAppeal
<br>Base Appeal: $player.baseAppeal
<br> Starting Appeal: 2
<br> Ena's Gift: <<if $player.enaGift == 1>>1<<else>>0<</if>>
<br> Cosmetic Surgeries: $player.cosmeticSurgery
<br> Silver Potions: $player.silverPotion
<br> Black Potions: $player.blackPotion
<br> Fetish Implants: $player.fetishImplant
<br>
<br>Effects:
<<for _i=0; _i<$player.effect.length; _i++>>
<br> $player.effect[_i].name
<<if def $player.effect[_i].remain>>
- @@color:coral;Lasts $player.effect[_i].remain Days@@
<</if>>
<<if def $player.effect[_i].effect>>
- $player.effect[_i].effect
<</if>>
<</for>>
<br>
<br>Skills:
<<for _i=0; _i<$player.skills.length; _i++>>
<br> <<SkillIconName $player.skills[_i]>> +<<print BonusFromSkill($player.skills[_i].exp)>>
($player.skills[_i].exp exp)
<</for>>
<br>
<br>Shopping Items:
<<for _i=0; _i<$dailyItems.length; _i++>>
<<if $dailyItems[_i].buy>>
<br> $dailyItems[_i].name
<<if $dailyItems[_i].appeal >= 1>>
@@.appeal;+<<print $dailyItems[_i].appeal>> Appeal@@
<</if>>
<<if def $dailyItems[_i].effect>>
@@.appeal;$dailyItems[_i].effect@@
<</if>>
<</if>>
<</for>>
<<for _i=0; _i<$weeklyItems.length; _i++>>
<<if $weeklyItems[_i].buy>>
<br> $weeklyItems[_i].name
<<if $weeklyItems[_i].appeal >= 1>>
@@.appeal;+<<print $weeklyItems[_i].appeal>> Appeal@@
<</if>>
<<if def $weeklyItems[_i].effect>>
@@.appeal;$weeklyItems[_i].effect@@
<</if>>
<<if $weeklyItems[_i].remain>>
- @@color:coral;Have $weeklyItems[_i].remain Days Worth@@
<</if>>
<</if>>
<</for>>
<br>
<br>Planned Activities:
<<for _i=0; _i<$player.activities.length; _i++>>
<br>
$player.activities[_i].name
<<if $player.activities[_i].boonText.length >= 1>>
- $player.activities[_i].boonText
<</if>>
<</for>>
<br><br>Flags:
<<for _i=0; _i<$player.flags.length; _i++>>
<br>_i $player.flags[_i]
<</for>>
<br><br>Leisure Time: $player.leisureTime<<UpdateClients>>
''Client List''
<br>
<table style="border: 1px solid gray;">
<<for _idx=0;_idx<$clients.length;>>
<tr>
<<for _n=0;_n<4;_n++>>
<<if _idx<$clients.length>>
<td style="border: 1px solid gray;">
<<DisplayClientForList $clients[_idx]>>
</td>
<<set _idx++>>
<</if>>
<</for>>
</tr>
<</for>>
</table><<DebugTableClients $clients>><<DebugTableItems $dailyItems>>
<br><br>
<<DebugTableItems $weeklyItems>>/* Variable Init */
<<set _skills = []>>
/* Generate Skill Table */
<<for _i=0; _i<$clients.length; _i++>>
<<for _n=0; _n<$clients[_i].tasks.length; _n++>>
<<set AddSkill(_skills, $clients[_i].tasks[_n], 1)>>
<</for>>
<</for>>
/* Sort ? */
<<set _skills = _skills.sort(function(a, b)
{
if(a.type < b.type) return -1; if(a.type > b.type) return 1;
if(a.skill < b.skill) return -1; if(a.skill > b.skill) return 1;
return 0;})>>
/* List them All */
''Skills'' (<<print _skills.length>>)
<<for _i=0; _i<_skills.length; _i++>>
<br><<SkillIconName _skills[_i]>> _skills[_i].exp
<</for>>/*
Call as <<DebugTableClients [clientList]>>
*/
<<widget "DebugTableClients">>
<<set _idx=0;>>
<table style="border: 1px solid gray;">
<<for _idx=0;_idx<$args[0].length;>>
<tr>
<<for _n=0;_n<4;_n++>>
<<if _idx<$args[0].length>>
<td style="border: 1px solid gray;">
<<DisplayClientForList $args[0][_idx]>>
</td>
<<set _idx++>>
<</if>>
<</for>>
</tr>
<</for>>
</table>
<</widget>>/*
Call as <<DebugTableItems [itemList]>>
*/
<<widget "DebugTableItems">>
<<set _idx=0;>>
<table style="border: 1px solid gray;">
<<for _idx=0;_idx<$args[0].length;>>
<tr>
<<for _n=0;_n<5;_n++>>
<<if _idx<$args[0].length>>
<td>
<<DisplayItem $args[0][_idx]>>
</td>
<<set _idx++>>
<</if>>
<</for>>
</tr>
<</for>>
</table>
<</widget>>F'rochtute9 Alpha) A Slave Bro+hel Simulator RYOA
This RYOA is not a power fantasy. The story is intended as a semi-realistic depiction of prostitution and includes grim depictions of unpleasant content (i.e. assault, slavery, rape, mutilation, misogyny). It is designed to be an immersive experience (from the slave's perspective) rather than erotic.
Depression has struck the Kingdom of Petaligua. The economy is miserable, and the unemployment rate has skyrocketed to record heights. With thousands of starving people overcrowding the slums, rampant crime plagues the streets of the capital.
Your father runs a small apple orchard outside of the city, so your family farm has been relatively secure. However, a terrible blight struck your orchard this year, and the crops are ruined. It's starting to look like there won't be enough money to pay for rent.
As the eldest peasant child, you decide to look for work in the city. The Adventurer's Guild is well known for accepting mercenaries from all walks of life, and you decide that this might be a good place to make use of your natural talent in recovery magic.
You quickly meet all the members of the party and you heal everyone's wounds with your magic. Even though you initially thought the mercenaries seemed scary, they were kinder than you expected, and they are actually very friendly.
After spending an evening socializing, drinking alcohol, and getting to know your new teammates, you feel good about yourself. You think you're very fortunate for being born with healing powers, because otherwise it would be difficult to find such a nice party of caring and welcoming people.
You fall asleep underneath the stars, oblivious, warm, and happy.
After registering as a healer, you look around the guild hall hoping to join a party. Everyone looks very intimidating, and you don't know anyone. However, as a healer, you can't take quests or fight monsters by yourself.
You find a small party of mercenaries who look somewhat strong, and they are wrapped in bandages and other injuries. It seems like they don't already have a healer, so you offer your services and ask to join their team.
"Sure, we could use a healer," the leader tells you.
Gratefully, you tag along and follow them out of the city.
'V was the bejinninj o4 a rnhtmare..:
You suddenly wake up in the middle of the night to a dizzying sense of pain, confusion, and darkness. Someone is on top of you and shoving your legs apart, and you frantically realize that you are being raped by several of the mercenaries.
It feels like your brain is surrounded with fog, and you slowly deduce that you must have been drugged. You can't summon the energy to resist and tight hemp rope around your arms digs into your skin. A soiled leather gag in your mouth tastes Like mud, and bitter tears fill your eyes.
"No hard feelings," a mercenary says. "We need cash, and you'll sell for a pretty sum. We all got families to feed."
There is a flash of light, and you collapse on the floor writhing in pain. It feels like the skin on your body is melting, and the dark wizard coldly informs you that this transformation magic is permanent. It can even alter your gender. (i.e. to _)
No one from your past life will ever recognize your new look. As far as society is concerned, your former identity is dead.
The dark wizard reaches out and seizes your neck. A fiery sensation expands inside your throat, and the evil magic slowly eats away your vocal cords, dealing irreversible damage and branding your neck with a magical slave's mark.
You are now mute and permanently silenced.
This is the beginning of your new life as a voiceless slave...
You are promptly stripped naked, assaulted, and robbed of your belongings. A dark sack is thrown over your head, and you feel yourself loaded onto an enclosed wagon. Over the subsequent days, you are repeatedly drugged, molested, and forced to heal the injured members of the mercenary party, and you lose all sense of time and direction.
At some point, you must have been sold to a slave merchant, because your restraints are exchanged for metal shackles and a steel collar, and you are given slave rags to wear.
"My father will come looking for me!" You insist weakly.
But the slavers laugh, and an ominous cloaked figure steps forward. Glowing black magic appears at their fingertips.
-The Slave Girls of the Red Lantern Brothel
Oh? A new face? You must be the new slave girl that the Owner purchased yesterday. You're in terrible shape, and I guess we should get you cleaned up. I have no idea what you've been through, but you should put your old life behind you. There's no use crying, and you'll scare away customers with that miserable look.
My name is Vivi, and you can think of me like an older sister. I'm a slave just like you, but I've been working at this slave brothel for a few years. We're a relatively small and affordable whorehouse in the red light district, so we don't get the nicest customers, but I hope that one day we can work together to attract better clients.
It's a dream of ours, you know?
I don't know if anyone has explained it to you yet, but the only way we'll ever leave this place is if a customer purchases us from the brothel. All of us fantasize about being purchased by a kind owner one day, so we're all trying our hardest to appeal to the best patrons. Hopefully, they'll fall for our charms and buy us from this place.
Of course... you don't want to be purchased by a filthy and cruel man, right?
You better work hard then. You're just a common peasant girl, right? Your face and body is kinda average, and you don't even know how to read and write? I don't mean to be rude, but you have a lot of catchup to do before you can start calling yourself a halfway decent prostitute like the rest of us.
Yahalb! Its nice to meet ■Jou, newcomer! We're only a small brothel, so there were only three of us here before you came along. We're all trying our hardest to appeal to our ideal owners, so it's kind of like a competition between us. But that doesn't mean we can't be friends! We're all sex slaves, so let's get along, okay?
Vivi Appeal: 30 Hiyo! We spoke eorlierl I don't meon to brag, but Pm the star maiden of this brothel. I'm number one in sales and popularity, and rm pretty much fully booked every night. That said, fm always up for a friendly chat!
Since I'm obviously everyone's first choice, I get dibs on the best customers. Patrons will visit me before they visit anyone else, so the rest of you girls will be stuck with the bottom of the pile. >.< No hard feelings though! It's just the perks of being the #1 girl on the list.
Mauve Appeal: 20 Hey I'm Mauve. Nice to meet you. rm kind of a weirdo, so don't mind me if you see me doing strange things. The Boss picked me up because I'm on expert on all kinds of fetishes, so you can always talk to me if you want sex lessons. Of course, you'll need to pay me for private tutoring, since I ain't doing it for free.
Do I hove any advice for you? Hm... Be creative. Be bold. Be yourself. Don't judge the clients. Some of them may look greasy, but they're not bad people. Appearances ain't everything.
Eno
Appeal: 12 H-Hi... my name is Eno. Pm o b-beostkin slave... S-Snow leopard. Um... I'm not really good at this, but the customers like me because Pm f-fluffy My toil is very soft, but please don't touch it... it's very sensitive... I don't like it when the customers touch it but I don't hove o choice... Sex slaves can't say no.
Um... is there something wrong with your voice? You can't talk? What happened to you? rm sorry, I don't know how to read or write either You'll hove to learn from someone else.
Letts take a look in the mirror, shall we.?
Huh? Why do you look so surprised? You don't even recognize your own face? Well... um... yeah, you'll probably need to work on your appearance if you want to attract better customers.
But don't feel bad, okay? It's not like every peasant girl has beautiful skin like a goddess. To be honest, all of us use tons of makeup and cosmetics, and no prostitute looks good first thing in the morning. Maybe you didn't use many beauty products back when you were a poor flat-chested village girl, but you'll just have to start buying the more expensive goods if you want to look nice from now on. Your outfit is also half the battle, and it should highlight your charm. There are also surgeries and magical spells to increase your bust size or straighten your teeth, but those are expensive, and you'll have to save up before you can afford them.
I know it's unusual, but the Owner makes us pay for our own clothing and beauty improvements. Even though we're sex slaves, he can't be bothered to micromanage this feminine stuff, so he gives us a small allowance with each client that we serve satisfactorily. It's not real money, but we can use it like fake currency to request upgrades.
Right now, you have $0 in savings. Your base appeal score is: 2 Keep track of these two numbers moving forward!
llominj Hours
Are you okay, dear? You don't look very thrilled about this. To be honest, Ena was just like you when the Owner purchased her at a discount market. She was a scraggly ball of fur, half starving, and way too skinny for anyone to want her. However, the Owner has excellent intuition, and he saw that she could definitely be popular after she cleaned up a bit. I'm sure it's the same with you! You have a nice figure, but it's covered underneath all that acne, freckles, and scars.
Anyways, let me help you out for today, alright?
It's the morning right now, and it's time to get ready. I'll lend you $50 for your first day, so spend it on anything you like. Since you can't talk, I guess you'll have to point with your fingers, and I'll help purchase those products for you. Our slave collars will shock and prevent us from leaving the red light district, so everything is delivered by a courier. I don't need to mention that our slave brands have other magical features that allow our Owner to track, control, and punish us, right?
"Da'd Items & tioclicters First, let's check out the daily shop. These items have temporary effects that expire at the end of the day. For instance, if you apply a skin care lotion with a +1 appeal effect, it only lasts for one day. Tomorrow, you'll have to purchase the item again and redo your makeup routine.
Beauty products are expensive, and their cost scales with your base appeal score (@) before any modifiers. As you start getting more attractive, you'll want to use better and higher quality products. Right now, your base appeal score (@) is 2, so your "Makeup" will cost $2.
13a+h 8, Wash Price: $1 Bosic toiletries for cleaning and washing. Please do this every day! +I appeal
Skincare Price: @ For soft, pearly skin that's nice to touch. Hair removal, lotion, etc. +I appeal
Hair Price: @ Fancy shampoo can get expensive. Getting your curls just right is a hassle. +1 appeal
Makeup' Price: @ Conceals blemishes and highlights your features. We all have our own style. +1 appeal
Fragrances Price: @ x 2 A nice, attractive scent. Doubles as deodorant and comes in many flavors. +1 appeal
Healing Magic Price: Free You have healing magic? Thot's useful! Can you help us out if we're hurt? No effect
Con+racep+ion Price: $1 A simple mixture of herbs from the local witch. Also stops menstruation No pregnancy
Beauty Potion Price: $10 Magical products that enhance your beauty for o short duration of time. +I appeal
Aphrodisiacs Price: $S Makes you lewd and horny, but some customers really like that in o prostitute. +1 appeal
Pheromones Price: $20 Makes your customer lewd and horny >.< Try not to die in the bedroom. +3 appeal
weekly Items & Hocliciers Weekly items have temporary effects that expire after seven days. As before, these items get more and more expensive the higher you climb up the vanity ladder. Right now, your base appeal score (@) is 2, so your "Lingerie" (@ x 10) will cost $20.
Clothing Price: @ x 5 Rough customers like to rip our clothing to shreds, so you gotta buy extras... +I appeal
Lingerie Price: @ x 7 You can't wear the same underwear everyday You'll get o lot of complaints. +I appeal
Accessories Price: @ x 10 Jewelry, cute ribbons.. I never thought we'd be browsing these as o slave. +I appeal
Salon Visi+ Price: @ x 10 We'll invite a professional for o total makeover. You can't do everything alone. +1 appeal
Hospi+ali+y Price: @ x 10 Decor to make your play room cozy, and sex toys for customers to enjoy +I appeal
Always We+ Price: $50 This potion makes you wet like a puddle. Expect to soak through multiple pairs of underwear a day +I appeal
Stretchy Price: $60 A magical pill that makes your orifices flexible. You are less prone to injuries from rough and forced sex. No sex-related injuries
Tight Price: $75 A spell that enhances your pelvic and kegel muscles. Results in great sex and eorthshottering orgasms. +I appeal
Camouclage Price: $100 A magical form of makeup that lasts for a whole week. Good for concealing large scars or weird lumps. +1 appeal
Transmu+e Price: $150 Give yourself some extra bells and whistles for a week. Cot ears?A dick?, hope your clients like it. +2 appeal
•Permanent tioclicications
Are you nervous? Does the idea of altering your body make you feel uncomfortable? I'm sorry to break the news to you, my dear little sister, but the world of prostitution is competitive and harsh. There are at least a dozen different brothels in this city that we're competing with, and nobody wants to fuck an ugly slut. If you want to climb your way out of this shitty hellhole, you better start working hard on upgrading your body. Right now, your base appeal score (@) is 2, so "Cosmetic Surgery" (@ x 100) will cost $200.
Cosmetic Surgery Price: @ x 100 A small surgical alteration that slightly enhances your overall appearance. Includes anything from modifying bust size, fixing your teeth, to aligning the bones in your nose. Our technology is highly advanced, and nothing is impossible for our skilled team of magical surgeons. Extensive alterations are more expensive. +1 base appeal
Silver F'o+iori Price: @ x ISO Almost every girl dreams of these mystical silver potions. Although cosmetic surgery can achieve the same result, these silver potions are WO% magical. You simply need to imagine your desired look os you drink the potion, and your body will transform o tiny bit. There are diminishing returns with each subsequent dose. +1 base appeal
Black. Potion Price: $1000 This block potion is insidious, and it will slowly alter your personality. They are designed to mold the ideal sex slave, and customers love getting the perfect submissive girl of their fantasies. Brainwashing potions are a major reason why sex slaves are more popular than regular prostitutes. But consider this very carefully Is it worth it? +1 base appeal
Pe+ish Implant Price: @ x 75 There are a lot of perverts who are interested in renting sex slaves It goes without saying that there are many twisted body modifications on the market For instance, teeth removal is o popular alteration, since it guarantees that o sex slave will never bite. Some patrons just love using mouth pussies, so would you ever consider it? +I base appeal"Dalbht Hours
Shall we get moving on then, dear? The sun is already so high in the sky! We may be sex slaves at a small brothel, but the nights are busier than the days. Our customers still have regular jobs during business hours. They're ordinary people, you know? It's not Like they have unlimited money to dump on prostitutes, so you have to be patient if they haven't visited in a while.
Every day, you have three activity slots during your daylight hours. You can fill those time slots with any combination of three tasks, and you can repeat the same tasks if you wish.
wort k Labor
Yeah, we still have work to do even when we're not sleeping with a client. What did you think? We're slaves. Our purpose is to make as much money as possible for our Owner, and we'll be punished if we fall short. I think the Owner is a fairly reasonable master, since he lets us decide everything for ourselves. However, slave owners are legally allowed to kill and maim their property, so don't go asking for trouble.
Gleaning ge Chores Payment: $5 I know it doesn't pay much, but there's only four of us here. Someone needs to wipe the floors and clean up the mess from every night. Eno used to be the new girl, so she often got the short end of the stick, but ore you reolly going to dump the worst job on her? You're the newcomer, so you should scrub the toilets/ This ain't hazing. Hove respect for your seniors! No effect
Siree+ Advertising Payment: $0 We're only a small brothel, so we don't get many visitors every night. Like any other kind of business, advertising is essential for attracting more customers. While our slave collars prevent us from leaving the red light district, we can still stand in front of the brothel and flirt with the pedestrians who pass by There's on art to dressing skimpily and flashing your assets. Roll an extra guest dice tonight Requires Total Appeal 2 10
Free Clinic. Payment: I spoke with the Owner already, and he said that we might as well make use of your healing powers. There are o lot of poor people in the neighborhood who can't afford to go to the doctor, and the Owner thinks it would be o good publicity stunt to run o free clinic during the day. You won't be paid for your services but you'll definitely leave on impression. Re-roll one guest dice tonight
Tavern Waitress Payment: $10 The Owner has o contract with the bar next door, and we're allowed to work there for half-pay Why ore slaves paid half o salary when we work just os hard os the regular employees? Don't ask me. Life is unfair. Our Owner collects our pay, and we're given this fake brownie point currency instead. If you think about it, we're getting pennies for every dollar that we produce for our moster. No effect
Glory Hole Payment: $10 There are a lot of working men who swing by the red light district for o quick blow during their lunch breaks. It's cheap and a lot more affordable than reserving time with a prostitute. Honestly though, it doesn't pay much, so I hate doing this unless I need to get some practice sucking dick. I hope you don't end up with o sore neck tomorrow because it definitely gets very busy. +2 Oral Skill Requires Orol Skill 210
Strip Dancer Price: $20 How good are you of dancing? The Owner has many connections, and this would be o good opportunity to spread our reputation among high class clients. Even though we're o small whorehouse in the commoner's district, rich clients may be interested in visiting if they learn that we're better than your ordinary cheap sluts in our local area +5 Brothel Fame tonight Requires Dance Skill 2100 Requires Total Appeal z 20
Trainin & Lessons You want to spend some time on self-improvement? That's the spirit! It takes effort to become good at something, and you'll need a lot of practice before you get good at this.
There are dozens of different skills. Take note of the exact wording in the Appendix (Page 3), and each named item is a distinct skill. Examples of skills include Dance, Oral, Vaginal, Bondage, Music, Pet Play, Chess, etc. Use your imagination to determine your initial skill level in various subjects, but keep your starting skill level under 10. You may need to use a spreadsheet in order to keep track of your skills.
Practice Price: Free In true DIY fashion, if you sit down in front of the mirror with a dildo, you can probably start working on a couple skills or two. That said, self-study isn't necessarily the most effective way to learn something. It'll probably take you ages to learn anything useful, especially since you are illiterate and mute. +I Skill (Any Skill)
Skills oC Seduction Vivi's Price: $20 So you want to learn how to lure o client, hm? You've definitely come to the right person/ As the #1 girl in this brothel, I can definitely tell you that acting is o prostitute's essential skill. Can you fake on orgasm? Lots of men have delicate egos, and we stroke many things aside from their dicks. Poy me $20, and I'll be happy to shore o couple of my secrets. +2 Skill (Any Skill)
Art o1 o Courtesan Vivi's Price: , Song. Music. Dance. In order to be o high class courtesan, you must be beautiful, elegant, witty, intelligent and talented in every regard. While I'm still endeavoring to learn every skill, I con ploy o handful of instruments and dance to o tune. Customers love to have their back's massaged, and I can tench you o number of things about customer service. +2 Skill (service-related)
Sex Lessons Mauve's Price: Hey I know you wonted to get advice on sex skills, and I'm happy to teach you for o fee. I'm going to do some things to you and I'll explain what I'm doing. Then we'll switch positions and you can try to pleasure me. But don't get the wrong idea in your head Even though I'll give you the best orgasms in your life, don't mistake this for a romantic relationship. I'm teaching you os o favor, and I'm not lesbian. +2 Skill (sex-related)
Training Room Mauve's Price: $15 Are you kinky? I've got bad news for you. As o sex slave, it doesn't matter what your kinks ore. Our customers call the shots, and they don't core if you have no interest in urine or feet. You can expect to be whipped, choked, leashed, or forced to eat from o dog bowl. It's o good thing that you're coming to me now because I can teach you what to do. Did you know there are many types of submissives? +3 Skill (kink-related)
Studying with Eno Ena's Price: Um... I know I said I didn't know how to read.. but I have magazine clippings I've collected from the post few months. If you wont.. maybe we can try to study it together? We can memorize symbols and guess what it means... since there isn't anyone else who can teach us. I know it sounds like a silly thing... and maybe it's pointless to spend our time on this... but I wont to learn how to read too. No Effect
Eve_ninj Hours
It's time to open the brothel! Are you nervous?
Have you fixed your makeup? You won't have time to run back to the dressing room once the customers are here, so make sure you finalize your appearance before the night starts.
Take note of your Total Appeal score after all applying all daily/weekly modifiers to your base appeal.
kinht visitors Every night, a small number of customers will visit the brothel. The clients who appear are random, and it is simulated by a dice roll. Refer to Page 3 for a full appendix of clients.
First, you should calculate the Brothel Fame. The Brothel Fame is the sum of everyone's appeal (including yours). On your first night, the Brothel Fame should be: (Vivi's Appeal) + (Mauve's Appeal) + (Ena's Appeal) + (Your Total Appeal)
The Brothel Fame determines the quality of customers that your brothel will attract. Clients with Customer Fame higher than your Brothel Fame are too picky and will not visit your low-class brothel. Clients with Customer Fame less than half of your Brothel Fame are too poor to visit your brothel
Here is an example. For this demonstration, we'll pretend that your Total Appeal is 9. Brothel Fame = (Vivi's Appeal) + (Mauve's Appeall + (Ena's Appeal) + (Your Total Appeal) Brothel Fame = (30) + (20) + (12) +(9) = 71 Your brothel can attract visitors with a Customer Fame between 36 and 71.
Next, go to the client appendix and roll for four clients within your brothel's range. If you took the 'Street Advertising' task today, you can roll for an extra client.
There are several ways to roll for four clients. Here is the simplest method using 100-sided dice. - Roll d100 dice until you get four clients with a Customer Fame between 36 and 71. - Ignore dice rolls outside of the range.
Finally, we match visitors to their chosen prostitutes. The prostitute with the highest Appeal gets to choose first. Vivi, Mauve, and Ena will generally pair with clients with the highest Fame. You will probably have the lowest Appeal on your first night, which means you are forced to take the worst client.
If you took the 'Free Clinic' task today and you are unsatisfied with your client, you are allowed to reroll once. Your rerolled client must have a Fame lower than your original roll. You cannot roll a 'better' client on your second try.
Sex k Service
Once you are chosen by a customer, they may ask you to perform up to three acts for the night, which are listed on their client profile in the appendix.
Flip a coin (1d2) for each task on their profile. If it is heads, they will force you to perform that particular sex act. You cannot refuse.
If the coin flip is tails, performing the task is optional.
Every customer task has a Challenge Rating. You must roll a score higher than their Challenge Rating in order to pass. Roll a 20-sided dice (1d20). Next, take the square root of your Skill Level / 10 in the task and add it to your dice roll. (Dice Roll) + SQRT( Skill Level / 10 ) = Performance Score
Performance Score a Challenge Rating You pass. Collect 3 skill points. Performance Score < Challenge Rating You fail. Collect 2 skill points.
You should do this for every task you perform.
'Parent do Hearts
Each client will pay according to the number of tasks you pass, as well as your Total Appeal and/or Customer Fame. Refer to the following table:
PERFORMANCE PAYMENT 1 Successful Task $( Your Total Appeal ) 2 Successful Tasks $( Your Total Appeal x 4 ) 3 Successful Tasks $( Your Total Appeal x 4 ) + $( Customer Fame )
If you do an exceptional job with a client, you will collect Hearts. Earning a Heart with a client indicates that they like you, and they will automatically choose you instead of the other girls if they are rolled as a guest in the future.
Keep track of the Hearts that you collect. If you gather five Hearts with one client, you win the game!
To obtain a Heart, you must fulfil three requirements:
1. You performed all three of their tasks. 2. You failed none of their tasks. 3. Your Performance Score must be greater than double the Challenge Rating in at least two tasks.
YOU ARE NOT MY LAVE. NOR PET AND I MY WON'T TREAT LIKE ONE, EITHER,.
"Punishments
If you fail any tasks during the evening, you could be punished the next morning. The client who you offended gets to decide whether to report you, so imagine their personality in your head. Some clients may opt not to punish you (i.e. it's silly to punish a slave for failing at 'Cuddling'). If you previously had Hearts with a client, failing a task will cause you to lose one Heart.
Try to imagine why you failed a task with a customer, and select an appropriate punishment. Alternatively, roll for a punishment using dice. Each row on the table has increasingly severe punishments.
I. Spanking Bad girls need to be spanked Its as simple os that. How many strikes will it be?
2- Practice Session 3. Keflection Room
Clearly, you need to improve your skills. In fact, you will be forced to "practice" it until I'm satisfied. +2 Skill Points
You will be shut away H o small cage in a dark cramped room and isolated No dinner for you today. -I Daylight Activity Slot
4. Nudity It seems you've forgotten that you're a sex stove. Your clothing privileges are revoked for o day
5. Whipping You need a severe punishment. It will leave marks, and I want you to eel the stinging pain for a day. Do not heal it without permission.
G. Gon9loon9 There's nothing like organized rape to put a misbehaving sex fslave bock in her place. A group of men will be invited to "punish" you.
7. Strict Bondage This punishment is very uncomfortable. In fact, it's a predicament, and it won't take long before you're whimpering.
8. High Protocol Your Owner is kind, and he normally doesn't treat you like a slave. But today, you'll be on full slave protocol Get on your knees,
-I Appeal for one day
9. Torture You'll be punished with no limits. The objective is to hurt you and make you cry, and you will definitely suffer very bitterly
You are heavily injured
i0. Free Use 100% free. No payment is needed to fuck you like o rag, and you will definitely be used nonstop. It'll be difficult to wash the cum out -I Daylight Activity Slot -I Appeal for one day
II. Exhibition You will be placed in a public location with a sign describing your crimes. Enjoy the rotten eggs and public harassment -I Daylight Activity Slot Appeal for one day
ConCiscotion You need to learn that o slave has no rights. All of the privileges you have can be token away in an instant. You own nothing.
Forfeit all your money
Ineies
It's horribly sickening, I know. :c
You live in a world where customers can get away with almost anything as long they pay a fee, and prostitutes are beaten, whipped, and hurt every day on the job. Sex slaves can't refuse their clients, and you'll encounter a twisted human being sooner or Later.
If your Performance Score is less than half the Challenge Rating for any rough task, you are injured.
You must spend the next day recuperating and healing, so you must skip all your daylight activities.
A -Prostitute2s wish
Tell me, how was your first night? Was it anything like you expected? Was it horrible? Perhaps you found it disgusting? You must feel filthy. All of us experienced the same thing when we first came here, and we learned to grow up and move on. I faith in you, my dear little sister. You can do this. You can be filthy sex whore a like the rest of us.
Ha. I can see the expression on your face. I bet you dislike me. Maybe you think "Vivi is a two-faced bitch", and you think I act totally different in front of customers? It's kind of cute to see you upset. Nostalgic, kinds. To be honest, I used to be shiny-eyed and optimistic just like you, but years in the sex industry left me jaded and cynical.
You'll become a liar just like me, sooner or later.
Let's see you climb the ladder. Chase that little dream of salvation — that maybe a decent customer will save you and buy your freedom. It's every prostitute's wish, isn't it? Cling to that a tiny little hope like a desperate little fool.
It's the morning again, so run along now. Rinse and repeat. Do your makeup. Pick out a cute outfit and fix that plastic face.
Remember to smile for the camera, my dear.
Little_ Extras in Ena's Bedroom
H-Hi again... this is Ena... I just wanted to check in... Did Vivi say something mean again? Don't listen to her. S-Seriously. She's not right about everything...
GiCts ,gie Presents
Um... I got you a present since it was your first night here... It's not much... and you can refuse it if you want, but it will give +1 to your base appeal.
If you spend $500, you can give a gift to any of the girls in the brothel. All presents give +1 base appeal to an NPC.
Presents are useful, because we should work together to raise our Brothel Fame so we can attract better customers. Of course, you can't give yourself presents, but you're already spending so much money on yourself.
Even though Vivi is a little rude, she's not a bad person. Mauve is also very caring even though she's a little bit cold. You should think about getting them presents from time to time. All of us live together, so we should try to be friends.
Leisure Time
In my opinion... I m-mean... you don't have to listen to me... but it's important to take care of yourself. You should take breaks and find a hobby to enjoy.
If you spend $25 and use one daylight activity slot, you can spend that time on a hobby. It needs to be approved by the Owner, so suspicious things aren't allowed, but he's okay with us painting, drawing, gardening, and other stuff.
Spending time on a hobby doesn't give any benefits... but I still think it's important food for the soul. H-Honestly, I spend most of my own extra money on hobbies... so I don't have very much in savings...
But you should do you! All of us are different, and we each prefer to use our time in different ways.
Endings
Most endings in this story are open-ended. Use your own imagination and create your own ending!
Resijnation
You've given up. This is impossible. You hate your life.
There's no point in trying to work the ladder. You'll never be purchased by anyone decent, and you'll be sex slave in this filthy cheap brothel forever.
That glazed over look of despair in your eyes...
Perhaps you're thinking of suicide. The problem is that healing magic in this world is too advanced, and you'll be resurrected soon after you make any attempts.
IDscar-cleci
Have you been tracking your punishments?
Honestly, you're a terrible sex slave, and you receive more complaints than compliments. You're bad for this brothel's reputation, and it's better for the Owner to get rid of you.
You'll be sold to the worst brothel in the city. It's basically a prison, and it's five cents a fuck. You'll be gangbanged 24/7 in a dirty stall until your holes are sagging like loose skin, and then there's no point in keeping you around anymore.
I wonder where you'll be sold next...
Trust me, it only ever gets worse. Welcome to living hell.
'Purchased
You have five Hearts with a client, and they've mentioned that they're interested in purchasing you from the brothel.
Roll a 2d100 dice and sum the score. If the Customer Fame is higher than the dice roll, they will successfully purchase you. Congratulations! You now have a new owner.
If their Customer Fame is too low... I guess you need to find a wealthier client. It's not like a poor beggar can afford to buy a sex slave. The economy is bad, and people can't just throw money around like candy. Reset your client's Hearts to zero.
'Pregnancy
Why aren't you taking contraception?
For every Vaginal Sex encouter, roll a 1d6 dice. If your dice roll is one, you are now pregnant. You must choose to get an abortion or carry the baby to term.
Abortions cost $100.
If you decide to carry the baby to term, apply -1 base appeal for every week that you are pregnant. Yes, you're still expected to work. If you can't earn cash, the Owner will Discard you, and that's very very bad.
You wouldn't want to be sold to a human livestock farm.A Prostitute's wish
<br>Tell me, how was your first night? Was it anything like you expected? Was it horrible? Perhaps you found it disgusting? You must feel filthy. All of us experienced the same thing when we first came here, and we learned to grow up and move on. I faith in you, my dear little sister. You can do this. You can be filthy sex whore a like the rest of us.
<br>Ha. I can see the expression on your face. I bet you dislike me. Maybe you think "Vivi is a two-faced bitch", and you think I act totally different in front of customers? It's kind of cute to see you upset. Nostalgic, kinds. To be honest, I used to be shiny-eyed and optimistic just like you, but years in the sex industry left me jaded and cynical.
<br>You'll become a liar just like me, sooner or later.
<br>Let's see you climb the ladder. Chase that little dream of salvation — that maybe a decent customer will save you and buy your freedom. It's every prostitute's wish, isn't it? Cling to that a tiny little hope like a desperate little fool.
<br>It's the morning again, so run along now. Rinse and repeat. Do your makeup. Pick out a cute outfit and fix that plastic face.
<br>Remember to smile for the camera, my dear.
<table>
<tr><td colspan=2>
''Little Extras in Ena's Bedroom''
<br>H-Hi again... this is Ena... I just wanted to check in... Did Vivi say something mean again? Don't listen to her. S-Seriously. She's not right about everything...
</td></tr>
<tr>
<td>
<<if $show.images>>
<img src="images/Present.png">
<br>
<</if>>
@@.name;Gifts & Presents@@
<br>Um... I got you a present since it was your first night here... It's not much... and you can refuse it if you want, but it will give @@.appeal;+1@@ to your @@color:coral;base appeal@@.
<br>If you spend @@.cash;$500@@, you can give a gift to any of the girls in the brothel. All presents give @@color:coral;+1 base appeal@@ to an NPC.
<br>Presents are useful, because we should work together to raise our @@color:coral;Brothel Fame@@ so we can attract better customers. Of course, you can't give yourself presents, but you're already spending so much money on yourself.
<br>Even though Vivi is a little rude, she's not a bad person. Mauve is also very caring even though she's a little bit cold. You should think about getting them presents from time to time. All of us live together, so we should try to be friends.
<br>
<<link "Accept Gift" "Plan Shopping">>
<<set $player.baseAppeal += 1>>
<<set $player.enaGift = 1>>
<<set $player.appeal = $player.baseAppeal + $player.tempAppeal>>
<<CalculatePrices>>
<<CalculateShoppingCosts>>
<</link>>
<br>
<<link "Decline Gift" "Plan Shopping">>
You Meanie.
<</link>>
</td>
<td>
<<if $show.images>>
<img src="images/Leisure Time.png">
<br>
<</if>>
@@.name;Leisure Time@@
<br>In my opinion... I m-mean... you don't have to listen to me... but it's important to take care of yourself. You should take breaks and find a hobby to enjoy.
<br>If you spend @@.cash;$25@@ and use @@color:coral;one daylight activity slot@@, you can spend that time on a hobby. It needs to be approved by the Owner, so suspicious things aren't allowed, but he's okay with us painting, drawing, gardening, and other stuff.
<br>Spending time on a hobby doesn't give any benefits... but I still think it's important food for the soul. H-Honestly, I spend most of my own extra money on hobbies... so I don't have very much in savings...
<br>But you should do you! All of us are different, and we each prefer to use our time in different ways.
</td></tr></table><center>@@.major;''It was the beginning of a nightmare...''@@</center>
<table>
<tr><td>
<span style="font-size:10pt">You suddenly wake up in the middle of the night to a dizzying sense of pain, confusion, and darkness. Someone is on top of you and shoving your legs apart, and you frantically realize that you are @@color:coral;being raped@@ by several of the mercenaries.
<br><br>It feels like your brain is surrounded with fog, and you slowly deduce that you must have been @@color:coral;drugged@@. You can’t summon the energy to resist, and tight hemp rope around your arms digs into your skin. A soiled leather gag in your mouth tastes like mud, and bitter tears fill your eyes.
<br><br>“No hard feelings,” a mercenary says. “We need cash, and you’ll sell for a pretty sum. We all got families to feed.”</span>
</td><td>
<img src="images/Intro4.png">
</td></tr>
<tr><td>
<img src="images/Intro5.png">
</td><td>
<span style="font-size:10pt">You are promptly stripped naked, assaulted, and robbed of your belongings. A dark sack is thrown over your head, and you feel yourself loaded onto an enclosed wagon. Over the subsequent days, you are repeatedly drugged, molested, and forced to heal the injured members of the mercenary party, and you lose all sense of time and direction.
<br><br>At some point, you must have been sold to a slave merchant, because your restraints are exchanged for @@color:coral;metal shackles and a steel collar@@, and you are given slave rags to wear.
<br><br>“My father will come looking for me!” You insist weakly.
<br><br>But the slavers laugh, and an ominous cloaked figure steps forward. Glowing black magic appears at their fingertips.</span>
</td></tr>
<tr><td>
<span style="font-size:10pt">There is a flash of light, and you collapse on the floor writhing in pain. It feels like the skin on your body is melting, and the dark wizard coldly informs you that this @@color:coral;transformation magic@@ is permanent. It can even alter your gender. @@color:gray;(i.e.♂ to ♀)@@
<br><br>No one from your past life will ever recognize your new look. As far as society is concerned, your former identity is @@color:coral;dead@@.
<br><br>The dark wizard reaches out and seizes your neck. A fiery sensation expands inside your throat, and the evil magic slowly eats away your vocal cords, dealing irreversible damage and @@color:coral;branding@@ your neck with a magical slave’s mark.
<br><br>You are now @@color:coral;mute@@ and permanently silenced.
<br><br>This is the beginning of your new life as a voiceless slave...</span>
</td><td>
<img src="images/Intro6.png">
</td></tr></table>
<<link "Learn your fate" "Girls Intro">>
<</link>><table>
<tr>
<td>
<span style="font-size:10pt">Depression has struck the Kingdom of Petaligua. The economy is miserable, and the unemployment rate has skyrocketed to record heights. With thousands of starving people overcrowding the slums, rampant crime plagues the streets of the capital.
<br><br>Your father runs a small apple orchard outside of the city, so your family farm has been relatively secure. However, a terrible blight struck your orchard this year, and the crops are ruined. It’s starting to look like there won’t be enough money to pay for rent.
<br><br>As the eldest peasant child, you decide to look for work in the city. The @@color:coral;Adventurer’s Guild@@ is well known for accepting mercenaries from all walks of life, and you decide that this might be a good place to make use of your natural talent in @@color:coral;recovery magic@@.</span>
</td>
<td>
<img src="images/Intro1.png">
</td></tr>
<tr><td>
<img src="images/Intro2.png">
</td>
<td>
<span style="font-size:10pt">After registering as a healer, you look around the guild hall hoping to join a party. Everyone looks very intimidating, and you don’t know anyone. However, as a healer, you can’t take quests or fight monsters by yourself.
<br><br>You find a small party of mercenaries who look somewhat strong, and they are wrapped in bandages and other injuries. It seems like they don’t already have a healer, so you offer your services and ask to join their team.
<br><br>“@@color:coral;Sure, we could use a healer,@@” the leader tells you.
<br><br>Gratefully, you tag along and follow them out of the city.</span>
</td></tr>
<tr><td>
<span style="font-size:10pt">You quickly meet all the members of the party and you heal everyone’s wounds with your magic. Even though you initially thought the mercenaries seemed scary, they were @@color:coral;kinder than you expected@@, and they are actually very friendly.
<br><br>After spending an evening socializing, drinking alcohol, and getting to know your new teammates, you feel good about yourself. You think you’re very fortunate for being born with healing powers, because otherwise it would be difficult to find such a nice party of caring and welcoming people.
<br><br>You fall asleep underneath the stars, oblivious, warm, and happy.</span>
</td><td>
<img src="images/Intro3.png">
</td></tr></table>
<<link "Wake Up" "Game Intro Nightmare">>
<</link>>WIP page
<br><br>
<<if $show.images>>
<<link "Hide Images" "Game Options">>
<<set $show.images = 0>>
<</link>>
<<else>>
<<link "Show Images" "Game Options">>
<<set $show.images = 1>>
<</link>>
<</if>>
<br><br>
<<if $show.notes>>
<<link "Hide Notes" "Game Options">>
<<set $show.notes = 0>>
<</link>>
<<else>>
<<link "Show Notes" "Game Options">>
<<set $show.notes = 1>>
<</link>>
<</if>>
| Notes are the fluff text for items/activities/clients<center>@@.major;The Slave Girls of the Red Lantern Brothel@@</center>
<table><tr>
<td>
<<if $show.images>>
<img src="images/Vivi Intro.png">
<</if>>
</td>
<td>
Oh? A new face? You must be the new @@color:coral;slave girl@@ that the Owner purchased yesterday. You’re in terrible shape, and I guess we should get you cleaned up. I have no idea what you’ve been through, but you should put your old life behind you. There’s no use crying, and you’ll scare away customers with that miserable look.
<br>My name is @@color:yellow;Vivi@@, and you can think of me like an older sister. I’m a slave just like you, but I’ve been working at this @@color:coral;slave brothel@@ for a few years. We’re a relatively small and affordable whorehouse in the red light district, so @@color:coral;we don’t get the nicest customers@@, but I hope that one day we can work together to attract better clients.
<br>It’s a dream of ours, you know?
<br>I don’t know if anyone has explained it to you yet, but the only way we’ll ever leave this place is if a customer @@color:coral;purchases us from the brothel@@. All of us fantasize about being purchased by a kind owner one day, so we’re all trying our hardest to appeal to the best patrons. Hopefully, they’ll fall for our charms and buy us from this place.
<br>Of course... you don’t want to be purchased by a filthy and cruel man, right?
<br>You better work hard then. You’re just a common @@color:coral;peasant girl@@, right? Your face and body is @@color:coral;kinda average@@, and you don’t even know how to read and write? I don’t mean to be rude, but you have a lot of catchup to do before you can start calling yourself a halfway decent prostitute like the rest of us.
</td></tr></table>
<table style="border: 1px solid white">
<tr><td colspan=3>
@@.major;Yahallo! It’s nice to meet you, newcomer!@@
<br>We’re only a small brothel, so there were only three of us here before you came along.
<br>We’re all trying our hardest to appeal to our ideal owners, so it’s kind of like a @@color:coral;competition@@ between us.
<br>But that doesn’t mean we can’t be friends! We’re all sex slaves, so let’s get along, okay?
</td></tr>
<tr>
<td>
<<if $show.images>>
<img src="images/Vivi.png">
<br>
<</if>>
@@.name;''Vivi''@@
<br>Appeal: @@.appeal;30@@
<br>@@.note;Hiyo! We spoke earlier! I don’t mean to brag, but I’m the star maiden of this brothel. I’m number one in sales and popularity, and I’m pretty much fully booked every night. That said, I’m always up for a friendly chat!
<br>Since I’m obviously everyone’s first choice, I get dibs on the best customers. Patrons will visit me before they visit anyone else, so the rest of you girls will be stuck with the bottom of the pile. >.< No hard feelings though! It’s just the perks of being the #1 girl on the list.@@
</td>
<td>
<<if $show.images>>
<img src="images/Mauve.png">
<br>
<</if>>
@@.name;''Mauve''@@
<br>Appeal: @@.appeal;20@@
<br>@@.note;Hey. I’m Mauve. Nice to meet you. I’m kind of a weirdo, so don’t mind me if you see me doing strange things. The Boss picked me up because I’m an expert on all kinds of fetishes, so you can always talk to me if you want sex lessons. Of course, you’ll need to pay me for private tutoring, since I ain’t doing it for free.
<br>Do I have any advice for you? Hm… Be creative. Be bold. Be yourself. Don’t judge the clients. Some of them may look greasy, but they’re not bad people. Appearances ain’t everything.@@
</td>
<td>
<<if $show.images>>
<img src="images/Ena.png">
<br>
<</if>>
@@.name;''Ena''@@
<br>Appeal: @@.appeal;12@@
<br>@@.note;H-Hi… my name is Ena. I’m a b-beastkin slave… S-Snow leopard. Um… I’m not really good at this, but the customers like me because I’m f-fluffy. My tail is very soft, but please don’t touch it… it’s very sensitive… I don’t like it when the customers touch it but I don’t have a choice… Sex slaves can’t say no.
<br>Um… is there something wrong with your voice? You can’t talk? What happened to you? I’m sorry, I don’t know how to read or write either. You’ll have to learn from someone else.@@
</td>
</tr>
</table>
<table style="border: 1px solid white">
<tr><td colspan=2>@@.major;Let's take a look in the mirror, shall we.?@@</td></tr>
<tr><td>
<<if $show.images>>
<img src="images/You.png">
<br>
<</if>>
</td>
<td>
<br>Huh? Why do you look so surprised? You don't even recognize your own face? Well... um... yeah, you'll probably need to work on your appearance if you want to attract better customers.
<br><br>But don't feel bad, okay? It's not like every peasant girl has beautiful skin like a goddess. To be honest, all of us use tons of makeup and cosmetics, and no prostitute looks good first thing in the morning. Maybe you didn't use many beauty products back when you were a poor flat-chested village girl, but you'll just have to start buying the more expensive goods if you want to look nice from now on. Your outfit is also half the battle, and it should highlight your charm. There are also surgeries and magical spells to increase your bust size or straighten your teeth, but those are expensive, and you'll have to save up before you can afford them.
<br>I know it's unusual, but the Owner makes us pay for our own clothing and beauty improvements. Even though we're sex slaves, he can't be bothered to micromanage this feminine stuff, so he gives us a small allowance with each client that we serve satisfactorily. It's not real money, but we can use it like fake currency to request upgrades.
<br>Right now, you have @@.cash;$0@@ in savings. Your base appeal score is: @@.appeal;2@@ Keep track of these two numbers moving forward!
</td></tr></table>
<br><br>
''Morning Hours''
<br>Are you okay, dear? You don’t look very thrilled about this. To be honest, Ena was just like you when the Owner purchased her at a discount market. She was a scraggly ball of fur, half starving, and way too skinny for anyone to want her. However, the Owner has excellent intuition, and he saw that she could definitely be popular after she cleaned up a bit. I’m sure it’s the same with you! You have a nice figure, but it’s covered underneath all that acne, freckles, and scars.
<br><br>Anyways, let me help you out for today, alright?
<br><br>It’s the morning right now, and it’s time to get ready. I’ll lend you $50 for your first day, so spend it on anything you like. Since you can’t talk, I guess you’ll have to point with your fingers, and I’ll help purchase those products for you. Our slave collars will shock and prevent us from leaving the red light district, so everything is delivered by a courier. I don’t need to mention that our slave brands have other magical features that allow our Owner to track, control, and punish us, right?
<br><br>
<<link "Start Game" "Plan Shopping">>
<<NewDay>>
<</link>>/* FinishActivities */
<<GenerateBrothelVisitors>>
<<MatchMoreAppealingGirls>>
/* Include Plan Evening */
<<include "Plan Evening">>/* Variable Init */
<<set _success = 0>>
<<set _grtSuc = 0>>
<<set _fails = 0>>
<<set _earn = 0>>
<<set _pregCheck = 0>>
<<set _injuries = 0>>
<<set _client = $clients[$player.client]>>
<<set $punishment = 0>>
In your visit with ''_client.name'' ...
<br>
<<for _i=0; _i<$tasks.length; _i++>>
<<if $tasks[_i].demand>>
<br>
<<set $tasks[_i].roll = RandomInRange(1,20)>>
<<set $tasks[_i].rating = $tasks[_i].roll + $tasks[_i].bonus>>
<<if $tasks[_i].rating >= ($tasks[_i].cr)>>
<<if $tasks[_i].rating >= ($tasks[_i].cr * 2)>>
Great
<<set _grtSuc += 1>>
<</if>>
Success! (@@.skill;+3 $tasks[_i].skill exp@@)
<<set AddSkill($player.skills, $tasks[_i], 3)>>
<<set _success += 1>>
<<else>>
<<if $tasks[_i].rating < ($tasks[_i].cr / 2)>>
Great
/* Injury Code */
<<if [$type.sex, $type.kink].contains($tasks[_i].type)>>
<<set _injuries += 1>>
<</if>>
<<if !$player.flags.contains("strechy")>>
<</if>>
<</if>>
Failure! (@@.skill;+2 $tasks[_i].skill exp@@)
<<set AddSkill($player.skills, $tasks[_i], 2)>>
<<set _failure += 1>>
<<if _client.heart >= 1>>
Something about -1 heart.
<<set _client.heart -= 1>>
<<else>>
<<set $punishment += 1>>
<</if>>
<</if>>
CR @@.appeal;$tasks[_i].cr@@ <<SkillIconName $tasks[_i]>> check:
(Roll $tasks[_i].roll + Bonus $tasks[_i].bonus = $tasks[_i].rating)
<<if $tasks[_i].skill == "Vaginal">>
<<set _pregCheck = 1>>
<</if>>
<</if>>
<</for>>
<<if (_grtSuc >= 3) && (_success >= 3) && (_fails == 0)>>
<<set _client.heart += 1>>
<br>Heart Gained! (<<print _client.heart>> total)
<</if>>
/*
<<if _success >= 3>>
<<set _earn = ($player.appeal * 4) + _client.fame>>
<<elseif _success >= 2>>
<<set _earn = ($player.appeal * 4)>>
<<elseif _success >= 1>>
<<set _earn = $player.appeal>>
<<else>>
<<set _earn = 0>>
<</if>>
*/
<<set _earn = (_grtSuc + _success - _fails) * $player.appeal>>
<<if _success >= 3>>
<<set _earn += _client.fame>>
<</if>>
<br>Earnings: @@.cash;_earn@@
<<set $player.cash += _earn>>
<<if _injuries>>
<<if $player.flags.contains("strechy")>>
<br>Being @@color:coral;strechy@@ prevented injury.
<<else>>
<<GenerateInjuredEffect>>
<br>Your poor performance led to you getting @@color:coral;Injured@@!
<<AddEffect $player $newEffect>>
<</if>>
<</if>>
<<if $punishment>>
/**/
<br><br><<PunishPlayer $player $punishment>>
<</if>>
<<if _pregCheck>>
<br><br><<PregChance $player "Vaginal">>
/*
<br>Your @@.skill;Vaginal@@ sex put you at risk for pregnancy,
<<if $player.flags.contains("contraception")>>
but your @@color:coral;contraceptives@@ kept you safe.
<<elseif RandomInRange(1,6) == 1>>
and you are now pregnant.
<<GeneratePregnancyEffect>>
<<AddEffect $player $newEffect>>
<<else>>
but you're safe this time.
<</if>>
*/
<</if>>
<<if _client.heart >= 5>>
<br><br>Something about chance to be purchased.
<<link "Suggest they purchase you" "Purchase Attempt">>
<</link>>
<br><<link "Keep Quiet" "Start New Day">>
<</link>>
<<else>>
<<set $nextLink.text = "New Day">>
<<set $nextLink.dest = "Start New Day">>
<</if>>/* Variable Init */
<<set $gameState = $state.day>>
<<if $show.notes>>
''Daylight Hours''
<br>Shall we get moving on then, dear? The sun is already so high in the sky! We may be sex slaves at a small brothel, but the nights are busier than the days. Our customers still have regular jobs during business hours. They're ordinary people, you know? It's not Like they have unlimited money to dump on prostitutes, so you have to be patient if they haven't visited in a while.
<br>Every day, you have three activity slots during your daylight hours. You can fill those time slots with any combination of three tasks, and you can repeat the same tasks if you wish.
<</if>>
<br><br>
''Currently Planned Activities'': ($player.activities.length of $numActivity)
<<for _i=0; _i<$player.activities.length; _i++>>
<br>
/* Bug catching */
<<if ndef $player.activities[_i].boon>>
<<set $player.activities[_i].boon = {}>>
<<set $player.activities[_i].boonText = "Bugged, recommend removal">>
<</if>>
<<capture _i>>
<<link "Cancel" "Plan Activities">>
<<RemoveActivity _i>>
<</link>>
<<if $player.activities.length < $numActivity>>
|
<<link "Repeat" "Plan Activities">>
<<set _tmp = clone($player.activities[_i])>>
<<AddActivity _tmp>>
<</link>>
<</if>>
<</capture>>
|
$player.activities[_i].name
<<if $player.activities[_i].boonText.length >= 1>>
- $player.activities[_i].boonText
<</if>>
<</for>>
<table style="border: 1px solid gray">
<tr><td colspan=3>
''Work & Labor''
<<if $show.notes>>
<br>Yeah, we still have work to do even when we're not sleeping with a client. What did you think? We're slaves. Our purpose is to make as much money as possible for our Owner, and we'll be punished if we fall short. I think the Owner is a fairly reasonable master, since he lets us decide everything for ourselves. However, slave owners are legally allowed to kill and maim their property, so don't go asking for trouble.
<</if>>
</td></tr>
<<for _idx=0;_idx<$workOptions.length;>>
<tr>
<<for _n=0;_n<3;_n++>>
<<if _idx<$workOptions.length>>
<td>
<<if $show.images>>
<<print '<img src="images/activity/'+$workOptions[_idx].name+'.png">'>>
<br>
<</if>>
@@.name;$workOptions[_idx].name@@
<br>$workOptions[_idx].boonText
<<if $show.notes>>
<br>@@.note;//$workOptions[_idx].note//@@
<</if>>
/*
<br>@@color:magenta;$workOptions[_idx].effect@@
*/
<<if def $workOptions[_idx].reqAppeal>>
<br>@@.req;Requires Total Appeal ≥ $workOptions[_idx].reqAppeal@@
<</if>>
<<if def $workOptions[_idx].reqSkill>>
<br>@@.req;Requires $workOptions[_idx].reqSkill.skill experience ≥ $workOptions[_idx].reqSkill.val@@
<</if>>
<<if $player.activities.length < 3>>
<<set _lnk = 1>>
<<if def $workOptions[_idx].reqAppeal>>
<<if $player.appeal < $workOptions[_idx].reqAppeal>>
<br>Insufficient Appeal
<<set _lnk = 0>>
<</if>>
<</if>>
<<if def $workOptions[_idx].reqSkill>>
<<set _skl = GetSkill($player.skills, $workOptions[_idx].reqSkill)>>
<<if _skl < $workOptions[_idx].reqSkill.val>>
<br>Insufficient Skill _skl
<<set _lnk = 0>>
<</if>>
<</if>>
<<if _lnk>>
<<capture _idx>>
<br>
<<link $workOptions[_idx].name "Plan Activities">>
<<set _tmp = {name:$workOptions[_idx].name, boon:$workOptions[_idx].boon, boonText:$workOptions[_idx].boonText}>>
<<AddActivity _tmp>>
<</link>>
<</capture>>
<</if>>
<</if>>
</td>
<<set _idx++>>
<</if>>
<</for>>
</tr>
<</for>>
</table>
<table style="border: 1px solid gray">
<tr><td colspan=3>
''Training & Lessons''
<<if $show.notes>>
<br>You want to spend some time on self-improvement? That's the spirit! It takes effort to become good at something, and you'll need a lot of practice before you get good at this.
<br>There are dozens of different skills. Take note of the exact wording in the Appendix (Page 3), and each named item is a distinct skill. Examples of skills include Dance, Oral, Vaginal, Bondage, Music, Pet Play, Chess, etc. Use your imagination to determine your initial skill level in various subjects, but keep your starting skill level under 10. You may need to use a spreadsheet in order to keep track of your skills.
<</if>>
</td></tr>
<tr><td>
<<if $show.images>>
<img src="images/activity/Practice.png">
<br>
<</if>>
@@.name;Practice@@
<br>Price: @@.cash;Free@@
<<if $show.notes>>
<br>@@.note;In true DIY fashion, if you sit down in front of the mirror with a dildo, you can probably start working on a couple skills or two. That said, self-study isn't necessarily the most effective way to learn something. It'll probably take you ages to learn anything useful, especially since you are illiterate and mute.@@
<</if>>
<br>@@.skill;+1 Skill@@ (Any Skill)
<br>
<<set _pracOpt = "">>
<<listbox "_pracOpt" autoselect>>
<<optionsfrom $sexSkill>>
<<optionsfrom $kinkSkill>>
<<optionsfrom $serviceSkill>>
<</listbox>>
<br>
<<link "Practice" "Plan Activities">>
<<set _tmp = {name:"Practice", boonText:"@@.skill;+1 " + _pracOpt + " Skill@@", boon:{skill:_pracOpt, skillVal:1}}>>
<<AddActivity _tmp>>
<</link>>
</td>
<td>
<<if $show.images>>
<img src="images/activity/Skills of Seduction.png">
<br>
<</if>>
@@.name;Skills of Seduction@@
<br>Vivi's Price: @@.cash;20@@
<<if $show.notes>>
<br>@@.note;So you want to learn how to lure a client, hm? You've definitely come to the right person! As the #1 girl in this brothel, I can definitely tell you that acting is a prostitute's essential skill. Can you fake an orgasm? Lots of men have delicate egos, and we stroke many things aside from their dicks. Pay me $20, and I'll be happy to share a couple of my secrets.@@
<</if>>
<br>@@.skill;+2 Skill@@ (Any Skill)
<br>
<<set _seducOpt = "">>
<<listbox "_seducOpt" autoselect>>
<<optionsfrom $sexSkill>>
<<optionsfrom $kinkSkill>>
<<optionsfrom $serviceSkill>>
<</listbox>>
<br>
<<link "Skills of Seduction" "Plan Activities">>
<<set _tmp = {name:"Skills of Seduction", boonText:"Costs: @@.cash;$20@@, @@.skill;+2 " + _seducOpt + " Skill@@", boon:{cost:20, skill:_seducOpt, skillVal:2}}>>
<<AddActivity _tmp>>
<</link>>
</td>
<td>
<<if $show.images>>
<img src="images/activity/Art of a Courtesan.png">
<br>
<</if>>
@@.name;Art of a Courtesan@@
<br>Vivi's Price: @@.cash;20@@
<<if $show.notes>>
<br>@@.note;Song. Music. Dance. In order to be o high class courtesan, you must be beautiful, elegant, witty, intelligent and talented in every regard. While I'm still endeavoring to learn every skill, I con ploy o handful of instruments and dance to o tune. Customers love to have their back's massaged, and I can tench you o number of things about customer service.@@
<</if>>
<br>@@.skill;+2 ▣ Skill@@ (service related)
<br>
<<set _courtOpt = "">>
<<listbox "_courtOpt" autoselect>>
<<optionsfrom $serviceSkill>>
<</listbox>>
<br>
<<link "Art of a Courtesan" "Plan Activities">>
<<set _tmp = {name:"Art of a Courtesan", boonText:"Costs: @@.cash;$20@@, @@.skill;+2 " + _courtOpt + " Skill@@", boon:{cost:20, skill:_courtOpt, skillVal:2}}>>
<<AddActivity _tmp>>
<</link>>
</td>
</tr>
<tr>
<td>
<<if $show.images>>
<img src="images/activity/Sex Lessons.png">
<br>
<</if>>
@@.name;Sex Lessons@@
<br>Mauve's Price: @@.cash;10@@
<<if $show.notes>>
<br>@@.note;Hey I know you wonted to get advice on sex skills, and I'm happy to teach you for o fee. I'm going to do some things to you and I'll explain what I'm doing. Then we'll switch positions and you can try to pleasure me. But don't get the wrong idea in your head Even though I'll give you the best orgasms in your life, don't mistake this for a romantic relationship. I'm teaching you os a favor, and I'm not lesbian.@@
<</if>>
<br>@@.skill;+2 ◉ Skill@@ (sex realated)
<br>
<<set _sexLesOpt = "">>
<<listbox "_sexLesOpt" autoselect>>
<<optionsfrom $sexSkill>>
<</listbox>>
<br>
<<link "Sex Lessons" "Plan Activities">>
<<set _tmp = {name:"Sex Lessons", boonText:"Costs: @@.cash;$10@@, @@.skill;+2 " + _sexLesOpt + " Skill@@", boon:{cost:10, skill:_sexLesOpt, skillVal:2}}>>
<<AddActivity _tmp>>
<</link>>
</td>
<td>
<<if $show.images>>
<img src="images/activity/Training Room.png">
<br>
<</if>>
@@.name;Training Room@@
<br>Mauve's Price: @@.cash;15@@
<<if $show.notes>>
<br>@@.note;Are you kinky? I've got bad news for you. As o sex slave, it doesn't matter what your kinks ore. Our customers call the shots, and they don't core if you have no interest in urine or feet. You can expect to be whipped, choked, leashed, or forced to eat from o dog bowl. It's o good thing that you're coming to me now because I can teach you what to do. Did you know there are many types of submissives?@@
<</if>>
<br>@@.skill;+3 ▲ Skill@@ (kink-related)
<br>
<<set _trainOpt = "">>
<<listbox "_trainOpt" autoselect>>
<<optionsfrom $kinkSkill>>
<</listbox>>
<br>
<<link "Training Room" "Plan Activities">>
<<set _tmp = {name:"Training Room", boonText:"Costs: @@.cash;$15@@, @@.skill;+3 " + _trainOpt + " Skill@@", boon: {cost:15, skill:_trainOpt, skillVal:3}}>>
<<AddActivity _tmp>>
<</link>>
</td>
<td>
<<if $show.images>>
<img src="images/activity/Studying with Ena.png">
<br>
<</if>>
@@.name;Studying with Ena@@
<br>Ena's Price: @@.cash;Free@@
<<if $show.notes>>
<br>@@.note;Um... I know I said I didn't know how to read.. but I have magazine clippings I've collected from the post few months. If you wont.. maybe we can try to study it together? We can memorize symbols and guess what it means... since there isn't anyone else who can teach us. I know it sounds like a silly thing... and maybe it's pointless to spend our time on this... but I want to learn how to read too.@@
<</if>>
<br>@@.appeal;No Effect@@
<br>
<<link "Studying with Ena" "Plan Activities">>
<<set _tmp = {name:"Studying with Ena", boonText:"", boon:{ena:1}}>>
<<AddActivity _tmp>>
<</link>>
</td>
</tr>
<<if $day >= 2>>
<tr>
<td>
<<if $show.images>>
<img src="images/activity/Leisure Time.png">
<br>
<</if>>
@@.name;Leisure Time@@
<br>Price: @@.cash;$25@@
<br>
<<link "Leisure Time" "Plan Activities">>
<<set _tmp = {name:"Leisure Time", boonText:"Costs: @@.cash;$25@@", boon: {cost:25, leisure:1}}>>
<<AddActivity _tmp>>
<</link>>
</td>
<td>
</td>
<td>
</td>
</tr>
<</if>>
</table>
<br><br>
<<if ($player.cash < $activityCost)>>
<<set $nextLink.text = "Insufficient Cash!">>
<<set $nextLink.dest = "">>
<<elseif ($player.activities.length < $numActivity)>>
<<set $nextLink.text = "Select More Activities!">>
<<set $nextLink.dest = "">>
<<elseif ($player.activities.length > $numActivity)>>
<<set $nextLink.text = "Select Fewer Activities!">>
<<set $nextLink.dest = "">>
<<else>>
<<set $nextLink.text = "Perform Activities">>
<<set $nextLink.dest = "Activities to Evening">>
<</if>><<set $gameState = $state.evening>>
<<if $show.notes>>
''Evening Hours''
<br>It's time to open the brothel! Are you nervous?
<br>Have you fixed your makeup? You won't have time to run back to the dressing room once the customers are here, so make sure you @@color:coral;finalize your appearance@@ before the night starts.
<br>Take note of your @@.appeal;Total Appeal@@ score after all applying all daily/weekly modifiers to your base appeal.
<hr>
<</if>>
Brothel Fame = $brothelFame
<<if $visitorReroll>>
<br>Visitor Rerolls: $visitorReroll
<</if>>
<br>
<table>
<<for _idx=0; _idx<$visitors.length;>>
<tr>
<<for _n=0;_n<4; _n++>>
<td>
<<if _idx<$visitors.length>>
<<DisplayClientForEvening $clients[$visitors[_idx].ID]>>
<br>
<<if $visitors[_idx].girl >= 0>>
@@color:yellow;<<print $girls[$visitors[_idx].girl].name>>@@
<<else>>
<<capture _idx>>
<<link "Pair With" "Sex And Service">>
<<set $player.client = $visitors[_idx].ID>>
<</link>>
<<if $visitorReroll>>
<br>
<<link "Reroll" "Plan Evening">>
<<set _maxID = $visitors[_idx].ID - 1>>
<<set $visitors.deleteAt(_idx)>>
<<for ;$visitors.length < $visitorCount;>>
<<set _found = 0>>
<<set _ID = RandomInRange($minID, _maxID)>>
<<for _i=0; _i<$visitors.length; _i++>>
<<if $visitors[_i].ID == _ID>>
<<set _found = 1>>
<<continue>>
<</if>>
<</for>>
<<if !_found>>
<<set $visitors.push({ID:_ID,girl:-1})>>
<</if>>
<</for>>
<<set $visitorReroll -= 1>>
<<set $visitors = $visitors.sort(function(a, b)
{ if(a.ID > b.ID) return -1; if(a.ID < b.ID) return 1; return 0;})>>
<</link>>
<</if>>
<</capture>>
<</if>>
<<set _idx++>>
<</if>>
</td>
<</for>>
</tr>
<</for>>
</table>
/* OLD *
<table>
<tr>
<<for _i=0; _i<$visitors.length; _i++>>
<td>
<<DisplayClientForList $clients[$visitors[_i].ID]>>
<br>
<<if $visitors[_i].girl >= 0>>
@@color:yellow;<<print $girls[$visitors[_i].girl].name>>@@
<<else>>
<<capture _i>>
<<link "Pair With" "Sex And Service">>
<<set $player.client = $visitors[_i].ID>>
<</link>>
<<if $visitorReroll>>
<br>
<<link "Reroll" "Plan Evening">>
<<set _maxID = $visitors[_i].ID - 1>>
<<set $visitors.deleteAt(_i)>>
<<for ;$visitors.length < $visitorCount;>>
<<set _ID = 0>>
<<set _ID = RandomInRange($minID, _maxID)>>
<<for _i=0; _i<$visitors.length; _i++>>
<<if $visitors[_i].ID == _ID>>
<<continue>>
<</if>>
<</for>>
<<set $visitors.push({ID:_ID,girl:-1})>>
<<set $visitorReroll -= 1>>
<<set $visitors = $visitors.sort(function(a, b)
{ if(a.ID > b.ID) return -1; if(a.ID < b.ID) return 1; return 0;})>>
<</for>>
<</link>>
<</if>>
<</capture>>
<</if>>
</td>
<</for>>
</tr></table>
/**//* Init Variables */
<<set $gameState = $state.morning>>
<<set _idx=0>>
<<set _budget = $player.cash - $shoppingCost>>
<<set $player.appeal = $player.baseAppeal + $player.tempAppeal>>
/* Daily Items */
<table style="border: 1px solid gray;">
<tr>
<td colspan=5>
''Daily Item & Modifiers''
<<if $show.notes>>
<br>First, let's check out the daily shop. These items have @@color:coral;temporary effects@@ that @@color:coral;expire at the end of the day@@. For instance, if you apply a skin care lotion with a @@.appeal;+1 appeal@@ effect, it only lasts for one day. Tomorrow, you'll have to purchase the item again and redo your makeup routine.
<br>Beauty products are expensive, and their cost scales with your @@color:coral;base appeal score@@ (@@.appeal;@@@) before any modifiers. As you start getting more attractive, you'll want to use better and higher quality products. Right now, your base appeal score (@@.appeal;@@@) is @@.appeal;2@@, so your "Makeup" will cost @@.cash;$2@@.
<</if>>
</td>
</tr>
<<for _idx=0;_idx<$dailyItems.length;>>
<tr>
<<for _n=0;_n<5;_n++>>
<<if _idx<$dailyItems.length>>
<<capture _idx>>
<td>
<<DisplayItem $dailyItems[_idx]>>
<br>
<<if $dailyItems[_idx].buy>>
<<link "Stop Buying" "Plan Shopping">>
<<set $shoppingCost -= $dailyItems[_idx].price>>
<<if def $dailyItems[_idx].appeal>>
<<set $player.tempAppeal -= $dailyItems[_idx].appeal>>
<</if>>
<<if def $dailyItems[_idx].flag>>
<<set $player.flags.delete($dailyItems[_idx].flag)>>
<</if>>
<<set $dailyItems[_idx].buy = 0>>
<</link>>
<<else>>
<<if _budget >= $dailyItems[_idx].price>>
<<link "Start Buying" "Plan Shopping">>
<<set $shoppingCost += $dailyItems[_idx].price>>
<<if def $dailyItems[_idx].appeal>>
<<set $player.tempAppeal += $dailyItems[_idx].appeal>>
<</if>>
<<if def $dailyItems[_idx].flag>>
<<set $player.flags.push($dailyItems[_idx].flag)>>
<</if>>
<<set $dailyItems[_idx].buy = 1>>
<</link>>
<<else>>
@@color:gray;Cannot Afford@@
<</if>>
<</if>>
</td>
<</capture>>
<<set _idx++>>
<</if>>
<</for>>
</tr>
<</for>>
</table>
<table style="border: 1px solid gray;">
<tr><td colspan=5>
''Weekly Items & Modifiers''
<<if $show.notes>>
<br>Weekly items have @@color:coral;temporary effects@@ that @@color:coral;expire after seven days@@. As before, these items get more and more expensive the higher you climb up the vanity ladder. Right now, your @@color:coral;base appeal score@@ (@) is @@.appeal;2@@, so your "Lingerie" (@ x 7) will cost @@.cash;$14@@.
<</if>>
</td>
</tr>
<<for _idx=0;_idx<$weeklyItems.length;>>
<tr>
<<for _n=0;_n<5;_n++>>
<<if _idx<$weeklyItems.length>>
<<capture _idx>>
<td>
<<DisplayItem $weeklyItems[_idx]>>
<br>
<<if ($player.flags.contains("no clothes")) && (def $weeklyItems[_idx].clothing)>>
Clothing privileges revoked
<<elseif $weeklyItems[_idx].remain>>
@@color:coral;Have $weeklyItems[_idx].remain Days Worth@@
<<elseif $weeklyItems[_idx].buy>>
<<link "Stop Buying" "Plan Shopping">>
<<set $shoppingCost -= $weeklyItems[_idx].price>>
<<if def $weeklyItems[_idx].appeal>>
<<set $player.tempAppeal -= $weeklyItems[_idx].appeal>>
<</if>>
<<if def $weeklyItems[_idx].flag>>
<<set $player.flags.delete($weeklyItems[_idx].flag)>>
<</if>>
<<set $weeklyItems[_idx].buy = 0>>
<</link>>
<<else>>
<<if _budget >= $weeklyItems[_idx].price>>
<<link "Start Buying" "Plan Shopping">>
<<set $shoppingCost += $weeklyItems[_idx].price>>
<<if def $weeklyItems[_idx].appeal>>
<<set $player.tempAppeal += $weeklyItems[_idx].appeal>>
<</if>>
<<if def $weeklyItems[_idx].flag>>
<<set $player.flags.push($weeklyItems[_idx].flag)>>
<</if>>
<<set $weeklyItems[_idx].buy = 1>>
<</link>>
<<else>>
@@color:gray;Cannot Afford@@
<</if>>
<</if>>
</td>
<</capture>>
<<set _idx++>>
<</if>>
<</for>>
</tr>
<</for>>
</table>
<table style="border: 1px solid gray;">
<tr><td colspan=4>
''Permanent Modifications''
<<if $show.notes>>
<br>Are you nervous? Does the idea of altering your body make you feel uncomfortable? I'm sorry to break the news to you, my dear little sister, but the world of prostitution is competitive and harsh. There are at least a dozen different brothels in this city that we're competing with, and nobody wants to fuck an ugly slut. If you want to climb your way out of this shitty hellhole, you better start working hard on upgrading your body. Right now, your @@color:coral;base appeal score@@ (@) is @@.appeal;2@@, so "Cosmetic Surgery" (@ x 100) will cost @@.cash;$200@@.
<</if>>
</td></tr>
<tr>
<td>
<<if $show.images>>
<img src="images/items/Cosmetic Surgery.png">
<br>
<</if>>
@@.name;''Cosmetic Surgery''@@
<<set _cosSur = $player.baseAppeal * 100>>
<br>Price: @@.cash;$<<print _cosSur>>@@ (@@.appeal;@ x 100@@)
<<if $show.notes>>
<br>@@.note; A small surgical alteration that slightly enhances your overall appearance. Includes anything from modifying bust size, fixing your teeth, to aligning the bones in your nose. Our technology is highly advanced, and nothing is impossible for our skilled team of magical surgeons. Extensive alterations are more expensive.@@
<</if>>
<br>@@.appeal;+1 base appeal@@
<br>
<<if $player.cash >= _cosSur>>
<<link "Get Cosmetic Surgery" "Plan Shopping">>
<<set $player.cosmeticSurgery += 1>>
<<set $player.cash -= _cosSur>>
<<set $player.baseAppeal += 1>>
<</link>>
<<else>>
<</if>>
</td><td>
<<if $show.images>>
<img src="images/items/Silver Potion.png">
<br>
<</if>>
@@.name;''Silver Potion''@@
<<set _slvPtn = $player.baseAppeal * 150>>
<br>Price: @@.cash;$<<print _slvPtn>>@@ (@@.appeal;@ x 150@@)
<<if $show.notes>>
<br>@@.note;Almost every girl dreams of these mystical silver potions. Although cosmetic surgery can achieve the same result, these silver potions are 100% magical. You simply need to imagine your desired look os you drink the potion, and your body will transform o tiny bit. There are diminishing returns with each subsequent dose.@@
<</if>>
<br>@@.appeal;+1 base appeal@@
<br>
<<if $player.cash >= _slvPtn>>
<<link "Drink Silver Potion" "Plan Shopping">>
<<set $player.silverPotion += 1>>
<<set $player.cash -= _slvPtn>>
<<set $player.baseAppeal += 1>>
<</link>>
<<else>>
<</if>>
</td><td>
<<if $show.images>>
<img src="images/items/Black Potion.png">
<br>
<</if>>
@@.name;''Black Potion''@@
<br>Price: @@.cash;$1000@@
<<if $show.notes>>
<br>@@.note; This block potion is insidious, and it will slowly alter your personality. They are designed to mold the ideal sex slave, and customers love getting the perfect submissive girl of their fantasies. Brainwashing potions are a major reason why sex slaves are more popular than regular prostitutes. But consider this very carefully Is it worth it?@@
<</if>>
<br>@@.appeal;+1 base appeal@@
<br>
<<if $player.cash >= 1000>>
<<link "Drink Black Potion" "Plan Shopping">>
<<set $player.blackPotion += 1>>
<<set $player.cash -= 1000>>
<<set $player.baseAppeal += 1>>
<</link>>
<<else>>
<</if>>
</td><td>
<<if $show.images>>
<img src="images/items/Fetish Implant.png">
<br>
<</if>>
@@.name;''Fetish Implant''@@
<<set _fetImp = $player.baseAppeal * 75>>
<br>Price: @@.cash;$<<print _fetImp>>@@ (@@.appeal;@ x 75@@)
<<if $show.notes>>
<br>@@.note; There are a lot of perverts who are interested in renting sex slaves It goes without saying that there are many twisted body modifications on the market For instance, teeth removal is o popular alteration, since it guarantees that o sex slave will never bite. Some patrons just love using mouth pussies, so would you ever consider it?@@
<</if>>
<br>@@.appeal;+1 base appeal@@
<br>
<<if $player.cash >= ($player.baseAppeal * 75)>>
<<link "Get A Fetish Implant" "Plan Shopping">>
<<set $player.fetishImplant += 1>>
<<set $player.cash -= ($player.baseAppeal * 75)>>
<<set $player.baseAppeal += 1>>
<</link>>
<<else>>
<</if>>
</td>
</tr>
<<if $day >= 2>>
<tr><td>
<<if $show.images>>
<img src="images/items/Present.png">
<br>
<</if>>
@@.name;''Present''@@
<br>Price: @@.cash;$500@@
<br>@@.appeal;+1 NPC appeal@@
<br>
<<set _presOpt = 0>>
<<listbox "_presOpt" autoselect>>
<<option $girls[0].name 0>>
<<option $girls[1].name 1>>
<<option $girls[2].name 2>>
<</listbox>>
<br>
<<if $player.cash >= 500>>
<<link "Buy A Present" "Plan Shopping">>
<<set $player.cash -= 500>>
<<set $girls[_presOpt].appeal += 1>>
<</link>>
<<else>>
<</if>>
</td><td></td><td></td><td></td></tr>
<</if>>
</table>
/* Determine Next Link */
<<if $player.cash >= $shoppingCost>>
<<set $nextLink.text = "Finish Shopping">>
<<set $nextLink.dest = "Shopping to Activities">>
<<else>>
<<set $nextLink.text = "Insufficient Cash">>
<<set $nextLink.dest = "">>
<</if>>/* Variable init */
<<set _client = $clients[$player.client]>>
You have @@.appeal;five Hearts@@ with _client.name, and you've suggested that they purchasing you from the brothel.
<br>Roll a 2d100 dice and sum the score. If the Customer Fame is higher than the dice roll, they will successfully purchase you. Congratulations! You now have a new owner.
<br>If their Customer Fame is too low... I guess you need to find a wealthier client. It's not like a poor beggar can afford to buy a sex slave. The economy is bad, and people can't just throw money around like candy. Reset your client's Hearts to zero.
<br><br>
<<set _roll = RandomInRange(1,100) + RandomInRange(1,100)>>2d100 = _roll
<<if _roll < _client.fame>>
They gathered enough money to buy you! Congratulations you "win".
<<else>>
They were unable to get enough money to buy you. Better luck next time.
<<set _client.heart = 0>>
<<link "Back to Working" "Start New Day">>
<</link>>
<</if>>/* Variable Init */
<<set _client = $clients[$player.client]>>
<<set $tasks = []>>
<<set $gameState = $state.night>>
<br>
<<DisplayClientForList _client>>
<br>
/* Determine demand */
<<for _i=0; _i<_client.tasks.length; _i++>>
<<set _tmp = {}>>
<<set _tmp.demand = either(0,1)>>
<<if _client.tasks[_i].type == $type.special>>
/* TODO - update this when changing how special skills work */
<<if _client.tasks[_i].skill.contains("nything")>>
<<set _tmp.skill = $sexSkill.random()>>
<<set _tmp.type = $type.sex>>
<<else>>
<<set _rnd = either($type.sex, $type.kink, $type.service)>>
<<if _rnd == $type.sex>>
<<set _tmp.skill = $sexSkill.random()>>
<<set _tmp.type = $type.sex>>
<<elseif _rnd == $type.kink>>
<<set _tmp.skill = $kinkSkill.random()>>
<<set _tmp.type = $type.kink>>
<<else>>
<<set _tmp.skill = $serviceSkill.random()>>
<<set _tmp.type = $type.service>>
<</if>>
<</if>>
<<else>>
<<set _tmp.skill = _client.tasks[_i].skill>>
<<set _tmp.type = _client.tasks[_i].type>>
<</if>>
<<set _tmp.cr = _client.tasks[_i].cr>>
<<set _tmp.exp = GetSkill($player.skills, _tmp)>>
<<set _tmp.bonus = BonusFromSkill(_tmp.exp)>>
<<set $tasks.push(_tmp)>>
<</for>>
/* TEMP */
<table>
<<for _i=0; _i<$tasks.length; _i++>>
<tr>
<td>
<<if $tasks[_i].demand>>
Forced
<<else>>
<<capture _i>>
/*
<<cycle "$tasks[_i].demand" autoselect>>
<<option "Skip" 0>>
<<option "Voluntary" -1>>
<</cycle>>
*/
<label>Volunteer <<checkbox "$tasks[_i].demand" 0 -1 autocheck>></label>
<</capture>>
<</if>>
</td>
/*
<td>
<<if $tasks[_i].demand == 1>>
<<else>>
<</if>>
</td>
*/
<td>
<<SkillIconName $tasks[_i]>>
</td>
<td>
CR @@.appeal;$tasks[_i].cr@@
</td>
<td>
(+<<print $tasks[_i].bonus>>)
/* ($tasks[_i].exp) */
</td>
</tr>
<</for>>
</table>
<br>
<<link "Perform For Client" "Perform Service">>
<</link>>/* FinishShopping */
/* TODO - FinishShopping could be moved from the widget to here */
<<FinishShopping>>
/* Set $numActivity */
<<set $numActivity = 3>>
<<for _i=0; _i<$player.effect.length; _i++>>
<<if def $player.effect[_i].activity>>
<<set $numActivity += $player.effect[_i].activity>>
<</if>>
<</for>>
<<if $numActivity < 0>>
<<set $numActivity = 0>>
<</if>>
/* Include Activities */
<<if $player.flags.contains("injured")>>
You are injured and must spend the day recuperating and healing, so you must skip all your daylight activities.
<<set $nextLink.text = "Rest till Evening">>
<<set $nextLink.dest = "Injured to Evening">>
<<else>>
<<include "Plan Activities">>
<</if>><<set $shoppingCost = 0>>
<<set $player.tempAppeal = 0>>
/* Daily Items */
<<for _i=0; _i<$dailyItems.length; _i++>>
<<if $dailyItems[_i].buy == 1>>
<<set $shoppingCost += $dailyItems[_i].price>>
<<if $dailyItems[_i].appeal>>
<<set $player.tempAppeal += $dailyItems[_i].appeal>>
<</if>>
<</if>>
<</for>>
/* Weekly Items */
<<for _i=0; _i<$weeklyItems.length; _i++>>
<<if ($player.flags.contains("no clothes")) && (def $weeklyItems[_i].clothing)>>
<<continue>>
<</if>>
<<if $weeklyItems[_i].remain>>
<<set $weeklyItems[_i].remain -= 1>>
<</if>>
<<if ($weeklyItems[_i].buy == 1) && ($weeklyItems[_i].remain == 0)>>
<<set $shoppingCost += $weeklyItems[_i].price>>
<<if $weeklyItems[_i].appeal>>
<<set $player.tempAppeal += $weeklyItems[_i].appeal>>
<</if>>
<</if>>
<</for>>
/* Effects */
<<for _i=0; _i<$player.effect.length;>>
<<if def $player.effect[_i].remain>>
<<set $player.effect[_i].remain -= 1>>
<<if $player.effect[_i].remain <= 0>>
$player.effect[_i].name expired.
<<RemoveEffect $player _i>>
<<continue>>
<</if>>
<</if>>
<<set _i++>>
<</for>>
/* Sort Player skills */
<<set $player.skills = $player.skills.sort(function(a, b)
{
if(a.type < b.type) return -1; if(a.type > b.type) return 1;
if(a.skill < b.skill) return -1; if(a.skill > b.skill) return 1;
return 0;})>>
/* Cleanup */
<<set $day += 1>>
<<set $player.appeal = $player.baseAppeal + $player.tempAppeal>>
<<CalculatePrices>>
<<CalculateShoppingCosts>>
/* Include next day */
<<if $day == 2>>
<<include "Ena's Gift">>
<<else>>
<<include "Plan Shopping">>
<</if>><<if $show.images>>
<img src="images/Splash Header.png">
<br>
<</if>>
@@font-size:200%;''Prostitute's Wish''@@:
<br> Original CYOA by @@color:lightgray; //anonekama//@@
<br> Twine Conversion by @@color:lightgray; //DrNoOne//@@
<br> Twine v. $ver
<br><br>''Disclaimer'': This game is a work of fiction designed for adults. It should not be played by anyone that is not of the legal age to view such materials.
<br><table style="border: 1px solid white;"><tr><td>This RYOA is not a power fantasy. The story is intended as a semi-realistic depiction of prostitution and includes @@color:darkred;grim depictions@@ of unpleasant content (i.e. assault, slavery, rape, mutilation, misogyny). It is designed to be an @@color:darkred;immersive experience@@ (from the slave's perspective) rather than erotic. </td></tr></table>
<br>
<<link "Intro" "Game Intro">>
<</link>>
|
<<link "Cheat Start" "Game Intro">>
<<set $player.cash = 10000>>
<</link>>
<br>
<hr>
Version 0.1.1 Changes:
<ul>
<li>Removed the /10 on skill mod calculation. Calculation is now: mod = square root(exp)</li>
<li>Hearts are now obtained when you get 3 great successes.</li>
<li>Client payment is now takes great successes into account. Calculation is now: pay = ((Great Success x 2) + Success - Fails) * Player Appeal. You get a bonus equal to Client Fame if you have three successes. You can loose money from fails.</li>
<li>Fixed Sebastian's Fame. Saves from the prevsious version will need to visit the Client List page to fix the problem.</li>
<li>Studing with Ena now actually works and is tracked. Already existing versions will be flagged as bugged and won't cause more errors, but also won't be tracked.</li>
<li>Getting the Nudity punishment two days in a row now works.</li>
<li>Changed the UI for client task selection. It is now a checkbox. Clicking on the Volunteer text should also toggle it.</li>
<li>You can no longer get pregnant while pregnant.</li>
<li>Added the full intro from the CYOA. Due to formatting differences it doesn't look as good, maybe I'll just show the CYOA image in the future.</li>
</ul>
<<link "Changes & Suggestions" "Changes and Suggestions">>
<<set $returnTo = "Story Splash">>
<<set $returnText = "Return">>
<</link>>
/*
<<set $Money = 1275>>
<<set $Denar to Math.floor($Money /100)>>
<<set $Dirham to Math.floor(($Money % 100) / 10)>>
<<set $Fals to Math.floor($Money % 10)>>
$Denar Denar $Dirham Dirham $Fals Fals
*/
<br><br>DEBUG:
<br>
<<link "List Clients" "Debug Client List">>
<<set $returnTo = "Story Splash">>
<<set $returnText = "Return">>
<</link>>
|
<<link "List Skills" "Debug Skill List">>
<<set $returnTo = "Story Splash">>
<<set $returnText = "Return">>
<</link>>
<br>
<<link "List Items" "Debug Item Lists">>
<<set $returnTo = "Story Splash">>
<<set $returnText = "Return">>
<</link>>
<br>
/*
Work to do
Today's Work
- Update Clients (f'd up Sebastian)
- Item System Update
- Plan Activities updates
- Remove the "too many" block on selection
- Add a Listing of punishments that lower max activity count?
Ideas
- Make activity slots a tracked thing (use blue #)
- Energy Drink (daily) -$20 +1#
- Healing Magic (daily) - free +1 brothel fame
Daily/Weekly Items
c Switch to a system that I can update easier?
UI
Engine
c Options for hiding note text
Activities
* Done-ish
Clients
* Rough Work
- Add player's bonus to skills to display (at the least on the task page)
c change layout for clients (not side by side?)
Game Text
- Improve on game text
Images
- eventually
Balnce Change Ideas
- Healing Magic (item) -> Appeal ties work in your favor
- Free Clinic (activity) -> Ignore one failure for punishment
- Fetish Implant (item) -> (stackable) +1 bonus to a specific skill?
- Payment mechanics -> Success - fails = Appeal multi. Pass all 3 to get + fame.
Great Success will count as 2 success (so max pay if 6xappeal+client fame)
- Skill Check -> Remove the /10 from the bonus calculation.
Consider dropping the skill die to d10
- Exhibition (Punishment) -> Upgraded nudity. No clothes & -1 activity slot.
Notes:
- (Anything) gives a random sexSkill
- (Random) gives a random skill
*//*
Call as <<InitActivities>>
Should only be called on game start.
Boon Options:
brothelFame - bonus fame for the brothel
cash - payment for performing the activity
cost - cost to perform the activity
client - additional client(s) will visit the brothel
reroll - reroll client that visits the brothel
skill - this skill gains exp
skillVal - amount of exp for noted skill
*/
<<widget "InitActivities">>
/* Init variables */
<<set $workOptions = []>>
<<set $trainingOptions = []>>
/* Add Work */
<<set _i = {name:"Cleaning & Chores",
note:"I know it doesn't pay much, but there's only four of us here. Someone needs to wipe the floors and clean up the mess from every night. Ena used to be the new girl, so she often got the short end of the stick, but ore you reolly going to dump the worst job on her? You're the newcomer, so you should scrub the toilets/ This ain't hazing. Hove respect for your seniors!",
effect:"No effect",
boon:{cash:5}
}>>
<<set $workOptions.push(_i)>>
<<set _i = {name:"Street Advertising",
note:"We're only a small brothel, so we don't get many visitors every night. Like any other kind of business, advertising is essential for attracting more customers. While our slave collars prevent us from leaving the red light district, we can still stand in front of the brothel and flirt with the pedestrians who pass by There's on art to dressing skimpily and flashing your assets.",
effect:"Roll an extra guest dice tonight",
boon:{client:1},
reqAppeal: 10
}>>
<<set $workOptions.push(_i)>>
<<set _i = {name:"Free Clinic",
note:"I spoke with the Owner already, and he said that we might as well make use of your healing powers. There are o lot of poor people in the neighborhood who can't afford to go to the doctor, and the Owner thinks it would be o good publicity stunt to run o free clinic during the day. You won't be paid for your services but you'll definitely leave on impression.",
effect:"Re-roll one guest dice tonight",
boon:{reroll:1}
}>>
<<set $workOptions.push(_i)>>
<<set _i = {name:"Tavern Waitress",
note:"The Owner has o contract with the bar next door, and we're allowed to work there for half-pay Why ore slaves paid half o salary when we work just os hard os the regular employees? Don't ask me. Life is unfair. Our Owner collects our pay, and we're given this fake brownie point currency instead. If you think about it, we're getting pennies for every dollar that we produce for our moster.",
effect:"No effect",
boon:{cash:10}
}>>
<<set $workOptions.push(_i)>>
<<set _i = {name:"Glory Hole",
note:"There are a lot of working men who swing by the red light district for o quick blow during their lunch breaks. It's cheap and a lot more affordable than reserving time with a prostitute. Honestly though, it doesn't pay much, so I hate doing this unless I need to get some practice sucking dick. I hope you don't end up with o sore neck tomorrow because it definitely gets very busy.",
effect:"+2 Oral Skill",
boon:{cash:10, skill:"Oral", skillVal:2},
reqSkill:{skill:"Oral", val:10}
}>>
<<set $workOptions.push(_i)>>
<<set _i = {name:"Strip Dancer",
note:"How good are you of dancing? The Owner has many connections, and this would be o good opportunity to spread our reputation among high class clients. Even though we're o small whorehouse in the commoner's district, rich clients may be interested in visiting if they learn that we're better than your ordinary cheap sluts in our local area",
effect:"+5 Brothel Fame tonight",
boon:{brothelFame:5, cost:20},
reqAppeal:20,
reqSkill:{skill:"Dance", val:100}
}>>
<<set $workOptions.push(_i)>>
/* Add Training *
<<set _i = {name:"Practice",
note:"In true DIY fashion, if you sit down in front of the mirror with a dildo, you can probably start working on a couple skills or two. That said, self-study isn't necessarily the most effective way to learn something. It'll probably take you ages to learn anything useful, especially since you are illiterate and mute.",
effect:"+1 Skill (Any Skill)",
boon:{skillVal:1},
option:$type.any
}>>
<<set $trainingOptions.push(_i)>>
<<set _i = {name:"Skills of Seduction",
note:"So you want to learn how to lure a client, hm? You've definitely come to the right person! As the #1 girl in this brothel, I can definitely tell you that acting is a prostitute's essential skill. Can you fake an orgasm? Lots of men have delicate egos, and we stroke many things aside from their dicks. Pay me $20, and I'll be happy to share a couple of my secrets.",
effect:"+2 Skill (Any Skill)",
boon:{cost: 20, skillVal:2},
option:$type.any
}>>
<<set $trainingOptions.push(_i)>>
<<set _i = {name:"Art of a Courtesan",
note:"Song. Music. Dance. In order to be o high class courtesan, you must be beautiful, elegant, witty, intelligent and talented in every regard. While I'm still endeavoring to learn every skill, I con ploy o handful of instruments and dance to o tune. Customers love to have their back's massaged, and I can tench you o number of things about customer service.",
effect:"+2 Skill (service-related)",
boon:{cost:20, skillVal:2},
option:$type.service
}>>
<<set $trainingOptions.push(_i)>>
<<set _i = {name:"Sex Lessons",
note:"Hey I know you wonted to get advice on sex skills, and I'm happy to teach you for o fee. I'm going to do some things to you and I'll explain what I'm doing. Then we'll switch positions and you can try to pleasure me. But don't get the wrong idea in your head Even though I'll give you the best orgasms in your life, don't mistake this for a romantic relationship. I'm teaching you os o favor, and I'm not lesbian.",
effect:"+2 Skill (sex-related)",
boon:{cost:10, skillVal:2},
option:$type.sex
}>>
<<set $trainingOptions.push(_i)>>
<<set _i = {name:"Training Room",
note:"Are you kinky? I've got bad news for you. As o sex slave, it doesn't matter what your kinks ore. Our customers call the shots, and they don't core if you have no interest in urine or feet. You can expect to be whipped, choked, leashed, or forced to eat from o dog bowl. It's o good thing that you're coming to me now because I can teach you what to do. Did you know there are many types of submissives?",
effect:"+3 Skill (kink-related)",
boon:{cost:15, skillVal:3},
option:$type.kink
}>>
<<set $trainingOptions.push(_i)>>
<<set _i = {name:"Studying with Ena",
note:"Um... I know I said I didn't know how to read.. but I have magazine clippings I've collected from the post few months. If you wont.. maybe we can try to study it together? We can memorize symbols and guess what it means... since there isn't anyone else who can teach us. I know it sounds like a silly thing... and maybe it's pointless to spend our time on this... but I wont to learn how to read too.",
effect:"No Effect",
boon:{}
}>>
<<set $trainingOptions.push(_i)>>
/**/
<</widget>>
/*
<<set _i = {name:"",
note:"",
effect:"",
boon:{},
reqAppeal:0,
reqSkill:{}
}>>
<<set $workOptions.push(_i)>>
*//*
Call as <<InitClients>>
Should be called once on game start.
*/
<<widget "InitClients">>
<<set $clients = []>>
<<set _c = {name:"Luweis",
note:"Cheap sluts… mh… I like ‘em all.",
tasks:[
{skill:"Vaginal", cr:3, type:$type.sex},
{skill:"Oral", cr:5, type:$type.sex},
{skill:"Urine", cr:7, type:$type.kink}
],
heart:0,
fame:35
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Vale",
note:"I’ll take anything you give me.",
tasks:[
{skill:"Massage", cr:4, type:$type.service},
{skill:"Fingering", cr:5, type:$type.sex},
{skill:"Anything", cr:6, type:$type.special}
],
heart:0,
fame:36
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Gwule",
note:"Shake those titties, mhm.",
tasks:[
{skill:"Lap Dance", cr:5, type:$type.service},
{skill:"Anal", cr:3, type:$type.sex},
{skill:"Violence", cr:12, type:$type.kink}
],
heart:0,
fame:37
}>>
<<set $clients.push(_c)>>3.
<<set _c = {name:"Cylix",
note:"So I can do ‘anything’ I want?",
tasks:[
{skill:"Oral", cr:5, type:$type.sex},
{skill:"Vaginal", cr:2, type:$type.sex},
{skill:"Pain Play", cr:7, type:$type.kink}
],
heart:0,
fame:39
}>>
<<set $clients.push(_c)>>
/* Drugs -> service */
<<set _c = {name:"Ralf",
note:"Sex is fucking heaven when high.",
tasks:[
{skill:"Anal", cr:5, type:$type.sex},
{skill:"Oral", cr:6, type:$type.sex},
{skill:"Drugs", cr:4, type:$type.service}
],
heart:0,
fame:40
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Myrril",
note:"My wife is too vanilla for me...",
tasks:[
{skill:"Vaginal", cr:9, type:$type.sex},
{skill:"Bondage", cr:2, type:$type.kink},
{skill:"Slave Play", cr:2, type:$type.kink}
],
heart:0,
fame:41
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Kayd",
note:"Gimme the regular.",
tasks:[
{skill:"Wrestling", cr:5, type:$type.service},
{skill:"Anal", cr:2, type:$type.sex},
{skill:"Breath Play", cr:8, type:$type.kink}
],
heart:0,
fame:42
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Demm",
note:"I wish I could own a sex slave.",
tasks:[
{skill:"Stroke Ego", cr:1, type:$type.service},
{skill:"Vaginal", cr:2, type:$type.sex},
{skill:"Pain Play", cr:6, type:$type.kink}
],
heart:0,
fame:43
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Jareth",
note:"I spend too much money on sex.",
tasks:[
{skill:"Oral", cr:8, type:$type.sex},
{skill:"Anal", cr:6, type:$type.sex},
{skill:"Vaginal", cr:8, type:$type.sex}
],
heart:0,
fame:44
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Lothain",
note:"Let’s pretend we’re married~ ♥",
tasks:[
{skill:"Roleplay", cr:8, type:$type.service},
{skill:"Kissing", cr:4, type:$type.service},
{skill:"Vaginal", cr:2, type:$type.sex}
],
heart:0,
fame:46
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Feroy",
note:"Which one should I pick today?",
tasks:[
{skill:"Sex Toys", cr:6, type:$type.kink},
{skill:"Anal", cr:2, type:$type.sex},
{skill:"Orgasm Play", cr:6, type:$type.kink}
],
heart:0,
fame:47
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Carpez",
note:"I’m a sex slave connoisseur.",
tasks:[
{skill:"Dance", cr:7, type:$type.service},
{skill:"Oral", cr:8, type:$type.sex},
{skill:"Slave Play", cr:5, type:$type.kink}
],
heart:0,
fame:48
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Kove",
note:"I run a shop down the street.",
tasks:[
{skill:"Strip Tease", cr:6, type:$type.service},
{skill:"Vaginal", cr:4, type:$type.sex},
{skill:"Bondage", cr:5, type:$type.kink}
],
heart:0,
fame:49
}>>
<<set $clients.push(_c)>>
/* Facial -> sex */
<<set _c = {name:"Del",
note:"My daughter was kidnapped...",
tasks:[
{skill:"Vaginal", cr:5, type:$type.sex},
{skill:"Oral", cr:2, type:$type.sex},
{skill:"Facial", cr:6, type:$type.sex}
],
heart:0,
fame:50
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Jabor",
note:"Fuck yes. I need this.",
tasks:[
{skill:"Fondling", cr:5, type:$type.service},
{skill:"Anal", cr:4, type:$type.sex},
{skill:"Rape Play", cr:11, type:$type.kink}
],
heart:0,
fame:51
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Aegis",
note:"I just want to watch.",
tasks:[
{skill:"Sex Machines", cr:6, type:$type.kink},
{skill:"Exhibition", cr:5, type:$type.kink},
{skill:"Bestiality", cr:4, type:$type.kink}
],
heart:0,
fame:52
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Varant",
note:"Silent. Just the way I like it.",
tasks:[
{skill:"Rough Play", cr:9, type:$type.service},
{skill:"Deepthroat", cr:7, type:$type.sex},
{skill:"Pet Play", cr:5, type:$type.kink}
],
heart:0,
fame:54
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Lathem",
note:"Shall we play a game?",
tasks:[
{skill:"Gambling", cr:8, type:$type.service},
{skill:"Anal", cr:7, type:$type.sex},
{skill:"Sex Toys", cr:7, type:$type.kink}
],
heart:0,
fame:55
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Barion",
note:"Homeless isn’t the right word.",
tasks:[
{skill:"Chess", cr:5, type:$type.service},
{skill:"Oral", cr:4, type:$type.sex},
{skill:"Fingering", cr:7, type:$type.sex}
],
heart:0,
fame:56
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Morven",
note:"I’m just a working man.",
tasks:[
{skill:"Dance", cr:7, type:$type.service},
{skill:"Oral", cr:9, type:$type.sex},
{skill:"Alcohol", cr:9, type:$type.service}
],
heart:0,
fame:57
}>>
<<set $clients.push(_c)>>
/*--*/
<<set _c = {name:"Reim",
note:"Money can buy anything.",
tasks:[
{skill:"Bondage", cr:2, type:$type.kink},
{skill:"Anal", cr:4, type:$type.sex},
{skill:"Pain Play", cr:7, type:$type.kink}
],
heart:0,
fame:58
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Wrena",
note:"I know you’re judging me.",
tasks:[
{skill:"Kissing", cr:5, type:$type.service},
{skill:"Scissoring", cr:3, type:$type.sex},
{skill:"Anything", cr:6, type:$type.special}
],
heart:0,
fame:59
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Magnius",
note:"Let’s just chill~",
tasks:[
{skill:"Conversation", cr:6, type:$type.service},
{skill:"Oral", cr:8, type:$type.sex},
{skill:"Tickling", cr:6, type:$type.kink}
],
heart:0,
fame:60
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Ishar",
note:"Um… it’s my first time...",
tasks:[
{skill:"Lap Dance", cr:5, type:$type.service},
{skill:"Vaginal", cr:8, type:$type.sex},
{skill:"Fingering", cr:5, type:$type.sex}
],
heart:0,
fame:62
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Sarek",
note:"*stares*",
tasks:[
{skill:"Biting", cr:8, type:$type.kink},
{skill:"Vaginal", cr:10, type:$type.sex},
{skill:"Rape Play", cr:7, type:$type.kink}
],
heart:0,
fame:63
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Lucius",
note:"I’m not a pedophile.",
tasks:[
{skill:"Fondling", cr:6, type:$type.service},
{skill:"Anal", cr:8, type:$type.sex},
{skill:"Slave Play", cr:7, type:$type.kink}
],
heart:0,
fame:64
}>>
<<set $clients.push(_c)>>
/* Bondage -> kink */
<<set _c = {name:"Reurig",
note:"Thank you.",
tasks:[
{skill:"Rough Play", cr:9, type:$type.service},
{skill:"Oral", cr:8, type:$type.sex},
{skill:"Bondage", cr:7, type:$type.kink}
],
heart:0,
fame:65
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Calab",
note:"I love this place!",
tasks:[
{skill:"Vaginal", cr:5, type:$type.sex},
{skill:"Sex Toys", cr:7, type:$type.kink},
{skill:"Urethral", cr:7, type:$type.kink}
],
heart:0,
fame:66
}>>
<<set $clients.push(_c)>>
/* Bondage -> kink */
<<set _c = {name:"Dana",
note:"I want to be a prostitute too.",
tasks:[
{skill:"Conversation", cr:15, type:$type.service},
{skill:"Fingering", cr:7, type:$type.sex},
{skill:"Bondage", cr:7, type:$type.kink}
],
heart:0,
fame:67
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Kaian",
note:"Yes… kneel for me, slave.",
tasks:[
{skill:"Food Play", cr:8, type:$type.service},
{skill:"Feet Play", cr:3, type:$type.kink},
{skill:"Slave Play", cr:10, type:$type.kink}
],
heart:0,
fame:69
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Bryth",
note:"Bahahahaha!",
tasks:[
{skill:"Alcohol", cr:8, type:$type.service},
{skill:"Humor", cr:8, type:$type.service},
{skill:"Anal", cr:7, type:$type.sex}
],
heart:0,
fame:70
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Tarin",
note:"I… think I’m ugly...",
tasks:[
{skill:"Oral", cr:6, type:$type.sex},
{skill:"Vaginal", cr:8, type:$type.sex},
{skill:"Licking", cr:10, type:$type.kink}
],
heart:0,
fame:71
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Bren",
note:"Do you like my beard?",
tasks:[
{skill:"Strip Tease", cr:7, type:$type.service},
{skill:"Fingering", cr:12, type:$type.sex},
{skill:"Orgasm Play", cr:9, type:$type.kink}
],
heart:0,
fame:72
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Ivis",
note:"My wife doesn’t know I’m a sadist.",
tasks:[
{skill:"Bondage", cr:9, type:$type.kink},
{skill:"Anal", cr:5, type:$type.sex},
{skill:"Pain Play", cr:13, type:$type.kink}
],
heart:0,
fame:73
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Neiro",
note:"The knight captain is an bitch.",
tasks:[
{skill:"Massage", cr:13, type:$type.service},
{skill:"Vaginal", cr:7, type:$type.sex},
{skill:"Exhibition", cr:10, type:$type.kink}
],
heart:0,
fame:74
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Hestor",
note:"I’m tired. The economy sucks.",
tasks:[
{skill:"Conversation", cr:7, type:$type.service},
{skill:"Deepthroat", cr:10, type:$type.sex},
{skill:"Bondage", cr:8, type:$type.kink}
],
heart:0,
fame:75
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Pollux",
note:"Hold on, I’m busy.",
tasks:[
{skill:"Alcohol", cr:5, type:$type.service},
{skill:"Oral", cr:7, type:$type.sex},
{skill:"Lactation", cr:7, type:$type.kink}
],
heart:0,
fame:77
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Desiric",
note:"You’d make a cute bitch.",
tasks:[
{skill:"Begging", cr:9, type:$type.service},
{skill:"Anal", cr:10, type:$type.sex},
{skill:"Pet Play", cr:7, type:$type.kink}
],
heart:0,
fame:78
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Tassian",
note:"I need inspiration...",
tasks:[
{skill:"Music", cr:7, type:$type.service},
{skill:"Dance", cr:7, type:$type.service},
{skill:"Vaginal", cr:8, type:$type.sex}
],
heart:0,
fame:79
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Spencer",
note:"I’m so bored.",
tasks:[
{skill:"Humor", cr:8, type:$type.service},
{skill:"Bondage", cr:1, type:$type.kink},
{skill:"Sex Toys", cr:11, type:$type.kink}
],
heart:0,
fame:80
}>>
<<set $clients.push(_c)>>
/*--*/
<<set _c = {name:"Zeth",
note:"I only have one good eye.",
tasks:[
{skill:"Smoking", cr:10, type:$type.service},
{skill:"Anal", cr:11, type:$type.sex},
{skill:"Deepthroat", cr:9, type:$type.sex}
],
heart:0,
fame:81
}>>
<<set $clients.push(_c)>>
/* Kissing -> service */
<<set _c = {name:"Yanis",
note:"Don’t be intimidated.",
tasks:[
{skill:"Hand Holding", cr:3, type:$type.service},
{skill:"Kissing", cr:12, type:$type.service},
{skill:"Vaginal", cr:9, type:$type.sex}
],
heart:0,
fame:82
}>>
<<set $clients.push(_c)>>
/* Feet Play -> kink */
<<set _c = {name:"Mina",
note:"Eheh… sorry I’m dirty...",
tasks:[
{skill:"Cuddling", cr:5, type:$type.service},
{skill:"Feet Play", cr:13, type:$type.kink},
{skill:"Scat", cr:6, type:$type.kink}
],
heart:0,
fame:83
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Vance",
note:"The world is shit.",
tasks:[
{skill:"Rough Play", cr:8, type:$type.service},
{skill:"Fingering", cr:8, type:$type.sex},
{skill:"Violence", cr:13, type:$type.kink}
],
heart:0,
fame:85
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Lot",
note:"Cheap sluts… mm… I like ‘em all.",
tasks:[
{skill:"Lap Dance", cr:9, type:$type.service},
{skill:"Anal", cr:8, type:$type.sex},
{skill:"Facial", cr:7, type:$type.sex}
],
heart:0,
fame:86
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Eurian",
note:"My shoulder...",
tasks:[
{skill:"Massage", cr:9, type:$type.service},
{skill:"Oral", cr:9, type:$type.sex},
{skill:"Rimming", cr:12, type:$type.sex}
],
heart:0,
fame:87
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Sebastian",
note:"A beautiful flower.",
tasks:[
{skill:"Humiliation", cr:6, type:$type.kink},
{skill:"Pain Play", cr:10, type:$type.kink},
{skill:"Bondage", cr:8, type:$type.kink}
],
heart:0,
fame:88
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Canaan",
note:"I’m too busy for relationships.",
tasks:[
{skill:"Stroke Ego", cr:7, type:$type.service},
{skill:"Vaginal", cr:11, type:$type.sex},
{skill:"Slave Play", cr:12, type:$type.kink}
],
heart:0,
fame:89
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Eiloric",
note:"Bitches exist to be fucked.",
tasks:[
{skill:"Rough Play", cr:8, type:$type.service},
{skill:"Vaginal", cr:7, type:$type.sex},
{skill:"Electricity", cr:11, type:$type.kink}
],
heart:0,
fame:90
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Jove",
note:"The world looks different with age.",
tasks:[
{skill:"Dance", cr:12, type:$type.service},
{skill:"Oral", cr:11, type:$type.sex},
{skill:"Urine", cr:10, type:$type.kink}
],
heart:0,
fame:92
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Lynn",
note:"I risk my life every day.",
tasks:[
{skill:"Slave Play", cr:9, type:$type.kink},
{skill:"Anal", cr:17, type:$type.sex},
{skill:"Rape Play", cr:7, type:$type.kink}
],
heart:0,
fame:93
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Yule",
note:"I always wanted to meet a slut.",
tasks:[
{skill:"Verbal Abuse", cr:11, type:$type.service},
{skill:"Pain Play", cr:13, type:$type.kink},
{skill:"Humiliation", cr:15, type:$type.kink}
],
heart:0,
fame:94
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Garith",
note:"Don’t tell anyone you saw me.",
tasks:[
{skill:"Music", cr:9, type:$type.service},
{skill:"Vaginal", cr:9, type:$type.sex},
{skill:"Dirty Laundry", cr:12, type:$type.kink}
],
heart:0,
fame:95
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Orryl",
note:"I just keep my head down.",
tasks:[
{skill:"Smoking", cr:12, type:$type.service},
{skill:"Conversation", cr:10, type:$type.service},
{skill:"Oral", cr:5, type:$type.sex}
],
heart:0,
fame:96
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Colin",
note:"My wife is cheating on me.",
tasks:[
{skill:"Conversation", cr:13, type:$type.service},
{skill:"Oral", cr:7, type:$type.sex},
{skill:"Sex Toys", cr:9, type:$type.kink}
],
heart:0,
fame:97
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Kobie",
note:"Hi… I’m Kobie...",
tasks:[
{skill:"Lap Dance", cr:9, type:$type.service},
{skill:"Anal", cr:10, type:$type.sex},
{skill:"Bondage", cr:10, type:$type.kink}
],
heart:0,
fame:98
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Liden",
note:"Grrr...",
tasks:[
{skill:"Fondling", cr:10, type:$type.service},
{skill:"Anal", cr:9, type:$type.sex},
{skill:"Pain Play", cr:7, type:$type.kink}
],
heart:0,
fame:100
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Renae",
note:"I have a big secret.",
tasks:[
{skill:"Oral", cr:3, type:$type.sex},
{skill:"Vaginal", cr:15, type:$type.sex},
{skill:"Cosplay", cr:13, type:$type.service}
],
heart:0,
fame:101
}>>
<<set $clients.push(_c)>>
/* Cuddling -> service */
<<set _c = {name:"Will",
note:"It’s my day off...",
tasks:[
{skill:"Cuddling", cr:14, type:$type.service},
{skill:"Vaginal", cr:8, type:$type.sex},
{skill:"Slave Play", cr:13, type:$type.kink}
],
heart:0,
fame:102
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Adrien",
note:"I like strong women.",
tasks:[
{skill:"Wrestling", cr:11, type:$type.service},
{skill:"Rough Play", cr:11, type:$type.service},
{skill:"Rape Play", cr:9, type:$type.kink}
],
heart:0,
fame:103
}>>
<<set $clients.push(_c)>>
/*--*/
<<set _c = {name:"Gregor",
note:"Hm… you will do.",
tasks:[
{skill:"Sex Machines", cr:15, type:$type.kink},
{skill:"Sex Toys", cr:10, type:$type.kink},
{skill:"Exhibition", cr:10, type:$type.kink}
],
heart:0,
fame:104
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Tavia",
note:"Meow.",
tasks:[
{skill:"Vaginal", cr:15, type:$type.sex},
{skill:"Licking", cr:9, type:$type.kink},
{skill:"Biting", cr:14, type:$type.kink}
],
heart:0,
fame:105
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Kei",
note:"I’m male. Don’t misgender me...",
tasks:[
{skill:"Hand Holding", cr:10, type:$type.service},
{skill:"Oral", cr:12, type:$type.sex},
{skill:"Fingering", cr:14, type:$type.sex}
],
heart:0,
fame:106
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Palmer",
note:"I can’t believe I’m renting a slave...",
tasks:[
{skill:"Conversation", cr:17, type:$type.service},
{skill:"Bondage", cr:18, type:$type.kink},
{skill:"Lactation", cr:14, type:$type.kink}
],
heart:0,
fame:108
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Wilfrid",
note:"Breeding is a human instinct.",
tasks:[
{skill:"Politics", cr:11, type:$type.service},
{skill:"Oral", cr:7, type:$type.sex},
{skill:"Deepthroat", cr:11, type:$type.sex}
],
heart:0,
fame:109
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Nikolai",
note:"Guess what I do for work?",
tasks:[
{skill:"Rough Play", cr:11, type:$type.service},
{skill:"Anal", cr:14, type:$type.sex},
{skill:"Pain Play", cr:13, type:$type.kink}
],
heart:0,
fame:110
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Jario",
note:"I’m a long way from home.",
tasks:[
{skill:"Fondling", cr:13, type:$type.service},
{skill:"Anal", cr:11, type:$type.sex},
{skill:"Bondage", cr:15, type:$type.kink}
],
heart:0,
fame:111
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Sorel",
note:"Hey. I’m sexy, right?",
tasks:[
{skill:"Stroke Ego", cr:10, type:$type.service},
{skill:"Facial", cr:9, type:$type.sex},
{skill:"Humiliation", cr:9, type:$type.kink}
],
heart:0,
fame:112
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Nile",
note:"Fuck that shit.",
tasks:[
{skill:"Cuddling", cr:8, type:$type.service},
{skill:"Anal", cr:10, type:$type.sex},
{skill:"Drugs", cr:14, type:$type.service}
],
heart:0,
fame:113
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Brett",
note:"My father is a hero.",
tasks:[
{skill:"Dance", cr:11, type:$type.service},
{skill:"Vaginal", cr:9, type:$type.sex},
{skill:"Slave Play", cr:10, type:$type.kink}
],
heart:0,
fame:115
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Emilie",
note:"Um...",
tasks:[
{skill:"Crossdressing", cr:9, type:$type.service},
{skill:"Oral", cr:9, type:$type.sex},
{skill:"Femdom", cr:13, type:$type.kink}
],
heart:0,
fame:116
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Harriet",
note:"I’m… not out of the closet yet..",
tasks:[
{skill:"Strip Tease", cr:17, type:$type.service},
{skill:"Oral", cr:14, type:$type.sex},
{skill:"Fingering", cr:8, type:$type.sex}
],
heart:0,
fame:117
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Quix",
note:"I’m a totally normal boy!",
tasks:[
{skill:"Kissing", cr:8, type:$type.service},
{skill:"Anal", cr:13, type:$type.sex},
{skill:"Electricity", cr:16, type:$type.kink}
],
heart:0,
fame:118
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Devon",
note:"I wanna see you gasp for air.",
tasks:[
{skill:"Rough Play", cr:14, type:$type.service},
{skill:"Deepthroat", cr:10, type:$type.sex},
{skill:"Breath Play", cr:10, type:$type.kink}
],
heart:0,
fame:119
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Jules",
note:"The spirits have voices…!",
tasks:[
{skill:"Roleplay", cr:10, type:$type.service},
{skill:"Vaginal", cr:10, type:$type.sex},
{skill:"Mind Control", cr:9, type:$type.kink}
],
heart:0,
fame:120
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Amber",
note:"Give me your best pickup line~",
tasks:[
{skill:"Flirting", cr:18, type:$type.service},
{skill:"Fingering", cr:16, type:$type.sex},
{skill:"Humiliation", cr:13, type:$type.kink}
],
heart:0,
fame:121
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Cornelia",
note:"Y-You want to know my secrets?",
tasks:[
{skill:"Sex Toys", cr:12, type:$type.kink},
{skill:"Scissoring", cr:18, type:$type.sex},
{skill:"Bestiality", cr:4, type:$type.kink}
],
heart:0,
fame:123
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Royce",
note:"Quality, not quantity.",
tasks:[
{skill:"Slave Play", cr:20, type:$type.kink},
{skill:"Anal", cr:18, type:$type.sex},
{skill:"Feet Play", cr:14, type:$type.kink}
],
heart:0,
fame:124
}>>
<<set $clients.push(_c)>>
/* Urethral -> kink */
<<set _c = {name:"Dalton",
note:"I’m a really nice guy.",
tasks:[
{skill:"Verbal Abuse", cr:13, type:$type.service},
{skill:"Urethral", cr:18, type:$type.kink},
{skill:"Rape Play", cr:10, type:$type.kink}
],
heart:0,
fame:125
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Rome",
note:"Consentacles, hahaha!!",
tasks:[
{skill:"Humor", cr:12, type:$type.service},
{skill:"Vaginal", cr:13, type:$type.sex},
{skill:"Monster Sex", cr:9, type:$type.kink}
],
heart:0,
fame:126
}>>
<<set $clients.push(_c)>>
/*--*/
/* Kissing -> service */
<<set _c = {name:"Sinclair",
note:"I just… want a friend...",
tasks:[
{skill:"Conversation", cr:10, type:$type.service},
{skill:"Kissing", cr:12, type:$type.service},
{skill:"Cuddling", cr:17, type:$type.service}
],
heart:0,
fame:127
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Fell",
note:"Nom.",
tasks:[
{skill:"Food Play", cr:13, type:$type.service},
{skill:"Oral", cr:16, type:$type.sex},
{skill:"Biting", cr:11, type:$type.kink}
],
heart:0,
fame:128
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Tyle",
note:"I just want someone to sleep with.",
tasks:[
{skill:"Sleeping", cr:8, type:$type.service},
{skill:"Vaginal", cr:13, type:$type.sex},
{skill:"Pet Play", cr:17, type:$type.kink}
],
heart:0,
fame:129
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Noel",
note:"Pass me a cigarette, will you?",
tasks:[
{skill:"Smoking", cr:12, type:$type.service},
{skill:"Oral", cr:19, type:$type.sex},
{skill:"Cuddling", cr:15, type:$type.service}
],
heart:0,
fame:131
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Penny",
note:"Let’s see what noises you make.",
tasks:[
{skill:"Begging", cr:12, type:$type.service},
{skill:"Anal", cr:8, type:$type.sex},
{skill:"Violence", cr:21, type:$type.kink}
],
heart:0,
fame:132
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Charles",
note:"Hehehe.",
tasks:[
{skill:"Fondling", cr:8, type:$type.service},
{skill:"Anal", cr:12, type:$type.sex},
{skill:"Random", cr:13, type:$type.special}
],
heart:0,
fame:133
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Valerin",
note:"Smile for the camera!",
tasks:[
{skill:"Alcohol", cr:17, type:$type.service},
{skill:"Vaginal", cr:12, type:$type.sex},
{skill:"Gravure", cr:3, type:$type.service}
],
heart:0,
fame:134
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Nico",
note:"Let’s take a look at your body.",
tasks:[
{skill:"Strip Tease", cr:9, type:$type.service},
{skill:"Fingering", cr:15, type:$type.sex},
{skill:"Exhibition", cr:14, type:$type.kink}
],
heart:0,
fame:135
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Eldwin",
note:"Did you call me short...?",
tasks:[
{skill:"Roleplay", cr:15, type:$type.service},
{skill:"Oral", cr:17, type:$type.sex},
{skill:"Sex Toys", cr:10, type:$type.kink}
],
heart:0,
fame:136
}>>
<<set $clients.push(_c)>>
/* Cosplay -> service */
<<set _c = {name:"Julien",
note:"Wanna make a bet?",
tasks:[
{skill:"Gambling", cr:13, type:$type.service},
{skill:"Vaginal", cr:16, type:$type.sex},
{skill:"Cosplay", cr:19, type:$type.service}
],
heart:0,
fame:138
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Kayden",
note:"Don’t ask any questions.",
tasks:[
{skill:"Vaginal", cr:19, type:$type.sex},
{skill:"Anal", cr:14, type:$type.sex},
{skill:"Oral", cr:15, type:$type.sex}
],
heart:0,
fame:139
}>>
<<set $clients.push(_c)>>
/* Kissing -> service */
<<set _c = {name:"Shiro",
note:"( … )",
tasks:[
{skill:"Anything", cr:15, type:$type.special},
{skill:"Kissing", cr:16, type:$type.service},
{skill:"Bondage", cr:10, type:$type.kink}
],
heart:0,
fame:140
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Hollaise",
note:"Kneel, slave.",
tasks:[
{skill:"Music", cr:6, type:$type.service},
{skill:"Vaginal", cr:13, type:$type.sex},
{skill:"Slave Play", cr:11, type:$type.kink}
],
heart:0,
fame:141
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Teresa",
note:"Let’s see what you got.",
tasks:[
{skill:"Wrestling", cr:11, type:$type.service},
{skill:"Oral", cr:19, type:$type.sex},
{skill:"Violence", cr:12, type:$type.kink}
],
heart:0,
fame:142
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Zun",
note:"Beauty is an art.",
tasks:[
{skill:"Dance", cr:15, type:$type.service},
{skill:"Fingering", cr:9, type:$type.sex},
{skill:"Feet Play", cr:16, type:$type.kink}
],
heart:0,
fame:143
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Martin",
note:"You are my research subject.",
tasks:[
{skill:"Science", cr:19, type:$type.service},
{skill:"Anal", cr:6, type:$type.sex},
{skill:"Pain Play", cr:22, type:$type.kink}
],
heart:0,
fame:144
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Florence",
note:"Impress me.",
tasks:[
{skill:"Chess", cr:17, type:$type.service},
{skill:"Anal", cr:15, type:$type.sex},
{skill:"Bondage", cr:18, type:$type.kink}
],
heart:0,
fame:146
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Anneliese",
note:"For love and honor!",
tasks:[
{skill:"Fencing", cr:15, type:$type.service},
{skill:"Scissoring", cr:20, type:$type.sex},
{skill:"Pet Play", cr:14, type:$type.kink}
],
heart:0,
fame:147
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Salazar",
note:"My identity is of no consequence.",
tasks:[
{skill:"Politics", cr:17, type:$type.service},
{skill:"Vaginal", cr:13, type:$type.sex},
{skill:"Orgasm Play", cr:14, type:$type.kink}
],
heart:0,
fame:148
}>>
<<set $clients.push(_c)>>
<<set _c = {name:"Felicia",
note:"I’m a princess! ...In disguise!",
tasks:[
{skill:"Poetry", cr:15, type:$type.service},
{skill:"Oral", cr:19, type:$type.sex},
{skill:"Tickling", cr:21, type:$type.kink}
],
heart:0,
fame:150
}>>
<<set $clients.push(_c)>>
<</widget>>
/*
<<set _c = {name:"",
note:"",
tasks:[
{skill:"", cr:0, type:$type.},
{skill:"", cr:0, type:$type.},
{skill:"", cr:0, type:$type.}
],
heart:0,
fame:0
}>>
<<set $clients.push(_c)>>
*//*
Call as <<InitItems>>
Should be called at game start.
*/
<<widget "InitItems">>
/* Daily Items */
<<set $dailyItems = []>>
<<set _i = {name:"Bath & Wash",
note:"Basic toiletries for cleaning and washing, Please do this every day!",
duration:1,
priceBase:1,
appeal:1
}>>
<<set $dailyItems.push(_i)>>
<<set _i = {name:"Skincare",
note:"For soft, pearly skin that's nice to touch. Hair removal, lotion, etc.",
duration:1,
priceAppeal:1,
appeal:1
}>>
<<set $dailyItems.push(_i)>>
<<set _i = {name:"Hair",
note:"Fancy shampoo can get expensive. Getting your curls just right is a hassle",
duration:1,
priceAppeal:1,
appeal:1
}>>
<<set $dailyItems.push(_i)>>
<<set _i = {name:"Makeup",
note:"Conceals blemishes and highlights your features. We all have our own style.",
duration:1,
priceAppeal:1,
appeal:1
}>>
<<set $dailyItems.push(_i)>>
<<set _i = {name:"Fragrances",
note:"A nice, attractive scent. Doubles as deodorant and comes in many flavors",
duration:1,
priceAppeal:2,
appeal:1
}>>
<<set $dailyItems.push(_i)>>
<<set _i = {name:"Healing Magic",
note:"You have healing magic? That's useful! Can you help us out if we're hurt?",
flag:"healing",
effect:"No Effect",
duration:1,
priceBase:0,
appeal:0
}>>
<<set $dailyItems.push(_i)>>
<<set _i = {name:"Contraception",
note:"A simple mixture of herbs from the local witch. Also stops menstruation.",
flag:"contraception",
effect:"No Pregnancy",
duration:1,
priceBase:1,
appeal:0
}>>
<<set $dailyItems.push(_i)>>
<<set _i = {name:"Beauty Potion",
note:"Magical products that enhance your beauty for a short duration of time.",
duration:1,
priceBase:10,
appeal:1
}>>
<<set $dailyItems.push(_i)>>
<<set _i = {name:"Aphrodisiacs",
note:"Makes you lewd and horny, but some customers really like that in a prostitute.",
duration:1,
priceBase:5,
appeal:1
}>>
<<set $dailyItems.push(_i)>>
<<set _i = {name:"Pheromones",
note:"Makes your customer lewd and horny. >.< Try not to die in the bedroom.",
duration:1,
priceBase:20,
appeal:3
}>>
<<set $dailyItems.push(_i)>>
/* Weekly Items */
<<set $weeklyItems = []>>
<<set _i = {name:"Clothing",
note:"Rough customers like to rip our clothing to shreds, so you gotta buy extras...",
duration:7,
priceAppeal:5,
appeal:1,
clothing:1
}>>
<<set $weeklyItems.push(_i)>>
<<set _i = {name:"Lingerie",
note:"You can't wear the same underwear everyday. You'll get a lot of complaints.",
duration:7,
priceAppeal:7,
appeal:1,
clothing:1
}>>
<<set $weeklyItems.push(_i)>>
<<set _i = {name:"Accessories",
note:"Jewelry, cute ribbons... I never thought we'd be browsing these as a slave.",
duration:7,
priceAppeal:10,
appeal:1,
clothing:1
}>>
<<set $weeklyItems.push(_i)>>
<<set _i = {name:"Salon Visit",
note:"We'll invite a professional for a total makeover. You can't do everything alone.",
duration:7,
priceAppeal:10,
appeal:1
}>>
<<set $weeklyItems.push(_i)>>
<<set _i = {name:"Hospitality",
note:"Decor to make your play room cozy, and sex toys for customers to enjoy.",
duration:7,
priceAppeal:10,
appeal:1
}>>
<<set $weeklyItems.push(_i)>>
<<set _i = {name:"Always Wet",
note:"This potion makes you wet like a puddle. Expect to soak through multiple pairs of underwear a day.",
duration:7,
priceBase:50,
appeal:1
}>>
<<set $weeklyItems.push(_i)>>
<<set _i = {name:"Stretchy",
note:"A magical pill that makes your orifices flexible. You are less prone to injuries from rough and forced sex.",
flag:"strechy",
effect:"No sex-related injuries",
duration:7,
priceBase:60,
appeal:0
}>>
<<set $weeklyItems.push(_i)>>
<<set _i = {name:"Tight",
note:"A spell that enhances your pelvic and kegel muscles. Results in great sex and earthshattering orgasms.",
duration:7,
priceBase:75,
appeal:1
}>>
<<set $weeklyItems.push(_i)>>
<<set _i = {name:"Camouflage",
note:"A magical form of makeup that lasts for a whole week. Good for concealing large scars or wierd lumps.",
duration:7,
priceBase:100,
appeal:1
}>>
<<set $weeklyItems.push(_i)>>
<<set _i = {name:"Transmute",
note:"Give yourself some extra bells and whistles for a week. Cat ears? A dick? I hope your clients like it.",
duration:7,
priceBase:150,
appeal:2
}>>
<<set $weeklyItems.push(_i)>>
<</widget>>
/*
<<set _i = {name:"",
note:"",
duration:7,
priceBase:0,
priceAppeal:0,
appeal:0
}>>
<<set $weeklyItems.push(_i)>>
*//*
Call as <<PrepareActivityLists>>
Should be called after InitActivities, and before starting a game.
*/
<<widget "PrepareActivityLists">>
/* TODO - options improvement */
<<for _i=0; _i<$workOptions.length; _i++>>
/* Variable Init */
<<set _txt = "">>
<<set _num = 0>>
/* Work through options */
<<if def $workOptions[_i].boon.cash>>
<<set _txt += "Pays @@.cash;$" + $workOptions[_i].boon.cash +"@@">>
<<set _num = 1>>
<</if>>
<<if def $workOptions[_i].boon.cost>>
<<if _num>>
<<set _txt += ", ">>
<</if>>
<<set _txt += "Costs @@.cash;$" + $workOptions[_i].boon.cost +"@@">>
<<set _num = 1>>
<</if>>
<<if def $workOptions[_i].boon.skill>>
<<if _num>>
<<set _txt += ", ">>
<</if>>
<<set _txt += "@@.skill;+" + $workOptions[_i].boon.skillVal + " " + $workOptions[_i].boon.skill + " Skill@@">>
<<set _num = 1>>
<</if>>
<<if def $workOptions[_i].boon.brothelFame>>
<<if _num>>
<<set _txt += ", ">>
<</if>>
<<set _txt += "@@.appeal;+" + $workOptions[_i].boon.brothelFame + " Brothel Fame Tonight@@">>
<<set _num = 1>>
<</if>>
<<if def $workOptions[_i].boon.client>>
<<if _num>>
<<set _txt += ", ">>
<</if>>
<<set _txt += "Roll an extra guest dice tonight">>
<<set _num = 1>>
<</if>>
<<if def $workOptions[_i].boon.reroll>>
<<if _num>>
<<set _txt += ", ">>
<</if>>
<<set _txt += "Re-roll one guest dice tonight">>
<<set _num = 1>>
<</if>>
/* Set boonText */
<<set $workOptions[_i].boonText = _txt>>
<</for>>
<</widget>>/*
Call as <<PrepareItemLists>>
Should be called at when starting a new game.
*/
<<widget "PrepareItemLists">>
/* Daily Items */
<<for _i=0; _i<$dailyItems.length; _i++>>
<<set $dailyItems[_i].buy = 0>>
<<set $dailyItems[_i].remain = 0>>
<<GenerateItemPriceString $dailyItems[_i]>>
<</for>>
/* Weekly Items */
<<for _i=0; _i<$weeklyItems.length; _i++>>
<<set $weeklyItems[_i].buy = 0>>
<<set $weeklyItems[_i].remain = 0>>
<<GenerateItemPriceString $weeklyItems[_i]>>
<</for>>
<</widget>>
/*
Call as <<GenerateItemPriceString [item]>>
*/
<<widget "GenerateItemPriceString">>
<<set _txt = "">>
<<set _num = 0>>
<<if def $args[0].priceBase>>
<<if $args[0].priceBase >= 1>>
<<set _txt += "@@.cash;" + $args[0].priceBase + "@@">>
<<set _num = 1>>
<</if>>
<</if>>
<<if def $args[0].priceAppeal>>
<<if $args[0].priceAppeal >= 1>>
<<if _num>>
<<set _txt += " + ">>
<</if>>
<<set _txt += "@@.appeal;@ x " + $args[0].priceAppeal + "@@">>
<<set _num = 1>>
<</if>>
<</if>>
<<set $args[0].priceText = _txt>>
<</widget>><<if $gameState == $state.intro>>
<<else>>
''Day $day''
<br>
<br>
<<if $nextLink.dest.length >= 1>>
<<link $nextLink.text $nextLink.dest>>
<<set $nextLink.text = "">>
<<set $nextLink.dest = "">>
<</link>>
<<else>>
$nextLink.text
<</if>>
<br>
<br>Appeal: @@.appeal;$player.appeal@@
<br>Base Appeal: @@.appeal;$player.baseAppeal@@
<br>Cash: @@.cash;$player.cash@@
<<if $gameState == $state.morning>>
<br>Shopping: @@.cash;$shoppingCost@@
<<elseif $gameState == $state.day>>
<</if>>
<<if [$state.morning, $state.day, $state.evening].contains($gameState)>>
<br><br>
<<link "Character Info" "Character Info">>
<<SetBackLink>>
<</link>>
<br>
<<link "Client List" "Client List">>
<<SetBackLink>>
<</link>>
<br>
<<link "Game Options" "Game Options">>
<<SetBackLink>>
<</link>>
<</if>>
<br>
/* WIP */
<<for _sc=0; _sc<$girls.length; _sc++>>
<br>''$girls[_sc].name'' @@.appeal;$girls[_sc].appeal@@
<</for>>
<</if>>
<br><br>
<<if ($returnTo.length >= 1) && ($returnText.length >= 1)>>
<<link $returnText $returnTo>>
<<set $returnTo = "">>
<<set $returnText = "">>
<</link>>
<</if>>/* Variable Initialization */
<<set $ver = "0.1.1">>
<<set $returnTo = "">>
<<set $returnText = "">>
<<set $nextLink = {dest:"", text:""}>>
/* QoL variables */
<<set $type = {any:0, sex:1, kink:2, service:3, special:4}>>
<<set $state = {intro:0, morning:1, day:2, evening:3, night:4}>>
/* Variable Init */
<<set $brothelFame = 0>>
<<set $girls = [
{name:"Vivi", appeal:30},
{name:"Mauve", appeal:20},
{name:"Ena", appeal:12}
]>>
<<set $guests = []>>
<<set $gameState = $state.intro>>
<<set $day = 0>>
<<set $shoppingCost = 0>>
<<set $activityCost = 0>>
<<set $visitorCount = 4>>
<<set $minID = 0>>
<<set $punishment = 0>>
<<set $numActivity = 3>>
<<set $visitors = []>>
<<set $tasks = []>>
<<set $show = {images:1, notes:1}>>
/* Skill Lists */
<<set $sexSkill = ["Anal", "Deepthroat", "Facial", "Fingering", "Oral", "Rimming", "Scissoring", "Vaginal"]>>
<<set $kinkSkill = ["Bestiality", "Biting", "Bondage", "Breath Play", "Dirty Laundry", "Electricity",
"Exhibition", "Feet Play", "Femdom", "Humiliation", "Lactation", "Licking", "Mind Control",
"Monster Sex", "Orgasm Play", "Pain Play", "Pet Play", "Rape Play", "Scat", "Sex Machines",
"Sex Toys", "Slave Play", "Tickling", "Urethral", "Urine", "Violence"]>>
<<set $serviceSkill = ["Alcohol", "Begging", "Chess", "Conversation", "Cosplay", "Crossdressing", "Cuddling",
"Dance", "Drugs", "Fencing", "Flirting", "Fondling", "Food Play", "Gambling", "Gravure",
"Hand Holding", "Humor", "Kissing", "Lap Dance", "Massage", "Music", "Poetry", "Politics",
"Roleplay", "Rough Play", "Science", "Sleeping", "Smoking", "Strip Tease", "Stroke Ego",
"Verbal Abuse", "Wrestling"]>>
/**/
<<set $player = {
cash:50,
baseAppeal:2,
tempAppeal:0,
appeal:2,
flags:[],
skills:[],
activities:[],
effect:[],
cosmeticSurgery:0,
silverPotion:0,
blackPotion:0,
fetishImplant:0,
leisureTime:0
}>>
/* TEMP */
<<InitClients>>
<<InitItems>>
<<PrepareItemLists>>
<<CalculatePrices>>
<<InitActivities>>
<<PrepareActivityLists>>/*
Call as <<AddActivity [activity]>>
*/
<<widget "AddActivity">>
<<if def $args[0].boon.cost>>
<<set $activityCost += $args[0].boon.cost>>
<</if>>
<<if def $args[0].boon.cash>>
<<set $activityCost -= $args[0].boon.cash>>
<</if>>
<<set $player.activities.push($args[0])>>
<</widget>>
/*
Call as <<RemoveActivity [index]>>
*/
<<widget "RemoveActivity">>
<<if ($args[0] >= 0) && ($args[0] < $player.activities.length)>>
<<if def $player.activities[$args[0]].boon.cost>>
<<set $activityCost -= $player.activities[$args[0]].boon.cost>>
<</if>>
<<if def $player.activities[$args[0]].boon.cash>>
<<set $activityCost += $player.activities[$args[0]].boon.cash>>
<</if>>
<<set $player.activities.deleteAt($args[0])>>
<</if>>
<</widget>>/**
Call as <<AddEffect [player] [effect]>>
*/
<<widget "AddEffect">>
<<set $args[0].effect.push($args[1])>>
/* Appeal */
<<if def $args[1].appeal>>
<<set $args[0].tempAppeal += $args[1].appeal>>
<<set $args[0].appeal += $args[1].appeal>>
<</if>>
/* Base Appeal */
<<if def $args[1].baseAppeal>>
<<set $args[0].baseAppeal += $args[1].baseAppeal>>
<<set $args[0].appeal += $args[1].baseAppeal>>
<</if>>
/* Flags */
<<if def $args[1].flag>>
<<set $args[0].flags.push($args[1].flag)>>
<</if>>
<</widget>>
/*
Call as <<RemoveEffect [player] [index]>>
*/
<<widget "RemoveEffect">>
<<set _effect = $args[0].effect[$args[1]]>>
/* Appeal */
<<if def _effect.appeal>>
<<set $args[0].tempAppeal -= _effect.appeal>>
<<set $args[0].appeal -= $args[1].appeal>>
<</if>>
/* Base Appeal */
<<if def $args[1].baseAppeal>>
<<set $args[0].baseAppeal -= $args[1].baseAppeal>>
<<set $args[0].appeal -= $args[1].baseAppeal>>
<</if>>
/* Flags */
<<if def _effect.flag>>
/* TODO - this needs to be tested */
<<for _re=0; _re<$args[0].flags.length; _re++>>
<<if $args[0].flags[_re] == _effect.flag>>
<<set $args[0].flags.deleteAt(_re)>>
<<break>>
<</if>>
<</for>>
/*
<<set $args[0].flags.delete(_effect.flag)>>
*/
<</if>>
<<set $args[0].effect.deleteAt($args[1])>>
<</widget>>/*
Call as <<CalculateBrothelFame>>
Assumes $player.appeal is correct.
*/
<<widget "CalculateBrothelFame">>
<<set $brothelFame = $player.appeal>>
<<for _i=0; _i<$girls.length; _i++>>
<<set $brothelFame += $girls[_i].appeal>>
<</for>>
<</widget>>/*
Call as <<CalculatePrices>>
*/
<<widget "CalculatePrices">>
/* Daily Items */
<<for _i=0; _i<$dailyItems.length; _i++>>
<<if def $dailyItems[_i].priceBase>>
<<set $dailyItems[_i].price = $dailyItems[_i].priceBase>>
<<else>>
<<set $dailyItems[_i].price = 0>>
<</if>>
<<if def $dailyItems[_i].priceAppeal>>
<<set $dailyItems[_i].price += ($dailyItems[_i].priceAppeal * $player.baseAppeal)>>
<</if>>
<</for>>
/* Weekly Items */
<<for _i=0; _i<$weeklyItems.length; _i++>>
<<if def $weeklyItems[_i].priceBase>>
<<set $weeklyItems[_i].price = $weeklyItems[_i].priceBase>>
<<else>>
<<set $weeklyItems[_i].price = 0>>
<</if>>
<<if def $weeklyItems[_i].priceAppeal>>
<<set $weeklyItems[_i].price += ($weeklyItems[_i].priceAppeal * $player.baseAppeal)>>
<</if>>
<</for>>
<</widget>>/*
Call as <<CalculateShoppingCosts>>
Should be called at prep for turn.
*/
<<widget "CalculateShoppingCosts">>
<<set $shoppingCost = 0>>
<<set $player.tempAppeal = 0>>
/* Daily Items */
<<for _i=0; _i<$dailyItems.length; _i++>>
<<if $dailyItems[_i].buy == 1>>
<<set $shoppingCost += $dailyItems[_i].price>>
<<if $dailyItems[_i].appeal>>
<<set $player.tempAppeal += $dailyItems[_i].appeal>>
<</if>>
<</if>>
<</for>>
/* Weekly Items */
<<for _i=0; _i<$weeklyItems.length; _i++>>
<<if ($player.flags.contains("no clothes")) && (def $weeklyItems[_i].clothing)>>
<<elseif $weeklyItems[_i].buy == 1>>
<<if $weeklyItems[_i].remain == 0>>
<<set $shoppingCost += $weeklyItems[_i].price>>
<</if>>
<<if $weeklyItems[_i].appeal>>
<<set $player.tempAppeal += $weeklyItems[_i].appeal>>
<</if>>
<</if>>
<</for>>
<</widget>>/*
Call as <<DisplayClientForList [client]>>
*/
<<widget "DisplayClientForList">>
<<if $show.images>>
<<print '<img src="images/clients/'+$args[0].name+'.png" height="200">'>>
<br>
<</if>>
''$args[0].name''
<<if $args[0].heart >= 2>>
♥ x $args[0].heart
<<elseif $args[0].heart == 1>>
♥
<</if>>
<<if $show.notes>>
<br>@@.note;//$args[0].note//@@
<</if>>
<<for _cTask=0; _cTask<$args[0].tasks.length; _cTask++>>
<br>
<<SkillIconName $args[0].tasks[_cTask]>>:
CR @@color:magenta;$args[0].tasks[_cTask].cr@@
<</for>>
<br>Fame: @@.appeal;$args[0].fame@@
<</widget>>
/*
Call as <<DisplayClientForEvening [client]>>
*/
<<widget "DisplayClientForEvening">>
<<if $show.images>>
<<print '<img src="images/clients/'+$args[0].name+'.png" height="200">'>>
<br>
<</if>>
''$args[0].name''
<<if $args[0].heart >= 2>>
♥ x $args[0].heart
<<elseif $args[0].heart == 1>>
♥
<</if>>
<<if $show.notes>>
<br>@@.note;//$args[0].note//@@
<</if>>
<table>
<<for _cTask=0; _cTask<$args[0].tasks.length; _cTask++>>
<tr><td>
<<SkillIconName $args[0].tasks[_cTask]>>
</td><td>
CR @@color:magenta;$args[0].tasks[_cTask].cr@@
<<set _tmp = GetSkillMod($player.skills, $args[0].tasks[_cTask])>>
(+<<print _tmp>>)
</td>
</tr>
<</for>>
</table>
Fame: @@.appeal;$args[0].fame@@
<</widget>>/*
Call as <<DisplayItem [item]>>
*/
<<widget "DisplayItem">>
/* TODO - write me! */
<<if $show.images>>
<<print '<img src="images/items/'+$args[0].name+'.png">'>>
<br>
<</if>>
@@.name;''$args[0].name''@@
<br>Price: @@.cash;$<<print $args[0].price>>@@
<<if def $args[0].priceAppeal>>
(@@.appeal;$args[0].priceText@@)
<</if>>
<<if $args[0].duration == 1>>
<br>@@color:coral;Daily@@
<<else>>
<br>@@color:coral;Weekly@@
<</if>>
<<if $show.notes>>
<br>@@.note;//$args[0].note//@@
<</if>>
<<if $args[0].appeal >= 1>>
<br>@@.appeal;+<<print $args[0].appeal>> Appeal@@
<</if>>
<<if def $args[0].effect>>
<br>@@.appeal;$args[0].effect@@
<</if>>
<</widget>>/*
Call as <<FinishShopping>>
*/
<<widget "FinishShopping">>
/* Weekly Items */
<<for _i=0; _i<$weeklyItems.length; _i++>>
<<if ($weeklyItems[_i].buy == 1) && ($weeklyItems[_i].remain == 0)>>
<<set $weeklyItems[_i].remain = $weeklyItems[_i].duration>>
<</if>>
<</for>>
/* Buy Shopping List */
<<set $player.cash -= $shoppingCost>>
<</widget>>/*
Call as <<GenerateBrothelVisitors>>
Assumes $brothelFame is correct.
*/
<<widget "GenerateBrothelVisitors">>
/* Variable Init */
<<set $visitors = []>>
<<set _minFame = $brothelFame / 2>>
<<set $minID = 0>>
<<set _maxID = 100>>
/* TODO - activity support */
/* Determine min */
<<for _i=0; _i<$clients.length; _i++>>
<<if $clients[_i].fame >= _minFame>>
<<set $minID = _i>>
<<break>>
<</if>>
<</for>>
/* Determine max */
<<for _i=$minID+4; _i<$clients.length; _i++>>
<<if $clients[_i].fame > $brothelFame>>
<<set _maxID = _i - 1>>
<<break>>
<</if>>
<</for>>
/* Pull 4 different visitors */
<<for ;$visitors.length < $visitorCount;>>
<<set _ID = RandomInRange($minID, _maxID)>>
<<set _found = 0>>
<<for _i=0; _i<$visitors.length; _i++>>
<<if $visitors[_i].ID == _ID>>
<<set _found = 1>>
<<break>>
<</if>>
<</for>>
<<if !_found>>
<<set $visitors.push({ID:_ID,girl:-1})>>
<</if>>
<</for>>
/* Sort */
<<set $visitors = $visitors.sort(function(a, b)
{ if(a.ID > b.ID) return -1; if(a.ID < b.ID) return 1; return 0;})>>
<</widget>>/*
Call as <<GenerateInjuredEffect>>
*/
<<widget "GenerateInjuredEffect">>
<<set $newEffect = {name:"Injured",
note:"You live in a world where customers can get away with almost anything as long they pay a fee, and prostitutes are beaten, whipped, and hurt every day on the job.",
flag:"injured",
remain:2}>>
<</widget>>/*
Call as <<GeneratePregnancyEffect>>
*/
<<widget "GeneratePregnancyEffect">>
<<set $newEffect = {name:"Pregnant",
note:"You are now pregnant. Yes, you are still expected to work. If you can't earn cash, the Owner will Discard you, and that's very very bad. You wouldn't want to be sold to a human livestock farm.",
effect:"-1 Base Appeal",
flag:"pregnant",
baseAppeal:-1,
remain:280}>>
<</widget>>/*
Call as <<GeneratePunishment [roll]>>
*/
<<widget "GeneratePunishment">>
/* OLD below here */
<<switch $args[0]>>
<<case 1>>
<<set $newPunish = {name:"Spanking",
note:"Bad girls need to be spanked Its as simple os that. How many strikes will it be?"}>>
<<case 2>>
<<set $newPunish = {name:"Practice Session",
note:"Clearly, you need to improve your skills. In fact, you will be forced to practice it until I'm satisfied.",
effect:"+2 Skill Points",
skillVal:2}>>
<<set _skill = either($tasks)>>
<<set $newPunish.skill = _skill.skill>>
<<case 3>>
<<set $newPunish = {name:"Reflection Room",
note:"You will be shut away in a small cage in a dark cramped room and isolated. No dinner for you today.",
effect:"-1 Daylight Activity Slot",
activity:-1}>>
<<case 4>>
<<set $newPunish = {name:"Nudity",
note:"It seems you've forgotten that you're a sex slave. Your clothing privileges are revoked for a day",
noClothes:1}>>
<<case 5>>
<<set $newPunish = {name:"Whipping",
note:"It will leave marks, and I want you to eel the stinging pain for a day. Do not heal it without permission.",
effect:"-1 Appeal for one day",
appeal:-1}>>
<<case 6>>
<<set $newPunish = {name:"Gangbang",
note:"There's nothing like organized rape to put a misbehaving sex fslave bock in her place. A group of men will be invited to punish you."}>>
<<case 7>>
<<set $newPunish = {name:"Strict Bondage",
note:"This punishment is very uncomfortable. In fact, it's a predicament, and it won't take long before you're whimpering."}>>
<<case 8>>
<<set $newPunish = {name:"High Protocol",
note:"Your Owner is kind, and he normally doesn't treat you like a slave. But today, you'll be on full slave protocol Get on your knees!"}>>
<<case 9>>
<<set $newPunish = {name:"Torture",
note:"You'll be punished with no limits. The objective is to hurt you and make you cry, and you will definitely suffer very bitterly",
effect:"You are heavily injured",
activity:-3}>>
<<case 10>>
<<set $newPunish = {name:"Free Use",
note:"100% free. No payment is needed to fuck you like a rag, and you will definitely be used nonstop. It'll be difficult to wash the cum out.",
effect:"-1 Daylight Activity slot, -1 Appeal for one day",
activity:-1,
appeal:-1}>>
<<case 11>>
<<set $newPunish = {name:"Exhibition",
note:"You will be placed in a public location with a sign describing your crimes. Enjoy the rotten eggs and public harassment",
effect:"-1 Daylight Activity slot, -1 Appeal for one day",
activity:-1,
appeal:-1}>>
<<case 12>>
<<set $newPunish = {name:"Confiscation",
note:"You need to learn that o slave has no rights. All of the privileges you have can be token away in an instant. You own nothing.",
effect:"Forefit all your money",
forefit:1}>>
<<default>>
<<set $newPunish = {name:"Spanking",
note:"Bad girls need to be spanked Its as simple os that. How many strikes will it be?"}>>
<</switch>>
/* Remain of 2 since so it actually lasts a day */
<<set $newPunish.remain = 2>>
<</widget>>/*
Call as <<ItemShop>>
*/
<<widget "ItemShop">>
<<set _idx=0>>
<<set _budget = $player.cash - $shoppingCost>>
/* Daily Items */
<table style="border: 1px solid gray;">
<<for _idx=0;_idx<$dailyItems.length;>>
<tr>
<<for _n=0;_n<5;_n++>>
<<if _idx<$dailyItems.length>>
<<capture _idx>>
<td>
<<DisplayItem $dailyItems[_idx]>>
<br>
<<if $dailyItems[_idx].buy>>
<<link "Stop Buying" "">>
<</link>>
<<else>>
<<if _budget >= $dailyItems[_idx].price>>
<<link "Buy" "">>
<</link>>
<<else>>
@@color:gray;Cannot Afford@@
<</if>>
<</if>>
</td>
<</capture>>
<<set _idx++>>
<</if>>
<</for>>
</tr>
<</for>>
</table>
/* Weekly Items */
<</widget>>/*
Call as <<MatchMoreAppealingGirls>>
Assumes $visitors[] is up to date.
*/
<<widget "MatchMoreAppealingGirls">>
/* TODO - need Heart support */
<<set _idx=0>>
/* Sort $girls */
<<set $girls = $girls.sort(function(a, b)
{ if(a.appeal > b.appeal) return -1; if(a.appeal < b.appeal) return 1; return 0;})>>
/* Assign as needed */
<<for _i=0; _i<$girls.length; _i++>>
<<if $player.appeal > $girls[_i].appeal>>
<<break>>
<</if>>
<<set $visitors[_idx].girl = _i>>
<<set _idx++>>
<<if _idx >= $visitors.length>>
/* Error Catching */
<<break>>
<</if>>
<</for>>
<</widget>>/*
Call as <<NewDay>>
*/
<<widget "NewDay">>
<<set $shoppingCost = 0>>
<<set $player.tempAppeal = 0>>
/* Daily Items */
<<for _i=0; _i<$dailyItems.length; _i++>>
<<if $dailyItems[_i].buy == 1>>
<<set $shoppingCost += $dailyItems[_i].price>>
<<if $dailyItems[_i].appeal>>
<<set $player.tempAppeal += $dailyItems[_i].appeal>>
<</if>>
<</if>>
<</for>>
/* Weekly Items */
<<for _i=0; _i<$weeklyItems.length; _i++>>
<<if $weeklyItems[_i].remain>>
<<set $weeklyItems[_i].remain -= 1>>
<</if>>
<<if ($weeklyItems[_i].buy == 1) && ($weeklyItems[_i].remain == 0)>>
<<set $shoppingCost += $weeklyItems[_i].price>>
<<if $weeklyItems[_i].appeal>>
<<set $player.tempAppeal += $weeklyItems[_i].appeal>>
<</if>>
<</if>>
<</for>>
/* Sort Player skills */
<<set $player.skills = $player.skills.sort(function(a, b)
{
if(a.type < b.type) return -1; if(a.type > b.type) return 1;
if(a.skill < b.skill) return -1; if(a.skill > b.skill) return 1;
return 0;})>>
/* Cleanup */
<<set $day += 1>>
<<set $player.appeal = $player.baseAppeal + $player.tempAppeal>>
<<CalculatePrices>>
<<CalculateShoppingCosts>>
<</widget>>/*
Call as <<PerformActivities>>
*/
<<widget "PerformActivities">>
/* Init Variables */
/* TODO - if non-four member brothel, this will need to change */
<<set $visitorCount = $girls.length + 1>>
<<set $visitorReroll = 0>>
<<CalculateBrothelFame>>
<<for _act=0; _act<$player.activities.length; _act++>>
/* Cash */
<<if def $player.activities[_act].boon.cash>>
<<set $player.cash += $player.activities[_act].boon.cash>>
<</if>>
<<if def $player.activities[_act].boon.cost>>
<<set $player.cash -= $player.activities[_act].boon.cost>>
<</if>>
/* Fame */
<<if def $player.activities[_act].boon.brothelFame>>
<<set $brothelFame += $player.activities[_act].boon.brothelFame>>
<</if>>
/* Visitor */
<<if def $player.activities[_act].boon.client>>
<<set $visitorCount += $player.activities[_act].boon.client>>
<</if>>
<<if def $player.activities[_act].boon.reroll>>
<<set $visitorReroll += $player.activities[_act].boon.reroll>>
<</if>>
/* Skill */
<<if def $player.activities[_act].boon.skill>>
<<set AddSkill($player.skills, $player.activities[_act].boon, $player.activities[_act].boon.skillVal)>>
<</if>>
/* Leisure Time */
<<if def $player.activities[_act].boon.leisure>>
<<set $player.leisureTime += $player.activities[_act].boon.leisure>>
<</if>>
/* Study with Ena */
<<if def $player.activities[_act].boon.ena>>
<<if ndef $player.ena>>
<<set $player.ena = 1>>
<<else>>
<<set $player.ena += 1>>
<</if>>
<</if>>
<</for>>
<</widget>>/*
Call as <<PregChance [player] [skill]>>
*/
<<widget "PregChance">>
Your @@.skill;$args[1]@@ sex put you at risk for pregnancy,
<<if $args[0].flags.contains("pregnant")>>
but you already are pregnant.
<<elseif $args[0].flags.contains("contraception")>>
but your @@color:coral;contraceptives@@ kept you safe.
<<elseif RandomInRange(1,6) == 1>>
and you are now pregnant.
<<GeneratePregnancyEffect>>
<<AddEffect $args[0] $newEffect>>
<<else>>
but you're safe this time.
<</if>>
<</widget>>/*
Call as <<PunishPlayer [player] [punishLevel]>>
*/
<<widget "PunishPlayer">>
<<switch $args[1]>>
<<case 1>>
<<set _punRoll = RandomInRange(1,4)>>
<<switch _punRoll>>
<<case 1>>
/* Spanking */
''Spanking'': Bad girls need to be spanked Its as simple os that. How many strikes will it be?
<<case 2>>
/* Practice Session */
''Practice Session'': Clearly, you need to improve your skills. In fact, you will be forced to practice it until I'm satisfied.
<<set _skill = either($tasks)>>
(@@.skill;+2 _skill.skill exp@@)
<<set AddSkill($player.skills, _skill, 2)>>
<<case 3>>
/* Reflection Room */
''Reflection Room'': You will be shut away in a small cage in a dark cramped room and isolated. No dinner for you today.
<<set $newEffect = {name:"Reflection Room",
note:"You will be shut away in a small cage in a dark cramped room and isolated. No dinner for you today.",
effect:"-1 Daylight Activity Slot",
activity:-1,
remain:2}>>
<<AddEffect $player $newEffect>>
<<case 4>>
/* Nudity */
''Nudity'': It seems you've forgotten that you're a sex slave. Your clothing privileges are revoked for a day.
<<set $newEffect = {name:"Nudity",
note:"It seems you've forgotten that you're a sex slave. Your clothing privileges are revoked for a day.",
flag:"no clothes",
remain:2}>>
<<AddEffect $player $newEffect>>
<</switch>>
<<case 2>>
<<set _punRoll = RandomInRange(1,4)>>
<<switch _punRoll>>
<<case 1>>
/* Whipping */
''Whipping'': It will leave marks, and I want you to feel the stinging pain for a day. Do not heal it without permission.
<<set $newEffect = {name:"Whipping",
note:"It will leave marks, and I want you to feel the stinging pain for a day. Do not heal it without permission.",
effect:"-1 Appeal for one day",
appeal:-1,
remain:2}>>
<<AddEffect $player $newEffect>>
<<case 2>>
/* Gangbang */
''Gangbang'': There's nothing like organized rape to put a misbehaving sex slave bock in her place. A group of men will be invited to punish you.
/* TODO - pregnancy chance */
<<PregChance $player "Gangbang">>
<<case 3>>
/* Strict Bondage */
''Strict Bondage'': This punishment is very uncomfortable. In fact, it's a predicament, and it won't take long before you're whimpering.
<<case 4>>
/* High Protocol */
''High Protocol'': Your Owner is kind, and he normally doesn't treat you like a slave. But today, you'll be on full slave protocol Get on your knees!
<</switch>>
<<case 3>>
<<set _punRoll = RandomInRange(1,4)>>
<<switch _punRoll>>
<<case 1>>
/* Torture */
''Torture'': You'll be punished with no limits. The objective is to hurt you and make you cry, and you will definitely suffer very bitterly.
<<GenerateInjuredEffect>>
<<AddEffect $player $newEffect>>
<<case 2>>
/* Free Use */
''Free Use'': 100% free. No payment is needed to fuck you like a rag, and you will definitely be used nonstop. It'll be difficult to wash the cum out.
<<set $newEffect = {name:"Free Use",
note:"100% free. No payment is needed to fuck you like a rag, and you will definitely be used nonstop. It'll be difficult to wash the cum out.",
effect:"-1 Daylight Activity slot, -1 Appeal for one day",
activity:-1,
appeal:-1,
remain:2}>>
<<AddEffect $player $newEffect>>
<<PregChance $player "Free Use">>
<<case 3>>
/* Exhibition */
''Exhibition'': You will be placed in a public location with a sign describing your crimes. Enjoy the rotten eggs and public harassment.
<<set $newPunish = {name:"Exhibition",
note:"You will be placed in a public location with a sign describing your crimes. Enjoy the rotten eggs and public harassment",
effect:"-1 Daylight Activity slot, -1 Appeal for one day",
activity:-1,
appeal:-1,
remain:2}>>
<<AddEffect $player $newEffect>>
<<case 4>>
/* Confiscation */
''Confiscation'': You need to learn that a slave has no rights. All of the privileges you have can be token away in an instant. You own nothing.
<<set $player.cash = 0>>
<</switch>>
<<default>>
/* When in Doubt, do nothing
Should throw an Error */
<</switch>>
<</widget>>/*
Call as <<SetBackLink>>
Intended for use with links to "Character Info" and "Client List".
*/
<<widget "SetBackLink">>
<<switch $gameState>>
<<case $state.morning>>
<<set $nextLink.text = "Back to Shopping">>
<<set $nextLink.dest = "Plan Shopping">>
<<case $state.day>>
<<set $nextLink.text = "Back to Activities">>
<<set $nextLink.dest = "Plan Activities">>
<<case $state.evening>>
<<set $nextLink.text = "Back to Evening">>
<<set $nextLink.dest = "Plan Evening">>
<<default>>
<<set $nextLink.text = "OOPS Go Shopping">>
<<set $nextLink.dest = "Plan Shopping">>
<</switch>>
<</widget>>/*
Call as <<SkillIconName [skill]>>
*/
<<widget "SkillIconName">>
<<set _txt = "">>
<<set _txt = "@@color:coral;">>
<<switch $args[0].type>>
<<case $type.service>>
<<set _txt += "▣ ">>
<<case $type.sex>>
<<set _txt += "◉ ">>
<<case $type.kink>>
<<set _txt += "▲ ">>
<<default>>
<<set _txt += "(">>
<</switch>>
<<set _txt += $args[0].skill>>
<<switch $args[0].type>>
<<case $type.service>>
<<case $type.sex>>
<<case $type.kink>>
<<default>>
<<set _txt += ")">>
<</switch>>
<<set _txt +="@@">>
<<print _txt>><</widget>>/*
Call as <<UpdateClients>>
*/
<<widget "UpdateClients">>
/* Variable init */
<<set _oldList = $clients>>
<<InitClients>>
/* Update */
<<for _uc=0; _uc<$clients.length; _uc++>>
<<for _old=0; _old<_oldList.length; _old++>>
<<if $clients[_uc].name == _oldList[_old].name>>
<<set $clients[_uc].heart = _oldList[_old].heart>>
<<set _oldList.deleteAt(_old)>>
<<break>>
<</if>>
<</for>>
<</for>>
<</widget>>/*
Call as <<UpdateItems>>
Haphazardly Updates the Item Listing.
*/
<<widget "UpdateItems">>
<<InitItems>>
<<CalculatePrices>>
<<CalculateShoppingCosts>>
<</widget>>