<<if setup.tryBradfordScentEncounter("Bradford Apartment Living Room")>><<goto "Bradford Scent Encounter">><</if>>
<<nobr>>
<h2>Bradford's apartment</h2>
<p>The living room serves as the apartment's central hall. Bradford has made space for your belongings, and the once-spartan rooms are slowly beginning to feel shared.</p>
<img class="scene-image" src="media/locations/melisasapartment/apartment.jpg" alt="The living room in Bradford's apartment">
[[Bedroom->Bradford Apartment Bedroom]]<br>
<<link "Bathroom">><<goto setup.getBradfordApartmentBathroomDestination()>><</link>><br>
[[Kitchen->Bradford Apartment Kitchen]]<br>
[[Sofa->Bradford Apartment Sofa]]<br>
<<if setup.isDressedForOutside()>>
[[Outside->Slums]]
<<else>>
<span class="passage-link-disabled" aria-disabled="true">Outside</span>
<p class="table-order-error">You need to put on an outfit and shoes before going outside.</p>
<</if>>
<</nobr>><<if setup.tryBradfordScentEncounter("Bradford Apartment Bedroom")>><<goto "Bradford Scent Encounter">><</if>>
<<nobr>>
<h2>Your bedroom</h2>
<p>You share this room with Bradford now. His few practical belongings leave plenty of space for yours.</p>
<img class="scene-image" src="media/locations/melisasapartment/bedroom/bedroom.jpg" @alt="$mcname + ' and Bradford\'s bedroom'">
[[Bed->Bradford Apartment Bed]]<br>
[[Wardrobe]]<br>
[[Equipment]]<br>
[[Exercise]]<br>
[[Living room->Bradford Apartment Living Room]]
<</nobr>><<nobr>>
<h2>Bed</h2>
<img class="scene-image" src="media/locations/melisasapartment/bedroom/bedroom.jpg" @alt="'The bed shared by ' + $mcname + ' and Bradford'">
<<say $mcname setup.getMcPortrait() "thought">>After everything that happened, it is comforting to know Bradford is close.<</say>>
<<if setup.ensureBradfordState().girlfriend>>
<<link "Have sex with Bradford">>
<<set _bradfordSexStart to setup.startBradfordRepeatSex("Bradford Bedroom Aftercare")>>
<<goto _bradfordSexStart.destination>>
<</link>><br>
<</if>>
<<if setup.shouldTriggerBradfordRelationshipNight()>>
[[Sleep->Bradford Relationship Night]]<br>
<<else>>
[[Sleep->Bradford Apartment Sleep]]<br>
<</if>>
[[Return->Bradford Apartment Bedroom]]
<</nobr>><<nobr>>
<h2>What are we?</h2>
<img class="scene-image" src="media/locations/bradfordapartment/sleep3.jpg" alt="The main character cuddling naked with Bradford in bed">
<p>Before settling in for the night, you and Bradford undress as usual and lie together beneath the covers. You cuddle against his broad chest, but a question keeps circling through your thoughts.</p>
<<say $mcname setup.getMcPortrait() "thought">>What are we now? We live together, sleep together... but neither of us has ever actually said it.<</say>>
<p>You nuzzle closer, gather your courage, and finally look up at him.</p>
<<say $mcname setup.getMcPortrait() "jane">>Bradford... what are we?<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>I... I don't know. I suppose... I think you and I are together now.<</say>>
<p>His brief stammer breaks through his usual composure. Relief and happiness surge through you, and you hug him tightly before he can say anything more.</p>
<p>Bradford gently threads a hand through your hair while you nuzzle into his chest.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Do you want us to make it official?<</say>>
<<say $mcname setup.getMcPortrait() "jane">>Yes. I really do.<</say>>
<p>Bradford leans down and places a tender kiss on the top of your head.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>I really do love you, $mcname.<</say>>
<p>You lift yourself toward him, kiss him on the lips, and remain close enough to feel his breath when you answer.</p>
<<say $mcname setup.getMcPortrait() "jane">>I love you too, Bradford.<</say>>
<<link "Fall asleep together">>
<<set _bradfordRelationshipNight to setup.completeBradfordRelationshipNight()>><<run UIBar.update()>><<goto "Bradford Apartment Bedroom">>
<</link>>
<</nobr>><<nobr>>
<<run setup.soberUp()>><<run setup.advanceGameDay()>><<run UIBar.update()>>
<p>You settle beside Bradford and sleep safely through the night.</p>
<<switch random(1, 3)>>
<<case 1>><img class="scene-image" src="media/locations/bradfordapartment/sleep1.jpg" alt="Sleeping naked beside Bradford">
<<case 2>><img class="scene-image" src="media/locations/bradfordapartment/sleep2.jpg" alt="Sleeping naked beside Bradford">
<<case 3>><img class="scene-image" src="media/locations/bradfordapartment/sleep3.jpg" alt="Sleeping naked beside Bradford">
<</switch>>
<<link "Wake up">><<goto setup.getBradfordMorningDestination()>><</link>>
<</nobr>><<nobr>>
<h2>An early opportunity</h2>
<img class="scene-image" src="media/locations/bradfordapartment/sleep3.jpg" alt="The main character waking beside Bradford">
<p>You wake before Bradford and remain nestled beside him for a quiet moment. As you shift beneath the covers, you notice the unmistakable shape of his morning erection.</p>
<<say $mcname setup.getMcPortrait() "thought">>He's still asleep... I could give him a much better alarm than the one on his clock.<</say>>
[[Suck him awake->Bradford Morning Alarm]]<br>
[[Ignore it->Bradford Apartment Bedroom]]
<</nobr>><<nobr>>
<h2>A better alarm</h2>
<<switch random(1, 2)>>
<<case 1>><img class="scene-image" src="media/locations/bradfordapartment/bradfordwakealarm1.webp" alt="The main character sucking Bradford awake">
<<case 2>><img class="scene-image" src="media/locations/bradfordapartment/bradfordwakealarm2.webp" alt="The main character sucking Bradford awake">
<</switch>>
<p>You slip beneath the covers, wrap your lips around Bradford's cock, and begin working your mouth over his morning erection. His breathing changes as he wakes and realizes that his girl is giving him an exceptionally thoughtful morning gift.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Fuck... good morning. I love you.<</say>>
<p>You smirk around him, pull your mouth away for only a moment, and look up.</p>
<<say $mcname setup.getMcPortrait() "jane">>You better. Who else has that kind of alarm clock, hmm?<</say>>
<p>You take him back into your mouth. Bradford laughs at the comment, relaxes into the bed, and gently caresses your head while you continue sucking him, making certain his entire day begins on a better note.</p>
[[Start the day->Bradford Apartment Bedroom]]
<</nobr>><<nobr>>
<h2>Afterward</h2>
<img class="scene-image" src="media/locations/bradfordapartment/sleep3.jpg" alt="The main character resting naked with Bradford">
<p>Once the intensity fades, Bradford draws you into his arms and lets his familiar gentleness return. He checks that you are comfortable, gives you water, and keeps you tucked safely against his chest until your breathing settles.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Stay here a while. I'm not finished holding you yet.<</say>>
<<say $mcname setup.getMcPortrait() "jane">>I wasn't planning to move.<</say>>
[[Return to bed->Bradford Apartment Bed]]
<</nobr>><<nobr>>
<h2>A private release</h2>
<<say $mcname setup.getMcPortrait() "thought">>I need this... just a few quiet minutes alone.<</say>>
<<switch random(1, 6)>>
<<case 1>><video src="media/myroom/exercise/masturbate1.mp4" autoplay loop muted controls playsinline></video>
<<case 2>><video src="media/myroom/exercise/masturbate2.mp4" autoplay loop muted controls playsinline></video>
<<case 3>><video src="media/myroom/exercise/masturbate3.mp4" autoplay loop muted controls playsinline></video>
<<case 4>><video src="media/myroom/exercise/masturbate4.mp4" autoplay loop muted controls playsinline></video>
<<case 5>><video src="media/myroom/exercise/masturbate5.mp4" autoplay loop muted controls playsinline></video>
<<case 6>><video src="media/myroom/exercise/masturbate6.mp4" autoplay loop muted controls playsinline></video>
<</switch>>
<<if $masturbationConstitutionResult is "gained">>
<p class="gym-stat-gain"><strong>Constitution +1</strong></p>
<<elseif $masturbationConstitutionResult is "maximum">>
<p class="gym-stat-gain"><strong>Constitution is already at its maximum.</strong></p>
<<else>>
<p class="gym-stat-gain"><strong>You have already gained Constitution from this today.</strong></p>
<</if>>
<p>You work yourself through a quick orgasm and sink back against the bed, flushed and catching your breath. Before you can straighten your clothes, Bradford appears in the doorway and takes in the obvious aftermath.</p>
[[Look toward Bradford->Bradford Catches MC Masturbating]]
<</nobr>><<nobr>>
<h2>Not quite finished</h2>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>You could have called me. Do you want some help making that last a little longer?<</say>>
<p>The suggestion sends fresh warmth through you despite the orgasm you just gave yourself.</p>
<<say $mcname setup.getMcPortrait() "jane">>I thought I was finished... but I wouldn't say no to your help.<</say>>
[[Let Bradford help->Bradford Helps MC Finish]]
<</nobr>><<nobr>>
<h2>Bradford's help</h2>
<<switch random(1, 2)>>
<<case 1>><video class="scene-image" src="media/arthursroom/sex/cunnilingus/tonguefuck/1.mp4" autoplay loop muted controls playsinline></video>
<<case 2>><video class="scene-image" src="media/arthursroom/sex/cunnilingus/clitsuck/1.mp4" autoplay loop muted controls playsinline></video>
<</switch>>
<p>Bradford settles between your legs and presses his mouth against your already-sensitive pussy. His tongue patiently rebuilds the pleasure you thought you had spent, then drives it higher until another orgasm rolls through you.</p>
<<say $mcname setup.getMcPortrait() "jane">>Bradford... fuck, I wasn't ready to come again that quickly.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Next time, ask me before you decide you've had enough.<</say>>
[[Recover->Bradford Apartment Bedroom]]
<</nobr>><<if setup.tryBradfordScentEncounter("Bradford Apartment Bathroom")>><<goto "Bradford Scent Encounter">><</if>>
<<nobr>>
<h2>Bathroom</h2>
<p>The bathroom is simple, clean, and private.</p>
<img class="scene-image" src="media/locations/melisasapartment/bathroom/bathroom.jpg" alt="Bradford's bathroom">
[[Shower]]<br>
[[Mirror]]<br>
[[Living room->Bradford Apartment Living Room]]
<</nobr>><<nobr>>
<h2>Someone is already here</h2>
<img class="scene-image" src="media/locations/melisasapartment/bathroom/bathroom.jpg" alt="Bradford's bathroom">
<p>You approach the bathroom and hear the shower running. Through the partially open door, you realize Bradford is already beneath the water.</p>
<<say $mcname setup.getMcPortrait() "thought">>I could leave him alone... or make his shower a little more interesting.<</say>>
[[Join in->Bradford Shower Join]]<br>
[[Give him some privacy->Bradford Apartment Living Room]]
<</nobr>><<nobr>>
<h2>Unexpected company</h2>
<video class="scene-image" src="media/locations/bradfordapartment/showermcjoin1.mp4" autoplay loop muted controls playsinline></video>
<p>You quietly undress, step into the shower behind Bradford, and slide your naked body against his back while your hands caress him. He tenses in surprise before recognizing your touch.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>You could have warned me.<</say>>
<<say $mcname setup.getMcPortrait() "jane">>You don't sound like you want me to leave.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>I don't.<</say>>
[[Stay close->Bradford Shower Kiss]]
<</nobr>><<nobr>>
<h2>Under the water</h2>
<video class="scene-image" src="media/locations/bradfordapartment/showerkiss1.mp4" autoplay loop muted controls playsinline></video>
<p>Bradford turns in your arms, draws you against his chest, and kisses you deeply beneath the falling water. Any remaining surprise gives way to eager affection.</p>
<<say $mcname setup.getMcPortrait() "jane">>Mmm... that's a much better welcome.<</say>>
[[Continue->Bradford Shower Cunnilingus]]
<</nobr>><<nobr>>
<h2>Bradford moves lower</h2>
<video class="scene-image" src="media/locations/bradfordapartment/showercunnilingus1.mp4" autoplay loop muted controls playsinline></video>
<p>Bradford kisses his way down your wet body and settles between your legs. His tongue works over your pussy with focused patience until pleasure overtakes you and an orgasm shakes through your body.</p>
<<say $mcname setup.getMcPortrait() "jane">>Bradford—yes... don't stop! I'm coming!<</say>>
[[Pull him back up->Bradford Shower Grope]]
<</nobr>><<nobr>>
<h2>Rough hands</h2>
<video class="scene-image" src="media/locations/bradfordapartment/showergrope1.mp4" autoplay loop muted controls playsinline></video>
<p>Bradford rises as you turn around. His arms encompass you from behind and his large hands close roughly around your breasts, squeezing hard enough to draw another helpless moan from you.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Stay against me. I'm not finished with you.<</say>>
<<say $mcname setup.getMcPortrait() "jane">>I was hoping you weren't.<</say>>
[[Let him continue->Bradford Shower Sex]]
<</nobr>><<nobr>>
<h2>Against the shower</h2>
<video class="scene-image" src="media/locations/bradfordapartment/showersex1.mp4" autoplay loop muted controls playsinline></video>
<p>Bradford makes you lean forward, enters you from behind, and quickly settles into the rough pace you have learned to enjoy. One hand pulls your hair while his hips drive firmly against you.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Hold still and take it. You knew exactly what joining me would start.<</say>>
<<say $mcname setup.getMcPortrait() "jane">>Fuck—yes! That's why I came in here!<</say>>
[[Finish him with your mouth->Bradford Shower Blowjob]]
<</nobr>><<nobr>>
<h2>On your knees</h2>
<img class="scene-image" src="media/locations/bradfordapartment/showerblowjob1.webp" alt="The main character kneeling before Bradford in the shower">
<p>You kneel in front of Bradford and take his cock into your mouth, determined to finish what the two of you started.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Good girl. Keep your mouth around me—I'm close.<</say>>
[[Swallow for him->Bradford Shower Swallow]]
<</nobr>><<nobr>>
<h2>Every drop</h2>
<img class="scene-image" src="media/locations/bradfordapartment/showerswallow1.webp" alt="The main character swallowing Bradford's cum in the shower">
<p>Bradford unloads into your mouth. You swallow every thick pulse, savoring the familiar taste of his cum before looking up at him with a satisfied smile.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>You can visit me like that anytime you want.<</say>>
<<say $mcname setup.getMcPortrait() "jane">>I'll keep that in mind.<</say>>
<p>Your smile makes the promise behind the words unmistakable.</p>
[[Finish showering->Bradford Apartment Living Room]]
<</nobr>><<if setup.tryBradfordScentEncounter("Bradford Apartment Kitchen")>><<goto "Bradford Scent Encounter">><</if>>
<<nobr>>
<h2>Kitchen</h2>
<p>Bradford gladly leaves most of the delicate cooking to you, but he does his share of the practical work.</p>
<img class="scene-image" src="media/locations/melisasapartment/kitchen/kitchen.webp" alt="Bradford's kitchen">
<<if setup.hasCookedForBradfordToday()>>
<span class="passage-link-disabled passage-link-disabled--tooltip" aria-disabled="true" tabindex="0" data-tooltip="You have already cooked for Bradford today.">Cook Meal</span><br>
<<else>>
[[Cook Meal->Bradford Cooking]]<br>
<</if>>
<<link "Do dishes">><<goto setup.getBradfordDishesDestination()>><</link>><br>
[[Living room->Bradford Apartment Living Room]]
<</nobr>><<nobr>>
<h2>Interrupted chores</h2>
<p>You are partway through the dishes when Bradford silently closes in behind you. His hands settle on your hips, and before you can do more than gasp, he takes you by surprise.</p>
<img class="scene-image" src="media/locations/bradfordapartment/dishessurprise1.webp" alt="Bradford surprising the main character while she does the dishes">
<p>Bradford drives into you from behind, pulling your back into a deep arch so that you have to look up at him. The dishes are quickly forgotten beneath the sudden rush of pleasure.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Go relax, love. I'll finish the rest of the dishes.<</say>>
<<say $mcname setup.getMcPortrait() "jane">>O-okay... Just give me a moment to catch my breath.<</say>>
<p>Still panting from the pleasurable surprise, you leave Bradford to make good on his promise.</p>
[[Go relax->Bradford Apartment Living Room]]
<</nobr>><<nobr>>
<<set _bradfordScentCorruption to setup.adjustCorruption(-1)>><<run UIBar.update()>>
<h2>His scent</h2>
<p>You drift close to Bradford and, almost without thinking, press yourself against him.</p>
<img class="scene-image" src="media/locations/bradfordapartment/mcsmell1.jpg" alt="The main character nuzzling into Bradford">
<p>You nuzzle into him and breathe deeply. His warm, masculine scent fills your senses, sending an unexpected pulse of arousal through you.</p>
<<say $mcname setup.getMcPortrait() "thought">>God... he smells so good. Why is that turning me on so much?<</say>>
<p>Bradford simply wraps his arms around you and holds you close, unaware of how thoroughly his scent has captivated you.</p>
<<link "Continue">><<goto setup.finishBradfordScentEncounter()>><</link>>
<</nobr>><<nobr>>
<<set _bradfordCooking to setup.applyBradfordCookingRentReduction()>><<run UIBar.update()>>
<h2>Cooking for Bradford</h2>
<p>You gather the ingredients available in Bradford's kitchen and prepare a meal for both of you.</p>
<<switch random(1, 2)>>
<<case 1>><video src="media/kitchen/cooking/cooking1.mp4" autoplay loop controls muted playsinline></video>
<<case 2>><video src="media/kitchen/cooking/cooking2.mp4" autoplay loop controls muted playsinline></video>
<</switch>>
<<if _bradfordCooking.ok>>
<p class="gym-stat-gain"><strong>Weekly rent reduced by c<<print _bradfordCooking.reduction>>. Remaining rent: c<<print _bradfordCooking.after>>.</strong></p>
<<else>>
<p class="gym-stat-gain"><strong>This week's rent is already fully covered.</strong></p>
<</if>>
[[Eat together->Bradford Meal Together]]
<</nobr>><<nobr>>
<h2>Dinner together</h2>
<p>You carry the finished meal to the table and present it to Bradford before taking the seat beside him. The two of you settle in and begin eating together.</p>
<<switch random(1, 5)>>
<<case 1>><img class="scene-image" src="media/kitchen/eating/eating1.webp" alt="Eating a meal with Bradford">
<<case 2>><img class="scene-image" src="media/kitchen/eating/eating2.webp" alt="Eating a meal with Bradford">
<<case 3>><img class="scene-image" src="media/kitchen/eating/eating3.webp" alt="Eating a meal with Bradford">
<<case 4>><img class="scene-image" src="media/kitchen/eating/eating4.webp" alt="Eating a meal with Bradford">
<<case 5>><img class="scene-image" src="media/kitchen/eating/eating5.webp" alt="Eating a meal with Bradford">
<</switch>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>This is excellent. Though the food isn't the only thing in this kitchen that looks good enough to taste.<</say>>
<p>Heat rushes into your cheeks despite the playful smile you try to hide behind another bite.</p>
<<say $mcname setup.getMcPortrait() "jane">>Bradford... stop it and eat your dinner.<</say>>
<p>His quiet chuckle makes it clear that he considers the blush a victory. You finish the meal together in comfortable company.</p>
<<link "Finish">>
<<if setup.rollBradfordKitchenCunnilingus()>><<goto "Bradford Kitchen Thank You">><<else>><<goto "Bradford Apartment Kitchen">><</if>>
<</link>>
<</nobr>><<nobr>>
<h2>A proper thank you</h2>
<p>As you begin clearing the table, Bradford catches your wrist and gently draws you back toward him.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>You cooked for me. Let me thank you properly.<</say>>
<<say $mcname setup.getMcPortrait() "jane">>Bradford, what are you—oh...<</say>>
<p>He lifts you onto the kitchen counter, moves between your legs, and puts his mouth to work before you can finish the question.</p>
<video class="scene-image" src="media/arthursroom/sex/cunnilingus/pussylick/1.mp4" autoplay loop muted controls playsinline></video>
<p>Your fingers tighten against the counter as his tongue draws every coherent thought out of your head. Bradford remains there until your body finally relaxes beneath his patient attention.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>That meal deserved more than a compliment.<</say>>
<<say $mcname setup.getMcPortrait() "jane">>If that's how you show gratitude, I might cook more often.<</say>>
[[Catch your breath->Bradford Apartment Kitchen]]
<</nobr>><<nobr>>
<h2>Living room sofa</h2>
<img class="scene-image" src="media/locations/melisasapartment/apartment.jpg" alt="The sofa in Bradford's living room">
[[Nap->Bradford Apartment Nap]]<br>
<<link "Watch TV">><<goto setup.getBradfordTvDestination()>><</link>><br>
[[Stand up->Bradford Apartment Living Room]]
<</nobr>><<nobr>>
<p>You stretch out on the sofa and drift into a peaceful nap.</p>
<<switch random(1, 2)>>
<<case 1>><img class="scene-image" src="media/myroom/sleep/napping/nap1.jpg" alt="Napping on the sofa">
<<case 2>><img class="scene-image" src="media/myroom/sleep/napping/nap2.jpg" alt="Napping on the sofa">
<</switch>>
<<link "Wake up">>
<<if setup.shouldBradfordKissMcAwake()>><<goto "Bradford Nap Kiss">><<else>><<goto "Bradford Apartment Sofa">><</if>>
<</link>>
<</nobr>><<nobr>>
<h2>The best awakening</h2>
<img class="scene-image" src="media/locations/bradfordapartment/napkiss1.webp" alt="Bradford passionately kissing the main character awake">
<p>As sleep releases you, Bradford notices your eyes beginning to open. He leans over the sofa and kisses you passionately, leaving you breathless before you are fully awake.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Did you have a good nap?<</say>>
<p>You look into his eyes, still dazed by the kiss, and mouth the only answer that feels adequate.</p>
<<say $mcname setup.getMcPortrait() "jane">>The best...<</say>>
[[Return->Bradford Apartment Sofa]]
<</nobr>><<nobr>>
<<say $mcname setup.getMcPortrait() "thought">>Bradford pretends not to care what I choose, but he always ends up watching with me.<</say>>
<<switch random(1, 4)>>
<<case 1>><img class="scene-image" src="media/arthursroom/tv/tv1.webp" alt="Watching television">
<<case 2>><img class="scene-image" src="media/arthursroom/tv/tv2.webp" alt="Watching television">
<<case 3>><img class="scene-image" src="media/arthursroom/tv/tv3.webp" alt="Watching television">
<<case 4>><img class="scene-image" src="media/arthursroom/tv/tv4.webp" alt="Watching television">
<</switch>>
[[Return->Bradford Apartment Sofa]]
<</nobr>><<nobr>>
<h2>A more interesting program</h2>
<img class="scene-image" src="media/locations/bradfordapartment/interestingtv1.webp" alt="The main character sucking Bradford while they watch television">
<p>The program soon loses your attention. You lean toward Bradford's crotch, open his trousers, and pull out his hardening cock. His eyes leave the screen as you wrap your lips around him and begin sucking.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Fuck... that feels good. You certainly know how to improve a quiet evening.<</say>>
<p>His hand settles against your head while you continue, the forgotten television murmuring in the background.</p>
[[Finish watching TV->Bradford Apartment Sofa]]
<</nobr>><p>Arthur's room is as cramped and carelessly kept as the rest of the residence.</p>\
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>He really does live like this on purpose, doesn't he?<</say>>\
<img class="scene-image" src="media/arthursroom/room.jpg">
[[Talk to Arthur]]
[[Watch TV]]
[[Hall->Slums Home]]<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Yeah? What is it?<</say>>
<<nobr>>
[[Chat->Arthur Chat]]<br>
<<if setup.canAccessArthurTease()>><<link "Tease" "Arthur Tease">><<run setup.adjustCorruption(-1)>><</link>><br><</if>>
<<if setup.canAccessArthurSex()>>[[Check if in mood for something...->Arthur Sex]]<br><</if>>
[[End conversation->Arthur's room]]
<</nobr>><<nobr>>
<<switch random(1, 10)>>
<<case 1>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Arthur, the tap made a banging noise again. Is that dangerous?<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Only dangerous if it stops banging. Means the pipes finally gave up.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Oh. So the noise means they're still working?<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Close enough. Put a bucket under it if it starts dripping.<</say>>
<<case 2>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Do you know where I can buy groceries without spending too much?<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Market under the east rail. Go near closing time and haggle.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>What if they get upset with me?<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>They'll act upset. That's part of haggling. Don't apologize and pay full price.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Right. No apologizing. I can probably manage that.<</say>>
<<case 3>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>You still wandering around after dark?<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Sometimes. Most people seem friendly enough when I smile at them.<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>That's because they think you're selling something—or that they can sell something to you. Keep to the lit streets.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Okay. I'll be more careful if you think I should.<</say>>
<<case 4>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Have you always lived in the Slums?<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Long enough to remember when this building had working heat on every floor.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Really? That must have been nice.<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>It lasted three weeks. Best winter of my life.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Maybe somebody will fix it properly one day.<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Sure, kid. And maybe the Lord-Governor will come down here and fix it himself.<</say>>
<<case 5>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Don't forget what you still owe on the rent.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I haven't forgotten. I promise I'll find a way to pay you.<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Promises don't keep the lights on.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I know. Thank you for giving me time anyway.<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Don't make me regret it.<</say>>
<<case 6>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Can you see the spaceport lights from the roof?<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>On a clear night. Mostly you see smog pretending to be clouds.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I'd still like to look sometime.<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Take a jacket and don't lean on the railing. It's older than you are.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I won't. Thanks for warning me.<</say>>
<<case 7>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Something smelled almost edible in the kitchen earlier.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I made stew. There is some left if you want it.<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>You offering because you're nice, or because it tastes terrible?<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Because I'm nice. I think it tastes good too.<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Fine. Leave a bowl out. I'll risk it.<</say>>
<<case 8>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>The television keeps losing the picture.<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Hit the side twice. Not the top—the side.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Does that actually repair it?<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>No. But it scares it into working for another hour.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I'll try to remember the correct side.<</say>>
<<case 9>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Any luck finding work?<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Not yet. One man said he'd contact me if something opened up.<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Did he ask you to pay an application fee?<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>He said it was only fifty credits.<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Then he's a thief. Never pay someone for the privilege of working for them.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Oh. I believed him. Thank you for telling me.<</say>>
<<case 10>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Do the neighbors always argue this loudly?<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Those two? This is quiet for them.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Should we check if they're all right?<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>They'll be sharing drinks again by midnight. Stay out of it.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>If you're sure. I suppose you know them better than I do.<</say>>
<</switch>>
<</nobr>>
[[Return->Talk to Arthur]]<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Well? Do you like what you see?<</say>>\
<<nobr>>
<<switch random(1, 8)>>
<<case 1>>
<video src="media/arthursroom/tease/tease1.mp4" autoplay loop controls></video>
<<case 2>>
<video src="media/arthursroom/tease/tease2.mp4" autoplay loop controls></video>
<<case 3>>
<video src="media/arthursroom/tease/tease3.mp4" autoplay loop controls></video>
<<case 4>>
<video src="media/arthursroom/tease/tease4.mp4" autoplay muted playsinline loop controls></video>
<<case 5>>
<video src="media/arthursroom/tease/tease5.mp4" autoplay loop controls></video>
<<case 6>>
<video src="media/arthursroom/tease/tease6.mp4" autoplay loop controls></video>
<<case 7>>
<video src="media/arthursroom/tease/tease7.mp4" autoplay loop controls></video>
<<case 8>>
<video src="media/arthursroom/tease/tease8.mp4" autoplay loop controls></video>
<</switch>>
<</nobr>>
[[Finish->Talk to Arthur]]<<run setup.resetArthurSexScene()>>
<div id="arthur-sex-ui">
<<arthurSexUI>>
</div><<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>Of course this is what Arthur watches. I suppose it is more entertaining than another Protectorate news loop.<</say>>\
<<switch random(1, 4)>>
<<case 1>>
<img class="scene-image" src="media/arthursroom/tv/tv1.webp">
<<case 2>>
<img class="scene-image" src="media/arthursroom/tv/tv2.webp">
<<case 3>>
<img class="scene-image" src="media/arthursroom/tv/tv3.webp">
<<case 4>>
<img class="scene-image" src="media/arthursroom/tv/tv4.webp">
<</switch>>
[[Return->Arthur's room]]<p>The shared bathroom is worn and cramped, but the plumbing works most of the time.</p>\
<img class="scene-image" src="media/bathroom/bathroom.jpg">
<<link "Shower">><<goto setup.getArthurApartmentShowerDestination()>><</link>>
[[Mirror]]
[[Hall->Slums Home]]<p>You gather what ingredients you have and prepare a simple meal.</p>\
<<nobr>>
<<switch random(1, 2)>>
<<case 1>>
<video src="media/kitchen/cooking/cooking1.mp4" autoplay loop controls></video>
<<case 2>>
<video src="media/kitchen/cooking/cooking2.mp4" autoplay loop controls></video>
<<default>>
<video src="media/kitchen/cooking/cooking1.mp4" autoplay loop controls></video>
<</switch>>
<</nobr>>
[[Eat meal->Eating]]<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>Time to do the dishes. Living independently is glamorous.<</say>>
<<nobr>>
<<switch random(1, 5)>>
<<case 1>>
<img class="scene-image" src="media/kitchen/dishes/dishes1.webp" width="640" height="720">
<<case 2>>
<img class="scene-image" src="media/kitchen/dishes/dishes2.webp" width="640" height="720">
<<case 3>>
<img class="scene-image" src="media/kitchen/dishes/dishes3.webp" width="640" height="720">
<<case 4>>
<img class="scene-image" src="media/kitchen/dishes/dishes4.webp" width="640" height="720">
<<case 5>>
<img class="scene-image" src="media/kitchen/dishes/dishes5.webp" width="640" height="720">
<<default>>
<img class="scene-image" src="media/kitchen/dishes/dishes1.webp" width="640" height="720">
<</switch>>
<</nobr>>
<<link "Finish">><<goto setup.getPlayerKitchenPassage()>><</link>><<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>
It is simple, but it is warm and filling.
<</say>>
<<nobr>>
<<switch random(1, 5)>>
<<case 1>>
<img class="scene-image" src="media/kitchen/eating/eating1.webp"
width="640" height="720" alt="Eating">
<<case 2>>
<img class="scene-image" src="media/kitchen/eating/eating2.webp"
width="640" height="720" alt="Eating">
<<case 3>>
<img class="scene-image" src="media/kitchen/eating/eating3.webp"
width="640" height="720" alt="Eating">
<<case 4>>
<img class="scene-image" src="media/kitchen/eating/eating4.webp"
width="640" height="720" alt="Eating">
<<case 5>>
<img class="scene-image" src="media/kitchen/eating/eating5.webp"
width="640" height="720" alt="Eating">
<</switch>>
<</nobr>>
<<link "Finish">><<goto setup.getPlayerKitchenPassage()>><</link>><<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>I should keep myself active. It might help me feel less helpless out here.<</say>>\
<<nobr>>
<<if setup.hasDoneHulaToday()>>
<span class="passage-link-disabled passage-link-disabled--tooltip" aria-disabled="true" tabindex="0" data-tooltip="You have already practised Hula today.">Hula</span>
<<else>>
<<link "Hula">><<run setup.completeDailyHula()>><<goto "Hula">><</link>>
<</if>><br>
<<link "Different kind of exercise...">>
<<run setup.completeHomeMasturbation()>><<run UIBar.update()>>
<<goto setup.getHomeMasturbationDestination()>>
<</link>><br>
<<link "Return">><<goto setup.getPlayerBedroomPassage()>><</link>>
<</nobr>><<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>All right. Keep moving... I can do this!<</say>>\
<<nobr>>
<<switch random(1, 4)>>
<<case 1>>
<video src="media/myroom/exercise/1.mp4" autoplay loop controls></video>
<<case 2>>
<video src="media/myroom/exercise/2.mp4" autoplay loop controls></video>
<<case 3>>
<video src="media/myroom/exercise/3.mp4" autoplay loop controls></video>
<<case 4>>
<video src="media/myroom/exercise/4.mp4" autoplay loop controls></video>
<<default>>
<video src="media/myroom/exercise/1.mp4" autoplay loop controls></video>
<</switch>>
<</nobr>>
<<if $hulaLastGain > 0>>
<p class="gym-stat-gain"><strong>Agility +1</strong></p>
<<else>>
<p class="gym-stat-gain"><strong>Agility is already at its maximum.</strong></p>
<</if>>
[[Finish->Exercise]]<p>The shared kitchen is small and battered, with just enough working equipment to prepare a meal.</p>\
<img class="scene-image" src="media/kitchen/kitchen.jpg">
[[Cook Meal->Cooking]]
[[Do dishes->Dishes]]
[[Hall->Slums Home]]<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>I need this...<</say>>\
<<nobr>>
<<switch random(1, 6)>>
<<case 1>>
<video src="media/myroom/exercise/masturbate1.mp4" autoplay loop controls></video>
<<case 2>>
<video src="media/myroom/exercise/masturbate2.mp4" autoplay loop controls></video>
<<case 3>>
<video src="media/myroom/exercise/masturbate3.mp4" autoplay loop controls></video>
<<case 4>>
<video src="media/myroom/exercise/masturbate4.mp4" autoplay loop controls></video>
<<case 5>>
<video src="media/myroom/exercise/masturbate5.mp4" autoplay loop controls></video>
<<case 6>>
<video src="media/myroom/exercise/masturbate6.mp4" autoplay loop controls></video>
<<default>>
<video src="media/myroom/exercise/masturbate1.mp4" autoplay loop controls></video>
<</switch>>
<</nobr>>
<<if $masturbationConstitutionResult is "gained">>
<p class="gym-stat-gain"><strong>Constitution +1</strong></p>
<<elseif $masturbationConstitutionResult is "maximum">>
<p class="gym-stat-gain"><strong>Constitution is already at its maximum.</strong></p>
<<else>>
<p class="gym-stat-gain"><strong>You have already gained Constitution from this today.</strong></p>
<</if>>
[[Finish->Exercise]]<<nobr>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>So... this is me now. New city, new home, new life.<</say>>
<img class="mirror-portrait-image" @src="setup.getMcPortrait()" data-mc-portrait alt="MC looking in the mirror">
<<linkreplace "Undress">>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">><<print setup.getMirrorBodyThought("breastSize")>><</say>>
<img class="mirror-body-image" @src="setup.getBodyCosmeticImage('breastSize')" alt="MC's breasts">
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">><<print setup.getPubicHairThought()>><</say>>
<img class="mirror-body-image" @src="setup.getPubicHairImage()" alt="MC's pussy">
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">><<print setup.getMirrorBodyThought("assSize")>><</say>>
<img class="mirror-body-image" @src="setup.getBodyCosmeticImage('assSize')" alt="MC's ass">
<</linkreplace>><br>
[[Shave]]<br>
<<link "Return">><<goto setup.getPlayerBathroomPassage()>><</link>>
<</nobr>><<nobr>>
<h2>Shave</h2>
<p>You prepare your razor and decide how much hair you want to remove. A longer style will only become available after it grows naturally.</p>
<div id="shave-ui">
<<shaveMenu>>
</div>
[[Return->Mirror]]
<</nobr>><p>Your rented room is modest, but it is the first space in Suns End that belongs to you.</p>\
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>Home sweet home... more or less.<</say>>\
<img class="scene-image" src="media/myroom/myroom.jpg">
[[Sofa]]
[[Wardrobe]]
[[Equipment]]
[[Exercise]]
[[Hall->Slums Home]]<p>You lie down for a short nap, hoping to quiet your thoughts for a while.</p>\
<<nobr>>
<<switch random(1, 2)>>
<<case 1>>
<img class="scene-image" src="media/myroom/sleep/napping/nap1.jpg" width="500" height="500">
<<case 2>>
<img class="scene-image" src="media/myroom/sleep/napping/nap2.jpg" width="500" height="500">
<<default>>
<img class="scene-image" src="media/myroom/sleep/napping/nap1.jpg" width="500" height="500">
<</switch>>
<</nobr>>\
<<nobr>>
<<if setup.shouldArthurPeep()>>
[[Wake up->Peeping]]
<<else>>
[[Wake up->Sofa]]
<</if>>
<</nobr>><p>You remain asleep and unaware as Arthur stands over you. He presses his cock against your resting face, tapping it over your cheek and lips before taking advantage of your unguarded mouth—or simply using your sleeping features as the place where he finishes.</p>\
<<if setup.isRentUnpaidForArthur()>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Can't cover the rent? Then stay asleep and let me take something else from that pretty face.<</say>>\
<<else>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Rent paid on time, and I still get to have a little fun with that pretty sleeping face. You're a generous tenant.<</say>>\
<</if>>
<<nobr>>
<<set $peepingVideo to setup.pickPeepingVideo()>>
<video @src="$peepingVideo" autoplay loop controls></video>
<</nobr>>
<<nobr>>
<<link "Stay still..." "Peeping Continued">><<run setup.applyPassivePeepingConsequences()>><</link>><br>
<<link "Wake and freak out..." "Peeping Freakout">><<run setup.adjustCorruption(-1)>><</link>>
<</nobr>><<run UIBar.update()>>
<<nobr>>
<<if !$peepingVideo>><<set $peepingVideo to setup.pickPeepingVideo()>><</if>>
<p>Sleep keeps your body slack and your face unguarded while Arthur continues rubbing his cock over your lips and cheek, pushing into your mouth when it parts or leaving his release across your sleeping features.</p>
<<if setup.isRentUnpaidForArthur()>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Keep sleeping. If you can't give me the rent, this face can still make itself useful.<</say>>
<<else>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>That's it... sleep through it. Paying the rent doesn't mean I can't enjoy my favourite tenant.<</say>>
<</if>>
<video @src="$peepingVideo" autoplay loop controls></video>
<</nobr>>
[[Return->Sofa]]<<run setup.adjustDominance(1)>><<run UIBar.update()>>
<<nobr>>
<img class="scene-image" src="media/myroom/sleep/napping/yelling1.webp" alt="">
<<switch random(1, 3)>>
<<case 1>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Arthur! Was your cock on my face while I was asleep?!<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Calm down. You were sleeping so peacefully that I thought we could both have some fun.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I was unconscious, you disgusting creep! Get out!<</say>>
<<case 2>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Did you put that in my mouth while I was sleeping?!<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>You barely stirred. Don't make a crisis out of a little private entertainment.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>You used me while I couldn't even wake up! Stay away from me!<</say>>
<<case 3>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Get away from me! You were using my face while I slept!<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Fine. No need to scream—the fun is already over.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Then get out and never come near me when I'm asleep again!<</say>>
<</switch>>
<</nobr>>
[[Return->Sofa]]<p>You let the hot water wash away the grime of the district.</p>\
<<nobr>>
<<switch random(1, 3)>>
<<case 1>>
<video src="media/bathroom/shower1.mp4" autoplay loop controls></video>
<<case 2>>
<video src="media/bathroom/shower2.mp4" autoplay loop controls></video>
<<case 3>>
<video src="media/bathroom/shower3.mp4" autoplay loop controls></video>
<<default>>
<video src="media/bathroom/shower1.mp4" autoplay loop controls></video>
<</switch>>
<</nobr>>
<<link "Return">><<goto setup.getPlayerBathroomPassage()>><</link>><<nobr>>
<h2>Shower</h2>
<p>Unaware that you are being watched, you relax beneath the hot water and continue washing.</p>
<video src="media/bathroom/peeping.mp4" autoplay loop muted controls playsinline></video>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Look at that young, sexy body... and she has no idea I'm watching.<</say>>
[[Finish->Bathroom]]
<</nobr>><<run setup.soberUp()>><<run setup.advanceGameDay()>><<run UIBar.update()>>
<<set _arthurSleepPeeping to setup.shouldArthurPeepDuringSleep()>>
<<if _arthurSleepPeeping>>
<p>You sink into a deep sleep, unaware of the door quietly opening. Arthur approaches the bed, exposes himself, and presses his cock against your sleeping face. Whether he taps it over your lips, slips into your unresisting mouth, or finishes across your features, you remain unconscious throughout.</p>\
<<if setup.isRentUnpaidForArthur()>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>No rent this week, so this is how you'll make it up to me. Keep sleeping and take it.<</say>>\
<<else>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>You paid what you owed. Now your landlord gets to have some harmless fun with his sleeping tenant.<</say>>\
<</if>>
<<nobr>>
<<set $peepingVideo to setup.pickPeepingVideo()>>
<video @src="$peepingVideo" autoplay loop controls></video>
<</nobr>>
<<link "Hard asleep..." "Arthur Sleep Peeping Continued">><<run setup.applyPassivePeepingConsequences()>><</link>>
<<else>>
<p>You settle in for the night. Whatever tomorrow brings, you need the rest.</p>\
<<nobr>>
<<switch random(1, 5)>>
<<case 1>><img class="scene-image" src="media/myroom/sleep/sleeping/1.webp">
<<case 2>><img class="scene-image" src="media/myroom/sleep/sleeping/2.webp">
<<case 3>><img class="scene-image" src="media/myroom/sleep/sleeping/3.webp">
<<case 4>><img class="scene-image" src="media/myroom/sleep/sleeping/4.webp">
<<case 5>><img class="scene-image" src="media/myroom/sleep/sleeping/5.webp">
<<default>><img class="scene-image" src="media/myroom/sleep/sleeping/1.webp">
<</switch>>
<</nobr>>
[[Wake up->Sofa]]
<</if>><<run UIBar.update()>>
<<nobr>>
<<if setup.isRentUnpaidForArthur()>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Still asleep... good. That settles a little of what you owe me.<</say>>
<<else>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>Still asleep... good. Rent paid and a little fun besides—what a perfect arrangement.<</say>>
<</if>>
<p>Arthur leaves your sleeping face behind and slips quietly out of the room. By the time you begin to stir, there is no sign of him beyond the lingering evidence of what he did.</p>
[[Wake up->Sofa]]
<</nobr>><p>The narrow hall connects the rooms of the residence you share with Arthur.</p>\
<img class="scene-image" src="media/slumshome/hall.jpg">
<<nobr>>
[[My room]]<br>
[[Arthur's room]]<br>
[[Bathroom]]<br>
[[Kitchen]]<br>
[[Try to clean up]]<br>
<<if setup.isDressedForOutside()>>
[[Outside->Slums]]
<<else>>
<span class="passage-link-disabled" aria-disabled="true">Outside</span>
<p class="table-order-error">You need to put on an outfit and shoes before going outside.</p>
<</if>>
<</nobr>><<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>The sofa is not much, but I can finally sit down for a while.<</say>>
[[Sleep]]
[[Nap]]
[[Stand up->My room]]<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>If I work through the worst of this mess, at least the rent will hurt a little less.<</say>>\
<<nobr>>
<<switch random(1, 7)>>
<<case 1>>
<video src="media/slumshome/cleaning/cleaning1.mp4" autoplay loop controls width="640" height="720"></video>
<<case 2>>
<video src="media/slumshome/cleaning/cleaning2.mp4" autoplay loop controls width="640" height="720"></video>
<<case 3>>
<video src="media/slumshome/cleaning/cleaning3.mp4" autoplay loop controls width="640" height="720"></video>
<<case 4>>
<video src="media/slumshome/cleaning/cleaning4.mp4" autoplay loop controls width="640" height="720"></video>
<<case 5>>
<img class="scene-image" src="media/slumshome/cleaning/cleaning5.gif" width="640" height="720">
<<case 6>>
<img class="scene-image" src="media/slumshome/cleaning/cleaning6.gif" width="640" height="720">
<<case 7>>
<img class="scene-image" src="media/slumshome/cleaning/cleaning7.gif" width="640" height="720">
<<default>>
<video src="media/slumshome/cleaning/cleaning1.mp4" autoplay loop controls width="640" height="720"></video>
<</switch>>
<</nobr>>
<<if not $cleaningcooldown>>\
<<set $cleaningcooldown to true>>\
<<run setup.reduceRentDue(50)>>\
[[Finish->Slums Home]]\
<<else>>\
[[Finish->Slums Home]]\
<</if>>\<h2>Wardrobe</h2>
<<link "Back">><<goto setup.getPlayerBedroomPassage()>><</link>>
<div id="wardrobe-ui">
<<wardrobeUI "outfits">>
</div><h2>Equipment</h2>
<<link "Back">><<goto setup.getPlayerBedroomPassage()>><</link>>
<div id="combat-loadout-ui"><<combatEquipmentUI>></div><<nobr>>
<h2>The first night at home</h2>
<img class="scene-image" src="media/locations/melisasapartment/bedroom/bedroom.jpg" alt="Melisa's bedroom">
<p>You settle into bed beside Melisa. She pulls you close, and for the first time since coming to Suns End, you fall asleep without wondering whether someone might enter your room.</p>
[[Wake up beside Melisa->Melisa Move In Morning]]
<</nobr>><<nobr>>
<<run setup.completeMelisaMoveInMorning()>><<run UIBar.update()>>
<h2>Morning coffee</h2>
<img class="scene-image" src="media/locations/melisasapartment/kitchen/kitchen.webp" alt="Melisa's kitchen">
<p>The next morning, you sit together over coffee in the kitchen. The safety of the apartment feels almost unreal, but one practical concern refuses to leave your mind.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Melisa... how much do I need to pay you for rent?<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>You're my love. You don't have to pay shit.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>But that's exactly why we should split the rent and the housework. I don't want to feel like a burden you're carrying. I want us to feel like partners.<</say>>
<p>Melisa studies your face, ready to refuse again, but the earnestness in your voice gradually wears down her resistance.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Fine. Your part of the rent is c200. I cover the rest, and that's final. We share the work too—cleaning, cooking, whatever needs doing whenever one of us has the time.<</say>>
<p>You rise, throw your arms around her, and hold her tightly.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Thank you. I love you, Melisa.<</say>>
<p>Melisa freezes for one fluttering heartbeat. Then her face lights up, and she covers you in what feels like a thousand delighted kisses.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>I love you too.<</say>>
[[Settle into your new home->Melisa Apartment Living Room]]
<</nobr>><<nobr>>
<h2>Melisa's apartment</h2>
<p>The living room also serves as the apartment's central hall, connecting every part of the home.</p>
<img class="scene-image" src="media/locations/melisasapartment/apartment.jpg" alt="The living room in Melisa's apartment">
[[Bedroom->Melisa Apartment Bedroom]]<br>
[[Bathroom->Melisa Apartment Bathroom]]<br>
[[Kitchen->Melisa Apartment Kitchen]]<br>
[[Sofa->Melisa Apartment Sofa]]<br>
<<if setup.isDressedForOutside()>>
[[Outside->Slums]]
<<else>>
<span class="passage-link-disabled" aria-disabled="true">Outside</span>
<p class="table-order-error">You need to put on an outfit and shoes before going outside.</p>
<</if>>
<</nobr>><<nobr>>
<h2>Your bedroom</h2>
<p>You now share this room and its bed with Melisa. Your belongings have begun to turn it into a space that belongs to both of you.</p>
<img class="scene-image" src="media/locations/melisasapartment/bedroom/bedroom.jpg" @alt="$mcname + ' and Melisa\'s bedroom'">
[[Bed->Melisa Apartment Bed]]<br>
[[Wardrobe]]<br>
[[Equipment]]<br>
[[Exercise]]<br>
[[Living room->Melisa Apartment Living Room]]
<</nobr>><<nobr>>
<h2>Bed</h2>
<img class="scene-image" src="media/locations/melisasapartment/bedroom/bedroom.jpg" @alt="'The bed shared by ' + $mcname + ' and Melisa'">
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>It still feels strange to call this our bed... but it feels safe.<</say>>
<<if setup.ensureMelisaState().girlfriend>>
<<link "Have sex with Melisa">><<run setup.startMelisaBedroomSex()>><<goto "Melisa Bedroom Sex">><</link>><br>
<</if>>
[[Sleep->Melisa Apartment Sleep]]<br>
[[Return->Melisa Apartment Bedroom]]
<</nobr>><<run setup.soberUp()>><<run setup.advanceGameDay()>><<run UIBar.update()>>
<p>You settle in for the night and sleep safely beside Melisa.</p>
<<nobr>>
<<switch random(1, 2)>>
<<case 1>><img class="scene-image" src="media/locations/melisasapartment/bedroom/sleep1.avif" alt="Sleeping beside Melisa">
<<case 2>><img class="scene-image" src="media/locations/melisasapartment/bedroom/sleep2.jpg" alt="Sleeping beside Melisa">
<</switch>>
[[Wake up->Melisa Apartment Bedroom]]
<</nobr>><<nobr>>
<h2>Bathroom</h2>
<p>Melisa's bathroom is clean, private, and far more comfortable than the one you left behind.</p>
<img class="scene-image" src="media/locations/melisasapartment/bathroom/bathroom.jpg" alt="Melisa's bathroom">
<<link "Shower">><<goto setup.getMelisaApartmentShowerDestination()>><</link>><br>
[[Mirror]]<br>
[[Living room->Melisa Apartment Living Room]]
<</nobr>><<nobr>>
<h2>Kitchen</h2>
<p>The kitchen is shared equally now, whether you are preparing food or cleaning up afterward.</p>
<img class="scene-image" src="media/locations/melisasapartment/kitchen/kitchen.webp" alt="Melisa's kitchen">
[[Cook Meal->Cooking]]<br>
[[Do dishes->Dishes]]<br>
[[Living room->Melisa Apartment Living Room]]
<</nobr>><<nobr>>
<h2>Living room sofa</h2>
<img class="scene-image" src="media/locations/melisasapartment/apartment.jpg" alt="The sofa in Melisa's living room">
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>I can rest here without worrying about anyone creeping up on me.<</say>>
[[Nap->Melisa Apartment Nap]]<br>
[[Watch TV->Melisa Apartment Watch TV]]<br>
[[Stand up->Melisa Apartment Living Room]]
<</nobr>><<nobr>>
<p>You stretch out on the sofa and let yourself drift into a peaceful nap.</p>
<<switch random(1, 2)>>
<<case 1>><img class="scene-image" src="media/myroom/sleep/napping/nap1.jpg" alt="Napping on the sofa">
<<case 2>><img class="scene-image" src="media/myroom/sleep/napping/nap2.jpg" alt="Napping on the sofa">
<</switch>>
<<link "Wake up">>
<<if setup.shouldMelisaKissMcAwake()>><<goto "Melisa Nap Kiss">><<else>><<goto "Melisa Apartment Sofa">><</if>>
<</link>>
<</nobr>><<nobr>>
<h2>A better way to wake up</h2>
<img class="scene-image" src="media/locations/melisasapartment/livingroom/kiss1.jpg" @alt="'Melisa kissing ' + $mcname + ' awake'">
<p>A warm kiss gently pulls you out of sleep. When your eyes open, Melisa is leaning over you with an affectionate smile.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Rise and shine, sleepyhead. Did you have a good nap?<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I did... but waking up was even better than the nap.<</say>>
[[Return->Melisa Apartment Sofa]]
<</nobr>><<nobr>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>For once, I can choose something other than another Protectorate news loop.<</say>>
<<switch random(1, 4)>>
<<case 1>><img class="scene-image" src="media/arthursroom/tv/tv1.webp" alt="Watching television">
<<case 2>><img class="scene-image" src="media/arthursroom/tv/tv2.webp" alt="Watching television">
<<case 3>><img class="scene-image" src="media/arthursroom/tv/tv3.webp" alt="Watching television">
<<case 4>><img class="scene-image" src="media/arthursroom/tv/tv4.webp" alt="Watching television">
<</switch>>
[[Return->Melisa Apartment Sofa]]
<</nobr>><<nobr>>
<h2>A private moment</h2>
<img class="scene-image" src="media/locations/melisasapartment/bedroom/apartmasturbate.webp" @alt="$mcname + ' masturbating in Melisa\'s apartment'">
<<if $masturbationConstitutionResult is "gained">>
<p class="gym-stat-gain"><strong>Constitution +1</strong></p>
<<elseif $masturbationConstitutionResult is "maximum">>
<p class="gym-stat-gain"><strong>Constitution is already at its maximum.</strong></p>
<<else>>
<p class="gym-stat-gain"><strong>You have already gained Constitution from this today.</strong></p>
<</if>>
<p>You settle onto the bed and slip a hand between your thighs, believing you have enough time alone to satisfy the need building inside you.</p>
[[Continue->Melisa Catches MC Masturbating]]
<</nobr>><<nobr>>
<h2>Caught</h2>
<img class="scene-image" src="media/locations/melisasapartment/bedroom/apartcaught1.webp" @alt="'Melisa catching ' + $mcname + ' masturbating'">
<p>The bedroom door opens before you can cover yourself. Melisa pauses, takes in the sight of your hand between your legs, and smiles.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Do you need a hand with that?<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I... wouldn't say no.<</say>>
[[Let Melisa help->Melisa Helps MC Masturbate]]
<</nobr>><<nobr>>
<video src="media/locations/melisasapartment/bedroom/apartcaught2.mp4" autoplay loop muted controls playsinline></video>
<p>Melisa leans in to kiss you while her fingers take over, massaging your clit with steady, practiced pressure.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Next time, ask me, love. I enjoy taking care of you.<</say>>
[[Continue->Melisa Helps MC Finish]]
<</nobr>><<nobr>>
<video src="media/locations/melisasapartment/bedroom/apartcaught3.webm" autoplay loop muted controls playsinline></video>
<p>Melisa keeps touching you until the orgasm breaks through you. When the trembling subsides, she lifts her fingers, slick with your release, and presses them gently between your lips.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Taste yourself.<</say>>
<p>You close your lips around her fingers as she watches with a satisfied smile.</p>
[[Finish->Melisa Apartment Bedroom]]
<</nobr>><<nobr>>
<h2>Company in the shower</h2>
<video src="media/locations/melisasapartment/bathroom/showerfun1.mp4" autoplay loop muted controls playsinline></video>
<p>You have barely settled beneath the warm water when Melisa joins you. She pulls you close, and the shower is quickly forgotten as you make out beneath the spray.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>You didn't think you were showering without me, did you?<</say>>
[[Continue->Melisa Shower Fun Undress]]
<</nobr>><<nobr>>
<video src="media/locations/melisasapartment/bathroom/showerfun2.mp4" autoplay loop muted controls playsinline></video>
<p>Still kissing her, you begin undressing Melisa and peel away the clothes she had not bothered to remove before following you inside.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>If you're joining me, you're doing it properly.<</say>>
[[Continue->Melisa Shower Fun Oral]]
<</nobr>><<nobr>>
<video src="media/locations/melisasapartment/bathroom/showerfun3.mp4" autoplay loop muted controls playsinline></video>
<p>Once her bottoms are out of the way, you lower yourself and lick Melisa's pussy until her composure begins to crack. She pulls you upright and back beneath the shower, turns you toward the wall, and presses your body against it while her fingers massage your clit from behind.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>My turn. Hold still and let me take care of you.<</say>>
[[Continue->Melisa Shower Fun Squeeze]]
<</nobr>><<nobr>>
<video src="media/locations/melisasapartment/bathroom/showerfun4.mp4" autoplay loop muted controls playsinline></video>
<p>Melisa confidently grips your ass and squeezes hard, holding you exactly where she wants you beneath the running water.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>You really do like taking control everywhere.<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>You say that like you don't love it.<</say>>
[[Continue->Melisa Shower Fun Finish]]
<</nobr>><<nobr>>
<video src="media/locations/melisasapartment/bathroom/showerfun5.mp4" autoplay loop muted controls playsinline></video>
<p>You laugh and switch places with her, wrapping yourself around Melisa from behind and rubbing her clit. The urgency gradually softens into playful touches and shared laughter as you wind down and finally finish showering together.</p>
[[Finish showering->Melisa Apartment Bathroom]]
<</nobr>><<nobr>>
<h2>Together in bed</h2>
<<if !$melisaBedroomSex.active>><<run setup.startMelisaBedroomSex()>><</if>>
<div id="melisa-bedroom-sex-ui"><<melisaBedroomSexUI>></div>
<</nobr>><<nobr>>
<h2>Afterward</h2>
<img class="scene-image" src="media/locations/melisasapartment/bedroom/bedroom.jpg" @alt="$mcname + ' and Melisa resting together'">
<p>You remain curled together beneath the sheets, trading soft kisses while your breathing gradually settles.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>I love having you here beside me.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I love being here with you.<</say>>
<<if $melisaBedroomSex.relationshipGain > 0>>
<p class="gym-relationship-gain"><strong>Relationship with Melisa +<<print $melisaBedroomSex.relationshipGain>></strong></p>
<</if>>
[[Finish->Melisa Apartment Bedroom]]
<</nobr>><<nobr>>
<<set _rescueEnemy to setup.getMelisaContractRescueEnemy()>>
<h2>A contract gone wrong</h2>
<img class="scene-image" src="media/characters/melisa/defeat1.webp" @alt="'Melisa at the mercy of ' + _rescueEnemy.name">
<p>With your own target dealt with, you take a quieter route back through the Slums. A familiar, muffled sound stops you cold. In the shadows ahead, Melisa is on her knees—bruised, disarmed, and held by the <<print _rescueEnemy.name>> she was sent to kill. He forces his exposed cock toward her mouth while she struggles beneath his grip.</p>
<<if $melisaContractRescue.active>>
[[Intervene->Melisa Contract Rescue Confrontation]]<br>
[[Watch what happens...->Melisa Contract Betrayal]]
<<else>>
<p class="table-order-error">This encounter has already been resolved.</p>
[[Continue->"Vested Interest" Bar]]
<</if>>
<</nobr>><<nobr>>
<<set _rescueEnemy to setup.getMelisaContractRescueEnemy()>>
<h2>Intervene</h2>
<img class="scene-image" src="media/characters/melisa/defeat1.webp" @alt="'Melisa being held by ' + _rescueEnemy.name">
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Get away from her! Let her go now, or I swear I'll kill you!<</say>>
<<say _rescueEnemy.name _rescueEnemy.image "criminal">>Look at that—another slut delivered herself to me. Come on, then. Let's see if you fight any better than she did.<</say>>
<<capture _rescueEnemy>>
<<link "Fight">>
<<startFight _rescueEnemy.name "Melisa Contract Double Defeat" "melisa-contract-rescue">>
<</link>>
<</capture>>
<</nobr>><<nobr>>
<h2>Remain hidden</h2>
<img class="scene-image" src="media/characters/melisa/defeat2.webp" alt="Melisa being assaulted">
<p>You remain concealed. Melisa's resistance weakens as the man forces himself deeper into her mouth, never realizing that you are close enough to help.</p>
[[Continue->Melisa Contract Betrayal Continued]]
<</nobr>><<nobr>>
<img class="scene-image" src="media/characters/melisa/defeat3.webp" alt="Melisa being assaulted by her contract target">
<p>He throws Melisa down and forces himself inside her. She endures the assault while you watch from cover, silent and motionless.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Get your disgusting cock out of me! I don't want any part of you inside me!<</say>>
[[Continue->Melisa Contract Betrayal Climax]]
<</nobr>><<nobr>>
<img class="scene-image" src="media/characters/melisa/defeat4.webp" alt="The attacker finishing over Melisa">
<p>When he is finished, he covers Melisa's face with his release and leaves her crumpled on the ground. Only after his footsteps fade do you finally emerge.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Get this vile cum off me... I can't stand the smell of it. Fucking male filth.<</say>>
[[Approach Melisa->Melisa Contract Betrayal Aftermath]]
<</nobr>><<nobr>>
<<set _rescueResult to setup.resolveMelisaContractRescue("watched")>>
<<set _melisaBreakup to setup.shouldMelisaBreakUpAfterContractRescue()>>
<h2>Betrayed</h2>
<img class="scene-image" src="media/characters/melisa/defeat5.webp" alt="Melisa realizing she was abandoned">
<p>Melisa looks up at you through the mess on her face. Confusion gives way to realization, and then to a hurt far deeper than anything her attacker inflicted.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>I can still taste that disgusting cock. His cum is drying on my face, and I can smell him all over me... and you were here. You watched him do that to me and did nothing. I trusted you. Don't fucking touch me.<</say>>
<<if _rescueResult.ok>><p class="table-order-error"><strong>Relationship with Melisa -20</strong></p><</if>>
<<if _melisaBreakup>>
[[Face Melisa->Melisa Contract Breakup]]
<<else>>
[[Leave->"Vested Interest" Bar]]
<</if>>
<</nobr>><<nobr>>
<<set _rescueEnemy to setup.getMelisaContractRescueEnemy()>>
<<set _rescueResult to setup.resolveMelisaContractRescue("rescued")>>
<h2>Rescued</h2>
<img class="scene-image" src="media/characters/melisa/melisa.jpg" @alt="'Melisa after being rescued from ' + _rescueEnemy.name">
<p>The <<print _rescueEnemy.name>> collapses and does not rise again. Melisa staggers to her feet, spits on his body, and unleashes every profanity she knows at the dead man.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Rot in hell, you fucking animal! I can still taste that filthy cock and smell him on me. God, I fucking hate men touching me.<</say>>
<p>You pull Melisa into your arms before rage can carry her any farther. She tenses at first, then sinks against you as the fight drains out of her.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I've got you. You're safe now.<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Thank you... I knew you wouldn't leave me.<</say>>
<<if _rescueResult.ok>><p class="gym-relationship-gain"><strong>Relationship with Melisa +4</strong></p><</if>>
[[Return together->"Vested Interest" Bar]]
<</nobr>><<nobr>>
<<set _rescueEnemy to setup.getMelisaContractRescueEnemy()>>
<h2>Overpowered</h2>
<img class="scene-image" src="media/characters/melisa/doubledefeat1.webp" alt="The attackers overpowering the two women">
<p>The <<print _rescueEnemy.name>> cuts off your escape and beats you down. Laughing at your failed rescue, he calls an accomplice over. The newcomer forces his cock into your mouth while the first man turns his attention back to Melisa.</p>
<<say _rescueEnemy.name _rescueEnemy.image "criminal">>You ran over here playing the hero, and now you're choking on my friend's cock. Stay on your knees with your useless girlfriend.<</say>>
[[Continue->Melisa Contract Double Defeat Together]]
<</nobr>><<nobr>>
<<set _rescueEnemy to setup.getMelisaContractRescueEnemy()>>
<h2>Helpless together</h2>
<img class="scene-image" src="media/characters/melisa/doubledefeat2.webp" alt="Melisa and the main character trying to comfort each other">
<p>They force you beside Melisa. You cling to each other, trying to offer what little comfort you can while one man abuses her and the other prepares to do the same to you.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>I hate your filthy cock! Get it out of me and leave us alone!<</say>>
<<say _rescueEnemy.name _rescueEnemy.image "criminal">>Keep complaining, dyke. Your body still takes cock like any other helpless slut.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Melisa... I'm here. Hold on to me.<</say>>
[[Continue->Melisa Contract Double Defeat MC]]
<</nobr>><<nobr>>
<img class="scene-image" src="media/characters/melisa/doubledefeat3.webp" alt="The accomplice assaulting the main character">
<p>The accomplice forces himself into you and fucks you without mercy. You grit your teeth and keep reaching toward Melisa, refusing to let her think she is alone.</p>
<<say "Accomplice" "" "criminal">>Stop reaching for her, bitch. You came here to save her, and all you managed to do was give me another hole to use.<</say>>
[[Continue->Melisa Contract Double Defeat Continued]]
<</nobr>><<nobr>>
<<set _rescueEnemy to setup.getMelisaContractRescueEnemy()>>
<img class="scene-image" src="media/characters/melisa/doubledefeat4.webp" alt="Both women being assaulted">
<p>The assault continues until your body aches with every movement. Behind you, Melisa is forced back onto her knees, choking as the first man uses her mouth again.</p>
<<say _rescueEnemy.name _rescueEnemy.image "criminal">>Look at your brave girlfriend now—getting fucked while you choke for me. Neither of you is good for anything but this.<</say>>
<<say "Accomplice" "" "criminal">>They wanted to suffer together. Let's make sure they remember getting their wish.<</say>>
[[Continue->Melisa Contract Double Defeat Aftermath]]
<</nobr>><<nobr>>
<<set _rescueResult to setup.resolveMelisaContractRescue("double-defeat")>>
<<set _melisaBreakup to setup.shouldMelisaBreakUpAfterContractRescue()>>
<h2>Aftermath</h2>
<img class="scene-image" src="media/characters/melisa/defeat5.webp" alt="Melisa approaching after the attackers leave">
<p>Spent at last, the men throw both of you onto the ground and walk away laughing. Melisa crawls toward you, exhausted and shaking, her face stained with their release. You hold each other in silence, but neither of you can pretend the failed rescue left your relationship untouched.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>You came for me... I know you tried. I just... I can still taste his cock and smell him on my skin. That disgusting cum is still on my face. I hate cocks. I hate everything about them. I can't get any of it out of my head.<</say>>
<<if _rescueResult.ok>><p class="table-order-error"><strong>Relationship with Melisa -4</strong></p><</if>>
<<if _melisaBreakup>>
[[Try to talk to Melisa->Melisa Contract Breakup]]
<<else>>
[[Return together->"Vested Interest" Bar]]
<</if>>
<</nobr>><<nobr>>
<<set _rescueState to setup.ensureMelisaContractRescueState()>>
<<set _breakupResult to setup.completeMelisaBreakupBadEnding()>>
<h2>The breaking point</h2>
<img class="scene-image" src="media/characters/melisa/defeat5.webp" alt="Melisa confronting the main character after the attack">
<<if _rescueState.outcome is "watched">>
<p>The silence between you erupts into a furious argument. You try to explain yourself, but every word only makes Melisa angrier.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Melisa, please! I was scared. I froze—I didn't know what to do!<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>You knew exactly what was happening! You stood there and watched while he raped me. I trusted you with my life, and you decided I wasn't worth saving.<</say>>
<<else>>
<p>Pain and shock turn the journey home into a heated argument. You reach for Melisa, desperate to hold together what remains between you, but she recoils.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I tried to save you! We survived this together. Please don't shut me out now.<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Don't tell me how I should feel! I can't look at you without reliving every second of it. Whatever we had isn't strong enough to survive this.<</say>>
<</if>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>What are you saying?<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>I'm saying we're finished. Pack your things and get out of my apartment. I can't have you near me anymore.<</say>>
<p>The finality in her voice leaves no room for another appeal. By nightfall, you are outside with everything you own and nowhere left to go.</p>
<<if _breakupResult.ok>>[[Continue->Bad Ending - Homeless]]<<else>><p class="table-order-error">The breakup could not be resolved.</p><</if>>
<</nobr>><<nobr>>
<h2>Bad Ending: Homeless</h2>
<p>Without Melisa's home—or anyone else willing to take you in—you begin sleeping in alleys, abandoned corridors, and whatever sheltered corners of the Slums you can find.</p>
<p>It does not take long for homeless men and criminals to recognize how vulnerable you are. They corner you when you are alone, trade scraps and temporary shelter for access to your body, and use you mercilessly whenever refusing is no longer a safe option.</p>
<p>Days blur into one another until the street has taken everything that once made your life your own.</p>
<p class="table-order-error"><strong>BAD ENDING — PROPERTY OF THE STREETS</strong></p>
<</nobr>><div class="age-gate-panel">
<p>Warning: This game contains content that is not suitable for minors. By clicking "I am not 18 years old or older.", you acknowledge that you are at least 18 years old or older.</p>
<div id="age-gate-actions" class="age-gate-actions">
<<button "I am 18 years old or older.">><<goto "Start">><</button>>
<<button "I am not 18 years old or older.">>
<<replace "#age-gate-actions">><p id="age-gate-actions" class="age-gate-rejected" role="status">Please close the tab.</p><</replace>>
<</button>>
</div>
</div><img class="opening-game-banner" src="media/banner/banneronly.png" alt="Trouble in Suns End">
<p>Suns End—the jewel of western Arda. At least, that is what the Protectorate travel holos promised before you came here.</p>\
[[Space Port]]<img class="scene-image" src="media/locations/landscape/sunsend.jpg" alt="The city of Suns End">
<p>The lower spaceport deposits you beneath the city proper with one small credit balance, a few personal belongings, and the hope of starting over. Every respectable district is far beyond your budget. If you want a roof tonight, the Slums are your only realistic choice.</p>\
[[Slums->Slums Arrival]]<img class="scene-image" src="media/locations/slums/slums.jpg" alt="The Slums of Suns End">
<p>The descent into the Slums strips the shine from every promise you heard about Suns End. Towers crowd out the sky, refuse gathers beneath rusted walkways, and reputable citizens hurry through without looking back. You find the nearest public data panel and begin searching for somewhere—anywhere—you can afford to sleep.</p>\
[[Data panel]]<p>The public data panel is cracked, greasy, and several updates out of date. Its display stutters beneath your touch, but it is the only housing terminal nearby.</p>\
<<linkreplace "Touch the panel">>\
The panel flickers reluctantly to life.
<p><strong>Identity not recognized. Please insert your ID card into the reader.</strong></p>\
<p>You wipe the reader with your sleeve, take out your citizen ID, and carefully slide it into the slot.</p>\
<label>\
Name:
<<textbox "$mcname" $mcname>>\
</label>\
<span id="name-error"></span>
<<button "Confirm name">>\
<<set $mcname to $mcname.trim()>>\
<<if $mcname is "">>\
<<replace "#name-error">>\
<span id="name-error" class="name-error">\
Error. Provide a name.\
</span>\
<</replace>>\
<<else>>\
<<goto "Character Data Panel">>\
<</if>>\
<</button>>\
<</linkreplace>>\<<nobr>>
<<set _address to setup.parseCharacterAddress($mchomeaddress)>>
<div class="character-info character-data-record">
<header class="character-info-header">
<h2>Character Profile</h2>
<div class="character-info-registry-mark">
<p>Citizen record</p>
<img src="media/ui/character-info/protectorate-emblem.svg" alt="Protectorate emblem">
</div>
</header>
<div class="character-info-layout">
<aside class="character-info-summary">
<img class="character-info-portrait" @src="setup.getMcPortrait()" data-mc-portrait alt="">
<strong class="character-info-name">$mcname Savino</strong>
</aside>
<section class="character-info-section">
<h3><img class="character-info-category-icon" src="media/ui/character-info/personal.svg" alt="">Personal Details</h3>
<dl class="character-info-fields">
<div><dt>Full name</dt><dd>$mcname Savino</dd></div>
<div><dt>Age</dt><dd>$mcage</dd></div>
<div><dt>Gender</dt><dd>Female</dd></div>
<div><dt>Race</dt><dd>Human</dd></div>
<div><dt>Eye color</dt><dd>$mceyecolor</dd></div>
<div><dt>Marital status</dt><dd>$mcmartialstatus</dd></div>
<div><dt>Occupation</dt><dd><<print setup.getOccupationDisplay()>></dd></div>
</dl>
</section>
<section class="character-info-section">
<h3><img class="character-info-category-icon" src="media/ui/character-info/registration.svg" alt="">Registration</h3>
<div class="character-info-address-block">
<h4>Permanent address</h4>
<dl class="character-info-fields">
<div><dt>Planet</dt><dd><<print _address.planet>></dd></div>
<div><dt>City</dt><dd><<print _address.city>></dd></div>
<div><dt>Street</dt><dd><<print _address.street>></dd></div>
<div><dt>Building</dt><dd><<print _address.building>></dd></div>
<div><dt>Residence</dt><dd><<print _address.residence>></dd></div>
</dl>
</div>
<div class="character-info-address-block character-info-address-block--birthplace">
<h4>Birthplace</h4>
<dl class="character-info-fields">
<div><dt>Planet</dt><dd>Hedexus V</dd></div>
<div><dt>City</dt><dd>Trexuria</dd></div>
</dl>
</div>
</section>
<section class="character-info-section">
<h3><img class="character-info-category-icon" src="media/ui/character-info/records.svg" alt="">Records</h3>
<div class="character-info-record-row">
<span>Police record</span>
<strong class="character-info-record-status character-info-record-status--clear">Not wanted</strong>
</div>
<div class="character-info-record-row">
<span>Health insurance</span>
<strong class="character-info-record-status character-info-record-status--alert">Not insured</strong>
</div>
</section>
</div>
<div class="character-info-return">
[[Confirm->Look up]]
</div>
</div>
<</nobr>><p>Once the panel confirms your identity, it releases your card and grants access to the local housing listings. You sort them by distance and price. Even in the Slums, nearly everything costs more than you can afford.</p>\
<p>The cheapest listing is around the corner: one room for c150 a week. You only have c100. With no better option, you decide to go [[there->Renting Place]] and ask the landlord to lower the price.</p>\<p>The residential block looks like everything else in the Slums: neglected, damp, and patched together just well enough to remain standing. After a day of travel, you are too tired to be particular.</p>\
<p>You find the number from the listing and knock. A few seconds later, a broad, middle-aged man in worn slacks and a stained white shirt opens the door.</p>\
<<say "Man" "media/characters/arthur.jpg" "arthur">>Yeah? What do you want?<</say>>\
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Hello. I saw your housing listing on the public panel. You still have a room available, right?<</say>>\
<<say "Man" "media/characters/arthur.jpg" "arthur">>Still available. You looking to rent it?<</say>>\
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Yes, please. Could you show me where it is?<</say>>\
<p>You step back into the corridor, expecting him to lead you elsewhere. He watches you with a puzzled frown.</p>\
<<say "Man" "media/characters/arthur.jpg" "arthur">>Where are you going? This is the place.<</say>>\
<p>You glance past him into the cramped residence.</p>\
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>You mean... in here? With you?<</say>>\
<<say "Man" "media/characters/arthur.jpg" "arthur">>You thought c150 bought a private apartment? You get one bedroom. Kitchen and bathroom are shared.<</say>>\
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>Of course. A filthy room in a stranger's home. Still... it is better than sleeping outside.<</say>>\
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>All right. Could I see the room first?<</say>>\
<p>He lets you inside. The spare room is in complete disarray, as if its last occupant left during a storm. The kitchen and bathroom are both shared; the only other bedroom belongs to him.</p>\
<<say "Man" "media/characters/arthur.jpg" "arthur">>So, you want it or not?<</say>>\
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I do want it, but there is a problem. I only have c100 right now.<</say>>\
<<say "Man" "media/characters/arthur.jpg" "arthur">>Then why the hell are you wasting my time?<</say>>\
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Please. I have nowhere else to go tonight. There must be something I can do.<</say>>\
<<say "Man" "media/characters/arthur.jpg" "arthur">>This isn't a charity, girl.<</say>>\
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I know. I can work. Clean, cook—whatever you need. Please.<</say>>\
<p>His irritation fades into calculation as he looks past you at the state of the residence.</p>\
<<say "Man" "media/characters/arthur.jpg" "arthur">>All right. Clean the whole place once a week and I'll knock c50 off that week's rent. Miss it, and you owe the full c150. Deal?<</say>>\
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Deal. Thank you. I mean it.<</say>>\
<<say "Man" "media/characters/arthur.jpg" "arthur">>Transfer the c100 now and move your things in. Name's Arthur, by the way. Don't make me regret this.<</say>>\
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>You won't. I'm $mcname. It is nice to meet you, Arthur.<</say>>\
<<run setup.chargeCredits(100)>><<set $mchomeaddress to "Arda > Suns End > Ughathan 84031/40">><<set $cleaningcooldown to false>><<set $baseRent to 150>><<run setup.setRentDue($baseRent)>>\
<p>You transfer every credit you have. Arthur leaves you to settle in, and you take stock of the mess around you. It is hardly the fresh start you imagined, but once you [[tidy->Slums Home]] the place, it might begin to feel like home.</p>\<<nobr>>
<<set _address to setup.parseCharacterAddress($mchomeaddress)>>
<div class="character-info">
<header class="character-info-header">
<h2>Character Profile</h2>
<div class="character-info-registry-mark">
<p>Citizen record</p>
<img src="media/ui/character-info/protectorate-emblem.svg" alt="Protectorate emblem">
</div>
</header>
<div class="character-info-layout">
<aside class="character-info-summary">
<img class="character-info-portrait" @src="setup.getMcPortrait()" data-mc-portrait alt="">
<strong class="character-info-name">$mcname Savino</strong>
</aside>
<section class="character-info-section">
<h3><img class="character-info-category-icon" src="media/ui/character-info/personal.svg" alt="">Personal Details</h3>
<dl class="character-info-fields">
<div><dt>Full name</dt><dd>$mcname Savino</dd></div>
<div><dt>Age</dt><dd>$mcage</dd></div>
<div><dt>Gender</dt><dd>Female</dd></div>
<div><dt>Race</dt><dd>Human</dd></div>
<div><dt>Eye color</dt><dd>$mceyecolor</dd></div>
<div><dt>Marital status</dt><dd>$mcmartialstatus</dd></div>
<div><dt>Occupation</dt><dd><<print setup.getOccupationDisplay()>></dd></div>
</dl>
</section>
<section class="character-info-section">
<h3><img class="character-info-category-icon" src="media/ui/character-info/registration.svg" alt="">Registration</h3>
<div class="character-info-address-block">
<h4>Permanent address</h4>
<dl class="character-info-fields">
<div><dt>Planet</dt><dd><<print _address.planet>></dd></div>
<div><dt>City</dt><dd><<print _address.city>></dd></div>
<div><dt>Street</dt><dd><<print _address.street>></dd></div>
<div><dt>Building</dt><dd><<print _address.building>></dd></div>
<div><dt>Residence</dt><dd><<print _address.residence>></dd></div>
</dl>
</div>
<div class="character-info-address-block character-info-address-block--birthplace">
<h4>Birthplace</h4>
<dl class="character-info-fields">
<div><dt>Planet</dt><dd>Hedexus V</dd></div>
<div><dt>City</dt><dd>Trexuria</dd></div>
</dl>
</div>
</section>
<section class="character-info-section character-info-finances">
<div class="character-info-account-block">
<h3><img class="character-info-category-icon" src="media/ui/character-info/account.svg" alt="">Account</h3>
<div class="character-info-credit"><span>Available credits</span><strong>c$credits</strong></div>
<div class="character-info-credit"><span>Fines</span><strong @class="setup.getFinancialValueClass('fines', $fines)">c$fines</strong></div>
<div class="character-info-credit"><span>Outstanding balance</span><strong @class="setup.getFinancialValueClass('outstanding', $outstandingBalance)">c$outstandingBalance</strong></div>
</div>
<div class="character-info-records">
<h3><img class="character-info-category-icon" src="media/ui/character-info/records.svg" alt="">Records</h3>
<div class="character-info-record-row">
<span>Police record</span>
<<if $isWanted>>
<strong class="character-info-record-status character-info-record-status--alert">Wanted</strong>
<<else>>
<strong class="character-info-record-status character-info-record-status--clear">Not wanted</strong>
<</if>>
</div>
<div class="character-info-record-row">
<span>Health insurance</span>
<<if $hasHealthInsurance>>
<strong class="character-info-record-status character-info-record-status--clear"><<print setup.getHealthInsuranceStatus()>></strong>
<<else>>
<strong class="character-info-record-status character-info-record-status--alert">Not insured</strong>
<</if>>
</div>
</div>
</section>
</div>
<div class="character-info-return">
<<link "Return">><<goto $return>><</link>>
</div>
</div>
<</nobr>><<nobr>>
<<set _dominanceValue to Math.max(-100, Math.min(100, Number($dominance) || 0))>>
<<set _corruptionValue to Math.max(-100, Math.min(100, Number($corruption) || 0))>>
<div class="character-stats">
<h2>Character Stats</h2>
<section class="character-stats-trait character-trait-panel">
<div class="character-stats-trait-header">
<h3>Disposition</h3>
<strong><<print _dominanceValue>></strong>
</div>
<div class="character-trait-labels">
<span>Submissive</span>
<span>Dominant</span>
</div>
<div class="character-stats-scale">
<span>−100</span>
<div class="character-trait-bar" role="progressbar" aria-label="Disposition" aria-valuemin="-100" aria-valuemax="100" @aria-valuenow="_dominanceValue">
<span class="character-trait-half character-trait-half--submissive">
<span class="character-trait-fill character-trait-fill--submissive" @style="'width: ' + Math.max(0, -_dominanceValue) + '%'"></span>
</span>
<span class="character-trait-half character-trait-half--dominant">
<span class="character-trait-fill character-trait-fill--dominant" @style="'width: ' + Math.max(0, _dominanceValue) + '%'"></span>
</span>
<span class="character-trait-centre"></span>
</div>
<span>100</span>
</div>
</section>
<section class="character-stats-trait character-trait-panel character-trait-panel--corruption">
<div class="character-stats-trait-header">
<h3>Corruption</h3>
<strong><<print _corruptionValue>></strong>
</div>
<div class="character-trait-labels">
<span>Wicked</span>
<span>Pure</span>
</div>
<div class="character-stats-scale">
<span>−100</span>
<div class="character-trait-bar" role="progressbar" aria-label="Corruption" aria-valuemin="-100" aria-valuemax="100" @aria-valuenow="_corruptionValue">
<span class="character-trait-half character-trait-half--submissive">
<span class="character-trait-fill character-trait-fill--wicked" @style="'width: ' + Math.max(0, -_corruptionValue) + '%'"></span>
</span>
<span class="character-trait-half character-trait-half--dominant">
<span class="character-trait-fill character-trait-fill--pure" @style="'width: ' + Math.max(0, _corruptionValue) + '%'"></span>
</span>
<span class="character-trait-centre"></span>
</div>
<span>100</span>
</div>
</section>
<<for _stat range setup.characterStatDefinitions>>
<<set _statValue to setup.normalizeCharacterStat(State.variables[_stat.key], _stat.start)>>
<section @class="'character-stats-trait character-physical-stat character-physical-stat--' + _stat.key">
<div class="character-stats-trait-header">
<h3><<print _stat.label>></h3>
<strong><<print _statValue>></strong>
</div>
<div class="character-trait-labels character-physical-stat-labels">
<span><<print _stat.minimumLabel>></span>
<span><<print _stat.maximumLabel>></span>
</div>
<div class="character-stats-scale">
<span>−20</span>
<div class="character-physical-stat-bar" role="progressbar" @aria-label="_stat.label" aria-valuemin="-20" aria-valuemax="100" @aria-valuenow="_statValue">
<span class="character-physical-stat-fill" @style="'width: ' + setup.getCharacterStatProgress(_statValue, _stat.start) + '%'"></span>
</div>
<span>100</span>
</div>
</section>
<</for>>
<<set _activeRelationship to setup.getActiveRomanceRelationship()>>
<<if _activeRelationship>>
<section @class="'character-stats-trait character-relationship-stat character-relationship-stat--' + _activeRelationship.id">
<div class="character-stats-trait-header">
<h3>Relationship — <<print _activeRelationship.name>></h3>
<strong><<print _activeRelationship.value>></strong>
</div>
<div class="character-trait-labels character-physical-stat-labels">
<span>New acquaintance</span>
<span>Trusted partner</span>
</div>
<div class="character-stats-scale">
<span>0</span>
<div class="character-physical-stat-bar" role="progressbar" @aria-label="'Relationship with ' + _activeRelationship.name" aria-valuemin="0" aria-valuemax="100" @aria-valuenow="_activeRelationship.value">
<span class="character-physical-stat-fill" @style="'width: ' + _activeRelationship.value + '%'"></span>
</div>
<span>100</span>
</div>
</section>
<</if>>
<div class="character-info-return">
<<link "Return">><<goto $return>><</link>>
</div>
</div>
<</nobr>><<set _slumsEncounter to setup.rollSlumsDistrictEncounter()>>
<<if _slumsEncounter>>
<<set $pendingCombatEncounter to _slumsEncounter.enemyName>>
<<set $pendingCombatEncounterFaction to _slumsEncounter.faction>>
<<goto _slumsEncounter.passage>>
<</if>>
<p>Life spills through the lower levels of Suns End beneath a permanent haze of rust, exhaust, and flickering advertisements. The Slums are dangerous, but for now they are home.</p>
<img class="scene-image" src="media/locations/slums/slums.jpg" alt="The Slums district">
[[Market Square]]
[["Vested Interest" Bar]]
[[Hospital]]
[[Gym]]
<<link "Home">><<goto setup.getPlayerHomePassage()>><</link>><h2>Gym</h2>
<img class="scene-image" src="media/locations/gym/gym.jpeg" alt="Slums gym">
<<nobr>>
<<set _gymLockMessage to setup.getGymWorkoutLockMessage()>>
<<if _gymLockMessage>>
<span class="passage-link-disabled passage-link-disabled--tooltip" aria-disabled="true" tabindex="0" @data-tooltip="_gymLockMessage">Work out</span>
<<else>>
<<link "Work out">>
<<set _gymPreparation to setup.prepareGymWorkout()>>
<<if _gymPreparation.ok>><<goto "Gym Training">><</if>>
<</link>>
<</if>><br>
<<if setup.ensureMelisaState().met && !setup.canTrainBoxingWithMelisa() && !$melisa.leftGym>>
[[Talk to Melisa about boxing->Melisa Boxing Offer]]<br>
<</if>>
<<if $melisa.datePending && !$melisa.firstDateCompleted>>
<<link "Go on your date with Melisa">><<set $melisa.datePending to false>><<goto "Melisa First Date">><</link>><br>
<</if>>
<<if $melisa.secondDatePending && !$melisa.secondDateCompleted>>
<<link "Go on your second date with Melisa">><<set $melisa.secondDatePending to false>><<goto "Melisa Second Date">><</link>><br>
<</if>>
<<link "Shower">><<set _gymShower to setup.prepareGymShower()>><<goto _gymShower.destination>><</link>><br>
[[Outside->Slums]]
<</nobr>><h2>Work out</h2>
<<gymMedia $gymSession.preparedMedia>>
<p>You change into suitable athletic clothes and prepare for the session. What do you want to train?</p>
<<nobr>>
<div class="gym-category-grid">
<<for _gymCategory range setup.gymTrainingCategories>>
<<set _gymTrainingCategoryId to _gymCategory.id>>
<<set _gymTrainingCategoryLabel to _gymCategory.label>>
<<capture _gymTrainingCategoryId _gymTrainingCategoryLabel>>
<<button _gymTrainingCategoryLabel>>
<<replace "#gym-exercise-selection">><<gymExerciseMenu _gymTrainingCategoryId>><</replace>>
<</button>>
<</capture>>
<</for>>
<<if setup.canTrainBoxingWithMelisa()>>
<<button "Boxing with Melisa">>
<<if $melisa.departureNotePending>>
<<goto "Melisa Departure Note">>
<<else>>
<<set _gymResult to setup.completeMelisaBoxingWorkout()>>
<<if _gymResult.ok>><<goto "Gym Workout Result">><</if>>
<</if>>
<</button>>
<</if>>
<<if setup.canTrainWithBradford()>>
<<button "Train with Bradford">>
<<set _bradfordWorkoutResult to setup.completeBradfordWorkout()>>
<<if _bradfordWorkoutResult.ok>><<goto _bradfordWorkoutResult.destination>><</if>>
<</button>>
<</if>>
</div>
<div id="gym-exercise-selection" class="gym-exercise-selection">
<p>Select a training category.</p>
</div>
[[Cancel workout->Gym]]
<</nobr>><<nobr>>
<<set _gymExercise to setup.getGymExerciseDefinition($gymSession.exerciseId)>>
<h2><<print $gymSession.isMelisaBoxing ? "Boxing with Melisa" : (_gymExercise ? _gymExercise.label : "Workout")>></h2>
<<gymMedia $gymSession.resultMedia>>
<p>You push through the session and finish tired, but satisfied.</p>
<<if $gymSession.gain > 0>>
<p class="gym-stat-gain"><strong><<print setup.getGymStatLabel($gymSession.stat)>> +1</strong></p>
<<else>>
<p class="gym-stat-gain"><strong><<print setup.getGymStatLabel($gymSession.stat)>> is already at its maximum.</strong></p>
<</if>>
<<if $gymSession.isMelisaBoxing>>
<<if $gymSession.relationshipGain > 0>>
<p class="gym-relationship-gain"><strong>Relationship with Melisa +<<print $gymSession.relationshipGain>></strong></p>
<<else>>
<p class="gym-relationship-gain"><strong>Your relationship with Melisa is awaiting a new development.</strong></p>
<</if>>
<</if>>
<<if $gymSession.ambienceMedia>>
<p>While catching your breath, your attention briefly wanders across the gym.</p>
<<gymMedia $gymSession.ambienceMedia>>
<</if>>
<<link "Finish">><<set _gymDestination to setup.finishGymWorkout()>><<goto _gymDestination>><</link>>
<</nobr>><<nobr>>
<h2>Gym Shower</h2>
<p>You step beneath the water and wash away the sweat and grime of the workout room.</p>
<<gymMedia $gymSession.showerMedia>>
[[Return->Gym]]
<</nobr>><<nobr>>
<h2>An occupied shower</h2>
<<gymMedia $gymSession.showerMedia>>
<p>You step into the shower area and find a man already washing beneath the running water. He notices you lingering by the entrance and makes no effort to cover himself.</p>
<<if $corruption <= 39>>
<<link "Help him out">><<run setup.prepareGymShowerSex()>><<goto "Gym Shower Encounter Sex">><</link>><br>
<</if>>
[[Back out->Gym]]
<</nobr>><<nobr>>
<h2>Helping him out</h2>
<<gymMedia $gymSession.showerSexMedia>>
<p>You remain in the shower and give the stranger the attention he was hoping for.</p>
<<link "Finish">><<run setup.adjustCorruption(-2)>><<goto "Gym">><</link>>
<</nobr>><<nobr>>
<h2>Melisa</h2>
<img class="scene-image" src="media/locations/gym/buddy/melisa.jpg" alt="Melisa at the boxing ring">
<p>As you finish, a self-assured black woman by the boxing ring studies you with an appraising look. You recognize her from Vested Interest—one of Bradford's veteran mercenaries, usually returning from contracts while the newer hires are still preparing for theirs.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>You're Bradford's new mercenary, aren't you? I'm Melisa. I've survived this work longer than most people last in the district. You have some strength, but strength without discipline will get you hurt. I don't enjoy watching women walk into danger unprepared, so come train boxing with me.<</say>>
<div id="melisa-boxing-offer">
<<link "Agree">>
<<run setup.acceptMelisaBoxingOffer()>>
<<replace "#melisa-boxing-offer">>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>All right. Bradford didn't exactly give me combat lessons with the job. I could learn from someone who's survived this work.<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Good answer. Listen to me, put in the work, and I'll teach you what kept me alive when I was the new girl. Next time you work out, find me by the ring.<</say>>
<p><strong>Boxing with Melisa is now available when working out.</strong></p>
[[Continue->Gym]]
<</replace>>
<</link>><br>
<<link "Decline">>
<<run setup.declineMelisaBoxingOffer()>>
<<replace "#melisa-boxing-offer">>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Not right now. I prefer training on my own.<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Your choice. I won't drag you into the ring, but Bradford's contracts punish inexperience. When you decide you deserve better odds, you know where to find me.<</say>>
[[Continue->Gym]]
<</replace>>
<</link>><br>
<<link "You spot Bradford...">><<run setup.lockMelisaRouteForBradford()>><<goto "Bradford Gym Encounter">><</link>>
</div>
<</nobr>><<nobr>>
<h2>Bradford</h2>
<img class="scene-image" src="media/locations/gym/bradford/bradfordencounter.png" alt="Bradford exercising at the gym">
<p>You leave the boxing ring behind and approach Bradford between exercises.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Fancy meeting you here.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Hey, $mcname. Came by to get some fuel into those muscles of yours?<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>You don't need to compliment me that badly.<</say>>
<p>You chuckle and glance down at your still-poor build.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>But if you're that eager to see me improve, I'm looking for a gym buddy.<</say>>
<p>Bradford considers the suggestion for a moment, studying you with the same measured look he uses when weighing a contract.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>All right. I only need the best mercenaries working for me. If training with you helps get you there, I'm in.<</say>>
[[Return->Gym]]
<</nobr>><<nobr>>
<h2>Training with Bradford</h2>
<<gymMedia $gymSession.resultMedia>>
<<if $gymSession.resultMedia && $gymSession.resultMedia.name is "nakedexe1">>
<p>Since becoming intimate with Bradford, you have started arriving for these private workouts in increasingly less clothing. Today, your bottoms leave almost nothing hidden when you bend over the equipment, and you make no real effort to protect Bradford from the view.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>You know exactly what you're doing dressed like that. Keep your hips steady and finish the set.<</say>>
<<say $mcname setup.getMcPortrait() "jane">>Ngh... then keep your eyes on my form and count.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>My eyes are precisely where they need to be. One more.<</say>>
<<elseif $gymSession.resultMedia && $gymSession.resultMedia.name is "nakedexe2">>
<p>Your idea of suitable workout clothing has become considerably more daring around Bradford. This time you train without panties, leaving your bare ass completely exposed whenever the exercise pushes your shirt upward.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>No panties today. Bold choice. Don't let the distraction ruin your technique.<</say>>
<<say $mcname setup.getMcPortrait() "jane">>Hah... whose distraction are we talking about?<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Finish the repetition, and perhaps I'll answer.<</say>>
<<elseif $gymSession.resultMedia && $gymSession.resultMedia.name is "nakedexe3">>
<p>You chose another loose top for the workout. During the exercise it shifts aside, letting one breast poke out. The first slip might have been accidental; the way you continue without fixing it is much harder to explain.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Your breast is out again, $mcname.<</say>>
<<say $mcname setup.getMcPortrait() "jane">>Is it distracting you from counting?<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Not enough to let you escape the last set. Lift.<</say>>
<<else>>
<p>Bradford keeps you moving through a punishing strength routine, allowing only enough rest to reset your stance before the next repetition.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Come on, $mcname. One more. You've got more in you than that—show me.<</say>>
<<say $mcname setup.getMcPortrait() "jane">>Ngh... I'm not stopping. Just keep counting.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>That's it. Keep your form tight. Every hard rep here is one less mistake on a contract.<</say>>
<<say $mcname setup.getMcPortrait() "jane">>Hah... I've got this. Keep going.<</say>>
<</if>>
<<if $gymSession.gain > 0>>
<p class="gym-stat-gain"><strong>Strength +1</strong></p>
<<else>>
<p class="gym-stat-gain"><strong>Strength is already at its maximum.</strong></p>
<</if>>
<<if $gymSession.relationshipGain > 0>>
<p class="gym-relationship-gain"><strong>Relationship with Bradford +<<print $gymSession.relationshipGain>></strong></p>
<<else>>
<p class="gym-relationship-gain"><strong>Your relationship with Bradford is awaiting a new development.</strong></p>
<</if>>
<<link "Finish">><<set _bradfordDestination to setup.finishBradfordWorkout()>><<goto _bradfordDestination>><</link>>
<</nobr>><<nobr>>
<<set _bradfordMilestone to setup.resolveBradfordRelationshipMilestone(20)>>
<h2>Caught off guard</h2>
<img class="scene-image" src="media/locations/gym/bradford/exposing.webp" alt="A prankster exposing the main character during her workout">
<p>You bend over the machine and focus on forcing out another repetition with your back turned to the room. A girl who noticed Bradford training with you suddenly rushes over, grabs the waistband of your pants, and yanks them down before you can react. Your panties—and nearly your entire ass—are left exposed to the gym, especially Bradford.</p>
<p>The girl darts away laughing before either of you can catch her. You hurriedly pull your pants back into place. Part of you recognizes the prank as almost funny, but the thought that Bradford just saw you so exposed sends heat into your cheeks.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>Great... Bradford probably got a perfect view of my almost-naked ass.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Cover up, $mcname. And don't mind the idiots in this gym. They have too much time and not enough sense.<</say>>
<<if _bradfordMilestone.ok>>
<p class="gym-relationship-gain"><strong>Your relationship with Bradford can now progress beyond 20.</strong></p>
<</if>>
[[Return->Gym]]
<</nobr>><<nobr>>
<<set _bradfordMilestone to setup.resolveBradfordPrivateGymEvent()>>
<h2>Behind a locked door</h2>
<p>After the workout, Bradford approaches while you are catching your breath and gestures toward a quieter corridor at the back of the gym.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Follow me, $mcname. There's something I want to show you.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>All right. Lead the way.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>Maybe it's a new technique. Or some new equipment. Or maybe he wants to put those veiny hands all over my body—no. No, that can't be it. Focus, $mcname.<</say>>
<p>Bradford takes out a key, unlocks an unmarked door, and holds it open for you.</p>
<img class="scene-image" src="media/locations/gym/bradford/privategym.jpg" alt="Bradford's private gym room">
<p>Beyond it is a smaller training room filled with well-maintained equipment, but not another person in sight.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>This is my private gym room. I train here when I don't want anyone bothering me. We can work out here together from now on, and the idiots outside can stop interfering with you.<</say>>
<p>The offer catches you off guard. Bradford is giving up his private refuge for you, and the thought brings an unmistakable warmth to your cheeks. When you look at him, however, his expression is completely sincere. He really means exactly what he said. There cannot be another reason for it... right?</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>That's... surprisingly thoughtful of you. Thank you, Bradford.<</say>>
<<if _bradfordMilestone.ok>>
<p class="gym-relationship-gain"><strong>Your relationship with Bradford can now progress beyond 30.</strong></p>
<</if>>
[[Return->Gym]]
<</nobr>><<nobr>>
<<set _bradfordMilestone to setup.resolveBradfordNipslipEvent()>>
<h2>An unnoticed slip</h2>
<p>Inside the private room, you sit against the backrest with a weight in each hand. You drive both weights above your head, lower them under control, and repeat while Bradford works a machine directly in front of you.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Good. Keep pushing, $mcname. Control them on the way down, then drive them straight back up.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Ngh... one more set. I can do this.<</say>>
<img class="scene-image" src="media/locations/gym/bradford/nakedexe3.webp" alt="The main character accidentally exposing her breast during training">
<p>During the next set, your loose shirt folds aside. One bare breast slips into view, but your attention remains fixed on the weights and the burning strain in your shoulders.</p>
<p>Bradford notices. His own exercise slows as his eyes settle on the accidental exposure. He says nothing, allowing himself a long look before returning to his machine as though nothing happened.</p>
<p>Only after finishing the set do you glance down, notice the displaced fabric, and hurriedly fix your shirt. Bradford is already training normally. You have no idea how long you were exposed in front of your boss—or whether he noticed at all.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>Please tell me he didn't see that. Maybe he was too focused on his own training... please.<</say>>
<<if $gymSession.gain > 0>>
<p class="gym-stat-gain"><strong>Strength +1</strong></p>
<<else>>
<p class="gym-stat-gain"><strong>Strength is already at its maximum.</strong></p>
<</if>>
<<if _bradfordMilestone.ok>>
<p class="gym-relationship-gain"><strong>Your relationship with Bradford can now progress beyond 40.</strong></p>
<</if>>
[[Finish->Gym]]
<</nobr>><<nobr>>
<h2>An invitation</h2>
<p>After the training session, Bradford waits until you have caught your breath before approaching.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>You worked hard today. Come have a drink with me at the Bar. We can talk somewhere that doesn't smell like rubber mats and sweat.<</say>>
<div id="bradford-drinks-offer">
<<link "Agree">><<run setup.acceptBradfordDrinksOffer()>><<goto "Drinks with Bradford">><</link>><br>
<<link "Refuse for now">>
<<run setup.postponeBradfordDrinksOffer()>>
<<replace "#bradford-drinks-offer">>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Not tonight. Could we do it another time?<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Another time, then. The offer stands.<</say>>
[[Return->Gym]]
<</replace>>
<</link>>
</div>
<</nobr>><<nobr>>
<h2>Drinks with Bradford</h2>
<img class="scene-image" src="media/locations/vestedinterest/drinks/sitattable.jpg" alt="Drinks at a table in Vested Interest">
<p>You return to Vested Interest together and settle at a quieter table. Bradford orders several drinks for both of you before leaning back in his chair.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>You know plenty about how I ended up here, but I barely know anything about you. Were you always a handler?<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>No. I used to take the contracts myself. I was good at it, too—good enough to think I could keep doing it forever.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>What changed?<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>A contract went bad. I finished it, but my shoulder took enough damage to end my career. It works for ordinary life. It doesn't hold up when a fight turns ugly.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I'm sorry. That must have been hard to accept.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>It was. Eventually I realized I could keep mercenaries alive by handling their work properly. Vested Interest gave me somewhere to do that.<</say>>
[[Keep drinking->Drinks with Bradford Late]]
<</nobr>><<nobr>>
<h2>Later that night</h2>
<img class="scene-image" src="media/locations/vestedinterest/drinks/sitattable.jpg" alt="A late night of drinking with Bradford">
<p>One story becomes another and the empty glasses multiply. Bradford's usual reserve gradually loosens, while your own words become warmer, louder, and far less coordinated.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>You have real potential, $mcname. More than you understand yet. That's why I push you—I want to see what you become when you stop doubting yourself.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>You really think that? Because you're... you're much nicer when there's this many Bradfords in front of me.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>There's only one of me. Drink some water.<</say>>
<p>You attempt to answer, but fatigue and alcohol win first. Your head sinks onto your folded arms, and the Bar disappears around you.</p>
[[Close your eyes->Bradford Apartment Morning]]
<</nobr>><<nobr>>
<<run setup.advanceBradfordDrinksMorning()>>
<h2>An unfamiliar morning</h2>
<img class="scene-image" src="media/locations/melisasapartment/bedroom/bedroom.jpg" alt="The unfamiliar bedroom in Bradford's apartment">
<p>You wake beneath unfamiliar sheets in a bedroom you do not recognize. Your head pounds, your mouth is dry, and several uneasy seconds pass before the night begins returning in scattered fragments.</p>
<p>The door opens after a while. Bradford steps inside, notices that you are awake, and stops at a respectful distance.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Bradford...? What happened? Where am I?<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>My apartment. You passed out at the table. I didn't know where you lived, so I brought you here for the night.<</say>>
<p>You look around again—and then down at yourself. You are wearing nothing but your underwear. Your thoughts race through the blank spaces in your memory.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>Why am I almost naked? Did we... did something happen? I don't remember anything.<</say>>
[[Ask him->Bradford Apartment Explanation]]
<</nobr>><<nobr>>
<h2>The explanation</h2>
<img class="scene-image" src="media/locations/melisasapartment/bedroom/bedroom.jpg" alt="Bradford's bedroom">
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Before your imagination runs away with you: nothing happened. I put you in bed and was going to sleep on the sofa. You woke up, shouted that it was “too hot in this shithole,” stripped down to your underwear, and tried to throw your clothes at a lamp.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>I calmed you down, made sure you were asleep, and left. That's all.<</say>>
<p>Heat floods your entire face. You drag the sheets up to cover yourself and struggle to make your voice work.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I-I did what? Oh, Protectorate... Bradford, I am so sorry. And... thank you. For taking care of me.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>No thanks needed. Take your time and get dressed. I'll give you some privacy.<</say>>
<p>He leaves and closes the bedroom door behind him, giving you time to recover what remains of your dignity.</p>
[[Get dressed->Bradford Apartment Departure]]
<</nobr>><<nobr>>
<<set _bradfordMilestone to setup.completeBradfordDrinksEvent()>>
<h2>A quick departure</h2>
<img class="scene-image" src="media/locations/melisasapartment/apartment.jpg" alt="The living area in Bradford's apartment">
<p>Once dressed, you step out of the bedroom. Bradford is waiting in the living area, already looking composed despite the previous night's drinking.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>I can make breakfast before you go. You should eat something after last night.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Thank you, but I should go. I think I've embarrassed myself enough for one morning.<</say>>
<p>You make a hurried exit and head back into the Slums, still unable to stop your cheeks from burning whenever you remember Bradford's story.</p>
<<if _bradfordMilestone.ok>>
<p class="gym-relationship-gain"><strong>Your relationship with Bradford can now progress beyond 50.</strong></p>
<</if>>
[[Leave->Slums]]
<</nobr>><<nobr>>
<h2>The walk home</h2>
<p>After training, you and Bradford emerge from the gym's separate locker rooms at almost the same time. With no plans waiting for you, you fall into step beside him.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Mind if I tag along on your walk home? I don't have anything else to do.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>I don't mind. Come on.<</say>>
<p>You leave the gym together and walk through the Slums. For a while, the conversation is easy—until Bradford glances at you with restrained amusement.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>You talk to me more easily now. Does that mean you're finally over being embarrassed about that night?<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Don't remind me! That night was awful.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>It wasn't that awful. I got to wrestle a drunk, half-naked girl into bed. At least top ten among the more entertaining things I've done.<</say>>
<p>Your face burns. Laughing despite yourself, you give him a playful hit on the shoulder and tell him to stop. By miserable chance, your hand lands directly over his old injury. Bradford winces before forcing his expression back under control.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Bradford! I'm sorry—I wasn't thinking. Did I hurt you? Let me help.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>It's all right. You caught the old injury, that's all. My apartment is just around the corner.<</say>>
<p>Feeling responsible, you refuse to leave him to manage it alone and insist on accompanying him inside.</p>
[[Help him home->Bradford Shoulder Massage]]
<</nobr>><<nobr>>
<h2>A sore shoulder</h2>
<img class="scene-image" src="media/locations/melisasapartment/apartment.jpg" alt="Bradford's apartment">
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Take off your shirt and lie face-down on the sofa.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>You don't need to do this. The pain will pass.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I caused it, so I'm helping. Shirt off. Sofa. Now.<</say>>
<p>Bradford recognizes that you will not relent. He removes his shirt and lies face-down. To his surprise, you straddle his back and carefully press your fingers into the hard muscles around his injured shoulder.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>What are you doing?<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>What do you think? I'm trying to relax these shoulder muscles.<</say>>
<p>He exhales and finally lets himself settle beneath you. As you continue working the tension from his shoulder, his initial resistance fades.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Is this actually helping?<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Yes... keep going.<</say>>
<p>The low approval in his voice makes your hands pause. A warm tingle travels through your body, and an embarrassing dampness gathers between your legs. You swallow, pretend nothing happened, and awkwardly resume the massage.</p>
<p>After a while, you climb off his back and kneel beside the sofa, giving him one final reassuring pat.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Better?<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Much better. You were right to insist.<</say>>
[[Let him stand->Bradford Accidental Reveal]]
<</nobr>><<nobr>>
<h2>An accidental view</h2>
<p>Bradford rises from the sofa. His trousers must have shifted downward while he lay beneath you, because from where you are kneeling, you suddenly find yourself face-to-face with his massive penis, nearly fully revealed.</p>
<img class="scene-image" src="media/characters/bradford/cockreveal.webp" alt="Bradford accidentally revealing himself">
<p>You spring upright so quickly that you almost stumble over the sofa.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I-I just remembered something! Something important. I have to go. Right now.<</say>>
<p>Before Bradford can answer, you sprint from his apartment and hurry all the way home.</p>
[[Run home->Bradford Fantasy]]
<</nobr>><<nobr>>
<h2>An awakened curiosity</h2>
<p>You bury yourself in the old sofa, mortified by what happened. Yet as your breathing settles, embarrassment slowly gives way to arousal. You have always thought Bradford handsome, but seeing him from so close has awakened thoughts you can no longer push aside.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>It was so big... What would he do to me with that? What would he taste like?<</say>>
<p>Your hand slips between your legs. You surrender to the fantasy, imagining Bradford's powerful body and the hidden intensity beneath his collected manner.</p>
<video src="media/myroom/exercise/masturbate1.mp4" autoplay loop muted controls></video>
<p>A heavy orgasm finally breaks the tension. When your breathing steadies, you gather yourself and retreat to your room—though the memory follows you there.</p>
<<set _bradfordMilestone to setup.completeBradfordShoulderEvent()>>
<<if _bradfordMilestone.ok>>
<p class="gym-relationship-gain"><strong>Your relationship with Bradford can now progress beyond 60.</strong></p>
<</if>>
[[Return to your room->My room]]
<</nobr>><<nobr>>
<h2>Something to discuss</h2>
<p>After training, Bradford waits until the two of you have caught your breath. His expression is unusually careful when he approaches you.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Do you remember what happened the other day? Can we talk about it?<</say>>
<p>You wince. The image of his massive penis immediately fills your thoughts—followed by the vivid memory of what you did alone in your room afterward.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Y-yes, we can talk. I just don't know what there is to talk about.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>You helped me when my shoulder was hurting. I'd like to return the kindness. I made some food at home. Come eat with me.<</say>>
<p>The simple care behind the invitation leaves you momentarily stunned. Bradford prepared something for you—not as your boss or handler, but because he wanted to.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I'd like that. Yes.<</say>>
[[Go with Bradford->Bradford Burned Cake]]
<</nobr>><<nobr>>
<h2>A smoky welcome</h2>
<img class="scene-image" src="media/locations/melisasapartment/apartment.jpg" alt="Bradford's apartment">
<p>You enter Bradford's apartment together and are greeted by the unmistakable smell of something burning.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Fuck! Fuck! FUCK!<</say>>
<p>Bradford bolts into the kitchen. You hurry after him and find him pulling a tray from the oven. Whatever he had attempted to bake is now blackened beyond recognition.</p>
<img class="scene-image" src="media/locations/melisasapartment/kitchen/kitchen.webp" alt="Bradford's kitchen">
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>I'm sorry. I've never baked anything before. This was supposed to be a thank-you cake.<</say>>
<p>The ruined cake hardly matters. The thought of this collected, capable man attempting something completely unfamiliar simply to thank you melts your heart.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Don't worry about it. Throw that away and let me cook something for both of us.<</say>>
[[Save dinner->Dinner with Bradford]]
<</nobr>><<nobr>>
<h2>Dinner together</h2>
<img class="scene-image" src="media/locations/melisasapartment/kitchen/kitchen.webp" alt="Cooking dinner in Bradford's kitchen">
<p>Bradford consigns the burned cake to the trash and takes a seat at the kitchen table. He watches as you gather what survived his culinary experiment and turn it into a proper dinner.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Whatever you're doing smells better than my attempt already.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>That isn't a difficult standard to beat. Your cake could qualify as armor.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Then perhaps I should sell it at the Gear Stall.<</say>>
<p>The meal turns out well. Bradford eats with sincere appreciation and praises your cooking without reservation.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>That was excellent. Go relax in the living room. You cooked, so I'll wash the dishes.<</say>>
[[Relax in the living room->Bradford Evening]]
<</nobr>><<nobr>>
<h2>Closer</h2>
<img class="scene-image" src="media/locations/melisasapartment/apartment.jpg" alt="Bradford's living room">
<p>You settle onto the sofa. Bradford joins you after washing the dishes, switches on the television, and sits close beside you. Somewhere during the program, without consciously deciding to, you snuggle nearer and rest your head against his chest.</p>
<p>Bradford extends an arm around your back and draws you comfortably against his large frame. You remain like that for a while, warm and content, until you notice the fabric of his trousers beginning to lift.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>Is he really getting hard just because I'm this close? What do I do? Ask him? No, that's too strange. Touch it? No... no, I couldn't.<</say>>
<p>Your indecision makes you shift restlessly in his embrace. Bradford notices and finally looks down at you.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>It doesn't bite. But be careful about what you decide to do now.<</say>>
<p>He knows that you noticed. There is no graceful way to retreat from the moment, and the only decision that makes any sense inside your racing mind is to reach out and touch him.</p>
<<link "Touch him">>
<<set _bradfordSexStart to setup.startBradfordSex()>>
<<goto _bradfordSexStart.destination>>
<</link>>
<</nobr>><div id="arthur-sex-ui">
<<arthurSexUI>>
</div><<nobr>>
<<set _bradfordMilestone to setup.completeBradfordIntimacyEvent()>>
<h2>Afterward</h2>
<img class="scene-image" src="media/locations/melisasapartment/apartment.jpg" alt="Bradford's living room after their intimacy">
<p>The fierce, commanding man who took control only moments ago disappears as soon as the intensity passes. Bradford gathers you carefully against his chest, checks that you are comfortable, and holds you beneath the steady warmth of his arms.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Easy. Breathe with me. Did I hurt you anywhere?<</say>>
<p>You are still panting, your body trembling faintly against him. Bradford studies your shaken expression, and concern quickly replaces the last traces of his earlier intensity.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>I'm sorry, $mcname. I like sex rough, and I let myself get carried away. That may have been more than you were ready to bear.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>It was a surprise. A very big one. I'm sore, and I might need a moment before my legs remember how to work... but some of it felt good. Really good.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>If this means we keep seeing each other, I can adjust. Just give me a chance to learn what to expect from you.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>We will keep seeing each other. But you don't have to endure anything for that. Next time, you tell me what you can take. If anything is too much, I stop. No argument.<</say>>
<p>He brings you water, helps you clean up, and returns to the sofa to cradle you against him until your trembling finally subsides. His touch is patient and soothing—the caring bear you knew before, as if the beast from moments ago had never existed.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Thank you for the meal. Well... both meals.<</say>>
<p>You give him a playful wink as you gather your things.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I should head home. I'll see you at the gym.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>You will—and I'm walking you home. I'm not sending you through the Slums alone this late, especially when your legs are still unsteady.<</say>>
<p>Bradford accompanies you through the district, keeping you close to his side as the two of you cross the dim streets. The walk is quiet and comfortable, his steady presence making the Slums feel less threatening than usual.</p>
<p>When you reach the battered building you call home, Bradford stops outside rather than following you in.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Here we are. Get inside, drink some water, and rest. I'll see you at the gym.<</say>>
<p>You thank him, but neither of you moves immediately. Before embarrassment can catch up with the impulse, you rise onto your toes, catch Bradford by the shirt, and kiss him.</p>
<p>For one startled heartbeat, the normally unshakable man stands completely still. Then one of his hands settles gently at your waist and he returns the kiss, warm and careful—a striking contrast to the ferocity he showed earlier.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>That was for walking me home. Goodnight, Bradford.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Goodnight, $mcname. I think I could get used to walking you home.<</say>>
<p>He waits until you reach the entrance, then gives you a final nod and turns toward his own apartment.</p>
<<if _bradfordMilestone.ok>>
<p class="gym-relationship-gain"><strong>Your relationship with Bradford can now progress beyond 70.</strong></p>
<</if>>
[[Go inside->Slums Home]]
<</nobr>><<nobr>>
<h2>An invitation after training</h2>
<p>After the workout, Bradford catches up with you near the gym exit. He has already recovered his usual composure, though the faint warmth in his expression is meant only for you.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Do you want to drop by my apartment after this? We could eat, put our feet up, and spend some time without gym equipment between us.<</say>>
<div id="bradford-apartment-invitation">
<<link "Go with Bradford">>
<<run setup.acceptBradfordApartmentOffer()>>
<<goto "Bradford Apartment Evening Meal">>
<</link>><br>
<<link "Not today">>
<<run setup.postponeBradfordApartmentOffer()>>
<<replace "#bradford-apartment-invitation">>
<<say $mcname setup.getMcPortrait() "jane">>I'd like to, but not today. Can we leave it for another time?<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Of course. The invitation remains open.<</say>>
[[Return->Gym]]
<</replace>>
<</link>>
</div>
<</nobr>><<nobr>>
<h2>A quiet evening</h2>
<img class="scene-image" src="media/locations/melisasapartment/kitchen/kitchen.webp" alt="Bradford's kitchen">
<p>You return to Bradford's apartment together. This time, he wisely gives you command of the kitchen. You prepare something quick from what he has available while he sets the table and follows your instructions with unusual discipline.</p>
<<say $mcname setup.getMcPortrait() "jane">>Nothing elaborate tonight. I refuse to rescue another cake from you.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>A sensible precaution. It already smells better than anything I would have attempted.<</say>>
<p>The simple meal disappears quickly. Once the dishes are cleared, you settle together on the living-room sofa.</p>
[[Relax with Bradford->Bradford Second Round]]
<</nobr>><<nobr>>
<h2>Long postponed</h2>
<img class="scene-image" src="media/locations/melisasapartment/apartment.jpg" alt="Bradford's living room">
<p>For a while, the two of you sit in easy silence. Bradford's arm rests behind you along the sofa, and your body gradually settles against his side as if it belongs there.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Are you interested in that long-postponed second round?<</say>>
<p>You look up at him, laugh, and feel anticipation spread warmly through you.</p>
<<say $mcname setup.getMcPortrait() "jane">>I was beginning to wonder whether you would ever ask.<</say>>
<<link "Stay with Bradford">>
<<set _bradfordSexStart to setup.startBradfordRepeatSex()>>
<<goto _bradfordSexStart.destination>>
<</link>>
<</nobr>><<nobr>>
<h2>A place beside him</h2>
<img class="scene-image" src="media/locations/melisasapartment/apartment.jpg" alt="Bradford caring for the main character in his living room">
<p>When the intensity passes, Bradford's roughness vanishes with it. He gathers you close, brings you water, and patiently helps you recover until your breathing steadies.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Easy. Take your time. I'm not letting you stand until those legs stop shaking.<</say>>
<p>You rest against his broad chest while his hand moves slowly over your back. After a long, comfortable silence, he speaks with an awkward casualness that fails to hide how seriously he means the question.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Maybe you should move in with me. I could use someone more intelligent to keep me under control around this apartment.<</say>>
<p>You giggle, but the compliment sends heat into your cheeks. The offer feels natural—safer than Arthur's apartment and closer to the man whose company has become so important to you.</p>
<<say $mcname setup.getMcPortrait() "jane">>Someone clearly has to supervise you. All right, Bradford. I'll move in.<</say>>
<p>Bradford's restrained smile tells you exactly how much your answer means to him.</p>
[[Get dressed and collect your things->Bradford Waits Outside]]
<</nobr>><<nobr>>
<h2>One last visit</h2>
<p>Once you are both dressed, Bradford walks beside you to the battered building where you rent your room. He stops near the entrance and looks up at its stained facade.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>I'll wait here. Pack what matters and come straight back down. If you need me, shout.<</say>>
<<say $mcname setup.getMcPortrait() "jane">>It won't take long. I'll be right back.<</say>>
[[Go inside->Bradford Move Out Packing]]
<</nobr>><<nobr>>
<h2>Packing</h2>
<img class="scene-image" src="media/myroom/myroom.jpg" alt="The main character packing her belongings">
<p>You enter your cramped room and begin packing quickly. Each possession placed into your luggage makes the walls feel a little less like a prison. You are nearly finished when Arthur appears in the doorway.</p>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>What do you think you're doing?<</say>>
<<say $mcname setup.getMcPortrait() "jane">>I'm moving out. I've packed my things, and I'm leaving.<</say>>
<p>Arthur's face twists as he realizes that your departure means losing both your rent and the control he has enjoyed over you.</p>
[[Finish packing->Arthur Attacks During Move Out]]
<</nobr>><<nobr>>
<h2>Arthur's last mistake</h2>
<img class="scene-image" src="media/characters/bradford/arthurattack.webp" alt="Arthur attacking the main character as she tries to move out">
<p>Arthur blocks the doorway and grabs at your luggage. When you refuse to release it, the argument becomes a struggle. He catches your clothes and tears the fabric in the commotion, exposing part of your body.</p>
<<say $mcname setup.getMcPortrait() "jane">>Let go of me! Bradford! Help!<</say>>
<p>Arthur forces you down and puts his hands on you. Your scream carries through the apartment and out toward the street.</p>
[[Call for Bradford->Bradford Intervenes]]
<</nobr>><<nobr>>
<h2>Blood in the room</h2>
<p>Heavy footsteps thunder through the apartment. Bradford charges into your room and sees Arthur on top of you, still touching you as you struggle beneath him.</p>
<img class="scene-image" src="media/characters/bradford/arthurstab.webp" alt="Bradford stabbing Arthur while rescuing the main character">
<p>Bradford's expression turns cold with lethal fury. He hauls Arthur away, draws his knife, and drives it into the side of Arthur's neck. When he pulls the blade free, blood surges through Arthur's clutching fingers and splashes across you.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>You will never touch her again.<</say>>
<p>Arthur collapses and bleeds out on the floor. Shock overwhelms you; the room tilts, Bradford's voice becomes distant, and darkness closes over your vision.</p>
[[Lose consciousness->Bradford Carries You Home]]
<</nobr>><<nobr>>
<h2>Carried to safety</h2>
<p>Bradford checks that you are breathing, then lifts your unconscious body over one shoulder despite the pain in his old injury. He takes your luggage in his free hand and leaves Arthur bleeding on the floor behind him.</p>
<p>He carries you and everything you own through the Slums, never slowing until the door of his apartment closes safely behind you.</p>
[[Continue->Bradford Cares for You]]
<</nobr>><<nobr>>
<h2>Safe in Bradford's care</h2>
<img class="scene-image" src="media/locations/melisasapartment/bedroom/bedroom.jpg" alt="Bradford's bedroom">
<p>Bradford puts your luggage aside and focuses entirely on you. He removes your torn, bloodstained clothes, places them in the laundry basket, and cleans every trace of blood from your skin with a damp towel.</p>
<p>He finds fresh clothes of his own, carefully dresses you in them, and lays you beneath the covers. Only when he is certain that you are resting comfortably does he leave the bedroom to keep watch nearby.</p>
[[Rest->Bradford New Home Awakening]]
<</nobr>><<nobr>>
<h2>Your new home</h2>
<img class="scene-image" src="media/locations/melisasapartment/apartment.jpg" alt="Bradford's living room">
<p>Several hours later, you wake in an unfamiliar bed wearing clothes far too large for you. Confused, you make your way into the living room and find Bradford waiting there.</p>
<p>The memories return all at once. Bradford rises immediately and approaches slowly, giving you time to recognize him before he reaches for you.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>You're safe now. This is your home too, and nobody will hurt you here. Not while I'm alive.<</say>>
<p>Your eyes fill with tears. You step into his arms and cling to him, the last of your fear breaking loose against his chest.</p>
<<say $mcname setup.getMcPortrait() "jane">>Thank you... for coming for me, for bringing me here—for everything you've done.<</say>>
<p>Bradford holds you securely and lets you cry until the trembling passes.</p>
[[Stay with Bradford->Bradford Unpacking and Rent]]
<</nobr>><<nobr>>
<<set _bradfordMoveIn to setup.completeBradfordMoveIn()>><<run UIBar.update()>>
<h2>Making room</h2>
<img class="scene-image" src="media/locations/melisasapartment/apartment.jpg" alt="The main character settling into Bradford's apartment">
<p>Several more hours pass. With Bradford's help, you unpack your belongings and find a place for everything. The apartment no longer feels like somewhere you are merely recovering—it begins to feel like your home.</p>
<p>Once the last bag is emptied, a practical concern returns to your mind.</p>
<<say $mcname setup.getMcPortrait() "jane">>Bradford... how much is my part of the rent going to be?<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Nothing. You don't need to pay me anything.<</say>>
<<say $mcname setup.getMcPortrait() "jane">>I'm not going to live here as a burden. I'll pay c200 every week—or I'll cook for you. Every meal takes c50 off what I owe, until the rent is covered.<</say>>
<p>Bradford opens his mouth to argue, but hesitates. He has already experienced your cooking and knows exactly how weak his position is.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>I don't want your credits. But I do love your cooking... Fine. c200 a week, less c50 whenever you cook for us. I reserve the right to complain about this arrangement.<</say>>
<<say $mcname setup.getMcPortrait() "jane">>You can complain while you eat.<</say>>
<<if _bradfordMoveIn.ok>>
<p class="gym-relationship-gain"><strong>Your relationship with Bradford can now progress beyond 80.</strong></p>
<</if>>
[[Settle into your new home->Bradford Apartment Living Room]]
<</nobr>><<nobr>>
<h2>An awkward return</h2>
<<set _melisaMedia to setup.getGymBuddyMediaByName("showerencounter1")>>
<<gymMedia _melisaMedia>>
<p>You return to the bathroom for the hairbrush you forgot and stop short when you find Melisa standing there naked.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Sorry! I just left my hairbrush in here. I didn't mean to walk in on you.<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Relax. You're not bothering me. Take your brush.<</say>>
[[Leave the bathroom->Melisa Shower Glimpse Aftermath]]
<</nobr>><<nobr>>
<<set _melisaMedia to setup.getGymBuddyMediaByName("showerencounter2")>>
<<gymMedia _melisaMedia>>
<p>You leave quickly, clutching the forgotten brush. The image of Melisa follows you well beyond the bathroom door.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>Why did seeing her naked make me this wet...?<</say>>
[[Return->Gym]]
<</nobr>><<nobr>>
<h2>Too close</h2>
<<set _melisaMedia to setup.getGymBuddyMediaByName("gymkiss1")>>
<<gymMedia _melisaMedia>>
<p>You both move at once during a close drill. Instead of slipping past one another, your lips meet.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Melisa—I am so sorry. That was an accident.<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>I know. Stop apologizing—I didn't mind at all.<</say>>
<p>A cheeky smirk plays across her face before she steps back into stance.</p>
[[Return->Gym]]
<</nobr>><<nobr>>
<h2>Another bathroom encounter</h2>
<<set _melisaMedia to setup.getGymBuddyMediaByName("showerencounter1")>>
<<gymMedia _melisaMedia>>
<p>You encounter Melisa in the bathroom again. This time, neither of you looks away.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Get in. We can share the shower and save some time—unless you're suddenly shy around me.<</say>>
<div id="melisa-shower-choice">
<<link "Agree">><<run setup.resolveMelisaShowerOffer(true)>><<goto "Melisa Shared Shower">><</link>><br>
<<link "Disagree">>
<<run setup.resolveMelisaShowerOffer(false)>>
<<replace "#melisa-shower-choice">>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I think I'll wait until you're finished.<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Suit yourself.<</say>>
[[Return->Gym]]
<</replace>>
<</link>>
</div>
<</nobr>><<nobr>>
<h2>Sharing the shower</h2>
<<set _melisaMedia to setup.getGymBuddyMediaByName("shower1")>>
<<gymMedia _melisaMedia>>
<p>You step beneath the water together. Saving time is quickly forgotten as tentative touches become lingering kisses and curious hands explore wet skin.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>I had a feeling you weren't really that shy.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Maybe I just needed the right training partner.<</say>>
[[Finish showering->Gym]]
<</nobr>><<nobr>>
<h2>More than sparring</h2>
<<set _melisaMedia to setup.getGymBuddyMediaByName("gymsex1")>>
<<gymMedia _melisaMedia>>
<p>The sparring session grows heated until neither of you is paying attention to the bell anymore.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>I want you. Come here—I'm not waiting until we're somewhere private.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Then stop talking and kiss me.<</say>>
[[Continue->Melisa Gym Sex Continued]]
<</nobr>><<nobr>>
<<set _melisaMedia to setup.getGymBuddyMediaByName("gymsex2")>>
<<gymMedia _melisaMedia>>
<p>You surrender to the moment, hands and mouths roaming without restraint.</p>
[[Continue->Melisa Gym Sex Finish]]
<</nobr>><<nobr>>
<<set _melisaMedia to setup.getGymBuddyMediaByName("gymsex3")>>
<<gymMedia _melisaMedia>>
<p>By the time you finally separate, the workout has become something neither of you will pretend was accidental.</p>
[[Get dressed->Gym]]
<</nobr>><<nobr>>
<h2>An invitation</h2>
<img class="scene-image" src="media/characters/melisa/melisa.jpg" alt="Melisa">
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>We've spent enough time hitting each other in this place. Let me cook for you at my apartment. A real first date—just the two of us.<</say>>
<div id="melisa-date-choice">
<<link "Accept">><<set $melisa.datePending to false>><<goto "Melisa First Date">><</link>><br>
<<link "Maybe another time">>
<<replace "#melisa-date-choice">>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I want to, but not tonight. Can I take you up on it later?<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>You can. The invitation stays open.<</say>>
[[Return->Gym]]
<</replace>>
<</link>>
</div>
<</nobr>><<nobr>>
<<set $melisa.datePending to false>>
<h2>First date with Melisa</h2>
<img class="scene-image" src="media/locations/melisasapartment/apartment.jpg" alt="Melisa's apartment">
<p>Melisa's apartment is warmer and more comfortable than you expected. She serves dinner without ceremony, and the conversation comes more easily once neither of you is circling a boxing ring.</p>
<img class="scene-image" src="media/characters/melisa/date1.jpg" alt="Dinner with Melisa">
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>I'm glad you came. Tonight, neither of us has to prove how tough we are.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>That might take some getting used to—but I'm glad I came too.<</say>>
[[Finish dinner->Melisa First Date After Dinner]]
<</nobr>><<nobr>>
<h2>After dinner</h2>
<p>When the last plates are cleared away, Melisa stretches and rolls one powerful shoulder.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>I'm still sweaty from the gym. I'm taking a bath. Make yourself comfortable in the living room.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Of course. Take your time—I'll wait here.<</say>>
<p>Melisa disappears into the bathroom. You settle into the quiet living room, still smiling to yourself about how different she seems away from Vested Interest and the boxing ring.</p>
<p>A sudden yell tears through the apartment.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">><<print $mcname>>! Help!<</say>>
<p>You are on your feet before you can think. Heart pounding, you rush toward the bathroom, terrified that your friend has slipped or hurt herself.</p>
[[Rush into the bathroom->Melisa First Date Bath]]
<</nobr>><<nobr>>
<h2>A call for help</h2>
<img class="scene-image" src="media/characters/melisa/date2.webp" alt="Melisa waiting in the bath">
<p>You throw open the door. Melisa is sitting naked in the bath, perfectly unharmed, watching you with a broad, knowing smile.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Melisa! You scared the shit out of me! I thought something happened to you.<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Something did. I discovered I can't wash my own back properly.<</say>>
<p>Her smile only grows as her gaze travels over you.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>So undress right fucking now and get in here. I need your help.<</say>>
[[Join her in the bath->Melisa First Date Bath Together]]
<</nobr>><<nobr>>
<h2>Together in the bath</h2>
<img class="scene-image" src="media/characters/melisa/date3.webp" alt="MC and Melisa together in the bath">
<p>You shed your clothes and climb into the warm water. Any pretence of washing Melisa's back vanishes almost immediately. She pulls you close, and soon you are kissing, tumbling against one another, and splashing water over the edge as teasing hands explore wherever they please.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Much better. I knew you'd be helpful.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>You could have asked without making me think you were dying.<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>And miss the way you ran in to rescue me? Not a chance.<</say>>
[[Continue->Melisa First Date Bedroom]]
<</nobr>><<nobr>>
<h2>Out of the bath</h2>
<img class="scene-image" src="media/characters/melisa/date4.webp" alt="Melisa leading MC out of the bathroom">
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>We're going to flood the bathroom. Come on—we're taking this outside.<</say>>
<p>Melisa rises and leads you from the bath without giving either of you time to dress. The trail of water across the apartment is quickly forgotten when she pulls you against her again.</p>
[[Continue->Melisa First Date Bedroom Continued]]
<</nobr>><<nobr>>
<h2>Melisa's bedroom</h2>
<img class="scene-image" src="media/characters/melisa/date5.webp" alt="MC and Melisa continuing their first night together">
<p>In the privacy of her bedroom, playful teasing gives way to open hunger. Melisa remains confidently in control, but every touch is attentive, guiding you deeper into the pleasure you share.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>That's it. Tonight, you listen to me—and I take care of you.<</say>>
[[Continue->Melisa First Date Bedroom Finish]]
<</nobr>><<nobr>>
<img class="scene-image" src="media/characters/melisa/date6.webp" alt="MC and Melisa at the end of their first night together">
<p>By the time the urgency finally fades, both of you are exhausted. You remain tangled together in Melisa's bed, too comfortable and too tired to consider crossing the Slums alone at this hour.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>You're staying here tonight. That's not a question.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I wasn't planning to argue.<</say>>
[[Stay the night->Melisa First Date Morning]]
<</nobr>><<nobr>>
<<run setup.advanceMelisaFirstDateMorning()>><<run UIBar.update()>>
<h2>The next morning</h2>
<p>Morning finds you still lying beside Melisa. Eventually, reluctantly, you both get dressed and prepare to face the day.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Thank you for last night. Dinner too—before you nearly frightened me to death.<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>You survived. And we're doing this again soon.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I'd like that.<</say>>
[[Say goodbye->Slums]]
<</nobr>><<nobr>>
<h2>Another invitation</h2>
<img class="scene-image" src="media/characters/melisa/melisa.jpg" alt="Melisa">
<p>After training, Melisa catches you before you can leave the ring.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>I heard about a secret club here in the Slums. Drinks, dancing, no Protectorate-approved dress code. Come with me on our second date.<</say>>
<div id="melisa-second-date-choice">
<<link "Accept">><<set $melisa.secondDatePending to false>><<goto "Melisa Second Date">><</link>><br>
<<link "Maybe another time">>
<<replace "#melisa-second-date-choice">>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I want to, but not tonight. Can we do it another evening?<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>We can. Tell me when you're ready—the invitation stays open.<</say>>
[[Return->Gym]]
<</replace>>
<</link>>
</div>
<</nobr>><<nobr>>
<<set $melisa.secondDatePending to false>>
<h2>Second date with Melisa</h2>
<p>You meet at Melisa's apartment that evening. The door opens, and for a moment you forget whatever greeting you had prepared.</p>
<img class="scene-image" src="media/characters/melisa/seconddate1.jpg" alt="Melisa dressed for the second date">
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>You look sexy as fuck.<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>I am sexy. The "as fuck" part will have to be tested later.<</say>>
<p>She chuckles at your expression, locks the apartment behind her, and offers you her arm.</p>
[[Leave for the club->Melisa Second Date Walk]]
<</nobr>><<nobr>>
<h2>Through the Slums</h2>
<p>Melisa walks close beside you through the crowded streets, one arm held securely around your back. Every so often her hand slips lower to grab your butt and give it an unapologetic squeeze.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Are you planning to hold me like that the entire way?<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Yes. Is there a problem?<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>No. I just wanted to know whether I should pretend to be surprised next time.<</say>>
[[Enter the club->Melisa Second Date Club]]
<</nobr>><<nobr>>
<h2>The secret club</h2>
<img class="scene-image" src="media/characters/melisa/seconddate2.jpg" alt="MC and Melisa having drinks at the club">
<p>The club hides behind an unmarked door and a suspiciously well-dressed bouncer. Inside, music shakes the walls while colored lights sweep across a crowd unconcerned with the district outside. You and Melisa order drinks and relax together before the rhythm finally draws you toward the dance floor.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Finish that drink. I didn't bring you here to spend the whole night sitting down.<</say>>
[[Move to the dance floor->Melisa Second Date Proposition]]
<</nobr>><<nobr>>
<h2>An unwanted invitation</h2>
<img class="scene-image" src="media/characters/melisa/seconddate3.jpg" alt="A man approaching MC and Melisa at the club">
<p>You have barely begun dancing when a man approaches, openly admiring both of you.</p>
<<say "Man" "" "unaffiliated">>You two look incredible. Why don't you come with me to the VIP lounge? I'll make the night worth your time.<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Fuck off. Neither of us swings that way, and she's mine tonight.<</say>>
<p>Something about the certainty in Melisa's voice makes your pussy tingle. The man raises his hands, mutters an apology, and disappears back into the crowd.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Yours tonight?<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Do you object?<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Not even a little.<</say>>
[[Keep dancing->Melisa Second Date Flash]]
<</nobr>><<nobr>>
<h2>Losing yourself in the music</h2>
<img class="scene-image" src="media/characters/melisa/seconddate4.webp" alt="MC flashing Melisa on the dance floor">
<p>More drinks and relentless music strip away your remaining restraint. Laughing, you lift your top and flash your bare breasts at Melisa in the middle of the dance floor.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>All right. That's my cue. We're changing locations before you give the entire club the show meant for me.<</say>>
[[Follow Melisa outside->Melisa Second Date Alley]]
<</nobr>><<nobr>>
<h2>Behind the club</h2>
<video src="media/characters/melisa/seconddate5.mp4" autoplay loop muted controls playsinline></video>
<p>Melisa leads you behind the building, presses you against the wall, and slips a hand into your panties. Her fingers find your clit and begin rubbing with slow, deliberate confidence.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>This is what you were asking for in there, wasn't it?<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Yes... please don't stop.<</say>>
[[Continue->Melisa Second Date Alley Oral]]
<</nobr>><<nobr>>
<video src="media/characters/melisa/seconddate6.mp4" autoplay loop muted controls playsinline></video>
<p>The teasing escalates until Melisa lowers you onto the concrete behind the club and settles between your thighs, unconcerned by the rough ground or the distant pulse of music through the wall.</p>
[[Continue->Melisa Second Date Alley Oral Continued]]
<</nobr>><<nobr>>
<video src="media/characters/melisa/seconddate7.mp4" autoplay loop muted controls playsinline></video>
<p>Her mouth keeps you trembling as she holds you firmly in place. Any fear of being discovered dissolves beneath the relentless pleasure.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Let me hear you. Nobody in that club matters right now.<</say>>
[[Continue->Melisa Second Date Alley Finale]]
<</nobr>><<nobr>>
<video src="media/characters/melisa/seconddate8.mp4" autoplay loop muted controls playsinline></video>
<p>You pull Melisa close and press your bodies together. The two of you move against one another until the tension breaks at the same moment, leaving you breathless and clinging together on the concrete.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Come home with me.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Lead the way.<</say>>
[[Return to Melisa's apartment->Melisa Second Date Overnight]]
<</nobr>><<nobr>>
<h2>Back at Melisa's apartment</h2>
<img class="scene-image" src="media/locations/melisasapartment/apartment.jpg" alt="Melisa's apartment">
<p>Back at her apartment, exhaustion catches up with both of you. You crawl into bed together and fall asleep with your bodies pressed close.</p>
[[Sleep beside Melisa->Melisa Second Date Morning]]
<</nobr>><<nobr>>
<<run setup.advanceMelisaSecondDateMorning()>><<run UIBar.update()>>
<h2>The morning after</h2>
<img class="scene-image" src="media/characters/melisa/seconddatemorning.jpg" alt="Melisa beside MC the next morning">
<p>You wake to find Melisa lying beside you, quietly watching your face. Her usual confidence remains, but there is an unfamiliar vulnerability beneath it.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Good morning.<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>G-good morning. I... I've been awake for a while. Thinking.<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>I don't want to push anything on you. I know I'm usually sure of myself, but this is... different. I-I like you. A lot. And I want what we have to be more frequent—more permanent. So... would you like to be my girlfriend?<</say>>
<<link "Become Melisa's girlfriend">><<run setup.acceptMelisaRelationship()>><<goto "Melisa Girlfriend Morning">><</link>><br>
<<link "Refuse">><<run setup.rejectMelisaRelationship()>><<goto "Melisa Second Date Refusal">><</link>>
<</nobr>><<nobr>>
<h2>Girlfriends</h2>
<img class="scene-image" src="media/characters/melisa/morning1.webp" alt="MC accepting Melisa's relationship">
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Yes. I want to be your girlfriend.<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Good. Come here, girlfriend.<</say>>
<p>Melisa's relief becomes a hungry smile as she pulls you into a kiss.</p>
[[Continue->Melisa Girlfriend Morning Continued]]
<</nobr>><<nobr>>
<img class="scene-image" src="media/characters/melisa/morning2.gif" alt="MC and Melisa together in bed">
<p>The goodbye is postponed as kisses deepen and hands roam beneath the sheets.</p>
[[Continue->Melisa Girlfriend Morning Climax]]
<</nobr>><<nobr>>
<img class="scene-image" src="media/characters/melisa/morning3.gif" alt="Melisa pleasuring MC in bed">
<p>Melisa takes control with the same confidence she carries into the ring, drawing every sound and shiver from you until the morning disappears around her touch.</p>
[[Continue->Melisa Girlfriend Morning Finish]]
<</nobr>><<nobr>>
<video src="media/characters/melisa/morning4.mp4" autoplay loop muted controls playsinline></video>
<p>Only after both of you are thoroughly satisfied do you finally manage to get dressed.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Goodbye, girlfriend.<</say>>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>See you soon. And don't think being my girlfriend means I'll go easy on you in the ring.<</say>>
[[Leave Melisa's apartment->Slums]]
<</nobr>><<nobr>>
<h2>A painful answer</h2>
<img class="scene-image" src="media/characters/melisa/decline.webp" alt="Melisa after MC refuses her relationship">
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I'm sorry, Melisa. I care about you, but I don't want us to become girlfriends.<</say>>
<p>Sadness crosses Melisa's face before she looks away.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>I understand. I won't pretend that doesn't hurt, but I asked for the truth.<</say>>
<p>You dress in uncomfortable silence and leave her apartment.</p>
[[Return to the Slums->Slums]]
<</nobr>><<nobr>>
<<run setup.resolveMelisaDepartureNote()>>
<h2>A note from Melisa</h2>
<p>When you approach the boxing ring for your usual training, Melisa is nowhere to be found. A folded note with your name on it has been left where she normally waits.</p>
<blockquote>I'm sorry. I thought I could keep training with you and act as though nothing changed, but I can't. I switched gyms. Keep your guard up and take care of yourself. —Melisa</blockquote>
<p>Melisa will no longer be available as a boxing partner.</p>
[[Return->Gym]]
<</nobr>><<nobr>>
<h2>A question after training</h2>
<img class="scene-image" src="media/characters/melisa/melisa.jpg" alt="Melisa">
<<if $melisa.moveOfferPostponed>>
<p>When training ends, Melisa folds her arms and fixes you with the same unyielding stare as before.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>I've given you time. Have you reconsidered moving in with me?<</say>>
<<else>>
<p>As the two of you catch your breath after training, Melisa gives you a thoughtful look.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Where do you live, anyway? You've never taken me there.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I rent a room in an apartment here in the Slums. I share the place with some guy named Arthur.<</say>>
<p>Melisa's expression changes instantly.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>You live with a man? Has he used you? Hurt you? Done anything to you?<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I have to clean the apartment to lower my rent. And... I don't know for sure, but I think Arthur sometimes comes into my room while I'm napping.<</say>>
<p>Anger hardens Melisa's face. Her hands curl into fists at her sides.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Absolutely fucking not. From now on, you live with me. Whether you like it or not.<</say>>
<</if>>
<div id="melisa-move-choice">
<<link "Accept">><<run setup.acceptMelisaMoveIn()>><<goto "Moving In With Melisa">><</link>><br>
<<link "Refuse for now">>
<<run setup.postponeMelisaMoveIn()>>
<<replace "#melisa-move-choice">>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Melisa, no. I can't suddenly move out because you ordered me to. I need more time.<</say>>
<p>Melisa's anger flares hotter, but she forces herself to step back rather than argue over you.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Fine. Not today. But this is not over, and I'm not leaving you in that situation forever.<</say>>
[[Return->Gym]]
<</replace>>
<</link>>
</div>
<</nobr>><<nobr>>
<h2>No time to waste</h2>
<p>The instant you accept, Melisa grabs your hand and storms out of the gym with you in tow. Her pace makes it clear that hesitation is no longer an option.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Take me to that apartment. Now.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>All right. This way.<</say>>
<p>You guide her through the Slums toward the apartment you share with Arthur.</p>
[[Enter the apartment->Moving Out of Arthur's Apartment]]
<</nobr>><<nobr>>
<h2>Packing</h2>
<img class="scene-image" src="media/myroom/myroom.jpg" alt="MC's room in Arthur's apartment">
<p>Melisa enters beside you and surveys the cramped apartment with open disgust. She points toward your room without slowing down.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Pack your things. Everything you need. We're leaving.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I'll be quick.<</say>>
<p>You gather your belongings while Melisa waits in the hall, her anger simmering rather than fading.</p>
[[Finish packing->Melisa Confronts Arthur]]
<</nobr>><<nobr>>
<h2>Arthur's mistake</h2>
<img class="scene-image" src="media/slumshome/hall.jpg" alt="The hall of Arthur's apartment">
<p>Arthur emerges from his room as you carry your packed belongings into the hall.</p>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>What the hell is all this commotion?<</say>>
<p>Melisa answers by driving her fist square into his jaw. Arthur drops hard to the floor before he can even raise his hands. She grabs a fistful of his hair and wrenches his head back.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>You stay the fuck away from her. If you touch her, approach her, or even make her feel unsafe again, I will kill you. Do you understand me?<</say>>
<<say "Arthur" "media/characters/arthur.jpg" "arthur">>O-okay! Yes! I understand!<</say>>
<p>The fear in Arthur's voice is unmistakable. He stares up at Melisa without any trace of his usual swagger.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Melisa, I'm ready. I have everything.<</say>>
<p>Melisa releases Arthur's hair, rises, and drives a brutal kick between his legs.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>That was for touching my girlfriend.<</say>>
<p>Arthur yelps and curls around himself. Within moments, the pain overwhelms him and he loses consciousness on the floor. Melisa wraps an arm around you, takes part of your luggage, and leads you out of the apartment without looking back.</p>
[[Leave with Melisa->Melisa Apartment]]
<</nobr>><<nobr>>
<h2>Melisa's apartment</h2>
<img class="scene-image" src="media/locations/melisasapartment/apartment.jpg" alt="Melisa's apartment">
<p>Melisa brings you and your belongings into her apartment. For the first time since arriving in Suns End, you are no longer living beneath Arthur's roof.</p>
<p>The realization finally breaks through the tension holding you together. Your eyes fill with tears as you wrap your arms tightly around Melisa and bury your face against her.</p>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Thank you... You ended my nightmare. I don't know how I can ever repay you.<</say>>
<p>Melisa's anger fades. She holds you close, one hand settling protectively against the back of your head.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>You don't owe me anything. And as long as I'm alive, nobody will ever dare touch you like that again.<</say>>
<p>The long day finally catches up with both of you. Melisa carries your belongings into the bedroom, and you follow her beneath the covers.</p>
[[Go to sleep together->Melisa Move In Night]]
<</nobr>><<nobr>>
<h2>Encounter</h2>
<<if $pendingCombatEncounter>>
<<set _encounterEnemyName to $pendingCombatEncounter>>
<<set _encounterEnemy to setup.getCombatEnemyByName(_encounterEnemyName)>>
<<set _encounterEnemyTheme to setup.getCombatEnemyKey(_encounterEnemy.faction)>>
<p>A hostile <<print _encounterEnemyName>> steps into your path and blocks the narrow street.</p>
<<say _encounterEnemy.name _encounterEnemy.image _encounterEnemyTheme>>Empty your pockets. Now.<</say>>
<<capture _encounterEnemyName>>
<<link "Fight">>
<<set $pendingCombatEncounter to "">>
<<set $pendingCombatEncounterFaction to "">>
<<startFight _encounterEnemyName "" "slums-encounter">>
<</link>><br>
<<link "Hand over">>
<<set _encounterHandover to setup.resolveUnaffiliatedEncounterHandover(_encounterEnemyName)>>
<<if _encounterHandover.ok>><<goto _encounterHandover.destination>><</if>>
<</link>>
<</capture>>
<<else>>
<p class="table-order-error">No encounter has been prepared.</p>
[[Return->Slums]]
<</if>>
<</nobr>><<nobr>>
<<set _encounterEnemy to setup.getCombatDefeatEnemy()>>
<<set _encounterEnemyTheme to setup.getCombatEnemyKey(_encounterEnemy.faction)>>
<<say _encounterEnemy.name _encounterEnemy.image _encounterEnemyTheme>>Nothing? Then I'll collect another way. Maybe you'll even learn to enjoy it.<</say>>
[[Continue->Enemy Sex]]
<</nobr>><<nobr>>
<h2>Protectorate Encounter</h2>
<<if $pendingCombatEncounter>>
<<set _encounterEnemyName to $pendingCombatEncounter>>
<<set _encounterEnemy to setup.getCombatEnemyByName(_encounterEnemyName)>>
<<set _encounterEnemyTheme to setup.getCombatEnemyKey(_encounterEnemy.faction)>>
<p>A <<print _encounterEnemyName>> notices you while patrolling the district and steps directly into your path.</p>
<<say _encounterEnemy.name _encounterEnemy.image _encounterEnemyTheme>>Citizen. Present your identification for inspection.<</say>>
<<capture _encounterEnemyName>>
<<link "Fight">>
<<set $pendingCombatEncounter to "">>
<<set $pendingCombatEncounterFaction to "">>
<<startFight _encounterEnemyName "" "slums-encounter">>
<</link>><br>
[[Hand over->Protectorate ID Check]]
<</capture>>
<<else>>
<p class="table-order-error">No Protectorate encounter has been prepared.</p>
[[Return->Slums]]
<</if>>
<</nobr>><<nobr>>
<<set _encounterEnemyName to $pendingCombatEncounter>>
<<set _encounterEnemy to setup.getCombatEnemyByName(_encounterEnemyName)>>
<<if _encounterEnemy>>
<<set _encounterEnemyTheme to setup.getCombatEnemyKey(_encounterEnemy.faction)>>
<p>You surrender your ID. The <<print _encounterEnemyName>> scans it against Protectorate warrants and the central fines registry.</p>
<<if setup.mustSurrenderToProtectorate()>>
<<say _encounterEnemy.name _encounterEnemy.image _encounterEnemyTheme>>Your citizen record requires immediate detention. Place your hands where I can see them and surrender.<</say>>
<<capture _encounterEnemyName>>
<<link "Fight">>
<<set $pendingCombatEncounter to "">>
<<set $pendingCombatEncounterFaction to "">>
<<startFight _encounterEnemyName "Prison Introduction" "slums-encounter">>
<</link>><br>
<<link "Surrender">>
<<set $pendingCombatEncounter to "">>
<<set $pendingCombatEncounterFaction to "">>
<<goto "Prison Introduction">>
<</link>>
<</capture>>
<<else>>
<p>The scan returns clean. The <<print _encounterEnemyName>> hands your ID back without apology.</p>
<<say _encounterEnemy.name _encounterEnemy.image _encounterEnemyTheme>>Move along, citizen.<</say>>
<<link "Continue">>
<<set $pendingCombatEncounter to "">>
<<set $pendingCombatEncounterFaction to "">>
<<goto "Slums">>
<</link>>
<</if>>
<<else>>
<p class="table-order-error">The encounter record is no longer valid.</p>
[[Return->Slums]]
<</if>>
<</nobr>><<nobr>>
<<set _prisonSentence to setup.preparePrisonSentence()>>
<h2>Prison Introduction</h2>
<p>Protectorate officers drag you into a holding cell and leave you under constant surveillance until a Judge is ready to hear your case.</p>
<<if _prisonSentence.days > 0>>
<img class="scene-image" src="media/locations/prison/courtroom.jpg" alt="Protectorate courtroom">
<<say "Judge" "media/locations/prison/judge.jpg" "protectorate">><<if _prisonSentence.wanted && _prisonSentence.fines > 4999>>You stand before this court as a wanted citizen with c<<print _prisonSentence.fines>> in unpaid fines. The sentence is <<print _prisonSentence.days>> days of confinement.<<elseif _prisonSentence.wanted>>You stand before this court as a wanted citizen. The sentence is <<print _prisonSentence.days>> days of confinement.<<else>>Your unpaid fines total c<<print _prisonSentence.fines>>. The sentence is <<print _prisonSentence.days>> days of confinement.<</if>><</say>>
<p>The ruling is entered into your citizen record. Guards return you to restraints and transport you to the district prison to serve the sentence.</p>
[[Continue->Prison]]
<<else>>
<p class="table-order-error">No active charge could be found for sentencing.</p>
[[Return->Slums]]
<</if>>
<</nobr>><<nobr>>
<h2>Prison</h2>
<img class="scene-image" src="media/locations/prison/prison.jpg" alt="Prison cell">
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>I hate this place. I just have to keep my head down and get through the sentence.<</say>>
<<link "Serve sentence">>
<<run setup.servePrisonSentence()>>
<<run UIBar.update()>>
<<goto "Slums">>
<</link>>
<</nobr>><h2>Fight</h2>
<<if $combatEnemy>>
<div id="combat-ui"><<combatUI>></div>
<<else>>
<p class="table-order-error">No combat encounter has been initialized.</p>
[[Return->Slums]]
<</if>><h2>Victory</h2>
<<if $combatOutcome && $combatOutcome.type is "victory">>
<<if $combatOutcome.enemyImage>>
<img class="scene-image" @src="$combatOutcome.enemyImage" @alt="$combatOutcome.enemyName">
<</if>>
<<if $combatOutcome.contractResolution>>
<<nobr>>
<<set _contractResolution to $combatOutcome.contractResolution>>
<<if _contractResolution.acknowledged>>
<p>This contract has already been completed.</p>
[[Continue->"Vested Interest" Bar]]
<<elseif _contractResolution.witnessed>>
<p>Someone saw you assaulting <<print _contractResolution.targetName>> and notified the authorities.</p>
<p class="table-order-error"><strong>You are now WANTED!</strong></p>
<<link "Continue">>
<<set _contractResolution.acknowledged to true>>
<<if _contractResolution.melisaEncounter && $melisaContractRescue.active>>
<<goto "Melisa Contract Defeat Encounter">>
<<else>>
<<goto '"Vested Interest" Bar'>>
<</if>>
<</link>>
<<elseif _contractResolution.melisaEncounter && $melisaContractRescue.active>>
[[Continue->Melisa Contract Defeat Encounter]]
<<else>>
[[Continue->"Vested Interest" Bar]]
<</if>>
<</nobr>>
<<elseif setup.isMercenaryContractVictory()>>
<<nobr>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>Time to finish the job.<</say>>
<<linkreplace "Confirm kill">>
<<set _contractCompletion to setup.completeMercenaryContract()>>
<<if _contractCompletion.ok>>
<<if _contractCompletion.witnessed>>
<<set $isWanted to true>>
<p>Someone saw you assaulting <<print _contractCompletion.contract.targetName>> and notified the authorities.</p>
<p class="table-order-error"><strong>You are now WANTED!</strong></p>
<<link "Continue">>
<<set $combatOutcome.contractResolution.acknowledged to true>>
<<if _contractCompletion.melisaEncounter>>
<<goto "Melisa Contract Defeat Encounter">>
<<else>>
<<goto '"Vested Interest" Bar'>>
<</if>>
<</link>>
<<elseif _contractCompletion.melisaEncounter>>
<<goto "Melisa Contract Defeat Encounter">>
<<else>>
<<goto '"Vested Interest" Bar'>>
<</if>>
<</if>>
<</linkreplace>>
<</nobr>>
<<else>>
<p><<print $combatOutcome.enemyName>> lies defeated. What do you want to do?</p>
<<nobr>>
<<link "Leave them be">>
<<run setup.completeCombatVictory(false)>>
<<goto "Slums">>
<</link>><br>
<<link "Steal credits">>
<<run setup.completeCombatVictory(true)>>
<<goto "Slums">>
<</link>>
<</nobr>>
<</if>>
<<else>>
<p class="table-order-error">There is no completed fight to resolve.</p>
[[Return->Slums]]
<</if>><<nobr>>
<h2>Hospital</h2>
<img class="scene-image" src="media/locations/hospital/hospital.jpg" alt="Hospital room">
<p>The Slums hospital operates beneath harsh lights and stricter billing rules. Treatment is available; mercy is not.</p>
[[Body Part Mods]]<br>
[[Visit the insurance agent]]<br>
[[Return->Slums]]
<</nobr>><<nobr>>
<h2>Body Part Mods</h2>
[[Return->Hospital]]
<p>The hospital's modification clinic offers functional augmentation and cosmetic bio-reconstruction through Protectorate-certified procedures.</p>
<div id="body-part-mods-ui">
<<bodyPartModsUI>>
</div>
<</nobr>><<nobr>>
<<set _functionalSlot to setup.getSelectedFunctionalBodyModSlot()>>
<h2><<print _functionalSlot.label>> Mods</h2>
[[Return->Body Part Mods]]
<p>Only one Functional Mod can occupy this body slot. Installing another replaces the currently installed mod.</p>
<div id="functional-body-mod-slot-ui">
<<functionalBodyModSlotUI _functionalSlot.key>>
</div>
<</nobr>><<nobr>>
<h2>Insurance Agent</h2>
<img class="scene-image" src="media/locations/hospital/insuranceaagent.jpg" alt="Hospital insurance agent">
<p>The agent presents three Protectorate-approved health insurance plans. Coverage begins immediately after payment.</p>
<div id="insurance-purchase-notice"></div>
<div class="insurance-plan-grid">
<<for _insurancePlanKey range ["bronze", "silver", "gold"]>>
<<set _insurancePlan to setup.healthInsurancePlans[_insurancePlanKey]>>
<<capture _insurancePlanKey _insurancePlan>>
<<set _insuranceButtonLabel to "Choose " + _insurancePlan.name>>
<article @class="'insurance-plan-card insurance-plan-card--' + _insurancePlanKey">
<h3><<print _insurancePlan.name>></h3>
<strong>c<<print _insurancePlan.cost>></strong>
<span><<if _insurancePlan.months is 1>>1 month<<elseif _insurancePlan.months is 12>>1 year<<else>><<print _insurancePlan.months>> months<</if>></span>
<<if setup.canAfford(_insurancePlan.cost)>>
<<button _insuranceButtonLabel>>
<<set _insurancePurchase to setup.purchaseHealthInsurance(_insurancePlanKey)>>
<<if _insurancePurchase.ok>><<goto "Hospital">><</if>>
<</button>>
<<else>>
<button type="button" disabled title="Not enough credits">Choose <<print _insurancePlan.name>></button>
<</if>>
</article>
<</capture>>
<</for>>
</div>
[[Return->Hospital]]
<</nobr>><<nobr>>
<<set _hospitalDefeatResult to setup.applyCombatHospitalBill()>>
<<set _hospitalPrisonTransfer to setup.shouldTransferDefeatHospitalToPrison()>>
<h2>Defeat</h2>
<img class="scene-image" src="media/locations/hospital/hospital.jpg" alt="Hospital room">
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>Where am I...? Those lights... I'm in a hospital.<</say>>
<p>Emergency responders brought you here after you lost consciousness. The medical staff have treated your injuries and stabilized your condition.</p>
<<if $hasHealthInsurance>>
<p>Your current health insurance plan covers the treatment.</p>
<<else>>
<p>Because you are uninsured, a c1000 treatment charge has been recorded as a debt in your Outstanding Balance.</p>
<</if>>
<<if _hospitalPrisonTransfer>>
<p>A Protectorate guard waits outside your room. The moment the medical staff discharge you, the guard places you in custody.</p>
[[Continue->Prison Introduction]]
<<else>>
[[Continue->Hospital]]
<</if>>
<</nobr>><h2>Defeat</h2>
<p>The final blow sends you to the ground. Sound and light recede as you lose consciousness.</p>
[[Continue->Pleading]]<<nobr>>
<<set _rescueEnemy to setup.getCombatDefeatEnemy()>>
<<set _melisaRescue to setup.completeMelisaCombatRescue()>>
<h2>Saved by Melisa</h2>
<<if _rescueEnemy.image>><img class="scene-image" @src="_rescueEnemy.image" @alt="_rescueEnemy.name + ' after Melisa intervenes'"><</if>>
<p>The <<print _rescueEnemy.name>> looms over your fallen body, ready to decide what happens next. Before they can touch you, Melisa barrels into them from the side.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>Get the fuck away from her! You picked the wrong woman to hurt.<</say>>
<p>Melisa beats the enemy with furious, disciplined precision. Every attempt to rise earns another punch or kick until they collapse and stop fighting back. Only then does she hurry to your side and pull you carefully into her arms.</p>
<<say "Melisa" "media/characters/melisa/melisa.jpg" "melisa">>I've got you, love. They aren't taking anything from you. Not while I'm here.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Melisa...? You came for me.<</say>>
<p>The intervention prevents every consequence the enemy had intended for your defeat.</p>
<<if _melisaRescue.contractCompletion && _melisaRescue.contractCompletion.ok>>
<p>Melisa's intervention also eliminates your assigned target. The contract is marked <strong>Done</strong>, and its c<<print _melisaRescue.contractCompletion.payment>> payment is added to your Outstanding Balance.</p>
<</if>>
<<if _melisaRescue.ok>>[[Leave with Melisa->Slums]]<<else>><p class="table-order-error">The rescue could not be resolved.</p><</if>>
<</nobr>><<nobr>>
<<set _defeatEnemy to setup.getCombatDefeatEnemy()>>
<<set _defeatEnemyTheme to setup.getCombatEnemyKey(_defeatEnemy.faction)>>
<<set _protectorateArrest to setup.getProtectorateArrestStatus()>>
<h2>Pleading</h2>
<p>A sharp blow jolts you awake. The <<print _defeatEnemy.name>> stands over you.</p>
<<if _defeatEnemy.image>>
<img class="scene-image" @src="_defeatEnemy.image" @alt="_defeatEnemy.name">
<</if>>
<<if _defeatEnemyTheme is "protectorate" && _protectorateArrest.shouldArrest>>
<<say _defeatEnemy.name _defeatEnemy.image _defeatEnemyTheme>><<if _protectorateArrest.wanted && _protectorateArrest.excessiveFines>>Your record shows an active warrant and c<<print _protectorateArrest.fines>> in unpaid fines. You are under arrest.<<elseif _protectorateArrest.wanted>>Your citizen record shows an active warrant. You are under arrest.<<else>>Your unpaid fines total c<<print _protectorateArrest.fines>>. You are under arrest.<</if>><</say>>
[[Continue->Prison Introduction]]
<<else>>
<<if _defeatEnemyTheme is "protectorate">>
<<set _protectorateFine to setup.prepareCombatProtectorateFine()>>
<<say _defeatEnemy.name _defeatEnemy.image _defeatEnemyTheme>>Assaulting a Protectorate officer carries an immediate fine of c<<print _protectorateFine.fine>>. It has been added to your citizen record.<</say>>
<<link "Accept the Fine">>
<<run setup.applyCombatProtectorateFine()>>
<<goto "Slums">>
<</link>><br>
<<else>>
<<say _defeatEnemy.name _defeatEnemy.image _defeatEnemyTheme>>Now hand over your credits.<</say>>
<<if $credits > 0>>
<<link "Give them credits">>
<<run setup.payCombatDefeatCredits()>>
<<goto "Slums">>
<</link>><br>
<<else>>
<<say _defeatEnemy.name _defeatEnemy.image _defeatEnemyTheme>>No credits? Then I'll collect another way. Maybe you'll even learn to enjoy it.<</say>>
<<link "Continue">>
<<run setup.startCombatEnemySex("no-credits")>>
<<goto "Enemy Sex">>
<</link>><br>
<</if>>
<</if>>
<<if $corruption < 0>>
<<link "Offer something other than money...">>
<<run setup.startCombatEnemySex("offer")>>
<<goto "Enemy Sex">>
<</link>>
<</if>>
<</if>>
<</nobr>><div id="arthur-sex-ui">
<<arthurSexUI>>
</div><<set _drunkenClientOffer to setup.prepareDrunkenClientOffer()>>
<<if _drunkenClientOffer.triggered>><<goto "Drunken Client Offer">><</if>>
<h2>"Vested Interest" Bar</h2>
<p>The "Vested Interest" is an infamous Slums bar where exhausted workers drink beside mercenaries, criminals, and anyone else with credits to spend. Arguments are common; questions are not.</p>\
<img class="scene-image" src="media/locations/vestedinterest/start.jpg" alt="">
<<nobr>>
<<if !setup.isEmployedAt("vested-interest") && State.hasPlayed("Ask for work")>>
<<run setup.startEmployment("vested-interest", "Dishwasher")>>
<</if>>
<<if setup.isEmployedAt("vested-interest")>>
<<if setup.isMercenaryAtVestedInterest()>>
[[Contracts]]
<<if setup.getActiveMercenaryContract()>><br>[[Do some mercenary work->Kill Contract Encounter]]<</if>>
<<else>>
<<if setup.hasWorkedToday("vested-interest")>>
<span class="passage-link-disabled passage-link-disabled--tooltip" aria-disabled="true" tabindex="0" data-tooltip="You have already worked today.">Work</span>
<<elseif setup.isWaitressAtVestedInterest()>>
[[Work->Waitress Serving]]
<<else>>
[[Work]]
<</if>>
<</if>>
<<else>>
[[Ask for work]]
<</if>><br>
[[Sit at the table]]<br>
[[Outside->Slums]]
<</nobr>><<nobr>>
<p>You ask one of the waitresses whether the Bar needs help. She studies you for a moment, then leads you through a staff door and tells you the manager's name is Bradford.</p>
<p>Inside the office, a man in faded mercenary gear sits behind a scarred desk, smoking a cigar beneath a tired ventilation fan.</p>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>They tell me you're looking for work.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Yes, sir. I just moved to Suns End, and I need something steady enough to keep me here.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>New arrival. Thought so. I don't have glamorous work, but the kitchen always needs another pair of hands. You know how to wash dishes?<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>Dishwashing. Not exactly the future I crossed half a planet for.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I do. I'm willing to work hard—I just need the chance.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Base pay is c100 a week if you work at least five days. Put in all seven and I make it c150. Miss the minimum and there is no weekly pay.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>Even the full wage barely covers rent. Still, c100 is better than c0, and Bradford does not look interested in bargaining.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>All right. When can I start?<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Today, if you want. For your first partial week, I'll pay c20 for each day you work. After that, the normal weekly rate applies. Payday is Monday.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Thank you, sir. I won't let you down.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Do the work and we won't have a problem. And drop the “sir.” Bradford is fine.<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Right. Thank you, Bradford.<</say>>
<p>With the arrangement settled, you leave the office and return to the main floor as an employee of the "Vested Interest."</p>
<<run setup.startEmployment("vested-interest", "Dishwasher")>>
[[Return->"Vested Interest" Bar]]
<</nobr>><<set _workResult to setup.recordWorkDay("vested-interest")>>
<<if _workResult.ok>>
<p>You spend the shift behind the kitchen, scraping plates, hauling racks, and washing an endless supply of glasses. By the time the last load is clean, your hands ache and the Bar is already filling again.</p>
<img class="scene-image" src="media/locations/vestedinterest/work/dishwasher/washing1.webp" alt="">
<<elseif _workResult.reason is "already-worked">>
<p>You have already completed your shift for today.</p>
<<else>>
<p>You are not employed here.</p>
<</if>>
<<if _workResult.ok && setup.canReceiveMercenaryOffer()>>
[[Continue->Mercenary Offer]]
<<elseif _workResult.ok && setup.canReceiveWaitressOffer()>>
[[Continue->Waitress Offer]]
<<else>>
[[Return->"Vested Interest" Bar]]
<</if>><<nobr>>
<h2>Mercenary Offer</h2>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>You've worked enough shifts for me to know you show up, and you've got more backbone than I expected. I could use another mercenary operating out of the Bar. Interested?<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>You mean you want me handling mercenary work instead of washing dishes?<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>That's the offer. No weekly wage—you get paid for contracts you finish, and nothing for contracts you don't. I'll give you a one-time c150 signing bonus to get started.<</say>>
<<link "Accept">>
<<set _mercenaryDecision to setup.resolveMercenaryOffer(true)>>
<<if _mercenaryDecision.ok>><<goto "Mercenary Offer Accepted">><</if>>
<</link>><br>
<<link "Decline">>
<<set _mercenaryDecision to setup.resolveMercenaryOffer(false)>>
<<if _mercenaryDecision.ok>><<goto "Mercenary Offer Declined">><</if>>
<</link>>
<</nobr>><<nobr>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I'll do it. I want the chance to prove I can handle more than a sink full of dishes.<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>Then spend that signing bonus wisely. Stop by the Gear Stall in the Market and buy something better than bare hands before you take a contract.<</say>>
[[Continue->"Vested Interest" Bar]]
<</nobr>><<nobr>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Thank you for trusting me, but I'm not ready to carry a weapon for money. I'd rather stay in the kitchen.<</say>>
[[Continue->"Vested Interest" Bar]]
<</nobr>><<nobr>>
<h2>Waitress Offer</h2>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>You've put in enough shifts for me to know you're reliable. I could use another waitress on the floor, and you might earn better money out there. Interested?<</say>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>You want me serving customers instead of washing dishes?<</say>>
<<say "Bradford" "media/characters/bradford/bradford.jpg" "bradford">>That's right. Work five or six days and the weekly pay is c200. Work all seven and it becomes c250. Whatever the customers leave you in tips is yours.<</say>>
<<link "Accept">>
<<set _waitressDecision to setup.resolveWaitressOffer(true)>>
<<if _waitressDecision.ok>><<goto "Waitress Offer Accepted">><</if>>
<</link>><br>
<<link "Decline">>
<<set _waitressDecision to setup.resolveWaitressOffer(false)>>
<<if _waitressDecision.ok>><<goto "Waitress Offer Declined">><</if>>
<</link>>
<</nobr>><<nobr>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>I'll do it. I think I can handle the customers, and the extra pay would help.<</say>>
[[Continue->"Vested Interest" Bar]]
<</nobr>><<nobr>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Thank you for offering, but I would rather stay in the kitchen a little longer.<</say>>
[[Continue->"Vested Interest" Bar]]
<</nobr>><<nobr>>
<h2>Waitress Serving</h2>
<<if !setup.isWaitressAtVestedInterest()>>
<p>You are not employed as a waitress here.</p>
[[Return->"Vested Interest" Bar]]
<<elseif setup.hasWorkedToday("vested-interest")>>
<p>You have already completed your shift for today.</p>
[[Return->"Vested Interest" Bar]]
<<else>>
<div id="waitress-serving-options">
<<link "Work normally">>
<<set _waitressResult to setup.completeWaitressShift(false)>>
<<replace "#waitress-serving-options">>
<<if _waitressResult.ok>>
<<set _waitressNormalImages to [
"media/locations/vestedinterest/work/waitress/normalserving/1.jpeg",
"media/locations/vestedinterest/work/waitress/normalserving/2.jpg",
"media/locations/vestedinterest/work/waitress/normalserving/3.jpg",
"media/locations/vestedinterest/work/waitress/normalserving/4.jpg",
"media/locations/vestedinterest/work/waitress/normalserving/5.jpg",
"media/locations/vestedinterest/work/waitress/normalserving/6.jpg",
"media/locations/vestedinterest/work/waitress/normalserving/7.jpg",
"media/locations/vestedinterest/work/waitress/normalserving/8.jpg",
"media/locations/vestedinterest/work/waitress/normalserving/9.jpg",
"media/locations/vestedinterest/work/waitress/normalserving/10.jpg",
"media/locations/vestedinterest/work/waitress/normalserving/11.jpg",
"media/locations/vestedinterest/work/waitress/normalserving/12.jpg"
]>>
<p>You keep the tables supplied, remember the regulars' orders, and steer clear of the worst arguments. By the end of the shift, the customers have left you c<<print _waitressResult.tips>> in tips.</p>
<img class="scene-image" @src="_waitressNormalImages[random(0, _waitressNormalImages.length - 1)]" alt="">
[[Return->"Vested Interest" Bar]]
<<else>>
<p>You could not complete this shift.</p>
[[Return->"Vested Interest" Bar]]
<</if>>
<</replace>>
<</link>>
<<if $dominance <= -20 && $corruption < 70>><br>
<<link "Flirt while working">>
<<set _waitressResult to setup.completeWaitressShift(true)>>
<<replace "#waitress-serving-options">>
<<if _waitressResult.ok>>
<<set _waitressFlirtyImages to [
"media/locations/vestedinterest/work/waitress/flirtyserving/1.gif",
"media/locations/vestedinterest/work/waitress/flirtyserving/2.webp",
"media/locations/vestedinterest/work/waitress/flirtyserving/4.jpg",
"media/locations/vestedinterest/work/waitress/flirtyserving/5.gif"
]>>
<p>You lean into the attention, trading smiles and suggestive remarks for fuller glasses and larger tips. By closing time, the customers have left you c<<print _waitressResult.tips>>.</p>
<img class="scene-image" @src="_waitressFlirtyImages[random(0, _waitressFlirtyImages.length - 1)]" alt="">
<<link "Return">>
<<if setup.rollWaitressClientOffer()>><<goto "Client offer">><<else>><<goto '"Vested Interest" Bar'>><</if>>
<</link>>
<<else>>
<p>You could not complete this shift.</p>
[[Return->"Vested Interest" Bar]]
<</if>>
<</replace>>
<</link>>
<</if>>
</div>
<</if>>
<</nobr>><<nobr>>
<h2>Client Offer</h2>
<img class="scene-image" src="media/locations/vestedinterest/work/waitress/wickedserving/clientproposition.jpg" alt="Client making an offer">
<p>The Client catches your attention and gestures openly toward his crotch.</p>
<<say "Client" "media/locations/vestedinterest/work/waitress/wickedserving/client.jpg" "unaffiliated">>You want another c100? Do something a little more personal for me.<</say>>
<div id="client-offer-choices">
<<if $corruption < 50>>
<<link "Agree">>
<<set _clientScene to setup.startWaitressClientSex()>>
<<if _clientScene.ok>><<goto "Waitress Client Sex">><</if>>
<</link>><br>
<</if>>
<<link "Refuse">>
<<replace "#client-offer-choices">>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>No. Absolutely not.<</say>>
[[Continue->"Vested Interest" Bar]]
<</replace>>
<</link>>
</div>
<</nobr>><div id="arthur-sex-ui">
<<arthurSexUI>>
</div><<nobr>>
<h2>Client Offer</h2>
<<if !$drunkenClientOfferPending>>
<p>The opportunity has passed.</p>
[[Continue->"Vested Interest" Bar]]
<<else>>
<img class="scene-image" src="media/locations/vestedinterest/work/waitress/wickedserving/clientproposition.jpg" alt="Client making an offer">
<p>Through the haze of alcohol, you notice a Client watching you. When he catches your eye, he gestures openly toward his crotch.</p>
<<say "Client" "media/locations/vestedinterest/work/waitress/wickedserving/client.jpg" "unaffiliated">>I have c100 for you if you're willing to make this interesting.<</say>>
<div id="drunken-client-offer-choices">
<<link "Accept">>
<<set _clientScene to setup.startDrunkenClientSex()>>
<<if _clientScene.ok>><<goto "Waitress Client Sex">><</if>>
<</link>>
<<if !$drunkenClientOfferForced>><br>
<<link "Refuse">>
<<run setup.refuseDrunkenClientOffer()>>
<<replace "#drunken-client-offer-choices">>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>No... I've had too much. I should leave.<</say>>
[[Continue->"Vested Interest" Bar]]
<</replace>>
<</link>>
<</if>>
</div>
<</if>>
<</nobr>><h2>Contracts</h2>
[[Return->"Vested Interest" Bar]]
<div id="contracts-ui">
<<contractsUI>>
</div><<nobr>>
<<set _killContract to setup.getActiveMercenaryContract()>>
<<if _killContract>>
<h2>Takeout Contract</h2>
<p>You follow Bradford's leads through alleys, crowded markets, and neglected transit levels until you finally locate <<print _killContract.targetName>>.</p>
<<if _killContract.targetImage>><img class="scene-image" @src="_killContract.targetImage" @alt="_killContract.targetName"><</if>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "jane">>Nothing personal, just work.<</say>>
<p>You draw your <<print setup.getEquippedPlayerCombatItem("weapon").name>> and make your intention clear.</p>
<<say _killContract.targetName _killContract.targetImage "criminal">>Then stop talking and earn your pay.<</say>>
<<capture _killContract>>
<<link "Fight">>
<<startFight _killContract.targetName "" "mercenary-contract" _killContract.id>>
<</link>>
<</capture>>
<<else>>
<p class="table-order-error">You do not have an active Takeout contract.</p>
[[Return->"Vested Interest" Bar]]
<</if>>
<</nobr>><<set _drunkenClientOffer to setup.prepareDrunkenClientOffer()>>
<<if _drunkenClientOffer.triggered>><<goto "Drunken Client Offer">><</if>>
<img class="scene-image" src="media/locations/vestedinterest/drinks/sitattable.jpg" alt="">
<<nobr>>
<div id="table-order-notice"></div>
<<set _mercenaryDrinkFree to setup.hasMercenaryDrinkBenefit()>>
<<link "Order some food — c20">>
<<if setup.chargeCredits(20)>>
<<goto "Order some food">>
<<else>>
<<replace "#table-order-notice">><span class="table-order-error">You do not have enough credits.</span><</replace>>
<</if>>
<</link>><br>
<<set _drinkOrderLabel to _mercenaryDrinkFree ? "Order something to drink — Free" : "Order something to drink — c5">>
<<link _drinkOrderLabel>>
<<set _drinkOrder to setup.orderBarDrink(_mercenaryDrinkFree)>>
<<if _drinkOrder.ok>>
<<goto "Order something to drink">>
<<else>>
<<replace "#table-order-notice">><span class="table-order-error">You do not have enough credits.</span><</replace>>
<</if>>
<</link>><br>
[[Return->"Vested Interest" Bar]]
<</nobr>><<nobr>>
<<set _foodImages to [
"media/kitchen/eating/eating1.webp",
"media/kitchen/eating/eating2.webp",
"media/kitchen/eating/eating3.webp",
"media/kitchen/eating/eating4.webp",
"media/kitchen/eating/eating5.webp"
]>>
<<set _foodImage to _foodImages[random(0, _foodImages.length - 1)]>>
<<switch random(1, 3)>>
<<case 1>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>This is actually good. I should stop judging food by the building it comes from.<</say>>
<<case 2>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>It is nice to eat something I did not have to cook or clean up after.<</say>>
<<case 3>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>I should make this last. Little luxuries are going to be rare for a while.<</say>>
<</switch>>
<img class="scene-image" @src="_foodImage" alt="">
[[Return->Sit at the table]]
<</nobr>><<nobr>>
<<run setup.consumeBarDrink()>><<run UIBar.update()>>
<<set _drinkImages to [
"media/locations/vestedinterest/drinks/1.webp",
"media/locations/vestedinterest/drinks/2.webp",
"media/locations/vestedinterest/drinks/3.webp",
"media/locations/vestedinterest/drinks/4.webp",
"media/locations/vestedinterest/drinks/5.webp"
]>>
<<set _drinkImage to _drinkImages[random(0, _drinkImages.length - 1)]>>
<<switch random(1, 3)>>
<<case 1>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>Oh... that is much stronger than it tastes.<</say>>
<<case 2>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>That tastes strange. Not bad—just strange.<</say>>
<<case 3>>
<<say $mcname "media/mc/body/hair/normalblonde.png" "thought">>Slowly. I do not want my first reputation in Suns End to be “the girl who cannot hold a drink.”<</say>>
<</switch>>
<img class="scene-image" @src="_drinkImage" alt="">
[[Return->Sit at the table]]
<</nobr>><<set _marketEncounter to setup.rollSlumsDistrictEncounter()>>
<<if _marketEncounter>>
<<set $pendingCombatEncounter to _marketEncounter.enemyName>>
<<set $pendingCombatEncounterFaction to _marketEncounter.faction>>
<<goto _marketEncounter.passage>>
<</if>>
<p>Market Square is less a square than a maze of patched awnings, crowded stalls, and merchants shouting over the transit lines above.</p>
<img class="scene-image" src="media/locations/marketsquare/marketsquare.jpg" alt="Market Square">
[[Thrift Stall]]
[[Gear Stall]]
[[Outside->Slums]]<h2>Thrift Stall</h2>
[[Outside->Market Square]]
<<set $shopNotice to "">>
<div id="wardrobe-ui">
<div id="clothing-shop-ui">
<<clothingShopUI "slums" "outfits">>
</div>
</div><h2>Gear Stall</h2>
[[Outside->Market Square]]
<div id="gear-stall-ui">
<<gearStallUI "weapon">>
</div><<nobr>>
<<if passage() isnot "Character Info" and passage() isnot "Character Stats" and passage() isnot "Support Voluntarily">>
<<set $return to passage()>>
<</if>>
<</nobr>><<run setup.initializeNewStory()>>\
<<switch passage()>>\
<<case "Age Warning">>\
<<case "Start">>\
<<case "Space Port">>\
<<case "Slums Arrival">>\
<<case "Data panel">>\
<<default>>
<<nobr>>
<div class="sidebar-character-panel">
<img @class="'sidebar-character-image sidebar-character-image--' + setup.getMcDispositionBand()" @src="setup.getMcPortrait()" data-mc-portrait alt="">
<strong class="sidebar-character-name">$mcname Savino</strong>
<div class="sidebar-status-lines">
<div class="sidebar-date"><<print setup.formatGameDate()>></div>
<div>Credits: c$credits</div>
<<switch passage()>>
<<case "Character Data Panel">>
<<case "Look up">>
<<default>>
<div>Rent due: c$rentpending</div>
<</switch>>
<div>Situation: $return</div>
</div>
</div>
<<run setup.ensureWardrobeState()>>
<div class="equipment-panel">
<h3>Equipment</h3>
<div class="equipment-grid">
<<for _equipmentCategory range setup.sidebarEquipmentCategories>>
<<capture _equipmentCategory>>
<img
class="equipment-image"
@src="setup.getWornWardrobeImage(_equipmentCategory)"
@alt="setup.wardrobeLabels[_equipmentCategory]"
>
<</capture>>
<</for>>
</div>
<<if $drunkenness > 0>>
<div class="drunkenness-meter">
<div class="drunkenness-meter-label"><span>Drunkenness</span><span>$drunkenness%</span></div>
<div class="drunkenness-meter-track" role="progressbar" aria-label="Drunkenness" aria-valuemin="0" aria-valuemax="100" @aria-valuenow="$drunkenness">
<span class="drunkenness-meter-fill" @style="'width: ' + $drunkenness + '%'"> </span>
</div>
</div>
<</if>>
</div>
<<set _dominanceValue to Math.max(-100, Math.min(100, Number($dominance) || 0))>>
<div class="character-trait-panel">
<h3>Disposition</h3>
<div class="character-trait-labels">
<span>Submissive</span>
<span>Dominant</span>
</div>
<div class="character-trait-bar" role="progressbar" aria-label="Dominance" aria-valuemin="-100" aria-valuemax="100" @aria-valuenow="_dominanceValue">
<span class="character-trait-half character-trait-half--submissive">
<span class="character-trait-fill character-trait-fill--submissive" @style="'width: ' + Math.max(0, -_dominanceValue) + '%'"></span>
</span>
<span class="character-trait-half character-trait-half--dominant">
<span class="character-trait-fill character-trait-fill--dominant" @style="'width: ' + Math.max(0, _dominanceValue) + '%'"></span>
</span>
<span class="character-trait-centre"></span>
</div>
</div>
<<set _corruptionValue to Math.max(-100, Math.min(100, Number($corruption) || 0))>>
<div class="character-trait-panel character-trait-panel--corruption">
<h3>Corruption</h3>
<div class="character-trait-labels">
<span>Wicked</span>
<span>Pure</span>
</div>
<div class="character-trait-bar" role="progressbar" aria-label="Corruption" aria-valuemin="-100" aria-valuemax="100" @aria-valuenow="_corruptionValue">
<span class="character-trait-half character-trait-half--submissive">
<span class="character-trait-fill character-trait-fill--wicked" @style="'width: ' + Math.max(0, -_corruptionValue) + '%'"></span>
</span>
<span class="character-trait-half character-trait-half--dominant">
<span class="character-trait-fill character-trait-fill--pure" @style="'width: ' + Math.max(0, _corruptionValue) + '%'"></span>
</span>
<span class="character-trait-centre"></span>
</div>
</div>
<div class="sidebar-actions">
<<button "Character Info">><<goto "Character Info">><</button>>
<<button "Character Stats">><<goto "Character Stats">><</button>>
</div>
<</nobr>>
<</switch>>\[[Support Voluntarily]]<h2>Support Voluntarily</h2>
<<nobr>>
<div class="voluntary-support-layout">
<div class="voluntary-support-copy">
<p>Thank you for checking out this page! ✨</p>
<p>I am very grateful that you checked out my free game that I develop in my free time. I already support myself from real life work, but if you would like to drop in to my Fansly and give me a voluntary follow, tip or subscription, that would be amazing. I will also look there for the feedback, requests for putting something new in the game, or change how certain thing works.</p>
<p>This game will always be free as it is my free time filler.</p>
<p>All of the subscriptions and tips will go to my sweet black cat Luna 🐈⬛ to upgrade her already prestigious lifestyle 😽.</p>
<div class="voluntary-support">
<a class="voluntary-support-button" href="https://fansly.com/Lero44/t1" target="_blank" rel="noopener noreferrer">Visit my Fansly</a>
</div>
</div>
<figure class="voluntary-support-portrait">
<img src="media/other/luna.jpg" alt="Luna, the developer's black cat">
</figure>
</div>
<div class="character-info-return">
<<link "Return">><<goto $return>><</link>>
</div>
<</nobr>><<widget "arthurSexLockedButton">>
<<set _arthurSexRestriction to _args.length > 1 ? setup.getArthurSexPathRestriction(_args[1]) : null>>
<<if _arthurSexRestriction>>
<span class="arthur-sex-locked arthur-sex-locked--body" @data-tooltip="_arthurSexRestriction.message" tabindex="0">
<button type="button" disabled><<print _args[0]>></button>
</span>
<<elseif $arthurSexRole is "top">>
<span class="arthur-sex-locked arthur-sex-locked--submissive" data-tooltip="You are not submissive enough." tabindex="0">
<button type="button" disabled><<print _args[0]>></button>
</span>
<<else>>
<span class="arthur-sex-locked arthur-sex-locked--dominant" data-tooltip="You are not dominant enough." tabindex="0">
<button type="button" disabled><<print _args[0]>></button>
</span>
<</if>>
<</widget>>
<<widget "arthurSexUI">>
<<set _path to $arthurSexPath>>
<<set _media to setup.getCurrentArthurSexMedia()>>
<<set _children to setup.getArthurSexChildSegments(_path)>>
<div @class="'arthur-sex-interface arthur-sex-interface--' + $sexSceneContext">
<<if $arthurSexStarted>>
<h3>Choose Action</h3>
<div class="arthur-sex-actions arthur-sex-main-actions">
<<for _category range setup.getArthurSexCategories()>>
<<capture _category>>
<<if setup.isArthurSexPathAvailable([_category])>>
<<button setup.getArthurSexLabel(_category)>>
<<run setup.enterArthurSexCategory(_category)>>
<<replace "#arthur-sex-ui">>
<<arthurSexUI>>
<</replace>>
<</button>>
<<else>>
<<arthurSexLockedButton setup.getArthurSexLabel(_category) _category>>
<</if>>
<</capture>>
<</for>>
</div>
<</if>>
<<if _path.length>><h3 class="arthur-sex-path"><<print setup.getArthurSexPathLabel()>></h3><</if>>
<<if _media>>
<div class="arthur-sex-media-frame">
<<if _media.type is "image">>
<img class="arthur-sex-media" @src="_media.file" alt="">
<<else>>
<video class="arthur-sex-media" @src="_media.file" autoplay playsinline loop controls muted></video>
<</if>>
<div id="arthur-sex-speech" class="arthur-sex-speech" aria-live="off">
<img class="arthur-sex-speech-portrait" src="" alt="">
<span class="arthur-sex-speech-body">
<strong class="arthur-sex-speech-name"></strong>
<span class="arthur-sex-speech-text"></span>
</span>
</div>
</div>
<</if>>
<<if _children.length > 0 && _path.length > 0>>
<h4><<if _path[0] is "intro">>Choose Position<<else>>Options<</if>></h4>
<div class="arthur-sex-actions arthur-sex-sub-actions">
<<for _segment range _children>>
<<capture _segment>>
<<if setup.isArthurSexPathAvailable(_path.concat([_segment]))>>
<<button setup.getArthurSexLabel(_segment)>>
<<run setup.enterArthurSexChild(_segment)>>
<<replace "#arthur-sex-ui">>
<<arthurSexUI>>
<</replace>>
<</button>>
<<else>>
<<arthurSexLockedButton setup.getArthurSexLabel(_segment) _path.concat([_segment])>>
<</if>>
<</capture>>
<</for>>
</div>
<</if>>
<div class="arthur-sex-controls">
<<if _media>>
<<button "Another">>
<<run setup.replayArthurSexMedia()>>
<<replace "#arthur-sex-ui">>
<<arthurSexUI>>
<</replace>>
<</button>>
<</if>>
<<if _path.length > 1 && _path[0] isnot "intro">>
<<button "Back">>
<<run setup.backArthurSexPath()>>
<<replace "#arthur-sex-ui">>
<<arthurSexUI>>
<</replace>>
<</button>>
<</if>>
<<if $arthurSexOrgasm>>
<<if $sexSceneContext is "client">>
<span class="arthur-sex-finish"><<link "Finish" $sexSceneReturnPassage>><<run setup.completeWaitressClientSex()>><</link>></span>
<<elseif $sexSceneContext is "bradford">>
<span class="arthur-sex-finish"><<link "Finish" $sexSceneReturnPassage>><</link>></span>
<<elseif $sexSceneContext is "enemy">>
<span class="arthur-sex-finish"><<link "Finish" $sexSceneReturnPassage>><</link>></span>
<<else>>
<span class="arthur-sex-finish"><<link "Finish" "Talk to Arthur">><<run setup.adjustCorruption(-2)>><</link>></span>
<</if>>
<</if>>
</div>
</div>
<<if _media>>
<<run setup.queueArthurSexSpeech()>>
<<else>>
<<run setup.clearArthurSexSpeech()>>
<</if>>
<</widget>><<widget "bodyPartModsUI">>
<<run setup.ensureBodyPartModsState()>>
<<set _bodyModCategory to _args.length && _args[0] is "cosmetic" ? "cosmetic" : "functional">>
<div class="body-mod-interface">
<nav class="body-mod-tabs" aria-label="Body Part Mod categories">
<<if _bodyModCategory is "functional">>
<button type="button" class="is-active" disabled>Functional Mods</button>
<<else>>
<<button "Functional Mods">><<replace "#body-part-mods-ui">><<bodyPartModsUI "functional">><</replace>><</button>>
<</if>>
<<if _bodyModCategory is "cosmetic">>
<button type="button" class="is-active" disabled>Cosmetic Mods</button>
<<else>>
<<button "Cosmetic Mods">><<replace "#body-part-mods-ui">><<bodyPartModsUI "cosmetic">><</replace>><</button>>
<</if>>
</nav>
<div class="body-mod-list">
<<if _bodyModCategory is "functional">>
<p class="body-mod-chart-instruction">Select a highlighted body section to inspect its available Functional Mods.</p>
<div class="body-mod-chart" aria-label="Functional Body Mod slots">
<img src="media/mc/body/bodymods/bodychart.png" alt="Body chart divided into Functional Mod slots">
<<for _functionalSlot range setup.functionalBodyModSlots>>
<<capture _functionalSlot>>
<span @class="'body-mod-hotspot body-mod-hotspot--' + _functionalSlot.key"
@style="setup.getFunctionalBodyModHotspotStyle(_functionalSlot.key)"
@data-label="_functionalSlot.label">
<<link _functionalSlot.label>>
<<run setup.selectFunctionalBodyModSlot(_functionalSlot.key)>>
<<goto "Functional Body Mod Slot">>
<</link>>
</span>
<</capture>>
<</for>>
</div>
<<else>>
<<for _cosmeticMod range setup.cosmeticBodyModDefinitions>>
<<capture _cosmeticMod>>
<<set _cosmeticCooldown to setup.getCosmeticBodyModCooldown(_cosmeticMod.key)>>
<<set _cosmeticCooldownMessage to setup.getCosmeticBodyModCooldownMessage(_cosmeticMod.key)>>
<article class="body-mod-card body-mod-card--cosmetic">
<div class="body-mod-card-details">
<strong><<print _cosmeticMod.label>></strong>
<small><<print _cosmeticMod.description>></small>
<span>Current: <b><<print $bodyPartMods.cosmetics[_cosmeticMod.key]>></b><<if _cosmeticCooldown.active>><br><em><<print _cosmeticCooldown.daysRemaining>> day<<if _cosmeticCooldown.daysRemaining isnot 1>>s<</if>> recovery</em><</if>></span>
</div>
<div class="body-mod-options">
<<for _cosmeticOption range _cosmeticMod.options>>
<<capture _cosmeticMod _cosmeticOption>>
<<set _cosmeticPreviewImage to setup.getCosmeticBodyModPreviewImage(_cosmeticMod.key, _cosmeticOption)>>
<<set _cosmeticCost to setup.getCosmeticBodyModCost(_cosmeticMod.key, _cosmeticOption)>>
<<set _cosmeticOptionLabel to _cosmeticOption + " — c" + _cosmeticCost>>
<span class="npc-preview body-mod-option-preview">
<<if $bodyPartMods.cosmetics[_cosmeticMod.key] is _cosmeticOption>>
<button type="button" class="is-active" disabled><<print _cosmeticOptionLabel>></button>
<<elseif _cosmeticCooldown.active>>
<span class="passage-link-disabled--tooltip" @data-tooltip="_cosmeticCooldownMessage" @aria-label="_cosmeticCooldownMessage" tabindex="0">
<button type="button" disabled aria-hidden="true"><<print _cosmeticOptionLabel>></button>
</span>
<<elseif !setup.canAfford(_cosmeticCost)>>
<span class="passage-link-disabled--tooltip" data-tooltip="Not enough credits." aria-label="Not enough credits." tabindex="0">
<button type="button" disabled aria-hidden="true"><<print _cosmeticOptionLabel>></button>
</span>
<<else>>
<<button _cosmeticOptionLabel>>
<<run setup.purchaseCosmeticBodyMod(_cosmeticMod.key, _cosmeticOption)>>
<<run UIBar.update()>>
<<replace "#body-part-mods-ui">><<bodyPartModsUI "cosmetic">><</replace>>
<</button>>
<</if>>
<<if _cosmeticPreviewImage>>
<span class="npc-preview-card body-mod-preview-card" aria-hidden="true">
<img @src="_cosmeticPreviewImage" @alt="_cosmeticMod.label + ': ' + _cosmeticOption">
</span>
<</if>>
</span>
<</capture>>
<</for>>
</div>
</article>
<</capture>>
<</for>>
<</if>>
</div>
</div>
<</widget>>
<<widget "functionalBodyModSlotUI">>
<<set _functionalSlot to setup.getFunctionalBodyModSlot(_args[0])>>
<<if _functionalSlot>>
<<set _functionalSlotMods to setup.getFunctionalBodyModsForSlot(_functionalSlot.key)>>
<div class="body-mod-interface body-mod-interface--slot">
<<if _functionalSlotMods.length>>
<div class="body-mod-table-wrap">
<table class="body-mod-table">
<thead><tr><th>Mod name</th><th>Type</th><th>Stat change</th><th>Cost</th><th>Status</th></tr></thead>
<tbody>
<<for _functionalMod range _functionalSlotMods>>
<<capture _functionalMod _functionalSlot>>
<<set _functionalInstalled to setup.isFunctionalBodyModInstalled(_functionalMod.id)>>
<tr @class="_functionalInstalled ? 'is-installed' : ''">
<th scope="row"><<print _functionalMod.name>></th>
<td class="body-mod-type"><<print setup.getFunctionalBodyModActivationType(_functionalMod).toUpperFirst()>></td>
<td class="body-mod-stat-change"><<print setup.formatFunctionalBodyModStatChange(_functionalMod)>></td>
<td class="body-mod-cost">c<<print Math.max(0, Math.trunc(Number(_functionalMod.cost) || 0))>></td>
<td>
<<if _functionalInstalled>>
<button type="button" disabled>Installed</button>
<<elseif !setup.canAfford(Math.max(0, Math.trunc(Number(_functionalMod.cost) || 0)))>>
<button type="button" disabled title="Not enough credits">Buy & install</button>
<<else>>
<<button "Buy & install">>
<<run setup.purchaseFunctionalBodyMod(_functionalMod.id)>>
<<replace "#functional-body-mod-slot-ui">><<functionalBodyModSlotUI _functionalSlot.key>><</replace>>
<</button>>
<</if>>
</td>
</tr>
<</capture>>
<</for>>
</tbody>
</table>
</div>
<<else>>
<div class="body-mod-empty">
<strong>No <<print _functionalSlot.label>> mods are currently available.</strong>
<span>Future bio-augmentations for this body slot will appear here.</span>
</div>
<</if>>
</div>
<<else>>
<p class="table-order-error">That body slot is unavailable.</p>
<</if>>
<</widget>><<widget "cheatControls">>
<div id="cheat-controls" class="cheat-controls">
<div class="cheat-control-row">
<span>
<strong>Credits</strong>
<small>c<<print $credits>></small>
</span>
<<button "+100">>
<<run setup.addCredits(100)>>
<<run UIBar.update()>>
<<replace "#cheat-controls">><<cheatControls>><</replace>>
<</button>>
</div>
<div class="cheat-control-row">
<span>
<strong>Corruption</strong>
<small><<print $corruption>></small>
</span>
<span class="cheat-control-buttons">
<<button "−10">>
<<run setup.adjustCorruption(-10)>>
<<run UIBar.update()>>
<<replace "#cheat-controls">><<cheatControls>><</replace>>
<</button>>
<<button "+10">>
<<run setup.adjustCorruption(10)>>
<<run UIBar.update()>>
<<replace "#cheat-controls">><<cheatControls>><</replace>>
<</button>>
</span>
</div>
<div class="cheat-control-row">
<span>
<strong>Disposition</strong>
<small><<print $dominance>></small>
</span>
<span class="cheat-control-buttons">
<<button "−10">>
<<run setup.adjustDominance(-10)>>
<<run UIBar.update()>>
<<run setup.refreshMcPortraits()>>
<<replace "#cheat-controls">><<cheatControls>><</replace>>
<</button>>
<<button "+10">>
<<run setup.adjustDominance(10)>>
<<run UIBar.update()>>
<<run setup.refreshMcPortraits()>>
<<replace "#cheat-controls">><<cheatControls>><</replace>>
<</button>>
</span>
</div>
<div class="cheat-control-row">
<span>
<strong>Strength</strong>
<small><<print $strength>></small>
</span>
<span class="cheat-control-buttons">
<<button "−10">>
<<run setup.adjustStrength(-10)>>
<<run UIBar.update()>>
<<replace "#cheat-controls">><<cheatControls>><</replace>>
<</button>>
<<button "+10">>
<<run setup.adjustStrength(10)>>
<<run UIBar.update()>>
<<replace "#cheat-controls">><<cheatControls>><</replace>>
<</button>>
</span>
</div>
<div class="cheat-control-row">
<span>
<strong>Constitution</strong>
<small><<print $constitution>></small>
</span>
<span class="cheat-control-buttons">
<<button "−10">>
<<run setup.adjustConstitution(-10)>>
<<run UIBar.update()>>
<<replace "#cheat-controls">><<cheatControls>><</replace>>
<</button>>
<<button "+10">>
<<run setup.adjustConstitution(10)>>
<<run UIBar.update()>>
<<replace "#cheat-controls">><<cheatControls>><</replace>>
<</button>>
</span>
</div>
<div class="cheat-control-row">
<span>
<strong>Agility</strong>
<small><<print $agility>></small>
</span>
<span class="cheat-control-buttons">
<<button "−10">>
<<run setup.adjustAgility(-10)>>
<<run UIBar.update()>>
<<replace "#cheat-controls">><<cheatControls>><</replace>>
<</button>>
<<button "+10">>
<<run setup.adjustAgility(10)>>
<<run UIBar.update()>>
<<replace "#cheat-controls">><<cheatControls>><</replace>>
<</button>>
</span>
</div>
<div class="cheat-control-row">
<span>
<strong>Melisa Relationship</strong>
<small><<print setup.ensureMelisaState().relationship>></small>
</span>
<<button "+1">>
<<run setup.adjustMelisaRelationship(1)>>
<<replace "#cheat-controls">><<cheatControls>><</replace>>
<</button>>
</div>
<div class="cheat-control-row">
<span>
<strong>Bradford Relationship</strong>
<small><<print setup.ensureBradfordState().relationship>></small>
</span>
<<button "+1">>
<<run setup.adjustBradfordRelationship(1)>>
<<replace "#cheat-controls">><<cheatControls>><</replace>>
<</button>>
</div>
<div class="cheat-control-row">
<span>
<strong>Fines</strong>
<small>c<<print $fines>></small>
</span>
<span class="cheat-control-buttons">
<<button "−100">>
<<run setup.addFine(-100)>>
<<replace "#cheat-controls">><<cheatControls>><</replace>>
<</button>>
<<button "+100">>
<<run setup.addFine(100)>>
<<replace "#cheat-controls">><<cheatControls>><</replace>>
<</button>>
</span>
</div>
<div class="cheat-control-row">
<span>
<strong>Outstanding Balance</strong>
<small>c<<print $outstandingBalance>></small>
</span>
<span class="cheat-control-buttons">
<<button "−100">>
<<run setup.adjustOutstandingBalance(-100)>>
<<replace "#cheat-controls">><<cheatControls>><</replace>>
<</button>>
<<button "+100">>
<<run setup.adjustOutstandingBalance(100)>>
<<replace "#cheat-controls">><<cheatControls>><</replace>>
<</button>>
</span>
</div>
</div>
<</widget>>/% Start an encounter from any passage with: <<startFight "Enemy Name">> %/
<<widget "startFight">>
<<set _fightEnemyName to _args.length ? String(_args[0]).trim() : "">>
<<if !_fightEnemyName>>
<p class="table-order-error">The startFight command requires an enemy name.</p>
<<else>>
<<set _fightDefeatDestination to _args.length > 1 ? String(_args[1]).trim() : "">>
<<set _fightContext to _args.length > 2 ? String(_args[2]).trim() : "">>
<<set _fightContractId to _args.length > 3 ? String(_args[3]).trim() : "">>
<<set _fightEnemy to setup.startCombatEncounter(_fightEnemyName, _fightDefeatDestination, _fightContext, _fightContractId)>>
<<if _fightEnemy>>
<<goto "Fight">>
<<else>>
<p class="table-order-error">Enemy "<<print _fightEnemyName>>" could not be found in the enemy table.</p>
<</if>>
<</if>>
<</widget>>
<<widget "combatUI">>
<<run setup.ensurePlayerCombatEquipmentState()>>
<<set _combatEnemyName to _args.length && _args[0] ? _args[0] : ($combatEnemy && $combatEnemy.name ? $combatEnemy.name : "Enemy")>>
<<set _combatEnemyImage to _args.length > 1 && _args[1] ? _args[1] : ($combatEnemy && $combatEnemy.image ? $combatEnemy.image : "")>>
<<set _combatEnemyFaction to $combatEnemy && $combatEnemy.faction ? $combatEnemy.faction : "Unaffiliated">>
<<set _combatEnemyTheme to setup.getCombatEnemyKey(_combatEnemyFaction)>>
<<set _combatEnemyWeapon to $combatEnemy && $combatEnemy.weapon ? $combatEnemy.weapon : null>>
<<set _combatEnemyArmor to $combatEnemy && $combatEnemy.armor ? $combatEnemy.armor : null>>
<<set _combatMcWeapon to setup.getCombatActorWeapon("mc")>>
<<set _combatMcArmor to setup.getEquippedPlayerCombatItem("armor")>>
<<set _combatMcStatus to setup.getCombatantStatus("mc")>>
<<set _combatEnemyStatus to setup.getCombatantStatus("enemy")>>
<<run setup.ensureCombatTurnOrder()>>
<div @class="'combat-interface combat-interface--' + _combatEnemyTheme" aria-label="Combat interface">
<header class="combat-turn-order">
<span class="combat-section-label">Turn order</span>
<div class="combat-turn-track" aria-label="Current turn order">
<<for _combatTurnIndex = 0; _combatTurnIndex < $combatTurnQueue.length; _combatTurnIndex++>>
<<set _combatTurnActor to $combatTurnQueue[_combatTurnIndex]>>
<<set _combatTurnName to _combatTurnActor is "mc" ? $mcname : _combatEnemyName>>
<<set _combatTurnImage to _combatTurnActor is "mc" ? setup.getMcPortrait() : _combatEnemyImage>>
<div @class="'combat-turn-card combat-turn-card--' + _combatTurnActor + (_combatTurnIndex === 0 ? ' is-current' : '')" @aria-label="(_combatTurnIndex === 0 ? 'Current turn: ' : 'Upcoming turn: ') + _combatTurnName" @title="_combatTurnName">
<<if _combatTurnImage>>
<img @src="_combatTurnImage" @alt="_combatTurnName">
<<else>>
<span class="combat-turn-card-placeholder" aria-hidden="true">?</span>
<</if>>
<<if _combatTurnIndex === 0>><span class="combat-turn-current">Now</span><</if>>
</div>
<</for>>
</div>
</header>
<section class="combat-nameplate combat-nameplate--mc">
<span class="combat-side-marker">Player</span>
<strong><<print $mcname>></strong>
</section>
<section @class="'combat-nameplate combat-nameplate--enemy' + (_combatEnemyName.length > 24 ? ' combat-nameplate--very-long-name' : (_combatEnemyName.length > 15 ? ' combat-nameplate--long-name' : ''))">
<span class="combat-side-marker">Opponent</span>
<span class="combat-nameplate-identity">
<strong><<print _combatEnemyName>></strong>
<small><<print _combatEnemyFaction>></small>
</span>
</section>
<section class="combat-portrait-panel combat-portrait-panel--mc" aria-label="Main character">
<img class="combat-portrait" @src="setup.getMcPortrait()" @alt="$mcname">
<<if $combatSpeech && $combatSpeech.actor is "mc">>
<div class="combat-speech combat-speech--mc" role="status">
<img @src="$combatSpeech.portrait" @alt="$combatSpeech.name">
<span><strong><<print $combatSpeech.name>></strong><q><<print $combatSpeech.text>></q></span>
</div>
<</if>>
</section>
<section class="combat-log" aria-label="Battle log" aria-live="polite">
<div class="combat-log-heading">
<strong>Battle Log</strong>
<span>Turn <<print $combatTurnNumber>></span>
</div>
<ol class="combat-log-entries">
<<for _combatLogEntry range $combatLog>>
<li @value="_combatLogEntry.turn"><span><<print _combatLogEntry.label>></span> <<print _combatLogEntry.text>></li>
<</for>>
</ol>
</section>
<section class="combat-portrait-panel combat-portrait-panel--enemy" aria-label="Enemy">
<<if _combatEnemyImage>>
<img class="combat-portrait combat-portrait--enemy" @src="_combatEnemyImage" @alt="_combatEnemyName">
<<else>>
<div class="combat-enemy-placeholder" aria-hidden="true">
<span>?</span>
<small>Enemy image</small>
</div>
<</if>>
<<if $combatSpeech && $combatSpeech.actor is "enemy">>
<div @class="'combat-speech combat-speech--enemy combat-speech--' + _combatEnemyTheme" role="status">
<<if $combatSpeech.portrait>><img @src="$combatSpeech.portrait" @alt="$combatSpeech.name"><</if>>
<span><strong><<print $combatSpeech.name>></strong><q><<print $combatSpeech.text>></q></span>
</div>
<</if>>
</section>
<section class="combat-vitals combat-vitals--mc" aria-label="Main character status">
<div class="combat-vital-row">
<span>Health</span>
<div class="combat-vital-bar" role="progressbar" aria-label="Main character health" aria-valuemin="0" @aria-valuemax="_combatMcStatus.maxHealth" @aria-valuenow="_combatMcStatus.health">
<span class="combat-vital-fill combat-vital-fill--health" @style="'width: ' + (_combatMcStatus.health / _combatMcStatus.maxHealth * 100) + '%'" ></span>
</div>
<strong><<print _combatMcStatus.health>> / <<print _combatMcStatus.maxHealth>></strong>
</div>
<div class="combat-vital-row">
<span>Stamina</span>
<div class="combat-vital-bar" role="progressbar" aria-label="Main character stamina" aria-valuemin="0" @aria-valuemax="_combatMcStatus.maxStamina" @aria-valuenow="_combatMcStatus.stamina">
<span class="combat-vital-fill combat-vital-fill--stamina" @style="'width: ' + (_combatMcStatus.stamina / _combatMcStatus.maxStamina * 100) + '%'" ></span>
</div>
<strong><<print _combatMcStatus.stamina>> / <<print _combatMcStatus.maxStamina>></strong>
</div>
</section>
<section class="combat-vitals combat-vitals--enemy" aria-label="Enemy status">
<div class="combat-vital-row">
<span>Health</span>
<div class="combat-vital-bar" role="progressbar" aria-label="Enemy health" aria-valuemin="0" @aria-valuemax="_combatEnemyStatus.maxHealth" @aria-valuenow="_combatEnemyStatus.health">
<span class="combat-vital-fill combat-vital-fill--health" @style="'width: ' + (_combatEnemyStatus.health / _combatEnemyStatus.maxHealth * 100) + '%'" ></span>
</div>
<strong><<print _combatEnemyStatus.health>> / <<print _combatEnemyStatus.maxHealth>></strong>
</div>
<div class="combat-vital-row">
<span>Stamina</span>
<div class="combat-vital-bar" role="progressbar" aria-label="Enemy stamina" aria-valuemin="0" @aria-valuemax="_combatEnemyStatus.maxStamina" @aria-valuenow="_combatEnemyStatus.stamina">
<span class="combat-vital-fill combat-vital-fill--stamina" @style="'width: ' + (_combatEnemyStatus.stamina / _combatEnemyStatus.maxStamina * 100) + '%'" ></span>
</div>
<strong><<print _combatEnemyStatus.stamina>> / <<print _combatEnemyStatus.maxStamina>></strong>
</div>
</section>
<section class="combat-equipment combat-equipment--mc" aria-label="Main character equipment">
<div><span>Weapon</span><strong><<if _combatMcWeapon>><<print _combatMcWeapon.name>><<else>>Fists<</if>></strong></div>
<div><span>Ammo</span><strong><<print setup.getVisibleCombatAmmoLabel("mc")>></strong></div>
<div><span>Armor</span><strong><<if _combatMcArmor>><<print _combatMcArmor.name>><<else>>None<</if>></strong></div>
</section>
<section class="combat-actions" aria-label="Combat actions">
<<capture _combatEnemyName _combatEnemyImage>>
<<if $combatOutcome>>
<button type="button" disabled>Fight Over</button>
<button type="button" disabled>Defend</button>
<button type="button" disabled>Rest</button>
<button type="button" disabled>Use Item</button>
<button type="button" disabled>Use Body Mod</button>
<button type="button" disabled>Try to Escape</button>
<<elseif setup.getCurrentCombatActor() is "mc">>
<<set _combatMcMagazine to setup.getCombatMagazine("mc")>>
<<if _combatMcMagazine && _combatMcMagazine.current <= 0>>
<<button "Reload">>
<<set _combatActionResult to setup.reloadCombatWeapon("mc")>>
<<replace "#combat-ui">><<combatUI _combatEnemyName _combatEnemyImage>><</replace>>
<</button>>
<<else>>
<<button "Attack">>
<<set _combatActionResult to setup.performCombatAttack("mc")>>
<<replace "#combat-ui">><<combatUI _combatEnemyName _combatEnemyImage>><</replace>>
<</button>>
<</if>>
<<else>>
<button type="button" disabled>Enemy Turn</button>
<</if>>
<<if !$combatOutcome && setup.getCurrentCombatActor() is "mc">>
<<if _combatMcStatus.stamina >= 25>>
<<button "Defend">>
<<run setup.performCombatDefend("mc")>>
<<replace "#combat-ui">><<combatUI _combatEnemyName _combatEnemyImage>><</replace>>
<</button>>
<<else>>
<button type="button" disabled title="Not enough stamina">Defend</button>
<</if>>
<<button "Rest">>
<<run setup.performCombatRest("mc")>>
<<replace "#combat-ui">><<combatUI _combatEnemyName _combatEnemyImage>><</replace>>
<</button>>
<<button "Use Item">>
<<replace "#combat-body-mod-menu">><</replace>>
<<replace "#combat-item-menu">>
<strong>Combat Items — <<print setup.getCombatItemSlotCapacity()>> slot<<if setup.getCombatItemSlotCapacity() is not 1>>s<</if>></strong>
<<for _combatItemSlot range setup.getUnlockedCombatItemSlots()>>
<<capture _combatItemSlot _combatEnemyName _combatEnemyImage>>
<<set _combatDefinedItem to setup.getCombatItemById(_combatItemSlot.item)>>
<<set _combatItemAvailability to setup.getCombatItemUseAvailability(_combatItemSlot.index)>>
<<set _combatItemButtonLabel to setup.getCombatItemSlotLabel(_combatItemSlot) + (_combatDefinedItem ? " ×" + setup.getCombatItemCount(_combatDefinedItem.id) : "")>>
<<if _combatItemAvailability.ok>>
<<button _combatItemButtonLabel>>
<<run setup.performCombatItemUse(_combatItemSlot.index)>>
<<replace "#combat-ui">><<combatUI _combatEnemyName _combatEnemyImage>><</replace>>
<</button>>
<<else>>
<button type="button" disabled @title="setup.getCombatItemUnavailableMessage(_combatItemAvailability.reason)"><<print _combatItemButtonLabel>></button>
<</if>>
<</capture>>
<</for>>
<</replace>>
<</button>>
<<if setup.getUsableCombatBodyMods().length>>
<<button "Use Body Mod">>
<<replace "#combat-item-menu">><</replace>>
<<replace "#combat-body-mod-menu">>
<strong>Use Body Mod</strong>
<<if setup.canUseCombinedMantisBladeAction()>>
<<button setup.getCombinedMantisBladeActionLabel()>>
<<run setup.toggleBothMantisBlades()>>
<<replace "#combat-ui">><<combatUI _combatEnemyName _combatEnemyImage>><</replace>>
<</button>>
<</if>>
<<for _combatActiveMod range setup.getUsableCombatBodyMods()>>
<<capture _combatActiveMod _combatEnemyName _combatEnemyImage>>
<<button setup.getCombatBodyModActionLabel(_combatActiveMod)>>
<<run setup.toggleCombatBodyMod(_combatActiveMod.id)>>
<<replace "#combat-ui">><<combatUI _combatEnemyName _combatEnemyImage>><</replace>>
<</button>>
<</capture>>
<</for>>
<</replace>>
<</button>>
<<else>>
<button type="button" disabled title="No usable combat Body Mods are installed">Use Body Mod</button>
<</if>>
<<button "Try to Escape">>
<<set _combatActionResult to setup.performCombatEscape("mc")>>
<<goto _combatActionResult.destination>>
<</button>>
<<elseif !$combatOutcome>>
<button type="button" disabled>Defend</button>
<button type="button" disabled>Rest</button>
<button type="button" disabled>Use Item</button>
<button type="button" disabled>Use Body Mod</button>
<button type="button" disabled>Try to Escape</button>
<</if>>
<div id="combat-item-menu" class="combat-body-mod-menu combat-item-menu" aria-live="polite"></div>
<div id="combat-body-mod-menu" class="combat-body-mod-menu" aria-live="polite"></div>
<</capture>>
</section>
<section class="combat-equipment combat-equipment--enemy" aria-label="Enemy equipment">
<div><span>Weapon</span><strong><<if _combatEnemyWeapon>><<print _combatEnemyWeapon.name>><<else>>None<</if>></strong></div>
<div><span>Ammo</span><strong><<print setup.getVisibleCombatAmmoLabel("enemy")>></strong></div>
<div><span>Armor</span><strong><<if _combatEnemyArmor>><<print _combatEnemyArmor.name>><<else>>None<</if>></strong></div>
</section>
</div>
<<if $combatOutcome>>
<div @class="'combat-outcome combat-outcome--' + $combatOutcome.type" aria-live="assertive">
<<if $combatOutcome.type is "victory">>
<<button "Victory">><<goto $combatOutcome.destination>><</button>>
<<else>>
<<button "Defeat">>
<<set _combatDefeatDestination to setup.resolveCombatDefeatDestination()>>
<<goto _combatDefeatDestination>>
<</button>>
<</if>>
</div>
<<elseif setup.getCurrentCombatActor() is "enemy">>
<<timed 1400ms>>
<<set _combatEnemyResult to setup.performCombatEnemyTurn()>>
<<replace "#combat-ui">><<combatUI>><</replace>>
<</timed>>
<</if>>
<</widget>>
<<widget "gearStallUI">>
<<run setup.ensurePlayerCombatEquipmentState()>>
<<set _gearCategory to _args.length && _args[0] is "armor" ? "armor" : (_args.length && _args[0] is "item" ? "item" : "weapon")>>
<<set _gearItems to setup.getGearStallItems(_gearCategory)>>
<div class="gear-stall-interface">
<nav class="gear-stall-tabs" aria-label="Gear categories">
<<if _gearCategory is "weapon">>
<button type="button" class="is-active" disabled>Weapons</button>
<<else>>
<<button "Weapons">><<replace "#gear-stall-ui">><<gearStallUI "weapon">><</replace>><</button>>
<</if>>
<<if _gearCategory is "armor">>
<button type="button" class="is-active" disabled>Armor</button>
<<else>>
<<button "Armor">><<replace "#gear-stall-ui">><<gearStallUI "armor">><</replace>><</button>>
<</if>>
<<if _gearCategory is "item">>
<button type="button" class="is-active" disabled>Items</button>
<<else>>
<<button "Items">><<replace "#gear-stall-ui">><<gearStallUI "item">><</replace>><</button>>
<</if>>
</nav>
<<if $gearStallNotice>>
<p class="gear-stall-notice"><<print $gearStallNotice>></p>
<</if>>
<div class="gear-stall-list">
<<for _gearItem range _gearItems>>
<<capture _gearItem _gearCategory>>
<<set _gearOwned to false>>
<<if _gearCategory is "weapon" or _gearCategory is "armor">>
<<set _gearOwned to setup.ownsPlayerCombatItem(_gearCategory, _gearItem.name)>>
<</if>>
<<set _gearCost to setup.normalizeMoney(_gearItem.cost, 0, false)>>
<<set _gearBuyLabel to "Buy — c" + _gearCost>>
<article @class="'gear-stall-item' + (_gearOwned ? ' is-owned' : '')">
<div class="gear-stall-item-details">
<strong><<print _gearItem.name>></strong>
<<if _gearCategory is "weapon">>
<small>Level <<print _gearItem.level>> · Damage <<print _gearItem.damage>> · <<if setup.isRangedCombatWeapon(_gearItem)>>Ranged · Magazine <<print _gearItem.magazineSize>> · <<print _gearItem.ammoType>><<else>>Melee<</if>></small>
<<elseif _gearCategory is "armor">>
<small>Level <<print _gearItem.level>> · Defence <<print _gearItem.defence>>%</small>
<<else>>
<small><<print _gearItem.description>> · Owned: <<print setup.getCombatItemCount(_gearItem.id)>></small>
<</if>>
</div>
<div class="gear-stall-item-purchase">
<<if _gearCategory is "item">>
<label class="gear-item-quantity-control" @for="'gear-item-quantity-' + _gearItem.id">
<span>Quantity</span>
<input class="gear-item-quantity" type="number" min="1" max="999" step="1" value="1" @id="'gear-item-quantity-' + _gearItem.id" @data-unit-cost="_gearCost">
</label>
<strong class="gear-item-total-cost">Total: c<<print _gearCost>></strong>
<span class="gear-item-bulk-buy">
<<if !setup.canAfford(_gearCost)>>
<button type="button" disabled title="Not enough credits">Buy selected</button>
<<else>>
<<button "Buy selected">>
<<set _gearPurchaseQuantity to setup.getGearStallItemPurchaseQuantity(_gearItem.id)>>
<<set _gearPurchaseResult to setup.purchaseCombatItems(_gearItem.id, _gearPurchaseQuantity)>>
<<if _gearPurchaseResult.ok>>
<<set $gearStallNotice to "Purchased " + _gearPurchaseResult.purchased + " × " + _gearItem.name + " for c" + _gearPurchaseResult.cost + ".">>
<<else>>
<<set $gearStallNotice to "Not enough credits for that quantity.">>
<</if>>
<<run UIBar.update()>>
<<replace "#gear-stall-ui">><<gearStallUI "item">><</replace>>
<</button>>
<</if>>
</span>
<<elseif _gearOwned>>
<button type="button" class="gear-stall-sold" disabled aria-label="Sold">Sold</button>
<<elseif !setup.canAfford(_gearCost)>>
<button type="button" disabled title="Not enough credits"><<print _gearBuyLabel>></button>
<<else>>
<<button _gearBuyLabel>>
<<set _gearPurchaseResult to setup.purchasePlayerCombatItem(_gearCategory, _gearItem.name)>>
<<if _gearPurchaseResult.ok>>
<<set $gearStallNotice to "Purchased " + _gearItem.name + " for c" + _gearPurchaseResult.cost + ".">>
<<elseif _gearPurchaseResult.reason is "not-enough-credits">>
<<set $gearStallNotice to "Not enough credits for " + _gearItem.name + ".">>
<<elseif _gearPurchaseResult.reason is "already-owned">>
<<set $gearStallNotice to _gearItem.name + " has already been sold to you.">>
<<else>>
<<set $gearStallNotice to "That item could not be purchased.">>
<</if>>
<<run UIBar.update()>>
<<replace "#gear-stall-ui">>
<<if _gearCategory is "armor">>
<<gearStallUI "armor">>
<<else>>
<<gearStallUI "weapon">>
<</if>>
<</replace>>
<</button>>
<</if>>
</div>
</article>
<</capture>>
<</for>>
</div>
</div>
<</widget>>
<<widget "combatEquipmentUI">>
<<run setup.ensurePlayerCombatEquipmentState()>>
<div class="combat-loadout-interface">
<section class="combat-loadout-section">
<header>
<h3>Weapon</h3>
<span>Equipped: <<print $combatEquipment.weapon>></span>
</header>
<div class="combat-loadout-list">
<<for _combatLoadoutItem range setup.getOwnedPlayerCombatEquipment("weapon")>>
<<capture _combatLoadoutItem>>
<article @class="'combat-loadout-card' + ($combatEquipment.weapon === _combatLoadoutItem.name ? ' is-equipped' : '')">
<div>
<strong><<print _combatLoadoutItem.name>></strong>
<small>Damage: <<print _combatLoadoutItem.damage>> · <<if setup.isRangedCombatWeapon(_combatLoadoutItem)>>Ranged · Magazine: <<print _combatLoadoutItem.magazineSize>> · Ammo: <<print _combatLoadoutItem.ammoType>><<else>>Melee<</if>></small>
</div>
<<if $combatEquipment.weapon === _combatLoadoutItem.name>>
<button type="button" disabled>Equipped</button>
<<else>>
<<button "Equip">>
<<run setup.equipPlayerCombatItem("weapon", _combatLoadoutItem.name)>>
<<replace "#combat-loadout-ui">><<combatEquipmentUI>><</replace>>
<</button>>
<</if>>
</article>
<</capture>>
<</for>>
</div>
</section>
<section class="combat-loadout-section">
<header>
<h3>Armor</h3>
<span>Equipped: <<print $combatEquipment.armor>></span>
</header>
<div class="combat-loadout-list">
<<for _combatLoadoutItem range setup.getOwnedPlayerCombatEquipment("armor")>>
<<capture _combatLoadoutItem>>
<article @class="'combat-loadout-card' + ($combatEquipment.armor === _combatLoadoutItem.name ? ' is-equipped' : '')">
<div>
<strong><<print _combatLoadoutItem.name>></strong>
<small>Defence: <<print _combatLoadoutItem.defence>>%</small>
</div>
<<if $combatEquipment.armor === _combatLoadoutItem.name>>
<button type="button" disabled>Equipped</button>
<<else>>
<<button "Equip">>
<<run setup.equipPlayerCombatItem("armor", _combatLoadoutItem.name)>>
<<replace "#combat-loadout-ui">><<combatEquipmentUI>><</replace>>
<</button>>
<</if>>
</article>
<</capture>>
<</for>>
</div>
</section>
<section class="combat-loadout-section combat-loadout-section--items">
<header>
<h3>Items</h3>
<span><<print setup.getCombatItemSlotCapacity()>> slot<<if setup.getCombatItemSlotCapacity() is not 1>>s<</if>> available</span>
</header>
<div class="combat-loadout-list">
<<for _combatItemSlot range setup.getUnlockedCombatItemSlots()>>
<<capture _combatItemSlot>>
<<set _combatSlottedItem to setup.getCombatItemById(_combatItemSlot.item)>>
<article class="combat-loadout-card combat-loadout-card--item-slot">
<div>
<strong>Item Slot <<print _combatItemSlot.number>></strong>
<small><<if _combatSlottedItem>><<print _combatSlottedItem.name>> · Owned: <<print setup.getCombatItemCount(_combatSlottedItem.id)>><<else>>Empty<</if>></small>
</div>
<<if _combatSlottedItem>>
<<button "Unequip">>
<<run setup.clearCombatItemSlot(_combatItemSlot.index)>>
<<replace "#combat-loadout-ui">><<combatEquipmentUI>><</replace>>
<</button>>
<</if>>
<div class="combat-item-slot-options">
<<for _combatOwnedItem range setup.getOwnedCombatItems()>>
<<capture _combatOwnedItem _combatItemSlot>>
<<if _combatSlottedItem && _combatSlottedItem.id is _combatOwnedItem.id>>
<button type="button" disabled><<print _combatOwnedItem.name>> — Equipped</button>
<<elseif setup.getEquippedCombatItemIds().includes(_combatOwnedItem.id)>>
<button type="button" disabled title="Equipped in another item slot"><<print _combatOwnedItem.name>></button>
<<else>>
<<button _combatOwnedItem.name>>
<<run setup.assignCombatItemToSlot(_combatItemSlot.index, _combatOwnedItem.id)>>
<<replace "#combat-loadout-ui">><<combatEquipmentUI>><</replace>>
<</button>>
<</if>>
<</capture>>
<</for>>
</div>
</article>
<</capture>>
<</for>>
<<if !setup.getOwnedCombatItems().length>>
<p class="combat-loadout-empty">No combat items owned. Buy them from the Gear Stall.</p>
<</if>>
</div>
</section>
</div>
<</widget>><<widget "contractsUI">>
<<set _contractState to setup.ensureMercenaryContractState()>>
<<set _activeContract to setup.getActiveMercenaryContract()>>
<div class="contracts-interface">
<nav class="contracts-tabs" aria-label="Contract categories">
<button type="button" class="is-active" disabled>Takeout</button>
</nav>
<div class="contracts-grid">
<<for _contract range _contractState.offers>>
<<capture _contract>>
<article @class="'contract-card contract-card--' + _contract.status + (_contractState.active === _contract.id ? ' is-active' : '')">
<<if _contract.targetImage>>
<img @src="_contract.targetImage" @alt="_contract.targetName">
<</if>>
<div class="contract-card-details">
<strong><<print _contract.title>></strong>
<span>Payment: c<<print _contract.price>></span>
</div>
<div class="contract-card-actions">
<<if _contract.status === "done">>
<button type="button" class="contract-status-done" disabled>Done</button>
<<elseif _contract.status === "dropped">>
<button type="button" disabled>Dropped</button>
<<elseif _contract.status === "expired">>
<button type="button" disabled>Expired</button>
<<elseif _contractState.active === _contract.id>>
<button type="button" disabled>Active</button>
<<set _contractDropLabel to "Drop — penalty c" + setup.getMercenaryContractPenalty(_contract)>>
<<button _contractDropLabel>>
<<run setup.dropMercenaryContract("manual")>>
<<replace "#contracts-ui">><<contractsUI>><</replace>>
<</button>>
<<elseif _activeContract>>
<button type="button" disabled title="Only one contract may be active">Contract active</button>
<<else>>
<<button "Accept">>
<<run setup.acceptMercenaryContract(_contract.id)>>
<<replace "#contracts-ui">><<contractsUI>><</replace>>
<</button>>
<</if>>
</div>
</article>
<</capture>>
<</for>>
</div>
<<if !_contractState.offers.length>>
<p class="table-order-error">No Criminal targets are available for Takeout contracts.</p>
<</if>>
</div>
<</widget>><<widget "shaveMenu">>
<<set _currentPubicHair to setup.getPubicHairStage()>>
<div class="shave-interface">
<div class="shave-current">
<img @src="setup.getPubicHairImage()" @alt="'Current pubic hair length: ' + _currentPubicHair.label">
<span>Current: <strong><<print _currentPubicHair.label>></strong></span>
</div>
<div class="shave-options" aria-label="Pubic hair length">
<<for _pubicHairStage range setup.pubicHairStages.slice().reverse()>>
<<capture _pubicHairStage>>
<<if _pubicHairStage.id is _currentPubicHair.id>>
<button type="button" class="is-active" disabled><<print _pubicHairStage.label>> — Current</button>
<<elseif setup.canSetPubicHairLength(_pubicHairStage.id)>>
<<button _pubicHairStage.label>>
<<run setup.setPubicHairLength(_pubicHairStage.id)>>
<<replace "#shave-ui">><<shaveMenu>><</replace>>
<</button>>
<<else>>
<button type="button" disabled title="You cannot shave it longer. It must grow naturally over time."><<print _pubicHairStage.label>></button>
<</if>>
<</capture>>
<</for>>
</div>
</div>
<</widget>><<widget "gymMedia">>
<<set _gymMedia to _args[0]>>
<<if _gymMedia>>
<<if _gymMedia.type is "video">>
<video class="gym-workout-media" @src="_gymMedia.file" autoplay loop muted controls></video>
<<else>>
<img class="gym-workout-media" @src="_gymMedia.file" alt="Gym activity">
<</if>>
<</if>>
<</widget>>
<<widget "gymExerciseMenu">>
<<set _gymMenuCategoryId to String(_args[0] || "")>>
<<set _gymMenuCategoryData to setup.gymTrainingCategories.find(function (entry) { return entry.id === _gymMenuCategoryId; })>>
<<if _gymMenuCategoryData>>
<div class="gym-exercise-menu">
<h3><<print _gymMenuCategoryData.label>></h3>
<p><<print _gymMenuCategoryData.description>></p>
<div class="gym-exercise-options">
<<for _gymExercise range setup.getGymExercisesByCategory(_gymMenuCategoryId)>>
<<capture _gymExercise>>
<<link _gymExercise.label>>
<<set _gymResult to setup.completeGymWorkout(_gymExercise.id)>>
<<if _gymResult.ok>>
<<goto "Gym Workout Result">>
<</if>>
<</link>>
<</capture>>
<</for>>
</div>
</div>
<<else>>
<p class="table-order-error">That training category is unavailable.</p>
<</if>>
<</widget>><<widget "melisaBedroomSexUI">>
<<set _bedroomSex to setup.ensureMelisaBedroomSexState()>>
<div class="melisa-bedroom-sex-interface">
<h3><<print setup.formatMelisaBedroomSexLabel(_bedroomSex.currentActionLabel)>></h3>
<p class="melisa-bedroom-sex-position"><<print _bedroomSex.topPartner === "melisa" ? "Melisa is leading" : $mcname + " is leading">></p>
<<if _bedroomSex.currentMedia>>
<div class="arthur-sex-media-frame">
<video class="arthur-sex-media" @src="_bedroomSex.currentMedia.file" autoplay playsinline loop controls muted></video>
<<if _bedroomSex.speech && _bedroomSex.speech.text>>
<div id="melisa-bedroom-sex-speech" @class="'arthur-sex-speech arthur-sex-speech--' + _bedroomSex.speech.speaker">
<img class="arthur-sex-speech-portrait" @src="_bedroomSex.speech.speaker === 'melisa' ? 'media/characters/melisa/melisa.jpg' : setup.getMcPortrait()" alt="">
<span class="arthur-sex-speech-body">
<strong class="arthur-sex-speech-name"><<print _bedroomSex.speech.speaker === "melisa" ? "Melisa" : $mcname>></strong>
<span class="arthur-sex-speech-text"><<print _bedroomSex.speech.text>></span>
</span>
</div>
<</if>>
</div>
<</if>>
<<if _bedroomSex.pendingSequence.length>>
<div class="melisa-bedroom-sex-continue">
<<button "Continue">>
<<run setup.continueMelisaBedroomSexSequence()>>
<<replace "#melisa-bedroom-sex-ui">><<melisaBedroomSexUI>><</replace>>
<</button>>
</div>
<<else>>
<div class="melisa-bedroom-sex-groups">
<<for _bedroomGroup range setup.melisaBedroomSexActionGroups>>
<<set _bedroomActions to setup.getMelisaBedroomSexActions(_bedroomGroup.id)>>
<<if _bedroomActions.length>>
<section class="melisa-bedroom-sex-group">
<h4><<print setup.formatMelisaBedroomSexLabel(_bedroomGroup.label)>></h4>
<div class="arthur-sex-actions">
<<for _bedroomAction range _bedroomActions>>
<<capture _bedroomAction>>
<<button setup.formatMelisaBedroomSexLabel(setup.melisaBedroomSexActionDefinitions[_bedroomAction].label)>>
<<run setup.playMelisaBedroomSexAction(_bedroomAction)>>
<<replace "#melisa-bedroom-sex-ui">><<melisaBedroomSexUI>><</replace>>
<</button>>
<</capture>>
<</for>>
</div>
</section>
<</if>>
<</for>>
</div>
<<if setup.canFinishMelisaBedroomSex()>>
<div class="melisa-bedroom-sex-finish">
<<button "Cuddle together">>
<<run setup.finishMelisaBedroomSex()>>
<<goto "Melisa Bedroom Sex Aftercare">>
<</button>>
</div>
<</if>>
<</if>>
</div>
<<if _bedroomSex.currentMedia>><<run setup.queueMelisaBedroomSexSpeech()>><</if>>
<</widget>><<widget "wardrobeUI">>
<<run setup.ensureWardrobeState()>>
<<set _activeCategory to _args[0] || "outfits">>
<<set _ownedStyles to setup.getOwnedWardrobeStyles(_activeCategory)>>
<<set _requestedStyle to _args.length > 1 ? _args[1] : null>>
<<if _requestedStyle is null || !_ownedStyles.includes(_requestedStyle)>>
<<set _activeStyle to _ownedStyles.length > 0 ? _ownedStyles[0] : null>>
<<else>>
<<set _activeStyle to _requestedStyle>>
<</if>>
<div class="wardrobe-tabs">
<<for _category range setup.wardrobeCategories>>
<<capture _category>>
<<button setup.wardrobeLabels[_category]>>
<<replace "#wardrobe-ui">>
<<wardrobeUI _category>>
<</replace>>
<</button>>
<</capture>>
<</for>>
</div>
<h3><<print setup.wardrobeLabels[_activeCategory]>></h3>
<<if _ownedStyles.length > 0>>
<div class="wardrobe-tabs wardrobe-subcategory-tabs">
<<for _style range _ownedStyles>>
<<capture _style _activeCategory>>
<<button setup.getWardrobeStyleLabel(_style)>>
<<replace "#wardrobe-ui">>
<<wardrobeUI _activeCategory _style>>
<</replace>>
<</button>>
<</capture>>
<</for>>
</div>
<<else>>
<p class="wardrobe-empty">No clothing owned in this category.</p>
<</if>>
<div class="wardrobe-grid">
<!-- The None option -->
<<capture _activeCategory _activeStyle>>
<div class="wardrobe-card">
<img
class="wardrobe-image wardrobe-none-image"
loading="lazy"
@src="setup.getWardrobeNoneImage(_activeCategory)"
alt="Nothing equipped"
>
<div class="wardrobe-item-name">
None
</div>
<<if $worn[_activeCategory] is null>>
<span class="wardrobe-equipped">
Equipped
</span>
<<else>>
<<button "Select">>
<<set $worn[_activeCategory] to null>>
<<run UIBar.update()>>
<<replace "#wardrobe-ui">>
<<wardrobeUI _activeCategory _activeStyle>>
<</replace>>
<</button>>
<</if>>
</div>
<</capture>>
<!-- Owned clothing items in the active subcategory -->
<<for _item range setup.getOwnedWardrobeItemsByStyle(_activeCategory, _activeStyle)>>
<<capture _item _activeCategory _activeStyle>>
<div class="wardrobe-card">
<img
class="wardrobe-image"
loading="lazy"
@src="_item.image"
@alt="_item.name"
>
<div class="wardrobe-item-name">
<<print _item.name>>
</div>
<<if $worn[_activeCategory] is _item.id>>
<span class="wardrobe-equipped">
Equipped
</span>
<<else>>
<<button "Wear">>
<<set $worn[_activeCategory] to _item.id>>
<<run UIBar.update()>>
<<replace "#wardrobe-ui">>
<<wardrobeUI _activeCategory _activeStyle>>
<</replace>>
<</button>>
<</if>>
</div>
<</capture>>
<</for>>
</div>
<div class="wardrobe-global-actions">
<<capture _activeCategory _activeStyle>>
<<button "Remove all clothes">>
<<for _category range setup.wardrobeCategories>>
<<set $worn[_category] to null>>
<</for>>
<<run UIBar.update()>>
<<replace "#wardrobe-ui">>
<<wardrobeUI _activeCategory _activeStyle>>
<</replace>>
<</button>>
<</capture>>
</div>
<</widget>>
<<widget "clothingShopUI">>
<<run setup.ensureWardrobeState()>>
<<set _shopId to _args[0] || "slums">>
<<set _shopCategories to setup.getClothingShopCategories(_shopId)>>
<<set _activeCategory to _args[1] || _shopCategories[0]>>
<<if !_shopCategories.includes(_activeCategory)>>
<<set _activeCategory to _shopCategories[0]>>
<</if>>
<<set _styles to setup.getClothingShopStyles(_shopId, _activeCategory)>>
<<set _requestedStyle to _args.length > 2 ? _args[2] : null>>
<<if _requestedStyle is null || !_styles.includes(_requestedStyle)>>
<<set _activeStyle to _styles[0] || "">>
<<else>>
<<set _activeStyle to _requestedStyle>>
<</if>>
<div class="wardrobe-tabs">
<<for _category range _shopCategories>>
<<capture _shopId _category>>
<<button setup.wardrobeLabels[_category]>>
<<replace "#clothing-shop-ui">>
<<clothingShopUI _shopId _category>>
<</replace>>
<</button>>
<</capture>>
<</for>>
</div>
<h3><<print setup.wardrobeLabels[_activeCategory]>></h3>
<div class="wardrobe-tabs wardrobe-subcategory-tabs">
<<for _style range _styles>>
<<capture _shopId _style _activeCategory>>
<<button `setup.getClothingShopStyleLabel(_shopId, _activeCategory, _style)`>>
<<replace "#clothing-shop-ui">>
<<clothingShopUI _shopId _activeCategory _style>>
<</replace>>
<</button>>
<</capture>>
<</for>>
</div>
<<if $shopNotice>>
<p class="shop-feedback">$shopNotice</p>
<</if>>
<div class="wardrobe-grid">
<<for _item range setup.getClothingShopItems(_shopId, _activeCategory, _activeStyle)>>
<<capture _shopId _item _activeCategory _activeStyle>>
<<set _purchaseLockMessage to setup.getWardrobePurchaseLockMessage(_item)>>
<div class="wardrobe-card">
<img
class="wardrobe-image"
loading="lazy"
@src="_item.image"
@alt="_item.name"
>
<div class="wardrobe-item-name">
<<print _item.name>>
</div>
<div class="shop-item-price">
c<<print _item.price>>
</div>
<<if $ownedClothes[_activeCategory].includes(_item.id)>>
<span class="wardrobe-equipped">Owned</span>
<<elseif _purchaseLockMessage>>
<span class="shop-buy-lock passage-link-disabled--tooltip" @data-tooltip="_purchaseLockMessage" @aria-label="_purchaseLockMessage" tabindex="0">
<button class="shop-buy-disabled" type="button" disabled aria-hidden="true">
Buy — c<<print _item.price>>
</button>
</span>
<<else>>
<<set _buyLabel to "Buy — c" + _item.price>>
<<button _buyLabel>>
<<set _purchase to setup.buyClothingShopItem(_shopId, _activeCategory, _item.id)>>
<<if _purchase.ok>>
<<set $shopNotice to "Purchased " + _item.name + " for c" + _item.price + ".">>
<<run UIBar.update()>>
<<elseif _purchase.reason is "funds">>
<<set $shopNotice to "Not enough credits for " + _item.name + ".">>
<<elseif _purchase.reason is "corruption">>
<<set $shopNotice to "Your Corruption is too high to buy " + _item.name + ".">>
<<else>>
<<set $shopNotice to "That item could not be purchased.">>
<</if>>
<<replace "#clothing-shop-ui">>
<<clothingShopUI _shopId _activeCategory _activeStyle>>
<</replace>>
<</button>>
<</if>>
</div>
<</capture>>
<</for>>
</div>
<</widget>>