<main class="rc-about-page" aria-labelledby="rc-about-title">
<header class="rc-about-topbar">
<p class="rc-about-record">Survival record <strong>RC-2037 / Overview</strong></p>
<a class="rc-menu-return" data-passage="MainMenu"><span aria-hidden="true">←</span> Return to menu</a>
</header>
<section class="rc-about-hero" aria-labelledby="rc-about-title">
<div class="rc-about-hero-copy">
<p class="rc-about-overline">Day 180 / The world after the fall</p>
<h1 id="rc-about-title">About the <span>game</span></h1>
<p class="rc-about-lead">Six months after the dead began to move, your supplies are running out. You leave home, secure a small house, and begin to find out who else survived.</p>
</div>
<figure class="rc-about-hero-art" aria-hidden="true">
<div class="rc-about-skyline"><i></i><i></i><i></i><i></i><i></i></div>
<figcaption class="rc-about-caption">City status / Collapsed</figcaption>
</figure>
</section>
<section class="rc-about-intro" aria-label="The premise">
<p class="rc-about-section-label">01 / The premise</p>
<div>
<p>Risen City is a browser survival story. The streets are dangerous, useful supplies are scarce, and other survivors have needs and plans of their own.</p>
<p>Your choices shape individual encounters and who may share your safehouse. Exploring reveals routes to places beyond your first neighborhood.</p>
</div>
</section>
<section class="rc-about-features" aria-labelledby="rc-about-features-title">
<div class="rc-about-features-head"><h2 id="rc-about-features-title">In this build</h2><span class="rc-about-tag">Field capabilities / Version 0.3</span></div>
<div class="rc-about-grid">
<article class="rc-about-card"><span class="rc-about-card-number">01 /</span><div><h3>Explore & scavenge</h3><p>Search the ruins, discover locations, and hunt for food while watching your stamina.</p></div></article>
<article class="rc-about-card"><span class="rc-about-card-number">02 /</span><div><h3>Survive encounters</h3><p>Manage health, provisions, weapons, and medkits. Some threats lead to combat.</p></div></article>
<article class="rc-about-card"><span class="rc-about-card-number">03 /</span><div><h3>Meet survivors</h3><p>Make choices in character encounters and follow the stories that unfold from them.</p></div></article>
<article class="rc-about-card"><span class="rc-about-card-number">04 /</span><div><h3>Keep a safehouse</h3><p>Interact with residents, assign available work, and trade for supplies at the settlement.</p></div></article>
</div>
</section>
<div class="rc-about-notes">
<section class="rc-about-note" aria-labelledby="rc-about-play-title"><h2 id="rc-about-play-title">Before you play</h2><p>Choose a name to start a new story. Use Saves in the main menu to save or load, and export a save file if you want a separate copy. Settings controls music and sound.</p><p>Story content and systems are still in development.</p></section>
<aside class="rc-about-note rc-about-warning" aria-labelledby="rc-about-warning-title"><h2 id="rc-about-warning-title">Adults only / 18+</h2><p>Contains explicit sexual content, coercion and enslavement themes, violence, and disturbing imagery. Some character routes involve abuse or captivity.</p></aside>
</div>
<footer class="rc-about-foot"><span>Risen City / Survival record</span><span>End of overview</span></footer>
</main>
<main class="rc-settlement-page rc-administration-page">
<header class="rc-settlement-heading">
<div><span>Settlement / Civic</span><h1>Administration</h1></div>
<p>Check the mission board for settlement work, or speak with Cory at her desk.</p>
</header>
<<if setup.yardEligible(State.variables) && (!$player.yard_quest || !$player.yard_quest.accepted && !$player.yard_quest.complete)>>
<div class="rc-location-page">
<section class="rc-place-events" aria-label="Happening now">
<h3 class="rc-place-label">HAPPENING NOW</h3>
<div class="rc-event-list"><a href="#" class="rc-event-link" data-rc-yard-open data-rc-tools-destination="Yard_Cory"><strong>Cory and Nikki are planning something together</strong><span class="rc-event-arrow" aria-hidden="true">→</span></a></div>
</section>
</div>
<</if>>
<section class="residents-container rc-admin-people" aria-label="People at Administration">
<h2>People Here</h2>
<div class="characters-grid">
<div class="mini-character-card">
<img src="assets/cast/cory.jpg" alt="Cory" class="mini-portrait">
<div class="mini-info"><span class="char-name">Cory</span><span class="char-status">Settlement leader</span><a class="mini-btn" data-passage="Cory_Talk">Interact</a></div>
</div>
</div>
</section>
<p class="rc-admin-notice" role="status" hidden></p>
<section class="rc-mission-board" aria-labelledby="rc-mission-board-title">
<header class="rc-mission-board-heading"><div><span>Settlement requests</span><h2 id="rc-mission-board-title">Mission Board</h2></div><p>Work posted by Cory</p></header>
<div class="rc-mission-board-grid">
<article class="rc-mission-notice">
<header><span class="rc-mission-number">Request 01 / Supplies</span><span class="rc-mission-status"><<if $player.meat_quest_active>><<if $player.Raw_meat gte 20>>Ready to deliver<<else>>In progress<</if>><<else>>Available · Repeatable<</if>></span></header>
<h3>Bring 20 raw meat</h3>
<p>The settlement needs fresh meat. Bring 20 units of raw meat to Administration.</p>
<dl><div><dt>Objective</dt><dd>Deliver 20 raw meat</dd></div><div><dt>Reward</dt><dd>100 Money</dd></div></dl>
<footer>
<<if $player.meat_quest_active>>
<span class="rc-mission-progress">Raw meat: <<print Math.min($player.Raw_meat, 20)>> / 20</span>
<<if $player.Raw_meat gte 20>>
<button type="button" class="button" data-rc-admin-action="deliver-meat">Deliver meat</button>
<<else>>
<span class="rc-mission-pending">Collect the remaining raw meat</span>
<</if>>
<<else>>
<button type="button" class="button" data-rc-admin-action="accept-meat">Accept mission</button>
<</if>>
</footer>
</article>
<article class="rc-mission-notice">
<header><span class="rc-mission-number">Request 02 / Workers</span><span class="rc-mission-status"><<if $slave_quest_completed == 1>>Completed<<elseif $player.slave_quest_active>><<if $player.slaves gte 2>>Ready to deliver<<else>>In progress<</if>><<else>>Available<</if>></span></header>
<h3>Deliver two slaves</h3>
<p>Cory needs two slaves to work for the settlement. Capture and bring them to Administration.</p>
<dl><div><dt>Objective</dt><dd>Deliver 2 slaves</dd></div><div><dt>Reward</dt><dd>500 Money + Shotgun</dd></div></dl>
<footer>
<<if $slave_quest_completed == 1>>
<span class="rc-mission-progress">Delivered: 2 / 2</span><span class="rc-mission-pending">Reward collected</span>
<<elseif $player.slave_quest_active>>
<span class="rc-mission-progress">Slaves: <<print Math.min($player.slaves, 2)>> / 2</span>
<<if $player.slaves gte 2>>
<button type="button" class="button" data-rc-admin-action="deliver-slaves">Deliver slaves</button>
<<else>>
<span class="rc-mission-pending">Bring the remaining slaves</span>
<</if>>
<<else>>
<button type="button" class="button" data-rc-admin-action="accept-slaves">Accept mission</button>
<</if>>
</footer>
</article>
</div>
</section>
<nav class="rc-settlement-actions"><a class="button back-btn" data-passage="Settlement">← Return to Settlement</a></nav>
</main>
<main class="rc-sequence-page"><header class="rc-sequence-header"><span class="rc-ui-kicker">FIRST CONTACT / EMILY</span><h1>Accept</h1></header>
<div class="rc-sequence-grid"><figure class="rc-sequence-portrait"><img src="assets/cast/emily.jpg" alt="Emily"></figure>
<section class="rc-sequence-report">
<h2>Accepting Emily</h2>
<<run setup.recruitResident($player, "emily_status", "ally")>>
<p>
You agree to take her with you. Emily starts to thank you, stops, then tries again. She says she can help around the house.
</p></section></div>
<nav class="rc-sequence-actions">
<a class="button" data-passage="Safehouse">Return home</a>
</nav></main>
<<if setup.residentImprovised(State.variables, "emily")>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-task-page rc-task-result-page rc-task-result-cleared">
<figure class="rc-task-portrait"><img src="assets/cast/emily.jpg" alt="Emily"></figure>
<section class="rc-task-body">
<header class="rc-task-heading"><span class="rc-ui-kicker"><<if $player.base_location == "Farm">>FARM<<else>>SAFE HOUSE<</if>> / WORK ROSTER</span><h1>Emily</h1><p>Task canceled</p></header>
<div class="rc-task-result-details">
<div class="rc-task-current"><span>Current assignment</span><strong>No task assigned</strong></div>
<div class="rc-task-result-copy"><p>You recall Emily from her task. She is now available for other interactions.</p>
<<set $player.emily_work = "none">></div>
</div>
<nav class="rc-task-exit"><<if $player.base_location == "Farm">><a class="button back-btn" data-passage="Farm_Bedrooms">Return to Bedrooms</a><<else>><a class="button back-btn" data-passage="Safehouse">Return to the house</a><</if>></nav>
</section>
</main>
<</if>>
<div class="scene-content">
<div class="scene-text"><p>You stay by the gate. Emily watches your hand on the latch.</p></div>
<<run setup.recruitResident($player, "emily_status", "slave")>>
<div class="npc-character">
<div class="dialogue-line">
<span class="speaker-label">(Emily)</span>
You can open it, right?
</div>
</div>
<div class="player-character">
<div class="dialogue-line">
<span class="speaker-label">(You)</span>
I can. But if you come with me, you do what I say. You'll be my slave.
</div>
</div>
<div class="npc-character">
<div class="dialogue-line">
<span class="speaker-label">(Emily)</span>
I... I can work. I used to answer phones and keep records. I can learn something else. Please, just don't leave me here.
</div>
</div>
<div class="player-character">
<div class="dialogue-line">
<span class="speaker-label">(You)</span>
Then say you understand.
</div>
</div>
<div class="npc-character">
<div class="dialogue-line">
<span class="speaker-label">(Emily)</span>
(looking at the gate) Yes. I understand.
</div>
</div>
<div class="scene-text"><p>You lift the gate. Emily ducks under it and follows you out of the supermarket.</p></div>
<div class="choice-container"><a class="button dark-choice" data-passage="Safehouse">Return home</a></div>
</div>
<main class="rc-scream-page rc-emily-reveal"><header class="rc-scream-header">
<span class="rc-ui-kicker">OUTSIDE / FIRST CONTACT</span><span class="rc-scream-alert">SURVIVOR FOUND</span>
<h1>Emily</h1><p class="rc-scream-context">Behind the security gate</p></header>
<figure class="rc-scream-portrait"><img src="assets/cast/emily.jpg" alt="Emily inside the abandoned supermarket"></figure>
<div class="rc-scream-copy">
<p>
At the back of the supermarket, you find a young woman behind a jammed security gate.
She holds a bent metal bar, but puts it down when she sees you.
</p>
<p>
"Oh, thank God. Two bandits attacked me outside two days ago. I ran in here and pulled
the gate down. Now it won't open. Can you help me?"
</p>
</div>
<nav class="rc-scream-actions"><a class="button neutral-choice" data-passage="Emily_Enslave">Offer to make her a slave</a>
<a class="button neutral-choice" data-passage="Emily_Help">Help her</a><a class="button neutral-choice" data-passage="Emily_Leave">Leave her to die</a></nav>
</main>
<<if !setup.residentImprovised(State.variables, "emily") && $player.emily_depot && $player.emily_depot.discussed>>
<div class="scene-content"><div class="dialog-container"><<emilyDepotExisting "feelings">></div></div>
<<else>>
<<if setup.residentImprovised(State.variables, "emily")>><<goto "Farm_Bedrooms">><<else>>
<div class="scene-content">
<div class="dialog-container">
<p class="narrator-text">Emily pauses for a moment, searching for the right words.</p>
<div class="emily-dialog">
<<if $player.emily_status == "slave">>
<p>"I thought you'd help when you came to the gate. I should have asked what you wanted first. I still think about my group. I don't know what happened to them."</p>
<<else>>
<p>"I keep wondering if my group came back after I left. I know it doesn't make sense, but... I still listen for them sometimes. Thank you for letting me stay. I can help, really."</p>
<</if>>
</div>
</div>
<div class="choice-container">
<a class="button neutral-choice" data-passage="Emily_Talk_Menu">Return to the conversation</a>
</div>
</div>
<</if>>
<</if>>
<div class="scene-content">
<div class="scene-text">
<p>You force the gate up. The woman ducks under it, almost trips, then brushes the dust from her clothes.</p>
</div>
<div class="npc-character"><div class="dialogue-line" data-reveal-character="Emily"><span class="speaker-label">(Emily)</span> Oh. You really got it open. I'm Emily. Thank you. My friends haven't come back, and I... I don't have anywhere to go. Could I come with you?</div></div>
<div class="choice-container">
<a class="button dark-choice" data-passage="Emily_Accept">Accept her</a>
<a class="button" data-passage="Emily_Reject">Refuse</a>
</div>
</div>
<<if setup.residentImprovised(State.variables, "emily")>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-resident-page">
<header class="rc-resident-header"><div class="rc-resident-portrait"><img src="assets/cast/emily.jpg" alt="Emily"></div>
<div class="rc-resident-identity"><span class="rc-ui-kicker"><<if $player.base_location == "Farm">>FARM / RESIDENT<<else>>SAFE HOUSE / RESIDENT<</if>></span><h1>Emily</h1>
<div class="rc-resident-facts"><div><span>Status</span><strong><<if $player.emily_status == "slave">>Slave<<else>>Ally<</if>></strong></div>
<div><span>Current task</span><strong><<if setup.residentImprovised(State.variables, "emily") && ["scavenging", "Fields", "Cooking"].includes($player.emily_work)>>Paused — needs a bedroom<<elseif setup.residentHungry(State.variables, "emily") && ["scavenging", "Fields"].includes($player.emily_work)>>Paused — needs food<<elseif $player.emily_work == "scavenging">>Scavenging for supplies<<elseif $player.emily_work == "Cooking">>Cooking<<elseif $player.emily_work == "Fields">>Working in fields<<else>>None<</if>></strong></div></div>
</div></header>
<section class="rc-resident-options"><div class="rc-resident-options-heading"><span class="rc-ui-kicker">AVAILABLE ACTIONS</span><h2>Spend time with Emily</h2></div>
<nav class="rc-resident-actions" aria-label="Interact with Emily">
<<if $player.emily_locket && $player.emily_locket.stage == "found">>
<a class="rc-resident-action" data-passage="Emily_Locket_Return" data-npc-action="other"><span>PERSONAL / FOUND</span><strong>Give Emily her necklace</strong><small>Return the locket with her family photo</small></a>
<</if>>
<a class="rc-resident-action" data-passage="Emily_Talk_Menu" data-npc-action="dialogue"><span>01 / Conversation</span><strong>Talk</strong><small>Speak with Emily</small></a>
<<if $player.emily_status == "slave" && $player.emily_work != "scavenging">>
<a class="rc-resident-action rc-resident-action-private" data-passage="Emily_Service" data-npc-action="media"><span>02 / Private</span><strong>Have sex</strong><small>Spend time together</small></a>
<</if>>
<<if setup.emilyLocketMediaAvailable($player)>>
<a class="rc-resident-action rc-resident-action-private" data-passage="Emily_Service" data-npc-action="media"><span>02 / Private</span><strong>Spend time with Emily</strong><small>Stay with her after returning the necklace</small></a>
<</if>>
<a class="rc-resident-action" data-passage="Emily_Work" data-npc-action="other"><span>03 / Work</span><strong>Assign a task</strong><small>Choose a job for Emily</small></a>
</nav>
</section><nav class="rc-resident-exit"><<if $player.base_location == "Farm">><a class="button back-btn" data-passage="Farm_Bedrooms">← Back to Bedrooms</a><<else>><a class="button back-btn" data-passage="Safehouse">← Back</a><</if>></nav>
</main>
<</if>>
<main class="rc-sequence-page"><header class="rc-sequence-header"><span class="rc-ui-kicker">FIRST CONTACT / EMILY</span><h1>Leave</h1></header>
<div class="rc-sequence-grid"><figure class="rc-sequence-portrait"><img src="assets/cast/emily.jpg" alt="Emily"></figure>
<section class="rc-sequence-report">
<h2>Fate of Emily</h2>
<<set $player.emily_status = "dead">>
<p>
You decide to leave her to her fate. Her cries for help gradually fade into the distance...
</p></section></div>
<nav class="rc-sequence-actions">
<a class="button" data-passage="Safehouse">Return home</a>
</nav></main><<if !setup.residentImprovised(State.variables, "emily") && $player.emily_depot && $player.emily_depot.discussed>>
<div class="scene-content"><div class="dialog-container"><<emilyDepotExisting "past">></div></div>
<<else>>
<<if setup.residentImprovised(State.variables, "emily")>><<goto "Farm_Bedrooms">><<else>>
<div class="scene-content">
<div class="dialog-container">
<p class="narrator-text">Emily takes a deep breath, gathering her thoughts.</p>
<div class="emily-dialog">
<p>"I worked reception at the police station. I answered calls, took reports, tried to calm people down while they waited. I wasn't an officer. When the epidemic started, I kept telling people help was coming. I believed it for longer than I should have."</p>
<p>"After the station emptied, I stayed with a group of survivors. A week ago, they went out for food and never came back. I waited. I kept telling myself they were just taking the long way home."</p>
<p>"Two days ago, I went looking for supplies on my own. Two bandits attacked me outside the supermarket. I ran into the service corridor and pulled down the security gate. It kept them out, but then it wouldn't open again. I thought someone might hear me. You did."</p>
</div>
</div>
<div class="choice-container">
<a class="button neutral-choice" data-passage="Emily_Talk_Menu">Return to the conversation</a>
</div>
</div>
<</if>>
<</if>>
<main class="rc-sequence-page"><header class="rc-sequence-header"><span class="rc-ui-kicker">FIRST CONTACT / EMILY</span><h1>Reject</h1></header>
<div class="rc-sequence-grid"><figure class="rc-sequence-portrait"><img src="assets/cast/emily.jpg" alt="Emily"></figure>
<section class="rc-sequence-report">
<h2>Rejecting Emily</h2>
<<set $player.emily_status = "rejected">>
<p>
You refuse her. Emily looks heartbroken but nods in understanding and walks away.
</p></section></div>
<nav class="rc-sequence-actions">
<a class="button" data-passage="Safehouse">Return home</a>
</nav></main><<if setup.residentImprovised(State.variables, "emily")>><<goto "Farm_Bedrooms">><<else>>
<<if $player.emily_status != "slave" && !setup.emilyLocketMediaAvailable($player)>><<goto "Emily_Interact">><<elseif !setup.canAffordService(State.variables, 'emily')>>
<div class="scene-content rc-service-unavailable">
<header class="rc-service-header"><img src="assets/cast/emily.jpg" alt=""><div><span><<if $player.base_location == "Farm">>FARM<<else>>SAFE HOUSE<</if>> / PRIVATE INTERACTION</span><h1>Emily</h1></div></header>
<div class="warning-message">You do not have enough stamina for sexual actions!</div>
<div class="choice-container">
<a class="button back-btn" data-passage="Emily_Interact">← Back</a>
</div>
</div>
<<else>>
<div class="scene-content rc-service-page" data-rc-service="emily">
<header class="rc-service-header"><img src="assets/cast/emily.jpg" alt=""><div><span><<if $player.base_location == "Farm">>FARM<<else>>SAFE HOUSE<</if>> / PRIVATE INTERACTION</span><h1>Emily</h1></div></header>
<div class="video-container">
<video class="scene-video" autoplay muted loop playsinline>
<source src="assets/videos/emily/blowjob (1).webm" type="video/webm">
</video>
</div>
<div class="service-menu">
<div class="menu-title">Choose an action:</div>
<div class="service-buttons">
<a class="service-btn" data-rc-video="blowjob" role="button" tabindex="0">Blowjob</a>
<a class="service-btn" data-rc-video="vaginal" role="button" tabindex="0">Vaginal</a>
<a class="service-btn" data-rc-video="anal" role="button" tabindex="0">Anal</a>
<a class="service-btn" data-rc-video="cum" role="button" tabindex="0">Finish</a>
</div>
<a class="button back-btn" data-passage="Emily_Interact">← Back</a>
</div>
</div>
<</if>>
<</if>>
<<if setup.residentHungry(State.variables, "emily")>><<goto "Emily_Work">><<else>>
<<if setup.residentImprovised(State.variables, "emily")>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-task-page rc-task-result-page rc-task-result-assigned">
<figure class="rc-task-portrait"><img src="assets/cast/emily.jpg" alt="Emily"></figure>
<section class="rc-task-body">
<header class="rc-task-heading"><span class="rc-ui-kicker"><<if $player.base_location == "Farm">>FARM<<else>>SAFE HOUSE<</if>> / WORK ROSTER</span><h1>Emily</h1><p>Task assigned</p></header>
<div class="rc-task-result-details">
<div class="rc-task-current"><span>Current assignment</span><strong>Scavenging</strong></div>
<div class="rc-task-result-copy"><p>You send Emily to scavenge for supplies in the city. It's a dangerous task, but necessary for survival.</p>
<<set $player.emily_work = "scavenging">><<run setup.leavePartyForWork($player, "emily")>></div>
</div>
<nav class="rc-task-exit"><<if $player.base_location == "Farm">><a class="button back-btn" data-passage="Farm_Bedrooms">Return to Bedrooms</a><<else>><a class="button back-btn" data-passage="Safehouse">Return to the house</a><</if>></nav>
</section>
</main>
<</if>>
<</if>>
<<if setup.residentImprovised(State.variables, "emily")>><<goto "Farm_Bedrooms">><<else>>
<div class="scene-content">
<div class="dialog-container">
<<if $player.emily_depot && $player.emily_depot.complete>>
<<emilyDepotExisting "greeting">>
<<elseif $player.emily_status == "ally">>
<p class="narrator-text">Emily stops fiddling with her sleeve when you approach.</p>
<div class="emily-dialog">
<p>"Oh. Did you need something?"</p>
</div>
<<elseif $player.emily_status == "slave">>
<p class="narrator-text">Emily lowers her eyes when you approach.</p>
<div class="emily-dialog">
<p>"Yes, master?"</p>
</div>
<</if>>
<div class="dialog-options">
<<emilyDepotTopic>>
<a class="button light-choice" data-passage="Emily_Past">Ask about her past</a>
<a class="button light-choice" data-passage="Emily_Feelings">Ask about her feelings</a>
<<if setup.fieldsUnboundsAvailable(State.variables)>><a class="button light-choice" data-passage="Emily_Unbounds">Ask about the Unbounds</a><</if>>
<a class="button neutral-choice" data-passage="Emily_Interact">End the conversation</a>
</div>
</div>
</div>
<</if>>
<<if setup.residentImprovised(State.variables, "emily")>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-task-page"><figure class="rc-task-portrait"><img src="assets/cast/emily.jpg" alt="Emily"></figure>
<section class="rc-task-body"><header class="rc-task-heading"><span class="rc-ui-kicker"><<if $player.base_location == "Farm">>FARM<<else>>SAFE HOUSE<</if>> / WORK ROSTER</span><h1>Emily</h1><p>Assign a task</p></header>
<<if $player.emily_work != "none">>
<div class="rc-task-current"><span>Current assignment</span><strong><<print $player.emily_work>></strong>
<a class="button danger-choice" data-passage="Emily_Cancel_Work">Cancel task</a></div>
<<else>>
<nav class="rc-task-options" aria-label="Tasks for Emily">
<<if setup.residentHungry(State.variables, "emily")>><p class="rc-farm-alert">Scavenging is paused until the base is fed. Cooking is still available.</p><<else>><a class="rc-task-option" data-passage="Emily_Start_Scavenging"><span>01 / Outside</span><strong>Start scavenging</strong><small>Search for supplies on the next day</small></a><</if>>
<a class="rc-task-option" data-passage="Emily_Cooks"><span>02 / <<if $player.base_location == "Farm">>Farm<<else>>Safe house<</if>></span><strong>Cooking</strong><small>Prepare food when raw meat is available</small></a>
</nav>
<</if>>
<nav class="rc-task-exit"><a class="button back-btn" data-passage="Emily_Interact">← Return to Emily</a></nav>
</section>
</main>
<</if>>
<<if setup.residentImprovised(State.variables, "emily")>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-task-page rc-task-result-page rc-task-result-assigned">
<figure class="rc-task-portrait"><img src="assets/cast/emily.jpg" alt="Emily"></figure>
<section class="rc-task-body">
<header class="rc-task-heading"><span class="rc-ui-kicker"><<if $player.base_location == "Farm">>FARM<<else>>SAFE HOUSE<</if>> / WORK ROSTER</span><h1>Emily</h1><p>Task assigned</p></header>
<div class="rc-task-result-details">
<div class="rc-task-current"><span>Current assignment</span><strong>Cooking</strong></div>
<div class="rc-task-result-copy"><p>Emily tries to cook something edible.</p>
<<set $player.emily_work = "Cooking">><<run setup.leavePartyForWork($player, "emily")>></div>
</div>
<nav class="rc-task-exit"><<if $player.base_location == "Farm">><a class="button back-btn" data-passage="Farm_Bedrooms">Return to Bedrooms</a><<else>><a class="button back-btn" data-passage="Safehouse">Return to the house</a><</if>></nav>
</section>
</main>
<</if>>
<<set _lesana = setup.ensureLesanaStory(State.variables)>>
<main class="rc-settlement-page rc-place-page">
<header class="rc-settlement-heading">
<div><span>Settlement / Social</span><h1>Bar Matriarch</h1></div>
<p>A fortified bar built from machine parts and bulletproof glass. Salvaged trophies and the names of fallen residents cover the walls.</p>
</header>
<<if _lesana.stage == 'unseen' && _lesana.drank>>
<div class="rc-location-page">
<section class="rc-place-events" aria-label="New event">
<h3 class="rc-place-label">HAPPENING NOW</h3>
<div class="rc-event-list"><a class="rc-event-link" data-passage="Lesana_Incident"><span class="rc-event-kicker">MATRIARCH BAR / LESANA</span><strong>Stay for a drink with Lesana</strong><span class="rc-event-arrow" aria-hidden="true">→</span></a></div>
</section>
</div>
<</if>>
<section class="rc-npc-panel">
<div class="rc-npc-portrait"><img src="assets/cast/lesana.jpg" alt="Lesana"></div>
<div class="rc-npc-copy">
<span>Available NPC / Proprietor</span>
<h2>Lesana</h2>
<<if ['fight', 'expelled'].includes(_lesana.stage)>>
<p>The stools are overturned. Lesana is behind the counter, holding her injured arm.</p>
<<elseif ['recovering', 'romance'].includes(_lesana.stage)>>
<p>Lesana sits behind the counter with her arm bandaged. She looks up when you come in.</p>
<<else>>
<p>Stern but fair, Lesana commands the room from behind the bar. She is the person available to speak with here.</p>
<</if>>
<nav class="rc-npc-actions choice-container">
<<if _lesana.stage == 'fight'>><<if _lesana.approach>><a class="button dark-choice" data-passage="Lesana_Combat">Continue the fight</a><<else>><a class="button dark-choice" data-passage="Lesana_Incident">Help Lesana</a><</if>>
<<elseif _lesana.stage == 'expelled'>><a class="button light-choice" data-passage="Lesana_Aftermath">Go to Lesana</a>
<<else>>
<<if setup.lesanaInvitationAvailable(State.variables)>><a class="button light-choice" data-passage="Lesana_Visit">Check on Lesana</a>
<<elseif _lesana.stage == 'romance'>><a class="button light-choice" data-passage="Lesana_Visit">Spend time with Lesana</a>
<<elseif _lesana.stage == 'recovering'>><span>Lesana is resting. Come back another day to check on her.</span><</if>>
<<if $player.lesana_status == "unknown">><a class="button" data-passage="Lesana_First_Dialog">Talk with Lesana</a>
<<else>><a class="button" data-passage="Lesana_Talk_Menu">Talk with Lesana</a><</if>>
<</if>>
<a class="button back-btn" data-passage="Settlement">Return to Settlement</a>
</nav>
</div>
</section>
</main>
<<if !setup.enterEnergyDestination(State.variables, "Bunker")>>
<p class="warning-message">This trip requires <<print setup.energyDestinationCost(State.variables, "Bunker")>> energy. The return home is free.</p>
<a class="button" data-passage="Outside">Return to the map</a> <a class="button" data-passage="Safehouse">Return home</a>
<<else>>
<<set $player.current_location = "Bunker">>
<div class="scene-content">
<div class="scene-text">
<h2>Abandoned Bunker</h2>
<<if $player.kenzie_bunker && $player.kenzie_bunker.doors.entrance == 'fixed'>>
<p>The bunker's entrance is fixed open. Kenzie's map marks the passages you explored together.</p>
<<else>><p>The bunker's metal doors are sealed. Its keypad is dark; whatever powered the lock failed long ago.</p><</if>>
<<if setup.mistralExplorationComplete(State.variables)>><p>The Mistral expedition is finished. You cleared the rooms, collected the kitchen supplies and recorded the code.</p><<elseif $bunker_quest_progress == "Phase 1" or $bunker_quest_progress == "Complete" or $bunker_quest_progress == "END">>
<p>Kenzie's marked route skirts the bunker and follows the ridge toward Mistral Mansion.</p>
<<else>>
<p>Scars in the ground lead toward the ridge. Kenzie believes a separate building lies beyond it, but has not found a safe way in.</p>
<</if>>
</div>
<div class="choice-container">
<<if $player.kenzie_bunker && $player.kenzie_bunker.accepted && setup.b12Eligible(State.variables)>>
<<link "Prepare the bunker expedition with Kenzie" "Kenzie_B12">><<run setup.b12Action(State.variables, setup.b12Token(setup.ensureB12(State.variables)), 'ready')>><</link>>
<</if>>
<<if !setup.mistralExplorationComplete(State.variables) && ["Phase 1", "Complete", "END"].includes($bunker_quest_progress)>>
<a class="button" data-passage="Bunker_To_Mistral">Go to Mistral mansion</a>
<</if>>
<a class="button" data-passage="Outside">Return</a>
</div>
</div>
<</if>>
<<if setup.buyGenericSlave(State.variables)>>
<<goto "Slave_Market">>
<<else>>
<<goto "Slave_Market">>
<</if>><main class="changelog-page rc-release-page">
<header class="changelog-header rc-release-header">
<div class="rc-release-heading">
<p class="rc-release-kicker">RISEN CITY / RELEASE HISTORY</p>
<h1>Changelog</h1>
<p class="rc-release-subtitle">Select a version to see what's new.</p>
</div>
<a class="rc-release-back" data-passage="MainMenu"><span aria-hidden="true">←</span> Return to menu</a>
</header>
<div class="rc-release-history" aria-label="Versions, newest first">
<details class="rc-release-version">
<summary class="rc-release-toggle"><strong>Version 0.3</strong><span class="rc-release-tag">Current build</span></summary>
<div class="rc-release-grid" aria-label="Version 0.3 contents">
<section class="rc-release-section">
<h2><span>01 / STORY</span> New quests</h2>
<ul>
<li><strong>Cory, Nikki and Gage:</strong> A tactical operation with three plans: direct assault, infiltration, or poisoning the supplies before an assault. Earlier choices affect the story.</li>
<li><strong>Emily:</strong> A depot investigation with rescue decisions and new follow-up conversations.</li>
<li><strong>Lena:</strong> Two connected quests involving a supply deal and the defense of the Farm.</li>
<li><strong>Sophia:</strong> A Forest quest with escape, counterattack, and direct confrontation routes.</li>
<li><strong>Kenzie:</strong> B-12 exploration, puzzles, research records, and laboratory equipment recovery.</li>
<li><strong>Sarah:</strong> A joint supply run and a new path for her to join the base.</li>
</ul>
</section>
<section class="rc-release-section">
<h2><span>02 / RESEARCH</span> Sarah's laboratory</h2>
<ul>
<li>The Infirmary becomes Sarah's laboratory with equipment from B-12.</li>
<li>Seven days of research unlock <strong>Weak Vial</strong> crafting, field tests during hunts, and reports to Sarah.</li>
</ul>
</section>
<section class="rc-release-section">
<h2><span>03 / BASE</span> Production and companions</h2>
<ul>
<li><strong>Refined Materials:</strong> Workshop production by Residents, manual refining, and conversion into Materials.</li>
<li>Character work pauses without a bedroom and resumes when one becomes available.</li>
<li><strong>Skyler:</strong> Base recruitment or a move to house 23. As a companion, she supports searches targeted at food, medicine, or materials.</li>
</ul>
</section>
<section class="rc-release-section">
<h2><span>04 / EXPLORATION</span> Radio and travel</h2>
<ul>
<li>The Radio Room now has <strong>nine reworked encounters across three channels</strong>: Trades, People, and Events.</li>
<li>Travel costs are shown before departure and include the return trip. Movement within a region has no repeated entry charge.</li>
</ul>
</section>
<section class="rc-release-section">
<h2><span>05 / PRESENTATION</span> Conversations and scenes</h2>
<ul>
<li>New nighttime visits from <strong>Kenzie, Sophia, and Lena</strong>, unlocked by quest outcomes.</li>
<li>Revised dialogue reflects earlier choices and relationships.</li>
<li>Updated combat screens, enemy portraits, and location layouts.</li>
<li>Replaced media for <strong>Residents, Slaves, and Sarah</strong>, and added scenes tied to the new quests.</li>
</ul>
</section>
<section class="rc-release-section rc-release-last">
<h2><span>06 / OPTIONS</span> Saves and progress</h2>
<ul>
<li>Configurable autosave frequency and scene history limit.</li>
<li>New <strong>Notes</strong> track known leads. Quest tracking includes the new missions and outcomes.</li>
</ul>
</section>
</div>
</details>
<details class="rc-release-version">
<summary class="rc-release-toggle"><strong>Version 0.2</strong><span class="rc-release-tag">Released</span></summary>
<div class="rc-release-grid" aria-label="Version 0.2 contents">
<section class="rc-release-section">
<h2><span>01 / BASE</span> Life at the Farm</h2>
<ul>
<li>Recover the old Farm with Sophia or on your own and move your group into the new base.</li>
<li>Manage bedrooms and expand housing through the Workshop.</li>
<li>Discover the ruined Infirmary beneath the Farm.</li>
</ul>
</section>
<section class="rc-release-section">
<h2><span>02 / PRODUCTION</span> Food, crafting and training</h2>
<ul>
<li>Restore the Fields, assign workers, and harvest <strong>Fresh Food</strong>.</li>
<li>Use the Kitchen to prepare Provisions and meals that provide survival bonuses.</li>
<li>Find Materials while scavenging or buy them at the Market. Spend them at the Workshop to craft tools and weapons.</li>
<li>Upgrade the Fields and gym, and repair the radio.</li>
<li>Train at the <strong>Training Yard</strong> to earn XP, increase health and energy, and improve skills that reduce action costs.</li>
</ul>
</section>
<section class="rc-release-section">
<h2><span>03 / STORY</span> Quests and relationships</h2>
<ul>
<li><strong>Nikki and Gage:</strong> Recover Nikki's missing delivery and decide Gage's fate. Choose a market discount or a closer relationship with Nikki as your reward.</li>
<li><strong>Emily:</strong> Return to the old safehouse to search for her family locket in a new personal quest.</li>
<li><strong>Sarah:</strong> Meet a new survivor at the old safehouse. Build trust or confront her, and bring her into life at your base.</li>
<li><strong>Lesana:</strong> Deal with a new incident at the Bar, help her recover, and explore a closer relationship.</li>
</ul>
</section>
<section class="rc-release-section">
<h2><span>04 / PEOPLE</span> Residents and companions</h2>
<ul>
<li>Recruit Residents through radio calls and offer shelter to temporary guests.</li>
<li>Manage Residents and Slaves with separate housing capacities.</li>
<li>Choose one active <strong>Party</strong> companion. Each provides a different bonus for combat, healing, scavenging, energy use, or surviving defeat.</li>
</ul>
</section>
<section class="rc-release-section">
<h2><span>05 / RADIO</span> Calls beyond the Farm</h2>
<ul>
<li>Use the repaired <strong>Radio Room</strong> to tune five channels with 17 events.</li>
<li>Answer calls involving trades, rescues, shelter requests, discoveries, bandits, and private visits.</li>
</ul>
</section>
<section class="rc-release-section rc-release-last">
<h2><span>06 / INTERFACE</span> Combat and navigation</h2>
<ul>
<li>Enemy attacks are announced before they happen, and openings provide opportunities to counterattack.</li>
<li>Track objectives in the quest notebook, check the mission board, and locate homes on the residential map.</li>
<li>Expanded character conversations and updated inventory, settings, and video screens.</li>
</ul>
</section>
</div>
</details>
<details class="rc-release-version">
<summary class="rc-release-toggle"><strong>Version 0.1</strong><span class="rc-release-tag">First build</span></summary>
<div class="rc-release-grid" aria-label="Version 0.1 contents">
<section class="rc-release-section">
<h2><span>01 / START</span> Your first days</h2>
<ul>
<li>Name your survivor, leave home after six months indoors, and secure a safehouse with a room, water, and food.</li>
</ul>
</section>
<section class="rc-release-section">
<h2><span>02 / MAP</span> Places to explore</h2>
<ul>
<li>Search the city and discover the bunker, old farm, city center, survivor settlement, and forest.</li>
<li>Reach Mistral Mansion through Kenzie's investigation.</li>
</ul>
</section>
<section class="rc-release-section">
<h2><span>03 / SYSTEMS</span> Survival and combat</h2>
<ul>
<li>Scavenge for supplies, hunt for meat, manage food, health, stamina, inventory, and rest.</li>
<li>Buy, sell, and equip weapons. Fight raiders and mutated creatures with attack, defend, and healing actions.</li>
</ul>
</section>
<section class="rc-release-section">
<h2><span>04 / PEOPLE</span> Survivors and settlement</h2>
<ul>
<li>Meet Sophia, Emily, Lena, Lesana, Cory, and Kenzie. Speak with them and make choices about trust, work, and life at your safehouse.</li>
<li>Visit the settlement's market, bar, administration, residential district, and adult services.</li>
</ul>
</section>
<section class="rc-release-section rc-release-feature">
<h2><span>05 / FIRST QUEST</span> The Mistral investigation</h2>
<ul>
<li>Join Kenzie at the mansion, clear its rooms, face what lives inside, and choose what happens to her afterward.</li>
</ul>
</section>
<section class="rc-release-section rc-release-last">
<h2><span>06 / OPTIONS</span> Your game</h2>
<ul>
<li>Save or load your progress and adjust music and playback settings from the menu.</li>
</ul>
</section>
</div>
</details>
</div>
</main>
<main class="rc-name-page">
<p class="rc-name-kicker">Survival record / Identity</p>
<h1>Your name</h1>
<p class="rc-name-context">Choose the name shown in your survival record.</p>
<form class="rc-name-form" onsubmit="setPlayerName(); return false;">
<input id="playerName" name="playerName" type="text" value="Alex" aria-label="Your name" autocomplete="off" maxlength="40">
<button class="button" type="submit">Continue</button>
</form>
</main>
<<script>>
window.setPlayerName = function() {
try {
const input = document.getElementById("playerName");
let name = input && input.value ? input.value.trim() : "Alex";
if (name === "") {
name = "Alex";
}
State.variables.player = State.variables.player || {};
State.variables.player.name = name;
State.variables.player.game_status = 1;
if (Story.has("Opening_Broadcast")) {
Engine.play("Opening_Broadcast");
} else {
console.error("Passage 'Opening_Broadcast' does not exist.");
alert("Error: The story cannot continue. Please check the passage configuration.");
}
} catch (error) {
console.error("Error in setPlayerName:", error);
alert("An error occurred. Please try again or check the console for details.");
}
};
<</script>><<if !setup.enterEnergyDestination(State.variables, "City_Center")>>
<p class="warning-message">This trip requires <<print setup.energyDestinationCost(State.variables, "City_Center")>> energy. The return home is free.</p>
<a class="button" data-passage="Outside">Return to the map</a> <a class="button" data-passage="Safehouse">Return home</a>
<<else>>
<<set $player.current_location = "City_Center">>
<<set _lenaEventAvailable = $discovered_lena == false or $player.lena_status == "unknown">>
<<if _lenaEventAvailable>><<set $discovered_lena = true>><</if>>
<div class="scene-content">
<div class="scene-text">
<h2>City Center</h2>
<p>
The city center is the most dangerous area, but also potentially the richest in resources. Tall buildings
tower into the sky, many damaged by fires and looting. The streets are cluttered with abandoned cars
and debris.
</p>
<p>
The center contains stores, pharmacies, banks and other establishments that might hold valuable resources.
However, it's also where bandit groups are most concentrated, hunting for lone survivors.
</p>
</div>
<section class="rc-place-events" aria-labelledby="rc-city-center-events-title">
<h3 class="rc-place-label" id="rc-city-center-events-title">HAPPENING NOW</h3>
<div class="rc-event-list">
<<if _lenaEventAvailable>>
<a class="rc-event-link" data-passage="Lena_Encounter"><span class="rc-event-kicker">SUDDENLY, YOU HEAR FOOTSTEPS BEHIND YOU...</span><strong>Turn around</strong><span class="rc-event-arrow" aria-hidden="true">→</span></a>
<</if>>
</div>
</section>
<<if setup.lenaTradeTerminalUnlocked(State.variables)>>
<div class="locations-section">
<h3>Locations</h3>
<div class="locations-grid"><a class="location-btn" data-passage="Old_Bus_Terminal"><span class="location-icon" aria-hidden="true">📦</span><span>Old Bus Terminal</span></a></div>
</div>
<</if>>
<<if !_lenaEventAvailable>>
<div class="choice-container">
<<if $player.stamina gte 20>>
<a class="button" data-passage="City_Center_Search">Looking for slaves · 20 energy</a>
<<else>>
<span class="warning-message rc-action-warning">Looking for slaves requires 20 energy.</span>
<</if>>
</div>
<div class="choice-container">
<a class="button" data-passage="Outside">Return</a>
</div>
<</if>>
</div>
<</if>>
<<run setup.preparePartyCombat(State.variables)>>
<<if $combat.turn == "player">>
<<run setup.combatAttack(State.variables)>>
<<if $combat.enemy_health <= 0>>
<<if $combat.sarah_home_fight && setup.finishSarahHomeCombat(State.variables)>><<goto 'Sarah_Home_Mission'>>
<<elseif $combat.yard_fight && setup.finishYardCombat(State.variables)>><<goto 'Yard_Mission'>>
<<elseif $combat.lena_invasion_fight && setup.finishLenaInvasionCombat(State.variables)>><<goto 'Lena_Invasion'>>
<<elseif $combat.lena_trade_fight && setup.finishLenaTradeCombat(State.variables)>><<goto 'Lena_Trade_Mission'>>
<<elseif $combat.radio_fight>>
<<if setup.finishRadioCombat(State.variables, false)>><<goto 'Farm_Radio_Event'>><<else>><<goto 'Farm_Radio_Room'>><</if>>
<<elseif $combat.vehicle_expedition>>
<<if setup.finishVehicleCombat(State.variables)>><<goto 'Vehicle_Expedition'>><<else>><<goto 'Farm_Garage'>><</if>>
<<elseif $combat.lesana_fight>>
<<if setup.finishLesanaFight(State.variables)>><<goto "Lesana_Aftermath">><<else>><<goto "Bar">><</if>>
<<elseif $combat.sarah_fight && setup.finishSarahCombat(State.variables)>><<goto "Sarah_Victory">>
<<elseif $combat.fields_bandit && setup.finishFieldsBanditFight(State.variables)>>
<<if $player.fields_quest.bandit_round == setup.fieldsBandits.length>><<goto "Gage_Interrogate">><<else>><<goto "Supplier_Road_Event">><</if>>
<<elseif $combat.enemy_name == "Gage" && $player.fields_quest && $player.fields_quest.stage == "find_base">><<goto "Gage_Interrogate">>
<<elseif $combat.enemy_name == "Scarbourg" && $player.current_location == "Mistral_Living_room" && $bunker_quest_progress == "Phase 1">><<goto "Kenzie_Final_Grab">><<else>><<goto "Combat_Victory">><</if>>
<<else>>
<<goto "Combat_Enemy_Turn">>
<</if>>
<<else>>
<<goto "Combat_Enemy_Turn">>
<</if>>
<<if $combat && $combat.lena_invasion_fight>><<run setup.defeatLenaInvasion(State.variables)>><<goto 'Lena_Invasion'>>
<<else>>
<<if $combat && $combat.yard_fight>><<run setup.retreatYardCombat(State.variables, true)>><</if>>
<<if $combat>><<set $combat.completed = true>><</if>>
<<if !$combat.sarah_home_fight && setup.trySarahRetreat(State.variables, "combat")>><<goto "Sarah_Retreat">><<else>>
<<if $combat.radio_fight>><<run setup.radioDefeat(State.variables)>><</if>>
<main class="rc-combat-outcome rc-defeat-page"><header class="rc-outcome-header"><span class="rc-ui-kicker">HOSTILE CONTACT / RESULT</span><h1>Defeat</h1></header><div class="rc-outcome-grid"><figure class="rc-outcome-portrait"><img @src="setup.enemyCombatPortrait(State.variables)" @alt="$combat.enemy_name"><figcaption>OPPONENT / <<print $combat.enemy_name === "Lena" ? "Lena" : $combat.enemy_name>></figcaption></figure><section class="rc-outcome-report"><<if $combat.lena_trade_fight>><p>You go down between the boxes. Lena starts toward you; Martin turns his pistol on her.</p><p><strong>Martin:</strong> “Stay where you are.”</p><<elseif $combat.yard_fight>><p>The noise from the bridge grows distant. You try to push yourself up, but your arm folds beneath you.</p><<else>><p>You have lost.</p><<if $combat.sarah_home_fight>><p><strong>Sarah:</strong> “Get back! Come on!”</p><</if>><</if>><strong class="rc-outcome-final">GAME OVER</strong></section></div><nav class="rc-outcome-actions"><a class="button" data-passage="Game_Over">Continue</a></nav></main>
<</if>>
<</if>>
<<run setup.preparePartyCombat(State.variables)>>
<<run setup.activateCombatDefend(State.variables)>>
<<goto "Combat_Enemy_Turn">>
<<run setup.beginBasicCombat(State.variables, "lena", "Lena")>>
<<goto "Combat_Enemy_Turn">>
<<if $combat && $combat.lena_invasion_fight>><<goto 'Lena_Invasion_Combat'>>
<<else>>
<<run setup.resolveCombatEnemyTurn(State.variables)>>
<main class="rc-battle-page"><header class="rc-battle-header"><div><span class="rc-ui-kicker">HOSTILE CONTACT / COMBAT</span><h1>Battle with <<print $combat.enemy_name === "Lena" ? "Lena" : $combat.enemy_name>></h1></div>
<span class="rc-battle-threat"><<print $combat.rules && $combat.rules.difficulty || 'COMBAT'>> · <<print $combat.phase == 1 ? ($combat.profile_id == 'scarbourg' ? 'FURY' : 'DESPERATE') : 'ACTIVE'>></span></header>
<div class="rc-battle-grid"><figure class="rc-battle-portrait"><img @src="setup.enemyCombatPortrait(State.variables)" @alt="$combat.enemy_name"><figcaption><span>OPPONENT</span><strong><<print $combat.enemy_name === "Lena" ? "Lena" : $combat.enemy_name>></strong></figcaption></figure>
<section class="rc-battle-panel" aria-label="Combat status and actions"><<combatDefendInfo>><div class="rc-battle-vitals">
<div class="rc-battle-vital player"><div class="rc-battle-vital-head"><strong>You</strong><span><<print $player.health>> / <<print $player.max_health>> HP</span></div>
<div class="health-bar-wrapper" role="progressbar" aria-label="Your health" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"><div class="health-bar-fill" style="width: 0%"></div></div></div>
<div class="rc-battle-vital enemy"><div class="rc-battle-vital-head"><strong><<print $combat.enemy_name === "Lena" ? "Lena" : $combat.enemy_name>></strong><span><<print $combat.enemy_health>> / <<print $combat.enemy_max_health>> HP</span></div>
<div class="health-bar-wrapper" role="progressbar" aria-label="Opponent health" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"><div class="health-bar-fill" style="width: 0%"></div></div></div>
</div>
<<if $combat.vehicle_expedition>><p class="rc-vehicle-combat-note">Vehicle opening strike: <<print $combat.vehicle_opening>> damage already dealt. Roadside armor: <<print $combat.vehicle_armor>>% reduction.</p><</if>>
<div class="rc-battle-log" aria-live="polite"><span class="rc-ui-kicker">TURN REPORT</span><<if $combat.party_member == "sophia">><<partyAssist "sophia" "Up to +75 HP">><<elseif $combat.party_member == "lena">><<partyAssist "lena" "defend buff">><</if>><<if $combat.kenzie_bonus>><<partyAssist "kenzie" `"+" + $combat.kenzie_bonus + " damage"`>><</if>><<if $combat.last_action == "start">><<if $combat.lena_trade_fight>><p>Martin crouches beside the closed box and keeps his pistol on you. Lena moves clear of the line of fire.</p><p><strong>Martin:</strong> “Out. Both of you.”</p><<elseif $combat.sarah_fight>><<if setup.sarahStory($player).fight_reason == "theft">><p><strong>You:</strong> “I'm keeping them.”</p><p>Sarah raises her pistol.</p><p><strong>Sarah:</strong> “You don't get to take my things and just walk away.”</p><p>You reach for your weapon.</p><<else>><p><strong>You:</strong> “I'm with the Unbounds.”</p><p>Sarah tightens her grip on the pistol.</p><p><strong>Sarah:</strong> “Unbounds? Get away from me.”</p><p>She keeps the gun on you as you reach for your weapon.</p><</if>><<else>><p>Combat begins. <<print $combat.enemy_name>> is in front of you.</p><</if>>
<<elseif $combat.last_action == "attack">><p><strong>You attack.</strong> <<print $combat.enemy_name === "Lena" ? "Lena" : $combat.enemy_name>> loses <<print $combat.last_player_damage>> HP.</p>
<<elseif $combat.last_action == "defend_ready">><p><strong>Defend activated.</strong> −<<print $combat.last_defend_cost != null ? $combat.last_defend_cost : setup.combatDefendCost>> energy.</p>
<<elseif $combat.last_action == "defend">><p><strong>You defend.</strong> The incoming hit is reduced by <<print $combat.defend_percent>>%.</p>
<<elseif $combat.last_action == "heal">><p><strong>Medkit used.</strong> You recover <<print $combat.last_heal>> HP.</p><</if>>
<<if ["attack", "heal", "defend"].includes($combat.last_action)>>
<<if $combat.last_enemy_damage == 0>><p><strong><<print $combat.last_enemy_move || "Recovery">>.</strong> No incoming damage.</p>
<<else>><p><strong><<print $combat.last_enemy_move || "Enemy attack">>.</strong> You lose <<print $combat.last_enemy_damage>> HP<<if $combat.last_enemy_defended>> after defending<</if>>.</p><</if>>
<</if>>
<<if $combat.last_phase_blocked>><p>Scarbourg braces against your strike at half health.</p><</if>>
<<if $combat.last_phase_change>><p><strong><<print $combat.profile_id == "scarbourg" ? "Scarbourg enters fury." : "The bandit fights desperately. His next heavy shot deals " + $combat.rules.rage[0].hits[0] + " damage.">></strong></p><</if>>
</div><<if $player.health <= 0>><nav class="rc-battle-actions"><a class="combat-btn attack" data-passage="Combat_Defeat">Continue</a></nav>
<<elseif $combat.enemy_health <= 0>><nav class="rc-battle-actions"><a class="combat-btn attack" data-passage="Combat_Attack">Continue</a></nav>
<<else>><nav class="rc-battle-actions" aria-label="Combat actions">
<a class="combat-btn attack" data-passage="Combat_Attack"><strong><<print setup.combatIconHtml('attack')>>Attack</strong><small>Deal <<print setup.combatAttackDamage($combat)>> damage</small></a>
<<combatDefendButton>>
<<if $player.Medkit > 0>><a class="combat-btn heal" data-passage="Combat_Heal"><strong><<print setup.combatIconHtml('heal')>>Use Medkit</strong><small>Recover up to <<print $combat.medkit_healing>> HP · <<print $player.Medkit>> left</small></a>
<<else>><span class="combat-btn heal disabled"><<if $combat.fields_bandit>><strong><<print setup.combatIconHtml('heal')>>Medkit unavailable</strong><<else>><strong><<print setup.combatIconHtml('heal')>>Medkit</strong><small>None available</small><</if>></span><</if>>
<<if $combat.sarah_home_fight>><a class="combat-btn" data-passage="Sarah_Home_Retreat"><strong>Retreat with Sarah</strong><small><<if $player.sarah_home.fightGroup == "entry">>Return to the house; enemy damage persists<<else>>Escape through the back passage with half the food<</if>></small></a><</if>>
<<if $combat.yard_fight>><a class="combat-btn" data-passage="Yard_Retreat"><strong>Retreat to cover</strong><small>Enemy damage persists; an unsecured cart may escape</small></a><</if>>
<<if $combat.vehicle_expedition>><<link 'Retreat to the Farm' 'Farm_Garage'>><<run setup.endVehicleExpedition(State.variables, true)>><</link>><</if>>
<<if $combat.radio_fight>><a class="combat-btn" data-passage="Farm_Radio_Retreat"><strong>Retreat</strong><small>Up to 10 energy · escape available even at zero</small></a><</if>>
</nav><</if>></section></div></main>
<</if>>
<<run setup.combatHeal(State.variables)>>
<<goto "Combat_Enemy_Turn">>
<<run setup.beginBasicCombat(State.variables, "raider", "Raider")>>
<<goto "Combat_Enemy_Turn">>
<<if $combat>><<set $combat.completed = true>><</if>>
<<if $combat.radio_fight>><<if setup.finishRadioCombat(State.variables, false)>><<goto 'Farm_Radio_Event'>><<else>><<goto 'Farm_Radio_Room'>><</if>><<elseif $combat.sarah_fight>><<goto "Sarah_Victory">><<else>>
<main class="rc-combat-outcome rc-victory-page"><header class="rc-outcome-header"><span class="rc-ui-kicker">HOSTILE CONTACT / RESULT</span><h1>Victory</h1></header><div class="rc-outcome-grid"><figure class="rc-outcome-portrait"><img @src="setup.enemyCombatPortrait(State.variables)" @alt="$combat.enemy_name"><figcaption>OPPONENT / <<print $combat.enemy_name === "Lena" ? "Lena" : $combat.enemy_name>></figcaption></figure><section class="rc-outcome-report"><<if $combat.last_action == "attack">><p class="rc-combat-summary">Final strike: <strong><<print $combat.last_player_damage>> damage</strong>.</p><</if>><<if $combat.enemy_name == "Lena">><p>Lena staggers back. She looks at the pistol, then at you. "All right. I'm done." She throws it past a wrecked car and raises both hands. She keeps them up as she sinks to her knees.</p><p>The pistol lies a few steps away. Something rattles farther down the street. What will you do with Lena?</p>
<<elseif $combat.enemy_name == "Raider">><p>You have won and now the defeated raider is your trophy.</p><p>What will you do with her?</p>
<<else>><p>You have defeated this creature.</p><p>What will you do?</p><</if>></section></div><nav class="rc-outcome-actions">
<<if $combat.enemy_name == "Lena">><a class="button dark-choice" data-passage="Lena_Enslave">Make her a slave</a><a class="button danger-choice" data-passage="Lena_Kill">Kill her</a>
<<elseif $combat.enemy_name == "Raider">><<if setup.canReceiveGenericSlave(State.variables)>><a class="button dark-choice" data-passage="Raider_Enslave">Make her a slave</a><<else>><span class="rc-action-unavailable">Slave Room full</span><a class="button back-btn" data-passage="City_Center">Leave her</a><</if>><a class="button danger-choice" data-passage="Raider_Kill">Kill her</a>
<<elseif $combat.enemy_name == "Zombie">><a class="button danger-choice" data-passage="Zombie_Kill">Kill him</a>
<<elseif $combat.enemy_name == "Scarbourg">><a class="button danger-choice" data-passage="Scarbourg_Kill">Kill him</a><</if>>
</nav></main>
<</if>>
<<if setup.residentImprovised(State.variables, "lena")>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-task-page rc-task-result-page rc-task-result-cleared">
<figure class="rc-task-portrait"><img src="assets/cast/lena.jpg" alt="Lena"></figure>
<section class="rc-task-body">
<header class="rc-task-heading"><span class="rc-ui-kicker"><<if $player.base_location == "Farm">>FARM<<else>>SAFE HOUSE<</if>> / WORK ROSTER</span><h1>Lena</h1><p>Task canceled</p></header>
<div class="rc-task-result-details">
<div class="rc-task-current"><span>Current assignment</span><strong>No task assigned</strong></div>
<div class="rc-task-result-copy"><p>You recall Lena from her task. She is now available for other interactions.</p>
<<set $player.lena_work = "none">></div>
</div>
<nav class="rc-task-exit"><<if $player.base_location == "Farm">><a class="button back-btn" data-passage="Farm_Bedrooms">Return to Bedrooms</a><<else>><a class="button back-btn" data-passage="Safehouse">Return to the house</a><</if>></nav>
</section>
</main>
<</if>>
<div class="scene-content">
<div class="encounter-header">
<h2>Dangerous Encounter</h2>
</div>
<div class="character-encounter">
<div class="encounter-image">
<img src="assets/cast/lena.jpg" alt="Lena" class="character-image">
</div>
<div class="encounter-text">
<p>A woman stands a few steps away, a pistol held in both hands. She moves back when you turn, keeping a parked car beside her. Her eyes flick to your bag, then to the street behind you.</p>
<div class="dialog">
<p class="lena-dialog">"Easy. Hands where I can see them."</p>
</div>
<p>She nods at your bag.</p>
<div class="dialog">
<p class="lena-dialog">"There are buyers in the center. They pay more if you can walk."</p>
</div>
<p>She keeps her distance, waiting for you to move first. You could rush her or try to get around the car and run.</p>
</div>
</div>
<div class="choice-container">
<a class="button danger-choice" data-passage="Combat_Lena">Fight</a>
<a class="button" data-passage="Outside">Try to escape</a>
</div>
</div><main class="rc-combat-outcome rc-capture-page"><header class="rc-outcome-header"><span class="rc-ui-kicker">HOSTILE CONTACT / AFTERMATH</span><h1>Subjugating Lena</h1></header>
<div class="rc-outcome-grid"><figure class="rc-outcome-portrait"><img src="assets/cast/lena.jpg" alt=""><figcaption>Subjugating Lena</figcaption></figure><section class="rc-outcome-report">
<h2>Subjugating Lena</h2>
<p>You take Lena by the wrists. She tenses, but lets you bind her hands. "I threw it," she says, looking past you toward the car. "I said I'm done."</p>
<<run setup.recruitResident($player, "lena_status", "slave")>>
<p>You start toward the pistol. A horde of monsters spills out of the next street, knocking against the parked cars. Lena sees them too. "Come on," she says, tugging at your grip.</p>
<p>The gun is out in the open. You pull Lena into an alley and leave it where it fell. The two of you make it back to the safehouse.</p>
<<set $player.current_location = "Safehouse">>
</section></div>
<nav class="rc-outcome-actions">
<a class="button dark-choice" data-passage="Lena_Service">Secure the subjugation</a>
<a class="button" data-passage="Safehouse">Go inside</a>
</nav>
</main>
<<if setup.residentImprovised(State.variables, "lena")>><<goto "Farm_Bedrooms">><<else>>
<div class="scene-content">
<div class="dialog-container">
<p class="narrator-text">Lena glances at the door before she answers.</p>
<div class="lena-dialog">
<<if $player.lena_status == "slave">>
<p>"I don't like asking permission to leave a room." She rubs her wrist. "But I'm alive. That's what I've got."</p>
<</if>>
</div>
</div>
<div class="choice-container">
<a class="button neutral-choice" data-passage="Lena_Talk_Menu">Return to the conversation</a>
</div>
</div>
<</if>>
<<if setup.residentImprovised(State.variables, "lena")>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-resident-page">
<header class="rc-resident-header"><div class="rc-resident-portrait"><img src="assets/cast/lena.jpg" alt="Lena"></div>
<div class="rc-resident-identity"><span class="rc-ui-kicker"><<if $player.base_location == "Farm">>FARM / RESIDENT<<else>>SAFE HOUSE / RESIDENT<</if>></span><h1>Lena</h1>
<div class="rc-resident-facts"><div><span>Status</span><strong><<if $player.lena_status == "slave">>Slave<<else>>Ally<</if>></strong></div>
<div><span>Current task</span><strong><<if setup.residentImprovised(State.variables, "lena") && ["scavenging", "Fields", "Cooking"].includes($player.lena_work)>>Paused — needs a bedroom<<elseif setup.residentHungry(State.variables, "lena") && ["scavenging", "Fields"].includes($player.lena_work)>>Paused — needs food<<elseif $player.lena_work == "scavenging">>Scavenging for supplies<<elseif $player.lena_work == "Cooking">>Cooking<<elseif $player.lena_work == "Fields">>Working in fields<<else>>None<</if>></strong></div></div>
</div></header>
<section class="rc-resident-options"><div class="rc-resident-options-heading"><span class="rc-ui-kicker">AVAILABLE ACTIONS</span><h2>Spend time with Lena</h2></div>
<nav class="rc-resident-actions" aria-label="Interact with Lena">
<a class="rc-resident-action" data-passage="Lena_Talk_Menu" data-npc-action="dialogue"><span>01 / Conversation</span><strong>Talk</strong><small>Speak with Lena</small></a>
<<if $player.lena_status == "slave" && $player.lena_work != "scavenging">>
<a class="rc-resident-action rc-resident-action-private" data-passage="Lena_Service" data-npc-action="media"><span>02 / Private</span><strong>Have sex</strong><small>Spend time together</small></a>
<</if>>
<a class="rc-resident-action" data-passage="Lena_Work" data-npc-action="other"><span>03 / Work</span><strong>Assign a task</strong><small>Choose a job for Lena</small></a>
</nav>
</section><nav class="rc-resident-exit"><<if $player.base_location == "Farm">><a class="button back-btn" data-passage="Farm_Bedrooms">← Back to Bedrooms</a><<else>><a class="button back-btn" data-passage="Safehouse">← Back</a><</if>></nav>
</main>
<</if>>
<main class="rc-combat-outcome rc-execution-page"><header class="rc-outcome-header"><span class="rc-ui-kicker">HOSTILE CONTACT / AFTERMATH</span><h1>Execution of Lena</h1></header>
<div class="rc-outcome-grid"><figure class="rc-outcome-portrait"><img src="assets/cast/lena.jpg" alt=""><figcaption>Execution of Lena</figcaption></figure><section class="rc-outcome-report">
<h2>Execution of Lena</h2>
<p>You end it quickly. Lena falls beside the car. Her pistol lies farther down the street, where she threw it.</p>
<<if $player.lena_status != "dead_outside">>
<<set $player.lena_loot_food = setup.collectPartyLoot(State.variables, "Provisions", 5)>>
<<set $player.lena_loot_medkits = setup.collectPartyLoot(State.variables, "Medkit", 1)>>
<</if>>
<<set $player.lena_status = "dead_outside">>
<p>You search her bag. There are five cans of food and a medkit inside. From the next street comes the sound of something knocking against a car. You have time to reach for the pistol, but not to stay here.</p>
<section class="loot rc-loot" aria-label="Recovered supplies">
<header class="rc-loot-header"><span>RECOVERED / LENA'S BAG</span><h3>You found</h3></header>
<ul>
<li><img src="assets/icons/canned_food.svg" alt=""><span>Provisions</span><strong>+5</strong></li>
<li><img src="assets/icons/medkit.svg" alt=""><span>Medkit</span><strong>+1</strong></li>
</ul>
<<if ($player.lena_loot_food || 5) > 5>><<partyAssist "emily" `["+" + ($player.lena_loot_food - 5) + " Provisions", "+" + (($player.lena_loot_medkits || 1) - 1) + " First aid kit"]`>><</if>>
</section>
</section></div>
<nav class="rc-outcome-actions">
<<if !$player.lena_pistol_taken>><a class="button dark-choice" data-passage="Lena_Take_Pistol">Take Lena's pistol</a><</if>>
<a class="button" data-passage="City_Center">Leave the pistol</a>
</nav>
</main>
<<if setup.residentImprovised(State.variables, "lena")>><<goto "Farm_Bedrooms">><<else>>
<div class="scene-content">
<div class="dialog-container">
<p class="narrator-text">Lena's hand drifts to her empty hip. She notices and lets it fall.</p>
<div class="lena-dialog">
<p>"I was a bank manager before the epidemic. I told people what to do all day." She gives a short laugh. "Funny, isn't it?"</p>
<p>"When the epidemic hit, I found the pistol in a car the first week. I took it to protect myself. The first woman I pointed it at gave me her bag." She looks at you. "Then I found buyers in the center. Bringing them people paid better."</p>
</div>
</div>
<div class="choice-container">
<a class="button neutral-choice" data-passage="Lena_Talk_Menu">Return to the conversation</a>
</div>
</div>
<</if>>
<<if setup.residentImprovised(State.variables, "lena")>><<goto "Farm_Bedrooms">><<else>>
<<if !setup.canAffordService(State.variables, 'lena')>>
<div class="scene-content rc-service-unavailable">
<header class="rc-service-header"><img src="assets/cast/lena.jpg" alt=""><div><span>SAFE HOUSE / PRIVATE INTERACTION</span><h1>Lena</h1></div></header>
<div class="warning-message">You do not have enough stamina for sexual actions!</div>
<div class="choice-container">
<a class="button back-btn" data-passage="Lena_Interact">← Back</a>
</div>
</div>
<<else>>
<div class="scene-content rc-service-page" data-rc-service="lena">
<header class="rc-service-header"><img src="assets/cast/lena.jpg" alt=""><div><span>SAFE HOUSE / PRIVATE INTERACTION</span><h1>Lena</h1></div></header>
<div class="video-container">
<video class="scene-video" autoplay muted loop playsinline>
<source src="assets/videos/lena/blowjob (1).webm" type="video/webm">
</video>
</div>
<div class="service-menu">
<div class="menu-title">Choose an action:</div>
<div class="service-buttons">
<a class="service-btn" data-rc-video="blowjob" role="button" tabindex="0">Blowjob</a>
<a class="service-btn" data-rc-video="vaginal" role="button" tabindex="0">Vaginal</a>
<a class="service-btn" data-rc-video="anal" role="button" tabindex="0">Anal</a>
<a class="service-btn" data-rc-video="cum" role="button" tabindex="0">Finish</a>
</div>
<<if $player.base_location == "Farm">><a class="button back-btn" data-passage="Farm_Bedrooms">← Finish</a><<else>><a class="button back-btn" data-passage="Safehouse">← Finish</a><</if>>
</div>
</div>
<</if>>
<</if>>
<<if setup.residentHungry(State.variables, "lena")>><<goto "Lena_Work">><<else>>
<<if setup.residentImprovised(State.variables, "lena")>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-task-page rc-task-result-page rc-task-result-assigned">
<figure class="rc-task-portrait"><img src="assets/cast/lena.jpg" alt="Lena"></figure>
<section class="rc-task-body">
<header class="rc-task-heading"><span class="rc-ui-kicker"><<if $player.base_location == "Farm">>FARM<<else>>SAFE HOUSE<</if>> / WORK ROSTER</span><h1>Lena</h1><p>Task assigned</p></header>
<div class="rc-task-result-details">
<div class="rc-task-current"><span>Current assignment</span><strong>Scavenging</strong></div>
<div class="rc-task-result-copy"><p>You send Lena to scavenge for supplies in the city. It's a dangerous task, but necessary for survival.</p>
<<set $player.lena_work = "scavenging">><<run setup.leavePartyForWork($player, "lena")>></div>
</div>
<nav class="rc-task-exit"><<if $player.base_location == "Farm">><a class="button back-btn" data-passage="Farm_Bedrooms">Return to Bedrooms</a><<else>><a class="button back-btn" data-passage="Safehouse">Return to the house</a><</if>></nav>
</section>
</main>
<</if>>
<</if>>
<<if setup.residentImprovised(State.variables, "lena")>><<goto "Farm_Bedrooms">><<else>>
<div class="scene-content">
<div class="dialog-container">
<p class="narrator-text">Lena looks up when you enter. One knee is bouncing under the table; she stills it with her hand.</p>
<div class="lena-dialog">
<p>"What is it, master?"</p>
</div>
<div class="dialog-options">
<<if setup.lenaInvasionAftermathAvailable(State.variables)>><a class="button light-choice" data-passage="Lena_Invasion_Aftermath">Talk about the invasion</a><</if>>
<<if $player.lena_trade && $player.lena_trade.stage == 'missed' && !$player.lena_trade.missed_seen>><a class="button light-choice" data-passage="Lena_Trade_Mission">Ask about the missed delivery</a><</if>>
<a class="button light-choice" data-passage="Lena_Past">Ask about her past</a>
<a class="button light-choice" data-passage="Lena_Feelings">Ask about her feelings</a>
<<if setup.fieldsUnboundsAvailable(State.variables)>><a class="button light-choice" data-passage="Lena_Unbounds">Ask about the Unbounds</a><</if>>
<a class="button neutral-choice" data-passage="Lena_Interact">End the conversation</a>
</div>
</div>
</div>
<</if>>
<<if setup.residentImprovised(State.variables, "lena")>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-task-page"><figure class="rc-task-portrait"><img src="assets/cast/lena.jpg" alt="Lena"></figure>
<section class="rc-task-body"><header class="rc-task-heading"><span class="rc-ui-kicker"><<if $player.base_location == "Farm">>FARM<<else>>SAFE HOUSE<</if>> / WORK ROSTER</span><h1>Lena</h1><p>Assign a task</p></header>
<<if $player.lena_work != "none">>
<div class="rc-task-current"><span>Current assignment</span><strong><<print $player.lena_work>></strong>
<a class="button danger-choice" data-passage="Lena_Cancel_Work">Cancel task</a></div>
<<else>>
<nav class="rc-task-options" aria-label="Tasks for Lena">
<<if setup.residentHungry(State.variables, "lena")>><p class="rc-farm-alert">Scavenging is paused until the base is fed. Cooking is still available.</p><<else>><a class="rc-task-option" data-passage="Lena_Start_Scavenging"><span>01 / Outside</span><strong>Start scavenging</strong><small>Search for supplies on the next day</small></a><</if>>
<a class="rc-task-option" data-passage="Lena_Cooks"><span>02 / <<if $player.base_location == "Farm">>Farm<<else>>Safe house<</if>></span><strong>Cooking</strong><small>Prepare food when raw meat is available</small></a>
</nav>
<</if>>
<nav class="rc-task-exit"><a class="button back-btn" data-passage="Lena_Interact">← Return to Lena</a></nav>
</section>
</main>
<</if>>
<<if setup.residentImprovised(State.variables, "lena")>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-task-page rc-task-result-page rc-task-result-assigned">
<figure class="rc-task-portrait"><img src="assets/cast/lena.jpg" alt="Lena"></figure>
<section class="rc-task-body">
<header class="rc-task-heading"><span class="rc-ui-kicker"><<if $player.base_location == "Farm">>FARM<<else>>SAFE HOUSE<</if>> / WORK ROSTER</span><h1>Lena</h1><p>Task assigned</p></header>
<div class="rc-task-result-details">
<div class="rc-task-current"><span>Current assignment</span><strong>Cooking</strong></div>
<div class="rc-task-result-copy"><p>Lena tries to cook something edible.</p>
<<set $player.lena_work = "Cooking">><<run setup.leavePartyForWork($player, "lena")>></div>
</div>
<nav class="rc-task-exit"><<if $player.base_location == "Farm">><a class="button back-btn" data-passage="Farm_Bedrooms">Return to Bedrooms</a><<else>><a class="button back-btn" data-passage="Safehouse">Return to the house</a><</if>></nav>
</section>
</main>
<</if>>
<<set _exploreStaminaBefore = $player.stamina>>
<<set _explorePaid = setup.spendExplorationEnergy(State.variables)>>
<main class="rc-search-page rc-explore-page">
<header class="rc-search-header"><div><span class="rc-search-kicker">OUTSIDE / RECONNAISSANCE</span><h1>Explore Area</h1></div><span class="rc-search-status">FIELD REPORT</span></header>
<section class="rc-search-body" aria-label="Area reconnaissance">
<p class="rc-search-label">The route</p>
<p class="rc-explore-intro">You decide to explore the surroundings in search of useful locations. It's dangerous, but could prove beneficial.</p>
<div class="rc-explore-result"><span class="rc-search-label">What you found</span>
<<if $discovered_bunker and $discovered_farm and $discovered_city_center and $discovered_settlement and $discovered_forest>>
<p class="rc-explore-feedback">You already found everything nearby.</p>
<<elseif !_explorePaid>>
<p class="warning-message">Exploring requires 15 energy.</p>
<<elseif random(1, 100) <= 50>>
<<if $discovered_bunker == false>>
<<set $discovered_bunker = true>><<run setup.energyDiscover(State.variables, "bunker")>>
<p class="success">You found something interesting! An abandoned bunker stands among the ruins.</p>
<a class="button light-choice" data-passage="Bunker">Explore the bunker</a>
<<elseif $discovered_farm == false>>
<<set $discovered_farm = true>><<run setup.energyDiscover(State.variables, "farm")>>
<p class="success">You found something interesting! An old farm is visible outside the city.</p>
<a class="button light-choice" data-passage="Farm">Explore the farm</a>
<<elseif $discovered_city_center == false>>
<<set $discovered_city_center = true>><<run setup.energyDiscover(State.variables, "city")>>
<p class="success">You discovered a safe route to the city center!</p>
<a class="button light-choice" data-passage="City_Center">Go to the center</a>
<<elseif $discovered_settlement == false>>
<<set $discovered_settlement = true>><<run setup.energyDiscover(State.variables, "settlement")>>
<p class="success">You spot a small settlement of survivors in the distance!</p>
<a class="button light-choice" data-passage="Settlement">Approach the settlement</a>
<<elseif $discovered_forest == false>>
<<set $discovered_forest = true>><<run setup.energyDiscover(State.variables, "forest")>>
<p class="success">You have a view of the endless forest.</p>
<a class="button light-choice" data-passage="Forest">Enter the forest</a>
<</if>>
<<else>>
<p class="rc-explore-feedback">Nothing.</p>
<</if>>
</div>
</section>
<nav class="rc-search-actions"><span class="rc-search-cost">−<<= _exploreStaminaBefore - $player.stamina>> energy · <<print $player.stamina>> left</span>
<div class="rc-search-action-list"><a class="button rc-search-return" data-passage="Outside">Return to Outside</a></div></nav>
</main><<if !setup.enterEnergyDestination(State.variables, "Farm")>>
<p class="warning-message">This trip requires <<print setup.energyDestinationCost(State.variables, "Farm")>> energy. The return home is free.</p>
<a class="button" data-passage="Outside">Return to the map</a> <a class="button" data-passage="Safehouse">Return home</a>
<<else>>
<<run setup.ensureFarmRecovery(State.variables)>>
<<if $player.base_location == "Farm">><<goto "Safehouse">><<elseif $farm_recovery.stage == 1 && $farm_recovery.companion === null>><<goto "Farm_Proposal">><<else>>
<<set $player.current_location = "Farm">>
<<set _firstArrivalWithSophia = $farm_recovery.stage == 1 && setup.farmSophiaPresent(State.variables)>>
<<if !$farm_recovery.on_site>><<set $farm_recovery.last_event = "">><</if>>
<<run setup.enterFarmRecovery(State.variables)>>
<div class="scene-content rc-farm-page">
<div class="scene-text">
<h2>The Old Farm</h2>
<p>Beyond the city, you find an abandoned farm. The farmhouse is still standing, though it needs repairs.<br>A few sheds sit beside the fields, and dark soil shows through the weeds.</p>
<p>Someone has reinforced part of the fence and cleared a patch of ground. The work stopped there.<br>With repairs and enough time, you could grow food here.</p>
<<if _firstArrivalWithSophia>>
<div class="rc-farm-sophia-moment rc-farm-sophia-arrival">
<div class="rc-narration rc-stage">Sophia stops at the gate, map in one hand. She tries the loose latch, then points to the roof and the pump.</div>
<<if setup.farmSophiaRole($player) == "slave">>
<div class="dialogue-line"><span class="speaker-label">(Sophia)</span> “The house is still standing, master. I can check the pump while you look inside. Just... call me if you find anyone in there.”</div>
<div class="dialogue-line"><span class="speaker-label">(You)</span> “Stay close.”</div>
<div class="rc-narration rc-stage">She folds the map and follows you through the gate.</div>
<<else>>
<div class="dialogue-line"><span class="speaker-label">(Sophia)</span> “Well, the map didn't mention the weeds. Or that roof.”</div>
<div class="rc-narration rc-stage">She gives the gate another shove.</div>
<div class="dialogue-line"><span class="speaker-label">(Sophia)</span> “I'll check the pump. You take the house? And shout if something moves.”</div>
<div class="dialogue-line"><span class="speaker-label">(You)</span> “That includes you?”</div>
<div class="dialogue-line"><span class="speaker-label">(Sophia)</span> “Very funny. Come on.”</div>
<</if>>
</div>
<</if>>
<<if $farm_recovery.stage > 2 && $farm_recovery.last_event>><p><<print $farm_recovery.last_event>></p><</if>>
</div>
<<if $farm_recovery.stage >= 2 && $farm_recovery.stage < 10>>
<div class="choice-container">
<a class="button" data-passage="Farm_Work">Work on the farm</a>
</div>
<</if>>
<div class="choice-container">
<a class="button" data-passage="Outside">Return</a>
</div>
</div>
<</if>>
<</if>>
<<if !setup.enterEnergyDestination(State.variables, "Forest")>>
<p class="warning-message">This trip requires <<print setup.energyDestinationCost(State.variables, "Forest")>> energy. The return home is free.</p>
<a class="button" data-passage="Outside">Return to the map</a> <a class="button" data-passage="Safehouse">Return home</a>
<<else>>
<<set $player.current_location = "Forest">>
<div class="scene-content">
<div class="scene-text">
<h2>Forest</h2>
<p>
The trees are still standing, but their bark has split around pale growths. Thick, spore-covered tendrils hang from the branches. Something large buzzes overhead, then disappears deeper into the woods.
</p>
<p>
A torn sleeve is caught on a low branch. You stay on the path and watch the trees.
</p>
</div>
<<sophiaForestEvent>>
<<if $player.stamina >= setup.partyActionCost(State.variables, "hunt")>>
<div class="choice-container">
<a class="button" data-passage="Forest_Hunt">Go hunt · <<print setup.partyActionCost(State.variables, "hunt")>> energy</a>
</div>
<<else>>
<p class="warning-message rc-action-warning">Hunting requires <<print setup.partyActionCost(State.variables, "hunt")>> energy.</p>
<</if>>
<a class="button" data-passage="Outside">Return</a>
</div>
<</if>>
<p class="rc-action-warning">A forced retreat may cost up to 10 extra energy. Returning home is free.</p>
<<set _huntHealthBefore = $player.health>>
<<set _huntStaminaBefore = $player.stamina>>
<<set _huntOutcome = "exhausted">>
<<set _huntStatus = "HUNT UNAVAILABLE">>
<<set _huntTarget = "No sighting">>
<<set _huntImage = "">>
<<set _huntScene = "You're too exhausted to hunt!">>
<<set _huntAfter = "">>
<<set _huntLoot = 0>>
<<set _huntBaseLoot = 0>>
<<set _huntCost = setup.partyActionCost(State.variables, "hunt")>>
<<set _huntLootName = "">>
<<set _huntLootIcon = "">>
<<set _huntRisk = "">>
<<set _escaped = false>>
<<set _event = 0>>
<<if $player.stamina gte _huntCost>>
<<set _event to setup.huntEvent($player, random)>>
<<set _damage_reduce to $player.Weapon_status is "Wrench" ? 0.1 : $player.Weapon_status is "Knife" ? 0.2 : $player.Weapon_status is "Pistol" ? 0.4 : $player.Weapon_status is "Shotgun" ? 0.6 : 0>>
<<set _loot_multiplier to $player.Weapon_status is "none" ? 0.5 : $player.Weapon_status is "Wrench" ? 1 : $player.Weapon_status is "Knife" ? 1.2 : $player.Weapon_status is "Pistol" ? 1.3 : 1.5>>
<<if _event is 1>>
<<set _huntTarget = "Mutant wolf">>
<<set _huntImage = "assets/generic/hunt/wolf_mutant.png">>
<<set _huntScene = "A mutant wolf lunges from the brush!">>
<<set _damage to Math.max(1, Math.floor(($player.wolf_mutant_damage + random(10,30)) * (1 - _damage_reduce)))>>
<<if $player.health - _damage lte 0>>
<<set _escaped = true>>
<<set _huntOutcome = "retreat">>
<<set _huntStatus = "FORCED RETREAT">>
<<set _huntRisk = "You have " + $player.health + " health, but this attack would deal " + _damage + " damage!">>
<<run setup.spendHuntRetreatEnergy(State.variables, _huntCost)>>
<<else>>
<<set $player.health to Math.max(0, $player.health - _damage)>>
<<set _huntLoot to Math.floor(random(2,6) * _loot_multiplier)>>
<<set _huntBaseLoot = _huntLoot>><<set _huntLoot = setup.collectPartyLoot(State.variables, "Raw_meat", _huntLoot)>>
<<set $player.stamina -= _huntCost>>
<<set _huntOutcome = "success">>
<<set _huntStatus = "HUNT COMPLETE">>
<<set _huntAfter = "You wound the wolf and drive it back, but lose " + _damage + " health. You take raw meat from the carcass it was feeding on. The wolf is still nearby.">>
<<set _huntLootName = "Raw meat">>
<<set _huntLootIcon = "assets/icons/raw_meat.svg">>
<</if>>
<<elseif _event is 2>>
<<set _huntTarget = "Mutant rat swarm">>
<<set _huntImage = "assets/generic/hunt/rat_mutant.png">>
<<set _huntScene = "Mutant rats swarm from the ground!">>
<<set _damage to Math.max(1, Math.floor(($player.rat_mutant_damage + random(5,20)) * (1 - _damage_reduce)))>>
<<if $player.health - _damage lte 0>>
<<set _escaped = true>>
<<set _huntOutcome = "retreat">>
<<set _huntStatus = "FORCED RETREAT">>
<<set _huntRisk = "You have " + $player.health + " health, but this attack would deal " + _damage + " damage!">>
<<run setup.spendHuntRetreatEnergy(State.variables, _huntCost)>>
<<else>>
<<set $player.health to Math.max(0, $player.health - _damage)>>
<<set _huntLoot to Math.floor(random(1,2) * _loot_multiplier)>>
<<set _huntBaseLoot = _huntLoot>><<set _huntLoot = setup.collectPartyLoot(State.variables, "Raw_meat", _huntLoot)>>
<<set $player.stamina -= _huntCost>>
<<set _huntOutcome = "success">>
<<set _huntStatus = "HUNT COMPLETE">>
<<set _huntAfter = "You fend them off, but lose " + _damage + " health.">>
<<set _huntLootName = "Raw meat">>
<<set _huntLootIcon = "assets/icons/raw_meat.svg">>
<</if>>
<<elseif _event is 3>>
<<set _huntTarget = "Spore-sick raiders">>
<<set _huntImage = "assets/generic/hunt/raider_mutant.png">>
<<set _huntScene = "Spore-sick raiders ambush you!">>
<<set $player.raider_damage = $player.raider_damage ?? 15>>
<<set _damage to Math.max(1, Math.floor(($player.raider_damage + random(10,40)) * (1 - _damage_reduce)))>>
<<if $player.health - _damage lte 0>>
<<set _escaped = true>>
<<set _huntOutcome = "retreat">>
<<set _huntStatus = "FORCED RETREAT">>
<<set _huntRisk = "You have " + $player.health + " health, but this attack would deal " + _damage + " damage!">>
<<run setup.spendHuntRetreatEnergy(State.variables, _huntCost)>>
<<else>>
<<set $player.health to Math.max(0, $player.health - _damage)>>
<<set _huntLoot to Math.floor(random(5,50) * _loot_multiplier)>>
<<set _huntBaseLoot = _huntLoot>><<set _huntLoot = setup.collectPartyLoot(State.variables, "Money", _huntLoot)>>
<<set $player.stamina -= _huntCost>>
<<set _huntOutcome = "success">>
<<set _huntStatus = "HUNT COMPLETE">>
<<set _huntAfter = "You survive, but lose " + _damage + " health.">>
<<set _huntLootName = "Money">>
<<set _huntLootIcon = "assets/icons/money.svg">>
<</if>>
<<else>>
<<set $player.stamina -= _huntCost>>
<<set _huntOutcome = "empty">>
<<set _huntStatus = "NO CATCH">>
<<set _huntScene = "The forest is empty, nothing found.">>
<</if>>
<</if>>
<<set _huntStaminaSpent = Math.max(0, _huntStaminaBefore - $player.stamina)>>
<<run setup.recordSophiaForestHunt(State.variables, _huntOutcome)>>
<<set _huntHealthLost = Math.max(0, _huntHealthBefore - $player.health)>>
<<run setup.recordHuntVialTarget(State.variables, _event, _huntOutcome, random)>>
<<if _huntImage>>
<<set _huntPortrait = setup.huntPortrait(State.variables, _event)>>
<<set _huntImage = _huntPortrait.image>>
<<set _huntTarget = _huntPortrait.name>>
<<if _huntPortrait.species == 'dog'>>
<<set _huntScene = "A mutant dog lunges from the brush!">>
<<set _huntAfter = _huntAfter.replace(/\bwolf\b/g, 'dog')>>
<</if>>
<</if>>
<style>
html body #passages #passage-forest-hunt .rc-hunt-page {
box-sizing: border-box !important;
display: block !important;
width: 100% !important;
max-width: 1040px !important;
min-width: 0 !important;
margin: 0 auto !important;
padding: 0 !important;
overflow: hidden !important;
border: 1px solid var(--ds-rule-dark) !important;
border-radius: 0 !important;
background: var(--ds-paper) !important;
box-shadow: 0 14px 38px rgba(0, 0, 0, .25) !important;
}
html body #passages #passage-forest-hunt .rc-hunt-page br { display: none !important; }
html body #passages #passage-forest-hunt .rc-hunt-header {
box-sizing: border-box !important;
display: flex !important;
justify-content: space-between !important;
align-items: center !important;
gap: 20px !important;
min-width: 0 !important;
margin: 0 !important;
padding: 22px clamp(22px, 3vw, 34px) !important;
border: 0 !important;
border-bottom: 5px solid var(--ds-rust) !important;
background: var(--ds-ink) !important;
color: var(--ds-paper-high) !important;
}
html body #passages #passage-forest-hunt .rc-hunt-kicker,
html body #passages #passage-forest-hunt .rc-hunt-status {
display: block !important;
color: var(--ds-amber) !important;
font: 800 .7rem/1.3 var(--ui-mono) !important;
letter-spacing: .12em !important;
text-transform: uppercase !important;
}
html body #passages #passage-forest-hunt .rc-hunt-header h1 {
margin: 5px 0 0 !important;
color: var(--ds-paper-high) !important;
font: 900 clamp(1.8rem, 3vw, 2.7rem)/1.06 var(--ui-display) !important;
text-transform: uppercase !important;
}
html body #passages #passage-forest-hunt .rc-hunt-status {
flex: 0 0 auto !important;
padding: 8px 11px !important;
border: 1px solid var(--ds-rule) !important;
text-align: center !important;
}
html body #passages #passage-forest-hunt .rc-hunt-ledger {
box-sizing: border-box !important;
display: grid !important;
grid-template-columns: minmax(0, 1.55fr) repeat(2, minmax(0, 1fr)) !important;
gap: 1px !important;
margin: 0 !important;
padding: 0 !important;
background: var(--ds-rule) !important;
}
html body #passages #passage-forest-hunt .rc-hunt-metric {
box-sizing: border-box !important;
display: grid !important;
align-content: center !important;
gap: 5px !important;
min-width: 0 !important;
min-height: 130px !important;
margin: 0 !important;
padding: 18px clamp(17px, 2vw, 26px) !important;
background: var(--ds-paper-high) !important;
color: var(--ds-text) !important;
}
html body #passages #passage-forest-hunt .rc-hunt-metric-reward {
background: #dce2d3 !important;
border-left: 6px solid var(--ds-moss) !important;
}
html body #passages #passage-forest-hunt .rc-hunt-metric-label {
color: #5b5c50 !important;
font: 800 .68rem/1.2 var(--ui-mono) !important;
letter-spacing: .1em !important;
text-transform: uppercase !important;
}
html body #passages #passage-forest-hunt .rc-hunt-metric-main {
display: flex !important;
align-items: center !important;
gap: 10px !important;
min-width: 0 !important;
}
html body #passages #passage-forest-hunt .rc-hunt-metric-main img {
flex: 0 0 auto !important;
width: 36px !important;
height: 36px !important;
object-fit: contain !important;
}
html body #passages #passage-forest-hunt .rc-hunt-metric strong {
color: var(--ds-text) !important;
font: 900 clamp(1.4rem, 2.5vw, 2rem)/1.05 var(--ui-display) !important;
overflow-wrap: anywhere !important;
}
html body #passages #passage-forest-hunt .rc-hunt-metric-cost strong { color: var(--ds-rust) !important; }
html body #passages #passage-forest-hunt .rc-hunt-metric small {
color: #625d52 !important;
font: 600 .78rem/1.35 var(--ui-body) !important;
}
html body #passages #passage-forest-hunt .rc-hunt-body {
box-sizing: border-box !important;
display: grid !important;
grid-template-columns: minmax(180px, 32%) minmax(0, 1fr) !important;
min-width: 0 !important;
margin: 0 !important;
padding: 0 !important;
background: var(--v2-paper-low) !important;
background-image: var(--v2-paper-texture) !important;
}
html body #passages #passage-forest-hunt .rc-hunt-sighting {
box-sizing: border-box !important;
min-width: 0 !important;
margin: 0 !important;
padding: 16px !important;
border-right: 1px solid #b3a994 !important;
background: var(--ds-concrete) !important;
}
html body #passages #passage-forest-hunt .rc-hunt-sighting img {
display: block !important;
width: 100% !important;
height: 215px !important;
object-fit: contain !important;
background: var(--ds-ink) !important;
}
html body #passages #passage-forest-hunt .rc-hunt-sighting figcaption,
html body #passages #passage-forest-hunt .rc-hunt-no-sighting {
display: grid !important;
gap: 3px !important;
padding: 10px 0 0 !important;
color: var(--ds-paper-high) !important;
}
html body #passages #passage-forest-hunt .rc-hunt-sighting figcaption span,
html body #passages #passage-forest-hunt .rc-hunt-no-sighting span {
color: var(--ds-amber) !important;
font: 800 .65rem/1.2 var(--ui-mono) !important;
letter-spacing: .1em !important;
text-transform: uppercase !important;
}
html body #passages #passage-forest-hunt .rc-hunt-sighting figcaption strong,
html body #passages #passage-forest-hunt .rc-hunt-no-sighting strong {
font: 900 .9rem/1.2 var(--ui-display) !important;
text-transform: uppercase !important;
}
html body #passages #passage-forest-hunt .rc-hunt-no-sighting {
align-content: center !important;
min-height: 215px !important;
padding: 20px !important;
}
html body #passages #passage-forest-hunt .rc-hunt-report {
box-sizing: border-box !important;
display: grid !important;
align-content: center !important;
gap: 13px !important;
min-width: 0 !important;
margin: 0 !important;
padding: 25px clamp(22px, 3vw, 38px) !important;
color: var(--v2-ink) !important;
}
html body #passages #passage-forest-hunt .rc-hunt-report span {
color: #5c614e !important;
font: 800 .68rem/1.2 var(--ui-mono) !important;
letter-spacing: .1em !important;
text-transform: uppercase !important;
}
html body #passages #passage-forest-hunt .rc-hunt-report p {
max-width: 64ch !important;
margin: 0 !important;
color: var(--v2-ink) !important;
font: 500 1rem/1.55 var(--ui-body) !important;
text-align: left !important;
}
html body #passages #passage-forest-hunt .rc-hunt-report .rc-hunt-risk {
padding: 10px 0 10px 14px !important;
border-left: 4px solid var(--ds-rust) !important;
color: #803d32 !important;
font-weight: 700 !important;
}
html body #passages #passage-forest-hunt .rc-hunt-actions {
box-sizing: border-box !important;
display: flex !important;
justify-content: space-between !important;
align-items: center !important;
gap: 20px !important;
width: 100% !important;
min-width: 0 !important;
margin: 0 !important;
padding: 18px clamp(22px, 3vw, 34px) !important;
border: 0 !important;
border-top: 3px solid var(--ds-rule-dark) !important;
background: var(--ds-ink) !important;
}
html body #passages #passage-forest-hunt .rc-hunt-actions small {
color: #d2c6ae !important;
font: 700 .72rem/1.3 var(--ui-mono) !important;
text-transform: uppercase !important;
}
html body #passages #passage-forest-hunt .rc-hunt-action-list {
display: flex !important;
flex-wrap: nowrap !important;
justify-content: flex-end !important;
gap: 10px !important;
min-width: 0 !important;
}
html body #passages #passage-forest-hunt .rc-hunt-action-list a.button {
box-sizing: border-box !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
min-width: 145px !important;
width: auto !important;
min-height: 60px !important;
height: auto !important;
margin: 0 !important;
padding: 10px 15px !important;
border: 1px solid var(--ds-rust) !important;
border-radius: 0 !important;
background: var(--ds-rust) !important;
color: var(--ds-paper-high) !important;
font: 900 .83rem/1.25 var(--ui-display) !important;
text-align: center !important;
text-transform: uppercase !important;
white-space: normal !important;
}
html body #passages #passage-forest-hunt .rc-hunt-action-list a.button.rc-hunt-secondary {
border-color: var(--ds-ink) !important;
background: var(--ds-paper-high) !important;
color: var(--ds-ink) !important;
}
html body #passages #passage-forest-hunt .rc-hunt-action-list a.button:hover,
html body #passages #passage-forest-hunt .rc-hunt-action-list a.button:focus-visible {
outline: 3px solid var(--ds-amber) !important;
outline-offset: 2px !important;
filter: brightness(1.08) !important;
}
@media (max-width: 760px) {
html body #passages #passage-forest-hunt .rc-hunt-ledger {
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
html body #passages #passage-forest-hunt .rc-hunt-metric-reward { grid-column: 1 / -1 !important; }
html body #passages #passage-forest-hunt .rc-hunt-metric { min-height: 94px !important; }
html body #passages #passage-forest-hunt .rc-hunt-body { grid-template-columns: minmax(0, 1fr) !important; }
html body #passages #passage-forest-hunt .rc-hunt-sighting { border-right: 0 !important; }
html body #passages #passage-forest-hunt .rc-hunt-sighting img { height: 180px !important; }
html body #passages #passage-forest-hunt .rc-hunt-no-sighting { min-height: 130px !important; }
}
@media (max-width: 480px) {
html body #passages #passage-forest-hunt .rc-hunt-header { gap: 10px !important; }
html body #passages #passage-forest-hunt .rc-hunt-status { max-width: 118px !important; }
html body #passages #passage-forest-hunt .rc-hunt-metric {
padding: 15px !important;
}
html body #passages #passage-forest-hunt .rc-hunt-metric strong { font-size: 1.35rem !important; }
html body #passages #passage-forest-hunt .rc-hunt-actions {
align-items: stretch !important;
flex-direction: column !important;
gap: 12px !important;
}
html body #passages #passage-forest-hunt .rc-hunt-action-list,
html body #passages #passage-forest-hunt .rc-hunt-action-list a.button {
width: 100% !important;
}
html body #passages #passage-forest-hunt .rc-hunt-action-list { flex-direction: column !important; }
}
</style>
<main class="rc-hunt-page" @data-hunt-outcome="_huntOutcome">
<header class="rc-hunt-header">
<div>
<span class="rc-hunt-kicker">FOREST / HUNT</span>
<h1>Hunt result</h1>
</div>
<span class="rc-hunt-status"><<= _huntStatus>></span>
</header>
<section class="rc-hunt-ledger" aria-label="Resources gained and spent">
<div class="rc-hunt-metric rc-hunt-metric-reward">
<span class="rc-hunt-metric-label">You found</span>
<div class="rc-hunt-metric-main">
<<if _huntLoot gt 0>>
<img @src="_huntLootIcon" alt="">
<strong>+<<= _huntBaseLoot>> <<= _huntLootName>></strong>
<<else>>
<strong>No supplies</strong>
<</if>>
</div>
<small><<if _huntLoot gt 0>>Added to inventory<<else>>Nothing added to inventory<</if>></small>
</div>
<div class="rc-hunt-metric rc-hunt-metric-cost">
<span class="rc-hunt-metric-label">Stamina spent</span>
<strong><<if _huntStaminaSpent gt 0>>−<<= _huntStaminaSpent>><<else>>No cost<</if>></strong>
<small><<= _huntStaminaBefore>> → <<= $player.stamina>></small>
</div>
<div class="rc-hunt-metric rc-hunt-metric-cost">
<span class="rc-hunt-metric-label">Health lost</span>
<strong><<if _huntHealthLost gt 0>>−<<= _huntHealthLost>><<else>>No loss<</if>></strong>
<small><<= _huntHealthBefore>> → <<= $player.health>></small>
</div>
</section>
<div class="rc-hunt-body">
<figure class="rc-hunt-sighting">
<<if _huntImage>>
<img @src="_huntImage" @alt="_huntTarget">
<figcaption><span>Sighting</span><strong><<= _huntTarget>></strong></figcaption>
<<else>>
<div class="rc-hunt-no-sighting"><span>Field note</span><strong><<= _huntTarget>></strong></div>
<</if>>
</figure>
<section class="rc-hunt-report" aria-label="Hunt report">
<span>Field report</span>
<p><<= _huntScene>></p>
<<if _huntAfter>><p><<= _huntAfter>></p><</if>>
<<if _huntRisk>><p class="rc-hunt-risk"><<= _huntRisk>></p><</if>>
</section>
</div>
<<sophiaForestEvent>>
<<if _huntLoot > _huntBaseLoot>><<partyAssist "emily" `"+" + (_huntLoot - _huntBaseLoot) + " " + _huntLootName`>><</if>>
<<if _huntCost < 20 && _huntStaminaSpent == _huntCost>><<partyAssist "gage" "−7.5 energy">><</if>>
<nav class="rc-hunt-actions" aria-label="Hunt actions">
<<if $player.health lte 0>>
<<if setup.trySarahRetreat(State.variables, "hunt")>><<goto "Sarah_Retreat">><<else>>
<<set $player.health = 0>>
<<set $player.game_status = 0>>
<small>You're mortally wounded... The world fades...</small>
<div class="rc-hunt-action-list"><a class="button" data-passage="Game_Over">Game Over</a></div>
<</if>>
<<elseif _escaped>>
<small>Retreat to safety</small>
<div class="rc-hunt-action-list"><a class="button rc-hunt-secondary" data-passage="Forest">Escape to Forest</a></div>
<<elseif _huntOutcome is "exhausted">>
<small>Hunt: <<print _huntCost>> energy. Return: no additional energy.</small>
<div class="rc-hunt-action-list"><a class="button rc-hunt-secondary" data-passage="Forest">Return to Forest</a></div>
<<else>>
<small><<if $player.stamina gte _huntCost>>Next hunt: <<print _huntCost>> energy.<<else>>Another hunt requires <<print _huntCost>> energy.<</if>> Return: no additional energy.</small>
<div class="rc-hunt-action-list">
<<if $player.stamina gte _huntCost>><a class="button" data-passage="Forest_Hunt">Hunt Again</a><</if>>
<<huntVialOption>>
<a class="button rc-hunt-secondary" data-passage="Forest">Return to Forest</a>
</div>
<</if>>
</nav>
</main>
<p class="rc-action-warning">A forced retreat may cost up to 10 extra energy. Returning home is free.</p>
<<if setup.skylerHasMoved($player)>><<goto "Skyler_Interact">>
<<elseif $player.skyler_home && $player.skyler_home.accepted>><<goto "Skyler_Home_Mission">>
<<elseif $player.Money < 10>>
<div class="scene-content rc-service-unavailable">
<header class="rc-service-header"><div><span>SETTLEMENT / PRIVATE INTERACTION</span><h1>Skyler</h1></div></header>
<div class="warning-message">10 Money required.</div>
<div class="choice-container"><a class="button back-btn" data-passage="Prostitute">← Back</a></div>
</div>
<<elseif !setup.canAffordService(State.variables, 'prostitute')>>
<div class="scene-content rc-service-unavailable">
<header class="rc-service-header"><div><span>SETTLEMENT / PRIVATE INTERACTION</span><h1>Skyler</h1></div></header>
<div class="warning-message">You do not have enough stamina for sexual actions!</div>
<div class="choice-container">
<a class="button back-btn" data-passage="Prostitute">← Back</a>
</div>
</div>
<<else>>
<<set $player.Money -= 10>>
<<set setup.ensureSkylerTrust($player).hired = true>>
<div class="scene-content rc-service-page" data-rc-service="prostitute">
<header class="rc-service-header"><div><span>SETTLEMENT / PRIVATE INTERACTION</span><h1>Skyler</h1></div></header>
<div class="video-container">
<video class="scene-video" autoplay muted loop playsinline>
<source src="assets/videos/shinaryen/blowjob (1).webm" type="video/webm">
</video>
</div>
<div class="service-menu">
<div class="menu-title">Choose an action:</div>
<div class="service-buttons">
<a class="service-btn" data-rc-video="blowjob" role="button" tabindex="0">Blowjob</a>
<a class="service-btn" data-rc-video="vaginal" role="button" tabindex="0">Vaginal</a>
<a class="service-btn" data-rc-video="anal" role="button" tabindex="0">Anal</a>
<a class="service-btn" data-rc-video="cum" role="button" tabindex="0">Finish</a>
</div>
<a class="button back-btn" data-passage="Prostitute">← Back</a>
</div>
</div>
<</if>>
<main class="rc-combat-outcome rc-defeat-page"><header class="rc-outcome-header"><span class="rc-ui-kicker">SURVIVAL RECORD / END</span><h1>Game Over</h1></header>
<div class="rc-outcome-grid"><section class="rc-outcome-report"><p>Use Restart to begin a new survival record.</p></section></div>
<nav class="rc-outcome-actions"><button type="button" class="button rc-restart-action" data-rc-mobile-action="restart">Restart</button></nav>
</main><<if setup.nightVisitActive(State.variables)>>
<<if setup.nightVisitActive(State.variables).phase === 'media'>><<goto "Night_Visit_Media">><<else>><<goto "Night_Visit">><</if>>
<<elseif setup.lenaInvasionBusy(State.variables)>><<goto 'Lena_Invasion'>>
<<else>>
<<run setup.energyReturnHome(State.variables)>>
<<set $player.current_location = $player.base_location == "Farm" ? "Farm" : "Safehouse">>
<<if setup.garageBusy(State.variables)>><<run setup.endVehicleExpedition(State.variables, true)>><</if>>
<<run setup.ensureBaseUpgrades(State.variables)>>
<<set _farmRecovery = setup.ensureFarmRecovery(State.variables)>>
<<set _farmRecovery.on_site = false>>
<<if $opening && !$opening.complete>><<set $opening.complete = true>><</if>>
<div class="scene-content">
<div class="scene-text">
<div class="date-display">
<span class="day">Day: <<print $player.days_survived>></span>
<span class="month">Month: <<print $player.current_month>></span>
<span class="year">Year: <<print $player.current_year>></span>
</div>
<h2><<if $player.base_location == "Farm">>Your Farm<<else>>Your Safehouse<</if>></h2>
<<if $player.base_location != "Farm">>
<div class="residents-container">
<h3 class="text-center">Characters</h3>
<div class="characters-grid">
<<if $kenzie && ($kenzie.outcome == "camp_help" || $kenzie.outcome == "camp_slave")>>
<div class="mini-character-card"><img src="assets/cast/kenzie.jpg" alt="Kenzie" class="mini-portrait"><div class="mini-info"><span class="char-name">Kenzie</span><span class="char-status"><<if $kenzie.outcome == "camp_help">>Ally<<else>>Slave<</if>><<if setup.residentHungry(State.variables, "kenzie")>> · needs food<</if>><<if $kenzie.recovery_days < 3>> · recovering<</if>></span><a class="mini-btn" data-passage="Kenzie_Interact">Interact</a></div></div>
<</if>>
<<for _resident range setup.householdResidents>>
<<print setup.safehouseResidentCard($player, _resident)>>
<</for>>
</div>
</div>
<</if>>
</div>
<<if $player.base_location == "Farm">>
<div class="locations-section rc-farm-locations">
<h3>Locations</h3>
<div class="locations-grid">
<a class="location-btn" data-passage="Farm_Fields"><span class="location-icon" aria-hidden="true">🌾</span><span>Fields</span></a>
<a class="location-btn" data-passage="Farm_Kitchen"><span class="location-icon" aria-hidden="true">🍳</span><span>Kitchen</span></a>
<a class="location-btn" data-passage="Farm_Bedrooms"><span class="location-icon" aria-hidden="true">🛏️</span><span>Bedrooms</span></a>
<a class="location-btn" data-passage="Farm_Training_Yard"><span class="location-icon" aria-hidden="true">🎯</span><span>Training Yard</span></a>
<a class="location-btn" data-passage="Farm_People"><span class="location-icon" aria-hidden="true">👥</span><span>People</span></a>
<a class="location-btn" data-passage="Farm_Workshop"><span class="location-icon" aria-hidden="true">🛠️</span><span>Workshop</span></a>
<a class="location-btn" data-passage="Farm_Radio_Room"><span class="location-icon" aria-hidden="true">📻</span><span>Radio Room</span></a>
<a class="location-btn" data-passage="Farm_Garage"><span class="location-icon" aria-hidden="true">🚗</span><span>Garage</span></a>
<a class="location-btn" data-passage="Farm_Infirmary"><span class="location-icon" aria-hidden="true"><<if setup.laboratoryChosen(State.variables)>>🔬<<else>>🏥<</if>></span><span><<if setup.laboratoryChosen(State.variables)>>Laboratory<<else>>Infirmary<</if>></span></a>
</div>
</div>
<</if>>
<<if $player.base_location != "Farm" && _farmRecovery.stage == 0 && setup.farmResidentCount($player, $kenzie) >= 3>>
<section class="rc-place-events" aria-label="New event">
<h3 class="rc-place-label">HAPPENING NOW</h3>
<div class="rc-event-list"><a class="rc-event-link" data-passage="Farm_Proposal"><span class="rc-event-kicker">SAFE HOUSE / NEW PLAN</span><strong><<if setup.farmHasSophia($player)>>Sophia wants to talk<<else>>An old map catches your eye<</if>></strong><span class="rc-event-arrow" aria-hidden="true">→</span></a></div>
</section>
<</if>>
<<if $player.base_location == "Farm" && ["ally", "slave"].includes($player.emily_status) && $player.emily_lived_at_old_base !== false && !$player.emily_locket && !setup.residentImprovised(State.variables, "emily")>>
<section class="rc-place-events" aria-label="New event">
<h3 class="rc-place-label">HAPPENING NOW</h3>
<div class="rc-event-list"><a class="rc-event-link" data-passage="Emily_Locket_Start"><span class="rc-event-kicker">FARM / EMILY</span><strong>Emily is searching her room</strong><span class="rc-event-arrow" aria-hidden="true">→</span></a></div>
</section>
<</if>>
<<if setup.lenaTradeAvailable(State.variables)>><<lenaTradeEvent>><</if>>
<div class="actions-container">
<div class="choice-container">
<<if $player.stamina <= 0>>
<div class="warning-message">You're too exhausted to go outside!</div>
<a class="button dark-choice disabled" data-passage="Safehouse">Go Outside</a>
<<else>>
<a class="button dark-choice" data-passage="Outside">Go Outside</a>
<</if>>
<<if $player.base_location != "Farm">><a class="button dark-choice" data-passage="Slave">Slave room</a><</if>>
<a class="button dark-choice" data-passage="Farm_Rest_Check">Rest</a>
</div>
</div>
</div>
<style>
/* Стиль для відображення дати в неоновому зеленому стилі */
.date-display {
display: flex;
justify-content: space-between;
background: var(--bg-medium); /* Темніший фон для контрасту */
padding: var(--space-small);
border-radius: 6px;
margin-bottom: var(--space-medium);
border: 2px solid var(--accent-highlight); /* Зелена рамка */
box-shadow: 0 0 6px rgba(0, 255, 0, 0.5); /* Неонове світіння */
}
.day, .month, .year {
color: #00FF00; /* Неоновий зелений (можна замінити на var(--accent-highlight), якщо це вже зелений) */
font-family: var(--font-mono);
font-size: 1.1rem;
font-weight: bold;
text-shadow: 0 0 4px rgba(0, 255, 0, 0.7), 0 0 8px rgba(0, 255, 0, 0.5); /* Неонове світіння тексту */
transition: text-shadow var(--transition-fast);
}
.day:hover, .month:hover, .year:hover {
text-shadow: 0 0 6px rgba(0, 255, 0, 0.9), 0 0 12px rgba(0, 255, 0, 0.7); /* Посилене світіння при наведенні */
}
/* Контейнери і + */
.actions-container {
background: var(--bg-medium);
border: 2px solid var(--accent-primary);
border-radius: 6px;
padding: var(--space-medium);
margin-top: var(--space-large);
box-shadow: var(--shadow-subtle), var(--glow-red);
}
.choice-container {
display: flex;
flex-wrap: wrap;
gap: var(--space-small);
justify-content: center;
}
.scene-content {
margin-top: var(--space-large);
padding: var(--space-large);
background: var(--bg-medium);
border: 2px solid var(--accent-primary);
border-radius: 6px;
box-shadow: var(--shadow-medium), var(--glow-red);
}
.scene-text h2 {
font-family: var(--font-mono);
color: var(--accent-highlight);
text-transform: none;
letter-spacing: normal;
margin-bottom: var(--space-small);
font-size: 1.8rem;
text-shadow: 0 0 4px rgba(64, 255, 64, 0.5);
}
.residents-container {
background: var(--bg-medium);
border: 2px solid var(--accent-primary);
border-radius: 6px;
padding: var(--space-medium);
margin: var(--space-large) 0;
box-shadow: var(--shadow-subtle), var(--glow-red);
}
.residents-container h3 {
color: var(--accent-gold);
font-family: var(--font-mono);
margin-bottom: var(--space-medium);
text-shadow: 0 0 4px rgba(212, 160, 23, 0.5);
}
.characters-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: var(--space-small);
justify-items: center;
}
.mini-character-card {
background: var(--bg-light);
border: 1px solid var(--accent-primary);
border-radius: 6px;
padding: var(--space-small);
display: flex;
align-items: center;
gap: var(--space-small);
box-shadow: var(--shadow-subtle);
transition: transform var(--transition-fast);
}
.mini-character-card:hover {
transform: scale(1.03);
box-shadow: var(--shadow-medium), var(--glow-red);
}
.mini-info {
display: flex;
flex-direction: column;
gap: 4px;
}
.char-name {
font-weight: bold;
color: var(--text-light);
font-size: 1.1rem;
}
.char-status {
color: var(--text-medium);
font-size: 0.9rem;
}
.mini-btn {
background: var(--accent-blue);
color: var(--text-light);
padding: 6px 12px;
border: 2px solid var(--accent-primary);
border-radius: 6px;
text-decoration: none;
font-size: 0.9rem;
transition: background-color var(--transition-fast), transform var(--transition-fast);
box-shadow: var(--shadow-subtle);
}
.mini-btn:hover {
background: #6b3e3c;
transform: scale(1.05);
box-shadow: var(--shadow-medium), var(--glow-red);
}
.status-message.dark {
background: var(--bg-light);
border: 2px solid var(--accent-primary);
border-radius: 6px;
padding: var(--space-small);
color: var(--text-dark);
text-align: center;
margin: var(--space-small) 0;
box-shadow: var(--shadow-subtle);
}
.warning-message {
background: var(--bg-light);
border: 2px solid var(--accent-secondary);
border-radius: 6px;
padding: var(--space-small);
color: var(--accent-secondary);
text-align: center;
margin-bottom: var(--space-medium);
box-shadow: var(--glow-red);
}
/* Анімація появи */
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.scene-content, .residents-container, .actions-container {
animation: fadeIn var(--transition-slow);
}
</style>
<</if>>
<div class="scene-content rc-scream-resolution">
<div class="scene-text">
<h2>Ignoring the Scream</h2>
<<set $player.emily_status = "ignored">>
<p>
You decide not to take the risk and ignore the scream. Who knows what it could have been...
</p>
</div>
<div class="choice-container">
<a class="button" data-passage="Outside">Return</a>
</div>
</div>
<main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">SAFEHOUSE / ENCOUNTER</span><h1>Sophia</h1><p>First contact</p></div><span class="rc-encounter-location">FIRST CONTACT</span></header>
<aside class="rc-encounter-presence" aria-label="People present">
<img class="rc-encounter-scene-image" src="assets/cast/sophia.jpg" alt="Sophia at the safehouse">
<h2>Present</h2>
<div class="rc-encounter-person"><img src="assets/cast/sophia.jpg" alt=""><div><strong>Sophia</strong><span>Survivor</span></div></div>
<div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div>
<p class="rc-encounter-person-detail">The kitchen window is still open behind her.</p>
</aside>
<section class="rc-encounter-log" aria-label="Encounter">
<h2>Encounter</h2>
<p class="rc-encounter-event">You set the bottles and tins on the kitchen table. The loose board at the window taps once, then goes quiet.</p>
<p class="rc-encounter-event">A woman slips inside. She puts one of the tins in her bag before she notices you standing in the doorway. She stops and raises her hands, but keeps the bag close.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“I thought this place was empty.”</p></div>
<p class="rc-encounter-event">She looks tired. You do not know whether she came alone.</p>
</section>
<nav class="choice-container rc-encounter-actions" aria-label="Available actions"><h2>What will you do with her?</h2><div class="rc-encounter-action-list">
<a class="button dark-choice" data-passage="Sophia_Enslave">Subdue her by force and make her your slave</a>
<a class="button neutral-choice" data-passage="Sophia_Dominate">Dominate her and compel her to work off what she stole</a>
<a class="button light-choice" data-passage="Sophia_Talk">Attempt to converse with her</a>
</div></nav>
</main><div class="inventory-panel player-inventory">
<header class="inventory-titlebar">
<div>
<span class="inventory-kicker">Survivor stores</span>
<h2>Inventory</h2>
</div>
<div class="inventory-title-meta">
<span>Stock status</span>
<strong>On hand</strong>
</div>
</header>
<section class="inventory-catalog">
<div class="inventory-section-heading">
<span>Current stock</span>
<small>Only carried items are listed</small>
</div>
<ul class="inventory-list">
<<if $player.Money > 0>>
<li class="inventory-image inventory-entry">
<img src="assets/icons/money.svg" alt="Money">
<div class="inventory-entry-copy"><strong>Money</strong><small>Currency</small></div>
<div class="inventory-quantity"><span>Qty</span><strong><<= $player.Money >></strong></div>
</li>
<</if>>
<<if $player.Materials > 0>>
<li class="inventory-image inventory-entry">
<img src="assets/icons/materials.svg" alt="Materials">
<div class="inventory-entry-copy"><strong>Materials</strong><small>Workshop crafting and base upgrades</small></div>
<div class="inventory-quantity"><span>Qty</span><strong><<= $player.Materials >></strong></div>
</li>
<</if>>
<<if $player.Refined_materials > 0>>
<li class="inventory-image inventory-entry">
<img src="assets/icons/materials.svg" alt="Refined Materials">
<div class="inventory-entry-copy"><strong>Refined Materials</strong><small>Workshop production · convert into Materials</small></div>
<div class="inventory-quantity"><span>Qty</span><strong><<= $player.Refined_materials >></strong></div>
</li>
<</if>>
<<if $player.Raw_meat > 0>>
<li class="inventory-image inventory-entry">
<img src="assets/icons/raw_meat.svg" alt="Raw meat">
<div class="inventory-entry-copy"><strong>Raw Meat</strong><small>Cooking and laboratory ingredient</small></div>
<div class="inventory-quantity"><span>Qty</span><strong><<= $player.Raw_meat >></strong></div>
</li>
<</if>>
<<if $player.Weak_vial > 0>>
<li class="inventory-image inventory-entry">
<img src="assets/icons/weak_vial.svg" alt="Weak Vial">
<div class="inventory-entry-copy"><strong>Weak Vial</strong><small>Use after Go Hunt on weakened rats, wolves or human raiders. Ineffective on larger mutants and other large creatures.</small></div>
<div class="inventory-quantity"><span>Qty</span><strong><<= $player.Weak_vial >></strong></div>
</li>
<</if>>
<<if $player.Fresh_food > 0>>
<li class="inventory-image inventory-entry">
<img src="assets/icons/fresh_food.svg" alt="Fresh Food">
<div class="inventory-entry-copy"><strong>Fresh Food</strong><small>Farm harvest</small></div>
<div class="inventory-quantity"><span>Qty</span><strong><<= $player.Fresh_food >></strong></div>
</li>
<</if>>
<<if $player.Provisions > 0>>
<li class="inventory-image inventory-entry">
<img src="assets/icons/canned_food.svg" alt="Provisions">
<div class="inventory-entry-copy"><strong>Provisions</strong><small>Food and water</small></div>
<div class="inventory-quantity"><span>Qty</span><strong><<= $player.Provisions >></strong></div>
</li>
<</if>>
<<if $player.Medkit > 0>>
<li class="inventory-image inventory-entry">
<img src="assets/icons/medkit.svg" alt="Medkit">
<div class="inventory-entry-copy"><strong>Medkit</strong><small>Medical · up to +<<print setup.partyMedkitHealing(State.variables)>> HP</small></div>
<div class="inventory-quantity"><span>Qty</span><strong><<= $player.Medkit >></strong></div>
<div class="inventory-entry-action">
<<if $player.health < $player.max_health>>
<button type="button" data-rc-inventory-use="medkit">Use medkit</button>
<<else>>
<span class="inventory-unavailable">Health full</span>
<</if>>
</div>
</li>
<</if>>
<<if $player.Pistol > 0>>
<li class="inventory-image inventory-entry">
<img src="assets/icons/pistol.svg" alt="Pistol">
<div class="inventory-entry-copy"><strong>Pistol</strong><small>Sidearm · 15 damage</small></div>
<div class="inventory-quantity"><span>Qty</span><strong><<= $player.Pistol >></strong></div>
<div class="inventory-entry-action">
<button type="button" data-rc-inventory-equip="Pistol">Equip pistol</button>
</div>
</li>
<</if>>
<<if $player.Shotgun > 0>>
<li class="inventory-image inventory-entry">
<img src="assets/icons/shotgun.svg" alt="Shotgun">
<div class="inventory-entry-copy"><strong>Shotgun</strong><small>Long gun · 20 damage</small></div>
<div class="inventory-quantity"><span>Qty</span><strong><<= $player.Shotgun >></strong></div>
<div class="inventory-entry-action">
<button type="button" data-rc-inventory-equip="Shotgun">Equip shotgun</button>
</div>
</li>
<</if>>
<<if $player.Wrench > 0>>
<li class="inventory-image inventory-entry">
<img src="assets/icons/wrench.svg" alt="Wrench">
<div class="inventory-entry-copy"><strong>Wrench</strong><small>Tool · 4 damage</small></div>
<div class="inventory-quantity"><span>Qty</span><strong><<= $player.Wrench >></strong></div>
<div class="inventory-entry-action">
<button type="button" data-rc-inventory-equip="Wrench">Equip wrench</button>
</div>
</li>
<</if>>
<<if $player.Knife > 0>>
<li class="inventory-image inventory-entry">
<img src="assets/icons/knife.svg" alt="Knife">
<div class="inventory-entry-copy"><strong>Knife</strong><small>Blade · 8 damage</small></div>
<div class="inventory-quantity"><span>Qty</span><strong><<= $player.Knife >></strong></div>
<div class="inventory-entry-action">
<button type="button" data-rc-inventory-equip="Knife">Equip knife</button>
</div>
</li>
<</if>>
</ul>
</section>
<aside class="inventory-weapon">
<div class="equipped-heading">
<span>Active loadout</span>
<strong>Equipped weapon</strong>
</div>
<<if $player.Weapon_status == "Pistol">>
<img src="assets/icons/pistol.svg" alt="Equipped Weapon">
<div class="equipped-name">Pistol</div>
<div class="equipped-stat"><span>Damage</span><strong><<= $player.Weapon_damage >></strong></div>
<<elseif $player.Weapon_status == "Shotgun">>
<img src="assets/icons/shotgun.svg" alt="Equipped Weapon">
<div class="equipped-name">Shotgun</div>
<div class="equipped-stat"><span>Damage</span><strong><<= $player.Weapon_damage >></strong></div>
<<elseif $player.Weapon_status == "Wrench">>
<img src="assets/icons/wrench.svg" alt="Equipped Weapon">
<div class="equipped-name">Wrench</div>
<div class="equipped-stat"><span>Damage</span><strong><<= $player.Weapon_damage >></strong></div>
<<elseif $player.Weapon_status == "Knife">>
<img src="assets/icons/knife.svg" alt="Equipped Weapon">
<div class="equipped-name">Knife</div>
<div class="equipped-stat"><span>Damage</span><strong><<= $player.Weapon_damage >></strong></div>
<<else>>
<strong class="equipped-empty">No weapon equipped</strong>
<span class="equipped-empty-note">Choose Equip on a weapon card</span>
<</if>>
</aside>
</div>
<<if $player.Expedition_meal > 0 || $player.Hearty_meal > 0 || $player.hearty_hunts_left > 0>>
<section class="rc-inventory-meals"><h3>Prepared meals</h3><div class="rc-inventory-meal-grid">
<<if $player.Expedition_meal > 0>>
<div class="rc-inventory-meal"><img src="assets/icons/expedition_meal.svg" alt=""><div><strong>Expedition Meal · <<print $player.Expedition_meal>></strong><small>Restores up to 30 energy.</small></div>
<<if $player.stamina < $player.max_stamina>><button type="button" data-rc-inventory-use="expedition">Eat meal</button><<else>><span>Energy full</span><</if>></div>
<</if>>
<<if $player.Hearty_meal > 0>>
<div class="rc-inventory-meal"><img src="assets/icons/hearty_meal.svg" alt=""><div><strong>Hearty Meal · <<print $player.Hearty_meal>></strong><small>Improves the next two hunts. Expires at rest.</small></div>
<button type="button" data-rc-inventory-use="hearty">Eat meal</button></div>
<</if>>
</div><<if $player.hearty_hunts_left > 0>><p>Hearty Meal: <<print $player.hearty_hunts_left>> hunt<<if $player.hearty_hunts_left != 1>>s<</if>> left.</p><</if>></section>
<</if>>
<div class="inventory-close"><button type="button" data-rc-close-inventory>Close inventory</button></div>
<main class="rc-sequence-page"><header class="rc-sequence-header"><span class="rc-ui-kicker">FIRST CONTACT / SOPHIA</span><h1>Accept</h1></header>
<div class="rc-sequence-grid"><figure class="rc-sequence-portrait"><img src="assets/cast/sophia.jpg" alt="Sophia"></figure>
<section class="rc-sequence-report">
<p>
You tell Sophia she can stay. She leaves the tin on the table and asks where she can put her bag.
</p>
<<run setup.recruitResident($player, "sophia_status", "ally")>></section></div>
<nav class="rc-sequence-actions">
<a class="button light-choice" data-passage="Safehouse">Show her the safehouse</a>
</nav></main>
<main class="rc-rest-page rc-sophia-status-page"><header class="rc-rest-header"><span class="rc-ui-kicker">SAFE HOUSE / HOUSEHOLD</span><h1>Status Update</h1><p>Sophia is now under your complete authority. She must obey your commands, her fate entirely in your hands.</p></header>
<div class="rc-rest-body"><div class="rc-rest-summary" aria-label="Household summary"><div><span>Resident</span><strong>Sophia</strong></div><div><span>Status</span><strong>Slave</strong></div><div><span>Household</span><strong>Joined</strong></div></div>
<section class="status-update" aria-label="Status update"><h2>Household changes</h2><ul><li>Sophia has joined your household</li><li>New interaction options unlocked</li><li>Try interacting with her at home</li></ul></section>
<nav class="rc-rest-actions"><span>Household updated</span><a class="button dark-choice" data-passage="Safehouse">Return home</a></nav></div></main><main class="rc-sequence-page"><header class="rc-sequence-header"><span class="rc-ui-kicker">FIRST CONTACT / SOPHIA</span><h1>Banish</h1></header>
<div class="rc-sequence-grid"><figure class="rc-sequence-portrait"><img src="assets/cast/sophia.jpg" alt="Sophia"></figure>
<section class="rc-sequence-report">
<p>
You tell Sophia to leave. She puts the tin back, picks up her bag, and goes through the window she opened.
</p>
<<set $player.sophia_status = "banished">></section></div>
<nav class="rc-sequence-actions">
<a class="button neutral-choice" data-passage="Safehouse">Return to your affairs</a>
</nav></main><<if setup.residentImprovised(State.variables, "sophia")>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-task-page rc-task-result-page rc-task-result-cleared">
<figure class="rc-task-portrait"><img src="assets/cast/sophia.jpg" alt="Sophia"></figure>
<section class="rc-task-body">
<header class="rc-task-heading"><span class="rc-ui-kicker"><<if $player.base_location == "Farm">>FARM<<else>>SAFE HOUSE<</if>> / WORK ROSTER</span><h1>Sophia</h1><p>Task canceled</p></header>
<div class="rc-task-result-details">
<div class="rc-task-current"><span>Current assignment</span><strong>No task assigned</strong></div>
<div class="rc-task-result-copy"><p>You recall Sophia from her task. She returns home with relief.</p>
<<set $player.sophia_work = "none">></div>
</div>
<nav class="rc-task-exit"><<if $player.base_location == "Farm">><a class="button back-btn" data-passage="Farm_Bedrooms">Return to Bedrooms</a><<else>><a class="button back-btn" data-passage="Safehouse">Return to the house</a><</if>></nav>
</section>
</main>
<</if>>
<main class="rc-encounter-page rc-sophia-dominate-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">SAFEHOUSE / ENCOUNTER</span><h1>Sophia</h1><p>Terms of shelter</p></div><span class="rc-encounter-location">FIRST CONTACT</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/sophia.jpg" alt="Sophia at the safehouse"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/sophia.jpg" alt=""><div><strong>Sophia</strong><span>Survivor</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div><p class="rc-encounter-person-detail">Sophia watches you from beside the kitchen window, waiting for your answer.</p></aside>
<section class="rc-encounter-log"><h2>Encounter</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Put the tin back. If you want to stay, you’ll help with the work.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>Sophia returns it to the table. “I can do that. I know how to take care of people. Just don’t send me out tonight.”</p></div>
</section><nav class="choice-container rc-encounter-actions"><h2>Available actions</h2><div class="rc-encounter-action-list">
<a class="button dark-choice" data-passage="Sophia_Work_For_Stay">Hold her to the agreement</a><a class="button neutral-choice" data-passage="Sophia_Banish">Send her away</a><a class="button danger-choice" data-passage="Sophia_Kill">End the threat</a>
</div></nav></main><<set $player.sophia_status = "slave">>
<<set $player.sophia_tied_unlocked = true>>
<<set $player.sophia_tied_intro_pending = true>>
<main class="scene-content rc-service-page rc-service-cinematic"><header class="rc-service-header"><img src="assets/cast/sophia.jpg" alt="Sophia"><div><span>SAFE HOUSE / PRIVATE INTERACTION</span><h1>Sophia</h1></div></header>
<div class="video-container"><video id="sceneVideo" class="scene-video" autoplay muted loop playsinline><source src="assets/videos/sophia/sophia tape/extra_00-18.webm" type="video/webm"></video></div>
<nav class="rc-cinematic-exit"><a class="button dark-choice" data-passage="Sophia_Tied_Service">Claim your dominance</a></nav></main>
<<if setup.residentImprovised(State.variables, "sophia")>><<goto "Farm_Bedrooms">><<else>>
<<set $player.sophia_shared_feelings = true>>
<div class="scene-content">
<div class="dialog-container">
<div class="sophia-dialog">
<<if $player.sophia_status == "slave">>
<p class="narrator-text">Sophia nervously fidgets with the hem of her clothing.</p>
<p>"I... I've accepted my fate. Maybe this is better than starving or being killed by bandits. At least here I have a roof over my head and food. And... and you, master."</p>
<p>"Thank you for giving me shelter. I'm still afraid that one day I'll wake up and find this was all a dream. That I'm back alone on the city streets. But for now... for now I feel safe."</p>
<<elseif $player.sophia_status == "ally">>
<p class="narrator-text">Sophia replies in a calm tone.</p>
<p>"I'm okay, I'm glad you didn't kill me, that's usually what most survivors do when they have uninvited guests in their shelter, so I guess I'm just grateful to you and I think together we have a better chance of surviving."</p>
<</if>>
</div>
</div>
<div class="choice-container">
<a class="button neutral-choice" data-passage="Sophia_Talk_Menu">Return to conversation</a>
</div>
</div>
<</if>>
<<set $player.stamina = Math.max(0, $player.stamina - setup.adultActionCost(State.variables, "scene", 30))>><<set $player.sophia_status = "slave">><<set $player.survivor_population ++>>
<main class="scene-content rc-service-page rc-service-cinematic"><header class="rc-service-header"><img src="assets/cast/sophia.jpg" alt=""><div><span>SAFE HOUSE / PRIVATE INTERACTION</span><h1>Sophia</h1></div></header>
<div class="video-container"><video id="aftermathVideo" class="scene-video" autoplay muted loop playsinline><source src="assets/videos/sophia/cum.webm" type="video/webm"></video></div>
<nav class="rc-cinematic-exit"><a class="button dark-choice" data-passage="Sophia_Aftermath">Continue</a></nav></main><<set $player.stamina = Math.max(0, $player.stamina - setup.adultActionCost(State.variables, "scene", 30))>><<set $player.sophia_status = "slave">><main class="scene-content rc-service-page rc-service-cinematic"><header class="rc-service-header"><img src="assets/cast/sophia.jpg" alt=""><div><span>SAFE HOUSE / PRIVATE INTERACTION</span><h1>Sophia</h1></div></header>
<div class="video-container"><video id="cumVideo" class="scene-video" controls preload="auto" loop><source src="assets/videos/sophia/cum.webm" type="video/webm"></video></div>
<nav class="rc-cinematic-exit"><a class="button dark-choice" data-passage="Sophia_Aftermath">Continue</a></nav></main><<if setup.residentImprovised(State.variables, "sophia")>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-resident-page">
<header class="rc-resident-header"><div class="rc-resident-portrait"><img src="assets/cast/sophia.jpg" alt="Sophia"></div>
<div class="rc-resident-identity"><span class="rc-ui-kicker"><<if $player.base_location == "Farm">>FARM / RESIDENT<<else>>SAFE HOUSE / RESIDENT<</if>></span><h1>Sophia</h1>
<div class="rc-resident-facts"><div><span>Status</span><strong><<if $player.sophia_status == "slave">>Slave<<else>>Ally<</if>></strong></div>
<div><span>Current task</span><strong><<if setup.residentImprovised(State.variables, "sophia") && ["scavenging", "Fields", "Cooking"].includes($player.sophia_work)>>Paused — needs a bedroom<<elseif setup.residentHungry(State.variables, "sophia") && ["scavenging", "Fields"].includes($player.sophia_work)>>Paused — needs food<<elseif $player.sophia_work == "scavenging">>Scavenging for supplies<<elseif $player.sophia_work == "Cooking">>Cooking<<elseif $player.sophia_work == "Fields">>Working in fields<<else>>None<</if>></strong></div></div>
</div></header>
<section class="rc-resident-options"><div class="rc-resident-options-heading"><span class="rc-ui-kicker">AVAILABLE ACTIONS</span><h2>Spend time with Sophia</h2></div>
<nav class="rc-resident-actions" aria-label="Interact with Sophia">
<a class="rc-resident-action" data-passage="Sophia_Talk_Menu" data-npc-action="dialogue"><span>01 / Conversation</span><strong>Talk</strong><small>Speak with Sophia</small></a>
<a class="rc-resident-action rc-resident-action-private" data-passage="Sophia_Service" data-npc-action="media"><span>02 / Private</span><strong>Have sex</strong><small>Spend time together</small></a>
<<if $player.sophia_tied_unlocked>>
<a class="rc-resident-action rc-resident-action-private" data-passage="Sophia_Tied_Service" data-npc-action="media"><span>03 / Private</span><strong>Tied sex</strong><small>Spend time with Sophia</small></a>
<</if>>
<a class="rc-resident-action" data-passage="Sophia_Work" data-npc-action="other"><span><<if $player.sophia_tied_unlocked>>04<<else>>03<</if>> / Work</span><strong>Assign a task</strong><small>Choose a job for Sophia</small></a>
</nav>
</section><nav class="rc-resident-exit"><<if $player.base_location == "Farm">><a class="button back-btn" data-passage="Farm_Bedrooms">← Back to Bedrooms</a><<else>><a class="button back-btn" data-passage="Safehouse">← Back</a><</if>></nav>
</main>
<</if>>
<main class="rc-sequence-page"><header class="rc-sequence-header"><span class="rc-ui-kicker">FIRST CONTACT / SOPHIA</span><h1>Kill</h1></header>
<div class="rc-sequence-grid"><figure class="rc-sequence-portrait"><img src="assets/cast/sophia.jpg" alt="Sophia"></figure>
<section class="rc-sequence-report">
<p>
She moves toward the window. You strike before she reaches it. When she falls, the house is quiet again.
</p>
<<set $player.sophia_status = "dead">></section></div>
<nav class="rc-sequence-actions">
<a class="button danger-choice" data-passage="Safehouse">Clean up the body</a>
</nav></main><<if setup.residentImprovised(State.variables, "sophia")>><<goto "Farm_Bedrooms">><<else>>
<<set $player.sophia_shared_past = true>>
<div class="scene-content">
<div class="dialog-container">
<<if $player.sophia_status == "slave">>
<p class="narrator-text">Sophia lowers her gaze, her voice trembling with memories.</p>
<</if>>
<div class="sophia-dialog">
<p>"Before the apocalypse, I was a medical student. I dreamed of becoming a surgeon... I had a family, friends, plans for the future. But when the epidemic started, everything changed. My father was among the first to die, and my mother... she couldn't bear it and took her own life."</p>
<p>"I was left alone. I had to learn to survive, to steal, to hide. For months I moved from building to building, looking for somewhere safe to sleep. And now... now I'm here."</p>
</div>
</div>
<div class="choice-container">
<a class="button neutral-choice" data-passage="Sophia_Talk_Menu">Return to conversation</a>
</div>
</div>
<</if>>
<main class="rc-sequence-page"><header class="rc-sequence-header"><span class="rc-ui-kicker">FIRST CONTACT / SOPHIA</span><h1>Reject</h1></header>
<div class="rc-sequence-grid"><figure class="rc-sequence-portrait"><img src="assets/cast/sophia.jpg" alt="Sophia"></figure>
<section class="rc-sequence-report">
<p>
You open the door and wait. Sophia leaves the tin behind and walks out into the street.
</p>
<<set $player.sophia_status = "rejected">></section></div>
<nav class="rc-sequence-actions">
<a class="button neutral-choice" data-passage="Safehouse">Return to your business</a>
</nav></main><<if setup.residentImprovised(State.variables, "sophia")>><<goto "Farm_Bedrooms">><<else>>
<<set _farmPrivate = $farm_recovery && $farm_recovery.reward_private_pending && $farm_recovery.on_site && $farm_recovery.stage == 9 && setup.farmSophiaPresent(State.variables)>>
<<if !setup.canAffordService(State.variables, _farmPrivate ? 'sophiaFarm' : 'sophia')>>
<div class="scene-content rc-service-unavailable">
<header class="rc-service-header"><img src="assets/cast/sophia.jpg" alt=""><div><span><<if _farmPrivate>>FARM<<else>>SAFE HOUSE<</if>> / PRIVATE INTERACTION</span><h1>Sophia</h1></div></header>
<div class="warning-message">You do not have enough stamina for sexual actions!</div>
<div class="choice-container">
<<if _farmPrivate>>
<a class="button back-btn" data-passage="Farm_Work">Return to the farm</a>
<<else>>
<a class="button back-btn" data-passage="Sophia_Interact">← Back</a>
<</if>>
</div>
</div>
<<else>>
<<set $player.sophia_private_time = true>>
<div class="scene-content rc-service-page" data-rc-service="sophia">
<header class="rc-service-header"><img src="assets/cast/sophia.jpg" alt=""><div><span><<if _farmPrivate>>FARM<<else>>SAFE HOUSE<</if>> / PRIVATE INTERACTION</span><h1>Sophia</h1></div></header>
<div class="video-container">
<<if _farmPrivate>>
<video class="scene-video" autoplay muted loop playsinline>
<source src="assets/videos/sophia/sophia farm/extra_02-20.webm" type="video/webm">
</video>
<<else>>
<video class="scene-video" autoplay muted loop playsinline>
<source src="assets/videos/sophia/blowjob.webm" type="video/webm">
</video>
<</if>>
</div>
<div class="service-menu">
<div class="menu-title">Choose an action:</div>
<<if _farmPrivate>>
<div class="service-buttons" data-rc-video-pool="sophiaFarm">
<a class="service-btn" data-rc-video="blowjob" role="button" tabindex="0">Blowjob</a>
<a class="service-btn" data-rc-video="vaginal" role="button" tabindex="0">Vaginal</a>
<a class="service-btn" data-rc-video="finish" role="button" tabindex="0">Finish</a>
</div>
<<else>>
<div class="service-buttons">
<a class="service-btn" data-rc-video="blowjob" role="button" tabindex="0">Blowjob</a>
<a class="service-btn" data-rc-video="vaginal" role="button" tabindex="0">Vaginal</a>
<a class="service-btn" data-rc-video="anal" role="button" tabindex="0">Anal</a>
<a class="service-btn" data-rc-video="cum" role="button" tabindex="0">Finish</a>
</div>
<</if>>
<<if _farmPrivate>>
<a class="button back-btn" data-passage="Farm_Work">Return to the farm</a>
<<else>>
<a class="button back-btn" data-passage="Sophia_Interact">← Back</a>
<</if>>
</div>
</div>
<</if>>
<</if>>
<<if setup.residentImprovised(State.variables, "sophia")>><<goto "Farm_Bedrooms">><<else>>
<<set $player.stamina = Math.max(0, $player.stamina - setup.adultActionCost(State.variables, "scene", 20))>><main class="scene-content rc-service-page rc-service-cinematic"><header class="rc-service-header"><img src="assets/cast/sophia.jpg" alt=""><div><span>SAFE HOUSE / PRIVATE INTERACTION</span><h1>Sophia</h1></div></header>
<div class="video-container"><video id="sexVideo" class="scene-video" controls preload="auto" loop><source src="assets/videos/sophia/vaginal (1).webm" type="video/webm"></video></div>
<nav class="rc-cinematic-exit"><a class="button dark-choice" data-passage="Sophia_Final">Finish the scene</a></nav></main>
<</if>>
<<if setup.residentHungry(State.variables, "sophia")>><<goto "Sophia_Work">><<else>>
<<if setup.residentImprovised(State.variables, "sophia")>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-task-page rc-task-result-page rc-task-result-assigned">
<figure class="rc-task-portrait"><img src="assets/cast/sophia.jpg" alt="Sophia"></figure>
<section class="rc-task-body">
<header class="rc-task-heading"><span class="rc-ui-kicker"><<if $player.base_location == "Farm">>FARM<<else>>SAFE HOUSE<</if>> / WORK ROSTER</span><h1>Sophia</h1><p>Task assigned</p></header>
<div class="rc-task-result-details">
<div class="rc-task-current"><span>Current assignment</span><strong>Scavenging</strong></div>
<div class="rc-task-result-copy"><<if $player.sophia_status == "slave">><p>You send Sophia to scavenge for supplies in the city. You see fear in her eyes, but she does not dare to refuse.</p><<else>><p>You tell Sophia to search the nearby buildings for supplies tomorrow. She asks which streets you have already checked, then marks a route on a scrap of paper.</p><</if>>
<<set $player.sophia_work = "scavenging">><<run setup.leavePartyForWork($player, "sophia")>></div>
</div>
<nav class="rc-task-exit"><<if $player.base_location == "Farm">><a class="button back-btn" data-passage="Farm_Bedrooms">Return to Bedrooms</a><<else>><a class="button back-btn" data-passage="Safehouse">Return to the house</a><</if>></nav>
</section>
</main>
<</if>>
<</if>>
<main class="rc-encounter-page">
<header class="rc-encounter-header">
<div>
<span class="rc-encounter-kicker">SAFEHOUSE / ENCOUNTER</span>
<h1>Sophia</h1>
<p>Conversation</p>
</div>
<span class="rc-encounter-location">FIRST CONTACT</span>
</header>
<aside class="rc-encounter-presence" aria-label="People present">
<img class="rc-encounter-scene-image" src="assets/cast/sophia.jpg" alt="Sophia at the safehouse">
<h2>Present</h2>
<div class="rc-encounter-person">
<img src="assets/cast/sophia.jpg" alt="">
<div><strong>Sophia</strong><span>Survivor</span></div>
</div>
<div class="rc-encounter-person rc-encounter-person-player">
<div><strong><<print $player.name>></strong><span>You</span></div>
</div>
</aside>
<section class="rc-encounter-log" aria-label="Encounter">
<h2>Encounter</h2>
<p class="rc-encounter-event">You keep your distance and ask her to put the tin back. She does, then waits beside the window.</p>
<div class="rc-encounter-statement">
<div class="rc-encounter-speaker"><span>Sophia</span></div>
<p>“I needed food. I saw the window and thought no one lived here yet. I’m sorry.” She looks at the room you cleared. “I can help here, if you let me stay.”</p>
</div>
</section>
<nav class="choice-container rc-encounter-actions" aria-label="Available actions">
<h2>Available actions</h2>
<div class="rc-encounter-action-list">
<a class="button light-choice" data-passage="Sophia_Accept">Accept her offer</a>
<a class="button neutral-choice" data-passage="Sophia_Reject">Refuse</a>
</div>
</nav>
</main><<if setup.residentImprovised(State.variables, "sophia")>><<goto "Farm_Bedrooms">><<else>>
<div class="scene-content">
<div class="dialog-container">
<<if $player.sophia_status == "slave">>
<p class="narrator-text">Sophia looks at you with a mix of fear and submission.</p>
<div class="sophia-dialog">
<p>"Yes... master? What would you like to know?"</p>
</div>
<<elseif $player.sophia_status == "ally">>
<p class="narrator-text">Sophia looks at you with grateful eyes, but you do not see fear in her eyes, only gratitude"</p>
<div class="sophia-dialog">
<p>"Hi, I was just cleaning up, what's new?"</p>
</div>
<</if>>
<div class="dialog-options">
<a class="button light-choice" data-passage="Sophia_Past">Ask about her past</a>
<a class="button light-choice" data-passage="Sophia_Feelings">Ask how she's feeling</a>
<<if setup.fieldsUnboundsAvailable(State.variables)>><a class="button light-choice" data-passage="Sophia_Unbounds">Ask about the Unbounds</a><</if>>
<a class="button neutral-choice" data-passage="Sophia_Interact">End conversation</a>
</div>
</div>
</div>
<</if>>
<<if setup.residentImprovised(State.variables, "sophia")>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-task-page"><figure class="rc-task-portrait"><img src="assets/cast/sophia.jpg" alt="Sophia"></figure>
<section class="rc-task-body"><header class="rc-task-heading"><span class="rc-ui-kicker"><<if $player.base_location == "Farm">>FARM<<else>>SAFE HOUSE<</if>> / WORK ROSTER</span><h1>Sophia</h1><p>Assign a task</p></header>
<<if $player.sophia_work != "none">>
<div class="rc-task-current"><span>Current assignment</span><strong><<print $player.sophia_work>></strong>
<a class="button danger-choice" data-passage="Sophia_Cancel_Work">Cancel task</a></div>
<<else>>
<nav class="rc-task-options" aria-label="Tasks for Sophia">
<<if setup.residentHungry(State.variables, "sophia")>><p class="rc-farm-alert">Scavenging is paused until the base is fed. Cooking is still available.</p><<else>><a class="rc-task-option" data-passage="Sophia_Start_Scavenging"><span>01 / Outside</span><strong>Start scavenging</strong><small>Search for supplies on the next day</small></a><</if>>
<a class="rc-task-option" data-passage="Sophia_Cooks"><span>02 / <<if $player.base_location == "Farm">>Farm<<else>>Safe house<</if>></span><strong>Cooking</strong><small>Prepare food when raw meat is available</small></a>
</nav>
<</if>>
<nav class="rc-task-exit"><a class="button back-btn" data-passage="Sophia_Interact">← Return to Sophia</a></nav>
</section>
</main>
<</if>>
<<if setup.residentImprovised(State.variables, "sophia")>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-task-page rc-task-result-page rc-task-result-assigned">
<figure class="rc-task-portrait"><img src="assets/cast/sophia.jpg" alt="Sophia"></figure>
<section class="rc-task-body">
<header class="rc-task-heading"><span class="rc-ui-kicker"><<if $player.base_location == "Farm">>FARM<<else>>SAFE HOUSE<</if>> / WORK ROSTER</span><h1>Sophia</h1><p>Task assigned</p></header>
<div class="rc-task-result-details">
<div class="rc-task-current"><span>Current assignment</span><strong>Cooking</strong></div>
<div class="rc-task-result-copy"><p>Sophia tries to cook something edible.</p>
<<set $player.sophia_work = "Cooking">><<run setup.leavePartyForWork($player, "sophia")>></div>
</div>
<nav class="rc-task-exit"><<if $player.base_location == "Farm">><a class="button back-btn" data-passage="Farm_Bedrooms">Return to Bedrooms</a><<else>><a class="button back-btn" data-passage="Safehouse">Return to the house</a><</if>></nav>
</section>
</main>
<</if>>
<main class="main-menu rc-main-menu">
<div class="menu-content rc-menu-shell">
<header class="rc-menu-brand">
<div class="rc-menu-kicker"><span>Survival record</span><span>RC-2037</span></div>
<div class="logo-container">
<h1 class="game-logo"><span>Risen</span> City</h1>
<p class="logo-subtitle">The world after the fall</p>
</div>
<div class="rc-menu-stamp" aria-label="Version 0.3">Version<br>0.3</div>
</header>
<section class="world-info rc-menu-world" aria-label="Game premise">
<div class="rc-city-mark" aria-hidden="true">
<span></span><span></span><span></span><span></span><span></span><span></span><span></span>
</div>
<div class="rc-world-copy">
<div class="info-title">City status: collapsed</div>
<p class="info-text">Civilization is gone. The streets are hostile. Every alliance, resource, and decision can keep you alive for one more day.</p>
</div>
</section>
<nav class="menu-buttons rc-menu-nav" aria-label="Main menu">
<<if setup.hasSavedGame()>>
<a class="rc-menu-action rc-menu-action-primary" href="#" data-rc-continue-save>
<span class="rc-action-index" aria-hidden="true">↻</span>
<span class="rc-action-copy"><strong>Continue</strong><small>Resume your latest save</small></span>
<span class="rc-action-arrow" aria-hidden="true">→</span>
</a>
<</if>>
<a class="rc-menu-action rc-menu-action-primary" data-passage="Choose_Name">
<span class="rc-action-index">01</span>
<span class="rc-action-copy"><strong>Play</strong><small>Begin a new survival record</small></span>
<span class="rc-action-arrow" aria-hidden="true">→</span>
</a>
<a class="rc-menu-action" data-passage="Changelog">
<span class="rc-action-index">02</span>
<span class="rc-action-copy"><strong>Changelog</strong><small>Updates by version</small></span>
<span class="rc-action-arrow" aria-hidden="true">→</span>
</a>
<a class="rc-menu-action" href="#" data-rc-open-saves>
<span class="rc-action-index">03</span>
<span class="rc-action-copy"><strong>Saves</strong><small>Load, save, import, or export</small></span>
<span class="rc-action-arrow" aria-hidden="true">→</span>
</a>
<a class="rc-menu-action" data-passage="About">
<span class="rc-action-index">04</span>
<span class="rc-action-copy"><strong>About</strong><small>World, premise, and features</small></span>
<span class="rc-action-arrow" aria-hidden="true">→</span>
</a>
<a class="rc-menu-action" data-passage="Credits">
<span class="rc-action-index">05</span>
<span class="rc-action-copy"><strong>Credits</strong><small>The actresses behind the characters</small></span>
<span class="rc-action-arrow" aria-hidden="true">→</span>
</a>
<a class="rc-menu-action" data-passage="Settings">
<span class="rc-action-index">06</span>
<span class="rc-action-copy"><strong>Settings</strong><small>Audio and automatic saves</small></span>
<span class="rc-action-arrow" aria-hidden="true">→</span>
</a>
<a class="rc-menu-action rc-menu-patreon" href="https://www.patreon.com/cw/ruinhouse" target="_blank" rel="noopener noreferrer">
<span class="rc-action-index">+</span>
<span class="rc-action-copy"><strong>My Patreon</strong><small>Support continued development</small></span>
<span class="rc-action-arrow" aria-hidden="true">↗</span>
</a>
</nav>
<aside class="menu-warning rc-menu-warning">
<div class="warning-icon" aria-hidden="true">18+</div>
<p><strong>Mature content warning</strong> Sexual content, dominance, violence, and brutality. By continuing, you confirm that you are at least 18 years old.</p>
</aside>
<footer class="version-info rc-menu-footer">
<span class="version">Version 0.3</span>
<span class="rc-footer-rule"></span>
<span class="engine">Powered by SugarCube 2.37.3</span>
</footer>
</div>
</main>
<<run setup.ensureBaseUpgrades(State.variables)>>
<<set _nikkiQuest = setup.enterMarketFields(State.variables)>>
<div class="choice-container">
<<silently>>
/* Initialize player inventory if not exists */
<<if not $player.hasOwnProperty("Provisions")>><<set $player.Provisions = 0>><</if>>
<<if not $player.hasOwnProperty("Raw_meat")>><<set $player.Raw_meat = 0>><</if>>
<<if not $player.hasOwnProperty("Medkit")>><<set $player.Medkit = 0>><</if>>
<<if not $player.hasOwnProperty("Pistol")>><<set $player.Pistol = 0>><</if>>
<<if not $player.hasOwnProperty("Shotgun")>><<set $player.Shotgun = 0>><</if>>
<<if not $player.hasOwnProperty("Wrench")>><<set $player.Wrench = 0>><</if>>
<<if not $player.hasOwnProperty("Knife")>><<set $player.Knife = 0>><</if>>
<<if not $player.hasOwnProperty("Money")>><<set $player.Money = 0>><</if>>
<</silently>>
<div class="shop-container">
<h1>Market</h1>
<<if setup.nikkiDead(State.variables)>>
<p>Nikki’s counter is closed.</p>
<<else>>
<<if _nikkiQuest.stage == 'ask_nikki'>>
<div class="rc-location-page rc-market-event-wrap">
<section class="rc-place-events rc-market-event" aria-label="Happening now">
<h3 class="rc-place-label">HAPPENING NOW</h3>
<div class="rc-market-event-content">
<p>A driver is speaking over the counter, one hand braced against it. His truck was taken on the road in, along with today's delivery. Nikki has a pencil in her hand and wants to know where.</p>
<div class="rc-event-list"><a class="rc-event-link" data-passage="Nikki_Delivery"><span class="rc-event-kicker">THE MISSING DELIVERY</span><strong>Speak to Nikki</strong><span class="rc-event-arrow" aria-hidden="true">→</span></a></div>
</div>
</section>
</div>
<</if>>
<section class="residents-container rc-market-people" aria-label="People at the Market">
<h2>People Here</h2>
<div class="characters-grid">
<div class="mini-character-card">
<img src="assets/cast/nikki.jpg" alt="Nikki" class="mini-portrait">
<div class="mini-info"><span class="char-name">Nikki</span><span class="char-status">Market owner</span><<if _nikkiQuest.stage == 'ask_nikki'>><span class="rc-market-person-busy">Busy at the counter</span><<else>><a class="mini-btn" data-passage="Nikki_Interact">Interact</a><</if>></div>
</div>
</div>
</section>
<div class="rc-market-workspace">
<div class="rc-market-trade">
<div class="shop-section">
<h2>Buy Items</h2>
<<for _item range Object.keys(setup.marketCatalog)>>
<div class="item-row">
<span class="item-name"><<print _item.replace("_", " ")>></span>
<<set _price = setup.marketBuyPrice($player, _item)>>
<span class="item-price"><<print _price>> Money</span>
<div class="rc-market-actions" aria-label="Buy actions">
<!-- Buy 1 -->
<<if $player.Money >= _price>>
<<capture _item>>
<<link "Buy" "Market">>
<<run setup.tradeItem($player, _item, "buy", 1)>>
<</link>>
<</capture>>
<<else>>
<span class="disabled">[Not enough money]</span>
<</if>>
<!-- Buy 10 -->
<<set _cost10 = _price * 10>>
<<if $player.Money >= _cost10>>
<<capture _item>>
<<link "Buy 10" "Market">>
<<run setup.tradeItem($player, _item, "buy", 10)>>
<</link>>
<</capture>>
<<else>>
<span class="disabled">[Not enough money]</span>
<</if>>
<!-- Buy Max -->
<<set _maxBuy = Math.floor($player.Money / _price)>>
<<if _maxBuy > 0>>
<<capture _item>>
<<link "Buy Max" "Market">>
<<run setup.tradeItem($player, _item, "buy", "max")>>
<</link>>
<</capture>>
<<else>>
<span class="disabled">[Not enough money]</span>
<</if>>
</div>
</div>
<</for>>
</div>
<div class="shop-section">
<h2>Sell Items</h2>
<<for _item range Object.keys(setup.marketCatalog)>>
<div class="item-row">
<span class="item-name"><<print _item.replace("_", " ")>></span>
<span class="item-price"><<print setup.marketCatalog[_item].sell>> Money</span>
<span class="item-count">(you have: $player[_item])</span>
<div class="rc-market-actions" aria-label="Sell actions">
<!-- Sell 1 -->
<<if $player[_item] > 0>>
<<capture _item>>
<<link "Sell" "Market">>
<<run setup.tradeItem($player, _item, "sell", 1)>>
<</link>>
<</capture>>
<<else>>
<span class="disabled">[No items]</span>
<</if>>
<!-- Sell 10 -->
<<if $player[_item] >= 10>>
<<capture _item>>
<<link "Sell 10" "Market">>
<<run setup.tradeItem($player, _item, "sell", 10)>>
<</link>>
<</capture>>
<<elseif $player[_item] > 0>>
<span class="disabled">[Need 10 items]</span>
<<else>>
<span class="disabled">[No items]</span>
<</if>>
<!-- Sell All -->
<<set _sellAll = $player[_item]>>
<<if _sellAll > 0>>
<<capture _item>>
<<link "Sell All" "Market">>
<<run setup.tradeItem($player, _item, "sell", "all")>>
<</link>>
<</capture>>
<<else>>
<span class="disabled">[No items]</span>
<</if>>
</div>
</div>
<</for>>
</div>
<div id="transaction-message" class="transaction-message"></div>
</div>
<div class="inventory-section market-inventory">
<header class="market-inventory-header">
<div>
<span>Trader ledger</span>
<h2>Your Inventory</h2>
</div>
<strong>Current stock</strong>
</header>
<div class="inventory-grid">
<<for _item range Object.keys(setup.marketCatalog)>>
<div class="inventory-item market-inventory-item">
<div class="market-inventory-icon">
<img @src="setup.marketCatalog[_item].icon" alt="">
</div>
<div class="market-inventory-name"><<print _item.replace("_", " ")>></div>
<div class="inventory-count"><span>Qty</span><strong>$player[_item]</strong></div>
</div>
<</for>>
</div>
</div>
</div>
<</if>>
<a class="button back-btn" data-passage="Settlement">← Return</a>
</div>
</div>
<style>
/* Стилі для кнопок магазину */
.buy-btn, .sell-btn {
/* Структура та розміри */
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 80px;
height: 36px;
padding: 6px 12px;
margin: 0 4px;
position: relative;
overflow: visible;
/* Фон та рамки */
background: linear-gradient(135deg, var(--bg-light), var(--bg-medium));
border: 1px solid var(--accent-secondary);
border-radius: 4px;
/* Світіння та ефекти */
box-shadow: var(--glow-red);
/* Текст */
color: var(--accent-highlight);
font-family: var(--font-mono);
font-size: 0.9rem;
font-weight: 500;
letter-spacing: 0.5px;
text-shadow: 0 0 5px rgba(154, 59, 48, 0.8);
text-align: center;
text-transform: uppercase;
/* Анімація та переходи */
transition: all 0.25s ease-out;
cursor: pointer;
/* Додатковий декор */
clip-path: polygon(
0% 10%, 5px 0%,
calc(100% - 5px) 0%, 100% 10%,
100% calc(100% - 5px), calc(100% - 5px) 100%,
5px 100%, 0% calc(100% - 5px)
);
}
/* Спеціальні стилі для кнопок купівлі */
.buy-btn {
background: linear-gradient(135deg, var(--accent-blue), var(--bg-medium));
border-color: var(--accent-primary);
box-shadow: var(--glow-neon-blue);
}
/* Спеціальні стилі для кнопок продажу */
.sell-btn {
background: linear-gradient(135deg, var(--accent-primary), var(--bg-medium));
border-color: var(--accent-secondary);
box-shadow: var(--glow-neon-pink);
}
/* Ефект наведення для всіх кнопок */
.buy-btn:hover, .sell-btn:hover {
transform: scale(1.05);
box-shadow: var(--glow-neon-white);
border-color: var(--accent-highlight);
}
/* Ефект натискання */
.buy-btn:active, .sell-btn:active {
transform: scale(0.98) translateY(1px);
box-shadow:
0 0 8px rgba(154, 59, 48, 0.7),
inset 0 0 15px rgba(154, 59, 48, 0.4);
}
/* Стилі для неактивних кнопок */
.buy-btn:disabled, .sell-btn:disabled {
opacity: 0.5;
cursor: not-allowed;
transform: none;
box-shadow: none;
}
/* Стилі для тексту "Not enough money" та "No items" */
.disabled {
color: var(--text-dark);
font-style: italic;
padding: 6px 12px;
opacity: 0.7;
}
/* Анімація пульсації для кнопок */
@keyframes buttonPulse {
0% {
box-shadow: var(--glow-red);
}
50% {
box-shadow: var(--glow-neon-pink);
}
100% {
box-shadow: var(--glow-red);
}
}
.buy-btn, .sell-btn {
animation: buttonPulse 2s infinite;
}
/* Стилі для контейнера з кнопками */
.item-row {
display: flex;
align-items: center;
gap: 10px;
padding: 8px;
background: var(--bg-medium);
border-radius: 4px;
margin-bottom: 4px;
transition: all 0.3s ease;
}
.item-row:hover {
background: var(--bg-light);
box-shadow: var(--glow-neon-blue);
}
/* Стилі для назви предмета */
.item-name {
flex: 2;
color: var(--text-light);
font-weight: bold;
text-shadow: 0 0 3px rgba(154, 59, 48, 0.4);
}
/* Стилі для ціни */
.item-price {
flex: 1;
color: var(--accent-gold);
text-shadow: 0 0 3px rgba(240, 196, 32, 0.4);
}
/* Стилі для кількості */
.item-count {
flex: 1;
color: var(--text-medium);
font-style: italic;
}
</style>
<<if setup.skylerHasMoved($player)>><<goto "Skyler_Interact">>
<<elseif $player.skyler_home && $player.skyler_home.accepted>><<goto "Skyler_Home_Mission">>
<<else>>
<main class="rc-settlement-page rc-place-page rc-private-room">
<header class="rc-settlement-heading">
<div><span>Settlement / Private room</span><h1>Skyler's room</h1></div>
<p>Down a narrow passage off the market, a faded curtain hangs beside an open door. The noise of the stalls is quieter here.</p>
</header>
<section class="rc-npc-panel rc-private-room-panel" aria-label="Inside the room">
<div class="rc-npc-copy">
<header class="rc-room-host">
<figure class="rc-room-portrait"><img src="assets/cast/sarah.jpg" alt="Skyler" loading="eager" decoding="async"></figure>
<div class="rc-room-identity"><span class="rc-ui-kicker">At the doorway</span><h2>Skyler</h2><p>A moment of quiet</p></div>
</header>
<p>A lamp stands on a wooden crate beside a neatly made bed. There are two cups on the small table, and a jacket hangs from a nail in the wall.</p>
<div id="rc-room-dialogue" class="rc-room-dialogue" aria-live="polite" aria-atomic="true">
<<skylerDialogue>>
</div>
<div id="rc-skyler-trust"><<skylerTrust>></div>
</div>
<aside class="rc-room-visit" aria-label="Visit and conversation">
<span class="rc-ui-kicker">Private visit</span><h2>Stay a while</h2>
<p>She moves the spare chair away from the doorway, leaving room for you to enter.</p>
<div class="rc-room-price"><span>Her price</span><strong>10 Money</strong></div>
<nav class="rc-npc-actions choice-container" aria-label="Speak with Skyler">
<div class="rc-room-topic"><<link "Talk for a moment">><<run setup.skylerTalk($player, 'talk')>><<replace "#rc-room-dialogue">><<skylerDialogue>><</replace>><<replace "#rc-skyler-trust">><<skylerTrust>><</replace>><</link>></div>
<div class="rc-room-topic"><<link "Ask about the room">><<run setup.skylerTalk($player, 'room')>><<replace "#rc-room-dialogue">><<skylerDialogue>><</replace>><<replace "#rc-skyler-trust">><<skylerTrust>><</replace>><</link>></div>
<<if $player.Money > 9>><a class="button dark-choice" data-passage="Prostitute_Service">Pay 10 Money</a>
<<else>><span class="rc-action-unavailable">10 Money required</span><</if>>
<a class="button back-btn" data-passage="Settlement">Return to Settlement</a>
</nav>
</aside>
</section>
</main>
<</if>>
<<if $musicEnabled>>
<<link "Turn Off">>
<<set $musicEnabled = false>>
<<replace "#music-status">>Off<</replace>>
<<replace "#music-toggle">>
<<link "Turn On">>
<<set $musicEnabled = true>>
<<replace "#music-status">>On<</replace>>
<<replace "#music-toggle">><<include "MusicToggle">><</replace>>
<<run document.getElementById('bg-music').play()>>
<</link>>
<</replace>>
<<run document.getElementById('bg-music').pause()>>
<</link>>
<<else>>
<<link "Turn On">>
<<set $musicEnabled = true>>
<<replace "#music-status">>On<</replace>>
<<replace "#music-toggle">>
<<link "Turn Off">>
<<set $musicEnabled = false>>
<<replace "#music-status">>Off<</replace>>
<<replace "#music-toggle">><<include "MusicToggle">><</replace>>
<<run document.getElementById('bg-music').pause()>>
<</link>>
<</replace>>
<<run document.getElementById('bg-music').play()>>
<</link>>
<</if>><<set $player.current_location = "Outside">><<if $farm_recovery>><<set $farm_recovery.on_site = false>><</if>><div class="scene-content">
<div class="scene-text">
<h2>Outside</h2>
<p>You stand in the middle of a devastated city. Broken windows and abandoned cars serve as reminders of the catastrophe that occurred. The air is heavy with the smell of decay and dust.</p>
</div>
<section class="rc-place-events" aria-labelledby="rc-outside-events-title">
<h3 class="rc-place-label" id="rc-outside-events-title">HAPPENING NOW</h3>
<div class="rc-event-list">
<<if $player.emily_status == "unknown">>
<a class="rc-event-link" data-passage="Search_Supplies"><span class="rc-event-kicker">DISTRESS CALL</span><strong>Follow the scream</strong><span class="rc-event-arrow" aria-hidden="true">→</span></a>
<</if>>
</div>
</section>
<!-- Локації -->
<div class="locations-section">
<h3>Locations</h3>
<div class="locations-grid">
<<if $discovered_bunker>><a class="location-btn" data-passage="Bunker"><span class="location-icon">🔒</span><span>Bunker</span></a><</if>>
<<if $discovered_mistral_mansion and $mistral_route_opened and $bunker_quest_progress == "Phase 1">><a class="location-btn" data-passage="Mistral_Mansion"><span class="location-icon">🏰</span><span>Mistral Mansion</span></a><</if>>
<<if $discovered_city_center>><a class="location-btn" data-passage="City_Center"><span class="location-icon">🏙️</span><span>City center</span></a><</if>>
<<if $player.base_location == "Farm">><a class="location-btn" data-passage="Old_Safehouse"><span class="location-icon">🏠</span><span>Old Safehouse</span></a><<elseif $discovered_farm>><a class="location-btn" data-passage="Farm"><span class="location-icon">🌾</span><span>Farm</span></a><</if>>
<<if $discovered_settlement>><a class="location-btn" data-passage="Settlement"><span class="location-icon">🏚️</span><span>Settlement</span></a><</if>>
<<if $player.fields_quest && ($player.fields_quest.stage == 'follow_road' || $player.fields_quest.stage == 'find_base')>><a class="location-btn" data-passage="Supplier_Road"><span class="location-icon">🛣️</span><span>Supplier Road</span></a><</if>>
<<if $discovered_forest>><a class="location-btn" data-passage="Forest"><span class="location-icon">🌲</span><span>Forest</span></a><</if>>
</div>
</div>
<!-- Дії -->
<div class="actions-section">
<div class="choice-container">
<<if setup.partyHas(State.variables, "skyler")>>
<<skylerSupplySearch>>
<<if $player.stamina lt setup.partyActionCost(State.variables, "search")>><span class="warning-message rc-action-warning">Searching requires <<print setup.partyActionCost(State.variables, "search")>> energy.</span><</if>>
<<elseif $player.stamina lt setup.partyActionCost(State.variables, "search")>>
<span class="warning-message rc-action-warning">Searching requires <<print setup.partyActionCost(State.variables, "search")>> energy.</span>
<<else>>
<<if !$player.first_search>>
<<set $player.first_search = true>><<set $found_food = true>><<set $found_meds = random(1, 100) lte 5>>
<a class="button dark-choice" data-passage="Search_Result">Search for supplies · <<print setup.partyActionCost(State.variables, "search")>> energy</a>
<<else>>
<<set $found_food = random(1, 100) lte 50>><<set $found_meds = random(1, 100) lte 5>>
<a class="button dark-choice" data-passage="Search_Result">Search for supplies · <<print setup.partyActionCost(State.variables, "search")>> energy</a>
<</if>>
<</if>>
<<if !setup.energyHasDiscoveries(State.variables)>><span class="rc-action-warning">All nearby locations have been discovered.</span><<elseif $player.stamina gte setup.energyRules.explore>><a class="button dark-choice" data-passage="Explore_Area">Explore area · <<print setup.energyRules.explore>> energy</a><<else>><span class="warning-message rc-action-warning">Exploring requires <<print setup.energyRules.explore>> energy.</span><</if>>
<a class="button back-btn" data-passage="Safehouse">Return home</a>
</div>
</div>
</div>
<<if !setup.ignoredPassages.has(State.passage)>>
<<set $lastPassage = State.passage>>
<</if>>
<div class="scene-content">
<div class="encounter-header">
<h2>Dangerous Encounter</h2>
</div>
<div class="character-encounter">
<div class="encounter-image">
<img @src="setup.enemyEncounterPortrait(State.variables, 'raider', State.turns)" alt="Raider" class="character-image">
</div>
<div class="encounter-text">
<p>A woman with a gun and a cold look is standing in front of you, and she is clearly not going to back down.</p>
<div class="dialog">
<p class="raider-dialog">"Are you a real man? You're worth a fortune, surrender and I'll take care of you."</p>
</div>
<p>She aims her weapon at you and steps closer. You can fight or try to run before she gets a clear shot.</p>
</div>
</div>
<div class="choice-container">
<a class="button danger-choice" data-passage="Combat_Raider">Fight</a>
<a class="button" data-passage="Outside">Try to escape</a>
</div>
</div>
<<if !setup.canReceiveGenericSlave(State.variables)>>
<main class="rc-combat-outcome"><header class="rc-outcome-header"><span class="rc-ui-kicker">HOSTILE CONTACT / AFTERMATH</span><h1>Slave Room full</h1></header><section class="rc-outcome-report"><p>There is no space at the base for another captive.</p></section><nav class="rc-outcome-actions"><a class="button back-btn" data-passage="City_Center">Return to City Center</a></nav></main>
<<else>>
<main class="rc-combat-outcome rc-capture-page"><header class="rc-outcome-header"><span class="rc-ui-kicker">HOSTILE CONTACT / AFTERMATH</span><h1>Subjugating Raider</h1></header>
<div class="rc-outcome-grid"><figure class="rc-outcome-portrait"><img @src="setup.enemyCombatPortrait(State.variables)" alt=""><figcaption>Subjugating Raider</figcaption></figure><section class="rc-outcome-report">
<h2>Subjugating Raider</h2>
<p>
"Now get on your knees, whore, you're my property now. Now show me your submission."
</p>
<<run setup.receiveGenericSlave(State.variables)>>
<p>
"Now you are my slave," you say, binding her hands. "And you will believe your own fate..."
</p></section></div>
<nav class="rc-outcome-actions">
<a class="button dark-choice" data-passage="Slaves_Service">Secure the subjugation</a>
<a class="button" data-passage="Safehouse">Take her home</a>
</nav>
</main>
<</if>>
<main class="rc-combat-outcome rc-execution-page"><header class="rc-outcome-header"><span class="rc-ui-kicker">HOSTILE CONTACT / AFTERMATH</span><h1>Execution of Raider</h1></header>
<div class="rc-outcome-grid"><figure class="rc-outcome-portrait"><img @src="setup.enemyCombatPortrait(State.variables)" alt=""><figcaption>Execution of Raider</figcaption></figure><section class="rc-outcome-report">
<h2>Execution of Raider</h2>
<p>
You decide not to spare her. One strike ends it.
You search her belongings and find some useful supplies.
</p>
<section class="loot rc-loot" aria-label="Recovered supplies">
<header class="rc-loot-header"><span>RECOVERED / RAIDER'S GEAR</span><h3>You found</h3></header>
<ul>
<<set _raiderFood = setup.collectPartyLoot(State.variables, "Provisions", 5)>>
<<set _raiderMedkits = setup.collectPartyLoot(State.variables, "Medkit", 1)>>
<<set $player.Pistol ++>>
<li><img src="assets/icons/canned_food.svg" alt=""><span>Provisions</span><strong>+5</strong></li>
<li><img src="assets/icons/medkit.svg" alt=""><span>Medkit</span><strong>+1</strong></li>
<li><img src="assets/icons/pistol.svg" alt=""><span>Pistol</span><strong>+1</strong></li>
</ul><<if setup.partyHas(State.variables, "emily")>><<partyAssist "emily" `["+" + (_raiderFood - 5) + " Provisions", "+" + (_raiderMedkits - 1) + " First aid kit"]`>><</if>>
</section></section></div>
<nav class="rc-outcome-actions">
<<if $player.current_location == "City_Center">>
<a class="button" data-passage="City_Center">Return</a>
<</if>>
</nav>
</main>
<<nobr>>
<<set _residents = setup.residentialDistrictResidents(State.variables)>>
<main class="rc-settlement-page rc-place-page rc-residential-page">
<header class="rc-settlement-heading"><div><span>Settlement / Residents</span><h1>Residential District</h1></div></header>
<section class="rc-residential-plan" aria-label="Residential district plan">
<div class="rc-residential-map-heading"><span>Residential area</span><p>Select a home to see who is there.</p></div>
<div class="rc-residential-map" role="group" aria-label="Homes in the district">
<div class="rc-residential-road" aria-hidden="true"></div>
<div class="rc-residential-building rc-residential-building-east" aria-hidden="true"><span></span></div>
<<if !_residents.some(function (resident) { return resident.id === 'skyler'; })>><div class="rc-residential-building rc-residential-building-south" aria-hidden="true"><span></span></div><</if>>
<div class="rc-residential-sheds" aria-hidden="true"><span></span><span></span></div>
<<for _index, _resident range _residents>>
<button type="button" class="rc-residential-home" @data-rc-home="_resident.id" @style="_resident.position" @aria-pressed="_index === 0 ? 'true' : 'false'" @aria-label="_resident.name + '\u0027s home: ' + _resident.status" @aria-controls="'rc-home-detail-' + _resident.id">
<span class="rc-residential-roof" aria-hidden="true"><span></span></span>
<span class="rc-residential-home-name"><<print _resident.name>></span>
<span class="rc-residential-home-state" @data-home-available="_resident.available ? 'true' : 'false'"><i aria-hidden="true"></i><<print _resident.status>></span>
</button>
<</for>>
<div class="rc-residential-map-entry"><span aria-hidden="true">↑</span> Settlement</div>
</div>
<div class="rc-residential-selection" aria-live="polite" aria-atomic="true">
<<for _index, _resident range _residents>>
<section @id="'rc-home-detail-' + _resident.id" @class="'rc-residential-detail' + (_index === 0 ? '' : ' is-hidden')" @data-rc-home-detail="_resident.id" @aria-hidden="_index === 0 ? 'false' : 'true'" @aria-label="_resident.name + '\u0027s home'">
<img class="rc-residential-portrait" @src="_resident.portrait" @alt="_resident.name">
<div class="rc-residential-copy"><span><<print _resident.role>> / <<print _resident.status>></span><h2><<print _resident.name>>'s home</h2><p><<print _resident.description>></p></div>
<<if _resident.available>><nav class="rc-residential-actions" aria-label="Visit selected resident"><a class="button" @data-passage="_resident.passage">Talk with <<print _resident.name>></a></nav><</if>>
</section>
<</for>>
</div>
</section>
<nav class="rc-place-exit" aria-label="Leave residential district"><span class="rc-place-label">Leave district</span><a class="button back-btn" data-passage="Settlement">Return to Settlement</a></nav>
</main>
<</nobr>>
<<if setup.lenaInvasionBusy(State.variables)>><<goto 'Lena_Invasion'>>
<<else>>
<<set _emilyReturn = $player.emily_depot && $player.emily_depot.homePending>>
<<set _report = _emilyReturn ? $player.emily_depot.report : setup.lastRestReport && setup.lastRestReport.day === $player.days_survived ? setup.lastRestReport : null>>
<main class="rc-rest-page">
<<if _emilyReturn>>
<header class="rc-rest-header"><span class="rc-ui-kicker">FARM / OVERNIGHT REPORT</span><h1>Back at the Farm</h1>
<p>You and Emily are home. Here is the report from the night you spent at the depot.</p></header>
<<else>>
<header class="rc-rest-header"><span class="rc-ui-kicker"><<if $player.base_location == "Farm">>FARM<<else>>SAFE HOUSE<</if>> / END OF DAY</span><h1>Rest</h1>
<p>You rest. Another day begins.</p></header>
<</if>>
<div class="rc-rest-body">
<div class="rc-rest-summary" aria-label="Rest summary">
<div><span>Day</span><strong><<print $player.days_survived>></strong></div>
<div><span>Health</span><strong><<print $player.health>> / <<print $player.max_health>></strong></div>
<div><span>Energy</span><strong><<print $player.stamina>> / <<print $player.max_stamina>></strong></div>
</div>
<<if _report>>
<section class="status-update" aria-label="Status update"><h2>Status Update</h2><ul>
<li class="success">Energy fully restored!</li><li class="success">Health fully restored!</li>
<<if _report.prepared > 0>><li>Prepared provisions: <<print _report.prepared>>.</li><</if>>
<<if _report.harvest > 0>><li class="success">Fields: +<<print _report.harvest>> Fresh Food.</li><</if>>
<<if _report.refined > 0>><li class="success">Workshop: +<<print _report.refined>> Refined Materials.</li><</if>>
<<if _report.converted > 0>><li>Kitchen: <<print _report.converted>> Fresh Food → <<print _report.converted>> Provisions.</li><</if>>
<li>Provisions used: <<print _report.consumed>> of <<print _report.required>>.</li>
<<if $player.yard_quest && $player.yard_quest.lastSupply && $player.yard_quest.lastSupply.received == $player.days_survived>><li class="success">Nikki's truck delivered 10 Provisions to the Farm before this morning's meal.</li><</if>>
<<if _report.guestsDeparted > 0>><li>Temporary guests departed: <<print _report.guestsDeparted>>. Their housing places are free again.</li><</if>>
<<if _report.shortOnFood>><li class="rc-rest-warning">There was not enough food for the base. Field work, Workshop production, scavenging and Party bonuses are paused; assignments are kept. Cooking is still available.</li><</if>>
<<for _result range _report.scavenging>>
<<if _result.provisions>><li class="success"><<print _result.name>> found provisions!</li><</if>>
<<if _result.medkit>><li class="success"><<print _result.name>> found medical supplies!</li><</if>>
<</for>>
</ul></section>
<</if>>
<nav class="rc-rest-actions"><span>Provisions remaining: <<print $player.Provisions>></span>
<<if $player.emily_depot && $player.emily_depot.homePending>><<emilyDepotReportExit>><<else>><a class="button dark-choice" data-passage="Safehouse">Wake Up</a><</if>></nav>
</div>
</main>
<</if>>
<<if $player.stamina lt setup.partyActionCost(State.variables, "search")>><<goto "Outside">><<else>>
<<set _searchStaminaBefore = $player.stamina>>
<<set $player.stamina = Math.max(0, $player.stamina - setup.partyActionCost(State.variables, "search"))>>
<<set _searchFood = 0>>
<<set _searchMedkits = 0>>
<<set _searchBaseFood = 0>>
<<set _searchBaseMedkits = 0>>
<<if $found_food>>
<<set _searchBaseFood = random(1, 4)>>
<<set _searchFood = setup.collectPartyLoot(State.variables, "Provisions", _searchBaseFood)>>
<</if>>
<<if $found_meds>>
<<set _searchBaseMedkits = random(0, 2)>>
<<set _searchMedkits = setup.collectPartyLoot(State.variables, "Medkit", _searchBaseMedkits)>>
<</if>>
<<set _searchBaseMaterials = random(0, 4)>>
<<set _searchMaterials = setup.collectPartyLoot(State.variables, "Materials", _searchBaseMaterials)>>
<main class="rc-search-page">
<header class="rc-search-header">
<div><span class="rc-search-kicker">OUTSIDE / SCAVENGING</span><h1>Search result</h1></div>
<span class="rc-search-status"><<if _searchFood + _searchMedkits + _searchMaterials gt 0>>SUPPLIES FOUND<<else>>NO SUPPLIES<</if>></span>
</header>
<section class="rc-search-body" aria-label="Supplies found">
<p class="rc-search-label">You found</p>
<<if _searchMaterials gt 0>><div class="rc-search-find"><img src="assets/icons/materials.svg" alt=""><strong>+<<print _searchBaseMaterials>> Materials</strong></div><</if>>
<<if _searchFood gt 0>>
<div class="rc-search-find"><img src="assets/icons/canned_food.svg" alt=""><strong>+<<= _searchBaseFood>> <<if _searchBaseFood is 1>>Provision<<else>>Provisions<</if>></strong></div>
<</if>>
<<if _searchMedkits gt 0>>
<div class="rc-search-find"><img src="assets/icons/medkit.svg" alt=""><strong>+<<= _searchBaseMedkits>> <<if _searchBaseMedkits is 1>>First aid kit<<else>>First aid kits<</if>></strong></div>
<</if>>
<<if _searchFood + _searchMedkits + _searchMaterials is 0>>
<div class="rc-search-find rc-search-find-empty"><strong>Nothing found</strong></div>
<</if>>
<<if $found_meds and _searchMedkits is 0>>
<p class="rc-search-note">You found an empty first aid kit.</p>
<<elseif !$found_food and !$found_meds>>
<p class="rc-search-note">You found no usable provisions this time.</p>
<</if>>
</section>
<<if setup.partyHas(State.variables, "emily") && _searchFood + _searchMedkits + _searchMaterials > 0>>
<<set _searchBonusMaterials = _searchMaterials - _searchBaseMaterials>>
<<set _searchBonusFood = _searchFood - _searchBaseFood>>
<<set _searchBonusMedkits = _searchMedkits - _searchBaseMedkits>>
<<partyAssist "emily" `[_searchBonusMaterials > 0 ? "+" + _searchBonusMaterials + " Materials" : "", _searchBonusFood > 0 ? "+" + _searchBonusFood + (_searchBonusFood == 1 ? " Provision" : " Provisions") : "", _searchBonusMedkits > 0 ? "+" + _searchBonusMedkits + (_searchBonusMedkits == 1 ? " First aid kit" : " First aid kits") : ""].filter(Boolean)`>>
<</if>>
<<if setup.partyHas(State.variables, "gage")>><<partyAssist "gage" "−7.5 energy">><</if>>
<nav class="rc-search-actions" aria-label="Search actions">
<span class="rc-search-cost">−<<= _searchStaminaBefore - $player.stamina>> stamina · <<print $player.stamina>> left</span>
<div class="rc-search-action-list">
<<if $player.stamina gte setup.partyActionCost(State.variables, "search")>>
<<link "Search again" "Search_Result">><<set $found_food = random(1, 100) lte 50>><<set $found_meds = random(1, 100) lte 5>><</link>>
<</if>>
<a class="button rc-search-return" data-passage="Outside">Return to Outside</a>
</div>
</nav>
</main>
<</if>>
<<if $player.stamina lt setup.partyActionCost(State.variables, "search")>><<goto "Outside">><<else>>
<main class="rc-scream-page rc-scream-lead"><header class="rc-scream-header">
<span class="rc-ui-kicker">OUTSIDE / ABANDONED SUPERMARKET</span><span class="rc-scream-alert">DISTRESS CALL</span>
<h1>A scream in the ruins</h1><p class="rc-scream-context">Scavenging for Provisions</p></header>
<div class="rc-scream-copy">
<<set $player.first_search = true>>
<<set $player.stamina = Math.max(0, $player.stamina - setup.partyActionCost(State.variables, "search"))>>
<p>
A cry for help comes from an abandoned supermarket. Then you hear someone rattling a metal gate.
</p>
</div>
<nav class="rc-scream-actions"><a class="button neutral-choice" data-passage="Emily_Event">Investigate the scream</a>
<a class="button neutral-choice" data-passage="Ignore_Scream">Ignore it</a></nav>
</main>
<</if>>
<<if $player.slaves > 0>>
<<set $player.Money += 200>>
<<set $player.slaves -= 1>>
<<run setup.clampFieldWorkers($player)>>
<<goto "Slave_Market">>
<<else>>
<<goto "Slave_Market">>
<</if>>
<<set $soundVolume = $soundVolume ?? (localStorage.getItem('soundVolume') ? Number(localStorage.getItem('soundVolume')) : 50)>>
<<set $musicVolume = $musicVolume ?? (localStorage.getItem('musicVolume') ? Number(localStorage.getItem('musicVolume')) : 50)>>
<<set $musicEnabled = $musicEnabled ?? (localStorage.getItem('musicEnabled') ? JSON.parse(localStorage.getItem('musicEnabled')) : true)>>
<<set $currentTrackIndex = $currentTrackIndex ?? 0>> <!-- Індекс поточного треку -->
<div class="settings-page">
<div class="settings-header">
<h1>Settings</h1>
<a class="rc-menu-return" data-passage="MainMenu"><span aria-hidden="true">←</span> Return to menu</a>
</div>
<div class="settings-section rc-history-settings">
<h3>Scene history</h3>
<div class="rc-save-preferences rc-history-preferences"><<historySettings>></div>
<p id="rc-history-help">Keeping more scenes uses more memory and may reduce FPS.</p>
</div>
<div class="settings-section rc-save-settings">
<h3>Automatic saves</h3>
<div class="rc-save-preferences"><<saveSettings>></div>
<p id="rc-autosave-help">Uses a separate automatic slot after resting. Every 3 days: days 3, 6, 9… Weekly: days 1, 8, 15…</p>
<p>Loaded save files are kept in this browser automatically. For a portable backup, use Saves → On Disk → Save…</p>
</div>
<div class="settings-section">
<h3>Sound Volume: <span id="sound-volume-display"><<print $soundVolume>></span></h3>
<div class="volume-controls">
<<link "-">>
<<set $soundVolume = Math.max(0, $soundVolume - 10)>>
<<replace "#sound-volume-display">><<print $soundVolume>><</replace>>
<<run localStorage.setItem('soundVolume', $soundVolume)>>
<</link>>
<<link "+">>
<<set $soundVolume = Math.min(100, $soundVolume + 10)>>
<<replace "#sound-volume-display">><<print $soundVolume>><</replace>>
<<run localStorage.setItem('soundVolume', $soundVolume)>>
<</link>>
</div>
</div>
<div class="settings-section">
<h3>Music Volume: <span id="music-volume-display"><<print $musicVolume>></span></h3>
<div class="volume-controls">
<<link "-">>
<<set $musicVolume = Math.max(0, $musicVolume - 10)>>
<<replace "#music-volume-display">><<print $musicVolume>><</replace>>
<<run localStorage.setItem('musicVolume', $musicVolume)>>
<<run document.getElementById('bg-music').volume = $musicVolume / 100>>
<</link>>
<<link "+">>
<<set $musicVolume = Math.min(100, $musicVolume + 10)>>
<<replace "#music-volume-display">><<print $musicVolume>><</replace>>
<<run localStorage.setItem('musicVolume', $musicVolume)>>
<<run document.getElementById('bg-music').volume = $musicVolume / 100>>
<</link>>
</div>
</div>
<div class="settings-section">
<h3>Music: <span id="music-status"><<if $musicEnabled>>On<<else>>Off<</if>></span></h3>
<div class="toggle-controls" id="music-toggle">
<<if $musicEnabled>>
<<link "Turn Off">>
<<set $musicEnabled = false>>
<<replace "#music-status">>Off<</replace>>
<<replace "#music-toggle">>
<<link "Turn On">>
<<set $musicEnabled = true>>
<<replace "#music-status">>On<</replace>>
<<replace "#music-toggle">><<include "MusicToggle">><</replace>>
<<run localStorage.setItem('musicEnabled', JSON.stringify($musicEnabled))>>
<<run document.getElementById('bg-music').play()>>
<</link>>
<</replace>>
<<run localStorage.setItem('musicEnabled', JSON.stringify($musicEnabled))>>
<<run document.getElementById('bg-music').pause()>>
<</link>>
<<else>>
<<link "Turn On">>
<<set $musicEnabled = true>>
<<replace "#music-status">>On<</replace>>
<<replace "#music-toggle">>
<<link "Turn Off">>
<<set $musicEnabled = false>>
<<replace "#music-status">>Off<</replace>>
<<replace "#music-toggle">><<include "MusicToggle">><</replace>>
<<run localStorage.setItem('musicEnabled', JSON.stringify($musicEnabled))>>
<<run document.getElementById('bg-music').pause()>>
<</link>>
<</replace>>
<<run localStorage.setItem('musicEnabled', JSON.stringify($musicEnabled))>>
<<run document.getElementById('bg-music').play()>>
<</link>>
<</if>>
</div>
</div>
<div class="settings-section">
<h3>Current Track: <span id="current-track-display">track <<print $currentTrackIndex + 1>></span></h3>
<div class="volume-controls">
<<link "Previous">>
<<set $currentTrackIndex = Math.max(0, $currentTrackIndex - 1)>>
<<run window.rcMusic.sync()>>
<<replace "#current-track-display">>track <<print $currentTrackIndex + 1>><</replace>>
<</link>>
<<link "Next">>
<<set $currentTrackIndex = Math.min(2, $currentTrackIndex + 1)>>
<<run window.rcMusic.sync()>>
<<replace "#current-track-display">>track <<print $currentTrackIndex + 1>><</replace>>
<</link>>
</div>
</div>
<!-- The music player is initialized for the whole story. -->
<<script>>window.rcMusic.sync();<</script>>
</div>
<style>
/* CSS Custom Properties for consistency */
:root {
--space-xs: 0.5rem;
--space-small: 0.75rem;
--space-medium: 1rem;
--space-large: 1.5rem;
--transition-fast: 0.2s ease;
--transition-slow: 0.5s ease;
--shadow-subtle: 0 2px 4px rgba(0, 0, 0, 0.1);
--shadow-medium: 0 4px 8px rgba(0, 0, 0, 0.15);
--glow-red: 0 0 6px rgba(154, 59, 48, 0.6), 0 0 12px rgba(154, 59, 48, 0.3);
--glow-green: 0 0 6px rgba(0, 255, 102, 0.7), 0 0 12px rgba(0, 255, 102, 0.4);
--glow-neon-blue: 0 0 8px rgba(154, 59, 48, 0.7), 0 0 16px rgba(154, 59, 48, 0.4);
--glow-neon-pink: 0 0 8px rgba(154, 59, 48, 0.7), 0 0 16px rgba(154, 59, 48, 0.4);
--font-mono: 'Fira Code', 'Consolas', monospace;
--bg-dark: #191a17;
--bg-medium: #191a17;
--bg-light: #292a25;
--text-light: #f1ecde;
--text-medium: #c4bcaa;
--text-dark: #9a3b30;
--accent-primary: #292a25;
--accent-secondary: #9a3b30;
--accent-highlight: #9a3b30;
--accent-gold: #f0c420;
--accent-blue: #292a25;
--accent-green: #00ff66;
--accent-white: #ffffff;
}
/* Settings page container */
.settings-page {
margin: var(--space-large) auto;
padding: var(--space-large);
max-width: 800px;
background: linear-gradient(145deg, var(--bg-medium), var(--bg-dark));
border: 2px solid var(--accent-primary);
border-radius: 8px;
box-shadow: var(--shadow-medium), var(--glow-red);
animation: fadeIn var(--transition-slow);
}
/* Header styling */
.settings-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: var(--space-large);
flex-wrap: wrap;
gap: var(--space-medium);
}
.settings-header h1 {
font-family: var(--font-mono);
color: var(--accent-highlight);
font-size: clamp(1.5rem, 5vw, 2rem);
text-shadow: 0 0 4px rgba(64, 255, 64, 0.5);
margin: 0;
}
/* Back button */
.back-button {
display: inline-flex;
align-items: center;
gap: var(--space-xs);
color: var(--text-light);
text-decoration: none;
font-family: var(--font-mono);
font-size: 1rem;
padding: var(--space-small) var(--space-medium);
border: 2px solid var(--accent-secondary);
border-radius: 6px;
background: var(--bg-dark);
transition: all var(--transition-fast);
box-shadow: var(--shadow-subtle), var(--glow-neon-blue);
text-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
}
.back-button:hover,
.back-button:focus-visible {
background: var(--bg-medium);
color: var(--accent-white);
transform: translateY(-2px);
box-shadow: var(--shadow-medium), var(--glow-neon-pink);
text-shadow: 0 0 4px rgba(0, 0, 0, 0.7);
outline: none;
}
.back-icon {
font-size: 1.2rem;
transition: transform var(--transition-fast);
}
.back-button:hover .back-icon,
.back-button:focus-visible .back-icon {
transform: translateX(-2px);
}
/* Settings section */
.settings-section {
background: var(--bg-light);
border: 2px solid var(--accent-secondary);
border-radius: 6px;
padding: var(--space-medium);
margin-bottom: var(--space-large);
box-shadow: var(--shadow-subtle), var(--glow-neon-blue);
transition: transform var(--transition-fast);
}
.settings-section:hover {
transform: translateY(-2px);
}
.settings-section h3 {
color: var(--accent-highlight);
font-family: var(--font-mono);
font-size: 1.25rem;
margin-bottom: var(--space-small);
text-shadow: var(--glow-neon-pink);
}
/* Control groups */
.volume-controls,
.toggle-controls {
display: flex;
flex-wrap: wrap;
gap: var(--space-small);
justify-content: center;
margin: var(--space-small) 0;
}
.volume-controls a,
.toggle-controls a {
display: inline-flex;
align-items: center;
justify-content: center;
padding: var(--space-small) var(--space-medium);
border-radius: 6px;
font-family: var(--font-mono);
font-size: 1rem;
text-decoration: none;
transition: all var(--transition-fast);
cursor: pointer;
text-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
}
/* Volume controls */
.volume-controls a {
background: var(--bg-dark);
color: var(--text-light);
border: 2px solid var(--accent-secondary);
box-shadow: var(--shadow-subtle), var(--glow-neon-blue);
}
.volume-controls a:hover,
.volume-controls a:focus-visible {
background: var(--bg-medium);
color: var(--accent-white);
transform: translateY(-2px);
box-shadow: var(--shadow-medium), var(--glow-neon-pink);
text-shadow: 0 0 4px rgba(0, 0, 0, 0.7);
outline: none;
}
/* Toggle controls */
.toggle-controls a {
background: var(--bg-dark);
color: var(--text-light);
border: 2px solid var(--accent-green);
box-shadow: var(--shadow-subtle), var(--glow-neon-green);
}
.toggle-controls a:hover,
.toggle-controls a:focus-visible {
background: var(--bg-medium);
color: var(--accent-white);
transform: translateY(-2px);
box-shadow: var(--shadow-medium), var(--glow-neon-green);
text-shadow: 0 0 4px rgba(0, 0, 0, 0.7);
outline: none;
}
/* Fade-in animation */
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Responsive design */
@media (max-width: 600px) {
.settings-page {
margin: var(--space-medium);
padding: var(--space-medium);
}
.settings-header {
flex-direction: column;
align-items: flex-start;
}
.volume-controls,
.toggle-controls {
flex-direction: column;
align-items: center;
}
}
/* High contrast mode for accessibility */
@media (prefers-contrast: high) {
.settings-page {
background: var(--bg-dark);
border-color: var(--accent-white);
}
.settings-section {
background: var(--bg-medium);
border-color: var(--accent-white);
}
.back-button,
.volume-controls a,
.toggle-controls a {
border-color: var(--accent-white);
color: var(--accent-white);
}
}
/* Reduced motion for accessibility */
@media (prefers-reduced-motion: reduce) {
.settings-page,
.settings-section,
.back-button,
.volume-controls a,
.toggle-controls a {
animation: none;
transition: none;
}
}
</style>
<<if !setup.enterEnergyDestination(State.variables, "Settlement")>>
<p class="warning-message">This trip requires <<print setup.energyDestinationCost(State.variables, "Settlement")>> energy. The return home is free.</p>
<a class="button" data-passage="Outside">Return to the map</a> <a class="button" data-passage="Safehouse">Return home</a>
<<else>>
<<set $player.current_location = "Settlement">>
<main class="rc-settlement-page rc-settlement-hub">
<header class="rc-settlement-heading">
<div><span>District / Occupied Zone</span><h1>Survivor Settlement</h1></div>
<p>A defended community built from salvaged materials. Trade, local services, work and residents are organized across six districts.</p>
</header>
<section class="locations-section rc-settlement-locations" aria-labelledby="rc-settlement-locations-title">
<h3 id="rc-settlement-locations-title">Places and services</h3>
<nav class="locations-grid" aria-label="Settlement areas">
<a class="location-btn" data-passage="Market"><span class="location-icon" aria-hidden="true">🛒</span><span>Market</span><small>Buy and sell supplies</small></a>
<a class="location-btn" data-passage="Slave_Market"><span class="location-icon" aria-hidden="true">⚖️</span><span>Slave Market</span><small>Review available transactions</small></a>
<a class="location-btn" data-passage="Bar"><span class="location-icon" aria-hidden="true">🍺</span><span>Bar</span><small>Meet Lesana at the Matriarch</small></a>
<a class="location-btn" data-passage="Administration"><span class="location-icon" aria-hidden="true">🏛️</span><span>Administration</span><small>View missions and speak with Cory</small></a>
<<if !setup.skylerHasMoved($player)>><a class="location-btn" data-passage="Prostitute"><span class="location-icon" aria-hidden="true">🛏️</span><span>Prostitute</span><small>Visit Skyler · 10 Money</small></a><</if>>
<a class="location-btn" data-passage="Residential_District"><span class="location-icon" aria-hidden="true">🏠</span><span>Residential District</span><small>Visit the homes and residents</small></a>
</nav>
</section>
<nav class="rc-settlement-actions choice-container"><a class="button back-btn" data-passage="Outside">Return Outside</a></nav>
</main>
<</if>>
<<set $player.lesana_status = "Familiar">>
<p class="rc-encounter-event">You pull up a stool. Lesana puts down the glass she's drying.</p>
<div class="rc-encounter-statement" data-reveal-character="Lesana"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“New face. I'm Lesana. What should I call you?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“<<print $player.name>>.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“All right. You staying around here?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Found a house outside town. The door still closes, mostly.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“That's a start.” She folds the cloth over her shoulder. “How'd you end up there?”</p></div>
<nav class="choice-container"><a class="button light-choice" data-passage="Lesana_Tell_Story">Tell her how you got there</a><a class="button neutral-choice" data-passage="Bar">Leave it there</a></nav>
<<set _lesana = setup.ensureLesanaStory(State.variables)>>
<<if ['fight', 'expelled'].includes(_lesana.stage)>><<goto "Bar">><<else>>
<<if ['recovering', 'romance'].includes(_lesana.stage)>>
<p class="rc-encounter-event">Lesana moves her chair a little to make room for you. Her bandaged arm rests against her side.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Sit down. Unless you're bringing more trouble.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Just me.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“That'll do.”</p></div>
<<else>>
<p class="rc-encounter-event">Lesana gives the counter a quick wipe as you sit down.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Back again. How's the house?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Still standing.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Good enough for me.” She reaches for a clean glass. “Drink? Ten caps.”</p></div>
<</if>>
<nav class="choice-container"><<if $player.Money >= 10>><a class="button light-choice" data-passage="Lesana_Drink">Buy a drink (10 Money)</a><<else>><a class="button disabled" aria-disabled="true" tabindex="-1">Buy a drink (need 10 Money)</a><</if>><a class="button neutral-choice" data-passage="Bar">Return to the bar</a></nav>
<</if>>
<<set $player.lesana_status = "Familiar">>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I stayed inside for six months. I had food for a while. Then it ran low.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Six months?” She rests her elbows on the counter. “Go on.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Went out with a wrench. Found an empty house and started clearing it. Still needs work.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“They all do. You eating all right?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I'm managing. Came in to see what the settlement's like.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Sit a while, then. A drink's ten caps. The stool's free.”</p></div>
<nav class="choice-container"><<if $player.Money >= 10>><a class="button light-choice" data-passage="Lesana_Drink">Buy a drink (10 Money)</a><<else>><a class="button disabled" aria-disabled="true" tabindex="-1">Buy a drink (need 10 Money)</a><</if>><a class="button neutral-choice" data-passage="Bar">No, thanks</a></nav>
<<set _lesana = setup.ensureLesanaStory(State.variables)>>
<<if ['fight', 'expelled'].includes(_lesana.stage)>><<goto "Bar">><<else>>
<<if setup.buyLesanaDrink(State.variables)>>
<<if ['recovering', 'romance'].includes(_lesana.stage)>>
<p class="rc-encounter-event">You leave the money on the counter. Lesana points to the brown bottle. You pour yourself a glass and sit beside her.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Don't empty it. I've still got a bar to run.”</p></div>
<<else>>
<p class="rc-encounter-event">You put the money on the counter. Lesana counts it with her thumb, pours from a brown bottle, and slides the glass over. You take a sip. It burns.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Give it a second.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Does it get better?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“You get used to it.” She takes the empty glass when you're done.</p></div>
<</if>>
<<else>>
<p class="rc-encounter-event">You check your money. There isn't enough for a drink.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“It's ten caps. Come back when you've got them.”</p></div>
<</if>>
<nav class="choice-container"><a class="button neutral-choice" data-passage="Lesana_Talk_Menu">Keep talking</a><a class="button neutral-choice" data-passage="Bar">Return to the bar</a></nav>
<</if>>
<<if $player.base_location == "Farm">><<goto "Farm_People">><<else>>
<main class="rc-roster-page">
<section class="rc-roster-card">
<div class="rc-roster-portrait">
<img src="assets/generic/persons/slave.png" alt="Slave roster">
</div>
<div class="rc-roster-copy">
<span><<if $player.base_location == "Farm">>Farm<<else>>Safehouse<</if>> / Slave Room</span>
<h2>Slave Room</h2>
<div class="rc-roster-count">
<strong><<print $player.slaves>></strong>
<small><<if $player.slaves is 1>>unnamed slave available<<else>>unnamed slaves available<</if>></small>
</div>
<p class="rc-base-capacity">Capacity: <<print $player.slaves>> / <<print setup.slaveRoomCapacity(State.variables)>></p>
<<if !setup.canReceiveGenericSlave(State.variables)>><p class="rc-base-capacity">Slave Room full. Expand it before bringing anyone else here.</p><</if>>
<<if $player.base_location == "Farm">><p><a data-passage="Farm_Workshop">Expand at the Workshop</a></p><</if>>
<p><<if $player.slaves > 0>>Choose an interaction with the slaves housed here.<<else>>No unnamed slaves are available in this room.<</if>></p>
<div class="rc-roster-food-cost"><p>For every 10 unnamed slaves, the base needs 1 more Provision per day.</p></div>
<nav class="rc-roster-actions choice-container" aria-label="Slave room actions">
<<if $player.slaves > 0>><a class="button dark-choice" data-passage="Slaves_Service">Use Slaves</a>
<<else>><a class="button dark-choice disabled" aria-disabled="true">Use Slaves</a><</if>>
<a class="button back-btn" data-passage="Safehouse">Return to <<if $player.base_location == "Farm">>Farm<<else>>Safe House<</if>></a>
</nav>
</div>
</section>
</main>
<</if>>
<main class="rc-settlement-page rc-slave-market-page">
<header class="rc-settlement-heading">
<div><span>Settlement / Exchange</span><h1>Slave Market</h1></div>
<div class="rc-resource-strip">
<span><img src="assets/icons/money.svg" alt=""><small>Money</small><strong><<print $player.Money>></strong></span>
<span><img src="assets/generic/persons/slave.png" alt=""><small>Owned</small><strong><<print $player.slaves>></strong></span>
</div>
</header>
<section class="rc-market-offer">
<div class="rc-offer-portrait"><img src="assets/generic/persons/slave.png" alt="Available slave"></div>
<div class="rc-offer-copy">
<span>Available Character</span><h2>Slave</h2>
<dl><div><dt>Purchase price</dt><dd>400 Money</dd></div><div><dt>Sale value</dt><dd>200 Money</dd></div></dl>
<nav class="rc-offer-actions choice-container">
<<if !setup.canReceiveGenericSlave(State.variables)>><span class="rc-action-unavailable">Slave Room full · expand it at the Workshop</span>
<<elseif $player.Money >= 400>><a class="button market-btn buy" data-passage="Buy_Slave">Buy Slave (400 Money)</a>
<<else>><span class="rc-action-unavailable">400 Money required to buy</span><</if>>
<<if $player.slaves > 0>><a class="button market-btn sell" data-passage="Sell_Slave">Sell One Slave (200 Money)</a>
<<else>><span class="rc-action-unavailable">No slaves available to sell</span><</if>>
</nav>
</div>
</section>
<nav class="rc-settlement-actions choice-container"><a class="button back-btn" data-passage="Settlement">Return to Settlement</a></nav>
</main>
<style>
:root {
--bg-dark: #191a17;
--bg-medium: #191a17;
--bg-light: #292a25;
--text-light: #f1ecde;
--text-medium: #c4bcaa;
--text-dark: #9a3b30;
--accent-primary: #292a25;
--accent-secondary: #9a3b30;
--accent-highlight: #9a3b30;
--accent-gold: #f0c420;
--accent-blue: #292a25;
--accent-green: #00ff66;
--accent-white: #ffffff;
--font-main: 'Courier New', monospace;
--font-mono: 'Courier New', monospace;
--space-small: 0.5rem;
--space-medium: 1rem;
--space-large: 2rem;
--shadow-subtle: 0 3px 6px rgba(0, 0, 0, 0.5);
--shadow-medium: 0 4px 8px rgba(0, 0, 0, 0.7);
--glow-red: 0 0 6px rgba(154, 59, 48, 0.6), 0 0 12px rgba(154, 59, 48, 0.3);
--glow-gold: 0 0 6px rgba(240, 196, 32, 0.6), 0 0 12px rgba(240, 196, 32, 0.3);
--glow-green: 0 0 6px rgba(0, 255, 102, 0.7), 0 0 12px rgba(0, 255, 102, 0.4);
--glow-white: 0 0 6px rgba(255, 255, 255, 0.8), 0 0 12px rgba(255, 255, 255, 0.4);
--transition-fast: 0.3s ease;
--transition-slow: 0.5s ease;
--glow-neon-blue: 0 0 8px rgba(154, 59, 48, 0.7), 0 0 16px rgba(154, 59, 48, 0.4);
--glow-neon-pink: 0 0 8px rgba(154, 59, 48, 0.7), 0 0 16px rgba(154, 59, 48, 0.4);
--glow-neon-green: 0 0 8px rgba(0, 255, 102, 0.7), 0 0 16px rgba(0, 255, 102, 0.4);
--glow-neon-white: 0 0 8px rgba(255, 255, 255, 0.7), 0 0 16px rgba(255, 255, 255, 0.4);
--container-width: 1200px;
}
body {
background: var(--bg-dark);
color: var(--text-light);
font-family: var(--font-main);
line-height: 1.6;
text-shadow: 0 0 5px rgba(255, 255, 255, 0.3);
}
/* Стилі для ринку рабів */
.market-actions {
background: var(--bg-medium);
border: 2px solid var(--accent-primary);
border-radius: 6px;
padding: var(--space-medium);
margin: var(--space-large) 0;
box-shadow: var(--shadow-subtle), var(--glow-red);
}
.market-actions h3 {
color: var(--accent-gold);
font-family: var(--font-mono);
margin-bottom: var(--space-medium);
text-shadow: var(--glow-gold);
animation: pulse 3s infinite;
}
.market-btn {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 12px 24px;
border-radius: 6px;
font-family: var(--font-mono);
font-size: 1.1rem;
text-decoration: none;
transition: background-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
min-width: 180px;
text-align: center;
}
.market-btn.buy {
background: var(--accent-highlight);
color: #000;
border: 2px solid var(--accent-highlight);
box-shadow: var(--glow-green);
font-weight: bold;
text-shadow: 0 0 2px rgba(255,255,255,0.7);
}
.market-btn.buy:hover {
background: var(--bg-light);
color: var(--accent-highlight);
transform: scale(1.05);
box-shadow: var(--shadow-medium), 0 0 15px rgba(34, 255, 136, 0.7);
}
.market-btn.sell {
background: var(--accent-secondary);
color: #fff;
border: 2px solid var(--accent-secondary);
box-shadow: var(--glow-red);
font-weight: bold;
text-shadow: 0 0 2px rgba(0,0,0,0.7);
}
.market-btn.sell:hover {
background: var(--bg-light);
color: var(--accent-secondary);
transform: scale(1.05);
box-shadow: var(--shadow-medium), 0 0 15px rgba(154, 59, 48, 0.7);
}
.market-btn.disabled {
pointer-events: none;
opacity: 0.8;
background: var(--bg-light);
color: var(--text-dark);
border: 2px solid var(--text-dark);
box-shadow: none;
font-weight: bold;
text-shadow: 0 0 2px rgba(255,255,255,0.3);
cursor: not-allowed;
}
/* Попередні стилі для сцени, інвентарю тощо */
.scene-content {
margin-top: var(--space-large);
padding: var(--space-large);
background: var(--bg-medium);
border: 2px solid var(--accent-primary);
border-radius: 6px;
box-shadow: var(--shadow-medium), var(--glow-red);
}
.scene-text h2 {
font-family: var(--font-mono);
color: var(--accent-white);
text-transform: none;
letter-spacing: normal;
margin-bottom: var(--space-small);
font-size: 1.8rem;
text-shadow: var(--glow-neon-white);
animation: glow 3s infinite;
}
.inventory-panel {
background: var(--bg-medium);
border: 2px solid var(--accent-secondary);
border-radius: 6px;
padding: var(--space-medium);
margin: var(--space-large) 0;
box-shadow: var(--shadow-medium), var(--glow-neon-blue);
}
.inventory-panel h3 {
color: var(--accent-gold);
font-family: var(--font-mono);
margin-bottom: var(--space-medium);
text-shadow: var(--glow-gold);
animation: pulse 3s infinite;
}
.inventory-list {
display: flex;
flex-wrap: wrap;
gap: var(--space-medium);
justify-content: center;
}
.inventory-image {
display: flex;
align-items: center;
gap: var(--space-small);
}
.inventory-image img {
width: 60px;
height: 60px;
filter: drop-shadow(0 0 8px var(--accent-highlight));
transition: filter var(--transition-fast);
}
.inventory-image:hover img {
filter: drop-shadow(0 0 12px var(--accent-highlight));
}
.choice-container {
display: flex;
flex-wrap: wrap;
gap: var(--space-small);
justify-content: center;
margin-top: var(--space-large);
}
.choice-container .button {
padding: 10px 20px;
background: var(--bg-light);
color: var(--text-light);
text-decoration: none;
border: 2px solid var(--accent-primary);
border-radius: 5px;
transition: all 0.3s;
box-shadow: var(--shadow-subtle), var(--glow-red);
min-width: 150px;
text-align: center;
}
.choice-container .button:hover {
background: var(--accent-primary);
transform: scale(1.05);
box-shadow: var(--shadow-medium), 0 0 15px rgba(154, 59, 48, 0.7);
text-shadow: 0 0 5px #ffffff;
}
.hunt-message {
background: var(--bg-medium);
border-left: 4px solid var(--accent-primary);
padding: 10px;
margin: 10px 0;
border-radius: 5px;
box-shadow: var(--shadow-subtle), var(--glow-red);
}
.hunt-message span {
display: block;
margin: 5px 0;
}
.hunt-message .damage {
color: var(--accent-secondary);
font-weight: bold;
text-shadow: 0 0 8px rgba(154, 59, 48, 0.6);
animation: pulse 2s infinite;
}
.hunt-message .reward {
color: var(--accent-highlight);
font-weight: bold;
text-shadow: 0 0 8px rgba(34, 255, 136, 0.6);
animation: glow 3s infinite;
}
.tired-message {
color: #ffffff;
text-align: center;
font-size: 1.5em;
margin: 20px 0;
text-shadow: var(--glow-white);
animation: flicker 4s infinite;
}
.game-over {
color: var(--accent-secondary);
text-align: center;
font-size: 1.2em;
margin: 20px 0;
text-shadow: 0 0 10px rgba(154, 59, 48, 0.8);
animation: fadeInOut 2s infinite;
}
/* Анімація появи */
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes pulse {
0% { opacity: 1; }
50% { opacity: 0.7; }
100% { opacity: 1; }
}
@keyframes glow {
0% { text-shadow: 0 0 5px rgba(34, 255, 136, 0.6); }
50% { text-shadow: 0 0 15px rgba(34, 255, 136, 0.8), 0 0 30px rgba(34, 255, 136, 0.4); }
100% { text-shadow: 0 0 5px rgba(34, 255, 136, 0.6); }
}
@keyframes flicker {
0% { opacity: 1; }
3% { opacity: 0.8; }
6% { opacity: 1; }
9% { opacity: 0.9; }
12% { opacity: 1; }
70% { opacity: 1; }
73% { opacity: 0.7; }
76% { opacity: 1; }
100% { opacity: 1; }
}
@keyframes fadeInOut {
0% { opacity: 0.7; }
50% { opacity: 1; }
100% { opacity: 0.7; }
}
.scene-content, .market-actions {
animation: fadeIn var(--transition-slow);
}
/* Оновлені стилі для кнопок купівлі/продажу */
.buy-btn, .sell-btn {
/* Структура та розміри */
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 80px;
height: 36px;
padding: 6px 12px;
margin: 0 4px;
position: relative;
overflow: visible;
/* Текст */
color: var(--accent-highlight);
font-family: var(--font-mono);
font-size: 0.9rem;
font-weight: 500;
letter-spacing: 0.5px;
text-shadow: 0 0 2px rgba(154, 59, 48, 0.8);
text-align: center;
text-transform: uppercase;
/* Анімація та переходи */
transition: all 0.25s ease-out;
cursor: pointer;
/* Додатковий декор */
clip-path: polygon(
0% 10%, 5px 0%,
calc(100% - 5px) 0%, 100% 10%,
100% calc(100% - 5px), calc(100% - 5px) 100%,
5px 100%, 0% calc(100% - 5px)
);
}
.buy-btn {
background: linear-gradient(135deg, var(--accent-blue), var(--bg-medium));
border: 1px solid var(--accent-primary);
box-shadow: var(--glow-neon-blue);
}
.buy-btn:hover {
background: linear-gradient(135deg, #9a3b30, var(--bg-medium));
box-shadow: var(--glow-neon-pink);
border-color: var(--accent-highlight);
color: var(--accent-white);
text-shadow: 0 0 2px rgba(255, 255, 255, 0.9);
transform: scale(1.05);
}
.sell-btn {
background: linear-gradient(135deg, var(--accent-primary), var(--bg-medium));
border: 1px solid var(--accent-secondary);
box-shadow: var(--glow-neon-pink);
}
.sell-btn:hover {
background: linear-gradient(135deg, #9a3b30, var(--bg-medium));
box-shadow: var(--glow-neon-pink);
border-color: var(--accent-highlight);
color: var(--accent-white);
text-shadow: 0 0 2px rgba(255, 255, 255, 0.9);
transform: scale(1.05);
}
/* Стилі для неактивних кнопок */
.buy-btn:disabled, .sell-btn:disabled {
opacity: 0.5;
cursor: not-allowed;
transform: none;
box-shadow: none;
animation: none;
color: var(--text-dark);
text-shadow: none;
}
/* Стилі для тексту "Not enough money" та "No items" */
.disabled {
color: var(--text-dark);
font-style: italic;
padding: 6px 12px;
opacity: 0.7;
text-shadow: none;
}
/* Анімації для ефектів */
@keyframes pulseNeon {
0% {
box-shadow:
0 0 10px rgba(154, 59, 48, 0.6),
0 0 20px rgba(154, 59, 48, 0.3),
inset 0 0 8px rgba(154, 59, 48, 0.2);
}
50% {
box-shadow:
0 0 12px rgba(0, 255, 102, 0.7),
0 0 24px rgba(0, 255, 102, 0.4),
inset 0 0 10px rgba(0, 255, 102, 0.3);
}
100% {
box-shadow:
0 0 12px rgba(154, 59, 48, 0.7),
0 0 24px rgba(154, 59, 48, 0.4),
inset 0 0 10px rgba(154, 59, 48, 0.3);
}
}
@keyframes scanline {
0% {
background-position: 200% 0;
}
100% {
background-position: -200% 0;
}
}
</style>
<<if !setup.canAffordService(State.variables, 'slaves')>>
<div class="scene-content rc-service-unavailable">
<header class="rc-service-header"><img src="assets/generic/persons/slave.png" alt=""><div><span>SAFE HOUSE / PRIVATE INTERACTION</span><h1>Slave</h1></div></header>
<div class="warning-message">You do not have enough stamina for sexual actions!</div>
<div class="choice-container">
<a class="button back-btn" data-passage="Slave">← Back</a>
</div>
</div>
<<else>>
<div class="scene-content rc-service-page" data-rc-service="slaves">
<header class="rc-service-header"><img src="assets/generic/persons/slave.png" alt=""><div><span>SAFE HOUSE / PRIVATE INTERACTION</span><h1>Slave</h1></div></header>
<div class="video-container">
<video class="scene-video" autoplay muted loop playsinline>
<source src="assets/videos/generic/slaves/blowjob (1).webm" type="video/webm">
</video>
</div>
<div class="service-menu">
<div class="menu-title">Choose an action:</div>
<div class="service-buttons">
<a class="service-btn" data-rc-video="blowjob" role="button" tabindex="0">Blowjob</a>
<a class="service-btn" data-rc-video="vaginal" role="button" tabindex="0">Vaginal</a>
<a class="service-btn" data-rc-video="anal" role="button" tabindex="0">Anal</a>
<a class="service-btn" data-rc-video="cum" role="button" tabindex="0">Finish</a>
</div>
<a class="button back-btn" data-passage="Safehouse">← Finish</a>
</div>
</div>
<</if>><<if $player.game_status == 1>>
<div class="status-container">
<h3 class="text-center">$player.name</h3>
<div class="status-row">
<span class="status-item">
<img src="assets/icons/money.svg" alt="Money" class="status-icon">
<span><<print $player.Money>></span>
</span>
<span class="status-item">
<img src="assets/icons/population.svg" alt="Population" class="status-icon">
<span><<print setup.basePopulation($player, $kenzie)>></span>
</span>
</div>
<div class="bars-container">
<div class="status-row">
<span class="stat-label">❤️</span>
<div class="bar-wrapper">
<progress id="playerHealthBar" @value="$player.health" @max="$player.max_health"></progress>
</div>
</div>
<div class="status-row">
<span class="stat-label">⚡</span>
<div class="bar-wrapper">
<progress id="playerStaminaBar" @value="$player.stamina" @max="$player.max_stamina"></progress>
</div>
</div>
</div>
</div>
<</if>>
<<set $player = {
name: "Alex",
party: { active: null },
health: 100,
max_health: 100,
stamina: 100,
energy_travel: { version: 1, region: "home", paid: 0, discovery: null },
max_stamina: 100,
current_month: "March",
current_year: 2037,
days_survived: 180,
inventory: [],
Provisions: 2,
base_food_shortage: false,
Raw_meat: 0,
Weak_vial: 0,
Fresh_food: 0,
Expedition_meal: 0,
Hearty_meal: 0,
hearty_hunts_left: 0,
Materials: 0,
Refined_materials: 0,
workshop_resident_workers: 0,
base_upgrades: { bedrooms: 0, slave_room: 0, resident_housing: 0, fields: 0, bedroom_order: [] },
field_generic_workers: 0,
fields_ready: false,
Medkit: 1,
infirmary_discovered: false,
Money: 100,
Pistol: 0,
Shotgun: 0,
Wrench: 1,
Knife: 0,
slaves: 0,
residents: 0,
Weapon_status: "none",
Weapon_damage: 2,
Weapon_icon: "none",
game_status: 0,
base_location: "Safehouse",
survivor_population: 1,
sophia_status: "unknown",
sophia_tied_unlocked: false,
sophia_tied_intro_pending: false,
emily_status: "unknown",
emily_lived_at_old_base: false,
lena_status: "unknown",
sarah_status: "unknown",
skyler_status: "unknown",
skyler_work: "none",
sarah_retreat_used: false,
sarah_retreat_pending: false,
lesana_status: "unknown",
sophia_work: "none",
emily_work: "none",
lena_work: "none",
sarah_work: "none",
wolf_mutant_damage: 25,
rat_mutant_damage: 10,
met_cory: false,
quests: [],
meat_quest_active: false,
slave_quest_active: false,
cory_dialogue_state: "initial",
current_location: ""
}>>
<<run setup.lastRestReport = null; setup.farmFieldsNotice = ''; setup.workshopNotice = ''>>
<<run setup.ensureGarage(State.variables)>>
<<run setup.ensureRadio(State.variables)>>
<<set $slave_quest_completed = 0>>
<<set $bunker_quest_progress = "none">>
<<set $kenzie = { met: false, offered: false, outcome: "none", saved_visits: 0, camp_visits: 0, romance: false, intimate_done: false, attitude: "friendly" }>>
<<set $mistral = {
Mistral_Basement: 3,
Mistral_Living_room: 1,
Mistral_Door_Kitchen: 2,
Mistral_Door_Kitchen_loot: 1
}>>
<<set $discovered_bunker = false>>
<<set $discovered_mistral_mansion = false>>
<<set $mistral_route_opened = false>>
<<set $discovered_farm = false>>
<<set $farm_recovery = { stage: 0, companion: null, known_before: null, on_site: false, threats: { house: false, barn: false }, materials: { timber: false, metal: false }, last_event: "" }>>
<<set $discovered_city_center = false>>
<<set $discovered_settlement = false>>
<<set $discovered_forest = false>>
<<set $discovered_lena = false>>
<<set $lastPassage = "Safehouse">>
<<run setup.ensureTraining(State.variables)>>
<<set $opening = { entered: false, room: false, water: false, food: false, complete: false }>>
<<if $player.game_status == 1>>
<a href="#" data-rc-open-inventory>Inventory</a>
<a href="#" data-rc-open-party>Party</a>
<a href="#" data-rc-open-quests>Quests</a>
<a href="#" data-rc-open-settings>Settings</a>
<</if>>
<a class="button back-btn" data-passage="Bar">Return to the bar</a>
<<if setup.mistralExplorationComplete(State.variables)>>
<div class="scene-content"><div class="scene-text"><h2>Mistral expedition complete</h2><p>The rooms are clear and the kitchen supplies have been collected. The code, <span class="rc-inscription">A2B4C977</span>, is recorded. There is nothing left to search here.</p></div><div class="choice-container"><a class="button back-btn" data-passage="Outside">Return Outside</a><a class="button back-btn" data-passage="Safehouse">Return home</a></div></div>
<<else>>
<<if !setup.enterEnergyDestination(State.variables, "Mistral_Mansion")>>
<p class="warning-message">This trip requires <<print setup.energyDestinationCost(State.variables, "Mistral_Mansion")>> energy. The return home is free.</p>
<a class="button" data-passage="Outside">Return to the map</a> <a class="button" data-passage="Safehouse">Return home</a>
<<else>>
<<if $bunker_quest_progress == "none" or !$mistral_route_opened>><<goto "Outside">><</if>>
<<if !$kenzie>><<set $kenzie = { met: true, offered: true, outcome: "none", saved_visits: 0, camp_visits: 0, romance: false, attitude: "friendly" }>><</if>>
<<if $kenzie.outcome == "decision_pending">><<goto "Kenzie_Final_Grab">><<elseif $kenzie.outcome == "injured_pending">><<goto "Kenzie_Try_Help">><</if>>
<<set $player.current_location = "Mistral_Mansion">>
<div class="scene-content"><div class="scene-text"><h2>Mistral Mansion</h2>
<p>The mansion rises beyond the old bunker ridge. Collapsed ground and bodies mark the approach.</p>
<<if $bunker_quest_progress == "Phase 1">>
<<if !$kenzie.gate_talk>><p>Kenzie joins you at the gate, shotgun loaded. “I checked the path twice. The holes have not moved. The things inside probably have.”</p>
<<else>><p>Kenzie waits by the open gate, watching the windows while you cross the broken ground. <<if $kenzie.attitude == "dry">>“I'll cover the doorway. You watch the ground.”<<else>>“Still here. Come on, I'll watch your step.”<</if>></p><</if>>
<<else>><p>The gate hangs open. The route you cleared is still passable.</p><</if>>
</div><div class="choice-container">
<<if $bunker_quest_progress == "Phase 1" && !$kenzie.gate_talk>>
<a class="button" data-passage="Kenzie_Gate_Joke">Joke with Kenzie</a><a class="button" data-passage="Kenzie_Gate_Focus">Stay focused</a>
<<else>><a class="button" data-passage="Mistral_Entered">Enter the mansion</a><</if>>
<a class="button back-btn" data-passage="Outside">Return Outside</a></div></div>
<</if>>
<</if>>
<<if !$kenzie>><<set $kenzie = { met: false, offered: false, outcome: "none", saved_visits: 0, camp_visits: 0, romance: false, attitude: "friendly" }>><</if>>
<<if $bunker_quest_progress == "Phase 1" && !$kenzie.met>><<set $kenzie.met = true>><<set $kenzie.offered = true>><</if>>
<<if $bunker_quest_progress == "END" || $bunker_quest_progress == "Complete">><<if $kenzie.outcome == "none">><<set $kenzie.outcome = "saved">><</if>><</if>>
<<if $kenzie.outcome == "saved">><<goto "Kenzie_Interact">>
<<elseif $kenzie.outcome == "camp_help" || $kenzie.outcome == "camp_slave" || $kenzie.outcome == "dead">><<goto "Residential_District">>
<<elseif $bunker_quest_progress == "Phase 1">><<goto "Kenzie_Quest_Talk">>
<<elseif $kenzie.offered>><<goto "Kenzie_Investigation">>
<<else>><<goto "Kenzie_First_Meeting">><</if>>
<<set $kenzie.met = true>><<set $kenzie.offered = true>><<set $kenzie.offer_visits = (Number($kenzie.offer_visits) || 0) + 1>><main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">RESIDENTIAL DISTRICT / INVESTIGATION</span><h1>An unmarked place</h1></div><span class="rc-encounter-location">KENZIE / MISTRAL</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Encounter</h2><<if $kenzie.offer_visits > 1>><p class="rc-encounter-event">Kenzie rests a hand on the folded map.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“Back for the map?”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Still thinking about that place?”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“Yeah. Same route, past the old bunker. I can get us to the gate. Beyond that, I’d rather have someone with me.”</p></div><<else>><p class="rc-encounter-event">Kenzie unfolds the worn map and pins one corner with an empty shell.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“There’s something built near the old bunker. Roofline, maybe an estate. I can see it from the ridge, but the ground between is full of holes and worse things.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Do you know what it is?”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“No. Not what happened there, either. I found a faded name on a survey marker: Mistral. Could be a mansion, could be the world’s least welcoming hotel.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“I can get us as far as the outer gate. Past that, I need someone watching my back. I’ll watch yours.”</p></div><p class="rc-encounter-event">She taps a possible route along the ridge, then looks up for your answer.</p><</if>></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button light-choice" data-passage="Kenzie_Quest_Accept">Offer to help</a><a class="button neutral-choice" data-passage="Residential_District">Leave it alone</a></div></nav></main>
<<if setup.mistralExplorationComplete(State.variables)>><<goto "Mistral_Mansion">><<else>>
<<if $bunker_quest_progress == "none">><<goto "Outside">><</if>>
<<if $kenzie && $kenzie.outcome == "decision_pending">><<goto "Kenzie_Final_Grab">><<elseif $kenzie && $kenzie.outcome == "injured_pending">><<goto "Kenzie_Try_Help">><</if>>
<<set $player.current_location = "Mistral_Entered">>
<div class="scene-content"><div class="scene-text"><h2>Mistral Mansion</h2>
<p>Dust coats the cracked floor. Most doorways have collapsed; two routes remain open.</p>
<<if $bunker_quest_progress == "Phase 1">>
<<if $mistral.Mistral_Basement <= 0 && $mistral.Mistral_Door_Kitchen <= 0>>
<<if !$kenzie.living_room_open_comment>><<set $kenzie.living_room_open_comment = true>><p>Kenzie pulls the bent support away from the Living Room door. She stops when something heavy shifts on the other side. “That wasn't the door.”</p><<else>><p>Kenzie keeps her shotgun on the Living Room door. “Something's still moving in there.”</p><</if>>
<<elseif $mistral.Mistral_Basement <= 0>>
<<if !$kenzie.basement_clear_comment>><<set $kenzie.basement_clear_comment = true>><p>Kenzie glances back toward the basement stairs. “Nothing left down there. Kitchen's still making noise.”</p><<else>><p>Kenzie checks the kitchen doorway. “Basement's clear. Let's finish the kitchen.”</p><</if>>
<<elseif $mistral.Mistral_Door_Kitchen <= 0>>
<<if !$kenzie.kitchen_clear_comment>><<set $kenzie.kitchen_clear_comment = true>><p>Kenzie points her shotgun toward the basement door. “Kitchen's clear. I heard something under the floor while we were in there.”</p><<else>><p>Kenzie watches the basement stairs. “Kitchen's clear. Something's still down there.”</p><</if>>
<<elseif !$kenzie.hall_intro>><<set $kenzie.hall_intro = true>><p>Kenzie sweeps the hall with her shotgun. <<if $kenzie.attitude == "dry">>“Two ways in. I'll cover whichever you take.”<<else>>“Kitchen's closer. Basement's darker. Your call.”<</if>></p><<else>><p>Kenzie checks both doorways. <<if $kenzie.attitude == "dry">>“I'll cover whichever you take.”<<else>>“Which one first?”<</if>></p><</if>>
<<if $mistral.Mistral_Basement > 0 || $mistral.Mistral_Door_Kitchen > 0>><p>The Living Room door is pinned by a bent support. The adjoining rooms need to be cleared before you can shift it safely.</p>
<<else>><p>The support is gone. The Living Room is open.</p><</if>>
<</if>>
</div><div class="choice-container"><a class="button" data-passage="Mistral_Basement">Basement</a><a class="button" data-passage="Mistral_Door_Kitchen">Kitchen</a>
<<if $mistral.Mistral_Basement <= 0 && $mistral.Mistral_Door_Kitchen <= 0>><a class="button danger-choice" data-passage="Mistral_Living_room">Living Room</a><</if>>
<a class="button back-btn" data-passage="Mistral_Mansion">Return to the gate</a></div></div>
<</if>>
<<if setup.mistralExplorationComplete(State.variables)>><<goto "Mistral_Mansion">><<else>>
<<if $mistral.Mistral_Basement > 0 || $mistral.Mistral_Door_Kitchen > 0>><<goto "Mistral_Entered">><</if>><<if $kenzie && $kenzie.outcome == "decision_pending">><<goto "Kenzie_Final_Grab">><<elseif $kenzie && $kenzie.outcome == "injured_pending">><<goto "Kenzie_Try_Help">><</if>><<set $player.current_location = "Mistral_Living_room">><<if $mistral.Mistral_Living_room > 0>><<goto "Scarbourg_Encounter">><</if>><div class="scene-content"><div class="scene-text"><h2>Mistral Mansion / Living Room</h2><p>The creature is gone. On the wall, behind a fallen frame, someone scratched <span class="rc-inscription">A2B4C977</span>. It may be a code for the old bunker, though the lock still has no power.</p></div><div class="choice-container"><a class="button back-btn" data-passage="Mistral_Entered">Return to the hall</a></div></div>
<</if>>
<<if setup.mistralExplorationComplete(State.variables)>><<goto "Mistral_Mansion">><<else>>
<<set $player.current_location = "Mistral_Door_Kitchen">>
<<if $mistral.Mistral_Door_Kitchen > 0>><<goto "Zombie_Encounter">><</if>>
<div class="scene-content"><div class="scene-text"><h2>Mistral Mansion / Kitchen</h2>
<p>Broken marble counters and overturned pans fill the quiet kitchen.</p>
<<if $mistral.Mistral_Door_Kitchen_loot == 0>>
<div class="rc-kitchen-loot-result" role="status"><span>You found / Cabinets</span><strong>10 Provisions</strong></div>
<<if $mistral.kitchen_loot_amount > 10>><<partyAssist "emily" `"+" + ($mistral.kitchen_loot_amount - 10) + " provisions"`>><</if>>
<<if $bunker_quest_progress == "Phase 1" && !$kenzie.kitchen_loot_comment>><<set $kenzie.kitchen_loot_comment = true>><p>Kenzie finds two intact tins behind a fallen shelf. “Okay. Coming here wasn't completely stupid.” She puts them in your bag.</p><</if>>
<</if>>
</div><div class="choice-container">
<<if $mistral.Mistral_Door_Kitchen_loot > 0>><<link "Search the kitchen cabinets" "Mistral_Door_Kitchen">><<set $mistral.kitchen_loot_amount = setup.collectPartyLoot(State.variables, "Provisions", 10)>><<set $mistral.Mistral_Door_Kitchen_loot = 0>><</link>><</if>>
<a class="button back-btn" data-passage="Mistral_Entered">Return to the hall</a></div></div>
<</if>>
<<if setup.mistralExplorationComplete(State.variables)>><<goto "Mistral_Mansion">><<else>>
<<set $player.current_location = "Mistral_Basement">>
<<if $mistral.Mistral_Basement > 0>><<goto "Zombie_Encounter">><</if>>
<div class="scene-content"><div class="scene-text"><h2>Mistral Mansion / Basement</h2>
<p>Spent shells lie near the stairs. Drag marks end at a broken drain; nothing else moves below.</p>
</div><div class="choice-container"><a class="button back-btn" data-passage="Mistral_Entered">Return to the hall</a></div></div>
<</if>>
<div class="scene-content"><div class="scene-text"><h2>Something in the dark</h2>
<div class="character-encounter"><div class="encounter-image"><img @src="setup.enemyEncounterPortrait(State.variables, 'zombie')" alt="Zombie" class="character-image"></div><div class="encounter-text">
<<if $player.current_location == "Mistral_Basement">>
<<if $mistral.Mistral_Basement >= 3>><p>A figure pulls itself out from beneath the stairs.</p>
<<elseif $mistral.Mistral_Basement == 2>><p>Another figure pushes through the hanging pipes at the far wall.</p>
<<else>><p>The last shape in the basement rises beside the boiler.</p><</if>>
<<if $bunker_quest_progress == "Phase 1" && !$kenzie.basement_contact_seen>><<set $kenzie.basement_contact_seen = true>><p>Kenzie touches your arm and points her shotgun beneath the stairs. “There.”</p><</if>>
<<elseif $player.current_location == "Mistral_Door_Kitchen">>
<<if $mistral.Mistral_Door_Kitchen >= 2>><p>A figure stumbles up behind the broken counters.</p>
<<else>><p>A second figure knocks a pan aside as it comes through the pantry.</p><</if>>
<<if $bunker_quest_progress == "Phase 1" && !$kenzie.kitchen_contact_seen>><<set $kenzie.kitchen_contact_seen = true>><p>Kenzie catches its reflection in a hanging pan. “Behind the counter.” She raises her shotgun beside you.</p><</if>>
<<else>><p>A twisted figure rushes from behind the debris.</p><</if>>
</div></div></div><div class="choice-container"><a class="button danger-choice" data-passage="Combat_Zombie">Fight</a>
<<if $player.current_location == "Mistral_Basement" || $player.current_location == "Mistral_Door_Kitchen">><a class="button" data-passage="Mistral_Entered">Retreat to the hall</a>
<<else>><a class="button" data-passage="Outside">Try to escape</a><</if>></div></div><<run setup.beginBasicCombat(State.variables, "zombie", "Zombie")>>
<<goto "Combat_Enemy_Turn">>
<<if $player.current_location == "Mistral_Basement">><<set $mistral.Mistral_Basement = Math.max(0, $mistral.Mistral_Basement - 1)>>
<<elseif $player.current_location == "Mistral_Door_Kitchen">><<set $mistral.Mistral_Door_Kitchen = Math.max(0, $mistral.Mistral_Door_Kitchen - 1)>><</if>>
<<if $bunker_quest_progress == "Phase 1" && ($player.current_location == "Mistral_Basement" || $player.current_location == "Mistral_Door_Kitchen")>>
<main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">MISTRAL / AFTERMATH</span><h1>The room falls quiet</h1></div><span class="rc-encounter-location">KENZIE / MISTRAL</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Shotgun support</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>After the fight</h2><<if $player.current_location == "Mistral_Basement">>
<<if $mistral.Mistral_Basement == 2>><p class="rc-encounter-event">The creature falls near the stairs. Kenzie works the shotgun action and watches the pipes.</p>
<<elseif $mistral.Mistral_Basement == 1>><p class="rc-encounter-event">The next creature drops beside the boiler. Kenzie keeps her barrel trained on the far wall.</p>
<<else>><p class="rc-encounter-event">The last body hits the basement floor. Kenzie waits until the scraping stops before she lowers her gun.</p><</if>>
<<else>>
<<if $mistral.Mistral_Door_Kitchen == 1>><p class="rc-encounter-event">The figure crashes against the counter. Kenzie covers the pantry while you catch your breath.</p>
<<else>><p class="rc-encounter-event">The pantry door bangs against the wall as the last creature falls. Kenzie checks the dark shelves.</p><</if>>
<</if>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>
<<if $player.current_location == "Mistral_Basement">>
<<if $mistral.Mistral_Basement == 2>>
<<if $kenzie.attitude == "dry">>“You're still standing. I've got the stairs.”<<else>>“You okay? Good. Stay close; I heard another one.”<</if>>
<<elseif $mistral.Mistral_Basement == 1>>“One more behind the boiler. I saw it move.”
<<else>>“Basement's clear.” She waits a moment. “Something heavier is moving upstairs.”<</if>>
<<else>>
<<if $mistral.Mistral_Door_Kitchen == 1>>“Another one in the pantry.” She steps between you and the doorway. “I'll draw it out.”
<<else>>“Kitchen's clear.” Kenzie listens, then lowers the barrel. “Let's see if anything survived in those cupboards.”<</if>>
<</if>>
</p></div></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list">
<<if $player.current_location == "Mistral_Basement">><a class="button" data-passage="Mistral_Basement">Continue through the basement</a>
<<else>><a class="button" data-passage="Mistral_Door_Kitchen">Continue through the kitchen</a><</if>>
</div></nav></main>
<<else>>
<main class="rc-combat-outcome rc-execution-page"><header class="rc-outcome-header"><span class="rc-ui-kicker">MISTRAL / AFTERMATH</span><h1>The room falls quiet</h1></header><div class="rc-outcome-grid"><figure class="rc-outcome-portrait"><img @src="setup.enemyCombatPortrait(State.variables)" alt="Defeated creature"></figure><section class="rc-outcome-report"><p>The creature stops moving.</p></section></div><nav class="rc-outcome-actions"><<if $player.current_location == "Mistral_Basement">><a class="button" data-passage="Mistral_Basement">Continue through the basement</a><<elseif $player.current_location == "Mistral_Door_Kitchen">><a class="button" data-passage="Mistral_Door_Kitchen">Continue through the kitchen</a><<else>><a class="button" data-passage="Outside">Return Outside</a><</if>></nav></main>
<</if>><<run setup.beginBasicCombat(State.variables, "scarbourg", "Scarbourg")>>
<<goto "Combat_Enemy_Turn">>
<div class="scene-content"><div class="scene-text"><h2>The Living Room</h2><div class="character-encounter"><div class="encounter-image"><img src="assets/generic/mutant/Scarbourg.png" alt="Scarbourg" class="character-image"></div><div class="encounter-text"><p>A huge creature uncurls from behind the ruined furniture, blocking the only clear way out.</p>
<<if $bunker_quest_progress == "Phase 1">><p>Kenzie steps in beside you, shotgun trained on its head. Her voice is quieter now. “That's what we heard through the wall. I'm ready.”</p><</if>>
</div></div></div><div class="choice-container"><a class="button danger-choice" data-passage="Combat_Scarbourg">Fight together</a><a class="button" data-passage="Mistral_Entered">Retreat to the hall</a></div></div><<if $player.current_location == "Mistral_Living_room" && $bunker_quest_progress == "Phase 1">><<goto "Kenzie_Final_Grab">><<else>><<set $mistral.Mistral_Living_room = 0>><div class="scene-content"><div class="scene-text"><h2>The creature is dead</h2></div><div class="choice-container"><a class="button" data-passage="Mistral_Living_room">Search the Living Room</a></div></div><</if>>
<<if setup.residentImprovised(State.variables, "kenzie")>><<goto "Farm_Bedrooms">><<else>>
<<if !setup.kenzieIntimacyAvailable(State.variables)>><<goto "Kenzie_Interact">><<else>>
<<if !setup.canAffordService(State.variables, 'kenzie')>>
<div class="scene-content rc-service-unavailable">
<header class="rc-service-header"><img src="assets/cast/kenzie.jpg" alt=""><div><span><<if $kenzie.outcome == "saved">>SETTLEMENT<<elseif $player.base_location == "Farm">>FARM<<else>>SAFEHOUSE<</if>> / PRIVATE INTERACTION</span><h1>Kenzie</h1></div></header>
<div class="warning-message">You do not have enough stamina for sexual actions!</div>
<div class="choice-container">
<a class="button back-btn" data-passage="Kenzie_Interact">← Back</a>
</div>
</div>
<<else>>
<<set $kenzie.intimate_done = true>>
<div class="scene-content rc-service-page" data-rc-service="kenzie">
<header class="rc-service-header"><img src="assets/cast/kenzie.jpg" alt=""><div><span><<if $kenzie.outcome == "saved">>SETTLEMENT<<elseif $player.base_location == "Farm">>FARM<<else>>SAFEHOUSE<</if>> / PRIVATE INTERACTION</span><h1>Kenzie</h1></div></header>
<div class="video-container">
<video class="scene-video" autoplay muted loop playsinline>
<source src="assets/videos/kenzie/blowjob.mp4" type="video/mp4">
</video>
</div>
<div class="service-menu">
<div class="menu-title">Choose an action:</div>
<div class="service-buttons">
<a class="service-btn" data-rc-video="blowjob" role="button" tabindex="0">Blowjob</a>
<a class="service-btn" data-rc-video="vaginal" role="button" tabindex="0">Vaginal</a>
<a class="service-btn" data-rc-video="anal" role="button" tabindex="0">Anal</a>
<a class="service-btn" data-rc-video="cum" role="button" tabindex="0">Finish</a>
</div>
<<if $kenzie.outcome == "saved">><a class="button back-btn" data-passage="Residential_District">← Finish</a><<else>><a class="button back-btn" data-passage="Kenzie_Interact">← Finish</a><</if>>
</div>
</div>
<</if>>
<</if>>
<</if>>
<<if $kenzie && $kenzie.outcome == "saved">><<goto "Kenzie_Settlement_Talk">><<elseif $kenzie && ($kenzie.outcome == "camp_help" || $kenzie.outcome == "camp_slave")>><<goto "Kenzie_Camp_Talk">><<else>><<goto "Residential_District">><</if>>
<main class="rc-credits-page">
<header class="rc-credits-header">
<div>
<p class="rc-credits-kicker">Risen City / Cast file</p>
<h1>Credits</h1>
<p class="rc-credits-intro">The faces behind the characters you meet in Risen City.</p>
</div>
<div class="rc-credits-tools">
<div class="rc-credits-count" aria-label="Ten cast members"><strong>10</strong>Cast members</div>
<a class="rc-menu-return" data-passage="MainMenu"><span aria-hidden="true">←</span> Return to menu</a>
</div>
</header>
<section class="rc-credits-list" aria-label="Cast credits">
<article class="rc-credit-card">
<figure class="rc-credit-photo"><img src="assets/cast/sophia.jpg" alt="Portrait of Sweetie Fox" loading="lazy"></figure>
<div class="rc-credit-info">
<span class="rc-credit-index">Cast / 01</span>
<span class="rc-credit-label">Character</span>
<h2 class="rc-credit-character">Sophia</h2>
<span class="rc-credit-rule" aria-hidden="true"></span>
<span class="rc-credit-label">Actress</span>
<strong class="rc-credit-actress">Sweetie Fox</strong>
</div>
</article>
<article class="rc-credit-card">
<figure class="rc-credit-photo"><img src="assets/cast/emily.jpg" alt="Portrait of Baby Kitten" loading="lazy"></figure>
<div class="rc-credit-info">
<span class="rc-credit-index">Cast / 02</span>
<span class="rc-credit-label">Character</span>
<h2 class="rc-credit-character">Emily</h2>
<span class="rc-credit-rule" aria-hidden="true"></span>
<span class="rc-credit-label">Actress</span>
<strong class="rc-credit-actress">Baby Kitten</strong>
</div>
</article>
<article class="rc-credit-card">
<figure class="rc-credit-photo"><img src="assets/cast/lena.jpg" alt="Portrait of Lena Paul" loading="lazy"></figure>
<div class="rc-credit-info">
<span class="rc-credit-index">Cast / 03</span>
<span class="rc-credit-label">Character</span>
<h2 class="rc-credit-character">Lena</h2>
<span class="rc-credit-rule" aria-hidden="true"></span>
<span class="rc-credit-label">Actress</span>
<strong class="rc-credit-actress">Lena Paul</strong>
</div>
</article>
<article class="rc-credit-card">
<figure class="rc-credit-photo"><img src="assets/cast/lesana.jpg" alt="Portrait of Lesana Mild" loading="lazy"></figure>
<div class="rc-credit-info">
<span class="rc-credit-index">Cast / 04</span>
<span class="rc-credit-label">Character</span>
<h2 class="rc-credit-character">Lesana</h2>
<span class="rc-credit-rule" aria-hidden="true"></span>
<span class="rc-credit-label">Actress</span>
<strong class="rc-credit-actress">Lesana Mild</strong>
</div>
</article>
<article class="rc-credit-card">
<figure class="rc-credit-photo"><img src="assets/cast/kenzie.jpg" alt="Portrait of Kenzie Reeves" loading="lazy"></figure>
<div class="rc-credit-info">
<span class="rc-credit-index">Cast / 05</span>
<span class="rc-credit-label">Character</span>
<h2 class="rc-credit-character">Kenzie</h2>
<span class="rc-credit-rule" aria-hidden="true"></span>
<span class="rc-credit-label">Actress</span>
<strong class="rc-credit-actress">Kenzie Reeves</strong>
</div>
</article>
<article class="rc-credit-card">
<figure class="rc-credit-photo"><img src="assets/cast/cory.jpg" alt="Portrait of Cory Chase" loading="lazy"></figure>
<div class="rc-credit-info">
<span class="rc-credit-index">Cast / 06</span>
<span class="rc-credit-label">Character</span>
<h2 class="rc-credit-character">Cory</h2>
<span class="rc-credit-rule" aria-hidden="true"></span>
<span class="rc-credit-label">Actress</span>
<strong class="rc-credit-actress">Cory Chase</strong>
</div>
</article>
<article class="rc-credit-card">
<figure class="rc-credit-photo"><img src="assets/cast/nikki.jpg" alt="Portrait of Nikki Brooks" loading="lazy"></figure>
<div class="rc-credit-info">
<span class="rc-credit-index">Cast / 07</span>
<span class="rc-credit-label">Character</span>
<h2 class="rc-credit-character">Nikki</h2>
<span class="rc-credit-rule" aria-hidden="true"></span>
<span class="rc-credit-label">Actress</span>
<strong class="rc-credit-actress">Nikki Brooks</strong>
</div>
</article>
<article class="rc-credit-card">
<figure class="rc-credit-photo"><img src="assets/cast/sarah.jpg" alt="Portrait of Shinaryen" loading="lazy"></figure>
<div class="rc-credit-info">
<span class="rc-credit-index">Cast / 08</span>
<span class="rc-credit-label">Character</span>
<h2 class="rc-credit-character">Skyler</h2>
<span class="rc-credit-rule" aria-hidden="true"></span>
<span class="rc-credit-label">Actress</span>
<strong class="rc-credit-actress">Shinaryen</strong>
</div>
</article>
<article class="rc-credit-card">
<figure class="rc-credit-photo"><img src="assets/cast/sarah-banks.jpg" alt="Portrait of Sarah Banks" loading="lazy"></figure>
<div class="rc-credit-info">
<span class="rc-credit-index">Cast / 09</span>
<span class="rc-credit-label">Character</span>
<h2 class="rc-credit-character">Sarah</h2>
<span class="rc-credit-rule" aria-hidden="true"></span>
<span class="rc-credit-label">Actress</span>
<strong class="rc-credit-actress">Sarah Banks</strong>
</div>
</article>
<article class="rc-credit-card">
<figure class="rc-credit-photo"><img src="assets/cast/bela.png" alt="Portrait of Abella Danger" loading="lazy"></figure>
<div class="rc-credit-info">
<span class="rc-credit-index">Cast / 10</span>
<span class="rc-credit-label">Character</span>
<h2 class="rc-credit-character">Bela</h2>
<span class="rc-credit-rule" aria-hidden="true"></span>
<span class="rc-credit-label">Actress</span>
<strong class="rc-credit-actress">Abella Danger</strong>
</div>
</article>
</section>
</main>
<main class="rc-search-page rc-explore-page rc-opening-page">
<header class="rc-search-header"><div><span class="rc-search-kicker">THE FIRST REPORTS / TELEVISION</span><h1>The first reports</h1></div><span class="rc-search-status">DAY ONE</span></header>
<section class="rc-search-body" aria-label="The first reports">
<div class="rc-opening-prose">
<p>The first report came from a cemetery outside the city. A groundskeeper said he had seen a man walking between the graves. The man had been buried two days earlier.</p>
<p>You watched the presenter call it an isolated incident. The next morning, there were reports from three more cities.</p>
<blockquote>“Authorities are investigating aggressive new entities found in recently deceased bodies. Stay indoors. Do not approach them. Further guidance will follow.”</blockquote>
<p>You left the television on. The guidance changed every day. The instruction to stay inside did not.</p>
</div>
</section>
<nav class="rc-search-actions"><div class="rc-search-action-list"><a class="button light-choice" data-passage="Opening_SixMonths">Keep watching</a></div></nav>
</main><main class="rc-search-page rc-explore-page rc-opening-page">
<header class="rc-search-header"><div><span class="rc-search-kicker">SIX MONTHS / INSIDE</span><h1>Six months later</h1></div><span class="rc-search-status">DAY 180</span></header>
<section class="rc-search-body" aria-label="Six months later">
<div class="rc-opening-prose">
<p>At first, they called it a virus. One of the last doctors you saw on television said it could not take hold in a living body. Death came first. Then the organism spread through the nervous system, using the brain and the rest of the body to make something new.</p>
<p>There was footage of a dog from an animal shelter. It had died that morning. When it moved again, its legs no longer bent the way a dog’s should.</p>
<p>People called them zombies, monsters, whatever word came quickest. The names did not change what they did. Every death could leave another aggressive creature behind. Roadblocks failed. Whole neighborhoods emptied. Emergency calls stopped going through. Then the broadcasts stopped too.</p>
<p>You stayed home while you had enough to eat and drink. Six months passed that way. Outside, the streets have grown quieter. Inside, your supplies are nearly gone. You take your bag and a wrench and open the door.</p>
</div>
</section>
<nav class="rc-search-actions"><div class="rc-search-action-list"><a class="button light-choice" data-passage="Opening_Safehouse">Go outside</a></div></nav>
</main><main class="rc-search-page rc-explore-page rc-opening-page">
<header class="rc-search-header"><div><span class="rc-search-kicker">FIRST DAY OUT / NEW SHELTER</span><h1>A place to stay</h1></div><span class="rc-search-status">DAY 180</span></header>
<section class="rc-search-body" aria-label="First day outside">
<<if !$opening.entered>>
<div class="rc-opening-prose">
<p>Cars still block the road. Weeds have pushed through the pavement, and most of the houses stand open to the weather. You keep moving whenever you hear something behind a wall.</p>
<p>Near the end of the street, you find a small house with a door that still closes. You check every room. No one is inside. It will need work, but you could sleep here.</p>
</div>
<<set $opening.entered = true>>
<<else>>
<div class="rc-opening-prose"><p>The house is still quiet. There is more to do before you can settle in.</p></div>
<</if>>
<div class="rc-opening-progress" aria-label="Safehouse progress">
<span class="<<if $opening.room>>is-ready<</if>>"><small>01 / ROOM</small><strong><<if $opening.room>>Ready<<else>>Needs work<</if>></strong></span>
<span class="<<if $opening.water>>is-ready<</if>>"><small>02 / WATER</small><strong><<if $opening.water>>Found<<else>>Needed<</if>></strong></span>
<span class="<<if $opening.food>>is-ready<</if>>"><small>03 / FOOD</small><strong><<if $opening.food>>Found<<else>>Needed<</if>></strong></span>
</div>
</section>
<nav class="rc-search-actions rc-opening-actions" aria-label="First day tasks">
<<if !$opening.room>><a class="button neutral-choice" data-passage="Opening_Room">Clear a room</a><</if>>
<<if !$opening.water>><a class="button neutral-choice" data-passage="Opening_Water">Look for water</a><</if>>
<<if !$opening.food>><a class="button neutral-choice" data-passage="Opening_Food">Search for food</a><</if>>
<<if $opening.room && $opening.water && $opening.food>><a class="button light-choice" data-passage="Intro">Count your supplies</a><</if>>
</nav>
</main><<if !$opening.room>><<set $opening.room = true>><</if>>
<main class="rc-search-page rc-explore-page rc-opening-page">
<header class="rc-search-header"><div><span class="rc-search-kicker">NEW SHELTER / FIRST DAY</span><h1>Clear a room</h1></div><span class="rc-search-status">ROOM READY</span></header>
<section class="rc-search-body"><div class="rc-opening-prose"><p>You sweep broken glass into a corner and make space to sleep. The front door holds when you push it shut. A board over the kitchen window moves in the wind; you mean to fix it before dark.</p></div></section>
<nav class="rc-search-actions"><div class="rc-search-action-list"><a class="button light-choice" data-passage="Opening_Safehouse">Return to the house</a></div></nav>
</main><<if !$opening.water>><<set $opening.water = true>><<set $player.Provisions += 1>><</if>>
<main class="rc-search-page rc-explore-page rc-opening-page rc-opening-supply-page">
<header class="rc-search-header"><div><span class="rc-search-kicker">NEARBY SHOPS / FIRST DAY</span><h1>Look for water</h1></div><span class="rc-search-status">SUPPLIES FOUND</span></header>
<section class="rc-search-body" aria-label="Supplies found">
<div class="rc-opening-prose"><p>Behind a closed shop, you find sealed bottles in an old delivery van. You carry what you can back to the house.</p></div>
<div class="rc-opening-recovered"><span class="rc-search-label">Recovered</span><div class="rc-search-find"><img src="assets/icons/water_bottle.svg" alt=""><strong>+1 Provisions</strong></div></div>
</section>
<nav class="rc-search-actions"><div class="rc-search-action-list"><a class="button light-choice" data-passage="Opening_Safehouse">Return to the house</a></div></nav>
</main><<if !$opening.food>><<set $opening.food = true>><<set $player.Provisions += 1>><</if>>
<main class="rc-search-page rc-explore-page rc-opening-page rc-opening-supply-page">
<header class="rc-search-header"><div><span class="rc-search-kicker">CORNER STORE / FIRST DAY</span><h1>Search for food</h1></div><span class="rc-search-status">SUPPLIES FOUND</span></header>
<section class="rc-search-body" aria-label="Supplies found">
<div class="rc-opening-prose"><p>The corner store has been picked over. Two tins are still wedged behind a fallen shelf, their lids intact. You put them in your bag and head home.</p></div>
<div class="rc-opening-recovered"><span class="rc-search-label">Recovered</span><div class="rc-search-find"><img src="assets/icons/canned_food.svg" alt=""><strong>+1 Provisions</strong></div></div>
</section>
<nav class="rc-search-actions"><div class="rc-search-action-list"><a class="button light-choice" data-passage="Opening_Safehouse">Return to the house</a></div></nav>
</main><main class="rc-encounter-page rc-sophia-work-for-stay-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">SAFEHOUSE / ENCOUNTER</span><h1>Sophia</h1><p>Terms of stay</p></div><span class="rc-encounter-location">FIRST CONTACT</span></header>
<aside class="rc-encounter-presence" aria-label="People present">
<img class="rc-encounter-scene-image" src="assets/cast/sophia.jpg" alt="Sophia at the safehouse">
<h2>Present</h2>
<div class="rc-encounter-person"><img src="assets/cast/sophia.jpg" alt=""><div><strong>Sophia</strong><span>Survivor</span></div></div>
<div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div>
<p class="rc-encounter-person-detail">The tin is back on the table. Sophia still has her bag over one shoulder.</p>
</aside>
<section class="rc-encounter-log" aria-label="Encounter">
<h2>Encounter</h2>
<p class="rc-encounter-event">You leave the tin between you and keep your voice firm.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“You can stay tonight. Tomorrow, you work here or go out for supplies. You owe me for the food you tried to take. If you take anything else without asking, you leave.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“All right.” She sets her bag by the wall. “I can work.”</p></div>
<<run setup.recruitResident($player, "sophia_status", "ally")>>
</section>
<nav class="choice-container rc-encounter-actions" aria-label="Available actions"><h2>Give her a first task</h2><div class="rc-encounter-action-list"><a class="button neutral-choice" data-passage="Sophia_Start_Scavenging">Start scavenging</a><a class="button light-choice" data-passage="Sophia_Cooks">Assign cooking</a></div></nav>
</main>
<main class="rc-combat-outcome rc-execution-page"><header class="rc-outcome-header"><span class="rc-ui-kicker">HOSTILE CONTACT / AFTERMATH</span><h1>Lena's pistol</h1></header>
<div class="rc-outcome-grid"><figure class="rc-outcome-portrait"><img src="assets/cast/lena.jpg" alt=""><figcaption>Execution of Lena</figcaption></figure><section class="rc-outcome-report">
<<if !$player.lena_pistol_taken>>
<<set $player.Pistol += 1>>
<<set $player.lena_pistol_taken = true>>
<p>You hurry around the car and pick up Lena's pistol. More metal rattles farther down the street. You put the gun in your bag and move before anything comes into view.</p>
<section class="loot rc-loot" aria-label="Recovered weapon"><header class="rc-loot-header"><span>RECOVERED / STREET</span><h3>Weapon secured</h3></header><ul><li><img src="assets/icons/pistol.svg" alt=""><span>Pistol</span><strong>+1</strong></li></ul></section>
<<else>>
<p>You've already taken Lena's pistol. The street is getting louder.</p>
<</if>>
</section></div>
<nav class="rc-outcome-actions"><a class="button" data-passage="City_Center">Return</a></nav>
</main>
<<set $kenzie.met = true>><main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">RESIDENTIAL DISTRICT / FIRST MEETING</span><h1>Kenzie</h1></div><span class="rc-encounter-location">KENZIE / MISTRAL</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Encounter</h2><p class="rc-encounter-event">Kenzie has a shotgun in pieces across her front step. She waves you over without looking up.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“If you came to complain about the noise, the spring did that on its own. I only screamed at it.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Is fixing guns part of your job here?”</p></div><div class="rc-encounter-statement" data-reveal-character="Kenzie"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“Scout work, fence repairs, finding the things people swear they didn’t lose. This is my day off. So, naturally, the gun broke.” She fits the spring back into place and grins. “Kenzie. You?”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“<<print $player.name>>.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“Good to meet you. If I find anything with your name on it, I’ll charge a very reasonable finder’s fee.”</p></div><p class="rc-encounter-event">She tests the action, then starts packing her tools. There is a folded map under her elbow.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Working on anything now?”</p></div></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button " data-passage="Kenzie_Investigation">Hear about her investigation</a><a class="button back-btn" data-passage="Residential_District">Leave her to her work</a></div></nav></main>
<<set $bunker_quest_progress = "Phase 1">><<set $discovered_bunker = true>><<set $kenzie.met = true>><<set $kenzie.offered = true>><main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">RESIDENTIAL DISTRICT / QUEST START</span><h1>A route to Mistral</h1></div><span class="rc-encounter-location">KENZIE / MISTRAL</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Encounter</h2><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I’ll go with you.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“That sounded dangerously like a yes. Start at the old bunker. The route past it leads to the estate. I’ll bring the shotgun and my best terrible jokes.”</p></div><p class="rc-encounter-event">Kenzie marks the bunker on your map. Follow the route from there to reach Mistral Mansion.</p></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button back-btn" data-passage="Residential_District">Return to the district</a></div></nav></main>
<main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">RESIDENTIAL DISTRICT / INVESTIGATION</span><h1>Kenzie</h1></div><span class="rc-encounter-location">KENZIE / MISTRAL</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Encounter</h2><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“I’ve got shells and a route. Still working on a joke good enough for whatever’s inside that place.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Save it for the walk.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“Deal. Take the route past the bunker. I’ll meet you at Mistral.”</p></div></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button back-btn" data-passage="Residential_District">Return to the district</a></div></nav></main>
<<set $kenzie.gate_talk = true>><<set $kenzie.attitude = "friendly">><main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">MISTRAL / APPROACH</span><h1>At the gate</h1></div><span class="rc-encounter-location">KENZIE / MISTRAL</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Encounter</h2><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“If the holes move, you shoot first.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“Deal. If the house moves, we both run.” She laughs, then checks your footing before leading you inside.</p></div></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button " data-passage="Mistral_Entered">Enter together</a></div></nav></main>
<<set $kenzie.gate_talk = true>><<set $kenzie.attitude = "dry">>
<main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">MISTRAL / APPROACH</span><h1>At the gate</h1></div><span class="rc-encounter-location">KENZIE / MISTRAL</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Encounter</h2><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Watch the entrances. We can talk inside.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“Got it.” She checks the shotgun and moves ahead to cover the doorway.</p></div></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button" data-passage="Mistral_Entered">Enter together</a></div></nav></main><<if !$kenzie>><<set $kenzie = { met: true, offered: true, outcome: "none", saved_visits: 0, camp_visits: 0, romance: false, attitude: "friendly" }>><</if>><<set $kenzie.outcome = "decision_pending">><main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">MISTRAL / LIVING ROOM</span><h1>One last movement</h1></div><span class="rc-encounter-location">KENZIE / MISTRAL</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Encounter</h2><p class="rc-encounter-event">The creature crashes into the furniture. You think it is finished. Its arm lashes out and catches Kenzie by the shoulder, dragging her against the broken frame.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“Hey. Little help?” She tries to bring the shotgun around, but the barrel is pinned.</p></div><p class="rc-encounter-event">You have one clear moment to act.</p></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button light-choice" data-passage="Kenzie_Stop_Monster">Stop the monster first</a><a class="button neutral-choice" data-passage="Kenzie_Try_Help">Rush to Kenzie (she gets hurt)</a><a class="button danger-choice" data-passage="Kenzie_Let_Die">Let her die</a></div></nav></main>
<<set $mistral.Mistral_Living_room = 0>><<set $bunker_quest_progress = "Complete">><<set $kenzie.outcome = "saved">><main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">MISTRAL / AFTERMATH</span><h1>Both of you make it out</h1></div><span class="rc-encounter-location">KENZIE / MISTRAL</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Encounter</h2><p class="rc-encounter-event">You strike before the creature can tighten its grip. It falls away from Kenzie and does not move again.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“I had it completely under control.” She looks at the marks on her jacket. “Okay. I had maybe ten percent of it under control.”</p></div><p class="rc-encounter-event">Her smile comes back slowly. She stays close while you search the wall and find a scratched code: A2B4C977. It may belong to the bunker, though its lock still has no power.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“I’ll head home. Come by when you’re back? I’d like to see you somewhere with fewer teeth.”</p></div></section>
<<if setup.mistralExplorationComplete(State.variables)>><p class="rc-encounter-event" role="status">Mistral expedition complete.</p><</if>><nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button back-btn" data-passage="Outside">Return Outside</a></div></nav></main>
<<set $mistral.Mistral_Living_room = 0>><<set $kenzie.outcome = "injured_pending">><main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">MISTRAL / AFTERMATH</span><h1>Too late</h1></div><span class="rc-encounter-location">KENZIE / MISTRAL</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Encounter</h2><p class="rc-encounter-event">You rush to pull Kenzie free. The creature's claws tear into her before you break its grip. You drive your weapon into it, and it finally stops moving. Kenzie drops to the floor, conscious and bleeding badly.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“You got it. Just... give me a second.” She tries to stand and cannot.</p></div><p class="rc-encounter-event">She cannot make the trip to the Settlement alone. Behind the fallen frame is a scratched code, A2B4C977, but there is no time to investigate the bunker now.</p></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button light-choice" data-passage="Kenzie_Help_Her">Help her</a><a class="button dark-choice" data-passage="Kenzie_Enslave">Offer to make her a slave</a></div></nav></main>
<<set $bunker_quest_progress = "Complete">><<run setup.recruitKenzie($player, $kenzie, "camp_help")>><main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">MISTRAL / AFTERMATH</span><h1>Bring Kenzie home</h1></div><span class="rc-encounter-location">KENZIE / MISTRAL</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Encounter</h2><p class="rc-encounter-event">You bind the wound, take her weight, and guide her out through the cleared rooms. At your safehouse, you give her a place to rest and fresh dressings.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“I know you tried. If you say ‘walk it off,’ I’m throwing a pillow at you. Once I can lift one.”</p></div><p class="rc-encounter-event">Kenzie joins your safehouse as an ally while she recovers.</p></section>
<<if setup.mistralExplorationComplete(State.variables)>><p class="rc-encounter-event" role="status">Mistral expedition complete.</p><</if>><nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button light-choice" data-passage="Safehouse">Take her to the safehouse</a></div></nav></main>
<<set $bunker_quest_progress = "Complete">><<run setup.recruitKenzie($player, $kenzie, "camp_slave")>><main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">MISTRAL / AFTERMATH</span><h1>Terms at the doorway</h1></div><span class="rc-encounter-location">KENZIE / MISTRAL</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Encounter</h2><p class="rc-encounter-event">Kenzie needs help to walk. You tell her you will take her to your safehouse only if she agrees to serve you there.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“That’s your price?” Her usual joke dies before it reaches her mouth. She looks at the blood soaking through the bandage. “I can’t get back alone. Fine. Get me out.”</p></div><p class="rc-encounter-event">You carry her to the safehouse. Kenzie joins the household as a slave. She remembers the condition you imposed.</p></section>
<<if setup.mistralExplorationComplete(State.variables)>><p class="rc-encounter-event" role="status">Mistral expedition complete.</p><</if>><nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button dark-choice" data-passage="Safehouse">Take her to the safehouse</a></div></nav></main>
<<set $mistral.Mistral_Living_room = 0>><<set $bunker_quest_progress = "Complete">><<set $kenzie.outcome = "dead">><main class="rc-sequence-page"><header class="rc-sequence-header"><span class="rc-ui-kicker">MISTRAL / AFTERMATH</span><h1>Kenzie</h1></header><div class="rc-sequence-grid"><figure class="rc-sequence-portrait"><img src="assets/cast/kenzie.jpg" alt="Kenzie"></figure><section class="rc-sequence-report"><p>You hold back. The creature drags Kenzie down. By the time it goes still, she is dead.</p><p>You find A2B4C977 scratched behind a fallen frame. The bunker lock still has no power.</p></section></div><<if setup.mistralExplorationComplete(State.variables)>><p class="rc-encounter-event" role="status">Mistral expedition complete.</p><</if>><nav class="rc-sequence-actions"><a class="button back-btn" data-passage="Outside">Leave the mansion</a></nav></main>
<<set $kenzie.saved_visits += 1>><main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">RESIDENTIAL DISTRICT / AFTER MISTRAL</span><h1>Kenzie</h1></div><span class="rc-encounter-location">KENZIE / MISTRAL</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Encounter</h2><<if $kenzie.saved_visits == 1>><p class="rc-encounter-event">Kenzie opens the door before you knock. The shotgun is on the table, cleaned and unloaded.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“I keep thinking about that thing grabbing me. Then I remember you were there.” She tries a grin. “Also, my jacket is ruined. Tragic.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“Thanks for getting us both home. Really.”</p></div><<elseif $kenzie.saved_visits == 2>><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“I saved you a seat. The one that isn’t under the leak.” She shifts her chair closer.</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“So... how exactly am I supposed to repay someone for saving my life?”</p></div><p class="rc-encounter-event">She watches your face, still smiling, but waits for your answer.</p><<else>><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“There you are. I was about to pretend I needed help with the shotgun again.”</p></div><<if $kenzie.romance>><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“You could stay a while. I’d like that.”</p></div><</if>><</if>></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><<b12TalkLinks>><<if $kenzie.saved_visits >= 2 && !$kenzie.romance>><a class="button light-choice" data-passage="Kenzie_Flirt">Flirt back</a><</if>><<if $kenzie.romance>><a class="button light-choice" data-passage="Kenzie_Sex">Be intimate</a><</if>><a class="button light-choice" data-passage="Kenzie_Talk_Menu">Talk</a><a class="button back-btn" data-passage="Kenzie_Interact">Back to Kenzie</a></div></nav></main>
<<set $kenzie.romance = true>><main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">RESIDENTIAL DISTRICT / KENZIE</span><h1>A little closer</h1></div><span class="rc-encounter-location">KENZIE / MISTRAL</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Encounter</h2><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“You could start by letting me visit without making up an excuse.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“Dangerous offer. I might actually take you up on it.”</p></div><p class="rc-encounter-event">She catches your hand for a moment, then lets you decide whether to stay.</p><p class="rc-encounter-event">Kenzie welcomes you back. More personal time together is now available when you visit.</p></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button back-btn" data-passage="Kenzie_Interact">Back to Kenzie</a></div></nav></main>
<main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">RESIDENTIAL DISTRICT / KENZIE</span><h1>What happened at Mistral</h1></div><span class="rc-encounter-location">KENZIE / MISTRAL</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Encounter</h2><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“I can still hear the kitchen pans falling over. You were trying to listen for monsters, and I was trying not to laugh.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“You kept shooting.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“Of course. Jokes are for after the reload.”</p></div></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button " data-passage="Kenzie_Talk_Menu">Continue talking</a><a class="button back-btn" data-passage="Residential_District">Return to the district</a></div></nav></main>
<<if setup.residentImprovised(State.variables, "kenzie")>><<goto "Farm_Bedrooms">><<else>>
<<if $kenzie.outcome != "camp_help" && $kenzie.outcome != "camp_slave">><<goto "Safehouse">><</if>><<set $kenzie.camp_visits += 1>><main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker"><<if $player.base_location == "Farm">>FARM / BEDROOMS<<else>>SAFEHOUSE / RECOVERY<</if>></span><h1>Kenzie</h1></div><span class="rc-encounter-location">KENZIE / MISTRAL</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Encounter</h2><<if $kenzie.outcome == "camp_help">><p class="rc-encounter-event"><<if $player.kenzie_bunker && $player.kenzie_bunker.complete>>Kenzie sets two cups on the table and moves her map off the spare chair.<<elseif $kenzie.recovery_days >= 3>><<if $player.base_location == "Farm">>Kenzie can move around the farmhouse again.<<else>>Kenzie can move around the safehouse again.<</if>> She still favors her injured shoulder.<<else>>Kenzie is sitting up now, her bandages changed. Her shotgun rests out of reach until her shoulder heals.<</if>></p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><<if $player.kenzie_bunker && $player.kenzie_bunker.complete>><p>“Sit. I found something that claims to be coffee.” She slides a cup toward you. “No carrying anything today.”</p><<elseif $kenzie.camp_visits == 1>><p>“Next time I suggest exploring a mansion, remind me the last one got one star.” She shifts, winces, then looks at you. “Thanks for getting me out. And for letting me stay.”</p><<elseif $kenzie.recovery_days < 3>><p>“I made it to the door today. Getting back was less impressive.” She nods toward the chair. “Stay a minute?”</p><<else>><p>“Made it to the kitchen without an escort.” She nudges a chair toward you with her foot. “Sit. I found something that claims to be coffee.”</p><</if>></div><<else>><p class="rc-encounter-event"><<if $kenzie.recovery_days >= 3>>Kenzie is back on her feet, but keeps her distance when you enter.<<else>>Kenzie sits near the window, keeping her injured shoulder still. She goes quiet when you enter.<</if>></p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><<if $kenzie.camp_visits == 1 && $kenzie.recovery_days < 3>><p>“The dressings are on the shelf. Go ahead, since you're here.” She keeps her eyes on the window. “Don't get comfortable. I haven't forgotten what you made me agree to.”</p><<elseif $kenzie.recovery_days < 3>><p>“You can change the bandage. I still can't reach it properly.” She pulls away as soon as you finish. “Leave the rest where I can get it.”</p><<else>><p>“If there's work, tell me what needs doing. I'll do it.” She folds her arms. “Doesn't mean I have to like you.”</p><</if>></div><</if>></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><<b12TalkLinks>><<if setup.fieldsUnboundsAvailable(State.variables)>><a class="button light-choice" data-passage="Kenzie_Talk_Menu">Talk</a><</if>><<if $kenzie.outcome == "camp_help" && $kenzie.camp_visits >= 2 && !$kenzie.romance>><a class="button light-choice" data-passage="Kenzie_Camp_Closer">Stay and get closer</a><</if>><a class="button back-btn" data-passage="Kenzie_Interact">Back to Kenzie</a></div></nav></main>
<</if>>
<<if setup.residentImprovised(State.variables, "kenzie")>><<goto "Farm_Bedrooms">><<else>>
<<if $kenzie.outcome != "camp_help">><<goto "Safehouse">><</if>><<set $kenzie.romance = true>><main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker"><<if $player.base_location == "Farm">>FARM / BEDROOMS<<else>>SAFEHOUSE / KENZIE<</if>></span><h1>An afternoon together</h1></div><span class="rc-encounter-location">KENZIE / MISTRAL</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Encounter</h2><p class="rc-encounter-event">You pull up a chair. Kenzie tells you how she learned to scout by taking wrong turns until she could find her way back. <<if $kenzie.recovery_days < 3>>When she laughs, she has to hold her side.<<else>>She draws one of the wrong turns on the table with her finger, then shakes her head.<</if>></p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>“I like you here. Next time, bring a story that doesn’t involve a monster trying to eat me.”</p></div></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button back-btn" data-passage="Kenzie_Interact">Back to Kenzie</a></div></nav></main>
<</if>>
<<if setup.residentImprovised(State.variables, "sophia")>><<goto "Farm_Bedrooms">><<else>>
<<if !$player.sophia_tied_unlocked>>
<<goto "Sophia_Interact">>
<<elseif !setup.canAffordService(State.variables, 'sophiaTied') && !$player.sophia_tied_intro_pending>>
<div class="scene-content rc-service-unavailable">
<header class="rc-service-header"><img src="assets/cast/sophia.jpg" alt=""><div><span>SAFE HOUSE / PRIVATE INTERACTION</span><h1>Sophia</h1></div></header>
<div class="warning-message">You do not have enough stamina for sexual actions!</div>
<div class="choice-container">
<a class="button back-btn" data-passage="Sophia_Interact">← Back</a>
</div>
</div>
<<else>>
<div class="scene-content rc-service-page" data-rc-service="sophiaTied">
<header class="rc-service-header"><img src="assets/cast/sophia.jpg" alt=""><div><span>SAFE HOUSE / PRIVATE INTERACTION</span><h1>Sophia</h1></div></header>
<div class="video-container">
<video class="scene-video" autoplay muted loop playsinline>
<source src="assets/videos/sophia/sophia tape/Blowjob_1.webm" type="video/webm">
</video>
</div>
<div class="service-menu">
<div class="menu-title">Choose an action:</div>
<div class="service-buttons">
<a class="service-btn" data-rc-video="blowjob" role="button" tabindex="0">Blowjob</a>
<a class="service-btn" data-rc-video="vaginal" role="button" tabindex="0">Vaginal</a>
<a class="service-btn" data-rc-video="finish" role="button" tabindex="0">Finish</a>
</div>
<<if $player.sophia_tied_intro_pending>>
<a class="button dark-choice" data-passage="Sophia_Tied_Intro_Finish">Continue</a>
<<else>>
<a class="button back-btn" data-passage="Sophia_Interact">← Back</a>
<</if>>
</div>
</div>
<</if>>
<</if>>
<<if setup.residentImprovised(State.variables, "sophia")>><<goto "Farm_Bedrooms">><<else>>
<<if !$player.sophia_tied_intro_pending>>
<<goto "Sophia_Interact">>
<<else>>
<<set $player.stamina = Math.max(0, $player.stamina - setup.adultActionCost(State.variables, "scene", 30))>>
<<set $player.sophia_status = "slave">>
<<set $player.sophia_tied_intro_pending = false>>
<<set $player.survivor_population ++>>
<main class="scene-content rc-service-page rc-service-cinematic"><header class="rc-service-header"><img src="assets/cast/sophia.jpg" alt=""><div><span>SAFE HOUSE / PRIVATE INTERACTION</span><h1>Sophia</h1></div></header>
<div class="video-container"><video id="tiedIntroFinishVideo" class="scene-video" autoplay muted loop playsinline><source src="assets/videos/sophia/sophia tape/Finish.webm" type="video/webm"></video></div>
<nav class="rc-cinematic-exit"><a class="button dark-choice" data-passage="Sophia_Aftermath">Continue</a></nav></main>
<</if>>
<</if>>
<<if $bunker_quest_progress == "Phase 1" or $bunker_quest_progress == "Complete" or $bunker_quest_progress == "END">>
<<set $discovered_mistral_mansion = true>><<set $mistral_route_opened = true>><<goto "Mistral_Mansion">>
<<else>>
<<goto "Bunker">>
<</if>>
<<if $player.stamina < 20>>
<p class="warning-message">Searching requires 20 energy.</p>
<a class="button" data-passage="City_Center">Return to City Center</a> <a class="button" data-passage="Safehouse">Return home</a>
<<else>>
<<set _citySearchStaminaBefore = $player.stamina>>
<<set $player.stamina -= 20>>
<<if random(0, 99) > 66>>
<<goto "Raider_Encounter">>
<<else>>
<main class="rc-search-page rc-city-search-page">
<header class="rc-search-header">
<div><span class="rc-search-kicker">CITY CENTER / LOOKING FOR SLAVES</span><h1>Street search</h1></div>
<span class="rc-search-status">NO CONTACT</span>
</header>
<section class="rc-search-body" aria-label="Street search result">
<p class="rc-search-label">People found</p>
<div class="rc-search-find rc-search-find-empty"><strong>Nothing found</strong></div>
<p class="rc-search-note">You check the storefronts and side streets. No one is there.</p>
</section>
<nav class="rc-search-actions" aria-label="Street search actions">
<span class="rc-search-cost">−<<= _citySearchStaminaBefore - $player.stamina>> energy · <<print $player.stamina>> left</span>
<div class="rc-search-action-list">
<<if $player.stamina gte 20>><a class="button" data-passage="City_Center_Search">Search again · 20 energy</a><</if>>
<a class="button rc-search-return" data-passage="City_Center">Return to City Center</a>
</div>
</nav>
</main>
<</if>>
<</if>>
<<if !setup.beginFarmRecovery(State.variables)>><<goto "Safehouse">><<else>>
<<set _farmKnown = $farm_recovery.known_before>>
<<set _sophiaHere = setup.farmHasSophia($player)>>
<main class="rc-encounter-page rc-farm-proposal-dialogue <<if !_sophiaHere>>rc-farm-inner-dialogue<</if>>">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">SAFEHOUSE / NEW PLAN</span><h1><<if _sophiaHere>>Sophia<<else>>The old map<</if>></h1><p>A larger place for the group</p></div><span class="rc-encounter-location">FARM / RECOVERY</span></header>
<<if _sophiaHere>>
<aside class="rc-encounter-presence" aria-label="People present">
<img class="rc-encounter-scene-image" src="assets/cast/sophia.jpg" alt="Sophia at the safehouse">
<h2>Present</h2>
<div class="rc-encounter-person"><img src="assets/cast/sophia.jpg" alt=""><div><strong>Sophia</strong><span>Resident</span></div></div>
<div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div>
<p class="rc-encounter-person-detail">Bedrolls have pushed into the hall. The kitchen shelves are crowded with supplies.</p>
</aside>
<<else>>
<aside class="rc-encounter-presence" aria-label="The player alone">
<img class="rc-encounter-scene-image" src="assets/Location/banners/safehouse.webp" alt="The crowded safehouse">
<h2>Present</h2>
<div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>Alone</span></div></div>
<p class="rc-encounter-person-detail">Bedrolls crowd the doorway. The kitchen cupboards are packed with food, medicine and tools.</p>
</aside>
<</if>>
<section class="rc-encounter-log" aria-label="<<if _sophiaHere>>Conversation<<else>>Private thoughts<</if>>">
<h2><<if _sophiaHere>>Conversation<<else>>Private thoughts<</if>></h2>
<<if _sophiaHere>>
<<if $player.sophia_status == "slave" || ($player.sophia_status == "starving" && $player.sophia_status_before == "slave")>>
<p class="rc-encounter-event">Sophia sees you in the hall and comes straight over, holding a folded map against her chest.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“Master, I was looking for you. I found this behind the shelves.”</p></div>
<<if $player.sophia_status == "starving">>
<p class="rc-encounter-event">She steadies herself against the doorframe before opening it.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“You can barely stand.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“I can. I... thought you should see the map right away.”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“What is it?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“An old map. I... thought you should see it as soon as I found it.”</p></div>
<</if>>
<p class="rc-encounter-event">She smooths the folds on the table, then pulls her hands back.</p>
<<if _farmKnown>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I know that farm. It's outside the city.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“Yes. I didn't know if you'd noticed how much land there is.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“We don't know if the buildings can be used.”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“A farm?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“Past the outer ruins. This road leads to it.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Could be overrun by now.”</p></div>
<</if>>
<p class="rc-encounter-event">Sophia rubs at the hem of her shirt without looking up.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“Maybe. The sleeping room is full. I moved the supplies this morning, but there was nowhere to put them.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“And the farm?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“If the house is still there, perhaps everyone could fit. I thought... the fields might help with food, later.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“We'd have to clear it and make the house safe first.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“And fix the water? The fence?” She glances up, then lowers her eyes. “I know it won't be ready when we get there.”</p></div>
<<if $player.sophia_status == "starving">>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“May I come with you, master? I can't carry much today, but I can keep watch.”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“May I come with you, master? I can carry the map and keep watch.”</p></div>
<</if>>
<<else>>
<p class="rc-encounter-event">Sophia catches up with you in the hall, a folded map in her hand.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“Hey. I found this behind the shelves. I think you should see it too.”</p></div>
<<if $player.sophia_status == "starving">>
<p class="rc-encounter-event">She leans against the doorframe, the map still in her hand.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“You need to sit down.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“I will. Just look at this first.”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“What did you find?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“An old map. Here, look.”</p></div>
<</if>>
<p class="rc-encounter-event">She opens it across the kitchen table and puts a finger on the edge of the city.</p>
<<if _farmKnown>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“That's the farm outside the city. I know where it is.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“Then you know it's bigger than this place. The map even shows fields.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“We don't know what shape it's in.”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“A farm? I didn't know there was one that close.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“Neither did I. This road goes past the outer ruins and straight to it.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“That map's old.”</p></div>
<</if>>
<p class="rc-encounter-event">Sophia looks toward the crowded hall.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“I know. I had to move a bedroll just to get into the kitchen. We can't keep squeezing people in here.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“You think we could move there?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“If the house is still standing. We'd have to make it safe, fix what's broken, get water. The fence too.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“That's a lot of work.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“It is. But there'd be room for everyone. And if the fields are any good, we might grow some of our food.”</p></div>
<<if $player.sophia_status == "starving">>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“I want to come with you. I can read the map and keep watch. Just don't count on me to carry much today.”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“I want to come with you. We can see what we're dealing with together.”</p></div>
<</if>>
<</if>>
<<else>>
<p class="rc-encounter-event">You squeeze past a bedroll and knock your shoulder against a stack of supplies.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You / thought</span></div><p>Damn it. I can't even cross the kitchen without hitting something.</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You / thought</span></div><p>This place was enough when I lived alone. If I bring anyone else home, where would they sleep?</p></div>
<p class="rc-encounter-event">You start sorting the food, medicine and tools in the cupboard. At the very back, behind the supplies, you find a folded map of the region. You open it on the table.</p>
<<if _farmKnown>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You / thought</span></div><p>That's the farm outside the city. Why didn't I think of this before? Idiot.</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You / thought</span></div><p>A whole house, a barn, fields... We'd have room for everyone. Maybe even the next person I bring home.</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You / thought</span></div><p>A farm? This close? I had no idea.</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You / thought</span></div><p>A house, a barn, fields... We could all fit there. Maybe even have room for the next person I find.</p></div>
<</if>>
<p class="rc-encounter-event">You catch yourself smiling. Then you notice how old the map is.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You / thought</span></div><p>Hold on. I don't know what's waiting there now. It could be full of infected. I can't take everyone into that.</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You / thought</span></div><p>But if I clear it, fix the house and get the water working... maybe it's worth the trouble.</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You / thought</span></div><p>And those fields might even help feed us someday.</p></div>
<</if>>
<p class="rc-encounter-event rc-farm-dialogue-quest">New mission: Recover the Farm. Inspect the property, remove its threats and prepare it before moving the group.</p>
</section>
<nav class="choice-container rc-encounter-actions" aria-label="Available actions"><h2><<if _sophiaHere>>Will Sophia come?<<else>>What will you do?<</if>></h2><div class="rc-encounter-action-list">
<<if _sophiaHere>>
<a class="button light-choice" data-passage="Farm_With_Sophia">Yes, come with me</a>
<a class="button neutral-choice" data-passage="Farm_Without_Sophia">No, stay here</a>
<<else>>
<a class="button light-choice" data-passage="Farm_Without_Sophia">Take the map and plan the trip</a>
<</if>>
</div></nav>
</main>
<</if>>
<<set _farm = setup.ensureFarmRecovery(State.variables)>>
<<if _farm.stage == 1 && _farm.companion === null>><<goto "Farm_Proposal">>
<<elseif _farm.stage == 0 || _farm.stage == 10 || _farm.stage == 1>><<goto "Safehouse">>
<<elseif _farm.on_site>><<goto "Farm">>
<<else>><<goto "Outside">><</if>>
<<if $farm_recovery && $farm_recovery.stage == 10 && $player.base_location == "Farm">>
<main class="rc-farm-mission rc-farm-claim">
<header><span class="rc-ui-kicker">FARM / NEW HOME</span><h1>The Farm</h1></header>
<section class="rc-farm-mission-body">
<p>The last load comes through the gate. Beds go into the dry rooms; water and provisions are carried to the kitchen. You bar the gate behind the group.</p>
<<if setup.farmSophiaPresent(State.variables)>>
<<if setup.farmSophiaRole($player) == "slave">>
<p>Sophia shows the others where to put the water and beds. Once everyone is inside, she stops beside you in the kitchen.</p>
<p>“It holds, master. The rooms are ready.” She looks toward the voices moving through the house. “Thank you for letting me help bring them here.”</p>
<<else>>
<p>Sophia directs the last bed into the room you cleared together. When the others settle in, she sets the old map on a shelf and comes back to your side.</p>
<p>“We actually did it.” She looks toward the open kitchen door. “Everyone's inside. And I'm never lifting that bed again.”</p>
<</if>>
<<else>>
<p>You set the old map on a shelf. Everyone is under a roof now. The fields behind the barn still need work.</p>
<</if>>
<div class="rc-farm-mission-notice"><strong>Mission complete · The Farm is your base</strong><span>Take a look at the fields behind the barn.</span></div>
</section>
<nav class="rc-farm-mission-actions"><a class="button" data-passage="Safehouse">Enter your new home</a></nav>
</main>
<<else>><<goto "Safehouse">><</if>>
<<run setup.chooseFarmCompanion(State.variables, 'yes')>>
<<goto "Safehouse">>
<<run setup.chooseFarmCompanion(State.variables, 'no')>>
<<goto "Safehouse">>
<main class="rc-notebook" aria-label="Field notebook"></main><<set _farm = setup.ensureFarmRecovery(State.variables)>>
<<if _farm.stage < 2 || _farm.stage > 9 || !_farm.on_site>>
<<goto "Farm_Recovery">>
<<else>>
<<set _tasks = setup.farmWorkTasks(_farm)>>
<<set _farm.reward_private_pending = false>>
<<set _sophiaWorking = setup.farmSophiaPresent(State.variables)>>
<<set _threatWound = _sophiaWorking ? 4 : 8>>
<<set _workDone = setup.farmCompletedWork(_farm)>>
<<if !_farm.moments>><<set _farm.moments = {}>><</if>>
<main class="rc-farm-mission rc-farm-work">
<header>
<span class="rc-ui-kicker">FARM / RECOVERY PLAN</span>
<h1>Work on the farm</h1>
<p>Make the property safe before bringing everyone here.</p>
</header>
<section class="rc-farm-mission-body">
<<if _farm.last_event>><p class="rc-farm-last-event" role="status"><<print _farm.last_event>></p><</if>>
<<if _sophiaWorking && _workDone == 3 && !_farm.moments.three>>
<<set _farm.moments.three = true>>
<div class="rc-farm-sophia-moment">
<div class="rc-narration rc-stage">Sophia sets a dented tin on the kitchen shelf while you check the barn door. She has cleared space for the food you'll bring back.</div>
<<if setup.farmSophiaRole($player) == "slave">>
<div class="dialogue-line"><span class="speaker-label">(Sophia)</span> “I organized the kitchen, master. There's room to store food now.”</div>
<div class="dialogue-line"><span class="speaker-label">(You)</span> “That helps. I'll take care of the rooms.”</div>
<div class="dialogue-line"><span class="speaker-label">(Sophia)</span> “I'll help you when you're ready.”</div>
<<else>>
<div class="dialogue-line"><span class="speaker-label">(Sophia)</span> “Got the kitchen organized. There's finally somewhere to put food.”</div>
<div class="dialogue-line"><span class="speaker-label">(You)</span> “Good. I'll tackle the rooms next.”</div>
<div class="dialogue-line"><span class="speaker-label">(Sophia)</span> “I'll give you a hand.”</div>
<</if>>
</div>
<<elseif _sophiaWorking && _workDone == 6 && !_farm.moments.six>>
<<set _farm.moments.six = true>>
<div class="rc-farm-sophia-moment">
<div class="rc-narration rc-stage">With the rooms cleared and the timber and metal stacked outside, Sophia kneels beside the pump. She pulls a bent pin from the handle while you sort boards for the roof.</div>
<<if setup.farmSophiaRole($player) == "slave">>
<div class="dialogue-line"><span class="speaker-label">(Sophia)</span> “Could you hold this steady, master? I can fit the new strip.”</div>
<div class="dialogue-line"><span class="speaker-label">(You)</span> “Here.”</div>
<div class="dialogue-line"><span class="speaker-label">(Sophia)</span> “Thank you. Try the handle now.”</div>
<<else>>
<div class="dialogue-line"><span class="speaker-label">(Sophia)</span> “Found it. Hand me that short strip?”</div>
<div class="dialogue-line"><span class="speaker-label">(You)</span> “Will it hold?”</div>
<div class="dialogue-line"><span class="speaker-label">(Sophia)</span> “Only one way to find out. Go on, try the handle.”</div>
<</if>>
</div>
<<elseif _sophiaWorking && _workDone == 9 && !_farm.moments.nine>>
<<set _farm.moments.nine = true>>
<div class="rc-farm-sophia-moment">
<div class="rc-narration rc-stage">You carry the last water container inside. Sophia has already laid out the beds and wiped the dust from the kitchen shelves. She leans on the doorframe, tired and smiling at the clear floor.</div>
<<if setup.farmSophiaRole($player) == "slave">>
<div class="dialogue-line"><span class="speaker-label">(Sophia)</span> “I can bring the others now, master. Everything's ready.”</div>
<div class="dialogue-line"><span class="speaker-label">(You)</span> “You did a lot of this.”</div>
<div class="dialogue-line"><span class="speaker-label">(Sophia)</span> “I'm glad I could help. Could we stay a moment before we go?”</div>
<<else>>
<div class="dialogue-line"><span class="speaker-label">(Sophia)</span> “Look at that. You can cross the kitchen without tripping over a bedroll.”</div>
<div class="dialogue-line"><span class="speaker-label">(You)</span> “You're exhausted.”</div>
<div class="dialogue-line"><span class="speaker-label">(Sophia)</span> “So are you. Stay a minute? There's something I want to tell you.”</div>
<</if>>
</div>
<</if>>
<div class="rc-farm-work-layout">
<div class="rc-farm-work-plan">
<div class="rc-farm-work-progress-label"><span>Recovery progress</span><span><<print _workDone>> / 9 tasks</span></div>
<div class="rc-farm-work-progress" role="progressbar" aria-label="Farm recovery" @aria-valuenow="_workDone" aria-valuemin="0" aria-valuemax="9"><span @style="'width: ' + ((_workDone / 9) * 100) + '%'"></span></div>
<ol class="rc-farm-work-list">
<<for _task range _tasks>>
<li @class="'rc-farm-work-task ' + (_task.done ? 'is-complete' : _task.available ? 'is-current' : 'is-future')">
<b class="rc-farm-work-mark" aria-hidden="true"><<if _task.done>>✓<<elseif _task.available>>·<<else>>×<</if>></b>
<span class="rc-farm-work-copy"><strong><<print _task.label>></strong><<if _task.done>><small>Done</small><<elseif _task.cost>><small><<print _task.cost>> energy</small><</if>></span>
<span @class="'rc-farm-work-status ' + (_task.done ? 'is-complete' : _task.available ? 'is-current' : '')"><<if _task.done>>Complete<<elseif _task.available>>Available<<else>>Waiting<</if>></span>
</li>
<</for>>
</ol>
</div>
<aside class="rc-farm-work-aside">
<div class="rc-farm-work-base-status">
<span class="rc-ui-kicker">Base status</span>
<div><span>Residents</span><strong><<print setup.farmResidentCount($player, $kenzie)>></strong></div>
<div><span>Provisions</span><strong><<print $player.Provisions>></strong></div>
<div><span>Energy</span><strong><<print $player.stamina>></strong></div>
<div><span>Health</span><strong><<print $player.health>></strong></div>
</div>
<nav class="rc-farm-mission-actions rc-farm-work-actions" aria-label="Farm work actions">
<<if _farm.stage == 9>>
<<set _rooms = setup.bedroomCapacity(State.variables)>>
<<set _movingResidents = setup.presentBedroomResidents(State.variables).length>>
<p class="rc-farm-alert">The Farm has <<print _rooms>> private bedrooms for <<print _movingResidents>> characters. Your room is separate.<<if _movingResidents > _rooms>> <<print _movingResidents - _rooms>> will use temporary accommodation and cannot interact, receive tasks or join your Party until you expand Bedrooms at the Workshop. The next expansion adds 2 rooms for <<print setup.baseUpgradeCost(State.variables, 'bedrooms')>> Materials.<</if>></p>
<</if>>
<<if _farm.stage == 2>>
<<link "Survey the property · 10 energy" "Farm_Work">><<run setup.advanceFarmRecovery(State.variables, 'survey')>><</link>>
<<elseif _farm.stage == 3>>
<<if !_farm.threats.house>><<link `"Clear the farmhouse · 15 energy · " + _threatWound + " health"` "Farm_Work">><<run setup.advanceFarmRecovery(State.variables, 'house')>><</link>><</if>>
<<if !_farm.threats.barn>><<link `"Clear the barn · 15 energy · " + _threatWound + " health"` "Farm_Work">><<run setup.advanceFarmRecovery(State.variables, 'barn')>><</link>><</if>>
<<if $player.health <= _threatWound>><p class="rc-farm-alert">You need more than <<print _threatWound>> health to clear a threat. Rest before returning.</p><</if>>
<<elseif _farm.stage == 4>>
<<link "Clean the rooms and paths · 20 energy" "Farm_Work">><<run setup.advanceFarmRecovery(State.variables, 'clean')>><</link>>
<<elseif _farm.stage == 5>>
<<if !_farm.materials.timber>><<link "Recover timber · 10 energy" "Farm_Work">><<run setup.advanceFarmRecovery(State.variables, 'timber')>><</link>><</if>>
<<if !_farm.materials.metal>><<link "Recover metal · 10 energy" "Farm_Work">><<run setup.advanceFarmRecovery(State.variables, 'metal')>><</link>><</if>>
<<elseif _farm.stage == 6>>
<<link "Repair the house, barn and pump · 20 energy" "Farm_Work">><<run setup.advanceFarmRecovery(State.variables, 'repair')>><</link>>
<<elseif _farm.stage == 7>>
<<link "Secure the perimeter · 15 energy" "Farm_Work">><<run setup.advanceFarmRecovery(State.variables, 'secure')>><</link>>
<<elseif _farm.stage == 8>>
<<link "Prepare for the group · 15 energy" "Farm_Work">><<run setup.advanceFarmRecovery(State.variables, 'prepare')>><</link>>
<<else>>
<<if _sophiaWorking && !_farm.reward_seen>>
<a class="button" data-passage="Farm_Sophia_Prize">Receive Your Prize</a>
<<else>>
<<link "Move the group to the Farm" "Farm_Claim">><<run setup.advanceFarmRecovery(State.variables, 'claim')>><</link>>
<</if>>
<</if>>
<a class="button rc-farm-work-back" data-passage="Farm">Back to the farm</a>
</nav>
</aside>
</div>
</section>
</main>
<</if>>
<<if !setup.enterEnergyDestination(State.variables, "Old_Safehouse")>>
<p class="warning-message">This trip requires <<print setup.energyDestinationCost(State.variables, "Old_Safehouse")>> energy. The return home is free.</p>
<a class="button" data-passage="Outside">Return to the map</a> <a class="button" data-passage="Safehouse">Return home</a>
<<else>>
<<if $player.base_location != "Farm">><<goto "Safehouse">><<else>>
<<set $player.current_location = "Old Safehouse">>
<<if setup.sarahAtOldSafehouse($player) and !setup.sarahHouseAccessible($player)>><<goto "Sarah_Talk">><<else>>
<div class="scene-content">
<div class="scene-text">
<h2>Old Safehouse</h2>
<p>The small house still stands on the street where you first found shelter. The front door closes behind you, and the board over the kitchen window still holds.</p>
<p>The group took what it needed to the farm. The kitchen is quiet.</p>
<<if setup.sarahHouseAccessible($player)>><p>Sarah's things are beside the kitchen door. She has made a place for herself here.</p><</if>>
<<if setup.sarahLivesAtBase($player)>><p>Sarah is at your base now. Her things are no longer beside the kitchen door.</p><</if>>
</div>
<<if setup.sarahHouseAccessible($player)>>
<section class="residents-container rc-old-safehouse-people" aria-label="People Here">
<h3>People Here</h3>
<div class="characters-grid">
<div class="mini-character-card"><img src="assets/cast/sarah-banks.jpg" alt="Sarah" class="mini-portrait"><div class="mini-info"><span class="char-name">Sarah</span><span class="char-status">Resident</span><a class="mini-btn" data-passage="Sarah_Interact">Interact</a></div></div>
</div>
</section>
<</if>>
<<if $player.emily_locket && $player.emily_locket.stage == "search">>
<section class="rc-place-events" aria-label="New event">
<h3 class="rc-place-label">HAPPENING NOW</h3>
<div class="rc-event-list"><a class="rc-event-link" data-passage="Emily_Locket_Search"><span class="rc-event-kicker">OLD SAFEHOUSE / EMILY</span><strong>Search for the collar</strong><span class="rc-event-arrow" aria-hidden="true">→</span></a></div>
</section>
<</if>>
<div class="choice-container">
<a class="button" data-passage="Outside">Return</a>
</div>
</div>
<</if>>
<</if>>
<</if>>
<<set _farm = setup.ensureFarmRecovery(State.variables)>>
<<if _farm.stage != 9 || !_farm.on_site || !setup.farmSophiaPresent(State.variables)>>
<<goto "Farm_Recovery">>
<<else>>
<<set _closeness = setup.sophiaCloseness($player)>>
<<set _farm.reward_seen = true>>
<main class="rc-encounter-page rc-farm-prize">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">FARM / RECOVERY</span><h1>Sophia</h1><p>A moment before the others arrive</p></div><span class="rc-encounter-location">FARM / NINE JOBS DONE</span></header>
<aside class="rc-encounter-presence" aria-label="People present">
<img class="rc-encounter-scene-image" src="assets/cast/sophia.jpg" alt="Sophia at the farm">
<h2>Present</h2>
<div class="rc-encounter-person"><img src="assets/cast/sophia.jpg" alt=""><div><strong>Sophia</strong><span>Worked beside you</span></div></div>
<div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div>
<p class="rc-encounter-person-detail">The beds are ready inside. The gate can be barred. The group can come when you return for them.</p>
</aside>
<section class="rc-encounter-log" aria-label="Conversation">
<h2>Conversation</h2>
<p class="rc-encounter-event">Sophia sits on the porch step and brushes dirt from her hands. She makes room for you beside her.</p>
<<if setup.farmSophiaRole($player) == "slave">>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“Thank you for bringing me, master. You could have told me to stay home.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“You stayed for every job. I saw how hard you worked.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“I wanted to. This place reminded me of where I grew up.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“My parents had a little farm, before I went to the city to study medicine. Dad used to make me help whenever something broke. I complained every time.”</p></div>
<p class="rc-encounter-event">She looks toward the fields, then at the dirt under her nails.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“I kept thinking about them while we worked. It was hard, but I liked seeing these rooms come back. I liked doing it with you.”</p></div>
<<if _closeness >= 2>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“I feel useful here. And when you ask me to stay close, I want to. I'm happy serving you, master. I'm glad I get to be part of what you're building.”</p></div>
<p class="rc-encounter-event">She leaves her hand beside yours on the step.</p>
<<elseif _closeness == 1>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“I'm still getting used to things between us. But I was happy working for you today. I want to help make this a home.”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“I'm glad I could serve you here, master. I hope you'll let me keep helping when everyone moves in.”</p></div>
<</if>>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“Thanks for letting me come. I know I asked, but I didn't know we'd still be at it after all this time.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“You could've gone back.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“I didn't want to. My parents had a little farm. I grew up there before I went to the city to study medicine. Dad had a new job for me every time I walked outside. I used to count the days until I could leave.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“Working here made me think about home. My back still hurts, but seeing that kitchen ready for people again... I liked it. I liked doing it with you.”</p></div>
<<if _closeness >= 2>>
<p class="rc-encounter-event">She turns toward you instead of looking away.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“I think I'm falling for you. That feels strange to say out loud.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“I'm sorry about how we met. I took your food and made you wonder if you could trust me. Though if I hadn't climbed through that window, maybe we'd never have met.”</p></div>
<p class="rc-encounter-event">She nudges your shoulder.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“That's a terrible argument for stealing. Don't tell anyone I said it.”</p></div>
<<elseif _closeness == 1>>
<p class="rc-encounter-event">She picks at a loose thread on her sleeve.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“I think I'm starting to have feelings for you. I wasn't planning to say that today.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“And I'm sorry I took your food when we met. I didn't give you much reason to trust me. Still, if I hadn't found your window...”</p></div>
<p class="rc-encounter-event">She gives you a small smile.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“Maybe we wouldn't be sitting here.”</p></div>
<<else>>
<p class="rc-encounter-event">She glances at you, then back at the fields.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“I might be starting to feel something for you. I'm still figuring it out.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“I'm sorry about the food I took when we met. It was a lousy start. Then again, without that window, we might never have met.”</p></div>
<p class="rc-encounter-event">She lets out a short laugh.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>“Please don't take that as advice.”</p></div>
<</if>>
<</if>>
<p class="rc-encounter-event">For a while, the two of you sit in the shade of the repaired porch. The house is quiet before the others arrive.</p>
</section>
<nav class="choice-container rc-encounter-actions" aria-label="Available actions"><h2>What will you do?</h2><div class="rc-encounter-action-list">
<a class="button dark-choice" data-passage="Farm_Sophia_Move">Make a Move</a>
</div></nav>
</main>
<</if>>
<<set _farm = setup.ensureFarmRecovery(State.variables)>>
<<if _farm.stage == 9 && _farm.on_site && _farm.reward_seen && setup.farmSophiaPresent(State.variables)>>
<<set _farm.reward_private_pending = true>>
<<goto "Sophia_Service">>
<<else>>
<<goto "Farm_Recovery">>
<</if>>
<<if setup.nightVisitActive(State.variables)>>
<<if setup.nightVisitActive(State.variables).phase === 'media'>><<goto "Night_Visit_Media">><<else>><<goto "Night_Visit">><</if>>
<<else>>
<<set _preview = setup.restPreview(State.variables)>>
<<if _preview.shortage > 0 && _preview.fresh > 0>>
<main class="rc-farm-mission rc-farm-ledger">
<header><span class="rc-ui-kicker">FARM / END OF DAY</span><h1>Food for tonight</h1><p>Choose how to feed the group before resting.</p></header>
<div class="rc-farm-mission-body">
<p>The group needs <<print _preview.required>> Provisions. You have <<print _preview.available>> after cooking. <<if $player.Fresh_food > 0>>You have <<print $player.Fresh_food>> Fresh Food stored. <</if>>The fields will bring in <<print _preview.harvest>> Fresh Food. Use <<print Math.min(_preview.shortage, _preview.fresh)>> to cover the shortage?</p>
<<if _preview.fresh < _preview.shortage>><p class="rc-farm-alert">Fresh Food will cover only part of the shortage. The base will still go hungry: field work, Workshop production, scavenging and Party bonuses will pause. Cooking stays available.</p><</if>>
</div>
<nav class="rc-farm-mission-actions">
<<nightRestFoodChoices>>
<a class="button back-btn" data-passage="Safehouse">Cancel rest</a>
</nav>
</main>
<<else>>
<<set _restDestination = setup.beginNightRest(State.variables, false, random)>>
<<if _restDestination === 'Night_Visit'>><<goto "Night_Visit">>
<<elseif _restDestination === 'Night_Visit_Media'>><<goto "Night_Visit_Media">>
<<elseif _restDestination === 'Rest'>><<goto "Rest">>
<<else>><<goto "Safehouse">><</if>>
<</if>>
<</if>>
<<if $player.base_location != "Farm">><<goto "Safehouse">><<else>>
<<set _newFields = setup.startFieldsQuest(State.variables)>>
<<if _newFields>><<goto "Fields_First_Visit">><<else>>
<<set _fieldsQuest = setup.ensureFieldsQuest(State.variables)>>
<main class="rc-farm-mission rc-farm-fields-page">
<header><span class="rc-ui-kicker">FARM / FOOD PRODUCTION</span><h1>Fields</h1><p><<if $player.fields_ready>>The first rows are ready for work.<<else>>The ground behind the barn needs more than clearing.<</if>></p></header>
<div class="rc-farm-mission-body rc-farm-fields-body">
<<if setup.farmFieldsNotice>><p class="rc-farm-last-event" role="status"><<print setup.farmFieldsNotice>></p><<run setup.farmFieldsNotice = ''>><</if>>
<<if !$player.fields_ready>>
<<if _fieldsQuest.stage == 'find_tools' || _fieldsQuest.stage == 'ask_nikki' || _fieldsQuest.stage == 'offer_pending'>>
<p class="rc-farm-alert">Ask about field tools at the Market.</p>
<nav class="rc-farm-field-actions"><a class="button dark-choice" data-passage="Market">Go to the Market</a></nav>
<<elseif _fieldsQuest.stage == 'follow_road' || _fieldsQuest.stage == 'find_base'>>
<p class="rc-farm-alert">Follow the supplier road to find the stolen delivery.</p>
<nav class="rc-farm-field-actions"><a class="button dark-choice" data-passage="Supplier_Road">Follow the supplier road</a></nav>
<<elseif _fieldsQuest.stage == 'tell_nikki'>>
<p class="rc-farm-alert">Return to Nikki at the Market.</p>
<nav class="rc-farm-field-actions"><a class="button dark-choice" data-passage="Market">Go to the Market</a></nav>
<<elseif _fieldsQuest.stage == 'restore' || (_fieldsQuest.stage == 'reward_pending' && _fieldsQuest.tools)>>
<p>The tools Nikki gave you can break up the roots and hard soil.</p>
<p>Clearing the first rows will take 20 energy.</p>
<nav class="rc-farm-field-actions" aria-label="Field actions">
<<if $player.stamina >= 20>>
<<link "Restore the Fields" "Farm_Fields">><<run setup.clearFarmFields(State.variables)>><</link>>
<<else>><span class="rc-farm-action-unavailable" aria-disabled="true">Restore the Fields</span><</if>>
</nav>
<</if>>
<<else>>
<<set _farmWorkers = setup.farmWorkerCount(State.variables)>>
<<if setup.baseFoodShortage($player)>><p class="rc-farm-alert">Field work is paused because the base went hungry. Assignments are kept. Feed everyone at rest to resume work; you can still work the fields manually or prepare food in the Kitchen.</p><</if>>
<div class="rc-farm-figures" aria-label="Field production">
<div><span>Workers in fields</span><strong><<print _farmWorkers>></strong></div>
<div><span>Fresh Food / Day</span><strong>+<<print setup.farmHarvestPreview(State.variables)>></strong></div>
<div><span>Fresh Food stored</span><strong><<print $player.Fresh_food || 0>></strong></div>
</div>
<nav class="rc-farm-field-actions" aria-label="Field actions">
<a class="button dark-choice" data-passage="Farm_Workers">Manage workers</a>
<<if $player.stamina >= 35>>
<<link "Work Fields Manually · 35 energy → 2 Fresh Food" "Farm_Fields">><<run setup.workFarmFields($player)>><</link>>
<<else>><span class="rc-farm-action-unavailable" aria-disabled="true">Work Fields Manually · 35 energy → 2 Fresh Food</span><</if>>
</nav>
<</if>>
</div>
<nav class="rc-farm-mission-actions"><a class="button back-btn" data-passage="Safehouse">Return to the Farm</a></nav>
</main>
<</if>>
<</if>>
<<if $player.base_location != "Farm" || !$player.fields_ready>><<goto "Safehouse">><<else>>
<<set _assigned = setup.farmWorkerCount(State.variables)>>
<<set _next = setup.nextFarmWorker(_assigned)>>
<<set _genericAssigned = setup.clampFieldWorkers($player)>>
<<set _genericWorking = setup.baseFoodShortage($player) ? 0 : _genericAssigned>>
<<set _namedAssigned = _assigned - _genericWorking>>
<main class="rc-farm-mission rc-farm-workers-page">
<header><span class="rc-ui-kicker">FARM / FIELD ASSIGNMENTS</span><h1>Manage workers</h1></header>
<div class="rc-farm-mission-body rc-farm-workers-body">
<div class="rc-farm-figures" aria-label="Field production and next threshold">
<div><span>Slaves Working</span><strong><<print _genericWorking>></strong><<if _genericWorking != _genericAssigned>><small><<print _genericAssigned>> assigned · paused by hunger</small><</if>><<if _namedAssigned > 0>><small>+<<print _namedAssigned>> named worker<<if _namedAssigned != 1>>s<</if>></small><</if>></div>
<div><span>Fresh Food / Day</span><strong>+<<print setup.farmHarvestPreview(State.variables)>></strong></div>
<div><span>Next Increase</span><strong><<if setup.baseFoodShortage($player)>>Feed the base first<<else>><<print _next - _assigned>> more worker<<if _next - _assigned != 1>>s<</if>><</if>></strong></div>
</div>
<section class="rc-farm-card rc-farm-general" aria-label="Assign slaves to fields">
<div class="rc-farm-controls">
<<link "−10" "Farm_Workers">><<run setup.adjustFieldWorkers($player, -10)>><</link>><<link "−1" "Farm_Workers">><<run setup.adjustFieldWorkers($player, -1)>><</link>>
<<link "+1" "Farm_Workers">><<run setup.adjustFieldWorkers($player, 1)>><</link>><<link "+10" "Farm_Workers">><<run setup.adjustFieldWorkers($player, 10)>><</link>>
<<link "All" "Farm_Workers">><<run setup.adjustFieldWorkers($player, Math.max(0, Number($player.slaves) || 0))>><</link>><<link "None" "Farm_Workers">><<run setup.adjustFieldWorkers($player, -Math.max(0, Number($player.slaves) || 0))>><</link>>
</div>
</section>
<<for _resident range setup.householdResidents>>
<<set _status = $player[_resident.status]>>
<<if ["ally", "slave", "starving"].includes(_status)>>
<section class="rc-farm-card rc-farm-resident"><div class="rc-farm-person"><img @src="setup.castPortraits[_resident.name.toLowerCase()]" @alt="_resident.name"><div><h2><<print _resident.name>></h2><p><<print _status == "starving" ? "Starving · unavailable" : _status == "ally" ? "Ally" : "Slave">> · <<print $player[_resident.work] == "none" ? "No task" : $player[_resident.work]>></p></div></div>
<<if setup.residentImprovised(State.variables, _resident.name.toLowerCase())>><p>Temporary accommodation · work is paused until a bedroom is available. The assignment is kept.</p>
<<elseif setup.residentHungry(State.variables, _resident.name.toLowerCase())>><p>Field work is paused. Cooking remains available in the <a data-passage="Farm_Kitchen">Kitchen</a>.</p>
<<elseif _resident.name == "Sophia" || _status == "slave">>
<<if $player[_resident.work] == "Fields">><button type="button" @data-rc-field-name="_resident.name" data-rc-field-work="none">Remove from fields</button>
<<else>><button type="button" @data-rc-field-name="_resident.name" data-rc-field-work="Fields">Assign to fields</button><</if>>
<<if _resident.name == 'Sophia' && $player.sophia_fields_reply && _status == 'ally'>><p>“I can take the first rows. Show me where you want me.”</p><</if>>
<<elseif _resident.name == "Emily">>
<<if !$player.emily_fields_refused>><<link "Ask about the fields" "Farm_Workers">><<set $player.emily_fields_refused = true>><</link>><<else>><p>“I’d rather keep helping here. The fields aren’t for me.”</p><</if>>
<</if>>
<<if _resident.name == 'Sophia' && !setup.residentImprovised(State.variables, _resident.name.toLowerCase())>><a class="button dark-choice rc-farm-other-tasks" data-passage="Sophia_Work">Other tasks</a><</if>>
<<if _resident.name == 'Emily' && !setup.residentImprovised(State.variables, _resident.name.toLowerCase())>><a class="button dark-choice rc-farm-other-tasks" data-passage="Emily_Work">Other tasks</a><</if>>
<<if _resident.name == 'Lena' && !setup.residentImprovised(State.variables, _resident.name.toLowerCase())>><a class="button dark-choice rc-farm-other-tasks" data-passage="Lena_Work">Other tasks</a><</if>>
<<if _resident.name == 'Sarah' && setup.sarahCanWork(State.variables)>><a class="button dark-choice rc-farm-other-tasks" data-passage="Sarah_Work">Other tasks</a><</if>>
</section>
<</if>>
<</for>>
<<if $kenzie && ($kenzie.outcome == "camp_help" || $kenzie.outcome == "camp_slave")>>
<section class="rc-farm-card rc-farm-resident"><div class="rc-farm-person"><img src="assets/cast/kenzie.jpg" alt="Kenzie"><div><h2>Kenzie</h2><p><<print $kenzie.outcome == 'camp_help' ? 'Ally' : 'Slave'>> · <<print $kenzie.work == 'Fields' ? 'Fields' : 'No task'>></p></div></div>
<<if setup.residentImprovised(State.variables, "kenzie")>><p>Temporary accommodation · work is paused until a bedroom is available. The assignment is kept.</p>
<<elseif setup.residentHungry(State.variables, "kenzie")>><p>Needs food before field work can resume. The assignment is kept.</p>
<<elseif $kenzie.recovery_days < 3>><p>Recovering. <<print 3 - $kenzie.recovery_days>> day(s) left.</p>
<<elseif $kenzie.outcome == 'camp_help'>><<if !$kenzie.fields_refused>><<link "Ask about the fields" "Farm_Workers">><<set $kenzie.fields_refused = true>><</link>><<else>><p>“I’d be more use outside the fence.”</p><</if>>
<<elseif $kenzie.work == 'Fields'>><button type="button" data-rc-field-name="Kenzie" data-rc-field-work="none">Remove from fields</button>
<<else>><button type="button" data-rc-field-name="Kenzie" data-rc-field-work="Fields">Assign to fields</button><</if>>
</section>
<</if>>
<<if setup.gageAtFarm(State.variables)>>
<section class="rc-farm-card rc-farm-resident"><div class="rc-farm-person"><img src="assets/cast/gage.png" alt="Gage"><div><h2>Gage</h2><p>Slave · <<print setup.ensureFieldsQuest(State.variables).gage_work == 'Fields' ? 'Fields' : 'No task'>></p></div></div>
<<if setup.residentImprovised(State.variables, "gage")>><p>Temporary accommodation · work is paused until a bedroom is available. The assignment is kept.</p>
<<elseif setup.residentHungry(State.variables, "gage")>><p>Needs food before field work can resume. The assignment is kept.</p>
<<elseif $player.fields_quest.gage_work == 'Fields'>><button type="button" data-rc-field-name="Gage" data-rc-field-work="none">Remove from fields</button>
<<else>><button type="button" data-rc-field-name="Gage" data-rc-field-work="Fields">Assign to fields</button><</if>>
</section>
<</if>>
</div>
<nav class="rc-farm-mission-actions"><a class="button back-btn" data-passage="Farm_Fields">Return to the fields</a></nav>
</main>
<</if>>
<<if $player.base_location != "Farm">><<goto "Safehouse">><<else>>
<<set _fresh = Math.max(0, Math.floor(Number($player.Fresh_food) || 0))>>
<main class="rc-farm-mission rc-farm-ledger rc-farm-kitchen-page">
<header><span class="rc-ui-kicker">FARM / KITCHEN</span><h1>Kitchen</h1><p>Turn the field harvest into food for the base or meals for the road.</p></header>
<div class="rc-farm-mission-body rc-farm-kitchen-body">
<<if setup.farmKitchenNotice>><p class="rc-farm-last-event" role="status"><<print setup.farmKitchenNotice>></p><<run setup.farmKitchenNotice = ''>><</if>>
<div class="rc-farm-figures" aria-label="Kitchen stores">
<div><span>Fresh Food</span><strong><<print _fresh>></strong><small>Harvested in the fields</small></div>
<div><span>Raw Meat</span><strong><<print $player.Raw_meat || 0>></strong><small>Cooked at rest when cooks are assigned</small></div>
<div><span>Provisions</span><strong><<print $player.Provisions || 0>></strong><small><<print setup.dailyProvisionNeed($player, $kenzie)>> needed each day</small></div>
</div>
<section class="rc-farm-kitchen-prep" aria-labelledby="rc-farm-kitchen-recipes-title">
<div class="rc-farm-kitchen-heading"><div><span class="rc-ui-kicker">FRESH FOOD / PREPARATION</span><h2 id="rc-farm-kitchen-recipes-title">Prepare food</h2></div><p>Choose what to make from your current harvest.</p></div>
<<if !$player.fields_ready>><p class="rc-farm-alert">Restore the Fields before preparing Fresh Food.</p><</if>>
<div class="rc-farm-recipes">
<article class="rc-farm-card rc-farm-recipe">
<div class="rc-farm-recipe-top"><img src="assets/icons/canned_food.svg" alt=""><span>BASE SUPPLY</span></div>
<h3>Provisions</h3><p>Feeds the base each day.</p>
<div class="rc-farm-recipe-details"><span>1 Fresh Food <b aria-hidden="true">→</b> 1 Provision</span><small>Stored: <<print $player.Provisions || 0>> · Can make: <<print _fresh>></small></div>
<div class="rc-farm-recipe-actions">
<<if $player.fields_ready && _fresh >= 1>>
<<link "Make 1" "Farm_Kitchen">><<run setup.farmKitchenNotice = setup.cookFreshFood($player, 'provisions', 1) ? 'Prepared 1 Provision.' : ''>><</link>>
<<link "Make all" "Farm_Kitchen">><<run setup.farmKitchenNotice = 'Provisions prepared: ' + setup.cookFreshFood($player, 'provisions', 'all') + '.'>><</link>>
<<else>><span class="rc-farm-unavailable" aria-disabled="true"><<if !$player.fields_ready>>Fields unavailable<<else>>Need 1 Fresh Food<</if>></span><</if>>
</div>
</article>
<article class="rc-farm-card rc-farm-recipe">
<div class="rc-farm-recipe-top"><img src="assets/icons/expedition_meal.svg" alt=""><span>TRAVEL MEAL</span></div>
<h3>Expedition Meal</h3><p>Restores up to 30 energy when eaten from the inventory.</p>
<div class="rc-farm-recipe-details"><span>2 Fresh Food <b aria-hidden="true">→</b> 1 Meal</span><small>Stored: <<print $player.Expedition_meal || 0>> · Can make: <<print Math.floor(_fresh / 2)>></small></div>
<div class="rc-farm-recipe-actions">
<<if $player.fields_ready && _fresh >= 2>>
<<link "Make 1" "Farm_Kitchen">><<run setup.farmKitchenNotice = setup.cookFreshFood($player, 'expedition', 1) ? 'Prepared 1 Expedition Meal.' : ''>><</link>>
<<link "Make all" "Farm_Kitchen">><<run setup.farmKitchenNotice = 'Expedition Meals prepared: ' + setup.cookFreshFood($player, 'expedition', 'all') + '.'>><</link>>
<<else>><span class="rc-farm-unavailable" aria-disabled="true"><<if !$player.fields_ready>>Fields unavailable<<else>>Need 2 Fresh Food<</if>></span><</if>>
</div>
</article>
<article class="rc-farm-card rc-farm-recipe">
<div class="rc-farm-recipe-top"><img src="assets/icons/hearty_meal.svg" alt=""><span>HUNT MEAL</span></div>
<h3>Hearty Meal</h3><p>Improves the next two hunts after eating. The effect expires at rest.</p>
<div class="rc-farm-recipe-details"><span>3 Fresh Food <b aria-hidden="true">→</b> 1 Meal</span><small>Stored: <<print $player.Hearty_meal || 0>> · Can make: <<print Math.floor(_fresh / 3)>></small></div>
<div class="rc-farm-recipe-actions">
<<if $player.fields_ready && _fresh >= 3>>
<<link "Make 1" "Farm_Kitchen">><<run setup.farmKitchenNotice = setup.cookFreshFood($player, 'hearty', 1) ? 'Prepared 1 Hearty Meal.' : ''>><</link>>
<<link "Make all" "Farm_Kitchen">><<run setup.farmKitchenNotice = 'Hearty Meals prepared: ' + setup.cookFreshFood($player, 'hearty', 'all') + '.'>><</link>>
<<else>><span class="rc-farm-unavailable" aria-disabled="true"><<if !$player.fields_ready>>Fields unavailable<<else>>Need 3 Fresh Food<</if>></span><</if>>
</div>
</article>
</div>
</section>
<section class="rc-farm-kitchen-note" aria-label="Cooking at rest">
<p><strong>Cooking at rest</strong> · Each assigned cook turns 1 Raw Meat into 2 Provisions per day, while meat is available.</p>
<<set _cooks = setup.cookingResidents($player, State.variables).map(function (resident) { return resident.name; })>>
<p>Active cooks: <<print _cooks.length ? _cooks.join(', ') : 'None'>>. Next rest: up to <<print setup.restPreview(State.variables).prepared>> Provisions from Raw Meat.</p>
<<for _resident range setup.householdResidents>>
<<if ['ally', 'slave', 'starving'].includes($player[_resident.status]) && $player[_resident.work] == 'Cooking' && setup.residentImprovised(State.variables, _resident.name.toLowerCase())>><p><<print _resident.name>>: cooking paused until a bedroom is available. The assignment is kept.</p><</if>>
<</for>>
<p>Assign cooking through a character's Work menu in <a data-passage="Farm_Bedrooms">Bedrooms</a>. Prepared meals can be used from your inventory.</p>
<<if setup.baseFoodShortage($player)>>
<p>The base needs food. Cooking remains available; field work, scavenging and Party bonuses resume after everyone is fed at rest.</p>
<nav class="rc-farm-field-actions" aria-label="Assign a cook during food shortage">
<<for _resident range setup.scavengingResidents>>
<<if ['ally', 'slave', 'starving'].includes($player[_resident.status]) && !setup.residentImprovised(State.variables, _resident.name.toLowerCase()) && $player[_resident.work] != 'Cooking'>>
<button type="button" @data-rc-recovery-cook="_resident.name">Assign <<print _resident.name>> to cooking</button>
<</if>>
<</for>>
</nav>
<</if>>
</section>
</div>
<nav class="rc-farm-mission-actions"><a class="button back-btn" data-passage="Safehouse">Return to the Farm</a></nav>
</main>
<</if>>
<<goto "Safehouse">>
<<if $player.base_location != "Farm">><<goto "Safehouse">><<else>>
<<set $player.current_location = "Farm Bedrooms">>
<<set _bedrooms = setup.bedroomRoster(State.variables)>>
<<set _capacity = setup.bedroomCapacity(State.variables)>>
<main class="rc-farm-bedrooms-page">
<header class="rc-farm-bedrooms-header"><span class="rc-ui-kicker">FARM / CHARACTERS</span><h1>Bedrooms</h1><p>Private bedrooms for characters. Your room is separate.</p>
<div class="rc-bedroom-capacity">
<div class="rc-farm-figures" aria-label="Bedroom capacity"><div><span>Rooms occupied</span><strong><<print Math.min(_bedrooms.length, _capacity)>> / <<print _capacity>></strong></div><div><span>Temporary accommodation</span><strong><<print Math.max(0, _bedrooms.length - _capacity)>></strong></div></div>
<a class="button rc-bedroom-expand" data-passage="Farm_Workshop">Expand bedrooms</a>
</div>
</header>
<section class="rc-farm-bedroom-grid" aria-label="Bedrooms and characters">
<article class="rc-farm-bedroom-room rc-farm-bedroom-player"><span class="rc-ui-kicker">YOUR ROOM</span><h2><<print $player.name>></h2><p>Your place to sleep in the farmhouse.</p></article>
<<for _resident range _bedrooms>>
<article @class="'rc-farm-bedroom-room' + (_resident.improvised ? ' rc-bedroom-improvised' : '')" @data-rc-resident="_resident.id">
<span class="rc-ui-kicker"><<print _resident.improvised ? 'TEMPORARY ACCOMMODATION' : "CHARACTER'S ROOM">></span><h2><<print _resident.name>><<if !_resident.improvised>>'s room<</if>></h2>
<div class="mini-character-card"><img @src="_resident.portrait" @alt="_resident.name" class="mini-portrait"><div class="mini-info"><span class="char-name"><<print _resident.name>></span><span class="char-status"><<print _resident.status == 'starving' ? 'Starving' : _resident.status == 'ally' ? 'Ally' : 'Slave'>><<if ["kenzie", "gage"].includes(_resident.id) && setup.residentHungry(State.variables, _resident.id)>> · Needs food<</if>><<if _resident.id == 'kenzie' && $kenzie.recovery_days < 3>> · recovering<</if>><<if _resident.id == 'gage' && $player.fields_quest.gage_work == 'Fields'>> · <<print (setup.residentHungry(State.variables, "gage") || _resident.improvised) ? "Field work paused" : "Working in fields">><</if>></span>
<<if _resident.improvised>><span class="rc-resident-unavailable">Needs a bedroom to interact.<<if setup.partyWork(State.variables, _resident.id) != "none">><br>Work paused · resumes when a bedroom is available<</if>></span>
<<elseif _resident.status == 'starving'>><span class="rc-resident-unavailable">Needs food</span>
<<else>><a class="mini-btn" @data-passage="_resident.passage">Interact</a><</if>>
</div></div>
</article>
<</for>>
</section>
<nav class="rc-farm-bedroom-exit"><a class="button back-btn" data-passage="Safehouse">Return to the Farm</a></nav>
</main>
<</if>>
<<if setup.nikkiDead(State.variables)>>
<p>Nikki is gone. Her counter is closed.</p>
<a class="button" data-passage="Market">Return to the Market</a>
<<else>>
<<if !setup.presentNikkiOffer(State.variables)>><<goto "Market">><<else>>
<main class="rc-encounter-page rc-fields-quest-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">MARKET / MISSING DELIVERY</span><h1>Nikki</h1></div><span class="rc-encounter-location">MARKET</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/nikki.jpg" alt="Nikki"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/nikki.jpg" alt=""><div><strong>Nikki</strong><span>Market owner</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<p class="rc-encounter-event">The driver points to a spot on Nikki's delivery sheet. His hands are still shaking. Nikki circles it, tears off the marked corner and gives it back to him.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Show that to the gate watch. Tell them no one takes the road until I've spoken to Cory.” She waits for him to leave, then turns to you. “What do you need?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Field tools. Shovels, a mattock if you have one. I'm working on the Farm.”</p></div>
<p class="rc-encounter-event">Nikki looks up from the sheet and takes a closer look at you.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“The Farm just outside the district?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“That's the one. I'm trying to clear the fields.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“My crew saw someone clearing that Farm. So that was you.” She taps an empty line on her delivery sheet. “You're out of luck. The shovels and mattock you need were on today's truck.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“What happened to the truck?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“They dragged the driver out at the broken barrier. He got away; the truck didn't. We started using that road again and now someone's picking off loads headed into the district. This is the third one I've lost.”</p></div>
<p class="rc-encounter-event">A customer approaches the counter. Nikki holds up a finger; he waits.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“<<if setup.hasCoryWork(State.variables)>>I've seen you taking jobs around here. You've been working for Cory at Administration.<<else>>I've seen you around here. You're taking on a job most people left alone.<</if>> Cory's a friend, and I was about to ask her for help with this. If you want another job, go after my truck. Find out who's taking the loads and where they go.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“What can you pay?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Not much cash. I'll get you those tools and give you a good discount here. Start at the barrier.”</p></div>
</section>
<nav class="choice-container rc-encounter-actions"><div class="rc-encounter-action-list"><a class="button dark-choice" data-passage="Nikki_Accept">Investigate the supplier attacks</a><a class="button back-btn" data-passage="Market">Return to the Market</a></div></nav>
</main>
<</if>>
<</if>>
<<if !setup.enterEnergyDestination(State.variables, "Supplier_Road")>>
<p class="warning-message">This trip requires <<print setup.energyDestinationCost(State.variables, "Supplier_Road")>> energy. The return home is free.</p>
<a class="button" data-passage="Outside">Return to the map</a> <a class="button" data-passage="Safehouse">Return home</a>
<<else>>
<<if !$player.fields_quest || !($player.fields_quest.stage == 'follow_road' || $player.fields_quest.stage == 'find_base')>><<goto "Outside">><<else>>
<<set $player.current_location = "Supplier_Road">>
<div class="scene-content">
<div class="scene-text">
<h2>Supplier Road</h2>
<p>Past the rail fence, the road narrows beside a drainage ditch. You find the broken barrier where Nikki said it would be.</p>
<p>Fresh tire marks cut through the dirt at its edge and disappear into the scrub.</p>
</div>
<section class="rc-place-events" aria-labelledby="rc-supplier-events-title">
<h3 class="rc-place-label" id="rc-supplier-events-title">HAPPENING NOW</h3>
<div class="rc-event-list"><a class="rc-event-link" data-passage="Supplier_Road_Event"><span class="rc-event-kicker">FRESH TIRE MARKS</span><strong>Follow the tracks</strong><span class="rc-event-arrow" aria-hidden="true">→</span></a></div>
</section>
<div class="choice-container"><a class="button back-btn" data-passage="Outside">Return to Outside</a></div>
</div>
<</if>>
<</if>>
<<if !setup.beginFieldsBanditFight(State.variables)>><<goto "Outside">><<else>>
<<goto "Combat_Enemy_Turn">>
<</if>>
<<if !$player.fields_quest || $player.fields_quest.stage != 'find_base' || !(($player.fields_quest.bandit_round == setup.fieldsBandits.length && $combat && $combat.fields_bandit && $combat.enemy_health <= 0) || ($combat && $combat.enemy_name == 'Gage' && $combat.enemy_health <= 0))>><<goto "Outside">><<else>>
<<set _oldGageFight = $combat.enemy_name == 'Gage'>>
<main class="rc-encounter-page rc-fields-quest-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">SUPPLIER ROAD / AFTER THE FIGHT</span><h1>Gage</h1></div><span class="rc-encounter-location">SUPPLIER ROAD</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/gage.png" alt="Gage"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/gage.png" alt=""><div><strong>Gage</strong><span>Captured raider</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Interrogation</h2>
<<if _oldGageFight>>
<p class="rc-encounter-event">The truck pulls away with the rest of the raiders. Gage stumbles beside the loading rack. You catch his jacket and drive him into it; the metal rings behind his head.</p>
<<else>>
<p class="rc-encounter-event">The shotgun bandit drops. Three bodies lie between you and the barrier. The other raiders drive Nikki's truck off with half the load still in it. Gage tries to slip behind the loading rack. You catch his jacket and drive him into it; the metal rings behind his head.</p>
<</if>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Name.”</p></div>
<div class="rc-encounter-statement" data-reveal-character="Gage"><div class="rc-encounter-speaker"><span>Gage</span></div><p>“Gage. Please, don't hurt me.”</p></div>
<<if _oldGageFight>><p class="rc-encounter-event">You hold him against the rack until he stops trying to pull free.</p><<else>><p class="rc-encounter-event">You turn him toward the barrier. He stops pulling.</p><</if>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p><<if _oldGageFight>>“Your truck left you here. Where's it going?”<<else>>“Your friends are dead. The truck left you here. Where's it going?”<</if>></p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Gage</span></div><p>“I don't know. I swear.” His eyes cut toward the rail bridge.</p></div>
<p class="rc-encounter-event">You catch the glance before he can look away.</p>
<<if $player.Weapon_status == 'Pistol' || $player.Weapon_status == 'Shotgun'>>
<p class="rc-encounter-event">You level your <<print $player.Weapon_status.toLowerCase()>> at his face.</p>
<<elseif $player.Weapon_status == 'Knife'>>
<p class="rc-encounter-event">You put the edge of your knife under his chin.</p>
<<elseif $player.Weapon_status == 'Wrench'>>
<p class="rc-encounter-event">You press the wrench against his throat.</p>
<<else>>
<p class="rc-encounter-event">You tighten your grip on his jacket and drive him harder against the rack.</p>
<</if>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Past the bridge. Where?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Gage</span></div><p>“Old maintenance yard. Can you let go?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“You're with the Unbounds?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Gage</span></div><p>“Yeah. What of it?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I ask the questions here.”</p></div>
<p class="rc-encounter-event">You hit him in the stomach. He folds forward; you pull him back against the rack.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“How many more at the yard?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Gage</span></div><p>“They come and go. I couldn't give you a count.”</p></div>
</section>
<nav class="choice-container rc-encounter-actions"><div class="rc-encounter-action-list"><a class="button dark-choice" data-passage="Gage_Hold">Take Gage as a slave to the Farm</a><a class="button light-choice" data-passage="Gage_Release">Release Gage</a><a class="button danger-choice" data-passage="Gage_Kill">Kill Gage</a><a class="button light-choice" data-passage="Gage_Leave">Leave Gage bound at the barrier</a></div></nav>
</main>
<</if>>
<<if !setup.chooseGageFate(State.variables, 'held')>><<goto "Outside">><<else>>
<main class="rc-encounter-page rc-fields-quest-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">SUPPLIER ROAD / DECISION</span><h1>Gage</h1></div></header><aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/gage.png" alt="Gage"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/gage.png" alt=""><div><strong>Gage</strong><span>Captured raider</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Take him with you</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Get up. You're coming with me.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Gage</span></div><p>“To the Market?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“The Farm.”</p></div>
<p class="rc-encounter-event">Gage looks down the road one last time, then walks ahead of you.</p>
</section><nav class="choice-container rc-encounter-actions"><a class="button dark-choice" data-passage="Market">Return to the Market</a></nav></main>
<</if>>
<<if !setup.chooseGageFate(State.variables, 'released')>><<goto "Outside">><<else>>
<main class="rc-encounter-page rc-fields-quest-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">SUPPLIER ROAD / DECISION</span><h1>Gage</h1></div></header><aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/gage.png" alt="Gage"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/gage.png" alt=""><div><strong>Gage</strong><span>Captured raider</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Let him go</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Go.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Gage</span></div><p>“You're letting me walk?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“You owe me one. If I need you, I'll find you.”</p></div>
<p class="rc-encounter-event">He gets to his feet and backs away before turning toward the road.</p>
</section><nav class="choice-container rc-encounter-actions"><a class="button dark-choice" data-passage="Market">Return to the Market</a></nav></main>
<</if>>
<<if setup.nikkiDead(State.variables)>>
<p>Nikki is gone. Her counter is closed.</p>
<a class="button" data-passage="Market">Return to the Market</a>
<<else>>
<<set _quest = setup.ensureFieldsQuest(State.variables)>>
<<if !(_quest.stage == 'tell_nikki' || (_quest.stage == 'reward_pending' && _quest.nikki_report))>><<goto "Market">><<else>>
<main class="rc-encounter-page rc-fields-quest-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">MARKET / THE SUPPLIER ROAD</span><h1>Nikki</h1></div><span class="rc-encounter-location">MARKET</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/nikki.jpg" alt="Nikki"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/nikki.jpg" alt=""><div><strong>Nikki</strong><span>Market owner</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<<if _quest.stage == 'tell_nikki'>>
<p class="rc-encounter-event">Nikki is tying a split sack shut when she sees you. She finishes the knot and clears a space on the counter.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Well? Who's been taking the loads?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“The Unbounds. They've been taking whatever comes through the barrier. I caught one of them. Their base is around the old maintenance yard, past the rail bridge.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Finally, a place.” She pulls out a road map and marks the yard. “Cory can work with this. I'll get it to her, and we can find a way in.” Her finger stays on the map. “My truck?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p><<if _quest.bandit_round >= setup.fieldsBandits.length>>“I killed three at the barrier. The others drove it off while I was fighting.”<<else>>“The others drove it off while I was fighting.”<</if>></p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Damn it. I'll warn the drivers off that road. What about the one you caught?”</p></div>
<<else>>
<<if _quest.nikki_report == 'farm'>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“His name's Gage. He's at the Farm. I'm putting him to work there.”</p></div>
<<elseif _quest.nikki_report == 'released'>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I let Gage go.”</p></div>
<<elseif _quest.nikki_report == 'killed'>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I killed him.”</p></div>
<<elseif _quest.nikki_report == 'left_to_die'>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I left him out there. He won't last long.”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Gage's at the Farm.”</p></div>
<</if>>
<<if _quest.nikki_report == 'killed' || _quest.nikki_report == 'left_to_die'>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“All right. I don't need the details.”</p></div>
<<elseif _quest.nikki_report == 'released'>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Your call. The yard's what I needed.”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Don't bring him here. What you do with him is your business.”</p></div>
<</if>>
<p class="rc-encounter-event">Nikki folds the map and goes into the storeroom. She returns with a bundle of tools and sets it on the counter: shovels, a mattock and spare handles.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“While you were out, I called in a couple of favors. This is everything you asked for.” She checks the mattock head with her thumb. “Old, but sound.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Do I still have to pay for these?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“These are on the house. You found the yard.” She slides the bundle toward you. “And I owe you something for the work. Let me get this map to Cory first.”</p></div>
<</if>>
</section>
<nav class="choice-container rc-encounter-actions rc-fields-report-actions"><div class="rc-encounter-action-list">
<<if _quest.stage == 'tell_nikki'>>
<<link "Say Gage will work at the Farm" "Nikki_Report">><<run setup.reportToNikki(State.variables, 'farm')>><</link>>
<<link "Say you released Gage" "Nikki_Report">><<run setup.reportToNikki(State.variables, 'released')>><</link>>
<<link "Say you killed Gage" "Nikki_Report">><<run setup.reportToNikki(State.variables, 'killed')>><</link>>
<<link "Say you left Gage to die" "Nikki_Report">><<run setup.reportToNikki(State.variables, 'left_to_die')>><</link>>
<<else>>
<a class="button dark-choice" data-passage="Nikki_Reward">Choose your extra reward</a><a class="button back-btn" data-passage="Market">Return to the Market</a>
<</if>>
</div></nav>
</main>
<</if>>
<</if>>
<<if setup.nikkiDead(State.variables)>>
<p>Nikki is gone. Her counter is closed.</p>
<a class="button" data-passage="Market">Return to the Market</a>
<<else>>
<<if !$player.fields_quest || $player.fields_quest.stage != 'reward_pending'>><<goto "Market">><<else>>
<main class="rc-encounter-page rc-fields-quest-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">MARKET / REWARD</span><h1>Nikki</h1></div><span class="rc-encounter-location">MARKET</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/nikki.jpg" alt="Nikki"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/nikki.jpg" alt=""><div><strong>Nikki</strong><span>Market owner</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<p class="rc-encounter-event">Nikki hands the marked map to a runner. When he's gone, she turns back to the ledger.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“And the other favor?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“I can take fifteen percent off when you buy here. If that's no use to you, ask me for something else.”</p></div>
</section>
<nav class="choice-container rc-encounter-actions"><div class="rc-encounter-action-list"><a class="button light-choice" data-passage="Nikki_Reward_Romance">Make a Move</a><a class="button dark-choice" data-passage="Nikki_Reward_Discount">Take a 15% Market discount</a><a class="button back-btn" data-passage="Market">Return to the Market</a></div></nav>
</main>
<</if>>
<</if>>
<<if setup.nikkiDead(State.variables)>>
<p>Nikki is gone. Her counter is closed.</p>
<a class="button" data-passage="Market">Return to the Market</a>
<<else>>
<<if !setup.chooseNikkiReward(State.variables, 'romance')>><<goto "Market">><<else>>
<main class="rc-encounter-page rc-fields-quest-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">MARKET / AFTER HOURS</span><h1>Nikki</h1></div></header><aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/nikki.jpg" alt="Nikki"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/nikki.jpg" alt=""><div><strong>Nikki</strong><span>Market owner</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Conversation</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Forget the discount. What time do you close?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Why?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I'd like to see you when you're done here.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Huh.” She smiles to you and puts the receipts aside. “Back door after I close. I'll leave a light on.”</p></div>
</section><nav class="choice-container rc-encounter-actions"><a class="button back-btn" data-passage="Market">Return to the Market</a></nav></main>
<</if>>
<</if>>
<<if setup.nikkiDead(State.variables)>>
<p>Nikki is gone. Her counter is closed.</p>
<a class="button" data-passage="Market">Return to the Market</a>
<<else>>
<<if !setup.chooseNikkiReward(State.variables, 'discount')>><<goto "Market">><<else>>
<main class="rc-encounter-page rc-fields-quest-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">MARKET / REWARD</span><h1>Nikki</h1></div></header><aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/nikki.jpg" alt="Nikki"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/nikki.jpg" alt=""><div><strong>Nikki</strong><span>Market owner</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Conversation</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I'll take the discount. We'll need supplies.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“All right. Fifteen percent, every time you buy here.” She writes your name in the ledger. “Done.”</p></div>
</section><nav class="choice-container rc-encounter-actions"><a class="button back-btn" data-passage="Market">Return to the Market</a></nav></main>
<</if>>
<</if>>
<<if setup.nikkiDead(State.variables)>>
<p>Nikki is gone. Her counter is closed.</p>
<a class="button" data-passage="Market">Return to the Market</a>
<<else>>
<<set _nikkiQuest = setup.ensureFieldsQuest(State.variables)>>
<<if _nikkiQuest.reward != 'romance'>><<goto "Market">><<elseif setup.nikkiTrustBroken(State.variables)>><<goto 'Yard_Nikki'>><<else>>
<<set _nikkiFirstVisit = !_nikkiQuest.private_visits>>
<main class="rc-encounter-page rc-fields-quest-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">MARKET / AFTER HOURS</span><h1>Nikki</h1></div><span class="rc-encounter-location">MARKET</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/nikki.jpg" alt="Nikki"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/nikki.jpg" alt=""><div><strong>Nikki</strong><span>Market owner</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<<if _nikkiFirstVisit>>
<p class="rc-encounter-event">The front shutter is down. Nikki is dragging one last crate out of the aisle when you come in through the back.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Since you're here, grab that end.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“You always put visitors to work?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Only when there's a crate in the way. Lift.”</p></div>
<p class="rc-encounter-event">You set it on the shelf together. Nikki brushes off her hands and comes back to you.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Now. Where were we?”</p></div>
<<else>>
<p class="rc-encounter-event">Nikki is counting the till when you arrive. She finishes the last column before looking up.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Give me a second.”</p></div>
<p class="rc-encounter-event">She shuts the ledger, bolts the door and comes around the counter.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“There. No more customers.”</p></div>
<</if>>
</section>
<nav class="choice-container rc-encounter-actions"><div class="rc-encounter-action-list"><a class="button dark-choice" data-passage="Nikki_Private_Service">Have sex</a><a class="button back-btn" data-passage="Market">Return to the Market</a></div></nav>
</main>
<</if>>
<</if>>
<<if setup.residentImprovised(State.variables, "gage")>><<goto "Farm_Bedrooms">><<else>>
<<if !setup.gageAtFarm(State.variables)>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-encounter-page rc-fields-quest-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">FARM / BEDROOMS</span><h1>Gage</h1></div></header><aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/gage.png" alt="Gage"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/gage.png" alt=""><div><strong>Gage</strong><span>Slave</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>Conversation</h2>
<p class="rc-encounter-event">Gage is sitting on the floor when you come in. He doesn't bother standing.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Gage</span></div><p><<if $player.yard_quest && $player.yard_quest.complete>>“You got the truck. What do you want now?”<<else>>“I told you where the yard is. What else do you want?”<</if>></p></div>
</section><nav class="choice-container rc-encounter-actions"><h2>Talk</h2><div class="rc-encounter-action-list">
<a class="button light-choice" data-passage="Gage_Feelings">Talk about his feelings</a>
<a class="button light-choice" data-passage="Gage_Past">Talk about his past</a>
<a class="button light-choice" data-passage="Gage_Unbounds">Talk about the Unbounds</a>
<a class="button back-btn" data-passage="Gage_Interact">End the conversation</a>
</div></nav></main>
<</if>>
<</if>>
<<if $player.base_location != "Farm" || $player.fields_ready || !$player.fields_quest || $player.fields_quest.stage != 'find_tools'>><<goto "Farm_Fields">><<else>>
<main class="rc-encounter-page rc-fields-quest-page rc-farm-inner-dialogue">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">FARM / FIELDS</span><h1>Fields</h1></div><span class="rc-encounter-location">FARM</span></header>
<aside class="rc-encounter-presence" aria-label="The player alone"><img class="rc-encounter-scene-image" src="assets/Location/banners/farm.webp" alt="The Farm"><h2>Present</h2><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>Alone</span></div></div></aside>
<section class="rc-encounter-log" aria-label="Private thoughts"><h2>Private thoughts</h2>
<p class="rc-encounter-event">The shovel goes in a few inches and stops. You wrench up a tangle of roots, then look across the rest of the field. The old rows have disappeared under weeds.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You / thought</span></div><p>At this rate I'll break the shovel before I clear a row.</p></div>
<p class="rc-encounter-event">You leave it by the barn. Someone at the Market might have better tools.</p>
</section>
<nav class="choice-container rc-encounter-actions"><div class="rc-encounter-action-list"><a class="button dark-choice" data-passage="Market">Go to the Market</a><a class="button back-btn" data-passage="Farm_Fields">Stay in the Fields</a></div></nav>
</main>
<</if>>
<<if setup.nikkiDead(State.variables)>>
<p>Nikki is gone. Her counter is closed.</p>
<a class="button" data-passage="Market">Return to the Market</a>
<<else>>
<<set _nikkiQuest = setup.ensureFieldsQuest(State.variables)>>
<<if _nikkiQuest.stage == 'ask_nikki'>><<goto "Market">>
<<elseif _nikkiQuest.stage == 'offer_pending'>><<goto "Nikki_Offer">>
<<elseif _nikkiQuest.stage == 'tell_nikki'>><<goto "Nikki_Report">>
<<elseif _nikkiQuest.stage == 'reward_pending'>><<goto "Nikki_Reward">>
<<else>>
<main class="rc-encounter-page rc-fields-quest-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">MARKET / COUNTER</span><h1>Nikki</h1></div><span class="rc-encounter-location">MARKET</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/nikki.jpg" alt="Nikki"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/nikki.jpg" alt=""><div><strong>Nikki</strong><span>Market owner</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<p class="rc-encounter-event">Nikki has the ledger open and a pencil behind one ear.</p>
<<if _nikkiQuest.reward == 'romance' && !setup.nikkiTrustBroken(State.variables)>>
<<if !_nikkiQuest.private_visits>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“I've still got customers. Come around after I close.”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Back already? Give me until closing. Till won't count itself.”</p></div>
<</if>>
<<elseif _nikkiQuest.stage == 'follow_road'>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Any sign of it?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Not yet.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Start by the barrier. That's where the driver was stopped.”</p></div>
<<elseif _nikkiQuest.stage == 'find_base'>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“You saw the truck?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“They've got it near the barrier. I had to pull back.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“All right. Don't rush in for my sake. I need to know where they take it.”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Need something? Have a look around. I've got orders to finish.”</p></div>
<</if>>
</section>
<nav class="choice-container rc-encounter-actions"><div class="rc-encounter-action-list"><<yardTopic "nikki">><<if _nikkiQuest.reward == 'romance' && !setup.nikkiTrustBroken(State.variables)>><a class="button dark-choice" data-passage="Nikki_Private">Spend time with Nikki after closing</a><</if>><a class="button back-btn" data-passage="Market">Return to the Market</a></div></nav>
</main>
<</if>>
<</if>>
<<if !setup.enterSupplierRoad(State.variables) || $player.fields_quest.bandit_round >= setup.fieldsBandits.length>><<goto "Outside">><<else>>
<<set _round = $player.fields_quest.bandit_round>>
<<set _bandit = setup.fieldsBandits[_round]>>
<main class="rc-threat-page rc-fields-threat-page">
<header class="rc-threat-header"><div class="rc-threat-mark" aria-hidden="true">!</div><div class="rc-threat-heading"><span class="rc-threat-kicker">SUPPLIER ROAD / HOSTILE CONTACT</span><h1>The stolen truck</h1><p>Nikki's delivery is under armed guard.</p></div><span class="rc-threat-status">DANGER</span></header>
<figure class="rc-threat-portrait"><img @src="_bandit.image" @alt="_bandit.name"><figcaption><span>IN YOUR WAY</span><strong><<print _bandit.name>></strong></figcaption></figure>
<section class="rc-threat-report"><h2>At the barrier</h2>
<<if _round == 0>>
<p class="rc-threat-lead">The tire tracks end at Nikki's truck. Two bandits are shifting crates in its bed. A third steps out from the broken barrier with a pistol in hand.</p>
<div class="dialog"><div class="rc-threat-signal"><span>BANDIT</span><p>“Keep walking.”</p></div></div>
<p>Behind him, two more climb into the cab. The engine turns over. The man with the pistol raises it before you can get near the truck.</p>
<<elseif _round == 1>>
<p class="rc-threat-lead">The pistol bandit lies still by the ditch. Boots scrape on the truck bed.</p>
<p>One of the loaders climbs down with a rifle and takes aim across the hood. The truck's engine is running now.</p>
<<else>>
<p class="rc-threat-lead">The rifleman goes down against the barrier. The truck lurches forward with the other raiders inside, shedding a crate as it pulls away.</p>
<p>The last loader cuts you off with a shotgun. He saw what happened to the other two. He sets his feet and waits.</p>
<</if>>
</section>
<nav class="rc-threat-actions"><h2>What will you do?</h2><div class="rc-threat-action-list"><a class="button danger-choice" data-passage="Combat_Gage">Fight the <<print _round == 0 ? 'pistol' : _round == 1 ? 'rifle' : 'shotgun'>> bandit</a><<if _round == 0>><a class="button" data-passage="Supplier_Road">Retreat to the road</a><</if>></div></nav>
</main>
<</if>>
<<if setup.nikkiDead(State.variables)>>
<p>Nikki is gone. Her counter is closed.</p>
<a class="button" data-passage="Market">Return to the Market</a>
<<else>>
<<if !$player.fields_quest || $player.fields_quest.stage != 'offer_pending'>><<goto "Market">><<else>>
<main class="rc-encounter-page rc-fields-quest-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">MARKET / PROPOSAL</span><h1>Nikki</h1></div><span class="rc-encounter-location">MARKET</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/nikki.jpg" alt="Nikki"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/nikki.jpg" alt=""><div><strong>Nikki</strong><span>Market owner</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<p class="rc-encounter-event">Nikki is halfway up a stepladder with a sack on one shoulder. She gets it onto the shelf before speaking.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Changed your mind about the road?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I'll see who's taking the deliveries.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Good. I haven't found them sitting here.” She climbs down and takes the driver's marked scrap from her ledger.</p></div>
</section>
<nav class="choice-container rc-encounter-actions"><div class="rc-encounter-action-list"><a class="button dark-choice" data-passage="Nikki_Accept">Investigate the supplier attacks</a><a class="button back-btn" data-passage="Market">Return to the Market</a></div></nav>
</main>
<</if>>
<</if>>
<<if setup.nikkiDead(State.variables)>>
<p>Nikki is gone. Her counter is closed.</p>
<a class="button" data-passage="Market">Return to the Market</a>
<<else>>
<<if !$player.fields_quest || $player.fields_quest.stage != 'offer_pending'>><<goto "Market">><<else>>
<main class="rc-encounter-page rc-fields-quest-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">MARKET / THE STOLEN LOAD</span><h1>Nikki</h1></div><span class="rc-encounter-location">MARKET</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/nikki.jpg" alt="Nikki"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/nikki.jpg" alt=""><div><strong>Nikki</strong><span>Market owner</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I'll go.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“Broken barrier on Supplier Road. That's where they stopped him.” She lays the driver's scrap beside two older deliveries crossed out on the same route.</p></div>
<p class="rc-encounter-event">Beside one of the earlier losses, someone has written <em>Unbounds</em> in the margin.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Unbounds?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“A driver heard it on the first raid. Cory's had people looking since then. None of them found anything.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I'll start at the barrier.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Nikki</span></div><p>“If the truck's there, try to keep it in one piece.”</p></div>
</section>
<nav class="choice-container rc-encounter-actions rc-fields-accept-actions"><div class="rc-encounter-action-list"><<link "Follow Supplier Road" "Supplier_Road">><<run setup.acceptNikkiJob(State.variables)>><</link>><<link "Prepare at the Market" "Market">><<run setup.acceptNikkiJob(State.variables)>><</link>></div></nav>
</main>
<</if>>
<</if>>
<<if !setup.chooseGageFate(State.variables, 'killed')>><<goto "Outside">><<else>>
<main class="rc-encounter-page rc-fields-quest-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">SUPPLIER ROAD / DECISION</span><h1>Gage</h1></div></header><aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/gage.png" alt="Gage"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/gage.png" alt=""><div><strong>Gage</strong><span>Captured raider</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>At the barrier</h2>
<p class="rc-encounter-event">Gage follows your glance toward the empty road. He starts to bargain. You kill him before he gets the words out.</p>
<p class="rc-encounter-event">You leave him beside the loading rack. The location he gave you is enough to take back to Nikki.</p>
</section><nav class="choice-container rc-encounter-actions"><a class="button dark-choice" data-passage="Market">Go to the Market</a></nav></main>
<</if>>
<<if !setup.chooseGageFate(State.variables, 'left_to_die')>><<goto "Outside">><<else>>
<main class="rc-encounter-page rc-fields-quest-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">SUPPLIER ROAD / DECISION</span><h1>Gage</h1></div></header><aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/gage.png" alt="Gage"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/gage.png" alt=""><div><strong>Gage</strong><span>Captured raider</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside><section class="rc-encounter-log"><h2>At the barrier</h2>
<p class="rc-encounter-event">You bind Gage to the loading rack and take his water. The truck is gone. He can see the dead men from where you leave him.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Gage</span></div><p>“Someone will come back.”</p></div>
<p class="rc-encounter-event">You walk toward the Market. He calls after you once. Then the road goes quiet.</p>
</section><nav class="choice-container rc-encounter-actions"><a class="button dark-choice" data-passage="Market">Go to the Market</a></nav></main>
<</if>>
<<if setup.nikkiDead(State.variables)>>
<p>Nikki is gone. Her counter is closed.</p>
<a class="button" data-passage="Market">Return to the Market</a>
<<else>>
<<set _nikkiQuest = setup.ensureFieldsQuest(State.variables)>>
<<if _nikkiQuest.reward != 'romance'>><<goto "Market">><<elseif setup.nikkiTrustBroken(State.variables)>><<goto 'Yard_Nikki'>><<else>>
<<set _nikkiQuest.private_visits += 1>>
<<set _nikkiPool = setup.serviceVideoPools.nikki>>
<main class="scene-content rc-service-page rc-nikki-private" data-rc-service="nikki">
<header class="rc-service-header"><img src="assets/cast/nikki.jpg" alt="Nikki"><div><span>MARKET / AFTER HOURS</span><h1>Nikki</h1></div></header>
<div class="video-container"><video class="scene-video" autoplay muted loop playsinline @src="_nikkiPool.blowjob[0]"></video></div>
<div class="service-menu"><div class="menu-title">Choose an action:</div><div class="service-buttons">
<a class="service-btn" data-rc-video="blowjob" role="button" tabindex="0">Blowjob</a>
<a class="service-btn" data-rc-video="vaginal" role="button" tabindex="0">Vaginal</a>
<a class="service-btn" data-rc-video="cum" role="button" tabindex="0">Finish</a>
</div></div>
<nav class="choice-container"><a class="button back-btn" data-passage="Market">Return to the Market</a></nav>
</main>
<</if>>
<</if>>
<<if !setup.residentImprovised(State.variables, "emily") && setup.fieldsUnboundsAvailable(State.variables) && ['ally', 'slave'].includes($player.emily_status) && $player.emily_depot && $player.emily_depot.complete>>
<div class="scene-content"><div class="dialog-container"><<emilyDepotExisting "unbounds">></div></div>
<<else>>
<<if setup.residentImprovised(State.variables, "emily")>><<goto "Farm_Bedrooms">><<else>>
<<if !setup.fieldsUnboundsAvailable(State.variables) || !['ally', 'slave'].includes($player.emily_status)>><<goto "Safehouse">><<else>>
<main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker"><<if $player.base_location == "Farm">>FARM / BEDROOMS<<else>>SAFEHOUSE / EMILY<</if>></span><h1>Emily</h1></div><span class="rc-encounter-location">EMILY / UNBOUNDS</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/emily.jpg" alt="Emily"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/emily.jpg" alt=""><div><strong>Emily</strong><span>Survivor</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>"Have you heard of the Unbounds?"</p></div>
<<if $player.emily_status == "ally">>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Emily</span></div><p>"My old group mentioned them a few times. They said the Unbounds were recruiting people. That's all I heard."</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Emily</span></div><p>"My old group mentioned that name a few times. They said the Unbounds were recruiting people. I don't know anything else."</p></div>
<</if>>
<p class="rc-encounter-event">You find yourself wondering if the Unbounds would recruit you, too. Emily notices you've gone quiet.</p>
<<if $player.emily_status == "ally">>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Emily</span></div><p>"Do you think my group might be with them?"</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Emily</span></div><p>"Is that why you're asking? Do you think my group is with them?"</p></div>
<</if>>
</section>
<nav class="choice-container rc-encounter-actions"><div class="rc-encounter-action-list"><a class="button back-btn" data-passage="Emily_Talk_Menu">Return to the conversation</a></div></nav>
</main>
<</if>>
<</if>>
<</if>>
<<if setup.residentImprovised(State.variables, "lena")>><<goto "Farm_Bedrooms">><<else>>
<<if !setup.fieldsUnboundsAvailable(State.variables) || $player.lena_status != 'slave'>><<goto "Safehouse">><<else>>
<main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker"><<if $player.base_location == "Farm">>FARM / BEDROOMS<<else>>SAFEHOUSE / LENA<</if>></span><h1>Lena</h1></div><span class="rc-encounter-location">LENA / UNBOUNDS</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/lena.jpg" alt="Lena"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/lena.jpg" alt=""><div><strong>Lena</strong><span>Survivor</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>"Ever deal with the Unbounds?"</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lena</span></div><p>"A pain in the ass. Before you caught me, I grabbed people and delivered them to camps for cash or favors. The Unbounds paid next to nothing for slaves."</p></div>
<p class="rc-encounter-event">Lena gives a dry laugh.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lena</span></div><p>"Shady as hell, too. I still did business with them."</p></div>
</section>
<nav class="choice-container rc-encounter-actions"><div class="rc-encounter-action-list"><a class="button back-btn" data-passage="Lena_Talk_Menu">Return to the conversation</a></div></nav>
</main>
<</if>>
<</if>>
<<if setup.residentImprovised(State.variables, "sophia")>><<goto "Farm_Bedrooms">><<else>>
<<set _sophiaRole = setup.farmSophiaRole($player)>>
<<if !setup.fieldsUnboundsAvailable(State.variables) || !['ally', 'slave'].includes(_sophiaRole)>><<goto "Safehouse">><<else>>
<main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker"><<if $player.base_location == "Farm">>FARM / BEDROOMS<<else>>SAFEHOUSE / SOPHIA<</if>></span><h1>Sophia</h1></div><span class="rc-encounter-location">SOPHIA / UNBOUNDS</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/sophia.jpg" alt="Sophia"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/sophia.jpg" alt=""><div><strong>Sophia</strong><span>Survivor</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>"Do you know anything about the Unbounds?"</p></div>
<<if _sophiaRole == 'ally'>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>"No. Before I met you, I stayed clear of everyone."</p></div>
<p class="rc-encounter-event">Her gaze drifts to the doorway.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>"If I spotted someone down the street, I ran. I never got close enough to learn what group they were with."</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>"I don't know them, master. I kept away from people."</p></div>
<p class="rc-encounter-event">Sophia looks at the floor.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sophia</span></div><p>"If I saw someone coming, I ran before they could reach me. I don't know anything about their groups."</p></div>
<</if>>
</section>
<nav class="choice-container rc-encounter-actions"><div class="rc-encounter-action-list"><a class="button back-btn" data-passage="Sophia_Talk_Menu">Return to conversation</a></div></nav>
</main>
<</if>>
<</if>>
<<if setup.residentImprovised(State.variables, "kenzie")>><<goto "Farm_Bedrooms">><<else>>
<<if !setup.kenzieUnboundsAvailable(State.variables)>><<if $kenzie && $kenzie.outcome == "saved">><<goto "Residential_District">><<else>><<goto "Safehouse">><</if>><<else>>
<main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker"><<if $kenzie.outcome == "saved">>RESIDENTIAL DISTRICT / KENZIE<<elseif $player.base_location == "Farm">>FARM / BEDROOMS<<else>>SAFEHOUSE / KENZIE<</if>></span><h1>Kenzie</h1></div><span class="rc-encounter-location">KENZIE / UNBOUNDS</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>"What do you know about the Unbounds?"</p></div>
<<if $kenzie.outcome != 'camp_slave'>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>"Can't stand them. They only care about themselves. Cory's camp looked after people, so I stuck around."</p></div>
<p class="rc-encounter-event">Kenzie hesitates.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>"A friend of mine didn't see it that way. We argued. She's with the Unbounds now; I stayed with Cory."</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>"I hate them. They don't care what happens to anyone but themselves. Cory's camp did, so that's where I stayed."</p></div>
<p class="rc-encounter-event">Kenzie looks away.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>"I had a friend who thought the Unbounds had it right. We split over it. She's with them now. I stayed at Cory's camp."</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p>"That's all you're getting from me."</p></div>
<</if>>
</section>
<nav class="choice-container rc-encounter-actions"><div class="rc-encounter-action-list"><a class="button back-btn" data-passage="Kenzie_Talk_Menu">Return to the conversation</a></div></nav>
</main>
<</if>>
<</if>>
<<if setup.residentImprovised(State.variables, "kenzie")>><<goto "Farm_Bedrooms">><<else>>
<<if !$kenzie || ($kenzie.outcome != "saved" && !setup.kenzieUnboundsAvailable(State.variables) && !setup.b12Eligible(State.variables))>><<goto "Safehouse">><<else>>
<main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker"><<if $kenzie.outcome == "saved">>RESIDENTIAL DISTRICT / KENZIE<<elseif $player.base_location == "Farm">>FARM / BEDROOMS<<else>>SAFEHOUSE / KENZIE<</if>></span><h1>Kenzie</h1></div><span class="rc-encounter-location">KENZIE / CONVERSATION</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/kenzie.jpg" alt="Kenzie"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/kenzie.jpg" alt=""><div><strong>Kenzie</strong><span>Scout</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Kenzie</span></div><p><<if $kenzie.outcome != 'camp_slave'>>"You wanted to ask me something?"<<else>>"Go ahead. Ask."<</if>></p></div></section>
<nav class="choice-container rc-encounter-actions"><h2>Talk</h2><div class="rc-encounter-action-list"><<if $kenzie.outcome == "saved">><a class="button light-choice" data-passage="Kenzie_Reminisce">Talk about the mansion</a><</if>><<if setup.kenzieUnboundsAvailable(State.variables)>><a class="button light-choice" data-passage="Kenzie_Unbounds">Ask about the Unbounds</a><</if>>
<<b12TalkLinks>>
<a class="button back-btn" data-passage="Kenzie_Interact">End the conversation</a></div></nav>
</main>
<</if>>
<</if>>
<<if setup.residentImprovised(State.variables, "emily")>><<goto "Farm_Bedrooms">><<else>>
<<if $player.base_location != "Farm" || !["ally", "slave"].includes($player.emily_status)>><<goto "Safehouse">><<else>>
<<if !$player.emily_locket>><<run setup.startEmilyLocket(State.variables)>><</if>>
<<if !$player.emily_locket || $player.emily_locket.stage != "search">><<goto "Safehouse">><<else>>
<main class="rc-encounter-page rc-emily-locket-dialogue">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">FARM / BEDROOMS</span><h1>Emily</h1></div><span class="rc-encounter-location">FARM</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/emily.jpg" alt="Emily"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/emily.jpg" alt=""><div><strong>Emily</strong><span>Resident</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<p class="rc-encounter-event">Emily opens a drawer, closes it, then checks under the bed. A blanket and half her clothes are scattered across the floor.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“What are you looking for?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Emily</span></div><p>“My necklace. I had it in a little tin beside my bed. I thought I packed it.”</p></div>
<p class="rc-encounter-event">She lifts the blanket and looks beneath it again.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Emily</span></div><p>“There's a photo inside. Me and my family, before everything happened.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Could it still be at the old house?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Emily</span></div><p>“Maybe. I kept the tin against the wall, near the shelf. We were in such a hurry when we moved.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I'll go look for it.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Emily</span></div><p>“You will?” She sets the blanket down. “Thank you.”</p></div>
</section>
<nav class="choice-container rc-encounter-actions"><div class="rc-encounter-action-list"><a class="button back-btn" data-passage="Safehouse">Return to the Farm</a></div></nav>
</main>
<</if>><</if>>
<</if>>
<<if $player.base_location != "Farm" || !$player.emily_locket || $player.emily_locket.stage != "search">><<goto "Old_Safehouse">><<else>>
<main class="rc-encounter-page rc-emily-locket-event">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">OLD SAFEHOUSE / EMILY'S NECKLACE</span><h1>The old room</h1></div><span class="rc-encounter-location">OLD SAFEHOUSE</span></header>
<aside class="rc-encounter-presence" aria-label="The old house"><img class="rc-encounter-scene-image" src="assets/Location/banners/safehouse.webp" alt="The room in the old safehouse"><h2>Present</h2><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>Alone</span></div></div></aside>
<section class="rc-encounter-log"><h2>Search</h2>
<p class="rc-encounter-event">A bedroll lies where the group used to keep spare blankets. Two provisions sit beside it. Someone has been sleeping here since the move.</p>
<p class="rc-encounter-event">Emily's tin should be in the room beyond the kitchen. The bedroll and food are within reach.</p>
</section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list">
<a class="button light-choice" data-passage="Emily_Locket_Steal">Steal everything</a>
<a class="button neutral-choice" data-passage="Emily_Locket_Leave">Leave it all there</a>
<a class="button back-btn" data-passage="Old_Safehouse">Back to the old safehouse</a>
</div></nav>
</main>
<</if>>
<<if setup.residentImprovised(State.variables, "emily")>><<goto "Farm_Bedrooms">><<else>>
<<if !$player.emily_locket || $player.emily_locket.stage != "found" || !["ally", "slave"].includes($player.emily_status)>><<goto "Safehouse">><<else>>
<<run setup.returnEmilyLocket(State.variables)>>
<main class="rc-encounter-page rc-emily-locket-dialogue">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">FARM / BEDROOMS</span><h1>Emily</h1></div><span class="rc-encounter-location">FARM</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/emily.jpg" alt="Emily"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/emily.jpg" alt=""><div><strong>Emily</strong><span>Resident</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<p class="rc-encounter-event">Emily is at her desk when you put the tin in front of her. She picks it up at once.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Emily</span></div><p>“You found it!”</p></div>
<p class="rc-encounter-event">She opens the locket and grins at the little photo.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Emily</span></div><p>“Look at us.” She holds the photo up for you to see. “I thought I'd never see their faces again.”</p></div>
<<if $player.emily_status == "ally">>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Emily</span></div><p>“I can't believe you went all the way back for me.” She puts the necklace on, still smiling. “Come here.”</p></div>
<p class="rc-encounter-event">She pulls you close and kisses you. When she lets go, she keeps hold of your hand.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Emily</span></div><p>“Stay with me for a bit?”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Emily</span></div><p>“I thought I'd lost the last photo I had of them.” She fastens the chain around her neck. “Thank you. Really.”</p></div>
<</if>>
</section>
<nav class="choice-container rc-encounter-actions"><div class="rc-encounter-action-list">
<<if $player.emily_status == "ally">><a class="button dark-choice" data-passage="Emily_Service">Stay with Emily</a><</if>>
<a class="button back-btn" data-passage="Emily_Interact">Return to Emily</a>
</div></nav>
</main>
<</if>>
<</if>>
<<if $player.base_location != "Farm" || !$player.emily_locket || $player.emily_locket.stage != "found">><<goto "Old_Safehouse">><<else>>
<main class="rc-encounter-page rc-emily-locket-event">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">OLD SAFEHOUSE / EMILY'S NECKLACE</span><h1>What you found</h1></div><span class="rc-encounter-location">OLD SAFEHOUSE</span></header>
<aside class="rc-encounter-presence" aria-label="The old house"><img class="rc-encounter-scene-image" src="assets/Location/banners/safehouse.webp" alt="The room in the old safehouse"><h2>Present</h2><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>Alone</span></div></div></aside>
<section class="rc-encounter-log"><h2>Search</h2>
<<if $player.emily_locket.supplies == "taken">>
<p class="rc-encounter-event">You roll up the bedroll and put the provisions in your bag. You'll bring it all home.</p>
<<if $player.emily_locket.supplies_amount > 2>><<partyAssist "emily" `"+" + ($player.emily_locket.supplies_amount - 2) + ($player.emily_locket.supplies_amount == 3 ? " provision" : " provisions")`>><</if>>
<<else>>
<p class="rc-encounter-event">You leave the bedroll and provisions where you found them, then go into Emily's old room.</p>
<</if>>
<p class="rc-encounter-event">The tin is behind the low shelf, close to the wall where Emily remembered it. Inside, beneath a folded scrap of cloth, is her necklace.</p>
<p class="rc-encounter-event">You open the locket. A small photo shows Emily with her family before the outbreak. You close it and put it somewhere safe for the trip back.</p>
</section>
<nav class="choice-container rc-encounter-actions"><div class="rc-encounter-action-list"><a class="button back-btn" data-passage="Old_Safehouse">Back to the old safehouse</a></div></nav>
</main>
<</if>>
<<if $player.base_location == "Farm" && $player.emily_locket && $player.emily_locket.stage == "search">>
<<run setup.findEmilyLocket(State.variables, 'taken')>>
<<goto "Emily_Locket_Result">>
<<else>>
<<goto "Old_Safehouse">>
<</if>>
<<if $player.base_location == "Farm" && $player.emily_locket && $player.emily_locket.stage == "search">>
<<run setup.findEmilyLocket(State.variables, 'left')>>
<<goto "Emily_Locket_Result">>
<<else>>
<<goto "Old_Safehouse">>
<</if>>
<<set $player.met_cory = true>>
<main class="rc-resident-page">
<header class="rc-resident-header"><div class="rc-resident-portrait"><img src="assets/cast/cory.jpg" alt="Cory"></div>
<div class="rc-resident-identity"><span class="rc-ui-kicker">SETTLEMENT / ADMINISTRATION</span><h1>Cory</h1>
<div class="rc-resident-facts"><div><span>Role</span><strong>Settlement leader</strong></div><div><span>Location</span><strong>Administration</strong></div></div>
</div></header>
<section class="rc-resident-options"><div class="rc-resident-options-heading"><span class="rc-ui-kicker">AVAILABLE ACTIONS</span><h2>Speak with Cory</h2></div>
<nav class="rc-resident-actions" aria-label="Interact with Cory">
<a class="rc-resident-action" data-passage="Cory_Quests" data-npc-action="other"><span>01 / Settlement work</span><strong>Quests</strong><small>Ask about the posted requests</small></a>
<a class="rc-resident-action" data-passage="Cory_Talk_Menu" data-npc-action="dialogue"><span>02 / Conversation</span><strong>Talk</strong><small>Speak with Cory</small></a>
<<if $player.yard_quest && $player.yard_quest.complete>>
<a class="rc-resident-action rc-resident-action-private" data-passage="Cory_Nikki_Night" data-npc-action="media"><span>Private</span><strong>Spend the night with Them</strong><small>Join Cory and Nikki</small></a>
<a class="rc-resident-action rc-resident-action-private" data-passage="Cory_Night" data-npc-action="media"><span>Private</span><strong>Spend the night with Cory</strong><small>Spend time with Cory</small></a>
<</if>>
</nav>
</section><nav class="rc-resident-exit"><a class="button back-btn" data-passage="Administration">← Return to Administration</a></nav>
</main>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I wanted to ask about the jobs on the board.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Cory</span></div><p>“Which one?”</p></div>
<nav class="choice-container"><<yardTopic "cory">><a class="button light-choice" data-passage="Cory_Meat_Advice">Bring 20 raw meat</a><a class="button light-choice" data-passage="Cory_Slaves_Advice">Deliver two slaves</a><a class="button light-choice" data-passage="Cory_Talk">Back to Cory</a></nav>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Can't Nikki supply the meat?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Cory</span></div><p>“She does. But we're feeding everyone here, and I'd rather not leave all of it to her.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Cory</span></div><p>“If you're up for hunting, try the forest. Take a weapon with you and rest between trips.”</p></div>
<<if $player.meat_quest_active && $player.Raw_meat gte 20>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I've already got the twenty.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Cory</span></div><p>“Good. Hand it in at the board when you're ready.”</p></div>
<</if>>
<nav class="choice-container"><a class="button light-choice" data-passage="Cory_Quests">Back to quest topics</a><a class="button light-choice" data-passage="Cory_Talk">Back to Cory</a></nav>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“What are the two slaves for?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Cory</span></div><p>“Work. Repairs, mostly. I've got people trying to fix the walls when they should be watching the gate.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Any idea where I should look?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Cory</span></div><p>“The raiders in the City Center. Take one alive if you can. Get their weapon off them and tie their hands before you bring them here.”</p></div>
<<if $slave_quest_completed == 1>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Cory</span></div><p>“You've already brought me the two I asked for. I don't need any more.”</p></div>
<<elseif $player.slave_quest_active && $player.slaves gte 2>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I've got two to hand over.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Cory</span></div><p>“All right. Finish the delivery at the board. I'll see that you get paid.”</p></div>
<</if>>
<nav class="choice-container"><a class="button light-choice" data-passage="Cory_Quests">Back to quest topics</a><a class="button light-choice" data-passage="Cory_Talk">Back to Cory</a></nav>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Have you got a minute?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Cory</span></div><p>“A minute, yes. Sit down.”</p></div>
<nav class="choice-container"><a class="button light-choice" data-passage="Cory_Settlement">Talk about settlement</a><a class="button light-choice" data-passage="Cory_About">Talk about her</a><a class="button light-choice" data-passage="Cory_Talk">Back to Cory</a></nav>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I haven't had much of a look around yet.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Cory</span></div><p>“Go see Nikki, then. She runs the market. She'll sell you what you need and buy whatever you've got spare.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“You trust her?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Cory</span></div><p>“Completely. She's a friend.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Cory</span></div><p>“Lesana's got the Matriarch bar. That's where you go for a drink.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“You ever stop by?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Cory</span></div><p>“Not often.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“And that slave market?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Cory</span></div><p>“They buy and sell captives there.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Cory</span></div><p>“The residential district is mostly homes. There's also a woman here who charges for company.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Everyone comes here when there's a problem?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Cory</span></div><p>“Yes. Work goes on the board. Anything that can't wait, you come and tell me.”</p></div>
<nav class="choice-container"><a class="button light-choice" data-passage="Cory_Talk_Menu">Back to talk topics</a><a class="button light-choice" data-passage="Cory_Talk">Back to Cory</a></nav>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Tell me a bit about yourself.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Cory</span></div><p>“I run this place. I'll do whatever I have to for my people.”</p></div>
<p class="rc-encounter-event">She picks up her pen again.</p>
<nav class="choice-container"><a class="button light-choice" data-passage="Cory_Talk_Menu">Back to talk topics</a><a class="button light-choice" data-passage="Cory_Talk">Back to Cory</a></nav>
<<if setup.sarahLivesAtBase($player)>><<goto "Sarah_Interact">><<else>><<goto "Old_Safehouse">><</if>>
<<if !setup.sarahAtOldSafehouse($player)>><<goto "Old_Safehouse">><<else>>
<<set _sarahStory = setup.sarahStory($player)>>
<<if _sarahStory.access>><<goto "Old_Safehouse">>
<<elseif _sarahStory.fight == "pending">><<goto "Combat_Sarah">>
<<elseif _sarahStory.fight == "active">><<goto "Combat_Enemy_Turn">>
<<elseif _sarahStory.fight == "won">><<goto "Sarah_Victory">>
<<elseif setup.sarahMercyPending($player)>><<goto "Sarah_Mercy">>
<<elseif _sarahStory.recruitment_pending>><<goto "Sarah_Mercy_Reply">>
<<elseif _sarahStory.question_pending>><<goto "Sarah_Group_Question">><<else>>
<<set $player.current_location = "Old Safehouse">>
<<set _sarahMet = !!$player.met_sarah>>
<<set $player.met_sarah = true>>
<main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">OLD SAFEHOUSE / NEW RESIDENT</span><h1>Sarah</h1></div><span class="rc-encounter-location">OLD SAFEHOUSE</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/sarah-banks.jpg" alt="Sarah"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/sarah-banks.jpg" alt=""><div><strong>Sarah</strong><span>Resident</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<<if _sarahMet>>
<p class="rc-encounter-event">Sarah spots you coming up the path and steps into the doorway.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Back again? I told you to leave.”</p></div>
<<else>>
<p class="rc-encounter-event">As you reach the front steps, a woman opens the door. She stays in the doorway, one hand against the frame.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Stop there. What do you want?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I used to live here.”</p></div>
<p class="rc-encounter-event">She looks back into the house, then at you.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Well, you left. It was empty when I found it.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“What's your name?”</p></div>
<div class="rc-encounter-statement" data-reveal-character="Sarah"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Sarah. And I live here now.”</p></div>
<</if>>
<p class="rc-encounter-event">She points down the path without moving aside.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Go on. I don't want you hanging around my house.”</p></div>
</section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list">
<<if _sarahMet>>
<<if setup.sarahCanDiscussTheft($player)>><a class="button neutral-choice" data-passage="Sarah_Necklace">Talk about taking her things</a><</if>>
<<if _sarahStory.theft != "admitted">><a class="button neutral-choice" data-passage="Sarah_Trust">Try to get her trust</a><</if>>
<<else>><a class="button neutral-choice" data-passage="Sarah_Necklace"><<if $player.emily_locket.supplies == "taken">>Mention your last visit and admit taking her things<<else>>Mention your last visit<</if>></a><</if>>
<a class="button back-btn" data-passage="Outside">Leave the area</a>
</div></nav>
</main>
<</if>>
<</if>>
<<if !setup.sarahAtOldSafehouse($player)>><<goto "Old_Safehouse">><<else>>
<<if $player.emily_locket.supplies == "taken" and !setup.admitSarahTheft($player)>><<goto "Sarah_Talk">><<else>>
<<set $player.current_location = "Old Safehouse">>
<main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">OLD SAFEHOUSE / CONVERSATION</span><h1>Sarah</h1></div><span class="rc-encounter-location">OLD SAFEHOUSE</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/sarah-banks.jpg" alt="Sarah"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/sarah-banks.jpg" alt=""><div><strong>Sarah</strong><span>Resident</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I came by recently. There was nobody home.”</p></div>
<p class="rc-encounter-event">Sarah glances over her shoulder.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Wait. Were you the one who came inside while I was out?”</p></div>
<<if $player.emily_locket.supplies == "taken">>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Yes. I took the food and the bedroll, too.”</p></div>
<p class="rc-encounter-event">Sarah grips the door frame.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Those were mine. You knew someone was staying here and you took them anyway?”</p></div>
<p class="rc-encounter-event">She draws her pistol, keeping it low.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Then give them back.”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Yes. I left your food and bedroll where they were.”</p></div>
<p class="rc-encounter-event">She lets go of the door frame, but stays in your way.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“You could have waited and asked me.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I didn't know who'd moved in.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Now you do. I'm asking you to leave.”</p></div>
<</if>>
</section>
<nav class="choice-container rc-encounter-actions"><div class="rc-encounter-action-list">
<<if $player.emily_locket.supplies == "taken">>
<<if setup.sarahCanReturnItems($player)>><a class="button light-choice" data-passage="Sarah_Return_Items">Return her things and apologize (2 Provisions)</a>
<<else>><span class="button light-choice disabled" role="button" aria-disabled="true">Return her things · need 2 Provisions</span><</if>>
<a class="button dark-choice" data-passage="Sarah_Refuse_Return">Refuse to return her things</a>
<a class="button back-btn" data-passage="Outside">Leave for now</a>
<<else>><a class="button back-btn" data-passage="Outside">Leave the area</a><</if>>
</div></nav>
</main>
<</if>>
<</if>>
<<set _lesana = setup.ensureLesanaStory(State.variables)>>
<<if _lesana.stage == 'unseen'>><<run setup.startLesanaIncident(State.variables)>><</if>>
<<if _lesana.stage != 'fight'>><<goto "Bar">><<elseif _lesana.approach>><<goto "Lesana_Combat">><<else>>
<p class="rc-encounter-event">You sit at the counter with a drink. Lesana has a small glass of her own beside the cloth.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“How's the house? Door still closing?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Better than it did.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Good. Wouldn't want you sleeping out there.”</p></div>
<p class="rc-encounter-event">Three men come in. One shoves a customer off a stool. Another takes the bottle from his table and drinks straight from it.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Put that down. And leave him alone.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Man</span></div><p>“We're just having a drink.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Then pay for your own. You don't touch my customers.”</p></div>
<p class="rc-encounter-event">The man nearest the counter pulls a pistol. Lesana reaches below the bar. He fires before she can get her gun.</p>
<p class="rc-encounter-event">The shot hits her good arm. She falls against the shelves, leaving the gun beneath the counter. Glass breaks beside her.</p>
<p class="rc-encounter-event">People drop to the floor. Two customers run for the door, knocking a chair into the gunman's legs. He turns toward them. You're beside him.</p>
<nav class="choice-container"><a class="button dark-choice" data-passage="Lesana_Rush">Grab his gun arm</a><a class="button light-choice" data-passage="Lesana_Bottle">Hit him with the bottle</a></nav>
<</if>>
<<run setup.beginLesanaFight(State.variables, 'rush')>>
<<goto "Lesana_Combat">>
<<run setup.beginLesanaFight(State.variables, 'bottle')>>
<<goto "Lesana_Combat">>
<<set _lesana = setup.ensureLesanaStory(State.variables)>>
<<if _lesana.stage != 'expelled'>><<goto "Bar">><<else>>
<<if _lesana.approach == 'rush'>>
<p class="rc-encounter-event">You catch his wrist and shove the pistol toward the ceiling. He tries to pull away. You force his hand against the counter. The pistol falls beneath your stool, and you knock him to the floor.</p>
<<else>>
<p class="rc-encounter-event">You swing the bottle into his wrist. He drops the pistol with a shout. You kick it beneath your stool and shove him hard into the counter. He goes down.</p>
<</if>>
<p class="rc-encounter-event">The second man comes at you with the stolen bottle. You duck his swing, hit him in the stomach and push him over a table.</p>
<p class="rc-encounter-event">The third catches your shoulder. You turn, drive him back against the door and pull it open. He stumbles onto the street. You pick up the pistol before the others can reach it.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Get up. Both of you. Out.”</p></div>
<p class="rc-encounter-event">The gunman scrambles to his feet. His friend follows, holding his stomach. You stop them just outside the doorway.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Keep walking. Right through the gate. If I see you in this camp again, you won't get another warning.”</p></div>
<p class="rc-encounter-event">One looks back at the pistol in your hand. All three hurry down the street. You call to a gate guard and point them out. He follows them while another guard takes the gun from you.</p>
<p class="rc-encounter-event">You return to the counter. Lesana is sitting on the floor, pressing the cloth against her arm.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“They're gone. Let me help.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Clean cloths. Bottom shelf. This one's soaked.”</p></div>
<nav class="choice-container"><a class="button light-choice" data-passage="Lesana_Help">Help with her arm</a></nav>
<</if>>
<<set _lesana = setup.ensureLesanaStory(State.variables)>>
<<if _lesana.stage == 'expelled'>><<run setup.helpLesana(State.variables)>><</if>>
<<if _lesana.stage != 'recovering'>><<goto "Bar">><<else>>
<p class="rc-encounter-event">You fold a clean cloth and hold it against the wound. Lesana grips your sleeve.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“There. Keep pressing.”</p></div>
<p class="rc-encounter-event">A customer crawls out from under a table. You ask him to fetch someone who can treat a gunshot. He nods and runs outside.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Can you stand?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“With a hand, yes.”</p></div>
<p class="rc-encounter-event">You support her back and help her into a chair. She looks up at you, still holding your sleeve.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“You're pretty strong, aren't you?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Strong enough to get you into a chair.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Saw what you did to those three, too.”</p></div>
<p class="rc-encounter-event">The customer returns with a woman carrying bandages. You stay beside Lesana while she checks the wound and dresses her arm. Outside, a guard confirms that the men have been sent beyond the gate.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Someone turn the sign. We're closed.”</p></div>
<p class="rc-encounter-event">The last customers leave. You set the fallen stools upright and put a glass of water within her reach.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Thanks. For all of it.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I'll come back and see how you're doing.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Good. Come sit with me when I'm less of a mess.”</p></div>
<nav class="choice-container"><a class="button neutral-choice" data-passage="Bar">Let her rest</a></nav>
<</if>>
<<set _lesana = setup.ensureLesanaStory(State.variables)>>
<<if !setup.lesanaInvitationAvailable(State.variables) && _lesana.stage != 'romance'>><<goto "Bar">><<else>>
<<if _lesana.stage == 'romance'>>
<p class="rc-encounter-event">Lesana has kept the stool beside her empty. She taps the seat when she sees you.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“There you are. Come here.”</p></div>
<p class="rc-encounter-event">You sit close. She kisses you, then leaves her hand on your knee.</p>
<<else>>
<p class="rc-encounter-event">Lesana is sitting behind the counter. Her arm is bandaged, and the broken glass has been cleared away.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Was wondering when you'd show up.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“How's the arm?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Hurts. They want me to leave it alone. Apparently running a bar doesn't count as resting.”</p></div>
<p class="rc-encounter-event">You pull up the stool beside her.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Want me to help around here?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Later. Sit with me first.”</p></div>
<p class="rc-encounter-event">She looks at you for a moment, then moves her knee against yours.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“I liked having you here. Before those idiots came in.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I liked it, too.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Then stay a while. Just us this time.”</p></div>
<</if>>
<nav class="choice-container"><<if _lesana.stage == 'romance'>><a class="button light-choice" data-passage="Lesana_Private">Spend some time alone</a><<else>><a class="button light-choice" data-passage="Lesana_Romance">Stay close to her</a><</if>><a class="button neutral-choice" data-passage="Bar">Head out for now</a></nav>
<</if>>
<<if !setup.lesanaMediaAvailable(State.variables)>><<run setup.startLesanaRomance(State.variables)>><</if>>
<<if !setup.lesanaMediaAvailable(State.variables)>><<goto "Bar">><<else>>
<p class="rc-encounter-event">You move your stool closer. Lesana leaves her knee against yours.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“This close enough?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Getting there.”</p></div>
<p class="rc-encounter-event">She catches the front of your shirt and draws you toward her. You kiss her. When you pull back, she keeps you close.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“Careful with the arm. The rest of me's fine.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I'll be careful.”</p></div>
<p class="rc-encounter-event">She nods toward the door behind the counter.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Lesana</span></div><p>“We can sit in the back. Nobody needs serving right now.”</p></div>
<nav class="choice-container"><a class="button light-choice" data-passage="Lesana_Private">Go with Lesana</a><a class="button neutral-choice" data-passage="Bar">Stay a little, then head out</a></nav>
<</if>>
<<if !setup.lesanaMediaAvailable(State.variables)>><<goto "Bar">><<else>>
<main class="scene-content rc-service-page" data-rc-service="lesana">
<header class="rc-service-header"><img src="assets/cast/lesana.jpg" alt="Lesana"><div><span>MATRIARCH BAR / PRIVATE ROOM</span><h1>Lesana</h1></div></header>
<div class="video-container"><video class="scene-video" muted loop playsinline controls preload="none"></video></div>
<div class="service-menu"><div class="menu-title">Choose an action:</div><div class="service-buttons">
<a class="service-btn" data-rc-video="blowjob" role="button" tabindex="0">Blowjob</a>
<a class="service-btn" data-rc-video="vaginal" role="button" tabindex="0">Vaginal</a>
<a class="service-btn" data-rc-video="anal" role="button" tabindex="0">Anal</a>
<a class="service-btn" data-rc-video="cum" role="button" tabindex="0">Finish</a>
</div></div>
<nav class="choice-container"><a class="button back-btn" data-passage="Bar">Return to the bar</a></nav>
</main>
<</if>>
<<if !setup.sarahAtOldSafehouse($player)>><<goto "Old_Safehouse">><<else>><<set _s = setup.sarahStory($player)>>
<<if _s.theft == "admitted">><<goto "Sarah_Necklace">>
<<elseif _s.access or _s.question_pending or _s.fight != "none" or !$player.met_sarah>><<goto "Sarah_Talk">><<else>>
<main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">OLD SAFEHOUSE / SARAH</span><h1>Sarah</h1></div><span class="rc-encounter-location">OLD SAFEHOUSE</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/sarah-banks.jpg" alt="Sarah"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/sarah-banks.jpg" alt=""><div><strong>Sarah</strong><span>Resident</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I brought something for you.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“What is it?”</p></div></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list rc-sarah-offers"><<if setup.sarahCanOffer($player, "Fresh_food")>><a class="button neutral-choice" data-passage="Sarah_FreshFood">Offer fresh food (1)</a><<else>><span class="button neutral-choice disabled" role="button" aria-disabled="true">Fresh food · none available</span><</if>>
<<if setup.sarahCanOffer($player, "Provisions")>><a class="button neutral-choice" data-passage="Sarah_Provisions">Offer provisions (1)</a><<else>><span class="button neutral-choice disabled" role="button" aria-disabled="true">Provisions · none available</span><</if>>
<<if setup.sarahCanOffer($player, "Raw_meat")>><a class="button neutral-choice" data-passage="Sarah_RawMeat">Offer raw meat (1)</a><<else>><span class="button neutral-choice disabled" role="button" aria-disabled="true">Raw meat · none available</span><</if>>
<<if setup.sarahCanOffer($player, "Medkit")>><a class="button neutral-choice" data-passage="Sarah_Medkit">Offer medkit (1)</a><<else>><span class="button neutral-choice disabled" role="button" aria-disabled="true">Medkit · none available</span><</if>>
<<if setup.sarahCanOffer($player, "Money")>><a class="button neutral-choice" data-passage="Sarah_Money">Offer money</a><<else>><span class="button neutral-choice disabled" role="button" aria-disabled="true">Money · none available</span><</if>>
<a class="button back-btn" data-passage="Outside">Leave the area</a></div></nav></main><</if>><</if>>
<<if setup.offerSarah($player, "Fresh_food")>><<goto "Sarah_Gift">><<else>><<goto "Sarah_Talk">><</if>>
<<if setup.offerSarah($player, "Provisions")>><<goto "Sarah_Gift">><<else>><<goto "Sarah_Talk">><</if>>
<<if setup.offerSarah($player, "Raw_meat")>><<goto "Sarah_Gift">><<else>><<goto "Sarah_Talk">><</if>>
<<if setup.offerSarah($player, "Medkit")>><<goto "Sarah_Gift">><<else>><<goto "Sarah_Talk">><</if>>
<<if setup.offerSarah($player, "Money")>><<goto "Sarah_Gift">><<else>><<goto "Sarah_Talk">><</if>>
<<set _s = setup.sarahStory($player)>><<if !setup.sarahAtOldSafehouse($player)>><<goto "Old_Safehouse">><<else>><<if !_s.gift or (_s.gift != "Money" and !_s.access and !_s.question_pending)>><<goto "Sarah_Talk">><<else>><main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">OLD SAFEHOUSE / SARAH</span><h1>Sarah</h1></div><span class="rc-encounter-location">OLD SAFEHOUSE</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/sarah-banks.jpg" alt="Sarah"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/sarah-banks.jpg" alt=""><div><strong>Sarah</strong><span>Resident</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2><<if _s.gift == "Fresh_food">><p class="rc-encounter-event">You hold out the fresh food. Sarah looks into the bag, then takes a closer look.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“This is fresh. Where did you get it?”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I have a farm. There's more where that came from.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“You're growing this yourself?”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Yeah.”</p></div><p class="rc-encounter-event">She takes the bag and moves out of the doorway.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Come in. I want to hear about that farm.”</p></div><<elseif _s.gift == "Provisions">><p class="rc-encounter-event">You hand her the provisions. She turns the package over in her hands.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Thanks. What do you want in return?”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Just for you to trust me.”</p></div><<elseif _s.gift == "Medkit">><p class="rc-encounter-event">Sarah checks the medkit before taking it.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Thank you. I could use this. You want something in return?”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Just for you to trust me.”</p></div><<elseif _s.gift == "Raw_meat">><p class="rc-encounter-event">You offer her the raw meat. She checks it, then takes it inside and returns to the doorway.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“I can cook this. You hunt?”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“When I need to. Thought you could use some.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“And you came all this way just to give it to me?”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I wanted to give you a reason to trust me.”</p></div><<elseif _s.gift == "Money">><p class="rc-encounter-event">You reach for your money. Sarah shakes her head before you can hand it over.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“I don't want money from those camps. They're all the same. Bad people.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“All right. I came here to talk.”</p></div><</if>></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><<if _s.gift == "Fresh_food">><a class="button neutral-choice" data-passage="Old_Safehouse">Enter the house</a><<elseif _s.gift == "Money">><a class="button neutral-choice" data-passage="Sarah_Trust">Offer something else</a><<else>><a class="button neutral-choice" data-passage="Sarah_Group_Question">Continue</a><</if>></div></nav></main><</if>><</if>>
<<if !setup.sarahAtOldSafehouse($player)>><<goto "Old_Safehouse">><<else>><<if !setup.sarahStory($player).question_pending>><<goto "Sarah_Talk">><<else>><main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">OLD SAFEHOUSE / SARAH</span><h1>Sarah</h1></div><span class="rc-encounter-location">OLD SAFEHOUSE</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/sarah-banks.jpg" alt="Sarah"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/sarah-banks.jpg" alt=""><div><strong>Sarah</strong><span>Resident</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2><p class="rc-encounter-event">Sarah draws her pistol and points it at your chest.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Hold on. Are you with a group? One of those camps?”</p></div></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button neutral-choice" data-passage="Sarah_Cory">I'm with Cory's camp</a><a class="button neutral-choice" data-passage="Sarah_Unbounds">I'm with the Unbounds</a><a class="button neutral-choice" data-passage="Sarah_Own">I'm building my own group</a><a class="button neutral-choice" data-passage="Sarah_Alone">Lie: I'm on my own</a></div></nav></main><</if>><</if>>
<<if setup.answerSarah($player, "cory")>><<goto "Sarah_Group_Reply">><<else>><<goto "Sarah_Talk">><</if>>
<<if setup.residentImprovised(State.variables, "sarah")>><<goto "Farm_Bedrooms">><<else>>
<<if setup.answerSarah($player, "unbounds")>><<goto "Sarah_Group_Reply">><<else>><<goto "Sarah_Talk">><</if>>
<</if>>
<<if setup.answerSarah($player, "own")>><<goto "Sarah_Group_Reply">><<else>><<goto "Sarah_Talk">><</if>>
<<if setup.answerSarah($player, "alone")>><<goto "Sarah_Group_Reply">><<else>><<goto "Sarah_Talk">><</if>>
<<if !setup.sarahAtOldSafehouse($player)>><<goto "Old_Safehouse">><<else>><<set _s = setup.sarahStory($player)>><<if _s.fight == "pending">><<goto "Combat_Sarah">><<elseif !_s.access or !_s.affiliation>><<goto "Sarah_Talk">><<else>><main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">OLD SAFEHOUSE / SARAH</span><h1>Sarah</h1></div><span class="rc-encounter-location">OLD SAFEHOUSE</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/sarah-banks.jpg" alt="Sarah"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/sarah-banks.jpg" alt=""><div><strong>Sarah</strong><span>Resident</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2><<if _s.affiliation == "cory">><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I'm with Cory's camp.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Then tell Cory I'm not joining. I'm not being recruited into any camp.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I'm not here to recruit you.”</p></div><<elseif _s.affiliation == "own">><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I'm building my own group.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Good for you. I'm not interested in joining it.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“You don't have to.”</p></div><<elseif _s.affiliation == "alone">><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I'm on my own.”</p></div><p class="rc-encounter-event">She watches you for a moment, then lowers the pistol.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“All right. Keep it that way while you're here.”</p></div><</if>><<if _s.affiliation != "alone">><p class="rc-encounter-event">Sarah lowers the pistol, keeping it in her hand.</p><</if>><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“You can come in. Don't go through my things.”</p></div></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button neutral-choice" data-passage="Old_Safehouse">Enter the house</a></div></nav></main><</if>><</if>>
<<if setup.beginSarahCombat(State.variables)>><<goto "Combat_Enemy_Turn">>
<<elseif setup.sarahStory($player).fight == "active" and $combat.sarah_fight>><<goto "Combat_Enemy_Turn">>
<<elseif setup.sarahCombatWon(State.variables)>><<goto "Sarah_Victory">>
<<else>><<goto "Old_Safehouse">><</if>>
<<if !setup.finishSarahCombat(State.variables)>><<goto "Sarah_Talk">><<else>>
<main class="rc-combat-outcome rc-victory-page"><header class="rc-outcome-header"><span class="rc-ui-kicker">OLD SAFEHOUSE / RESULT</span><h1>Victory</h1></header><div class="rc-outcome-grid"><figure class="rc-outcome-portrait"><img src="assets/cast/sarah-banks.jpg" alt="Sarah"><figcaption>OPPONENT / SARAH</figcaption></figure><section class="rc-outcome-report"><p>Sarah drops her pistol and steps back against the door. She presses a hand to her side.</p><p>“Okay. Stop.”</p><p>You keep your weapon trained on her.</p></section></div><nav class="rc-outcome-actions"><a class="button dark-choice" data-passage="Sarah_Enslave">Make her a slave</a><a class="button neutral-choice" data-passage="Sarah_LowerGun">Put your gun down</a></nav></main><</if>>
<<if setup.resolveSarahCombat(State.variables, "slave")>><<goto "Sarah_Aftermath">><<else>><<goto "Sarah_Talk">><</if>>
<<if setup.resolveSarahCombat(State.variables, "spared")>><<goto "Sarah_Aftermath">><<else>><<goto "Sarah_Talk">><</if>>
<<set _s = setup.sarahStory($player)>>
<<if _s.fight == "enslaved" and setup.sarahLivesAtBase($player)>>
<<set $player.current_location = "Farm Bedrooms">>
<main class="rc-combat-outcome"><header class="rc-outcome-header"><span class="rc-ui-kicker">FARM / NEW CAPTIVE</span><h1>Sarah</h1></header><div class="rc-outcome-grid"><figure class="rc-outcome-portrait"><img src="assets/cast/sarah-banks.jpg" alt="Sarah"><figcaption>SARAH / CAPTIVE</figcaption></figure><section class="rc-outcome-report"><p>You take her pistol out of reach and order her to pack what she needs.</p><p>“I'm not staying here anymore, am I?”</p><p>“You're coming with me.”</p><p>She looks at the open door, then gathers her things. You take her to the farm and put her in a room of her own.</p></section></div><nav class="rc-outcome-actions"><a class="button dark-choice" data-passage="Sarah_Dominance">Claim your dominance</a><a class="button neutral-choice" data-passage="Safehouse">Return to base</a></nav></main>
<<elseif _s.fight == "spared" and setup.sarahAtOldSafehouse($player)>>
<<if _s.fight_reason == "theft">>
<<if setup.sarahMercyPending($player)>><<goto "Sarah_Mercy">><<else>><<goto "Sarah_Mercy_Reply">><</if>>
<<else>>
<main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">OLD SAFEHOUSE / SARAH</span><h1>Sarah</h1></div><span class="rc-encounter-location">OLD SAFEHOUSE</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/sarah-banks.jpg" alt="Sarah"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/sarah-banks.jpg" alt=""><div><strong>Sarah</strong><span>Resident</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2><p class="rc-encounter-event">You lower your weapon and step away from her pistol.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I'm putting it down. We're done.”</p></div><p class="rc-encounter-event">Sarah looks between you and the pistol on the floor.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“You could've killed me.”</p></div><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I didn't come here for that.”</p></div><p class="rc-encounter-event">She lets out a breath and moves aside.</p><div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Come in, then. Just give me a minute.”</p></div></section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button neutral-choice" data-passage="Old_Safehouse">Enter the house</a></div></nav></main><</if>><<else>><<goto "Old_Safehouse">><</if>>
<<run setup.endSarahHomeConversation(State.variables)>>
<<if setup.residentImprovised(State.variables, "sarah")>><<goto "Farm_Bedrooms">><<elseif !setup.sarahCanInteract(State.variables)>><<goto "Old_Safehouse">><<else>>
<<set _base = setup.sarahLivesAtBase($player)>>
<<set $player.current_location = _base ? "Farm Bedrooms" : "Old Safehouse">>
<main class="rc-resident-page">
<header class="rc-resident-header"><div class="rc-resident-portrait"><img src="assets/cast/sarah-banks.jpg" alt="Sarah"></div>
<div class="rc-resident-identity"><span class="rc-ui-kicker"><<if _base>>FARM / RESIDENT<<else>>OLD SAFEHOUSE / RESIDENT<</if>></span><h1>Sarah</h1>
<div class="rc-resident-facts"><div><span>Status</span><strong><<if $player.sarah_status == "slave">>Slave<<elseif _base>>Ally<<else>>Trusted<</if>></strong></div>
<<if _base>><div><span>Current task</span><strong><<if setup.residentImprovised(State.variables, "sarah") && ["scavenging", "Fields", "Cooking"].includes($player.sarah_work)>>Paused — needs a bedroom<<elseif setup.residentHungry(State.variables, "sarah") && ["scavenging", "Fields"].includes($player.sarah_work)>>Paused — needs food<<elseif $player.sarah_work == "scavenging">>Scavenging for supplies<<elseif $player.sarah_work == "Cooking">>Cooking<<elseif $player.sarah_work == "Fields">>Working in fields<<else>>None<</if>></strong></div><</if>></div>
</div></header>
<section class="rc-resident-options"><div class="rc-resident-options-heading"><span class="rc-ui-kicker">AVAILABLE ACTIONS</span><h2>Spend time with Sarah</h2></div>
<nav class="rc-resident-actions" aria-label="Interact with Sarah">
<<if $player.sarah_home && $player.sarah_home.complete && setup.sarahHomeEligible(State.variables) && ["declined", "deferred"].includes($player.sarah_home.housing)>><a class="button light-choice" data-passage="Sarah_Home_Invite">Offer Sarah a place at the Farm</a><</if>>
<<if _base>><<laboratoryEquipmentOption>><</if>>
<<set _conversationBlocker = setup.sarahHomeConversationBlocker(State.variables)>>
<<if _conversationBlocker>><span class="rc-resident-action" aria-disabled="true" data-npc-action="dialogue"><span>01 / Conversation</span><strong>Talk</strong><small><<print _conversationBlocker>></small></span>
<<else>><a class="rc-resident-action" data-passage="Sarah_Talk_Menu" data-npc-action="dialogue"><span>01 / Conversation</span><strong>Talk</strong><small>Speak with Sarah</small></a><</if>>
<<if setup.sarahMediaAvailable(State.variables)>><a class="rc-resident-action rc-resident-action-private" data-passage="Sarah_Dominance" data-npc-action="media"><span>02 / Private</span><strong>Have sex</strong><small>Spend time together</small></a><</if>>
<<if setup.sarahCanWork(State.variables)>><a class="rc-resident-action" data-passage="Sarah_Work" data-npc-action="other"><span>03 / Work</span><strong>Assign a task</strong><small>Choose a job for Sarah</small></a><</if>>
</nav>
</section><nav class="rc-resident-exit"><<if _base>><a class="button back-btn" data-passage="Farm_Bedrooms">← Back to Bedrooms</a><<else>><a class="button back-btn" data-passage="Old_Safehouse">← Back to the house</a><</if>></nav>
</main>
<</if>>
<<set _lesana = setup.ensureLesanaStory(State.variables)>>
<<if _lesana.stage != 'fight' || !['rush', 'bottle'].includes(_lesana.approach)>><<goto "Bar">>
<<elseif $player.health <= 0>><<goto "Combat_Defeat">>
<<elseif setup.finishLesanaFight(State.variables)>><<goto "Lesana_Aftermath">>
<<elseif setup.beginLesanaFight(State.variables, _lesana.approach)>><<goto "Combat_Enemy_Turn">>
<<else>><<goto "Bar">><</if>>
<<set _arrivalMedia = setup.sarahHomeArrivalMedia(State.variables)>>
<<if !_arrivalMedia && setup.residentImprovised(State.variables, "sarah")>><<goto "Farm_Bedrooms">><<else>>
<<if !_arrivalMedia && !setup.sarahMediaAvailable(State.variables)>><<goto "Sarah_Home">><<else>>
<<set $player.current_location = _arrivalMedia ? "Farm" : "Farm Bedrooms">>
<main class="scene-content rc-service-page" data-rc-service="sarah">
<header class="rc-service-header"><img src="assets/cast/sarah-banks.jpg" alt="Sarah"><div><span><<if _arrivalMedia>>FARM / SARAH<<else>>FARM / SARAH'S ROOM<</if>></span><h1>Sarah</h1></div></header>
<div class="video-container"><video class="scene-video" muted loop playsinline controls preload="none"></video></div>
<div class="service-menu"><div class="menu-title">Choose an action:</div><div class="service-buttons">
<a class="service-btn" data-rc-video="blowjob" role="button" tabindex="0">Blowjob</a>
<a class="service-btn" data-rc-video="vaginal" role="button" tabindex="0">Vaginal</a>
<a class="service-btn" data-rc-video="anal" role="button" tabindex="0">Anal</a>
<a class="service-btn" data-rc-video="cum" role="button" tabindex="0">Finish</a>
</div></div>
<nav class="choice-container"><<if _arrivalMedia>><button class="button back-btn" type="button" data-sarah-home-action="0" @data-token="setup.sarahHomeToken($player.sarah_home)" data-rc-tools-destination="Safehouse">Return to the Farm</button><<else>><a class="button back-btn" data-passage="Sarah_Interact">Return to Sarah</a><</if>></nav>
</main>
<</if>>
<</if>>
<<if $player.base_location != "Farm">><<goto "Safehouse">><<else>>
<<set $player.current_location = "Farm Workshop">>
<<set _upgrades = setup.ensureBaseUpgrades(State.variables)>>
<<set _toolsTab = setup.farmToolsUi.workshop>>
<<run setup.ensureWorkshopProduction($player)>>
<<nobr>>
<main class="rc-workshop-layout">
<section class="rc-farm-mission rc-farm-tools-page rc-workshop-production" aria-label="Refined Materials production">
<header><span class="rc-ui-kicker">FARM / WORKSHOP</span><h1>Workshop</h1></header>
<div class="rc-farm-mission-body rc-farm-fields-body">
<<if setup.baseFoodShortage($player)>><p class="rc-farm-alert">Production is paused because the base went hungry. Assignments are kept. Feed everyone at rest to resume work.</p><</if>>
<div class="rc-farm-figures" aria-label="Workshop production">
<div><span>Residents working</span><strong><<print setup.workshopWorkerCount(State.variables)>></strong></div>
<div><span>Refined Materials / Day</span><strong>+<<print setup.workshopProductionPreview(State.variables)>></strong></div>
<div><span>Refined Materials stored</span><strong><<print $player.Refined_materials>></strong></div>
</div>
<nav class="rc-farm-field-actions" aria-label="Workshop production actions">
<a class="button dark-choice" data-passage="Workshop_Residents">Manage residents</a>
<<if $player.stamina >= setup.workshopProductionRules.manualEnergy>>
<<link "Refine Manually · 35 energy → 2 Refined Materials" "Farm_Workshop">><<run setup.workWorkshopManually(State.variables)>><</link>>
<<else>><span class="rc-farm-action-unavailable" aria-disabled="true">Refine Manually · 35 energy → 2 Refined Materials</span><</if>>
</nav>
</div>
</section>
<section class="rc-farm-mission rc-workshop-page rc-farm-tools-page" aria-label="Workshop crafting and upgrades">
<div class="rc-farm-mission-body rc-workshop-body">
<div class="rc-tools-stock"><img class="rc-item-icon" src="assets/icons/materials.svg" alt="" width="36" height="36"><span>Materials</span><strong><<print $player.Materials>></strong><small>Search supplies, buy at the Market or convert Refined Materials.</small></div>
<<if setup.workshopNotice>><p class="rc-tools-notice" role="status"><<print setup.workshopNotice>></p><<run setup.workshopNotice = ''>><</if>>
<div class="rc-tools-tabs" role="tablist" aria-label="Workshop sections">
<<for _tab range ['items', 'base', 'vehicles']>>
<button type="button" role="tab" @id="'rc-workshop-tab-' + _tab" @aria-controls="'rc-workshop-panel-' + _tab" @aria-selected="_toolsTab == _tab" @tabindex="_toolsTab == _tab ? 0 : -1" @data-rc-tools-tab="_tab"><<print ({ items: 'Craft Items', base: 'Base Upgrades', vehicles: 'Vehicles' })[_tab]>></button>
<</for>>
</div>
<section id="rc-workshop-panel-items" role="tabpanel" aria-labelledby="rc-workshop-tab-items" data-rc-tools-panel="items" @class="'rc-tools-panel' + (_toolsTab == 'items' ? '' : ' is-hidden')">
<div class="rc-tools-grid">
<article class="rc-workshop-card rc-tools-card" tabindex="-1" data-rc-refined-conversion>
<div class="rc-tools-heading"><img class="rc-item-icon" src="assets/icons/materials.svg" alt="" width="44" height="44"><div><small>Resources</small><h3>Convert to Materials</h3></div></div>
<p>1 Refined Material → 1 Material. Advanced equipment recipes are not available yet.</p>
<div class="rc-tools-value"><span>Refined Materials available</span><strong><<print $player.Refined_materials>></strong></div>
<div class="rc-tools-action">
<<if $player.Refined_materials >= 1>><button type="button" data-rc-tools-action="refined" data-rc-tools-id="1"><span>Convert 1</span><strong>1 Refined Material</strong></button>
<<else>><button type="button" data-rc-tools-action="refined" data-rc-tools-id="1" disabled><span>Convert 1</span><strong>1 Refined Material</strong></button><</if>>
</div>
<div class="rc-tools-action">
<<if $player.Refined_materials >= 10>><button type="button" data-rc-tools-action="refined" data-rc-tools-id="10"><span>Convert 10</span><strong>10 Refined Materials</strong></button>
<<else>><button type="button" data-rc-tools-action="refined" data-rc-tools-id="10" disabled><span>Convert 10</span><strong>10 Refined Materials</strong></button><</if>>
</div>
</article>
<<for _item range Object.keys(setup.workshopRecipes)>>
<<set _recipe = setup.workshopRecipes[_item]>>
<article class="rc-workshop-card rc-tools-card" tabindex="-1" @data-rc-recipe="_item">
<div class="rc-tools-heading"><img class="rc-item-icon" @src="setup.marketCatalog[_item].icon" alt="" width="44" height="44"><div><small>Equipment</small><h3><<print _item>></h3></div></div>
<p><<print _recipe.description>></p>
<div class="rc-tools-value"><span>Owned</span><strong><<print $player[_item] || 0>></strong></div>
<div class="rc-tools-action">
<<if $player.Materials >= _recipe.cost>><button type="button" data-rc-tools-action="craft" @data-rc-tools-id="_item" @aria-label="'Craft ' + _item"><span>Craft <b aria-hidden="true">+</b></span><strong><<print _recipe.cost>> Materials</strong></button>
<<else>><button type="button" disabled><span>Need <<print _recipe.cost - $player.Materials>> more</span><strong><<print _recipe.cost>> Materials</strong></button><</if>>
</div>
</article>
<</for>>
</div>
</section>
<section id="rc-workshop-panel-base" role="tabpanel" aria-labelledby="rc-workshop-tab-base" data-rc-tools-panel="base" @class="'rc-tools-panel' + (_toolsTab == 'base' ? '' : ' is-hidden')">
<div class="rc-tools-grid">
<<for _key range Object.keys(setup.baseUpgradeRules)>>
<<set _rule = setup.baseUpgradeRules[_key]>>
<<set _cost = setup.baseUpgradeCost(State.variables, _key)>>
<article class="rc-workshop-card rc-tools-card" tabindex="-1" @data-rc-upgrade="_key">
<div class="rc-tools-heading"><img class="rc-item-icon" @src="_rule.icon" alt="" width="44" height="44"><div><small><<print ({ bedrooms: 'Characters', slave_room: 'Slaves', resident_housing: 'Residents', fields: 'Production', gym_equipment: 'Training', radio: 'Communications' })[_key]>></small><h3><<print _rule.name>></h3></div><span class="rc-tools-level"><<if _key == 'radio'>><<print _upgrades.radio ? 'Repaired' : 'Broken'>><<else>>Lv. <<print _upgrades[_key]>><<if _rule.max != null>> / <<print _rule.max>><</if>><</if>></span></div>
<<if _key == 'bedrooms'>><p>+2 private bedrooms per upgrade.</p><div class="rc-tools-value"><span>Rooms used</span><strong><<print Math.min(_upgrades.bedroom_order.length, setup.bedroomCapacity(State.variables))>> / <<print setup.bedroomCapacity(State.variables)>></strong></div><<if _upgrades.bedroom_order.length > setup.bedroomCapacity(State.variables)>><small>Temporary accommodation: <<print _upgrades.bedroom_order.length - setup.bedroomCapacity(State.variables)>></small><</if>>
<<elseif _key == 'slave_room'>><p>+10 spaces per upgrade.</p><div class="rc-tools-value"><span>Spaces used</span><strong><<print $player.slaves>> / <<print setup.slaveRoomCapacity(State.variables)>></strong></div>
<<elseif _key == 'resident_housing'>><p>+10 spaces per upgrade.</p><div class="rc-tools-value"><span>Spaces used</span><strong><<print setup.genericResidentCount($player)>> / <<print setup.residentHousingCapacity(State.variables)>></strong></div>
<<elseif _key == 'gym_equipment'>><p>Better equipment adds +1 XP per Training Yard session. Energy cost stays at 20.</p><div class="rc-tools-value"><span>XP per session</span><strong><<print setup.trainingSessionXp(State.variables)>></strong></div>
<<elseif _key == 'radio'>><p>Repair the broken radio to tune into channels and listen for calls.</p><div class="rc-tools-value"><span>Radio calls</span><strong><<print _upgrades.radio ? 'Available' : 'Unavailable'>></strong></div>
<<else>><p>+2 Fresh Food per day per level. Requires field workers.</p><div class="rc-tools-value"><span>Daily bonus</span><strong>+<<print _upgrades.fields * 2>></strong></div><</if>>
<div class="rc-tools-action">
<<if _cost == null>><button type="button" disabled><span><<print _key == 'radio' ? 'Repaired' : 'Fully upgraded'>></span><strong aria-hidden="true">✓</strong></button>
<<elseif _key == 'fields' && !$player.fields_ready>><button type="button" disabled><span>Restore Fields first</span><strong><<print _cost>> Materials</strong></button>
<<elseif $player.Materials < _cost>><button type="button" disabled><span>Need <<print _cost - $player.Materials>> more</span><strong><<print _cost>> Materials</strong></button>
<<else>><button type="button" data-rc-tools-action="base" @data-rc-tools-id="_key" @aria-label="(_key == 'radio' ? 'Repair ' : 'Upgrade ') + _rule.name"><span><<print _key == 'radio' ? 'Repair' : 'Upgrade'>> <b aria-hidden="true">↑</b></span><strong><<print _cost>> Materials</strong></button><</if>>
</div>
</article>
<</for>>
</div>
</section>
<section id="rc-workshop-panel-vehicles" role="tabpanel" aria-labelledby="rc-workshop-tab-vehicles" data-rc-tools-panel="vehicles" @class="'rc-tools-panel' + (_toolsTab == 'vehicles' ? '' : ' is-hidden')">
<<include 'Vehicle_Workshop'>>
</section>
</div>
<nav class="rc-farm-mission-actions"><a class="button back-btn" data-passage="Safehouse">Return to the Farm</a></nav>
</section>
</main>
<</nobr>>
<</if>>
<<if setup.residentImprovised(State.variables, "gage") || !setup.gageAtFarm(State.variables)>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-resident-page">
<header class="rc-resident-header"><div class="rc-resident-portrait"><img src="assets/cast/gage.png" alt="Gage"></div>
<div class="rc-resident-identity"><span class="rc-ui-kicker">FARM / RESIDENT</span><h1>Gage</h1>
<div class="rc-resident-facts"><div><span>Status</span><strong>Slave</strong></div>
<div><span>Current task</span><strong><<if $player.fields_quest.gage_work == "Fields">><<if setup.residentHungry(State.variables, "gage")>>Field work paused — needs food<<else>>Working in fields<</if>><<else>>None<</if>></strong></div></div>
</div></header>
<section class="rc-resident-options"><div class="rc-resident-options-heading"><span class="rc-ui-kicker">AVAILABLE ACTIONS</span><h2>Spend time with Gage</h2></div>
<nav class="rc-resident-actions" aria-label="Interact with Gage">
<<yardTopic "gage">>
<a class="rc-resident-action" data-passage="Gage_Captive" data-npc-action="dialogue"><span>01 / Conversation</span><strong>Talk</strong><small>Speak with Gage</small></a>
<<if $player.fields_ready>>
<a class="rc-resident-action" data-passage="Farm_Workers" data-npc-action="other"><span>02 / Work</span><strong>Assign a task</strong><small>Manage Gage's field assignment</small></a>
<</if>>
</nav>
</section><nav class="rc-resident-exit"><a class="button back-btn" data-passage="Farm_Bedrooms">← Back to Bedrooms</a></nav>
</main>
<</if>>
<<if setup.residentImprovised(State.variables, "kenzie")>><<goto "Farm_Bedrooms">>
<<elseif !$kenzie || !["saved", "camp_help", "camp_slave"].includes($kenzie.outcome)>><<goto "Kenzie_Talk">><<else>>
<main class="rc-resident-page">
<header class="rc-resident-header"><div class="rc-resident-portrait"><img src="assets/cast/kenzie.jpg" alt="Kenzie"></div>
<div class="rc-resident-identity"><span class="rc-ui-kicker"><<if $kenzie.outcome == "saved">>RESIDENTIAL DISTRICT / RESIDENT<<elseif $player.base_location == "Farm">>FARM / RESIDENT<<else>>SAFE HOUSE / RESIDENT<</if>></span><h1>Kenzie</h1>
<div class="rc-resident-facts"><div><span>Status</span><strong><<if $kenzie.outcome == "camp_slave">>Slave<<else>>Ally<</if>></strong></div>
<div><span>Current task</span><strong><<if $kenzie.outcome != "saved" && $kenzie.recovery_days < 3>>Recovering<<elseif $kenzie.outcome == "camp_slave" && $kenzie.work == "Fields">><<if setup.residentHungry(State.variables, "kenzie")>>Field work paused — needs food<<else>>Working in fields<</if>><<else>>None<</if>></strong></div></div>
</div></header>
<section class="rc-resident-options"><div class="rc-resident-options-heading"><span class="rc-ui-kicker">AVAILABLE ACTIONS</span><h2>Spend time with Kenzie</h2></div>
<nav class="rc-resident-actions" aria-label="Interact with Kenzie">
<<if $kenzie.outcome == "saved">>
<a class="rc-resident-action" data-passage="Kenzie_Settlement_Talk" data-npc-action="dialogue"><span>01 / Conversation</span><strong>Talk</strong><small>Speak with Kenzie</small></a>
<<if $kenzie.saved_visits >= 2 && !$kenzie.romance>>
<a class="rc-resident-action rc-resident-action-private" data-passage="Kenzie_Flirt" data-npc-action="dialogue"><span>02 / Personal</span><strong>Flirt back</strong><small>Get closer to Kenzie</small></a>
<</if>>
<<if setup.kenzieIntimacyAvailable(State.variables)>>
<a class="rc-resident-action rc-resident-action-private" data-passage="Kenzie_Sex" data-npc-action="media"><span>02 / Private</span><strong>Have sex</strong><small>Spend time together</small></a>
<</if>>
<<else>>
<a class="rc-resident-action" data-passage="Kenzie_Camp_Talk" data-npc-action="dialogue"><span>01 / Conversation</span><strong>Talk</strong><small>Speak with Kenzie</small></a>
<<if $kenzie.outcome == "camp_help" && $kenzie.camp_visits >= 2 && !$kenzie.romance>>
<a class="rc-resident-action rc-resident-action-private" data-passage="Kenzie_Camp_Closer" data-npc-action="dialogue"><span>02 / Personal</span><strong>Stay and get closer</strong><small>Spend time with Kenzie</small></a>
<</if>>
<<if setup.kenzieIntimacyAvailable(State.variables)>>
<a class="rc-resident-action rc-resident-action-private" data-passage="Kenzie_Sex" data-npc-action="media"><span>02 / Private</span><strong>Have sex</strong><small>Spend time together</small></a>
<</if>>
<<if $player.base_location == "Farm" && $player.fields_ready && $kenzie.outcome == "camp_slave" && $kenzie.recovery_days >= 3>>
<a class="rc-resident-action" data-passage="Farm_Workers" data-npc-action="other"><span>02 / Work</span><strong>Assign a task</strong><small>Manage Kenzie's field assignment</small></a>
<</if>>
<</if>>
</nav>
</section><nav class="rc-resident-exit"><<if $kenzie.outcome == "saved">><a class="button back-btn" data-passage="Residential_District">← Back to the district</a><<elseif $player.base_location == "Farm">><a class="button back-btn" data-passage="Farm_Bedrooms">← Back to Bedrooms</a><<else>><a class="button back-btn" data-passage="Safehouse">← Back</a><</if>></nav>
</main>
<</if>>
<<if setup.sarahHomeFriendRoute(State.variables)>>
<<sarahHomeScene "friends">>
<<else>>
<<if !setup.sarahCanInteract(State.variables)>><<goto "Sarah_Interact">><<else>>
<main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">CONVERSATION / SARAH</span><h1>Sarah</h1></div></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/sarah-banks.jpg" alt="Sarah"></aside>
<section class="rc-encounter-log"><h2>Talk with Sarah</h2>
<p class="rc-encounter-event">Sarah sets her bag aside.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“I can leave this for a minute. Did you want something?”</p></div>
</section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list">
<<sarahHomeTopic>>
<a class="button light-choice" data-passage="Sarah_Past">Ask about her work</a>
<<if setup.sarahLivesAtBase($player)>><<sarahVialReportOption>><</if>>
<a class="button light-choice" data-passage="Sarah_Feelings">Ask about her beliefs</a>
<a class="button light-choice" data-passage="Sarah_Groups">Ask why she distrusts people</a>
<<if setup.b12SarahAvailable(State.variables)>><a class="button light-choice" data-passage="Sarah_B12"><<if $player.kenzie_bunker.sarah_shown>>Ask about the bunker research<<else>>Show her the bunker research<</if>></a><</if>>
<a class="button neutral-choice" data-passage="Sarah_Interact">End the conversation</a></div></nav></main>
<</if>>
<</if>>
<<if !setup.sarahCanInteract(State.variables)>><<goto "Sarah_Interact">><<else>>
<<set _scienceKnown = !!$player.sarah_scientist_known>>
<<set _workQuestion = setup.sarahHomeTopicLine(State.variables, "work")>>
<<set $player.sarah_scientist_known = true>>
<main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">CONVERSATION / SARAH</span><h1>Sarah</h1></div></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/sarah-banks.jpg" alt="Sarah"></aside>
<section class="rc-encounter-log"><h2>Her work</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“<<print _workQuestion>>”</p></div>
<<if !_scienceKnown>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“I was a scientist. I used to bring work home even when I didn't mean to. I'd be trying to eat dinner and still going over something that hadn't worked that day.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Did you ever manage to leave it alone?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Sometimes, until I thought of something else I wanted to try. There are still things I wish I'd had a chance to finish.”</p></div>
<<elseif setup.sarahLivesAtBase($player) && setup.laboratoryChosen(State.variables) && setup.laboratoryState(State.variables).stage >= 3>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“I've missed it. Even when I don't get very far, I can leave things set up and come back to them the next day.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Does it feel like picking up where you left off?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Not quite. There's a lot I can't do with what we've got, but I'd rather find out what I can do than keep wishing I had everything back.”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Yes. I still think of things I'd like to try, then have to remind myself I haven't got the equipment anymore.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Would you need all of it to get started?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Not all of it, but I'd need to see what I could work with. And somewhere to leave it set up, so I wasn't starting from nothing every morning.”</p></div>
<</if>>
<<if !_scienceKnown>>
<<if setup.sarahLivesAtBase($player) && setup.laboratoryChosen(State.variables) && setup.laboratoryState(State.variables).stage >= 3>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“At least having the lab gives me a way to try again. I keep thinking of things to look at when I get back there.”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“I'd like to have somewhere to work again. Something to do besides checking how much food is left and deciding when I need to go out for more.”</p></div>
<</if>><</if>>
</section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button light-choice" data-passage="Sarah_Talk_Menu">Keep talking</a>
<a class="button neutral-choice" data-passage="Sarah_Interact">End the conversation</a></div></nav></main>
<</if>>
<<if !setup.sarahCanInteract(State.variables)>><<goto "Sarah_Interact">><<else>>
<main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">CONVERSATION / SARAH</span><h1>Sarah</h1></div></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/sarah-banks.jpg" alt="Sarah"></aside>
<section class="rc-encounter-log"><h2>Her beliefs</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Do you think there's any reason for all this, or were we just unlucky?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“I used to get annoyed when people said things happened for a reason. If they couldn't explain what the reason was, I didn't see why I should believe them.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“You don't feel that way now?”</p></div>
<<if $player.sarah_status == "slave">>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“I can't make sense of losing my work, my home, and now being a slave. Sometimes I'd rather think there's a reason I'm still here, even if I can't see it.”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Sometimes I'd rather think there's a reason I'm still here. I lost the life I had and somehow ended up in this one. I'd like to think that means something, even if I couldn't explain what.”</p></div>
<</if>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Does thinking that way make it any easier?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Some days. Other days I don't believe a word of it. I haven't exactly worked it out.”</p></div>
</section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button light-choice" data-passage="Sarah_Talk_Menu">Keep talking</a>
<a class="button neutral-choice" data-passage="Sarah_Interact">End the conversation</a></div></nav></main>
<</if>>
<<if !setup.sarahCanInteract(State.variables)>><<goto "Sarah_Interact">><<else>>
<<set _groupsKnown = !!($player.sarah_groups_known || ($player.sarah_home && $player.sarah_home.groupTalk))>>
<<set _groupQuestion = setup.sarahHomeTopicLine(State.variables, "groups")>>
<<set $player.sarah_groups_known = true>>
<main class="rc-encounter-page"><header class="rc-encounter-header"><div><span class="rc-encounter-kicker">CONVERSATION / SARAH</span><h1>Sarah</h1></div></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/sarah-banks.jpg" alt="Sarah"></aside>
<section class="rc-encounter-log"><h2>Other people</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“<<print _groupQuestion>>”</p></div>
<<if _groupsKnown>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Yes. I still check my things when I come back, even if I've only been out for a little while. It takes less time than sitting there wondering whether something's gone.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I wasn't saying you should stop checking.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“I know. But you asked, and that's what staying with those people left me doing.”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“A few groups. Food would go missing, and when I asked about it someone would tell me not to make trouble. As if I was supposed to be fine with having nothing to eat.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Did anyone try to put a stop to it?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“People argued about it. Sometimes they killed each other. Then I was supposed to sleep in the same room as them and trust that nothing would happen to me.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I can see why you didn't want to try another group.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“I still had to find food and somewhere to sleep, so I didn't always get much choice. I just learned to keep my things close.”</p></div>
<</if>>
</section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list"><a class="button light-choice" data-passage="Sarah_Talk_Menu">Keep talking</a>
<a class="button neutral-choice" data-passage="Sarah_Interact">End the conversation</a></div></nav></main>
<</if>>
<<if !setup.sarahCanWork(State.variables)>><<goto "Sarah_Interact">><<else>>
<main class="rc-task-page"><figure class="rc-task-portrait"><img src="assets/cast/sarah-banks.jpg" alt="Sarah"></figure>
<section class="rc-task-body"><header class="rc-task-heading"><span class="rc-ui-kicker">FARM / WORK ROSTER</span><h1>Sarah</h1><p>Assign a task</p></header>
<<if $player.sarah_work != "none">>
<div class="rc-task-current"><span>Current assignment</span><strong><<if $player.sarah_work == "scavenging">>Scavenging<<else>><<print $player.sarah_work>><</if>></strong>
<a class="button danger-choice" data-passage="Sarah_Cancel_Work">Cancel task</a></div>
<<else>>
<nav class="rc-task-options" aria-label="Tasks for Sarah">
<a class="rc-task-option" data-passage="Sarah_Start_Scavenging"><span>01 / Outside</span><strong>Start scavenging</strong><small>Search for supplies on the next day</small></a>
<a class="rc-task-option" data-passage="Sarah_Cooks"><span>02 / Farm</span><strong>Cooking</strong><small>Prepare food when raw meat is available</small></a>
</nav>
<</if>>
<nav class="rc-task-exit"><a class="button back-btn" data-passage="Sarah_Interact">← Return to Sarah</a></nav>
</section>
</main>
<</if>>
<<if !setup.assignSarahTask(State.variables, "scavenging")>><<goto "Sarah_Work">><<else>>
<main class="rc-task-page rc-task-result-page rc-task-result-assigned">
<figure class="rc-task-portrait"><img src="assets/cast/sarah-banks.jpg" alt="Sarah"></figure>
<section class="rc-task-body"><header class="rc-task-heading"><span class="rc-ui-kicker">FARM / WORK ROSTER</span><h1>Sarah</h1><p>Task assigned</p></header>
<div class="rc-task-result-details"><div class="rc-task-current"><span>Current assignment</span><strong>Scavenging</strong></div>
<div class="rc-task-result-copy"><p>Sarah gathers her things and heads out to look for supplies.</p></div></div>
<nav class="rc-task-exit"><a class="button back-btn" data-passage="Sarah_Interact">← Return to Sarah</a></nav>
</section>
</main>
<</if>>
<<if !setup.assignSarahTask(State.variables, "Cooking")>><<goto "Sarah_Work">><<else>>
<main class="rc-task-page rc-task-result-page rc-task-result-assigned">
<figure class="rc-task-portrait"><img src="assets/cast/sarah-banks.jpg" alt="Sarah"></figure>
<section class="rc-task-body"><header class="rc-task-heading"><span class="rc-ui-kicker">FARM / WORK ROSTER</span><h1>Sarah</h1><p>Task assigned</p></header>
<div class="rc-task-result-details"><div class="rc-task-current"><span>Current assignment</span><strong>Cooking</strong></div>
<div class="rc-task-result-copy"><p>Sarah takes over preparing food for the base.</p></div></div>
<nav class="rc-task-exit"><a class="button back-btn" data-passage="Sarah_Interact">← Return to Sarah</a></nav>
</section>
</main>
<</if>>
<<if !setup.cancelSarahTask(State.variables)>><<goto "Sarah_Work">><<else>>
<main class="rc-task-page rc-task-result-page rc-task-result-cleared">
<figure class="rc-task-portrait"><img src="assets/cast/sarah-banks.jpg" alt="Sarah"></figure>
<section class="rc-task-body"><header class="rc-task-heading"><span class="rc-ui-kicker">FARM / WORK ROSTER</span><h1>Sarah</h1><p>Task canceled</p></header>
<div class="rc-task-result-details"><div class="rc-task-current"><span>Current assignment</span><strong>No task assigned</strong></div>
<div class="rc-task-result-copy"><p>Sarah is no longer assigned to a task.</p></div></div>
<nav class="rc-task-exit"><a class="button back-btn" data-passage="Sarah_Interact">← Return to Sarah</a></nav>
</section>
</main>
<</if>>
<<if setup.residentImprovised(State.variables, "gage") || !setup.gageAtFarm(State.variables)>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-encounter-page rc-fields-quest-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">FARM / BEDROOMS</span><h1>Gage</h1></div><span class="rc-encounter-location">GAGE / CONVERSATION</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/gage.png" alt="Gage"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/gage.png" alt=""><div><strong>Gage</strong><span>Slave</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>His feelings</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“How are you feeling?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Gage</span></div><p>“Doesn't matter. Nothing I say is going to change what I have to do here.”</p></div>
</section>
<nav class="choice-container rc-encounter-actions"><h2>Talk</h2><div class="rc-encounter-action-list">
<a class="button light-choice" data-passage="Gage_Captive">Keep talking</a>
<a class="button back-btn" data-passage="Gage_Interact">End the conversation</a>
</div></nav>
</main>
<</if>>
<<if setup.residentImprovised(State.variables, "gage") || !setup.gageAtFarm(State.variables)>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-encounter-page rc-fields-quest-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">FARM / BEDROOMS</span><h1>Gage</h1></div><span class="rc-encounter-location">GAGE / CONVERSATION</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/gage.png" alt="Gage"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/gage.png" alt=""><div><strong>Gage</strong><span>Slave</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>His past</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“What was your life like before all this?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Gage</span></div><p>“I lived with my family. I remember getting ready for my first year of college when it all happened.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“What were you going to study?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Gage</span></div><p>“Art. I wanted to draw manga.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Gage</span></div><p>“I was really good at it. But hardly anyone cares about art now. I've had to learn how to live all over again.”</p></div>
</section>
<nav class="choice-container rc-encounter-actions"><h2>Talk</h2><div class="rc-encounter-action-list">
<a class="button light-choice" data-passage="Gage_Captive">Keep talking</a>
<a class="button back-btn" data-passage="Gage_Interact">End the conversation</a>
</div></nav>
</main>
<</if>>
<<if setup.residentImprovised(State.variables, "gage") || !setup.gageAtFarm(State.variables)>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-encounter-page rc-fields-quest-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">FARM / BEDROOMS</span><h1>Gage</h1></div><span class="rc-encounter-location">GAGE / CONVERSATION</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/gage.png" alt="Gage"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/gage.png" alt=""><div><strong>Gage</strong><span>Slave</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>The Unbounds</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Why did you join the Unbounds?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Gage</span></div><p>“I had nowhere else to go. They saved me when I needed help. So I stayed with them.”</p></div>
</section>
<nav class="choice-container rc-encounter-actions"><h2>Talk</h2><div class="rc-encounter-action-list">
<a class="button light-choice" data-passage="Gage_Unbounds_Leader">Who is their leader?</a>
<a class="button light-choice" data-passage="Gage_Unbounds_Recruitment">How can I get recruited?</a>
<a class="button light-choice" data-passage="Gage_Captive">Keep talking</a>
<a class="button back-btn" data-passage="Gage_Interact">End the conversation</a>
</div></nav>
</main>
<</if>>
<<if setup.residentImprovised(State.variables, "gage") || !setup.gageAtFarm(State.variables)>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-encounter-page rc-fields-quest-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">FARM / BEDROOMS</span><h1>Gage</h1></div><span class="rc-encounter-location">GAGE / CONVERSATION</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/gage.png" alt="Gage"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/gage.png" alt=""><div><strong>Gage</strong><span>Slave</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Their leader</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Who's the leader of the Unbounds?”</p></div>
<p class="rc-encounter-event">Gage lowers his eyes, his jaw still tight.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Gage</span></div><p>“We call him Rook, I don't know his real name.”</p></div>
</section>
<nav class="choice-container rc-encounter-actions"><h2>Talk</h2><div class="rc-encounter-action-list">
<a class="button light-choice" data-passage="Gage_Unbounds">Return to the Unbounds</a>
<a class="button back-btn" data-passage="Gage_Interact">End the conversation</a>
</div></nav>
</main>
<</if>>
<<if setup.residentImprovised(State.variables, "gage") || !setup.gageAtFarm(State.variables)>><<goto "Farm_Bedrooms">><<else>>
<main class="rc-encounter-page rc-fields-quest-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">FARM / BEDROOMS</span><h1>Gage</h1></div><span class="rc-encounter-location">GAGE / CONVERSATION</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/gage.png" alt="Gage"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/gage.png" alt=""><div><strong>Gage</strong><span>Slave</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Getting recruited</h2>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“How could I get them to recruit me?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Gage</span></div><p>“You need something they want. Something you can offer them. Then do favors for them. A few at a time. Give them a reason to keep you around.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“How would I make contact?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Gage</span></div><p>“Finding somewhere they operate might help. But I wouldn't even try if I were you.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Why?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Gage</span></div><p>“If they find out you're helping Cory's camp, they won't like you from the start.”</p></div>
</section>
<nav class="choice-container rc-encounter-actions"><h2>Talk</h2><div class="rc-encounter-action-list">
<a class="button light-choice" data-passage="Gage_Unbounds">Return to the Unbounds</a>
<a class="button back-btn" data-passage="Gage_Interact">End the conversation</a>
</div></nav>
</main>
<</if>>
<<if $player.base_location != "Farm">><<goto "Safehouse">><<else>>
<<set $player.current_location = "Farm Training Yard">>
<<set _training = setup.ensureTraining(State.variables)>>
<<set _trainingBlocked = setup.trainingBlockReason(State.variables)>>
<<set _sessionXp = setup.trainingSessionXp(State.variables)>>
<<nobr>>
<main class="rc-farm-mission rc-workshop-page rc-training-page">
<header><span class="rc-ui-kicker">FARM / PERSONAL DEVELOPMENT</span><h1>Training Yard</h1></header>
<div class="rc-farm-mission-body rc-workshop-body">
<section class="rc-training-session" aria-labelledby="rc-training-session">
<h2 id="rc-training-session">Training</h2>
<div class="rc-training-session-row">
<div class="rc-training-figures">
<div><span>Available XP</span><strong><<print _training.xp>></strong></div>
<div><span>XP today</span><strong><<print _training.daily_xp>></strong></div>
<div><span>Energy</span><strong><<print $player.stamina>> / <<print $player.max_stamina>></strong></div>
</div>
<<if _trainingBlocked>><button class="rc-training-train" type="button" disabled @title="_trainingBlocked"><strong>Need 20 energy</strong><span>20 energy → <<print _sessionXp>> XP</span></button>
<<else>><button class="rc-training-train" type="button" data-rc-training-action="train"><strong>Train</strong><span>20 energy → <<print _sessionXp>> XP</span></button><</if>>
</div>
<<if _training.last_notice>><p class="rc-training-notice" role="status"><<print _training.last_notice>></p><</if>>
<<if setup.trainingSkillIds.every(function (id) { return _training.levels[id] >= setup.trainingMaxLevel; })>><p class="rc-training-notice">All available improvements are complete. You can still train, but there are no further upgrades to spend XP on.</p><</if>>
</section>
<section aria-label="Character improvements">
<div class="rc-training-grid">
<<for _skillId range setup.trainingSkillIds>>
<<set _skill = setup.trainingSkills[_skillId]>>
<<set _skillLevel = _training.levels[_skillId]>>
<<set _skillCost = setup.trainingSkillCost(State.variables, _skillId)>>
<article class="rc-workshop-card rc-training-card" tabindex="-1" @data-rc-training-skill="_skillId">
<div class="rc-training-card-heading">
<img @src="_skill.icon" alt="" width="44" height="44">
<div><small class="rc-training-category"><<print _skill.group>></small><h3><<print _skill.name>></h3></div>
<span class="rc-training-level">Lv. <<print _skillLevel>> / <<print setup.trainingMaxLevel>></span>
</div>
<p><<print _skill.description>></p>
<div class="rc-training-current">
<<if _skill.stat>><span>Current maximum</span><strong><<print $player[_skill.stat]>></strong>
<<else>><span>Energy cost</span><strong><<print setup.trainingReducedCost(_skill.baseCost, _skillLevel)>></strong><</if>>
</div>
<<if _skillId == 'sex_endurance'>><small class="rc-training-scenes">Complete scenes: <<print setup.adultActionCost(State.variables, 'scene', 20)>> / <<print setup.adultActionCost(State.variables, 'scene', 30)>> energy</small><</if>>
<div class="rc-training-card-action">
<<if _skillCost == null>><button type="button" disabled><span>Fully trained</span><strong>5 / 5</strong></button>
<<elseif _training.xp < _skillCost>><button type="button" disabled @aria-label="'Improve ' + _skill.name + ': need ' + (_skillCost - _training.xp) + ' more XP'"><span>Need <<print _skillCost - _training.xp>> more XP</span><strong><<print _skillCost>> XP</strong></button>
<<else>><button type="button" data-rc-training-action="buy" @data-rc-training-skill="_skillId" @aria-label="'Improve ' + _skill.name"><span>Improve <b aria-hidden="true">↑</b></span><strong><<print _skillCost>> XP</strong></button><</if>>
</div>
</article>
<</for>>
</div>
</section>
</div>
<nav class="rc-farm-mission-actions"><a class="button back-btn" data-passage="Safehouse">Return to the Farm</a></nav>
</main>
<</nobr>>
<</if>>
<<if $player.base_location != 'Farm'>><<goto 'Safehouse'>><<else>>
<<set _garage = setup.ensureGarage(State.variables)>>
<<set $player.current_location = 'Farm Garage'>>
<<nobr>>
<main class="rc-farm-mission rc-workshop-page rc-farm-tools-page rc-garage-page">
<header><span class="rc-ui-kicker">FARM / GARAGE</span><h1>Garage</h1></header>
<div class="rc-farm-mission-body rc-workshop-body">
<<if !_garage.vehicles.light.unlocked && !_garage.vehicles.pickup.unlocked>><p class="rc-tools-notice">Vehicle acquisition missions are not available in this version.</p><</if>>
<section aria-label="Vehicles"><div class="rc-tools-grid">
<<for _id range Object.keys(setup.vehicleCatalog)>>
<<set _rule = setup.vehicleCatalog[_id]>>
<<set _vehicle = _garage.vehicles[_id]>>
<<set _stats = setup.vehicleStats(State.variables, _id)>>
<article class="rc-workshop-card rc-tools-card rc-vehicle-card" tabindex="-1" @data-rc-vehicle="_id">
<div class="rc-tools-heading"><div><small><<if !_vehicle.unlocked>>Not obtained<<elseif !_vehicle.recovered>>Needs restoration<<else>>Ready to drive<</if>></small><h3><<print _rule.name>></h3></div></div>
<img class="rc-tools-vehicle-art" @src="_rule.image" @alt="_rule.imageAlt" width="1536" height="1024" decoding="async">
<p><<print _rule.description>></p>
<dl class="rc-vehicle-stats rc-tools-vehicle-stats"><div><dt>Energy / trip</dt><dd><<print _stats.energy>></dd></div><div><dt>Opening hit</dt><dd><<print _stats.opening>></dd></div><div><dt>Armor</dt><dd><<print _stats.armor>>%</dd></div></dl>
<div class="rc-tools-action rc-tools-vehicle-actions">
<<if !_vehicle.unlocked>><button type="button" disabled>Vehicle unavailable</button>
<<elseif !_vehicle.recovered>><button type="button" data-rc-tools-destination="Farm_Workshop" data-rc-tools-action="workshop" @data-rc-tools-id="_id" @aria-label="'Restore ' + _rule.name + ' at Workshop'"><span>Restore at Workshop</span><strong><<print _rule.restore>> Materials</strong></button>
<<elseif setup.garageBusy(State.variables)>><button type="button" disabled>Expedition in progress</button>
<<else>>
<<if _garage.selected == _id>><button type="button" disabled><span>Selected</span><strong aria-hidden="true">✓</strong></button>
<<else>><button type="button" data-rc-tools-action="select" @data-rc-tools-id="_id" @aria-label="'Select ' + _rule.name"><span>Select vehicle</span><strong aria-hidden="true">→</strong></button><</if>>
<button class="rc-tools-secondary" type="button" data-rc-tools-destination="Farm_Workshop" data-rc-tools-action="workshop" @data-rc-tools-id="_id" @aria-label="'Upgrade ' + _rule.name">Upgrades <b aria-hidden="true">↗</b></button>
<</if>>
</div>
</article><</for>></div></section>
<section aria-label="Expedition" class="rc-workshop-card rc-tools-card rc-tools-expedition">
<div class="rc-tools-heading"><img class="rc-item-icon" src="assets/icons/road_route.svg" alt="" width="44" height="44"><div><small>Expedition</small><h3>Explore the Outskirts</h3></div></div>
<p>Find Materials and survivors. Fight or avoid threats.</p><small>Return trip included. Leaving early keeps your loot.</small>
<div class="rc-tools-action">
<<if setup.garageBusy(State.variables)>><a class="button" data-passage="Vehicle_Expedition"><span>Resume expedition</span><strong aria-hidden="true">→</strong></a>
<<else>><<set _block = setup.vehicleExpeditionBlock(State.variables)>>
<<if _block>><button type="button" disabled><span><<print _block>></span><strong>Start</strong></button>
<<else>><button type="button" data-rc-tools-destination="Vehicle_Expedition" data-rc-tools-action="expedition"><span>Start expedition <b aria-hidden="true">→</b></span><strong><<print setup.vehicleStats(State.variables, _garage.selected).energy>> energy</strong></button><</if>><</if>>
</div></section>
</div><nav class="rc-farm-mission-actions"><a class="button back-btn" data-passage="Safehouse">Return to the Farm</a></nav></main>
<</nobr>><</if>>
<<nobr>><<if $player.base_location == 'Farm'>>
<<set _garage = setup.ensureGarage(State.variables)>>
<div class="rc-tools-tabs rc-tools-vehicle-tabs" role="tablist" aria-label="Vehicle upgrades">
<<for _id range Object.keys(setup.vehicleCatalog)>>
<button type="button" role="tab" @id="'rc-vehicle-tab-' + _id" @aria-controls="'rc-vehicle-panel-' + _id" @aria-selected="setup.farmToolsUi.vehicle == _id" @tabindex="setup.farmToolsUi.vehicle == _id ? 0 : -1" @data-rc-tools-vehicle="_id"><<print setup.vehicleCatalog[_id].name>></button>
<</for>>
</div>
<<for _id range Object.keys(setup.vehicleCatalog)>>
<<set _rule = setup.vehicleCatalog[_id]>>
<<set _vehicle = _garage.vehicles[_id]>>
<section role="tabpanel" @id="'rc-vehicle-panel-' + _id" @aria-labelledby="'rc-vehicle-tab-' + _id" @data-rc-tools-vehicle-panel="_id" @class="'rc-tools-vehicle-panel' + (setup.farmToolsUi.vehicle == _id ? '' : ' is-hidden')" tabindex="-1">
<div class="rc-tools-vehicle-summary"><div><h3><<print _rule.name>></h3><small><<if !_vehicle.unlocked>>Not obtained<<elseif !_vehicle.recovered>>Needs restoration<<else>>Ready for road trips<</if>></small></div><img class="rc-tools-vehicle-art" @src="_rule.image" @alt="_rule.imageAlt" width="1536" height="1024" decoding="async"></div>
<<if !_vehicle.recovered>>
<article class="rc-workshop-card rc-tools-card rc-tools-restoration" tabindex="-1" @data-rc-restore="_id">
<div class="rc-tools-heading"><img class="rc-item-icon" src="assets/icons/wrench.svg" alt="" width="44" height="44"><div><h3>Restoration</h3></div></div>
<<if !_vehicle.unlocked>><p>Obtain this vehicle before restoring it.</p><div class="rc-tools-action"><button type="button" disabled>Vehicle unavailable</button></div>
<<else>><p>Make this vehicle ready for expeditions.</p><div class="rc-tools-action">
<<if setup.garageBusy(State.variables)>><button type="button" disabled><span>Expedition in progress</span><strong><<print _rule.restore>> Materials</strong></button>
<<elseif $player.Materials < _rule.restore>><button type="button" disabled><span>Need <<print _rule.restore - $player.Materials>> more</span><strong><<print _rule.restore>> Materials</strong></button>
<<else>><button type="button" data-rc-tools-action="restore" @data-rc-tools-id="_id" @aria-label="'Restore ' + _rule.name"><span>Restore <b aria-hidden="true">↗</b></span><strong><<print _rule.restore>> Materials</strong></button><</if>>
</div><</if>>
</article>
<<else>>
<div class="rc-tools-grid rc-tools-vehicle-grid">
<<for _key range Object.keys(setup.vehicleUpgradeCatalog)>>
<<set _upgrade = setup.vehicleUpgradeCatalog[_key]>>
<<set _cost = setup.vehicleUpgradeCost(State.variables, _id, _key)>>
<article class="rc-workshop-card rc-tools-card" tabindex="-1" @data-rc-vehicle-upgrade="_id + ':' + _key">
<div class="rc-tools-heading"><img class="rc-item-icon" @src="_upgrade.icon" alt="" width="44" height="44"><div><h3><<print setup.vehicleUpgradeName(_id, _key)>></h3></div><span class="rc-tools-level">Lv. <<print _vehicle[_key]>> / 2</span></div>
<p><<if _key == 'motor'>>−<<print _rule.motorStep>> energy per trip per level.
<<elseif _key == 'combat'>>+<<print _rule.combatStep>> opening damage per level.
<<else>>+<<print _rule.armorStep>>% damage reduction per level. Only beside the vehicle.<</if>></p>
<div class="rc-tools-value"><span><<print ({motor: 'Trip energy', combat: 'Opening hit', armor: 'Armor'})[_key]>></span><strong><<if _key == 'motor'>><<print _rule.energy - _rule.motorStep * _vehicle.motor>><<elseif _key == 'combat'>><<print _rule.opening + _rule.combatStep * _vehicle.combat>><<else>><<print _rule.armorStep * _vehicle.armor>>%<</if>></strong></div>
<div class="rc-tools-action">
<<if _cost == null>><button type="button" disabled><span>Fully upgraded</span><strong aria-hidden="true">✓</strong></button>
<<elseif setup.garageBusy(State.variables)>><button type="button" disabled><span>Expedition in progress</span><strong><<print _cost>> Materials</strong></button>
<<elseif $player.Materials < _cost>><button type="button" disabled><span>Need <<print _cost - $player.Materials>> more</span><strong><<print _cost>> Materials</strong></button>
<<else>><button type="button" data-rc-tools-action="vehicle" @data-rc-tools-id="_id" @data-rc-tools-key="_key" @aria-label="'Upgrade ' + _rule.name + ' ' + setup.vehicleUpgradeName(_id, _key)"><span>Upgrade <b aria-hidden="true">↑</b></span><strong><<print _cost>> Materials</strong></button><</if>>
</div>
</article><</for>>
</div><</if>>
</section><</for>>
<a class="button back-btn rc-tools-garage-link" data-passage="Farm_Garage">Go to Garage</a>
<</if>><</nobr>>
<<if $player.base_location != 'Farm'>><<goto 'Safehouse'>><<else>>
<<set _garage = setup.ensureGarage(State.variables)>>
<<set _expedition = _garage.expedition>>
<<if !_expedition>><<goto 'Farm_Garage'>><<else>>
<<set _event = setup.vehicleExpeditionEvent(State.variables)>>
<<if _event && _event.fighting && $combat && $combat.vehicle_expedition>><<goto 'Combat_Enemy_Turn'>><<else>>
<<set $player.current_location = _expedition.active ? 'Outskirts' : 'Farm Garage'>>
<<nobr>>
<main class="rc-farm-mission rc-workshop-page rc-expedition-page"><header><span class="rc-ui-kicker">GARAGE / OUTSKIRTS</span><h1><<if _expedition.active>>Expedition<<else>>Expedition Report<</if>></h1><p><<print _expedition.stats.name>> · <<print _expedition.stats.energy>> energy spent, return included</p></header>
<div class="rc-farm-mission-body rc-workshop-body">
<div class="rc-workshop-stock"><strong><<print _expedition.materials>></strong><span>Materials collected</span><small>Energy remaining: <<print $player.stamina>> / <<print $player.max_stamina>></small></div>
<<if _event>>
<section class="rc-workshop-card rc-expedition-event"><small>Stop <<print _expedition.index + 1>> / <<print _expedition.events.length>></small>
<<if _event.resolved>><h2>Site cleared</h2><p role="status"><<print _event.report>></p><<link 'Continue expedition' 'Vehicle_Expedition'>><<run setup.advanceVehicleExpedition(State.variables)>><</link>>
<<elseif _event.kind == 'supplies'>><h2>Roadside Depot</h2><p>A loading door hangs open. There are still crates beneath the collapsed shelves. You park close enough to carry anything useful back to the car.</p><<link 'Search the depot' 'Vehicle_Expedition'>><<run setup.resolveVehicleEvent(State.variables, 'search')>><</link>>
<<elseif _event.kind == 'combat'>><h2>Blocked Road</h2><p>A zombie pushes through the wrecks ahead. You can use the vehicle to strike first, then fight beside it, or take another road.</p><p>Opening strike: <<print _expedition.stats.opening>> damage · Armor: <<print _expedition.stats.armor>>% damage reduction</p><<link 'Fight by the vehicle' 'Vehicle_Expedition_Combat'>><</link>>
<<elseif _event.kind == 'wreck'>><h2>Abandoned Van</h2><p>An empty van sits on the shoulder. Its engine is ruined, but the fittings and body panels may still be useful.</p><<link 'Salvage the van' 'Vehicle_Expedition'>><<run setup.resolveVehicleEvent(State.variables, 'salvage')>><</link>>
<<else>><h2>Roadside Survivors</h2><p>Two survivors watch you from behind a barricade. They have a box of spare parts and ask for food in exchange.</p><<if $player.Provisions >= 1>><<link 'Trade 1 Provisions' 'Vehicle_Expedition'>><<run setup.resolveVehicleEvent(State.variables, 'trade')>><</link>><<else>><button type="button" disabled>Requires 1 Provisions</button><</if>><</if>>
<<if !_event.resolved>><<link 'Leave this site' 'Vehicle_Expedition'>><<run setup.resolveVehicleEvent(State.variables, 'skip')>><</link>><</if>>
</section>
<<else>><section class="rc-workshop-card"><h2><<if _expedition.endedEarly>>Returned early<<else>>Back at the Farm<</if>></h2><p>You bring everything collected back to your base.</p><<if _expedition.log.length>><ul><<for _entry range _expedition.log>><li><<print _entry>></li><</for>></ul><<else>><p>No supplies collected.</p><</if>></section><</if>>
</div><nav class="rc-farm-mission-actions"><<if _expedition.active>><<link 'Return to the Farm' 'Farm_Garage'>><<run setup.endVehicleExpedition(State.variables, true)>><</link>><<else>><a class="button back-btn" data-passage="Farm_Garage">Return to Garage</a><</if>></nav></main>
<</nobr>><</if>><</if>><</if>>
<<if $player.base_location != 'Farm'>><<goto 'Safehouse'>>
<<elseif setup.startVehicleCombat(State.variables)>><<goto 'Combat_Enemy_Turn'>>
<<elseif $combat && $combat.vehicle_expedition && setup.garageBusy(State.variables)>><<goto 'Combat_Enemy_Turn'>>
<<else>><<goto 'Farm_Garage'>><</if>>
<<if $player.base_location != "Farm">><<goto "Safehouse">><<else>>
<<set $player.current_location = "Farm People">>
<main class="rc-people-page">
<header class="rc-people-header"><span class="rc-ui-kicker">FARM / PEOPLE</span><h1>People</h1></header>
<p class="rc-people-food">Each complete group of 10 Slaves or 10 permanent Residents needs 1 Provision per day. Temporary radio guests need 1 each.</p>
<<if setup.baseFoodShortage($player)>><p class="rc-people-notice" role="status">The base went hungry. Work and Party bonuses are paused until everyone is fed at rest. Cooking and manual field work remain available.</p><</if>>
<div class="rc-people-grid">
<section class="rc-people-group" aria-labelledby="rc-people-slaves">
<header class="rc-people-group-heading"><span aria-hidden="true">⛓️</span><h2 id="rc-people-slaves">Slaves</h2></header>
<div class="rc-people-count"><strong><<print $player.slaves>></strong><span><<if $player.slaves is 1>>unnamed slave<<else>>unnamed slaves<</if>></span></div>
<p class="rc-base-capacity">Capacity: <<print $player.slaves>> / <<print setup.slaveRoomCapacity(State.variables)>></p>
<<if !setup.canReceiveGenericSlave(State.variables)>><p class="rc-people-notice">Slave Room full. Expand it before bringing anyone else here.</p><</if>>
<p><<if $player.slaves > 0>>Choose an interaction with the slaves housed here.<<else>>No unnamed slaves are housed at the Farm.<</if>></p>
<nav class="rc-people-actions" aria-label="Slave actions">
<<if $player.slaves > 0>><a class="button dark-choice" data-passage="Slaves_Service">Use Slaves</a>
<<else>><a class="button dark-choice disabled" aria-disabled="true">Use Slaves</a><</if>>
<a class="button neutral-choice" data-passage="Farm_Workshop">Expand Slave Room</a>
</nav>
</section>
<section class="rc-people-group" aria-labelledby="rc-people-residents">
<header class="rc-people-group-heading"><img src="assets/generic/persons/resident.png" alt=""><h2 id="rc-people-residents">Residents</h2></header>
<div class="rc-people-count"><strong><<print setup.genericResidentCount($player)>></strong><span><<if setup.genericResidentCount($player) is 1>>resident<<else>>residents<</if>></span></div>
<<if setup.radioVisitorCount($player) > 0>><p>Includes <<print setup.radioVisitorCount($player)>> temporary radio guest(s). <a data-passage="Farm_Radio_Room">View their stay</a>.</p><</if>>
<p class="rc-base-capacity">Capacity: <<print setup.genericResidentCount($player)>> / <<print setup.residentHousingCapacity(State.variables)>></p>
<<if !setup.canReceiveResident(State.variables)>><p class="rc-people-notice">Resident Housing full. Expand it before bringing anyone else here.</p><</if>>
<p><<if setup.genericResidentCount($player) > 0>>Find a resident who wants to have sex with you.<<else>>No residents live at the Farm yet.<</if>></p>
<nav class="rc-people-actions" aria-label="Resident actions">
<a class="button neutral-choice" data-passage="Workshop_Residents">Manage Workshop residents</a>
<<if setup.genericResidentCount($player) > 0>><a class="button dark-choice" data-passage="Residents_Service">Have sex</a>
<<else>><a class="button dark-choice disabled" aria-disabled="true">Have sex</a><</if>>
<a class="button neutral-choice" data-passage="Farm_Workshop">Expand Resident Housing</a>
</nav>
</section>
</div>
<nav class="rc-people-exit"><a class="button back-btn" data-passage="Safehouse">Return to the Farm</a></nav>
</main>
<</if>>
<<if $player.base_location != "Farm">><<goto "Safehouse">>
<<elseif setup.genericResidentCount($player) <= 0>><<goto "Farm_People">>
<<else>>
<<nobr>>
<div class="scene-content rc-service-page" data-rc-service="residents">
<header class="rc-service-header"><img src="assets/generic/persons/resident.png" alt=""><div><span>FARM / PRIVATE INTERACTION</span><h1>Residents</h1></div></header>
<<if setup.serviceHasMedia('residents')>>
<div class="video-container"><video class="scene-video" muted loop playsinline preload="none"></video></div>
<<else>>
<div class="video-container rc-residents-media-pending"><p role="status">No videos available yet.</p></div>
<</if>>
<div class="service-menu">
<div class="menu-title">Choose an action:</div>
<div class="service-buttons">
<a class="service-btn" data-rc-video="blowjob" role="button" tabindex="0">Blowjob</a>
<a class="service-btn" data-rc-video="vaginal" role="button" tabindex="0">Vaginal</a>
<a class="service-btn" data-rc-video="anal" role="button" tabindex="0">Anal</a>
<a class="service-btn" data-rc-video="cum" role="button" tabindex="0">Finish</a>
</div>
<a class="button back-btn" data-passage="Farm_People">Return to People</a>
</div>
</div>
<</nobr>>
<</if>>
<<if $player.base_location != 'Farm'>><<goto 'Safehouse'>>
<<elseif !setup.radioReady(State.variables)>>
<<nobr>>
<main class="rc-encounter-page rc-farm-inner-dialogue">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">FARM / COMMUNICATIONS</span><h1>Radio Room</h1></div><span class="rc-encounter-location">FARM</span></header>
<aside class="rc-encounter-presence" aria-label="The player alone"><img class="rc-encounter-scene-image" @src="setup.playerPortrait" alt="You"><h2>Present</h2><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>Alone</span></div></div></aside>
<section class="rc-encounter-log" aria-label="Private thoughts"><h2>Private thoughts</h2>
<p class="rc-encounter-event">Under a layer of dust, you find a radio set, a microphone and cables running up the wall.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You / thought</span></div><p>Looks like there used to be a radio station here.</p></div>
<p class="rc-encounter-event">You turn the switch. Nothing. Beside the microphone lies a handwritten list of frequencies, each with a name beside it.</p>
<div class="rc-encounter-event" role="note" aria-label="Handwritten frequencies"><strong>Radio channels</strong><ul>
<<for _channel range Object.values(setup.radioChannels)>>
<li><<print _channel.frequency>> · <<print _channel.name>></li>
<</for>>
</ul></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You / thought</span></div><p>I could fix this at the Workshop.</p></div>
</section>
<nav class="choice-container rc-encounter-actions" aria-label="Available actions"><div class="rc-encounter-action-list"><<button "Go to the Workshop" "Farm_Workshop">><<run setup.farmToolsUi.workshop = 'base'>><</button>><a class="button back-btn" data-passage="Safehouse">Return to the Farm</a></div></nav>
</main>
<</nobr>>
<<else>><<nobr>><main class="rc-radio-page"><<radioRoom>></main><</nobr>><</if>>
<<if $player.base_location != 'Farm'>><<goto 'Safehouse'>>
<<elseif !setup.ensureRadio(State.variables).active>><<goto 'Farm_Radio_Room'>>
<<elseif setup.radioDestination(State.variables) == 'Farm_Radio_Combat'>><<goto 'Farm_Radio_Combat'>>
<<elseif setup.radioDestination(State.variables) == 'Farm_Radio_Media'>><<goto 'Farm_Radio_Media'>>
<<elseif setup.radioDestination(State.variables) == 'Combat_Defeat'>><<run setup.radioDefeat(State.variables)>><<goto 'Combat_Defeat'>>
<<else>><<nobr>><main class="rc-radio-page"><<radioEvent>></main><</nobr>><</if>>
<<if $player.base_location != 'Farm'>><<goto 'Safehouse'>>
<<elseif setup.startRadioCombat(State.variables)>><<goto 'Combat_Enemy_Turn'>>
<<else>><<goto 'Farm_Radio_Room'>><</if>>
<<if setup.finishRadioCombat(State.variables, true)>><<goto 'Farm_Radio_Event'>>
<<elseif $combat && $combat.radio_fight>><<goto 'Combat_Enemy_Turn'>>
<<else>><<goto 'Farm_Radio_Room'>><</if>>
<<if $player.base_location != 'Farm'>><<goto 'Safehouse'>>
<<elseif setup.radioDestination(State.variables) != 'Farm_Radio_Media'>><<goto 'Farm_Radio_Event'>>
<<else>><<nobr>><main class="scene-content rc-service-page rc-radio-media"><<radioMedia>></main><</nobr>><</if>>
<<if !setup.returnSarahItems($player)>><<goto "Sarah_Talk">><<else>>
<main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">OLD SAFEHOUSE / SARAH</span><h1>Sarah</h1></div><span class="rc-encounter-location">OLD SAFEHOUSE</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/sarah-banks.jpg" alt="Sarah"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/sarah-banks.jpg" alt=""><div><strong>Sarah</strong><span>Resident</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<p class="rc-encounter-event">You set the bedroll and two provisions on the step.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Here. All of it. I'm sorry I took your things.”</p></div>
<p class="rc-encounter-event">Sarah checks the bag, then lowers her pistol to her side.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“At least you brought them back.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I shouldn't have taken them.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“No, you shouldn't. This doesn't change the fact that you're a thief.”</p></div>
<p class="rc-encounter-event">She pulls the bedroll inside with her foot.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Maybe a thief with some sense. I'll give you that.”</p></div>
</section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list">
<a class="button neutral-choice" data-passage="Sarah_Trust">Keep talking</a>
<a class="button neutral-choice" data-passage="Outside">Leave the area</a>
</div></nav></main>
<</if>>
<<if setup.refuseSarahReturn($player)>><<goto "Combat_Sarah">><<else>><<goto "Sarah_Talk">><</if>>
<<if !setup.sarahMercyPending($player)>><<goto "Sarah_Talk">><<else>>
<main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">OLD SAFEHOUSE / SARAH</span><h1>Sarah</h1></div><span class="rc-encounter-location">OLD SAFEHOUSE</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/sarah-banks.jpg" alt="Sarah"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/sarah-banks.jpg" alt=""><div><strong>Sarah</strong><span>Resident</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<p class="rc-encounter-event">You lower your weapon and step away from her pistol.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“We're done.”</p></div>
<p class="rc-encounter-event">Sarah stays against the door, one hand pressed to her side.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“You took my things. Then you beat me. You could've killed me.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Why didn't you?”</p></div>
</section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list">
<a class="button neutral-choice" data-passage="Sarah_Mercy_Need">I'm not bad</a>
<a class="button neutral-choice" data-passage="Sarah_Mercy_Chance">I want to give you a chance</a>
<a class="button neutral-choice" data-passage="Sarah_Mercy_Understand">I understand you</a>
</div></nav></main>
<</if>>
<<if setup.answerSarahMercy($player, "need")>><<goto "Sarah_Mercy_Reply">><<else>><<goto "Sarah_Talk">><</if>>
<<if setup.answerSarahMercy($player, "chance")>><<goto "Sarah_Mercy_Reply">><<else>><<goto "Sarah_Talk">><</if>>
<<if setup.answerSarahMercy($player, "understand")>><<goto "Sarah_Mercy_Reply">><<else>><<goto "Sarah_Talk">><</if>>
<<set _s = setup.sarahStory($player)>>
<<if !setup.sarahAtOldSafehouse($player) or _s.fight != "spared" or _s.fight_reason != "theft" or !_s.mercy_answer>><<goto "Sarah_Talk">><<else>>
<main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">OLD SAFEHOUSE / SARAH</span><h1>Sarah</h1></div><span class="rc-encounter-location">OLD SAFEHOUSE</span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/sarah-banks.jpg" alt="Sarah"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/sarah-banks.jpg" alt=""><div><strong>Sarah</strong><span>Resident</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Conversation</h2>
<<if _s.mercy_answer == "need">>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I'm not bad. I took the food because I needed it. I have a group to look after.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“There was no sign, no one watching the house. I thought those things had been left behind.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“The bedroll was right next to the food. That didn't make you wonder?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I should've checked. But I don't want to hurt you.”</p></div>
<p class="rc-encounter-event">She looks at your lowered weapon, then shifts away from the door.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Next time, check. You can come in. Keep your hands off my things.”</p></div>
<<elseif _s.mercy_answer == "chance">>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I want to give you a chance. Come with me. There's room for you at the farm.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“With your group? After this?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“You'd have food and somewhere to sleep. You don't have to keep doing everything alone.”</p></div>
<p class="rc-encounter-event">Sarah looks down at her pistol on the floor.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“You could've killed me and taken whatever was left. You didn't.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Maybe you're not as bad as I thought. All right. I'll come.”</p></div>
<<else>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“I understand you. If someone stole from me, I'd think about killing them too.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“But I have nothing against you. We could help each other.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“You could've started with that instead of taking my food.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Yeah. I could have.”</p></div>
<p class="rc-encounter-event">She takes her hand off the door frame.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Come in, then. We'll talk.”</p></div>
<</if>>
</section>
<nav class="choice-container rc-encounter-actions"><h2>What will you do?</h2><div class="rc-encounter-action-list">
<<if _s.recruitment_pending>>
<a class="button dark-choice" data-passage="Sarah_Mercy_Enslave">Enslave</a>
<a class="button light-choice" data-passage="Sarah_Mercy_Ally">Ally with her</a>
<<else>>
<a class="button neutral-choice" data-passage="Old_Safehouse">Enter the house</a>
<</if>>
</div></nav></main>
<</if>>
<<if setup.recruitSarahAfterMercy($player, "slave")>><<goto "Sarah_Join_Result">><<else>><<goto "Sarah_Talk">><</if>>
<<if setup.recruitSarahAfterMercy($player, "ally")>><<goto "Sarah_Join_Result">><<else>><<goto "Sarah_Talk">><</if>>
<<set _s = setup.sarahStory($player)>>
<<if !setup.sarahLivesAtBase($player) or _s.mercy_answer != "chance" or !["enslaved", "allied"].includes(_s.fight)>><<goto "Sarah_Home">><<else>>
<<set $player.current_location = "Farm Bedrooms">>
<main class="rc-combat-outcome"><header class="rc-outcome-header"><span class="rc-ui-kicker">FARM / NEW RESIDENT</span><h1>Sarah</h1></header>
<div class="rc-outcome-grid"><figure class="rc-outcome-portrait"><img src="assets/cast/sarah-banks.jpg" alt="Sarah"><figcaption>SARAH / <<if $player.sarah_status == "slave">>SLAVE<<else>>ALLY<</if>></figcaption></figure>
<section class="rc-outcome-report">
<<if _s.fight == "enslaved">>
<p>“You're coming as my slave,” you tell her.</p>
<p>Sarah stops reaching for her bag.</p>
<p>“So that's the chance you're giving me.”</p>
<p>You order her to pack. She gathers her things, and you take her to the farm.</p>
<<else>>
<p>“You'll be one of us,” you tell her. “Let's get you settled.”</p>
<p>Sarah picks up her bag and looks around the room once more.</p>
<p>“All right. Show me the way.”</p>
<p>She follows you to the farm, where you find her a place to stay.</p>
<</if>>
</section></div>
<nav class="rc-outcome-actions"><a class="button neutral-choice" data-passage="Sarah_Interact">Talk to Sarah</a><a class="button back-btn" data-passage="Safehouse">Return to base</a></nav></main>
<</if>>
<<if !$player.sarah_retreat_pending>><<goto "Safehouse">><<else>>
<<set $player.current_location = $player.base_location == "Farm" ? "Farm" : "Safehouse">>
<main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">BASE / PLANNED RETREAT</span><h1>Sarah</h1></div><span class="rc-encounter-location"><<print $player.base_location == "Farm" ? "FARM" : "SAFEHOUSE">></span></header>
<aside class="rc-encounter-presence"><img class="rc-encounter-scene-image" src="assets/cast/sarah-banks.jpg" alt="Sarah"><h2>Present</h2><div class="rc-encounter-person"><img src="assets/cast/sarah-banks.jpg" alt=""><div><strong>Sarah</strong><span>Companion</span></div></div><div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div></aside>
<section class="rc-encounter-log"><h2>Back at base</h2>
<p class="rc-encounter-event">You remember Sarah pulling you away. The trip back comes in pieces: her shoulder under your arm, the front door, a bed.</p>
<p class="rc-encounter-event">She sits beside you, still holding your wrist.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Hey. Can you hear me?”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Yeah.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“You scared me. I thought I wasn't going to get you back here.”</p></div>
<p class="rc-encounter-event">You try to sit up, then stop.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“It hurts. Everything hurts.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“If it hurts, it's healing.”</p></div>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You</span></div><p>“Then I'm healing a lot.”</p></div>
<p class="rc-encounter-event">She lets out a short laugh and pulls the blanket over you.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>Sarah</span></div><p>“Stay there a minute. Please.”</p></div>
<<partyAssist "sarah" "Fatal defeat avoided · Rest to recharge">>
<p class="rc-encounter-event">Health: <<print $player.health>> / <<print $player.max_health>>. Planned retreat is used until your next Rest.</p>
</section>
<nav class="choice-container rc-encounter-actions"><div class="rc-encounter-action-list"><a class="button back-btn" data-passage="Sarah_Retreat_Return">Return to base</a></div></nav>
</main>
<</if>>
<<run setup.finishSarahRetreat($player)>>
<<goto "Safehouse">>
<<if $player.base_location != 'Farm'>><<goto 'Safehouse'>><<else>>
<<set $player.current_location = 'Farm Infirmary'>>
<<set _infirmaryFirstVisit = setup.visitFarmInfirmary(State.variables)>>
<<set _infirmarySophia = setup.infirmaryResidentRole($player, 'sophia')>>
<<set _infirmarySarah = setup.laboratorySarahRole(State.variables)>>
<<set _laboratory = setup.ensureLaboratory(State.variables)>>
<<if !_laboratory.scene && !setup.laboratoryReason(State.variables, 'equipment')>>
<<run setup.laboratoryAction(State.variables, _laboratory.revision, 'equipment')>>
<</if>>
<<if _laboratory.asked || _laboratory.route>><<laboratoryScene>><<else>>
<<nobr>>
<main class="rc-encounter-page">
<header class="rc-encounter-header"><div><span class="rc-encounter-kicker">FARM / BASEMENT</span><h1>Infirmary</h1></div><span class="rc-encounter-location">FARM</span></header>
<aside class="rc-encounter-presence" aria-label="People in scene">
<img class="rc-encounter-scene-image" @src="_infirmarySarah ? setup.castPortraits.sarah : setup.playerPortrait" @alt="_infirmarySarah ? 'Sarah' : 'You'">
<h2>Present</h2>
<div class="rc-encounter-person rc-encounter-person-player"><div><strong><<print $player.name>></strong><span>You</span></div></div>
<<if _infirmarySarah>><div class="rc-encounter-person"><img @src="setup.castPortraits.sarah" alt=""><div><strong>Sarah</strong><span><<print _infirmarySarah == 'slave' ? 'Slave' : 'Ally'>><<if $player.sarah_status == 'starving'>> · Starving<</if>></span></div></div><</if>>
</aside>
<section class="rc-encounter-log" aria-label="Basement discovery"><h2>The ruined room</h2>
<<if _infirmaryFirstVisit>>
<p class="rc-encounter-event">At the bottom of the basement stairs, you find a large room. The door hangs from one hinge, bent outward.</p>
<<else>>
<p class="rc-encounter-event">You go back down to the large room in the basement. The bent door still hangs from one hinge.</p>
<</if>>
<p class="rc-encounter-event">Beds lie overturned. The cabinets have been ripped off the walls, and broken equipment covers the floor. Deep gouges run along the wall toward the doorway.</p>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You / thought</span></div><p>What the hell happened here? Looks like something... or someone... broke out.</p></div>
<<if _infirmaryFirstVisit>>
<p class="rc-encounter-event">Under a fallen shelf, you find a closed metal box. Two medkits inside have survived the damage. You take them.</p>
<div class="rc-encounter-supplies" role="status"><img @src="setup.marketCatalog.Medkit.icon" alt=""><strong>+2 Medkits</strong></div>
<<else>>
<p class="rc-encounter-event">The metal box is empty. You already took the only supplies that survived.</p>
<</if>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You / thought</span></div><p>Almost everything's wrecked. Still, this room could be useful if I rebuild it.</p></div>
<<if _infirmarySophia == 'slave'>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You / thought</span></div><p>I could put Sophia to work here. She knows first aid. We'd have somewhere to treat the injured.</p></div>
<<elseif _infirmarySophia == 'ally'>>
<div class="rc-encounter-statement"><div class="rc-encounter-speaker"><span>You / thought</span></div><p>Sophia could work here. I should ask her once the room's rebuilt. We'd have somewhere to treat the injured.</p></div>
<</if>>
<<if _infirmarySarah>>
<p class="rc-encounter-event">Sarah comes down the stairs and stops beside you.<<if $player.sarah_status == 'starving'>> She rests a hand against the doorframe.<</if>> Her eyes move from the broken cabinets to the far end of the room.</p>
<</if>>
</section>
<<if setup.b12ResearchAvailable(State.variables)>>
<p class="rc-encounter-event">The intact research set from B-12 is stored in its transport case at your base.</p>
<</if>>
<nav class="choice-container rc-encounter-actions" aria-label="Available actions"><div class="rc-encounter-action-list">
<<laboratoryActions>></div></nav>
</main>
<</nobr>>
<</if>>
<</if>>
<<run setup.updateLenaTrade(State.variables)>>
<<if !setup.lenaTradeAvailable(State.variables)>><<goto 'Safehouse'>>
<<elseif $player.lena_trade.stage == 'complete'>><<if $player.lena_trade.media_pending>><<goto 'Lena_Trade_Media'>><<else>><<goto 'Safehouse'>><</if>>
<<elseif $player.lena_trade.stage == 'combat'>><<if setup.finishLenaTradeCombat(State.variables)>><<lenaTradeScene>><<else>><<goto 'Lena_Trade_Combat'>><</if>>
<<else>><<if $player.lena_trade.stage == 'unopened'>><<run setup.openLenaTrade(State.variables)>><</if>><<lenaTradeScene>><</if>>
<<if setup.beginLenaTradeCombat(State.variables)>><<goto 'Combat_Enemy_Turn'>><<else>><<goto 'Lena_Trade_Mission'>><</if>>
<<if !$player.lena_trade || !$player.lena_trade.media_pending>><<goto 'Safehouse'>>
<<else>>
<div class="scene-content rc-service-page" data-rc-service="lena_trades">
<header class="rc-service-header"><img src="assets/cast/lena.jpg" alt=""><div><span>SAFE HOUSE / PRIVATE INTERACTION</span><h1>Lena</h1></div></header>
<div class="video-container">
<video class="scene-video" autoplay muted loop playsinline>
<source @src="setup.serviceVideoPools.lena_trades.blowjob[0]" type="video/webm">
</video>
</div>
<div class="service-menu">
<div class="menu-title">Choose an action:</div>
<div class="service-buttons">
<a class="service-btn" data-rc-video="blowjob" role="button" tabindex="0">Blowjob</a>
<a class="service-btn" data-rc-video="vaginal" role="button" tabindex="0">Vaginal</a>
<a class="service-btn" data-rc-video="anal" role="button" tabindex="0">Anal</a>
<a class="service-btn" data-rc-video="cum" role="button" tabindex="0">Finish</a>
</div>
<<lenaTradeMediaFinish>>
</div>
</div>
<</if>>
<<if !$player.lena_trade || !$player.lena_trade.contact || $player.lena_trade.stage != 'complete' || $player.lena_trade.media_pending>><<goto 'Safehouse'>>
<<elseif $player.current_location != 'Old_Bus_Terminal'>><<goto 'City_Center'>>
<<else>><<lenaTradeContact>><</if>>
<<run setup.updateLenaTrade(State.variables)>>
<<if !setup.lenaTradeTerminalUnlocked(State.variables)>><<goto 'City_Center'>>
<<elseif $player.lena_trade.traveling>><<goto 'Lena_Trade_Mission'>>
<<else>>
<<set $player.current_location = 'Old_Bus_Terminal'>>
<<set $player.lena_trade.contact_trip = false>>
<div class="scene-content">
<div class="scene-text"><h2>Old Bus Terminal</h2><p>City Center / Trade warehouse</p>
<p>Three families live around the old ticket hall. Bela keeps their supply lists in the warehouse, where Martin brings his deliveries.</p></div>
<<if $player.lena_trade.stage == 'accepted'>>
<<lenaTradeTerminalMission>>
<<elseif $player.lena_trade.stage == 'complete' && !$player.lena_trade.media_pending>>
<<if $player.lena_trade.contact>><<lenaTradeContactEvent>><</if>>
<<if setup.lenaTradeBelaAvailable(State.variables)>>
<div class="choice-container"><a class="button" data-passage="Bela_Supplies">Bring supplies to Bela</a></div>
<</if>>
<<else>>
<p>The warehouse is quiet. You can return to see Bela after concluding the visit with Lena.</p>
<</if>>
<div class="choice-container"><a class="button back-btn" data-passage="City_Center">Return to City Center</a></div>
</div>
<</if>>
<<if !setup.lenaTradeBelaAvailable(State.variables)>><<goto 'Old_Bus_Terminal'>>
<<else>><<lenaTradeBela>><</if>>
<<set _invasion = setup.ensureLenaInvasion(State.variables)>>
<<if ['unseen', 'complete'].includes(_invasion.stage)>><<goto 'Safehouse'>>
<<elseif _invasion.stage == 'defeated'>><<goto 'Game_Over'>>
<<elseif _invasion.stage == 'combat' && _invasion.node == 'combat'>><<goto 'Lena_Invasion_Combat'>>
<<else>><<lenaInvasionScene>><</if>>
<<set _invasion = setup.ensureLenaInvasion(State.variables)>>
<<if _invasion.stage != 'combat' || _invasion.node != 'combat' || !$combat || !$combat.lena_invasion_fight>><<goto 'Lena_Invasion'>>
<<else>>
<<run setup.resolveCombatEnemyTurn(State.variables)>>
<<set _invasionDestination = setup.lenaInvasionCombatDestination(State.variables)>>
<<if _invasionDestination == 'Lena_Invasion'>><<goto 'Lena_Invasion'>>
<<else>><<lenaInvasionBattle>><</if>>
<</if>>
<<if !setup.lenaInvasionAftermathAvailable(State.variables)>><<goto 'Farm_Bedrooms'>>
<<else>><<lenaInvasionAftermath>><</if>>
<<if !['slave', 'starving'].includes($player.owen_status) || $player.base_location != 'Farm' || setup.residentImprovised(State.variables, 'owen')>><<goto 'Farm_Bedrooms'>>
<<else>>
<main class="rc-resident-page">
<header class="rc-resident-header"><div class="rc-resident-portrait"><img src="assets/cast/owen.png" alt="Owen"></div>
<div class="rc-resident-identity"><span class="rc-ui-kicker">FARM / RESIDENT</span><h1>Owen</h1>
<div class="rc-resident-facts"><div><span>Status</span><strong>Slave</strong></div><div><span>Current task</span><strong><<if $player.owen_work == 'Fields'>>Working in fields<<else>>None<</if>></strong></div></div>
</div></header>
<section class="rc-resident-options"><div class="rc-resident-options-heading"><span class="rc-ui-kicker">AVAILABLE ACTIONS</span><h2>Spend time with Owen</h2></div>
<nav class="rc-resident-actions" aria-label="Interact with Owen">
<a class="rc-resident-action" data-npc-action="dialogue" data-passage="Owen_Talk"><span>01 / Conversation</span><strong>Talk</strong><small>Speak with Owen</small></a>
</nav>
</section><nav class="rc-resident-exit"><a class="button back-btn" data-passage="Farm_Bedrooms">← Back to Bedrooms</a></nav>
</main>
<</if>>
<<if setup.residentImprovised(State.variables, "kenzie") && (!$player.kenzie_bunker || !$player.kenzie_bunker.on_site)>><<goto "Farm_Bedrooms">><<else>>
<<if !$player.kenzie_bunker && !setup.b12Eligible(State.variables)>><<goto 'Kenzie_Interact'>>
<<else>>
<<set _b12 = setup.ensureB12(State.variables)>>
<<if !_b12.accepted && !setup.b12Eligible(State.variables)>><<goto 'Kenzie_Interact'>>
<<else>><<b12Scene>><</if>>
<</if>>
<</if>>
<<if !setup.b12SarahAvailable(State.variables)>><<goto 'Sarah_Interact'>>
<<else>>
<<run setup.b12Action(State.variables, setup.b12Token(setup.ensureB12(State.variables)), 'sarah')>>
<<b12Scene>>
<</if>>
<<emilyDepotScene>>
<<emilyDepotScene "broadcast">>
<<emilyDepotScene "talk">>
<<emilyDepotScene "after">>
<<include "Rest">>
<<yardScene>>
<<yardScene "cory">>
<<if setup.nikkiDead(State.variables)>>
<p>Nikki is gone. Her counter is closed.</p>
<a class="button" data-passage="Market">Return to the Market</a>
<<else>>
<<yardScene "nikki">>
<</if>>
<<yardScene "gage">>
<<run setup.retreatYardCombat(State.variables, false)>><<goto 'Yard_Mission'>>
<<sophiaForestScene>>
<<sophiaForestScene>>
<<if $player.base_location != "Farm">><<goto "Safehouse">><<else>>
<<set _assigned = setup.ensureWorkshopProduction($player)>>
<<set _available = setup.workshopResidentCount($player)>>
<<set _working = setup.workshopWorkerCount(State.variables)>>
<<set _next = setup.nextFarmWorker(_working)>>
<<nobr>>
<main class="rc-farm-mission rc-farm-workers-page">
<header><span class="rc-ui-kicker">FARM / WORKSHOP ASSIGNMENTS</span><h1>Manage residents</h1></header>
<div class="rc-farm-mission-body rc-farm-workers-body">
<div class="rc-farm-figures" aria-label="Workshop production and next threshold">
<div><span>Residents working</span><strong><<print _working>></strong><small><<print _assigned>> assigned / <<print _available>> permanent Residents<<if _working != _assigned>> · paused by hunger<</if>></small></div>
<div><span>Refined Materials / Day</span><strong>+<<print setup.workshopProductionPreview(State.variables)>></strong></div>
<div><span>Next increase</span><strong><<if setup.baseFoodShortage($player)>>Feed the base first<<else>><<print _next - _working>> more resident<<if _next - _working != 1>>s<</if>><</if>></strong></div>
</div>
<section class="rc-farm-card rc-farm-general" aria-label="Assign residents to the Workshop">
<div class="rc-farm-controls">
<<link "−10" "Workshop_Residents">><<run setup.adjustWorkshopResidents(State.variables, -10)>><</link>>
<<link "−1" "Workshop_Residents">><<run setup.adjustWorkshopResidents(State.variables, -1)>><</link>>
<<link "+1" "Workshop_Residents">><<run setup.adjustWorkshopResidents(State.variables, 1)>><</link>>
<<link "+10" "Workshop_Residents">><<run setup.adjustWorkshopResidents(State.variables, 10)>><</link>>
<<link "All" "Workshop_Residents">><<run setup.adjustWorkshopResidents(State.variables, setup.workshopResidentCount($player))>><</link>>
<<link "None" "Workshop_Residents">><<run setup.adjustWorkshopResidents(State.variables, -setup.workshopResidentCount($player))>><</link>>
</div>
</section>
<p>Assigned Residents produce Refined Materials each day, collected when you rest. Convert them into Materials in the Workshop.</p>
<<if _available == 0>><p class="rc-farm-alert">No permanent Residents are available. Recruit Residents to start daily production.</p><</if>>
<<if setup.radioVisitorCount($player) > 0>><p>Temporary radio guests are not part of the Workshop crew.</p><</if>>
<<if setup.baseFoodShortage($player)>><p class="rc-farm-alert">Production is paused until everyone is fed at rest. Your assignments are kept.</p><</if>>
</div>
<nav class="rc-farm-mission-actions"><a class="button back-btn" data-passage="Farm_Workshop">Return to the Workshop</a></nav>
</main>
<</nobr>>
<</if>>
<<huntVialScene>>
<<sarahVialReportScene>>
<<if setup.skylerHasMoved($player)>><<goto "Skyler_Interact">>
<<elseif $player.skyler_home && $player.skyler_home.accepted>><<goto "Skyler_Home_Mission">>
<<elseif !setup.skylerTrustUnlocked($player) || setup.ensureSkylerTrust($player).value < 100>>
<div class="scene-content rc-service-unavailable">
<header class="rc-service-header"><div><span>SETTLEMENT / PRIVATE INTERACTION</span><h1>Skyler</h1></div></header>
<div class="warning-message">Skyler has not offered this private service yet.</div>
<div class="choice-container"><a class="button back-btn" data-passage="Prostitute">← Back</a></div>
</div>
<<elseif !setup.canAffordService(State.variables, 'skyler_private')>>
<div class="scene-content rc-service-unavailable">
<header class="rc-service-header"><div><span>SETTLEMENT / PRIVATE INTERACTION</span><h1>Skyler</h1></div></header>
<div class="warning-message">You do not have enough stamina for sexual actions!</div>
<div class="choice-container"><a class="button back-btn" data-passage="Prostitute">← Back</a></div>
</div>
<<else>>
<div class="scene-content rc-service-page" data-rc-service="skyler_private">
<header class="rc-service-header"><div><span>SETTLEMENT / PRIVATE INTERACTION</span><h1>Skyler</h1></div></header>
<div class="video-container">
<video class="scene-video" autoplay muted loop playsinline>
<source @src="setup.randomServiceVideo('skyler_private', 'blowjob')" type="video/webm">
</video>
</div>
<div class="service-menu">
<div class="menu-title">Choose an action:</div>
<div class="service-buttons">
<a class="service-btn" data-rc-video="blowjob" role="button" tabindex="0">Blowjob</a>
<a class="service-btn" data-rc-video="vaginal" role="button" tabindex="0">Vaginal</a>
<a class="service-btn" data-rc-video="cum" role="button" tabindex="0">Finish</a>
</div>
<div class="choice-container"><<link "← Back" "Prostitute">><<run setup.skylerAfterVisit($player)>><</link>></div>
</div>
</div>
<</if>>
<<sarahHomeScene>>
<<sarahHomeScene "start">>
<<sarahHomeScene "invite">>
<<run setup.retreatSarahHomeCombat(State.variables)>><<goto "Sarah_Home_Mission">>
<<if setup.nikkiDead(State.variables)>>
<p>Nikki is gone. Her counter is closed.</p>
<a class="button" data-passage="Market">Return to the Market</a>
<<else>>
<<set _nikkiQuest = setup.ensureFieldsQuest(State.variables)>>
<<if _nikkiQuest.stage == 'ask_nikki'>><<goto "Market">><<else>>
<main class="rc-resident-page">
<header class="rc-resident-header"><div class="rc-resident-portrait"><img src="assets/cast/nikki.jpg" alt="Nikki"></div>
<div class="rc-resident-identity"><span class="rc-ui-kicker">SETTLEMENT / MARKET</span><h1>Nikki</h1>
<div class="rc-resident-facts"><div><span>Role</span><strong>Market owner</strong></div><div><span>Location</span><strong>Market</strong></div></div>
</div></header>
<section class="rc-resident-options"><div class="rc-resident-options-heading"><span class="rc-ui-kicker">AVAILABLE ACTIONS</span><h2>Spend time with Nikki</h2></div>
<nav class="rc-resident-actions" aria-label="Interact with Nikki">
<<if !['offer_pending', 'tell_nikki', 'reward_pending'].includes(_nikkiQuest.stage)>>
<a class="rc-resident-action" data-npc-action="dialogue" data-passage="Nikki_Talk"><span>01 / Conversation</span><strong>Talk</strong><small>Speak with Nikki</small></a>
<</if>>
<<if _nikkiQuest.reward == 'romance' && !setup.nikkiTrustBroken(State.variables)>>
<a class="rc-resident-action rc-resident-action-private" data-npc-action="media" data-passage="Nikki_Private"><span>02 / Private</span><strong>Spend time together</strong><small>Visit Nikki after closing</small></a>
<</if>>
<<if ['offer_pending', 'tell_nikki', 'reward_pending'].includes(_nikkiQuest.stage)>>
<a class="rc-resident-action" data-npc-action="other" data-passage="Nikki_Talk"><span>03 / Quest</span><strong><<if _nikkiQuest.stage == 'tell_nikki'>>Report to Nikki<<elseif _nikkiQuest.stage == 'reward_pending'>>Collect your reward<<else>>Nikki's request<</if>></strong><small>Continue the stolen truck quest</small></a>
<</if>>
<<yardTopic "nikki">>
</nav>
</section><nav class="rc-resident-exit"><a class="button back-btn" data-passage="Market">← Return to the Market</a></nav>
</main>
<</if>>
<</if>>
<<if !['slave', 'starving'].includes($player.owen_status) || $player.base_location != 'Farm' || setup.residentImprovised(State.variables, 'owen')>><<goto 'Farm_Bedrooms'>>
<<else>>
<<owenScene>>
<</if>>
<<skylerHomeScene "recruit">>
<<skylerHomeScene "house">>
<<skylerHomeScene>>
<<skylerHomeVisit>>
<<skylerSearchResult>>
<<if !$player.yard_quest || !$player.yard_quest.complete>>
<<goto "Cory_Talk">>
<<elseif !setup.canAffordService(State.variables, 'cory_night')>>
<div class="scene-content rc-service-unavailable">
<header class="rc-service-header"><img src="assets/cast/cory.jpg" alt=""><div><span>SETTLEMENT / PRIVATE INTERACTION</span><h1>Cory</h1></div></header>
<div class="warning-message">You do not have enough stamina for sexual actions!</div>
<div class="choice-container"><a class="button back-btn" data-passage="Cory_Talk">← Back</a></div>
</div>
<<else>>
<div class="scene-content rc-service-page" data-rc-service="cory_night">
<header class="rc-service-header"><img src="assets/cast/cory.jpg" alt=""><div><span>SETTLEMENT / PRIVATE INTERACTION</span><h1>Cory</h1></div></header>
<div class="video-container">
<video class="scene-video" autoplay muted loop playsinline>
<source @src="setup.randomServiceVideo('cory_night', 'blowjob')" type="video/webm">
</video>
</div>
<div class="service-menu">
<div class="menu-title">Choose an action:</div>
<div class="service-buttons">
<<for _action range Object.keys(setup.serviceVideoPools.cory_night)>>
<<if setup.serviceVideoPools.cory_night[_action].length>>
<a class="service-btn" @data-rc-video="_action" role="button" tabindex="0"><<print ({blowjob:'Blowjob', vaginal:'Vaginal', anal:'Anal', cum:'Finish'})[_action]>></a>
<</if>>
<</for>>
</div>
<a class="button back-btn" data-passage="Cory_Talk">← Back</a>
</div>
</div>
<</if>>
<<if !$player.yard_quest || !$player.yard_quest.complete>>
<<goto "Cory_Talk">>
<<elseif !setup.canAffordService(State.variables, 'cory_nikki_night')>>
<div class="scene-content rc-service-unavailable">
<header class="rc-service-header"><img src="assets/cast/cory.jpg" alt=""><div><span>SETTLEMENT / PRIVATE INTERACTION</span><h1>Cory & Nikki</h1></div></header>
<div class="warning-message">You do not have enough stamina for sexual actions!</div>
<div class="choice-container"><a class="button back-btn" data-passage="Cory_Talk">← Back</a></div>
</div>
<<else>>
<div class="scene-content rc-service-page" data-rc-service="cory_nikki_night">
<header class="rc-service-header"><img src="assets/cast/cory.jpg" alt=""><div><span>SETTLEMENT / PRIVATE INTERACTION</span><h1>Cory & Nikki</h1></div></header>
<div class="video-container">
<video class="scene-video" autoplay muted loop playsinline>
<source @src="setup.randomServiceVideo('cory_nikki_night', 'scene')" type="video/webm">
</video>
</div>
<div class="service-menu">
<div class="menu-title">Choose an action:</div>
<div class="service-buttons">
<<for _action range ['blowjob', 'vaginal', 'finish']>>
<<if setup.serviceVideoPools.cory_nikki_night[_action].length>>
<a class="service-btn" @data-rc-video="_action" role="button" tabindex="0"><<print ({blowjob:'Blowjob', vaginal:'Vaginal', finish:'Finish'})[_action]>></a>
<</if>>
<</for>>
</div>
<a class="button back-btn" data-passage="Cory_Talk">← Back</a>
</div>
</div>
<</if>>
<<if !setup.nightVisitActive(State.variables)>><<goto "Safehouse">>
<<elseif setup.nightVisitActive(State.variables).phase === 'media'>><<goto "Night_Visit_Media">>
<<else>><<nightVisitScene>><</if>>
<<if !setup.nightVisitActive(State.variables)>><<goto "Safehouse">>
<<elseif setup.nightVisitActive(State.variables).phase !== 'media'>><<goto "Night_Visit">>
<<else>><<nightVisitMedia>><</if>>